On 10.9.2018 13:27, Marek Vasut wrote:
> On 09/10/2018 01:23 PM, Michal Simek wrote:
>> On 9.9.2018 16:30, Marek Vasut wrote:
>>> The get_next_memory_node() always sets mem to -1 , which is incorrect,
>>> because then every iteration of memory bank parsing will start from the
>>> first memory bank instead of the previous one.
>>>
>>> On systems with 1 memory bank defined in DT and CONFIG_NR_DRAM_BANKS=4 ,
>>> like ie. r8a77965-salvator-x , this will result in U-Boot incorrectly
>>> reporting four identical memory banks with the same memory configuration.
>>>
>>> Fix this by setting mem to startoffset value, which restores the behavior
>>> before the fixed patch was applied.
>>>
>>> Signed-off-by: Marek Vasut <marek.vasut+rene...@gmail.com>
>>> Cc: Jens Wiklander <jens.wiklan...@linaro.org>
>>> Cc: Simon Glass <s...@chromium.org>
>>> Cc: Tom Rini <tr...@konsulko.com>
>>> Fixes: 452bc121027d ("fdt: fix fdtdec_setup_memory_banksize()")
>>
>>
>> Tested-by: Michal Simek <michal.si...@xilinx.com> [on ZynqMP}
>>
>> Before
>> arch_number = 0x00000000
>> boot_params = 0x00000000
>> DRAM bank   = 0x00000000
>> -> start    = 0x00000000
>> -> size     = 0x10000000
>> DRAM bank   = 0x00000001
>> -> start    = 0x10000000
>> -> size     = 0x40000000
>> DRAM bank   = 0x00000002
>> -> start    = 0x50000000
>> -> size     = 0x30000000
>> DRAM bank   = 0x00000003
>> -> start    = 0x00000000
>> -> size     = 0x10000000
>>
>>
>> after
>> arch_number = 0x00000000
>> boot_params = 0x00000000
>> DRAM bank   = 0x00000000
>> -> start    = 0x00000000
>> -> size     = 0x10000000
>> DRAM bank   = 0x00000001
>> -> start    = 0x10000000
>> -> size     = 0x40000000
>> DRAM bank   = 0x00000002
>> -> start    = 0x50000000
>> -> size     = 0x30000000
> 
> That's on a system with three banks, so it was broken before this patch?

yes that's on 3 bank system and as is visible above there are 4 banks
listed and also all of them were calculated together.
That's why system with 2GB of memory had surprisingly 2.3GiB.

Before with my 3 bank setup
DRAM:  2.3 GiB
After
DRAM:  2 GiB

With one bank this is even more tricky because
DRAM:  8 GiB
is reported but relocation works properly.

Definitely this is regression and it should go to this release.

Thanks,
Michal

-- 
Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel - Xilinx Microblaze
Maintainer of Linux kernel - Xilinx Zynq ARM and ZynqMP ARM64 SoCs
U-Boot custodian - Xilinx Microblaze/Zynq/ZynqMP SoCs


Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to