Mainline U-Boot does not boot on the Intel Edison. The mask ROM enters the OS image 0x1000 above its load address, so U-Boot needs 4KB of zero padding ahead of it. That padding used to come from an alignment rule in board/intel/edison/config.mk, but the Kbuild-6.1 bump stopped that input being built, so u-boot.bin now starts with code at offset 0 and the ROM jumps into the middle of it.
This series moves the image build into binman: a new intel-osip entry generates the OSIP header (with the GPT-protective MBR the mask ROM needs) and a fill provides the 4KB gap, replacing the config.mk hack and restoring the boot. It also widens the DFU auto-probe window so an automated flash has time to start, adds the board to the sjg-lab CI and rewrites the documentation to separate a normal DFU update from xFSTK recovery. Tested on real hardware: a bricked board recovers via xFSTK, takes a fresh U-Boot over DFU and boots the result. Simon Glass (5): binman: Add an entry type for the Intel OSIP header edison: Widen the DFU auto-probe window for flashing U-Boot x86: edison: Align U-Boot via binman to fix the boot CI: Add an sjg-lab job for the Intel Edison doc: edison: Rewrite the update instructions .gitlab-ci.yml | 6 + arch/x86/dts/edison.dts | 16 +- board/intel/edison/config.mk | 10 -- board/intel/edison/edison-environment.txt | 2 +- board/intel/edison/edison-osip.dat | 0 doc/board/intel/edison.rst | 187 ++++++++-------------- tools/binman/etype/intel_osip.py | 121 ++++++++++++++ tools/binman/ftest.py | 25 +++ tools/binman/test/entry/intel_osip.dts | 17 ++ 9 files changed, 251 insertions(+), 133 deletions(-) delete mode 100644 board/intel/edison/edison-osip.dat create mode 100644 tools/binman/etype/intel_osip.py create mode 100644 tools/binman/test/entry/intel_osip.dts --- base-commit: 9e87893c24d1f21350e69bc222e6a3214c933b3b branch: edison-us -- 2.43.0

