mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-11-04 05:50:17 +00:00 
			
		
		
		
	File name with pattern u-boot-spl* is used on all places except in kwb image for binary with SPL-only code. Combined binary with both SPL and proper U-Boot in other places has file name pattern u-boot-with-spl*. Make it consistent also for kwb image and rename u-boot-spl.kwb to u-boot-with-spl.kwb as this image contains both SPL and proper U-Boot code. Also update documentation about file name changes. Signed-off-by: Pali Rohár <pali@kernel.org> Reviewed-by: Stefan Roese <sr@denx.de>
		
			
				
	
	
		
			198 lines
		
	
	
		
			6.2 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			198 lines
		
	
	
		
			6.2 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
.TH KWBOOT 1 "2022-03-02"
 | 
						|
 | 
						|
.SH NAME
 | 
						|
kwboot \- Boot Marvell Kirkwood (and others 32-bit) SoCs over a serial link.
 | 
						|
.SH SYNOPSIS
 | 
						|
.B kwboot
 | 
						|
.RB [ "-b \fIimage\fP" ]
 | 
						|
.RB [ "-t" ]
 | 
						|
.RB [ "-B \fIbaudrate\fP" ]
 | 
						|
.RB \fITTY\fP
 | 
						|
.SH "DESCRIPTION"
 | 
						|
 | 
						|
The \fBkwboot\fP 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
 | 
						|
(\fIkwbimage v0\fP or \fIv1\fP), created using a tool such as
 | 
						|
\fBmkimage\fP.
 | 
						|
 | 
						|
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.
 | 
						|
 | 
						|
.SH "OPTIONS"
 | 
						|
 | 
						|
.TP
 | 
						|
.BI "\-b \fIimage\fP"
 | 
						|
Handshake; then upload file \fIimage\fP over \fITTY\fP.
 | 
						|
 | 
						|
Note that for the encapsulated boot code to be executed, \fIimage\fP
 | 
						|
must be of type "UART boot" (0x69). The \fBkwboot\fP program changes
 | 
						|
this type automatically, unless the \fIimage\fP is signed, in which
 | 
						|
case it cannot be changed.
 | 
						|
 | 
						|
This mode writes handshake status and upload progress indication to
 | 
						|
stdout. It is possible that \fIimage\fP 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.
 | 
						|
 | 
						|
.TP
 | 
						|
.B "\-b"
 | 
						|
Do only handshake on \fITTY\fP without uploading any file. File upload
 | 
						|
could be done later via option \fB\-D\fP or via any other Xmodem
 | 
						|
application, like \fBsx\fP(1).
 | 
						|
 | 
						|
.TP
 | 
						|
.B "\-d"
 | 
						|
Do special handshake on \fITTY\fP for console debug mode.
 | 
						|
 | 
						|
This will instruct BootROM to enter builtin simple console debug mode.
 | 
						|
Should be combined with option \fB\-t\fP.
 | 
						|
 | 
						|
To get a BootROM help, type this command followed by ENTER key:
 | 
						|
 | 
						|
.RS 1.2i
 | 
						|
.TP
 | 
						|
.B ?
 | 
						|
.RE
 | 
						|
.IP
 | 
						|
 | 
						|
Armada 38x BootROM has a bug which cause that BootROM's standard output
 | 
						|
is turned off on UART when SPI-NOR 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:
 | 
						|
 | 
						|
.RS 1.2i
 | 
						|
.TP
 | 
						|
.B w 0x40034100 1
 | 
						|
.RE
 | 
						|
 | 
						|
.TP
 | 
						|
.BI "\-D" " image"
 | 
						|
Upload file \fIimage\fP over \fITTY\fP 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.
 | 
						|
 | 
						|
.TP
 | 
						|
.BI "\-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.
 | 
						|
 | 
						|
.TP
 | 
						|
.B "\-q"
 | 
						|
Obsolete. Does nothing.
 | 
						|
 | 
						|
It is unknown whether it did something in the past.
 | 
						|
 | 
						|
.TP
 | 
						|
.BI "\-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 \fB\-b\fP with
 | 
						|
image file and option \fB\-d\fP.
 | 
						|
 | 
						|
Option \fB-a\fP 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.
 | 
						|
 | 
						|
.TP
 | 
						|
.BI "\-t"
 | 
						|
Run a terminal program, connecting standard input and output to
 | 
						|
.RB \fITTY\fP.
 | 
						|
 | 
						|
If used in combination with \fB\-b\fP, \fB\-D\fP or \fB\-d\fP 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 \fBctrl-\e\fP followed by \fBc\fP from console input.
 | 
						|
 | 
						|
.TP
 | 
						|
.BI "\-B \fIbaudrate\fP"
 | 
						|
If used in combination with \fB-b\fP, inject into the image header
 | 
						|
code that changes baud rate to \fIbaudrate\fP 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 \fITTY\fP correspondingly. This can make the upload significantly
 | 
						|
faster.
 | 
						|
 | 
						|
If used in combination with \fB-t\fP, adjust the baud rate to
 | 
						|
\fIbaudrate\fP on \fITTY\fP before starting terminal.
 | 
						|
 | 
						|
If both \fB-b\fP and \fB-t\fP are used, the baud rate is changed
 | 
						|
back to 115200 after the upload.
 | 
						|
 | 
						|
Tested values for \fIbaudrate\fP for Armada 38x include: 115200,
 | 
						|
230400, 460800, 500000, 576000, 921600, 1000000, 1152000, 1500000,
 | 
						|
2000000, 2500000, 3125000, 4000000 and 5200000.
 | 
						|
 | 
						|
.SH "EXAMPLES"
 | 
						|
 | 
						|
Instruct BootROM to enter boot Xmodem boot mode, send \fIu-boot-with-spl.kwb\fP
 | 
						|
kwbimage file via Xmodem on \fI/dev/ttyUSB0\fP at 115200 Bd and run terminal
 | 
						|
program:
 | 
						|
.IP
 | 
						|
.B kwboot -b u-boot-with-spl.kwb -t /dev/ttyUSB0
 | 
						|
 | 
						|
.PP
 | 
						|
Instruct BootROM to enter boot Xmodem boot mode, send header of
 | 
						|
\fIu-boot-with-spl.kwb\fP 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 and finally run terminal program:
 | 
						|
.IP
 | 
						|
.B kwboot -b u-boot-with-spl.kwb -B 5200000 -t /dev/ttyUSB0
 | 
						|
 | 
						|
.PP
 | 
						|
Only send \fIu-boot-with-spl.kwb\fP kwbimage file via Xmodem on \fI/dev/ttyUSB0\fP
 | 
						|
at 115200 Bd:
 | 
						|
.IP
 | 
						|
.B kwboot -D u-boot-with-spl.kwb /dev/ttyUSB0
 | 
						|
 | 
						|
.PP
 | 
						|
Instruct BootROM to enter console debug mode and run terminal program on
 | 
						|
\fI/dev/ttyUSB0\fP at 115200 Bd:
 | 
						|
.IP
 | 
						|
.B kwboot -d -t /dev/ttyUSB0
 | 
						|
 | 
						|
.PP
 | 
						|
Only run terminal program on \fI/dev/ttyUSB0\fP at 115200 Bd:
 | 
						|
.IP
 | 
						|
.B kwboot -t /dev/ttyUSB0
 | 
						|
 | 
						|
.SH "SEE ALSO"
 | 
						|
.PP
 | 
						|
\fBmkimage\fP(1), \fBsx\fP(1)
 | 
						|
 | 
						|
.SH "AUTHORS"
 | 
						|
 | 
						|
Daniel Stodden <daniel.stodden@gmail.com>
 | 
						|
.br
 | 
						|
Luka Perkov <luka@openwrt.org>
 | 
						|
.br
 | 
						|
David Purdy <david.c.purdy@gmail.com>
 | 
						|
.br
 | 
						|
Pali Rohár <pali@kernel.org>
 | 
						|
.br
 | 
						|
Marek Behún <kabel@kernel.org>
 |