[PATCH 2/3] doc: environment: Expand on fdt_addr, initrd_addr and loadaddr
xypron.glpk at gmx.de
Sun Jul 10 13:02:28 CEST 2022
On 6/20/22 16:31, Tom Rini wrote:
> - Explain why fdt_addr and initrd_addr should not be set to disable
> relocation normally.
> - Provide some advice on the typical loadaddr default value.
> Signed-off-by: Tom Rini <trini at konsulko.com>
> doc/usage/environment.rst | 15 ++++++++++++---
> 1 file changed, 12 insertions(+), 3 deletions(-)
> diff --git a/doc/usage/environment.rst b/doc/usage/environment.rst
> index a3f23d4e4e22..a9a4702632d2 100644
> --- a/doc/usage/environment.rst
> +++ b/doc/usage/environment.rst
> @@ -204,7 +204,9 @@ fdt_high
> to work it must reside in writable memory, have
> sufficient padding on the end of it for u-boot to
> add the information it needs into it, and the memory
> - must be accessible by the kernel.
> + must be accessible by the kernel. This usage is strongly discouraged
> + however as it also stops U-Boot from ensuring the device tree starting
> + address is properly aligned and a misaligned tree will cause OS failures.
fdt_addr_r is typically 4 byte aligned. Is there a bug in some part of
> if set this is the address of the control flattened
> @@ -240,14 +242,21 @@ initrd_high
> memory. In this case U-Boot will NOT COPY the
> ramdisk at all. This may be useful to reduce the
> boot time on your system, but requires that this
> - feature is supported by your Linux kernel.
> + feature is supported by your Linux kernel. This usage however requires
> + that the user ensure that there will be no overlap with other parts of the
It is not the user but the developer who define $kernel_addr_r,
$initr_addr_r, and $fdt_addr_r.
Relocating initrd does not stop the user from loading the kernel to
initrd_high. The user is always responsible for avoiding overlap. In
this regard there is nothing special about initrd_high=~0UL.
> + iamge such as the Linux kernel BSS. It should not be enabled by default
> + and only done as part of optimizing a deployment.
Relocating initrd and fdt is using boot time. On many boards it is
simply superfluous. On these boards I cannot see any reason not to
disable it by default.
> IP address; needed for tftpboot command
> Default load address for commands like "bootp",
> - "rarpboot", "tftpboot", "loadb" or "diskboot"
> + "rarpboot", "tftpboot", "loadb" or "diskboot". Note that the optimal
> + default values here will vary between architectures. On 32bit ARM for
> + example, some offset from start of memory is used as the Linux kernel
> + zImage has a self decompressor and it's best if we stay out of where that
> + will be working.
> see CONFIG_LOADS_ECHO
More information about the U-Boot