[PATCH 3/5] x86: edison: Align U-Boot via binman to fix the boot

Ilias Apalodimas ilias.apalodimas at linaro.org
Mon Jun 8 09:47:00 CEST 2026


Hi Simon,

On Mon, 8 Jun 2026 at 02:05, Simon Glass <sjg at chromium.org> wrote:
>
> The mask ROM loads the OS image to 0x01100000 but enters it at
> 0x01101000, so U-Boot must sit 0x1000 (4KB) into the loaded image. This
> was arranged by board/intel/edison/config.mk, which prepended 4096 zero
> bytes to u-boot.bin through an 'INPUTS-y += u-boot-align.bin' rule whose
> recipe moved its output back over u-boot.bin.
>
> Commit bd3f9ee679b4 ("kbuild: Bump the build system to 6.1") stopped
> that rule from running, so u-boot.bin no longer gains the 4KB prefix.
> The mask ROM then jumps 4KB into U-Boot's code and the board never
> starts, sitting in BootROM download mode (DnX) and cycling.
>
> Since the Edison image is assembled by binman, provide the gap there
> instead: pad with a 'fill' of 4096 zero bytes ahead of the u-boot entry.
> Drop the now-redundant alignment hack from the board config.mk.

If this was missed during the kbuild update, why don't we reapply the
fix there and make binman a requirement for it?

Thanks
/Ilias
>
> Fixes: bd3f9ee679b4 ("kbuild: Bump the build system to 6.1")
> Signed-off-by: Simon Glass <sjg at chromium.org>
> ---
>
>  arch/x86/dts/edison.dts      | 11 ++++++++++-
>  board/intel/edison/config.mk | 10 ----------
>  2 files changed, 10 insertions(+), 11 deletions(-)
>
> diff --git a/arch/x86/dts/edison.dts b/arch/x86/dts/edison.dts
> index 9c7630161e9..05391d49d02 100644
> --- a/arch/x86/dts/edison.dts
> +++ b/arch/x86/dts/edison.dts
> @@ -175,8 +175,17 @@
>                 intel-osip {
>                 };
>
> +               /*
> +                * The OSII loads the image to 0x01100000 but enters it at
> +                * 0x01101000, so U-Boot must sit 0x1000 (4KB) into the loaded
> +                * data. Pad with zeroes ahead of U-Boot to provide that gap.
> +                */
> +               fill {
> +                       size = <0x1000>;
> +                       fill-byte = [00];
> +               };
> +
>                 u-boot {
> -                       offset = <0x200>;
>                 };
>
>                 u-boot-env {
> diff --git a/board/intel/edison/config.mk b/board/intel/edison/config.mk
> index 3afebf0f0b1..da7c9acf1a2 100644
> --- a/board/intel/edison/config.mk
> +++ b/board/intel/edison/config.mk
> @@ -4,14 +4,4 @@
>  # Copyright (c) 2017 Intel Corporation
>  #
>
> -# Add 4096 bytes of zeroes to u-boot.bin
> -quiet_cmd_mkalign_eds = EDSALGN $@
> -cmd_mkalign_eds =                                                      \
> -       dd if=$^ of=$@ bs=4k seek=1 2>/dev/null &&                      \
> -       mv $@ $^
> -
> -INPUTS-y += u-boot-align.bin
> -u-boot-align.bin: u-boot.bin FORCE
> -       $(call if_changed,mkalign_eds)
> -
>  HOSTCFLAGS_include/autoconf.mk.dep = -Wno-variadic-macros
> --
> 2.43.0
>


More information about the U-Boot mailing list