Re: [PATCH v2 0/2] ARM: decompressor: support AUTO_ZRELADDR and appended DTB

From: Christian Marangi
Date: Wed Feb 21 2024 - 11:57:23 EST


On Sun, Jan 21, 2024 at 09:29:32PM +0100, Christian Marangi wrote:
> This series try to address a long lasting problem with legacy device
> that require an appended DTB and the use of AUTO_ZRELADDR.
>
> With these device AUTO_ZRELADDR is not possible if for some reason at
> the start of the RAM it's needed to reserve some space. (example qcom SoC
> that allocate reserved space for SMEM)
>
> In the current implementation with appended DTB and AUTO_ZRELADDR,
> the memory start is only derived from the PC register and it can't be
> changed by declaring additional info in the DTS.
>
> In a normal setup, we have an intentional undocumented chosen property
> to handle this and the memory node to declare the start of the memory.
>
> With this applied and ARM_ATAG_DTB_COMPAT_IGNORE_MEM enabled (more
> info in the related patch) ipq806x can boot right away with AUTO_ZRELADDR
> enabled and a correct memory node defined in DTS.
>
> It's needed to ignore MEM ATAGs as most of the time the values from the
> bootloader are hardcoded and OEM didn't care to actually provide them
> resulting in funny situation where a Netgear R7800 with 512Mb of RAM
> have Uboot passing 1.7GB of RAM with ATAGS.
>
> While MEM ATAG may be broken, other ATAG like serial number or bootargs
> might still be useful for partition declaration (cmdlinepart) or other
> info hence DTB_COMPAT is still needed in these case and can't be
> disabled.
>
> I'm open to any suggestion on how this can be improved and I would love
> some additional testing on other legacy platform but I assume this will
> permit many legacy device to be correctly supported without having to
> hardcode address.
>
> Changes v2:
> - Add Review and Ack Tags
> - Use IS_ENABLED instead of global variable
>
> Christian Marangi (2):
> ARM: decompressor: support memory start validation for appended DTB
> ARM: decompressor: add option to ignore MEM ATAGs
>
> arch/arm/Kconfig | 12 ++++++++++++
> arch/arm/boot/compressed/atags_to_fdt.c | 4 ++++
> arch/arm/boot/compressed/head.S | 22 ++++++++++++++++++++++
> 3 files changed, 38 insertions(+)
>
>

Any news for this?

--
Ansuel