diff options
Diffstat (limited to 'src/arch/x86')
-rw-r--r-- | src/arch/x86/car.ld | 2 | ||||
-rw-r--r-- | src/arch/x86/cbmem.c | 44 | ||||
-rw-r--r-- | src/arch/x86/include/arch/cpu.h | 5 | ||||
-rw-r--r-- | src/arch/x86/postcar_loader.c | 10 |
4 files changed, 7 insertions, 54 deletions
diff --git a/src/arch/x86/car.ld b/src/arch/x86/car.ld index 5669020b87..86656829ab 100644 --- a/src/arch/x86/car.ld +++ b/src/arch/x86/car.ld @@ -43,7 +43,7 @@ * in size. Therefore place them at the beginning .car.data section * so that multiple stages (romstage and verstage) have a consistent * link address of these shared objects. */ - PRERAM_CBMEM_CONSOLE(., (CONFIG_LATE_CBMEM_INIT ? 0 : CONFIG_PRERAM_CBMEM_CONSOLE_SIZE)) + PRERAM_CBMEM_CONSOLE(., CONFIG_PRERAM_CBMEM_CONSOLE_SIZE) #if IS_ENABLED(CONFIG_PAGING_IN_CACHE_AS_RAM) . = ALIGN(32); /* Page directory pointer table resides here. There are 4 8-byte entries diff --git a/src/arch/x86/cbmem.c b/src/arch/x86/cbmem.c index b3d89f4953..73967e17f8 100644 --- a/src/arch/x86/cbmem.c +++ b/src/arch/x86/cbmem.c @@ -15,55 +15,23 @@ #include <cbmem.h> #include <arch/acpi.h> -#if IS_ENABLED(CONFIG_LATE_CBMEM_INIT) - -void __weak backup_top_of_low_cacheable(uintptr_t ramtop) -{ - /* Do nothing. Chipset may have implementation to save ramtop in NVRAM. - */ -} - -uintptr_t __weak restore_top_of_low_cacheable(void) -{ - return 0; -} - -#endif /* LATE_CBMEM_INIT */ - #if IS_ENABLED(CONFIG_CBMEM_TOP_BACKUP) -static void *cbmem_top_backup; - -void set_late_cbmem_top(uintptr_t ramtop) -{ - backup_top_of_low_cacheable(ramtop); - if (ENV_RAMSTAGE) - cbmem_top_backup = (void *)ramtop; -} - -/* Top of CBMEM is at highest usable DRAM address below 4GiB. */ -uintptr_t __weak restore_cbmem_top(void) -{ - if (IS_ENABLED(CONFIG_LATE_CBMEM_INIT) && ENV_ROMSTAGE) - if (!acpi_is_wakeup_s3()) - return 0; - - return restore_top_of_low_cacheable(); -} - void *cbmem_top(void) { - uintptr_t top_backup; + static void *cbmem_top_backup; + void *top_backup; if (ENV_RAMSTAGE && cbmem_top_backup != NULL) return cbmem_top_backup; - top_backup = restore_cbmem_top(); + /* Top of CBMEM is at highest usable DRAM address below 4GiB. */ + top_backup = (void *)restore_top_of_low_cacheable(); if (ENV_RAMSTAGE) - cbmem_top_backup = (void *)top_backup; + cbmem_top_backup = top_backup; - return (void *)top_backup; + return top_backup; } #endif /* CBMEM_TOP_BACKUP */ diff --git a/src/arch/x86/include/arch/cpu.h b/src/arch/x86/include/arch/cpu.h index 00696e6bea..b50fef2b56 100644 --- a/src/arch/x86/include/arch/cpu.h +++ b/src/arch/x86/include/arch/cpu.h @@ -271,11 +271,6 @@ struct postcar_frame { int postcar_frame_init(struct postcar_frame *pcf, size_t stack_size); /* - * Initialize postcar_frame object with a fixed stacktop in low memory. - */ -void postcar_frame_init_lowmem(struct postcar_frame *pcf); - -/* * Add variable MTRR covering the provided range with MTRR type. */ void postcar_frame_add_mtrr(struct postcar_frame *pcf, diff --git a/src/arch/x86/postcar_loader.c b/src/arch/x86/postcar_loader.c index 2342fb9fb8..141e8d23ae 100644 --- a/src/arch/x86/postcar_loader.c +++ b/src/arch/x86/postcar_loader.c @@ -60,16 +60,6 @@ int postcar_frame_init(struct postcar_frame *pcf, size_t stack_size) return 0; } -/* - * For use with LATE_CBMEM_INIT boards only, with a fixed stacktop in - * low memory. - */ -void postcar_frame_init_lowmem(struct postcar_frame *pcf) -{ - postcar_frame_prepare(pcf); - pcf->stack = CONFIG_RAMTOP; -} - void postcar_frame_add_mtrr(struct postcar_frame *pcf, uintptr_t addr, size_t size, int type) { |