bootmem: add new memory type for BL31
After CL:31122, we can finally define a memory type specific for BL31, to make sure BL31 is not loaded on other reserved area. Change-Id: Idbd9a7fe4b12af23de1519892936d8d88a000e2c Signed-off-by: Ting Shen <phoenixshen@google.com> Reviewed-on: https://review.coreboot.org/c/31123 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Julius Werner <jwerner@chromium.org>
This commit is contained in:
committed by
Patrick Georgi
parent
4929f43619
commit
dff29e0c65
@@ -50,7 +50,7 @@ void arm_tf_run_bl31(u64 payload_entry, u64 payload_arg0, u64 payload_spsr)
|
||||
if (prog_locate(&bl31))
|
||||
die("BL31 not found");
|
||||
|
||||
if (!selfload(&bl31))
|
||||
if (!selfload_check(&bl31, BM_MEM_BL31))
|
||||
die("BL31 load failed");
|
||||
bl31_entry = prog_entry(&bl31);
|
||||
|
||||
|
@@ -37,4 +37,8 @@
|
||||
REGION(stack, addr, size, 16) \
|
||||
_ = ASSERT(size >= 2K, "stack should be >= 2K, see toolchain.inc");
|
||||
|
||||
#define BL31(addr, size) \
|
||||
REGION(bl31, addr, size, 4K) \
|
||||
_ = ASSERT(size % 4K == 0, "BL31 size must be divisible by 4K!");
|
||||
|
||||
#endif /* __ARCH_MEMLAYOUT_H */
|
||||
|
@@ -20,6 +20,8 @@
|
||||
#include <boot/coreboot_tables.h>
|
||||
#include <symbols.h>
|
||||
|
||||
DECLARE_OPTIONAL_REGION(bl31);
|
||||
|
||||
void arch_write_tables(uintptr_t coreboot_table)
|
||||
{
|
||||
}
|
||||
@@ -28,6 +30,9 @@ void bootmem_arch_add_ranges(void)
|
||||
{
|
||||
bootmem_add_range((uintptr_t)_ttb, _ttb_size, BM_MEM_RAMSTAGE);
|
||||
|
||||
if (IS_ENABLED(CONFIG_ARM64_USE_ARM_TRUSTED_FIRMWARE) && _bl31_size > 0)
|
||||
bootmem_add_range((uintptr_t)_bl31, _bl31_size, BM_MEM_BL31);
|
||||
|
||||
if (!IS_ENABLED(CONFIG_COMMON_CBFS_SPI_WRAPPER))
|
||||
return;
|
||||
bootmem_add_range((uintptr_t)_postram_cbfs_cache,
|
||||
|
Reference in New Issue
Block a user