CBMEM: Always build for x86 romstage
Always build CBMEM for romstage, even for boards that will not use it.
We further restrict car_migrate_variables() runs to non-ROMCC boards without
BROKEN_CAR_MIGRATE.
This fixes regression of commit 71b21455
that broke CBMEM console support
for boards with a combination of !EARLY_CBMEM_INIT && !HAVE_ACPI_RESUME.
Change-Id: Ife91d7baebdc9bd1e086896400059a165d3aa90f
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-on: http://review.coreboot.org/7877
Tested-by: build bot (Jenkins)
Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
This commit is contained in:
committed by
Jonathan A. Kollasch
parent
773485b892
commit
87accccdc2
@@ -158,9 +158,7 @@ config EARLY_CBMEM_INIT
|
|||||||
romstage.c and should be enabled by the board's Kconfig.
|
romstage.c and should be enabled by the board's Kconfig.
|
||||||
|
|
||||||
config BROKEN_CAR_MIGRATE
|
config BROKEN_CAR_MIGRATE
|
||||||
bool
|
def_bool !EARLY_CBMEM_INIT
|
||||||
default y if !EARLY_CBMEM_INIT && HAVE_ACPI_RESUME
|
|
||||||
default n
|
|
||||||
help
|
help
|
||||||
Many boards use CAR_GLOBAL but have no EARLY_CBMEM_INIT and
|
Many boards use CAR_GLOBAL but have no EARLY_CBMEM_INIT and
|
||||||
manage CAR migration on S3 resume path only. Couple boards use
|
manage CAR migration on S3 resume path only. Couple boards use
|
||||||
|
@@ -1,8 +1,7 @@
|
|||||||
|
|
||||||
ifeq ($(CONFIG_ARCH_ROMSTAGE_X86_32),y)
|
ifeq ($(CONFIG_ARCH_ROMSTAGE_X86_32),y)
|
||||||
|
|
||||||
romstage-$(CONFIG_EARLY_CBMEM_INIT) += cbmem.c
|
romstage-y += cbmem.c
|
||||||
romstage-$(CONFIG_BROKEN_CAR_MIGRATE) += cbmem.c
|
|
||||||
|
|
||||||
endif # CONFIG_ARCH_ROMSTAGE_X86_32
|
endif # CONFIG_ARCH_ROMSTAGE_X86_32
|
||||||
|
|
||||||
|
@@ -45,16 +45,18 @@ void *car_get_var_ptr(void *var);
|
|||||||
#define car_set_var(var, val) \
|
#define car_set_var(var, val) \
|
||||||
do { car_get_var(var) = (val); } while(0)
|
do { car_get_var(var) = (val); } while(0)
|
||||||
|
|
||||||
/* Migrate the CAR variables to memory. */
|
|
||||||
void car_migrate_variables(void);
|
|
||||||
|
|
||||||
#else
|
#else
|
||||||
#define CAR_MIGRATE(migrate_fn_)
|
#define CAR_MIGRATE(migrate_fn_)
|
||||||
static inline void *car_get_var_ptr(void *var) { return var; }
|
static inline void *car_get_var_ptr(void *var) { return var; }
|
||||||
#define car_get_var(var) (var)
|
#define car_get_var(var) (var)
|
||||||
#define car_set_var(var, val) do { (var) = (val); } while (0)
|
#define car_set_var(var, val) do { (var) = (val); } while (0)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__PRE_RAM__) && IS_ENABLED(CONFIG_CACHE_AS_RAM)
|
||||||
|
/* Migrate the CAR variables to memory. */
|
||||||
|
void car_migrate_variables(void);
|
||||||
|
#else
|
||||||
static inline void car_migrate_variables(void) { }
|
static inline void car_migrate_variables(void) { }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -1,6 +1,5 @@
|
|||||||
ifeq ($(CONFIG_ARCH_ROMSTAGE_X86_32),y)
|
ifeq ($(CONFIG_ARCH_ROMSTAGE_X86_32),y)
|
||||||
romstage-$(CONFIG_EARLY_CBMEM_INIT) += car.c
|
romstage-$(CONFIG_CACHE_AS_RAM) += car.c
|
||||||
romstage-$(CONFIG_BROKEN_CAR_MIGRATE) += car.c
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
subdirs-$(CONFIG_PARALLEL_MP) += name
|
subdirs-$(CONFIG_PARALLEL_MP) += name
|
||||||
|
@@ -73,7 +73,7 @@ void *car_get_var_ptr(void *var)
|
|||||||
return &migrated_base[offset];
|
return &migrated_base[offset];
|
||||||
}
|
}
|
||||||
|
|
||||||
void car_migrate_variables(void)
|
static void do_car_migrate_variables(void)
|
||||||
{
|
{
|
||||||
void *migrated_base;
|
void *migrated_base;
|
||||||
car_migration_func_t *migrate_func;
|
car_migration_func_t *migrate_func;
|
||||||
@@ -102,3 +102,9 @@ void car_migrate_variables(void)
|
|||||||
migrate_func++;
|
migrate_func++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void car_migrate_variables(void)
|
||||||
|
{
|
||||||
|
if (!IS_ENABLED(CONFIG_BROKEN_CAR_MIGRATE))
|
||||||
|
do_car_migrate_variables();
|
||||||
|
}
|
||||||
|
@@ -75,8 +75,7 @@ ramstage-y += dynamic_cbmem.c
|
|||||||
romstage-y += dynamic_cbmem.c
|
romstage-y += dynamic_cbmem.c
|
||||||
else
|
else
|
||||||
ramstage-y += cbmem.c
|
ramstage-y += cbmem.c
|
||||||
romstage-$(CONFIG_EARLY_CBMEM_INIT) += cbmem.c
|
romstage-y += cbmem.c
|
||||||
romstage-$(CONFIG_BROKEN_CAR_MIGRATE) += cbmem.c
|
|
||||||
endif # CONFIG_DYNAMIC_CBMEM
|
endif # CONFIG_DYNAMIC_CBMEM
|
||||||
ramstage-y += cbmem_info.c
|
ramstage-y += cbmem_info.c
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user