Message ID | 20210726115518.1.I199b974cdcfac6b770c164eef50f53ea8ad02bc5@changeid |
---|---|
State | Accepted |
Commit | 92b611e8b003e81798ad2cde90f15eb89cfa48c4 |
Delegated to: | Patrice Chotard |
Headers | show |
Series | stm32mp: correctly handle board_get_usable_ram_top(0) | expand |
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.I212e7cd96724368b8272300c59c2a1c1f227ed67@changeid/ > > 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.I212e7cd96724368b8272300c59c2a1c1f227ed67@changeid/ >> >> 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
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);
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.I212e7cd96724368b8272300c59c2a1c1f227ed67@changeid/ arch/arm/mach-stm32mp/dram_init.c | 3 +++ 1 file changed, 3 insertions(+)