Didj UART Boot

From eLinux.org
Revision as of 16:31, 18 June 2011 by PhilKll (talk | contribs) (Software Requirements)
Jump to: navigation, search

Hardware Requirements

To perform UART boot, you must:

  1. Make a serial connection to the UART pins on the Didj. To do this you can use a breakout board, or you can solder wires directly to the cartridge connector pins.
  2. Pull cartridge pin D5 to ground, via a pulldown resistor. (470Ω, 2200Ω, and 3300Ω are known to work).

Software Requirements

  1. Lightning-boot 1.4+
  2. u-boot
  3. Terminal program(s) - (ex: cutecom) that can send plain binary, xmodem and kermit

sudo apt-get install lrzsz ckermit cutecom 

Step 1 - Lightning Boot

  1. Connect your Didj UART Console cable, and connect D5 to ground via the resistor mentioned above. Do not power up your Didj yet.
  2. Run cutecom, select the connection to your device (ex: /dev/ttyUSB0), and set the connection params to 19200 8N1.
  3. Select a download type of Plain.
  4. Click Send File- and in the next dialog select your lightning-boot.bin but do not send it yet.
  5. Pull the power switch on the didj down and hold it down.
  6. While doing this, send the lightning-boot file from Cutecom, while continuing to hold the Didj power switch down as it loads.
  7. Upon completion, the lightning boot screen will display on your Didj; at which time you may let go of the power button (and massage your finger).
  8. Disconnect the connection (but dont leave cutecom)

Step 2 - U-Boot

  1. Change the baud rate to 115200 and then reopen the connection to the device.
  2. Select a download type of XModem, click Send File and select/open the U-Boot.bin file. (This will queue up the file for transmission.)
  3. Trigger the transmission of this file by pressing any button on the device.

When U-Boot is loaded you will see

LF1000# 

4. Quit cutecom.

Step 3 - Kernel

1. From the command line, run Kermit:

#kermit

2. Paste the following at the C-Kermit> prompt once Kermit launches: (TODO - Command Line Params)

set modem type none
set line /dev/ttyUSB0
set carrier-watch off
set speed 115200
connect

This takes you to the u-boot LF1000 # prompt.
3. Enter the following:

setenv bootargs mem=18M init=/sbin/init console=ttyS0,115200 root=31:06 ro rootflags=noatime rootfstype=jffs2 ubi.mtd=Brio ubi.mtd=prg_Brio ubi.mtd=Cartridge ubi.mtd=EXT

Followed by:

setenv loadaddr 1800000
loadb

4. Type ctrl-backslash and type letter c. This returns you to the C-Kermit> prompt.
Enter the following to send your image:

robust
cd /to/wherever/your/zImage/is
send zImage

The file is sent. When done, kermit returns you to the C-Kermit> prompt.

5. Reconnect to u-boot and boot the image you just sent:

C-Kermit>connect
LF1000 # go 1800000

If you see boot messages filling your console display, you have successfully performed a UART boot.