
Hi Kever,
On 4/26/24 09:41, Kever Yang wrote:
Hi Quentin,
On 2024/4/25 18:46, Quentin Schulz wrote:
From: Quentin Schulz quentin.schulz@theobroma-systems.com
Allow RK3568 and RK3588 based boards to get the RAM bank configuration from the ROCKCHIP_TPL stage instead of the current logic. This fixes both an issue where 256MB of RAM is blocked for devices with >= 4GB of RAM and where memory holes need to be defined for devices with more than 16GB of RAM. In the event that neither SoC is used or the ROCKCHIP_TPL stage is not used, fall back to existing logic.
The logic handles creating memory holes from reserved memory areas defined in mem_map data struct in SoC C files, but only if the DRAM area overlaps with one reserved memory area.
Since mem_map data struct is used, it should be rather straightforward to add support for other SoCs if needed.
The logic is taken from Rockchip's U-Boot tag linux-5.10-gen-rkr4.1 (e08e32143dd).
Note that Rockchip's U-Boot/TF-A/OP-TEE modify the ATAGS at runtime as well, but the DDR_MEM tag seems to be pretty much stable (though BL31 seems to be reserving only 1MB for itself at the moment).
u32 for ATAGS is used because it simplifies the pointer arithmetic and it's expected that ATAGS are always below the 4GB limit allowed by u32.
Co-developed-by: Chris Morgan macromorgan@hotmail.com Signed-off-by: Chris Morgan macromorgan@hotmail.com Signed-off-by: Quentin Schulz quentin.schulz@theobroma-systems.com
This breaks rv1126 build which is non ARM64 platform, I can fix it and apply it directly.
Thanks!
Cheers, Quentin