On Mon, Sep 21, 2026 at 02:21:52PM -0600, Tom Rini wrote: > It's unclear to me, so it might be unclear to others, what the use case > you're trying to solve here. These symbols are used for (typically) when > we have some prior stage loader that assumes it's booting the linux > kernel and we need to fake this enough to get loaded ourselves, instead.
That is the case, yes. The board is a consumer router whose stock bootloader only ever starts an arm64 kernel image, so U-Boot carries the header and gets chainloaded as that image. The offset is not zero here. TEXT_BASE is 0x41e00000 and the offset base is 0x41d80000, so text_offset comes out 0x80000, which is where the stock loader expects the image. 2/2 only adds the default the other machs already have. In arch/arm/Kconfig the symbol is a hex with no default, so a MediaTek board that selects the header does not build until it supplies a value. mmp, rockchip and apple each carry default TEXT_BASE.
