1Summary
2=======
3The README is for the boot procedure used for various DA850 (or compatible
4parts such as the AM1808) based boards.
5
6In the context of U-Boot, the board is booted in three stages. The initial
7bootloader which executes upon reset is the ROM Boot Loader (RBL) and sits
8in the internal ROM. The RBL initializes the internal memory and then
9depending on the exact board and pin configurations will initialize another
10controller (such as SPI or NAND) to continue the boot process by loading
11the secondary program loader (SPL).  The SPL will initialize the system
12further (some clocks, SDRAM) and then load the full u-boot from a
13predefined location in persistent storage to DDR and jumps to the u-boot
14entry point.
15
16AIS is an image format defined by TI for the images that are to be loaded
17to memory by the RBL. The image is divided into a series of sections and
18the image's entry point is specified. Each section comes with meta data
19like the target address the section is to be copied to and the size of the
20section, which is used by the RBL to load the image. At the end of the
21image the RBL jumps to the image entry point.  The AIS format allows for
22other things such as programming the clocks and SDRAM if the header is
23programmed for it.  We do not take advantage of this and instead use SPL as
24it allows for additional flexibility (run-time detect of board revision,
25loading the next image from a different media, etc).
26
27
28Compilation
29===========
30The exact build target you need will depend on the board you have.  For
31Logic PD boards, or other boards which store the ethernet MAC address at
32the end of SPI flash, run 'make da850evm'.  For boards which store the
33ethernet MAC address in the i2c EEPROM located at 0x50, run
34'make da850_am18xxevm'.  Once this build completes you will have a
35u-boot.ais file that needs to be written to the correct persistent
36storage.
37
38
39Flashing the images to SPI
40==========================
41The AIS image can be written to SPI flash using the following commands.
42Assuming that the network is configured and enabled and the u-boot.ais file
43is tftp'able.
44
45U-Boot > sf probe 0
46U-Boot > sf erase 0 +320000
47U-Boot > tftp u-boot.ais
48U-Boot > sf write c0700000 0 $filesize
49
50Flashing the images to MMC
51==========================
52If the boot pins are set to boot from mmc, the RBL will try to load the
53next boot stage form the first couple of sectors of an external mmc card.
54As sector 0 is usually used for storing the partition information, the
55AIS image should be written at least after the first sector, but before the
56first partition begins. (e.g: make sure to leave at least 500KB of unallocated
57space at the start of the mmc when creating the partitions)
58
59CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR is used by SPL, and should
60point to the sector were the u-boot image is located. (eg. After SPL)
61
62There are 2 ways to copy the AIS image to the mmc card:
63
64 1 - Using the TI tool "uflash"
65	$ uflash -d /dev/mmcblk0  -b ./u-boot.ais -p OMAPL138  -vv
66
67 2 - using the "dd" command
68	$ dd if=u-boot.ais of=/dev/mmcblk0 seek=117 bs=512 conv=fsync
69
70uflash writes the AIS image at offset 117. For compatibility with uflash,
71CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR is set to take into account this
72offset, and the dd command is adjusted accordingly.
73
74Recovery
75========
76
77In the case of a "bricked" board, you need to use the TI tools found
78here[1] to write the u-boot.ais file.  An example of recovering to the SPI
79flash of an AM1808 would be:
80
81$ mono sfh_OMAP-L138.exe -targetType AM1808 -p /dev/ttyUSB0 \
82	-flash_noubl /path/to/u-boot.ais
83
84For other target types and flash locations:
85
86$ mono sfh_OMAP-L138.exe -h
87
88Links
89=====
90[1]
91 http://processors.wiki.ti.com/index.php/Serial_Boot_and_Flash_Loading_Utility_for_OMAP-L138
92