diff options
Diffstat (limited to 'src/arch/x86/exit_car.S')
-rw-r--r-- | src/arch/x86/exit_car.S | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/arch/x86/exit_car.S b/src/arch/x86/exit_car.S index e04bd04b25..a51d662e14 100644 --- a/src/arch/x86/exit_car.S +++ b/src/arch/x86/exit_car.S @@ -54,6 +54,14 @@ _start: * 0x00: Number of variable MTRRs to clear */ +#if IS_ENABLED(CONFIG_SOC_SETS_MSRS) + push %esp + call soc_set_mtrrs + + /* eax: new top_of_stack with setup_stack_and_mtrrs data removed */ + movl %eax, %esp + call soc_enable_mtrrs +#else /* CONFIG_SOC_SETS_MSRS */ /* Clear variable MTRRs. */ pop %ebx /* Number to clear */ test %ebx, %ebx @@ -98,6 +106,7 @@ _start: and $(~(MTRR_DEF_TYPE_MASK)), %eax or $(MTRR_DEF_TYPE_EN), %eax wrmsr +#endif /* CONFIG_SOC_SETS_MSRS */ /* Load and run ramstage. */ call copy_and_run |