kwboot: UART booting with bin_hdr u-boot (Marvell Armada 385)

Pali Rohár pali at kernel.org
Wed Jan 4 08:50:28 CET 2023


Hello!

On Tuesday 03 January 2023 17:55:41 Tony Dinh wrote:
> Hi Pali,
> 
> I'm building a new u-boot for the Thecus N2350 board (Armada 385
> dual-core 1Ghz 1GB DDR4). The trouble with this board is DDR4, which
> is not currently supported in u-boot (also cc this to Chris for
> commenting about Marvell DDR4 training driver).

Yes, ddr4 training code is not in u-boot yet.

A38x u-boot ddr driver is in this directory:
https://source.denx.de/u-boot/u-boot/-/tree/master/drivers/ddr/marvell/a38x

And it is copied from the original marvell driver by stripping non-a38x
code and removal of the ddr4 code from the master branch:
https://github.com/MarvellEmbeddedProcessors/mv-ddr-marvell

So you can try to copy code again without stripping ddr4 parts
(run git log drivers/ddr/marvell/a38x in u-boot)
And adjust u-boot board code for ddr4.

I guess it could work but it would be needed to play with it.

> So I'm building with binary.0 in the ./board/thecus/n2350/. This
> binary.0 is a copy of the Marvell bin_hdr for SPI in the GPL source
> for this board (provided by Thecus). My
> ./board/thecus/n2350/kwbimage.cfg.in file looks like this
> 
> # Armada 38x uses version 1 image format
> VERSION         1
> # Boot Media configurations
> BOOT_FROM spi
> # Binary Header (bin_hdr) with DDR4 training code
> BINARY board/thecus/n2350/binary.0 0000005b 00000068
> 
> When I kwboot the u-boot.kwb image (using kwboot binary built with
> 2023.01-rc4), the header was transferred successfully, but then the
> BootROM jumped to SPI u-boot, instead of loading the u-boot payload
> from UART. Please see the log below.
> <BEGIN LOG>
> # ./kwboot -t -p -B 115200 /dev/ttyUSB0 -b uboot.kwb
> 
> kwboot version 2023.01-tld-1-00048-g19e15f9081-dirty
> Patching image boot signature to UART
> Aligning image header to Xmodem block size
> Sending boot message. Please reboot the target.../
> Sending boot image header (97792 bytes)...
>   0 % [......................................................................]
>   9 % [......................................................................]
> <snip>
>  82 % [......................................................................]
>  91 % [................................................................      ]
> Done
> 
> BootROM - 1.73
> Booting from SPI flash

This indicates reset of the board. BootROM started execution of the
image from the primary location.

> <snip>
> U-Boot 2013.01 (Nov 12 2018 - 20:56:19) Marvell version: 2015_T1.0p18-tld-4
> <END LOG>
> 
> It seems kwboot patched the image, but the BOOT_FROM indicator was
> still recognized as from SPI. So the BootROM loaded the stock u-boot
> image from SPI and executed it. Since I am booting with bin_hdr, I'm
> not sure if there is something inside this blob that has forced this
> indicator to SPI.

No, blob cannot force BootROM to switch boot location. This really
indicates crash of the blob or crash of the payload which results in the
board reset.

> I'm attaching the u-boot.kwb image to this email, in case you are
> interested in taking a look at the structure.
> 
> Thanks,
> Tony




More information about the U-Boot mailing list