]> git.kernelconcepts.de Git - karo-tx-uboot.git/blob - doc/README.hawkboard
spl: add NAND Library to new SPL
[karo-tx-uboot.git] / doc / README.hawkboard
1 Summary
2 =======
3 The README is for the boot procedure used for TI's OMAP-L138 based
4 hawkboard. The hawkboard comes with a 128MiB Nand flash and a 128MiB
5 DDR SDRAM along with a host of other controllers.
6
7 The hawkboard is booted in three stages. The initial bootloader which
8 executes upon reset is the Rom Boot Loader(RBL) which sits in the
9 internal ROM of the omap. The RBL initialises the memory and the nand
10 controller, and copies the image stored at a predefined location(block
11 1) of the nand flash. The image loaded by the RBL to the memory is the
12 AIS signed nand_spl image. This, in turns copies the u-boot binary
13 from the nand flash to the memory and jumps to the u-boot entry point.
14
15 AIS is an image format defined by TI for the images that are to be
16 loaded to memory by the RBL. The image is divided into a series of
17 sections and the image's entry point is specified. Each section comes
18 with meta data like the target address the section is to be copied to
19 and the size of the section, which is used by the RBL to load the
20 image. At the end of the image the RBL jumps to the image entry
21 point.
22
23 The secondary stage bootloader(nand_spl) which is loaded by the RBL
24 then loads the u-boot from a predefined location in the nand to the
25 memory and jumps to the u-boot entry point.
26
27 The reason a secondary stage bootloader is used is because the ECC
28 layout expected by the RBL is not the same as that used by
29 u-boot/linux. This also implies that for flashing the nand_spl image,
30 we need to use the u-boot which uses the ECC layout expected by the
31 RBL[1]. Booting u-boot over UART(UART boot) is explained here[2].
32
33
34 Compilation
35 ===========
36 Three images might be needed
37
38 * nand_spl - This is the secondary bootloader which boots the u-boot
39   binary.
40
41   hawkboard_nand_config
42
43   The nand_spl ELF gets generated under nand_spl/u-boot-spl. This
44   needs to be processed with the AISGen tool for generating the AIS
45   signed image to be flashed. Steps for generating the AIS image are
46   explained here[3].
47
48 * u-boot binary - This is the image flashed to the nand and copied to
49   the memory by the nand_spl.
50
51   hawkboard_config
52
53 * u-boot for uart boot - This is same as the u-boot binary generated
54   above, with the sole difference of the CONFIG_SYS_TEXT_BASE being
55   0xc1080000, as expected by the RBL.
56
57   hawkboard_uart_config
58
59
60 Flashing the images to Nand
61 ===========================
62 The nand_spl AIS image needs to be flashed to the block 1 of the
63 Nand flash, as that is the location the RBL expects the image[4]. For
64 flashing the nand_spl, boot over the u-boot specified in [1], and
65 flash the image
66
67 => tftpboot 0xc0700000 <nand_spl_ais.bin>
68 => nand erase 0x20000 0x20000
69 => nand write.e 0xc0700000 0x20000 <nand_spl_size>
70
71 The u-boot binary is flashed at location 0xe0000(block 6) of the nand
72 flash. The nand_spl loader expects the u-boot at this location. For
73 flashing the u-boot binary
74
75 => tftpboot 0xc0700000 u-boot.bin
76 => nand erase 0xe0000 0x40000
77 => nand write.e 0xc0700000 0xe0000 <u-boot-size>
78
79
80 Links
81 =====
82
83 [1]
84  http://code.google.com/p/hawkboard/downloads/detail?name=u-boot_uart_ais_v1.bin
85
86 [2]
87  http://elinux.org/Hawkboard#Booting_u-boot_over_UART
88
89 [3]
90  http://elinux.org/Hawkboard#Signing_u-boot_for_UART_boot
91
92 [4]
93  http://processors.wiki.ti.com/index.php/RBL_UBL_and_host_program#RBL_booting_from_NAND_and_ECC.2FBad_blocks