DM8148 DM814x provides several boot sequences selectable via BTMODE[4:0] bootstrap pins. In order to fully understand how boot work on Naon platform, please read [[Memory organization (Naon)|Memory organization]] first.
For a detailed explanation of DM814x/AM387x see their Technical Reference Manual (available from TI websize) at section chapter ''ROM Code Memory and Peripheral Booting''of [http://www.ti.com/lit/ug/sprugz8a/sprugz8b.pdf DM8148 Technical Reference Manual].
By default, Naon provides the following configuration:
# EMAC
Bootrom tries each boot mode in sequence and stops when it find finds a valid boot code.
Assuming that:
Boot sequence can be changed by optional external circuitry implemented on carrier board as described by [[Integration guide (Naon)|Integration guide]].
=== Memory boot details ===
==== MMC Booting ====
When MMC boot option is selected, bootrom looks for a valid boot sector on MMC1.
To properly program a SD/MMC card so it's recognized by bootrom, please follow [http://processors.wiki.ti.com/index.php/DM814x_AM387x_PSP_U-Boot#Setting_Up_Boot_Environment_on_SD_Card this guide] from TI wiki.
In brief:
* the first (if more that one is available) partition of MMC must be formatted as FAT12/16 or FAT32 (the partition must also be marked as primary and active)
* inside this partition there must be a file named ''MLO'' which is the U-Boot 1st stage, a file named ''u-boot'' (which is the second stage) and the ''uImage'' binary file (which is the kernel image)
* the second partition of the MMC must be formatted as ext3 and must contain a plain root file system
Once the system boots from the SD and U-Boot is running, the following commands can be launched from the U-Boot shell to start the system, reading the kernel from the card boot partition and mounting the root file system stored in the second partition (/dev/mmcblk0p2):
When UART boot is selected the bootrom output a sequence of <code>CCC</code> characters on serial console (as usual 115200 8N1). While the <code>C</code> are being written, bootrom waits for a [[wikipedia:Xmodem|XMODEM]] transfer to startfor the 1st stage. Once the first stage is downloaded, bootrom execute it and the user should download the second stage via one of the available [[:Category:U-Boot|U-Boot]] command.
Bootrom waits for nearly 3 seconds before timeout the XMODEM transaction and go to the next step in the configured boot sequence.
A detailed explanation of UART booting is available into the [http://processors.wiki.ti.com/index.php/DM814x_AM387x_PSP_U-Boot#U-Boot_UART_support U-Boot] section on TI wiki.