kwboot: Marvell Dove UART booting

Pali Rohár pali at kernel.org
Mon Mar 20 21:33:05 CET 2023


Hello! After longer time I have something new in this area.

On Wednesday 16 February 2022 20:18:31 Tony Dinh wrote:
> Hi Pali,
> 
> Please see below.
> 
> On Tue, Feb 15, 2022 at 3:02 PM Pali Rohár <pali at kernel.org> wrote:
> >
> > Hello!
> >
> > On Wednesday 22 December 2021 20:08:56 Tony Dinh wrote:
> > > *** With jumper inserted, serial console connected, start serial console
> > >
> > > # picocom --b 115200 --f n --p n --d 8 /dev/ttyUSB0
> > > Terminal ready
> > >
> > > *** Hit <Enter> here to get to the prompt and execute "x 0x0E"
> > >
> > > Bootstrap 2.33>
> > > Bootstrap 2.33>x 0x0E
> > >
> > > *** No more input possible here,  so Control-A-X to exit serial console
> > >
> > > Terminating...
> > > Thanks for using picocom
> > >
> > > *** Run kwboot
> > >
> > > # kwboot -t -p -B 115200 /dev/ttyUSB0 -D /localdisk/mtd0.t5335z
> > > Patching image boot signature to UART
> > > Aligning image header to Xmodem block size
> > > Waiting 2s and flushing tty
> > > Sending boot image header (512 bytes)...
> > >  25 % [....                                                                  ]
> > > Done
> > > Sending boot image data (607664 bytes)...
> > >   0 % [......................................................................]
> > >   1 % [......................................................................]
> > >   2 % [......................................................................]
> > > <snip>
> > >  95 % [......................................................................]
> > >  97 % [......................................................................]
> > >  98 % [..........................................................            ]
> > > Done
> > > Finishing transfer
> > > [Type Ctrl-\ + c to quit]
> > >
> > > *** Hung here! BootROM did not execute the image payload.
> >
> > I found this github repository https://github.com/rabeeh/u-boot with
> > Dove version of U-Boot. In its README file is section about UART:
> > https://github.com/rabeeh/u-boot/blob/master/README.MARVELL#L131-L138
> > It points to the file with "w" commands which needs to be executed in
> > bootrom prior doing calling "x" command (which enters into x-modem):
> > https://github.com/rabeeh/u-boot/blob/master/tools/doimage_dove/uart_init.txt
> >
> > Could you try to execute all those "w" commands in that other and then
> > use kwboot if it helps?
> 
> Unfortunately, it did not help. I ran the same procedure. Connected
> the HP t5335z jumper to get to the BootROM debug prompt, and executed
> the "w" commands. And then "x e" to enter UART booting mode. And then
> execute kwboot. Here is the log.
> 
> <BEGIN log>
> 
> Bootstrap 2.33>w  D00D0210  00000050
> >w  D00D802C 01010000
> >w  D00D802C 00010000
> >w d0800E40 00000100
> >w d0800E50 00120012
> >w d0800E40 00000101
> >w d0800E50 000d000d
> >w d0800E40 00000102
> >w d0800E50 000a000a
> >w d0800E40 00000103
> >w d0800E50 00080008
> >w d0800E40 00000200
> >w d0800E50 00120012
> >w d0800E40 00000201
> >w d0800E50 000d000d
> >w d0800E40 00000202
> >w d0800E50 000a000a
> >w d0800E40 00000203
> >w d0800E50 00080008
> 
> >x e
> 
> Terminating...
> Thanks for using picocom
> 
> ./kwboot-2022/kwboot  -t -B 115200 /dev/ttyUSB0 -D mtd0.t5335z
> kwboot version 2022.04-rc2-00001-gab8903a24d-dirty
> Patching image boot signature to UART
> Sending boot image header (3072 bytes)...
>   4 % [........................                                              ]
> Done
> Sending boot image data (605104 bytes)...
>   0 % [......................................................................]
>   1 % [......................................................................]
> <snip>
>  97 % [......................................................................]
>  99 % [......................................                                ]
> Done
> Finishing transfer
> [Type Ctrl-\ + c to quit]
> 
> <END log>
> 
> Thanks,
> Tony

I looked at the mentioned rabeeh/u-boot repository again and there are
two important bits of informations:

1) https://github.com/rabeeh/u-boot/blob/master/README.MARVELL#L136
   README.MARVELL says that for UART booting should be used file named
   with _uart.

2) https://github.com/rabeeh/u-boot/blob/master/Makefile#L313
   Build rules for _uart file and normal file are different. For example
   UART file has different doimage DDR input file (-R) and is _without_
   doimage binary file (-B option). But it has _same_ main u-boot binary
   u-boot.bin

So I think that for converting Dove SPI image to UART image are more
steps needed. And I think you could do it by first unpacking all
kwbimage parts via u-boot's tools/dumpimage tool and then packing all
required parts via Marvell doimage tool from that rabeeh/u-boot github
repository.

Are you going to try it?


More information about the U-Boot mailing list