[U-Boot] x86: u-boot.bin differs in u-boot.rom

Bin Meng bmeng.cn at gmail.com
Thu Oct 6 14:06:53 CEST 2016


Hi Stefan,

On Thu, Oct 6, 2016 at 4:31 PM, Stefan Roese <sr at denx.de> wrote:
> Hi Bin, Hi Simon,
>
> I'm currently trying to only update the u-boot.bin part in the
> SPI NOR chip instead of updating the complete ROM (8MiB).
> Updating u-boot.bin (same as u-boot-dtb.bin) at 0x70.0000 results
> in a non booting board though. I've checked a bit and found
> that the U-Boot image in u-boot.rom at this offset differs
> from the original u-boot.bin file. Here a diff:
>
> uboot.test (u-boot.rom at offset 0x70.0000)
> 0000 2D50: 54 2D F0 FF 50 4C F7 FF  00 98 01 00 00 00 F0 FF  T-..PL..
> ........
> u-boot.bin        0000 2D50: 54 2D F0 FF 00 00 00 00  00 00 00 00 00 00 F0
> FF T-...... ........
> Do you know why this is the case? I would have expected no differ
>

See arch/x86/lib/fsp/fsp_car.S: _dt_ucode_base_size. The 8 bytes is
filled in by tools/ifdtool.c: write_ucode().

For a partial update, my solution is to change CONFIG_ROM_SIZE to 1MB,
and remove CONFIG_HAVE_INTEL_ME. For a related commit, see

commit 91fc5bf652c1e959373cd21df4809a74d31e75fe
Author: Bin Meng <bmeng.cn at gmail.com>
Date:   Wed May 11 07:44:55 2016 -0700

    x86: minnowmax: Adjust U-Boot environment address in SPI flash

    Currently U-Boot environment address is at offset 0x7fe00 of a 8MB
    SPI flash. When creating a partial u-boot.rom image without flash
    descriptor and ME firmware, U-Boot actually occupies the last 1MB
    of the flash, and reprograming U-Boot causes previous environment
    settings get lost which is not convenient during testing.

    Adjust the environment address to 0x6ef000 instead (before the MRC
    cache data region in the flash).

Regards,
Bin


More information about the U-Boot mailing list