[U-Boot] Complete verified uboot example

Simon Glass sjg at chromium.org
Wed Mar 8 21:02:17 UTC 2017


Hi Ron,

On 27 February 2017 at 14:49, Ron Brash <ron.brash at gmail.com> wrote:
> Looks like far more progress:
>
> #> setenv my_bootcount 0; bootm 0xD0084000
> Initial value for argc=3
> Final value for argc=3
> ## Current stack ends at 0x23f11db8 *  kernel: cmdline image address =
> 0xd0084000
>    Reading image header from dataflash address d0084000 to RAM address
> 22000000
>    FIT/FDT format image found at 0x22000000, size 0x0016c0b1
>    Reading image remaining data from dataflash address d0084040 to RAM
> address 22000040
> ## Loading kernel from FIT Image at 22000000 ...
> No configuration specified, trying default...
> Found default configuration: 'config at 1'
>    Using 'config at 1' configuration
>    Trying 'linux_kernel at 1' kernel subimage
>      Description:  Linux zImage
>      Type:         Kernel Image
>      Compression:  uncompressed
>      Data Start:   0x220000dc
>      Data Size:    1465544 Bytes = 1.4 MiB
>      Architecture: ARM
>      OS:           Linux
>      Load Address: 0x22000000
>      Entry Point:  0x22008000
>      Hash node:    'hash at 1'
>      Hash algo:    sha256
>      Hash value:
> 5dcf9a4328bca6fe5c3405e03b9a58402dce36f3a4f0c757e52091b050d2bcb2
>      Hash len:     32
>    Verifying Hash Integrity ... sha256+ OK
>    kernel data at 0x220000dc, len = 0x00165cc8 (1465544)
> *  ramdisk: using config 'config at 1' from image at 0x22000000
> *  ramdisk: no 'ramdisk' in config
> *  fdt: using config 'config at 1' from image at 0x22000000
> ## Checking for 'FDT'/'FDT Image' at 22000000
> ## Loading fdt from FIT Image at 22000000 ...
>    Using 'config at 1' configuration
>    Trying 'fdt at 1' fdt subimage
>      Description:  FDT blob
>      Type:         Flat Device Tree
>      Compression:  uncompressed
>      Data Start:   0x22165ea4
>      Data Size:    21681 Bytes = 21.2 KiB
>      Architecture: ARM
>      Hash node:    'hash at 1'
>      Hash algo:    sha256
>      Hash value:
> c7f32d039871d858dda8d397c3b6a685bc914c78cf70f03d1860f61ecfe9c689
>      Hash len:     32
>    Verifying Hash Integrity ... sha256+ OK
>    Loading fdt from 0x22165ea4 to 0x28000000
>    Booting using the fdt blob at 0x28000000
>    of_flat_tree at 0x28000000 size 0x000054b1
> Initial value for argc=3
> Final value for argc=3
>    Loading Kernel Image ... OK
> CACHE: Misaligned operation at range [22000000, 22165cc8]
>    kernel loaded at 0x22000000, end = 0x22165cc8
> images.os.start = 0x22000000, images.os.end = 0x2216c0f1
> images.os.load = 0x22000000, load_end = 0x22165cc8
> ERROR: new format image overwritten - must RESET the board to recover
> resetting ...
>
> This appears to be an addressing issue.  Anyone care to comment?
>
> I'll put up how I got to this point after, but I am curious on how all of
> the addresses are leveraged, is there an order they follow and more?

At this point you are not dealing with a verified boot problem, IMO.
This is just about getting your board to load things at the right
address.

BTW you appear to be using image verification - I think you should
consider using configuration verification as it is more secure.

[...]

Regards,
Simon


More information about the U-Boot mailing list