Didj UART Boot

From eLinux.org
Jump to: navigation, search

Hardware Needed

Console Access

Software Needed

Lightning-boot 1.4+ Must be specifically UART enabled version.

U-Boot

Didj kernel zImage

Programs Needed

Terminal program - (ex: cutecom) that can send plain binary, xmodem and kermit

If using the "With Linux" method.

$ sudo apt-get install lrzsz ckermit cutecom

UART Boot Lightning Boot

Some Lightning Boot's are created specifically for UART booting, and some for NAND.

If you are unsure about what type your Lightning Boot is, run this command and check the output. The two options are UART and NAND.

# hexdump -C -n 16 lightning-boot.bin
00000000  00 00 00 ea 55 41 52 54  04 d0 9f e5 01 00 00 eb  |....UART........|
00000010


  • Connect your serial adapter between the Didj and your computer.
  • Configure your terminal
    • Device:(ex. Linux /dev/ttyUSB0) (ex. Windows COM1)
    • baudrate:19200
    • bits:8
    • Flow Control:none
    • Stopbits:1
    • Parity:none
  • Pull D5 low on your cartridge, or through a 470 Ohm resistor to ground.
  • Open the connection in the terminal program, and hold down the power button on the Didj.
  • Using the Send Text or plain method, open lightning-boot UART version (ex. lightning-boot-1.4-UART.bin), nothing will be displayed, but usb/rs232 adapter will show activity, if its got an LED to do so.
  • Once loaded you should see a blue screen with a menu, you can let off the power button (if you are loading an older version of lightning boot, there will be no blue screen, it will stay blank and you will need to keep the power button held down through the entire process). There is two ways to continue from here.

If you have an SD card connected you can use the lightning boot 1.4+ menu to load a zImage or u-boot.bin off of it and be finished here. Otherwise if you would like to continue loading over UART or don't have lightning boot 1.4+ continue to step 2.

Loading U-Boot

  • Change the baud rate to 115200 and then reopen the connection to the device.
  • 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.)
  • Trigger the transmission of this file by pressing any button on the device.

When U-Boot is loaded you will see

LF1000# 


Loading Kernel

General

If your terminal program supports kermit, you can proceed from here. If you are using Linux, and your terminal does not support Kermit, go to the With Linux section, it explains in more detail how to set your PC up to transfer the file.

On Didj

Once uboot has been sent there'll be a terminal prompt, enter.

LF1000# 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
LF1000# setenv loadaddr 1800000
LF1000# loadb

Then send zImage file using the Kermit transfer method once finished there will be another terminal prompt, enter.

LF1000# go 1800000

If you see boot messages filling your console display, you have successfully performed a UART boot. You can now release the power button.


With Linux

Quit your terminal program.

On Host

From the command line, run Kermit:

$ kermit

Run the following at the Kermit prompt.

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

This takes you to the u-boot prompt.

Enter the following: On Didj

LF1000 # 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
LF1000 # setenv loadaddr 1800000
LF1000 # loadb


Type ctrl-backslash and type letter c. This returns you to the prompt. On Host Enter the following to send your image:

C-Kermit>robust
C-Kermit>cd /to/wherever/your/zImage/is
C-Kermit>send zImage

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

Reconnect to u-boot and boot the image you just sent: On Host

C-Kermit>connect

On Didj

LF1000 # go 1800000


If you see boot messages filling your console display, you have successfully performed a UART boot. You can now release the power button