arch/x86: reduce complexity in assembly_entry.S
Now that VBOOT_STARTS_IN_BOOTBLOCK depends on C_ENVIRONMENT_BOOTBLOCK, remove the complications in assembly_entry.S. There's no platform utilizing romcc bootblock and needing to handle verified boot after bootblock as well as not using verified boot. That combination makes things very complicated. Clean up the complication as it's not a combination that needs to be supported. BUG=b:78656686 Change-Id: Ie2960790d60ccb8d5b75dab507fe70a6563b3d34 Signed-off-by: Aaron Durbin <adurbin@chromium.org> Reviewed-on: https://review.coreboot.org/25968 Reviewed-by: Furquan Shaikh <furquan@google.com> Reviewed-by: Justin TerAvest <teravest@chromium.org> Reviewed-by: Hannah Williams <hannah.williams@intel.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
parent
318fb80b88
commit
0f9af5500e
|
@ -16,33 +16,21 @@
|
||||||
|
|
||||||
#include <rules.h>
|
#include <rules.h>
|
||||||
|
|
||||||
/*
|
#if IS_ENABLED(CONFIG_C_ENVIRONMENT_BOOTBLOCK)
|
||||||
*Take the path where CAR_GLOBAL variables just need to be cleared when
|
|
||||||
* verstage runs directly after bootblock.
|
|
||||||
*/
|
|
||||||
#define ROMSTAGE_AFTER_VERSTAGE \
|
|
||||||
(IS_ENABLED(CONFIG_VBOOT_SEPARATE_VERSTAGE) && \
|
|
||||||
IS_ENABLED(CONFIG_VBOOT_STARTS_IN_BOOTBLOCK) && ENV_ROMSTAGE)
|
|
||||||
|
|
||||||
#if IS_ENABLED(CONFIG_C_ENVIRONMENT_BOOTBLOCK) || ROMSTAGE_AFTER_VERSTAGE
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This path is for stages that are post bootblock when employing
|
* This path is for stages that are post bootblock when employing
|
||||||
* CONFIG_C_ENVIRONMENT_BOOTBLOCK or any intermediate stage succeeding
|
* CONFIG_C_ENVIRONMENT_BOOTBLOCK. There's no need to re-load the gdt,
|
||||||
* the first stage to initialize protected mode. There's no need to re-load
|
* etc as all those settings are cached within the processor. In order
|
||||||
* the gdt, etc as all those settings are cached within the processor. In
|
* to continue with C code execution one needs to set stack pointer and
|
||||||
* order to continue with C code execution one needs to set stack pointer and
|
|
||||||
* clear CAR_GLOBAL variables that are stage specific.
|
* clear CAR_GLOBAL variables that are stage specific.
|
||||||
*/
|
*/
|
||||||
.section ".text._start", "ax", @progbits
|
.section ".text._start", "ax", @progbits
|
||||||
.global _start
|
.global _start
|
||||||
_start:
|
_start:
|
||||||
|
|
||||||
/* _car_stack_end symbol is only valid when bootblock does CAR setup. */
|
|
||||||
#if IS_ENABLED(CONFIG_C_ENVIRONMENT_BOOTBLOCK)
|
|
||||||
/* reset stack pointer to CAR stack */
|
/* reset stack pointer to CAR stack */
|
||||||
mov $_car_stack_end, %esp
|
mov $_car_stack_end, %esp
|
||||||
#endif
|
|
||||||
|
|
||||||
/* clear CAR_GLOBAL area as it is not shared */
|
/* clear CAR_GLOBAL area as it is not shared */
|
||||||
cld
|
cld
|
||||||
|
|
Loading…
Reference in New Issue