[PATCH] arm: stm32mp: Fix board_get_usable_ram_top() again
Patrick DELAUNAY
patrick.delaunay at foss.st.com
Fri Jan 6 10:13:34 CET 2023
Hi,
On 1/5/23 20:25, Pali Rohar wrote:
> Ok, so it is working...
>
> On Thursday 05 January 2023 19:31:19 Patrick DELAUNAY wrote:
>> I tested on STM32MP157C-EV1 on my side...
>>
>> with 1GiB mermory size
>>
>> U-Boot is booting on next TOP (for trusted boot with TF-A and OP-TEE)
>>
>>
>>
>> U-Boot 2023.01-rc4-00386-gb429e78942de (Jan 05 2023 - 17:44:04 +0100)
>>
>> stm32_smc: Failed to exec svc=82001003 op=1 in secure mode (err = -1)
>> stm32_smc: Failed to exec svc=82001003 op=1 in secure mode (err = -1)
>> CPU: STM32MP157C?? Rev.Z
>> Model: STMicroelectronics STM32MP157C eval daughter on eval mother
>> Board: stm32mp1 in trusted mode (st,stm32mp157c-ev1)
>> stm32_smc: Failed to exec svc=82001003 op=1 in secure mode (err = -1)
>> DRAM: 1 GiB
>> ....
>>
>>
>> STM32MP> bdinfo
>> boot_params = 0x00000000
>> DRAM bank = 0x00000000
>> -> start = 0xc0000000
>> -> size = 0x3ffff000 <<<<<< the patch is applied - 4kiB here !!!
> But this is wrong. DRAM bank size should not be changed. I think that in
> U-Boot is another issue which propagates mapped U-Boot RAM size/range to
> the places where should be real DDR size.
Yes it is wrong
and it is introduced by your patch...
in the STM32MP15x platfrorm are using the genric weak function
./common/board_f.c:267
__weak int dram_init_banksize(void)
{
gd->bd->bi_dram[0].start = gd->ram_base;
gd->bd->bi_dram[0].size = get_effective_memsize();
return 0;
}
For me:
get_effective_memsize() must return the effective size of the DDR
and NOT -4KiB to avoid side effects in other part of the code (LMB for
example)
I think today we need to revert your patch.
regards
Patrick
More information about the U-Boot
mailing list