As it might be interesting for others, here is a small tutorial on how
to boot the Beagle through UART:
1 - Generate an x-loader with serial support:
git clone http://git.omapzoom.org/repo/u-boot.git
git clone http://git.omapzoom.org/repo/x-loader.git
now you've got an ~13k x-load.bin in the x-loader directory.
2 - Generate Nishant Menon's tools
git clone git clone http://github.com/nmenon/omap-u-boot-utils.git
now you've got two tools: pserial and ukermit
3 - Pick up the U-Boot you'd like to put in SDRAM
You can either use the one generated by OE, or you can quickly
generate a new one:
git clone http://git.denx.de/u-boot.git u-boot-denx
now you've got an ~160k u-boot.bin in the u-boot-denx directory.
4 - Prepare the boot
cp ../x-loader/x-load.bin .
cp ../u-boot-denx/u-boot.bin .
5 - Boot (use the right tty for your setup of course)
Power off the board.
Run pserial to put the x-loader in the internal SRAM:
./pserial -p /dev/ttyS0 -f x-load.bin
If you already have an x-loader in NAND, you must push the User Button
so that the NAND boot is tried after the UART boot, then power-on the
If you don't have one, simply power-on the board.
Waiting For Device ASIC ID: Press Ctrl+C to stop
ASIC ID Detected.
Downloading file: 100.000% completed(12700/12700 bytes)
File download completed.
Then run ukermit, to transmit the u-boot to the x-loader and then the
x-loader puts it in SDRAM:
./ukermit -p /dev/ttyS0 -f u-boot.bin
Downloading file: 100.000% completed(162656/162656 bytes)
File Download completed
And then you have an U-Boot prompt like this:
## Start Addr = 0x80008000
Starting OS Bootloader from UART ...
U-Boot 2009.03-rc2-00013-gefb4734 (C3A4r 18 2009 - 10:55:33)
OMAP3530-GP rev 2, CPU-OPP2 L3-165MHz
OMAP3 Beagle board + LPDDR/NAND
DRAM: 128 MB
NAND: 256 MiB
Board revision Ax/Bx
Die ID #047a00030000000004013f780601000c
Hit any key to stop autoboot: 0
You can automate the process using the little script attached.
This has been tested with B5 and B7 boards on Ubuntu 8.10.
Comments and/or remarks welcome!
boot_omap3_serial.sh (126 Bytes)