(Aspeed2600) Booting with a SPL loading U-boot fitImage

Klaus Heinrich Kiwi klaus at linux.vnet.ibm.com
Wed Mar 3 00:21:42 AEDT 2021



On 3/2/2021 4:54 AM, Dan Zhang wrote:

> I think within A FIT image, the u-boot binary is not located at your entry point 0x81000000,
> it is behind the fit header, somewhere. This means the entry_point and load_addr is not the same as spl_boot.c defined.
> spl_image->entry_point= CONFIG_ASPEED_UBOOT_DRAM_BASE;
> spl_image->load_addr= CONFIG_ASPEED_UBOOT_DRAM_BASE;
> Also, the u-boot code itself before relocation is position aware ( SYS_TEXT_BASE must be set to 0x81000000, as your second try works). This means the entry_point shall be the same as SYS_TEXT_BASE.

I think it's not that simple. See my answer (to myself) in this same thread with new information.
  
> In fb/OpenBMC, verified boot implementation, use mkimage option:
>    -p => place external data at a static position,
> thus we specify the somewhere to a static offset , then you can set the entry_point = load_addr + offset.

Verified boot should work if you are having u-boot proper validating the Linux Kernel fitimage, but I don't see how the Aspeed 2600 SPL would be able to load and verify the u-boot proper fitimage - the code simply isn't there..

It seems to me that the SPL_LOAD_FIT code should handle recognizing the fitimage, moving it's 'loadables' images into memory and setting the entry point accordingly.

  -Klaus


More information about the openbmc mailing list