From: Mehmet Fide <[email protected]> Hello Francesco,
> Stefan: do you remember any of this? any comment? > > Unless Stefan says anything against this change, I am ok with it. But I > really have no idea about it, I trust your analysis Mehmet. Some more background that may make this less scary. The value this restores is not a new invention: 0x3f408000 is what mainline used until 2017 and what the Toradex 2015.04 fork has been shipping since, including on our seven Colibri VF products in the field, so it is the most field-proven number this board has. As for why the low base fails, the reference manual gives a hint. For NAND boot the ROM first stages the 4 KiB "initial load region" of the image in internal RAM, parses the IVT at offset 0x400 inside it, and only then copies the whole image to the address the IVT names (VFxxx RM, table 7-51). Where that staging buffer lives is not documented, but the imx_usb_loader Vybrid configuration points its scratch/DCD address at 0x3f400000, the very bottom of the gfxRAM. An image linked at 0x3f401000 asks the ROM to copy the image right over that region, which would corrupt the staged source header mid-copy, and it matches what I observe: the ROM never jumps, it falls straight back to the serial downloader. With 0x3f408000 the copy target starts at 0x3f4074e8 and the bottom of the SRAM is never touched. That said, this is my best reading of it; what the commit message relies on is the A/B measurement only. If Stefan remembers the actual constraint I am happy to spell it out in the commit message. Thanks for the ack! Mehmet
