diff options
author | Arthur Heymans <arthur@aheymans.xyz> | 2019-11-20 19:56:00 +0100 |
---|---|---|
committer | Patrick Georgi <pgeorgi@google.com> | 2019-11-29 11:10:36 +0000 |
commit | 462a7daeec809ce8fca2fbb58eeeb5c1a3f099d7 (patch) | |
tree | 075ed5fb65bdacc28d4c94b15b1d46cd1dca2a52 /src/lib | |
parent | d20b0a842bec15e65549db75d2b19e456db0ac50 (diff) | |
download | coreboot-462a7daeec809ce8fca2fbb58eeeb5c1a3f099d7.tar.xz |
lib/imd_cbmem.c: Drop CAR_GLOBAL_MIGRATION support
Change-Id: Id409f9abf33c851b6d08903bc111a6b8ec6bf8cf
Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/37032
Reviewed-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/imd_cbmem.c | 35 |
1 files changed, 2 insertions, 33 deletions
diff --git a/src/lib/imd_cbmem.c b/src/lib/imd_cbmem.c index 6eb3e6096c..6fd48d57dd 100644 --- a/src/lib/imd_cbmem.c +++ b/src/lib/imd_cbmem.c @@ -22,28 +22,6 @@ #include <imd.h> #include <lib.h> #include <stdlib.h> -#include <arch/early_variables.h> - -/* - * We need special handling on x86 where CAR global migration is employed. One - * cannot use true globals in that circumstance because CAR is where the globals - * are backed -- creating a circular dependency. For non CAR platforms globals - * are free to be used as well as any stages that are purely executing out of - * RAM. For CAR platforms that don't migrate globals the as-linked globals can - * be used, but they need special decoration using CAR_GLOBAL. That ensures - * proper object placement in conjunction with the linker. - * - * For the CAR global migration platforms we have to always try to partially - * recover CBMEM from cbmem_top() whenever we try to access it. In other - * environments we're not so constrained and just keep the backing imd struct - * in a global. This also means that we can easily tell whether CBMEM has - * explicitly been initialized or recovered yet on those platforms, and don't - * need to put the burden on board or chipset code to tell us by returning - * NULL from cbmem_top() before that point. - */ -#define CAN_USE_GLOBALS \ - (!CONFIG(ARCH_X86) || ENV_RAMSTAGE || ENV_POSTCAR || \ - !CONFIG(CAR_GLOBAL_MIGRATION)) /* The program loader passes on cbmem_top and the program entry point has to fill in the _cbmem_top_ptr symbol based on the calling arguments. */ @@ -67,11 +45,8 @@ void *cbmem_top(void) static inline struct imd *cbmem_get_imd(void) { - if (CAN_USE_GLOBALS) { - static struct imd imd_cbmem CAR_GLOBAL; - return &imd_cbmem; - } - return NULL; + static struct imd imd_cbmem; + return &imd_cbmem; } static inline const struct cbmem_entry *imd_to_cbmem(const struct imd_entry *e) @@ -115,12 +90,6 @@ static struct imd *imd_init_backing_with_recover(struct imd *backing) struct imd *imd; imd = imd_init_backing(backing); - if (!CAN_USE_GLOBALS) { - /* Always partially recover if we can't keep track of whether - * we have already initialized CBMEM in this stage. */ - imd_handle_init(imd, cbmem_top()); - imd_handle_init_partial_recovery(imd); - } return imd; } |