Browse files

kwboot: Boot Marvell Kirkwood SoCs over a serial link.

The kwboot program boots boards based on Marvell's Kirkwood platform
via Xmodem over their integrated UART.

Signed-off-by: Daniel Stodden <>
  • Loading branch information...
Daniel Stodden
Daniel Stodden committed Apr 22, 2012
1 parent 2790bf6 commit b5cd8105faaec7a5be03bd32673bd1d57512814b
Showing with 840 additions and 0 deletions.
  1. +84 −0 doc/kwboot.1
  2. +6 −0 tools/Makefile
  3. +750 −0 tools/kwboot.c
@@ -0,0 +1,84 @@
.TH KWBOOT 1 "2012-03-05"
kwboot \- Boot Marvell Kirkwood SoCs over a serial link.
.B kwboot
.RB [ "-b \fIimage\fP" ]
.RB [ "-t" ]
.RB [...]
.RB [\fITTY\fP]
.B kwboot
program boots boards based on Marvell's Kirkwood platform 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\fP), created
using a tool such as
.B 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 transfered using
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.
.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). Boot images of different types,
such as backup images of vendor firmware downloaded from flash memory
(type 0x8B), will not work (or not as expected). See \fB-p\fP for a
This mode writes handshake status and upload progress indication to
.BI "\-p"
In combination with \fB-b\fP, patches the header in \fIimage\fP prior
to upload, to "UART boot" type.
This option attempts on-the-fly conversion of some none-UART image
types, such as images which were originally formatted to be stored in
flash memory.
Conversion is performed in-core. The contents of \fIimage\fP will not
be altered.
.BI "\-t"
Run a terminal program, connecting standard input and output to
.RB \fITTY\fP.
If used in combination with \fB-b\fP, terminal mode is entered
immediately following a successful image upload.
If standard I/O streams connect to a console, this mode will terminate
after receiving 'ctrl-\\' followed by 'c' from console input.
.BI "\-B \fIbaudrate\fP"
Adjust the baud rate on \fITTY\fP. Default rate is 115200.
Daniel Stodden <>
@@ -68,6 +68,7 @@ BIN_FILES-$(CONFIG_CMD_LOADS) += img2srec$(SFX)
BIN_FILES-$(CONFIG_XWAY_SWAP_BYTES) += xway-swap-bytes$(SFX)
BIN_FILES-y += mkenvimage$(SFX)
BIN_FILES-y += mkimage$(SFX)
BIN_FILES-y += kwboot$(SFX)
BIN_FILES-$(CONFIG_SMDK5250) += mksmdk5250spl$(SFX)
BIN_FILES-$(CONFIG_MX28) += mxsboot$(SFX)
@@ -101,6 +102,7 @@ OBJ_FILES-$(CONFIG_NETCONSOLE) += ncb.o
NOPED_OBJ_FILES-y += os_support.o
NOPED_OBJ_FILES-y += ublimage.o
OBJ_FILES-y += kwboot.o
# Don't build by default
#ifeq ($(ARCH),ppc)
@@ -234,6 +236,10 @@ $(obj)ncb$(SFX): $(obj)ncb.o
$(obj)ubsha1$(SFX): $(obj)os_support.o $(obj)sha1.o $(obj)ubsha1.o
$(obj)kwboot$(SFX): $(obj)kwboot.o
# Some of the tool objects need to be accessed from outside the tools directory
$(obj)%.o: $(SRCTREE)/common/%.c
$(HOSTCC) -g $(HOSTCFLAGS_NOPED) -c -o $@ $<
Oops, something went wrong.

0 comments on commit b5cd810

Please sign in to comment.