On 3/27/26 1:23 PM, Ilias Apalodimas wrote:
Hello Ilias,
Add a Kconfig option and allow the common code to relocate U-Boot
to the top of the last discovered bank.
The commit message should really clarify the current pitfalls of
enabling this symbol, including the part where ethernet transfers above
4 GiB used to work because of the packet buffer built into U-Boot, and
they will break because the buffer is now relocated above 4 GiB too.
Shall I just add your note from the RFC with a few adjustments? I.e
NOTE: This currently might break platforms. If the ethernet
controller cannot DMA above 4 GiB, and once U-Boot does
get relocated above 4 GiB, the packet buffer which is built
into the U-Boot binary is also relocated above 4 GiB.
This patch should not be applied in the first place, this DOES break
things. I think when this patch is safe to be applied, the note will not
be needed.
[...]
+++ b/common/board_f.c
@@ -321,6 +321,8 @@ __weak phys_addr_t board_get_usable_ram_top(phys_size_t
total_size)
*/
return 0;
#endif
+ if (IS_ENABLED(CONFIG_RELOCATE_LAST_BANK))
+ fdtdec_setup_mem_ram_top();
Return value may need checking ?
sure, but should we panic ? Or print a message and silently keep the
old reloc address?
Print a message and relocate below 4 GiB , for maximum compatibility maybe ?