mirror of
https://github.com/smaeul/u-boot.git
synced 2025-10-18 14:48:17 +01:00
stm32mp: Reserve OPTEE area in EFI memory map
Since commit 7b78d6438a2b3 ("efi_loader: Reserve unaccessible memory") memory region above ram_top is tagged in EFI memory map as EFI_BOOT_SERVICES_DATA. In case of STM32MP1/STM32MP13 platforms, above ram_top, there is one reserved-memory region tagged "no-map" dedicated to OP-TEE : _ addr=de000000 size=2000000 for stm32mp157x-dkx and stm32mp135f-dk _ addr=fe000000 size=2000000 for stm32mp157c-ev1 Before booting kernel, EFI memory map is first built, the OPTEE region is tagged as EFI_BOOT_SERVICES_DATA and when reserving LMB, the tag LMB_NONE is used. Then after, the LMB are completed by boot_fdt_add_mem_rsv_regions() which try to add again the same OPTEE region (addr=de000000 size=2000000 in case of stm32mp157x-dkx / stm32mp135f-dk or addr=fe000000 size=2000000 in case for stm2mp157c-ev1) but now with LMB_NOMAP tag which produces the following error message : _ for stm32mp157x-dkx / stm32mp135f-dk : "ERROR: reserving fdt memory region failed (addr=de000000 size=2000000 flags=4)" _ for stm32mp157c-ev1 : "ERROR: reserving fdt memory region failed (addr=fe000000 size=2000000 flags=4)" To avoid this, OPTEE area shouldn't be used by EFI, so we need to mark it as reserved. Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
This commit is contained in:
parent
f1de28e67a
commit
2ec88086c9
@ -6,6 +6,7 @@
|
|||||||
#define LOG_CATEGORY LOGC_ARCH
|
#define LOG_CATEGORY LOGC_ARCH
|
||||||
|
|
||||||
#include <dm.h>
|
#include <dm.h>
|
||||||
|
#include <efi_loader.h>
|
||||||
#include <image.h>
|
#include <image.h>
|
||||||
#include <init.h>
|
#include <init.h>
|
||||||
#include <lmb.h>
|
#include <lmb.h>
|
||||||
@ -74,3 +75,14 @@ phys_addr_t board_get_usable_ram_top(phys_size_t total_size)
|
|||||||
|
|
||||||
return reg + size;
|
return reg + size;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void efi_add_known_memory(void)
|
||||||
|
{
|
||||||
|
if (IS_ENABLED(CONFIG_EFI_LOADER))
|
||||||
|
/*
|
||||||
|
* Memory over ram_top is reserved to OPTEE.
|
||||||
|
* Declare to EFI only memory area below ram_top
|
||||||
|
*/
|
||||||
|
efi_add_memory_map(gd->ram_base, gd->ram_top - gd->ram_base,
|
||||||
|
EFI_CONVENTIONAL_MEMORY);
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user