Provided by: u-boot-tools_2024.01+dfsg-5ubuntu2_amd64 bug

NAME

       kwboot - Boot Marvell Kirkwood (and others 32-bit) SoCs over a serial link.

SYNOPSIS

       kwboot [-b image] [-t] [-B baudrate] TTY

DESCRIPTION

       The  kwboot  program  boots boards based on Marvell's 32-bit platforms including Kirkwood,
       Dove, Avanta, A370, AXP, A375, A38x and A39x over their integrated UART. Boot image  files
       will  typically  contain  a  second stage boot loader, such as U-Boot. The image file must
       conform to Marvell's BootROM firmware image format (kwbimage v0 or v1),  created  using  a
       tool such as mkimage.

       Following  power-up  or  a  system  reset,  system BootROM code polls the UART for a brief
       period of time, sensing a handshake message which initiates an image upload. This  program
       sends  this  boot  message  until  it  receives  a  positive acknowledgement. The image is
       transferred using Xmodem.

       Additionally, this program implements a minimal terminal mode, which can  be  used  either
       standalone, or entered immediately following boot image transfer completion. This is often
       useful to catch early boot messages, or to manually interrupt  a  default  boot  procedure
       performed by the second-stage loader.

OPTIONS

       -b image
              Handshake; then upload file image over TTY.

              Note  that  for  the  encapsulated  boot code to be executed, image must be of type
              "UART boot" (0x69). The kwboot program changes this type automatically, unless  the
              image is signed, in which case it cannot be changed.

              This  mode  writes handshake status and upload progress indication to stdout. It is
              possible that image contains an optional binary code in it's header which may  also
              print some output via UART (for example U-Boot SPL does this). In such a case, this
              output is also written to stdout after the header is sent.

       -b     Do only handshake on TTY without uploading any file.  File  upload  could  be  done
              later via option -D or via any other Xmodem application, like sx(1).

       -d     Do special handshake on TTY for console debug mode.

              This  will  instruct BootROM to enter builtin simple console debug mode.  Should be
              combined with option -t.

              To get a BootROM help, type this command followed by ENTER key:

                   ?

              Armada 38x BootROM has a bug which cause that BootROM's standard output  is  turned
              off  on  UART  when  default  boot  source  location  contains  valid  boot  image.
              Nevertheless BootROM's standard input and BootROM's terminal echo  are  active  and
              working  fine.  To workaround this BootROM bug with standard output, it is possible
              to manually overwrite BootROM variables  stored  in  SRAM  which  BootROM  use  for
              checking if standard output is enabled or not. To enable BootROM standard output on
              UART, type this command followed by ENTER key:

                   w 0x40034100 1

       -D image
              Upload file image over TTY without initial handshake.

              This method is used primary on Dove  platforms,  where  BootROM  does  not  support
              initial  handshake  for  entering UART upload mode and strapping pins (exported via
              e.g. buttons) are used instead.

       -p     Obsolete. Does nothing.

              In the past, when this option was used, the program patched the header in the image
              prior upload, to "UART boot" type. This is now done by default.

       -q     Obsolete. Does nothing.

              It is unknown whether it did something in the past.

       -s response-timeout
              Specify  custom  response timeout when doing handshake. Default value is 50 ms.  It
              is the timeout between sending two consecutive handshake patterns, meaning how long
              to  wait  for  response  from  BootROM.  Affects only option -b with image file and
              option -d.

              Option -a specify response timeout suitable for Armada XP BootROM and currently  it
              is 1000 ms.

              Some  testing  showed that specifying 24 ms as response timeout make handshake with
              Armada 385 BootROM more stable.

       -t     Run a terminal program, connecting standard input and output to TTY.

              If used in combination  with  -b,  -D  or  -d  option,  terminal  mode  is  entered
              immediately  following  a  successful  image upload or successful handshake (if not
              doing image upload).

              If standard I/O streams connect to  a  console,  this  mode  will  terminate  after
              receiving ctrl-\ followed by c from console input.

       -B baudrate
              If used in combination with -b, inject into the image header code that changes baud
              rate to baudrate after uploading image header, and code that changes the baud  rate
              back  to the default (115200 Bd) before executing payload, and also adjust the baud
              rate on TTY correspondingly. This can make the upload significantly faster.

              If used in combination with -t, adjust the baud rate  to  baudrate  on  TTY  before
              starting terminal.

              If  both  -b  and  -t  are  used, the baud rate is changed back to 115200 after the
              upload.

              Tested values for baudrate for Armada 38x include: 115200, 230400, 460800,  500000,
              576000,  921600,  1000000, 1152000, 1500000, 2000000, 2500000, 3125000, 4000000 and
              5200000.

EXAMPLES

       Instruct BootROM to enter boot Xmodem boot mode, send  u-boot-with-spl.kwb  kwbimage  file
       via Xmodem on /dev/ttyUSB0 at 115200 Bd and run terminal program:

              kwboot -b u-boot-with-spl.kwb -t /dev/ttyUSB0

       Instruct  BootROM  to  enter  boot  Xmodem  boot  mode, send header of u-boot-with-spl.kwb
       kwbimage file via Xmodem at 115200 Bd, then instruct BootROM to change baudrate to 5200000
       Bd,  send  data  part  of the kwbimage file via Xmodem at high speed, then change baudrate
       back to 115200 Bd, and finally run terminal program:

              kwboot -b u-boot-with-spl.kwb -B 5200000 -t /dev/ttyUSB0

       Only send u-boot-with-spl.kwb kwbimage file via Xmodem on /dev/ttyUSB0 at 115200 Bd:

              kwboot -D u-boot-with-spl.kwb /dev/ttyUSB0

       Instruct BootROM to enter console debug mode and run terminal program on  /dev/ttyUSB0  at
       115200 Bd:

              kwboot -d -t /dev/ttyUSB0

       Only run terminal program on /dev/ttyUSB0 at 115200 Bd:

              kwboot -t /dev/ttyUSB0

SEE ALSO

       mkimage(1), sx(1)

AUTHORS

       Daniel Stodden <daniel.stodden@gmail.com>
       Luka Perkov <luka@openwrt.org>
       David Purdy <david.c.purdy@gmail.com>
       Pali Rohár <pali@kernel.org>
       Marek Behún <kabel@kernel.org>

                                            2022-03-02                                  KWBOOT(1)