mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-15 09:27:35 +00:00
4aac44be11
The da850 soc's can boot from a external mmc card, but the AIS image should be written to the correct sector. Add instructions to copy the AIS image to a MMC card. Signed-off-by: Axel Haslam <ahaslam@baylibre.com> Reviewed-by: Tom Rini <trini@konsulko.com>
91 lines
3.7 KiB
Text
91 lines
3.7 KiB
Text
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
|