Summary
=======
The README is for the boot procedure used for various DA850 (or compatible
parts such as the AM1808) based boards.

In the context of U-Boot, the board is booted in three stages. The initial
bootloader which executes upon reset is the ROM Boot Loader (RBL) and sits
in the internal ROM. The RBL initializes the internal memory and then
depending on the exact board and pin configurations will initialize another
controller (such as SPI or NAND) to continue the boot process by loading
the secondary program loader (SPL).  The SPL will initialize the system
further (some clocks, SDRAM) and then load the full u-boot from a
predefined location in persistent storage to DDR and jumps to the u-boot
entry point.

AIS is an image format defined by TI for the images that are to be loaded
to memory by the RBL. The image is divided into a series of sections and
the image's entry point is specified. Each section comes with meta data
like the target address the section is to be copied to and the size of the
section, which is used by the RBL to load the image. At the end of the
image the RBL jumps to the image entry point.  The AIS format allows for
other things such as programming the clocks and SDRAM if the header is
programmed for it.  We do not take advantage of this and instead use SPL as
it allows for additional flexibility (run-time detect of board revision,
loading the next image from a different media, etc).


Compilation
===========
The exact build target you need will depend on the board you have.  For
Logic PD boards, or other boards which store the ethernet MAC address at
the end of SPI flash, run 'make da850evm'.  For boards which store the
ethernet MAC address in the i2c EEPROM located at 0x50, run
'make da850_am18xxevm'.  Once this build completes you will have a
u-boot.ais file that needs to be written to the correct persistent
storage.


Flashing the images to SPI
==========================
The AIS image can be written to SPI flash using the following commands.
Assuming that the network is configured and enabled and the u-boot.ais file
is tftp'able.

U-Boot > sf probe 0
U-Boot > sf erase 0 +320000
U-Boot > tftp u-boot.ais
U-Boot > sf write c0700000 0 $filesize

Flashing the images to MMC
==========================
If the boot pins are set to boot from mmc, the RBL will try to load the
next boot stage form the first couple of sectors of an external mmc card.
As sector 0 is usually used for storing the partition information, the
AIS image should be written at least after the first sector, but before the
first partition begins. (e.g: make sure to leave at least 500KB of unallocated
space at the start of the mmc when creating the partitions)

CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR is used by SPL, and should
point to the sector were the u-boot image is located. (eg. After SPL)

There are 2 ways to copy the AIS image to the mmc card:

 1 - Using the TI tool "uflash"
	$ uflash -d /dev/mmcblk0  -b ./u-boot.ais -p OMAPL138  -vv

 2 - using the "dd" command
	$ dd if=u-boot.ais of=/dev/mmcblk0 seek=117 bs=512 conv=fsync

uflash writes the AIS image at offset 117. For compatibility with uflash,
CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR is set to take into account this
offset, and the dd command is adjusted accordingly.

Recovery
========

In the case of a "bricked" board, you need to use the TI tools found
here[1] to write the u-boot.ais file.  An example of recovering to the SPI
flash of an AM1808 would be:

$ mono sfh_OMAP-L138.exe -targetType AM1808 -p /dev/ttyUSB0 \
	-flash_noubl /path/to/u-boot.ais

For other target types and flash locations:

$ mono sfh_OMAP-L138.exe -h

Links
=====
[1]
 http://processors.wiki.ti.com/index.php/Serial_Boot_and_Flash_Loading_Utility_for_OMAP-L138
