diff mbox series

stm32mp: correctly handle board_get_usable_ram_top(0)

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

Commit Message

Patrick Delaunay July 26, 2021, 9:55 a.m. UTC
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(+)

Comments

Patrice CHOTARD Aug. 16, 2021, 7:26 a.m. UTC | #1
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
Patrice CHOTARD Aug. 16, 2021, 11:29 a.m. UTC | #2
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 mbox series

Patch

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);