xref: /openbmc/u-boot/doc/README.kwbimage (revision aa0c7a86cd236b8193218a09e1365c8991bb5ddc)
1*aa0c7a86SPrafulla Wadaskar---------------------------------------------
2*aa0c7a86SPrafulla WadaskarKirkwood Boot Image generation using mkimage
3*aa0c7a86SPrafulla Wadaskar---------------------------------------------
4*aa0c7a86SPrafulla Wadaskar
5*aa0c7a86SPrafulla WadaskarThis document describes the U-Boot feature as it
6*aa0c7a86SPrafulla Wadaskaris implemented for the Kirkwood family of SoCs.
7*aa0c7a86SPrafulla Wadaskar
8*aa0c7a86SPrafulla WadaskarThe Kirkwood SoC's can boot directly from NAND FLASH,
9*aa0c7a86SPrafulla WadaskarSPI FLASH, SATA etc. using its internal bootRom support.
10*aa0c7a86SPrafulla Wadaskar
11*aa0c7a86SPrafulla Wadaskarfor more details refer section 24.2 of Kirkwood functional specifications.
12*aa0c7a86SPrafulla Wadaskarref: www.marvell.com/products/embedded.../kirkwood/index.jsp
13*aa0c7a86SPrafulla Wadaskar
14*aa0c7a86SPrafulla WadaskarCommand syntax:
15*aa0c7a86SPrafulla Wadaskar--------------
16*aa0c7a86SPrafulla Wadaskar./tools/mkimage -l <kwboot_file>
17*aa0c7a86SPrafulla Wadaskar		to list the kwb image file details
18*aa0c7a86SPrafulla Wadaskar
19*aa0c7a86SPrafulla Wadaskar./tools/mkimage -n <board specific configuration file> \
20*aa0c7a86SPrafulla Wadaskar                -T kwbimage -a <start address> -e <execution address> \
21*aa0c7a86SPrafulla Wadaskar		-d <input_raw_binary> <output_kwboot_file>
22*aa0c7a86SPrafulla Wadaskar
23*aa0c7a86SPrafulla Wadaskarfor ex.
24*aa0c7a86SPrafulla Wadaskar./tools/mkimage -n ./board/Marvell/openrd_base/kwbimage.cfg \
25*aa0c7a86SPrafulla Wadaskar                -T kwbimage -a 0x00600000 -e 0x00600000 \
26*aa0c7a86SPrafulla Wadaskar		-d u-boot.bin u-boot.kwb
27*aa0c7a86SPrafulla Wadaskar
28*aa0c7a86SPrafulla Wadaskarkwimage support available with mkimage utility will generate kirkwood boot
29*aa0c7a86SPrafulla Wadaskarimage that can be flashed on the board NAND/SPI flash
30*aa0c7a86SPrafulla Wadaskar
31*aa0c7a86SPrafulla WadaskarBoard specific configuration file specifications:
32*aa0c7a86SPrafulla Wadaskar------------------------------------------------
33*aa0c7a86SPrafulla Wadaskar1. This file must present in the $(BOARDDIR) and the name should be
34*aa0c7a86SPrafulla Wadaskar	kwbimage.cfg (since this is used in Makefile)
35*aa0c7a86SPrafulla Wadaskar2. This file can have empty lines and lines starting with "#" as first
36*aa0c7a86SPrafulla Wadaskar	character to put comments
37*aa0c7a86SPrafulla Wadaskar3. This file can have configuration command lines as mentioned below,
38*aa0c7a86SPrafulla Wadaskar	any other information in this file is treated as invalid.
39*aa0c7a86SPrafulla Wadaskar
40*aa0c7a86SPrafulla WadaskarConfiguration command line syntax:
41*aa0c7a86SPrafulla Wadaskar---------------------------------
42*aa0c7a86SPrafulla Wadaskar1. Each command line is must have two strings, first one command or address
43*aa0c7a86SPrafulla Wadaskar	and second one data string
44*aa0c7a86SPrafulla Wadaskar2. Following are the valid command strings and associated data strings:-
45*aa0c7a86SPrafulla Wadaskar	Command string		data string
46*aa0c7a86SPrafulla Wadaskar	--------------		-----------
47*aa0c7a86SPrafulla Wadaskar	BOOT_FROM		nand/spi/sata
48*aa0c7a86SPrafulla Wadaskar	NAND_ECC_MODE		default/rs/hamming/disabled
49*aa0c7a86SPrafulla Wadaskar	NAND_PAGE_SIZE		any uint16_t hex value
50*aa0c7a86SPrafulla Wadaskar	SATA_PIO_MODE		any uint32_t hex value
51*aa0c7a86SPrafulla Wadaskar	DDR_INIT_DELAY		any uint32_t hex value
52*aa0c7a86SPrafulla Wadaskar	DATA			regaddr and regdara hex value
53*aa0c7a86SPrafulla Wadaskar	you can have maximum 55 such register programming commands
54*aa0c7a86SPrafulla Wadaskar
55*aa0c7a86SPrafulla Wadaskar3. All commands are optional to program
56*aa0c7a86SPrafulla Wadaskar
57*aa0c7a86SPrafulla WadaskarTypical example of kwimage.cfg file:
58*aa0c7a86SPrafulla Wadaskar-----------------------------------
59*aa0c7a86SPrafulla Wadaskar
60*aa0c7a86SPrafulla Wadaskar# Boot Media configurations
61*aa0c7a86SPrafulla WadaskarBOOT_FROM	nand
62*aa0c7a86SPrafulla WadaskarNAND_ECC_MODE	default
63*aa0c7a86SPrafulla WadaskarNAND_PAGE_SIZE	0x0800
64*aa0c7a86SPrafulla Wadaskar
65*aa0c7a86SPrafulla Wadaskar# Configure RGMII-0 interface pad voltage to 1.8V
66*aa0c7a86SPrafulla WadaskarDATA 0xFFD100e0 0x1b1b1b9b
67*aa0c7a86SPrafulla Wadaskar# DRAM Configuration
68*aa0c7a86SPrafulla WadaskarDATA 0xFFD01400 0x43000c30
69*aa0c7a86SPrafulla WadaskarDATA 0xFFD01404 0x37543000
70*aa0c7a86SPrafulla WadaskarDATA 0xFFD01408 0x22125451
71*aa0c7a86SPrafulla WadaskarDATA 0xFFD0140C 0x00000a33
72*aa0c7a86SPrafulla WadaskarDATA 0xFFD01410 0x000000cc
73*aa0c7a86SPrafulla WadaskarDATA 0xFFD01414 0x00000000
74*aa0c7a86SPrafulla WadaskarDATA 0xFFD01418 0x00000000
75*aa0c7a86SPrafulla WadaskarDATA 0xFFD0141C 0x00000C52
76*aa0c7a86SPrafulla WadaskarDATA 0xFFD01420 0x00000040
77*aa0c7a86SPrafulla WadaskarDATA 0xFFD01424 0x0000F17F
78*aa0c7a86SPrafulla WadaskarDATA 0xFFD01428 0x00085520
79*aa0c7a86SPrafulla WadaskarDATA 0xFFD0147C 0x00008552
80*aa0c7a86SPrafulla WadaskarDATA 0xFFD01504 0x0FFFFFF1
81*aa0c7a86SPrafulla WadaskarDATA 0xFFD01508 0x10000000
82*aa0c7a86SPrafulla WadaskarDATA 0xFFD0150C 0x0FFFFFF5
83*aa0c7a86SPrafulla WadaskarDATA 0xFFD01514 0x00000000
84*aa0c7a86SPrafulla WadaskarDATA 0xFFD0151C 0x00000000
85*aa0c7a86SPrafulla WadaskarDATA 0xFFD01494 0x00030000
86*aa0c7a86SPrafulla WadaskarDATA 0xFFD01498 0x00000000
87*aa0c7a86SPrafulla WadaskarDATA 0xFFD0149C 0x0000E803
88*aa0c7a86SPrafulla WadaskarDATA 0xFFD01480 0x00000001
89*aa0c7a86SPrafulla Wadaskar# End of Header extension
90*aa0c7a86SPrafulla WadaskarDATA 0x0 0x0
91*aa0c7a86SPrafulla Wadaskar
92*aa0c7a86SPrafulla Wadaskar------------------------------------------------
93*aa0c7a86SPrafulla WadaskarAuthor: Prafulla Wadaskar <prafulla@marvell.com>
94