[PATCH] stm32mp: correctly handle board_get_usable_ram_top(0)

The function board_get_usable_ram_top can to called after relocation with total_size = 0 to get the uppermost pointer that is valid to access in U-Boot.
When total_size = 0, the reserved memory should be not take in account with lmb library and 'gd->ram_base + gd->ram_size' can be used.
It is the case today in lib/efi_loader/efi_memory.c:efi_add_known_memory() and this patch avoids that the reserved memory for OP-TEE is not part of the EFI available memory regions.
Signed-off-by: Patrick Delaunay patrick.delaunay@foss.st.com --- Patch to correct the UEFI support for STM32MP platform after Heinrich's remark on patch [1].
[1] efi_loader: replace board_get_usable_ram_top by gd->ram_top http://patchwork.ozlabs.org/project/uboot/patch/20210709124630.1.I212e7cd967...
arch/arm/mach-stm32mp/dram_init.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/arch/arm/mach-stm32mp/dram_init.c b/arch/arm/mach-stm32mp/dram_init.c index 3c097029bd..94f25f34e0 100644 --- a/arch/arm/mach-stm32mp/dram_init.c +++ b/arch/arm/mach-stm32mp/dram_init.c @@ -46,6 +46,9 @@ ulong board_get_usable_ram_top(ulong total_size) phys_addr_t reg; struct lmb lmb;
+ if (!total_size) + return gd->ram_base + gd->ram_size; + /* found enough not-reserved memory to relocated U-Boot */ lmb_init(&lmb); lmb_add(&lmb, gd->ram_base, gd->ram_size);

Hi Patrick
On 7/26/21 11:55 AM, Patrick Delaunay wrote:
The function board_get_usable_ram_top can to called after relocation with total_size = 0 to get the uppermost pointer that is valid to access in U-Boot.
When total_size = 0, the reserved memory should be not take in account with lmb library and 'gd->ram_base + gd->ram_size' can be used.
It is the case today in lib/efi_loader/efi_memory.c:efi_add_known_memory() and this patch avoids that the reserved memory for OP-TEE is not part of the EFI available memory regions.
Signed-off-by: Patrick Delaunay patrick.delaunay@foss.st.com
Patch to correct the UEFI support for STM32MP platform after Heinrich's remark on patch [1].
[1] efi_loader: replace board_get_usable_ram_top by gd->ram_top http://patchwork.ozlabs.org/project/uboot/patch/20210709124630.1.I212e7cd967...
arch/arm/mach-stm32mp/dram_init.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/arch/arm/mach-stm32mp/dram_init.c b/arch/arm/mach-stm32mp/dram_init.c index 3c097029bd..94f25f34e0 100644 --- a/arch/arm/mach-stm32mp/dram_init.c +++ b/arch/arm/mach-stm32mp/dram_init.c @@ -46,6 +46,9 @@ ulong board_get_usable_ram_top(ulong total_size) phys_addr_t reg; struct lmb lmb;
- if (!total_size)
return gd->ram_base + gd->ram_size;
- /* found enough not-reserved memory to relocated U-Boot */ lmb_init(&lmb); lmb_add(&lmb, gd->ram_base, gd->ram_size);
Reviewed-by: Patrice Chotard patrice.chotard@foss.st.com
Thanks Patrice

Hi Patrick
On 8/16/21 9:26 AM, Patrice CHOTARD wrote:
Hi Patrick
On 7/26/21 11:55 AM, Patrick Delaunay wrote:
The function board_get_usable_ram_top can to called after relocation with total_size = 0 to get the uppermost pointer that is valid to access in U-Boot.
When total_size = 0, the reserved memory should be not take in account with lmb library and 'gd->ram_base + gd->ram_size' can be used.
It is the case today in lib/efi_loader/efi_memory.c:efi_add_known_memory() and this patch avoids that the reserved memory for OP-TEE is not part of the EFI available memory regions.
Signed-off-by: Patrick Delaunay patrick.delaunay@foss.st.com
Patch to correct the UEFI support for STM32MP platform after Heinrich's remark on patch [1].
[1] efi_loader: replace board_get_usable_ram_top by gd->ram_top http://patchwork.ozlabs.org/project/uboot/patch/20210709124630.1.I212e7cd967...
arch/arm/mach-stm32mp/dram_init.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/arch/arm/mach-stm32mp/dram_init.c b/arch/arm/mach-stm32mp/dram_init.c index 3c097029bd..94f25f34e0 100644 --- a/arch/arm/mach-stm32mp/dram_init.c +++ b/arch/arm/mach-stm32mp/dram_init.c @@ -46,6 +46,9 @@ ulong board_get_usable_ram_top(ulong total_size) phys_addr_t reg; struct lmb lmb;
- if (!total_size)
return gd->ram_base + gd->ram_size;
- /* found enough not-reserved memory to relocated U-Boot */ lmb_init(&lmb); lmb_add(&lmb, gd->ram_base, gd->ram_size);
Reviewed-by: Patrice Chotard patrice.chotard@foss.st.com
Thanks Patrice _______________________________________________ Uboot-stm32 mailing list Uboot-stm32@st-md-mailman.stormreply.com https://st-md-mailman.stormreply.com/mailman/listinfo/uboot-stm32
Applied to u-boot-stm/master
Thanks Patrice
participants (2)
-
Patrice CHOTARD
-
Patrick Delaunay