arch/x86: remove CAR global migration when postcar stage is used
When a platform is using postcar stage it's by definition not tearing down cache-as-ram from within romstage prior to loading ramstage. Because of this property there's no need to migrate CAR_GLOBAL variables to cbmem. Change-Id: I7c683e1937c3397cbbba15f0f5d4be9e624ac27f Signed-off-by: Aaron Durbin <adurbin@chromium.org> Reviewed-on: https://review.coreboot.org/19215 Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net> Tested-by: build bot (Jenkins) Tested-by: Raptor Engineering Automated Test Stand <noreply@raptorengineeringinc.com> Reviewed-by: Furquan Shaikh <furquan@google.com> Reviewed-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
This commit is contained in:
parent
acc599b839
commit
bc17cdef0d
|
@ -200,6 +200,7 @@ config VERSTAGE_ADDR
|
||||||
# from a program loaded in RAM and subsequently loading ramstage.
|
# from a program loaded in RAM and subsequently loading ramstage.
|
||||||
config POSTCAR_STAGE
|
config POSTCAR_STAGE
|
||||||
def_bool n
|
def_bool n
|
||||||
|
select NO_CAR_GLOBAL_MIGRATION
|
||||||
|
|
||||||
config VERSTAGE_DEBUG_SPINLOOP
|
config VERSTAGE_DEBUG_SPINLOOP
|
||||||
bool
|
bool
|
||||||
|
|
|
@ -34,7 +34,7 @@ asm(".previous");
|
||||||
* accessed unconditionally because cbmem is never initialized until romstage
|
* accessed unconditionally because cbmem is never initialized until romstage
|
||||||
* when dram comes up.
|
* when dram comes up.
|
||||||
*/
|
*/
|
||||||
#if ENV_VERSTAGE || ENV_BOOTBLOCK
|
#if ENV_VERSTAGE || ENV_BOOTBLOCK || IS_ENABLED(CONFIG_NO_CAR_GLOBAL_MIGRATION)
|
||||||
static inline void *car_get_var_ptr(void *var)
|
static inline void *car_get_var_ptr(void *var)
|
||||||
{
|
{
|
||||||
return var;
|
return var;
|
||||||
|
|
|
@ -10,6 +10,15 @@ config CACHE_AS_RAM
|
||||||
bool
|
bool
|
||||||
default !ROMCC
|
default !ROMCC
|
||||||
|
|
||||||
|
config NO_CAR_GLOBAL_MIGRATION
|
||||||
|
bool
|
||||||
|
default n
|
||||||
|
depends on CACHE_AS_RAM
|
||||||
|
help
|
||||||
|
This option is selected if there is no need to migrate CAR globals.
|
||||||
|
All stages which use CAR globals can directly access the variables
|
||||||
|
from their linked addresses.
|
||||||
|
|
||||||
config DCACHE_RAM_BASE
|
config DCACHE_RAM_BASE
|
||||||
hex
|
hex
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
ifeq ($(CONFIG_ARCH_ROMSTAGE_X86_32)$(CONFIG_ARCH_ROMSTAGE_X86_64),y)
|
ifeq ($(CONFIG_ARCH_ROMSTAGE_X86_32)$(CONFIG_ARCH_ROMSTAGE_X86_64),y)
|
||||||
|
ifneq ($(CONFIG_NO_CAR_GLOBAL_MIGRATION),y)
|
||||||
romstage-$(CONFIG_CACHE_AS_RAM) += car.c
|
romstage-$(CONFIG_CACHE_AS_RAM) += car.c
|
||||||
endif
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
subdirs-$(CONFIG_PARALLEL_MP) += name
|
subdirs-$(CONFIG_PARALLEL_MP) += name
|
||||||
ramstage-$(CONFIG_PARALLEL_MP) += mp_init.c
|
ramstage-$(CONFIG_PARALLEL_MP) += mp_init.c
|
||||||
|
|
Loading…
Reference in New Issue