|
|
|
|
|
|
|
u-boot for the TI OMAP730 Perseus2
|
|
|
|
|
|
|
|
Dave Peverley, MPC-Data Limited
|
|
|
|
http://www.mpc-data.co.uk
|
|
|
|
|
|
|
|
|
|
|
|
Overview :
|
|
|
|
|
|
|
|
As the OMAP730 is similar to the OMAP1610 in many ways, this port was based
|
|
|
|
on the u-boot port to the OMAP1610 Innovator. Supported features are :
|
|
|
|
|
|
|
|
- Serial terminal support
|
|
|
|
- Onboard NOR Flash
|
|
|
|
- Ethernet via the seperate debug board
|
|
|
|
- Tested on Rev4 and Rev5 boards
|
|
|
|
|
|
|
|
It has also been tested to work correctly when built with a 'standard' GCC
|
|
|
|
3.2.1 cross-compiler as well as Montavista Linux CEE 3.1's toolchain.
|
|
|
|
|
|
|
|
|
|
|
|
Hardware Configuration :
|
|
|
|
|
|
|
|
The main dips on the P2 board should be set to 2,3,7 and 9 on with all
|
|
|
|
others off. On the debug board, dips 1 and 7 should be on with the rest off.
|
|
|
|
The serial console has been set up to run from the DB9 connector on the
|
|
|
|
P2 board at 115200 baud, 8 data bits, no stop bits, 1 parity bit.
|
|
|
|
|
|
|
|
It should be noted that the P2 board has NOR flash that is addressable via
|
|
|
|
either CS0 or CS3. This mode can be changed via DIP9 on the P2 board.
|
|
|
|
|
|
|
|
|
|
|
|
Installing u-boot for the P2 :
|
|
|
|
|
|
|
|
You can simply build u-boot for the Perseus by following the instructions
|
|
|
|
in the main readme file. The target configuration is "omap730p2_config".
|
|
|
|
Once u-boot has been built, you should strip the executable so it can be
|
|
|
|
loaded via CCS (which cant cope with the symbols in the ELF binary) :
|
|
|
|
$ cp u-boot u-boot.out
|
|
|
|
$ arm-linux-strip u-boot.out
|
|
|
|
|
|
|
|
The method we've used for installing u-boot the first time on a P2 is
|
|
|
|
as follows :
|
|
|
|
|
|
|
|
1) Configure TI Code Composer Studio to connect to the P2 board via JTAG
|
|
|
|
as described in the Users Guide.
|
|
|
|
|
|
|
|
2) Set up the P2 to boot from CS3, and connect with CCS. Reset the CPU
|
|
|
|
and run the "init_mmu" GEL script.
|
|
|
|
|
|
|
|
3) Use the "Load Program" option to send the u-boot.out file to the P2 and
|
|
|
|
run.
|
|
|
|
|
|
|
|
At this point, u-boot should run and you will see the boot menu on your
|
|
|
|
serial terminal. You can then load the u-boot image to memory :
|
|
|
|
|
|
|
|
# loadb 0x10000000
|
|
|
|
|
|
|
|
Send the "u-boot.bin" binary via the serial using Kermit. Once loaded
|
|
|
|
you can self-flash u-boot :
|
|
|
|
|
|
|
|
# protect off 1:0
|
|
|
|
# erase 1:0
|
|
|
|
# cp.b 0x10000000 0x0 0x20000
|
|
|
|
|
|
|
|
You should now be able to reset the board and run u-boot from flash.
|
|
|
|
|
|
|
|
|
|
|
|
Alternative flash option :
|
|
|
|
|
|
|
|
Sometimes, if you've been silly, you can get the board into a state where
|
|
|
|
whats in flash has upset the board so much that you can no longer connect
|
|
|
|
to the P2 via JTAG. However, you can set DIP9 to off to swap the boot mode
|
|
|
|
of the P2 so that you boot from RAM instead of NOR flash. This moves NOR
|
|
|
|
flash up to 0x0C000000. You can build a special version of u-boot to
|
|
|
|
utilise this by the following config :
|
|
|
|
|
|
|
|
$ make omap730p2_cs0boot_config
|
|
|
|
|
|
|
|
If you load this up via CCS it will detect flash at its alternate location
|
|
|
|
and allow you to programme your u-boot image (which, remember must be built
|
|
|
|
for CS3 boot!) Once you do this, you can revert to CS3 boot and it will work
|
|
|
|
fine again.
|
|
|
|
|
|
|
|
|
|
|
|
Errata :
|
|
|
|
|
|
|
|
1) It's been observed that sometimes the tftp transfer of kernels to the
|
|
|
|
board can have checksum errors or stall. This appears to be an issue
|
|
|
|
with the lan91c96.c driver, and can normally be worked around by
|
|
|
|
resetting the board and trying again.
|