PandaBoard USBBOOT

This article explains how to boot the pandaboard over the USB interface.

Required tools
To boot the Pandaboard over USB, you need to get the omap4boot tool:

git clone git://github.com/swetland/omap4boot.git

Then, apply the following patch to change the u-boot start address:

diff --git a/config_panda.h b/config_panda.h --- a/config_panda.h +++ b/config_panda.h @@ -8,7 +8,7 @@ #define CONFIG_RAM_VECTORS            0x4030D000 #define CONFIG_STACK_TOP              0x4030D000 -#define CONFIG_ADDR_DOWNLOAD          0x82000000 +#define CONFIG_ADDR_DOWNLOAD          0x80e80000 #define CONFIG_ADDR_ATAGS             0x80000100 #define CONFIG_ADDR_KERNEL            0x80008000

Then compile the tool;

make TOOLCHAIN=arm-linux-gnueabi-

Alternatively, for hardfloat

make TOOLCHAIN=arm-linux-gnueabihf-

This will produce several files in out/panda directory. We need aboot.bin and usbboot, and the u-boot.bin for your favorite panda. Failed to build complaining that "smc 1" is incorrect command for the architecture chosen? Here is the another patch to apply: diff --git a/Makefile b/Makefile --- a/Makefile +++ b/Makefile @@ -42,6 +42,7 @@ TARGETCFLAGS := -g -Os -Wall TARGET_CFLAGS += -march=armv7-a -fno-builtin -ffreestanding TARGET_CFLAGS += -I. -Iinclude TARGET_CFLAGS += -include config$(BOARD).h +TARGET_CFLAGS += -Wa,-march=armv7-a+sec TARGET_LIBGCC := $(shell $(TARGET_CC) $(TARGET_CFLAGS) -print-libgcc-file-name)

Starting
To boot your panda over USB, you have to be root on your local machine - or be one of sudoers. Run the following:

sudo ./usbboot aboot.bin u-boot.bin

where usbboot and aboot.bin are files that you built on the previous step, and u-boot.bin is your u-boot image. Do not power the panda up, instead connect the USB cable (one side to your PC, and another to J18 on the panda) and you should see the following on the PC's console:

waiting for OMAP44xx device... reading ASIC ID CHIP: 4440 IDEN: 0000000000000000000000000000000000000000 MPKH: 0000000000000000000000000000000000000000000000000000000000000000 CRC0: 229e85ba CRC1: 00000000 sending 2ndstage to target... f0030002 waiting for 2ndstage response... sending image to target...
 * 1) ./usbboot aboot.bin u-boot.bin

The panda's serial console should show something like

[ aboot second-stage loader ] MSV=00000000 jumping to 0x80e80000... and an u-boot prompt.

Issues? Problems?

 * check that you are using good USB cable, replace it if needed
 * check if you are root when starting usbboot; it won't complain about insufficient privileges, it just will be silent
 * write an e-mail to author of omap4boot (Brian Swetland) or to me :)