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