diff options
Diffstat (limited to 'src/arch')
-rw-r--r-- | src/arch/arm/tables.c | 11 | ||||
-rw-r--r-- | src/arch/arm64/tables.c | 7 |
2 files changed, 18 insertions, 0 deletions
diff --git a/src/arch/arm/tables.c b/src/arch/arm/tables.c index eef6bf2ffd..682c2bc39e 100644 --- a/src/arch/arm/tables.c +++ b/src/arch/arm/tables.c @@ -18,6 +18,7 @@ #include <bootmem.h> #include <boot/tables.h> #include <boot/coreboot_tables.h> +#include <symbols.h> void arch_write_tables(uintptr_t coreboot_table) { @@ -25,6 +26,16 @@ void arch_write_tables(uintptr_t coreboot_table) void bootmem_arch_add_ranges(void) { + DECLARE_OPTIONAL_REGION(ttb_subtables); + + bootmem_add_range((uintptr_t)_ttb, _ttb_size, BM_MEM_RAMSTAGE); + bootmem_add_range((uintptr_t)_ttb_subtables, _ttb_subtables_size, + BM_MEM_RAMSTAGE); + + if (!IS_ENABLED(CONFIG_COMMON_CBFS_SPI_WRAPPER)) + return; + bootmem_add_range((uintptr_t)_postram_cbfs_cache, + _postram_cbfs_cache_size, BM_MEM_RAMSTAGE); } void lb_arch_add_records(struct lb_header *header) diff --git a/src/arch/arm64/tables.c b/src/arch/arm64/tables.c index eef6bf2ffd..f36679e67f 100644 --- a/src/arch/arm64/tables.c +++ b/src/arch/arm64/tables.c @@ -18,6 +18,7 @@ #include <bootmem.h> #include <boot/tables.h> #include <boot/coreboot_tables.h> +#include <symbols.h> void arch_write_tables(uintptr_t coreboot_table) { @@ -25,6 +26,12 @@ void arch_write_tables(uintptr_t coreboot_table) void bootmem_arch_add_ranges(void) { + bootmem_add_range((uintptr_t)_ttb, _ttb_size, BM_MEM_RAMSTAGE); + + if (!IS_ENABLED(CONFIG_COMMON_CBFS_SPI_WRAPPER)) + return; + bootmem_add_range((uintptr_t)_postram_cbfs_cache, + _postram_cbfs_cache_size, BM_MEM_RAMSTAGE); } void lb_arch_add_records(struct lb_header *header) |