Hi,

Once you have built the SDK the next step is to install all the software built by the SDK into the Leopard Board.

RidgeRun SDK has a system called the Uboot installer which is a perl-expect based scripts that issues commands to the Uboot that is running on the Leopard Board in order to install all the software.

The following are basic steps for using the RidgeRun Uboot Installler properly:

 

1) Choose the communication method for sending the commands to the Leopard Board.

Typically the communication  is over the serial port /dev/ttyS0, however the telnet is also supported:

$ make config

    Installer Configuration  --->

        Communication method with the target board (Serial port)  --->
           (/dev/ttyS0) Serial port for target communication

 

2) Choose the method for sending the binaries to the Leopard Board.

There are 3 method available for the Leopard Board: TFTP, USB DFU and Serial Port.

a) TFTP

For using the TFTP method you should ensure that you have your TFTP setup properly as is described at http://designsomething.org/leopardboard/f/22/t/102.aspx

$ make config

   Installer Configuration  --->

        Method to download firmware to the target board (TFTP)  --->
        *** Network options for installation ***
     (eth0) Interface on your host machine connected to your target hardware
        U-boot IP address (Static IP address)  --->
     (192.168.0.101) Static IP
     (255.255.255.0) Static mask

b) USB DFU

$ make config

   Installer Configuration  --->

        Method to download firmware to the target board (USB DFU)  --->

c) Serial Port

$ make config

   Installer Configuration  --->

        Method to download firmware to the target board (Serial)  --->

 

3) Installing the UBL and the Uboot.

If you are installing for first time the software built by the SDK on the Leopard Board you MUST install the UBL and Uboot build by the SDK, because there are some features needed by the Uboot installer that the Uboot that comes preinstalled in the board doesn't support.

In order to install the UBL and Uboot built by the SDK you should perform the following command:

$ make installbootloader
  Ridgerun Linux SDK
  Board configuration: Leopard Board
 

  Installation system of uboot images over TFTP for host 192.168.0.100
  Please be sure u-boot is running on port /dev/ttyUSB0 and none process (like minicom) is using it
  u-boot port /dev/ttyUSB0

  Performing handshake with u-boot...done.

  Trying to identify NAND block size... detected 0x20000

  Loading upgrade bootloader version...
  Disabling boot command...
    Uboot <= setenv bootcmd
  Disabling autostart option...
    Uboot <= setenv autostart no
    Uboot <= saveenv
  Loading bootloader...
  Configuring the network...
    Uboot <= setenv ipaddr 192.168.0.101
    Uboot <= setenv serverip 192.168.0.100
    Uboot <= mw.l 0x82000000 0xff 0x100000
    Uboot <= tftp 0x82000000 upgrade_bootloader.bin.miguel.leopard
  Running upgrade bootloader...
    Uboot => go 0x82000000

  Performing handshake with u-boot...done.

  Configuring the network...
    Uboot <= setenv ipaddr 192.168.0.101
    Uboot <= setenv serverip 192.168.0.100
    Uboot <= setenv autostart no
  Loading UBL
    Uboot <= mw.l 0x81600000 0xff 0x8000
    Uboot <= tftp 0x81600000 ubl.nandbin.miguel.leopard
  Loading bootloader
    Uboot <= mw.l 0x81700000 0xff 0x100000
    Uboot <= tftp 0x81700000 bootloader.nandbin.miguel.leopard
  Installing bootloader...
  Erasing memory...
    Uboot <= nand scrub
  Saving UBL...
    Uboot <= nand write.ubl 0x81600000 0x20000 0x20000
  Saving bootloader...
    Uboot <= nand write 0x81700000 40000 0x400000

Now you should REBOOT the board and check the uboot prompt again:

$ minicom

Customized by RidgeRun
TI UBL Version: 1.20, Flash type: NAND
Booting Catalog Boot Loader
BootMode = NAND
Starting NAND Copy...
Valid MagicNum found.
   DONE

U-Boot 1.2.0 (Nov 29 2009 - 16:40:54)

DRAM:  128 MB
NAND:  NAND device: Manufacturer ID: 0x2c, Chip ID: 0xda (Micron NAND 256MiB 3,3V 8-bit)
Bad block table found at page 131008, version 0x01
Bad block table found at page 130944, version 0x01
256 MiB
*** Warning - bad CRC or NAND, using default environment

Davinci musb: using high speed
mtdparts variable not set, see 'help mtdparts'
mtdparts variable not set, see 'help mtdparts'
mtdparts variable not set, see 'help mtdparts'
mtdparts variable not set, see 'help mtdparts'
mtdparts variable not set, see 'help mtdparts'
In:    serial
Out:   serial
Err:   serial
ARM Clock :- 216MHz
DDR Clock :- 216MHz
Hit any key to stop autoboot:  0
Leopard Board #

 

4) Installing the Kernel, File System and several environment variables:

Before installing the Kernel and the File System there must be a Uboot build the SDK running on the board.

$ make install
  Ridgerun Linux SDK
  Board configuration: Leopard Board
 
  Installation system of uboot images over TFTP for host 192.168.0.100
  Please be sure u-boot is running on port /dev/ttyUSB0 and none process (like minicom) is using it
  u-boot port /dev/ttyUSB0

  Performing handshake with u-boot...done.

  Trying to identify NAND block size... detected 0x20000

  Verifying if mtd partitons need to be redefined...
    Uboot <= setenv mtdparts mtdparts=nand_davinci.0:4096k(UBOOT),128k(UBOOT_ENV),3200k(KERNEL),20480k(FS)
    Uboot <= mtdparts
    Uboot <= saveenv

  Verifying if kernel needs to be installed...
  Loading Kernel image...
  Configuring the network...
    Uboot <= setenv ipaddr 192.168.0.101
    Uboot <= setenv serverip 192.168.0.100
    Uboot <= setenv autostart
    Uboot <= mw.l 0x82000000 0xff 0xc8000
    Uboot <= tftp 0x82000000 kernel.uImage.miguel.leopard
    Uboot <= setenv autostart yes
  Erasing NAND...
    Uboot <= nand erase KERNEL
  Saving kernel...
    Uboot <= nand write 0x82000000 KERNEL 320000
  Saving new kernel load address...
    Uboot <= setenv kernelloadaddr 0x82000000
  Saving new kernel save addresses and offset...
    Uboot <= setenv kernelsaveaddr 0x420000
    Uboot <= setenv kerneloffset 0x420000
  Saving new kernel size...
    Uboot <= setenv ksize 0x320000
  Saving new kernel md5sum value...
    Uboot <= setenv kernelmd5sum 6c4b5809a1b8384f09ee965c0c92864b
    Uboot <= saveenv

  Verifying if file system needs to be installed...
  File system doesn't needs to be loaded

  Verifying if kernel command line needs to be installed...
    Uboot <= setenv bootargs console=ttyS0,115200n8 video=davincifb:osd1=0x0x8 mem=116M root=/dev/nfs nfsroot=192.168.0.100:/home/miguel/DM355SDK786811/fs/fs rw ip=192.168.0.101:::255.255.255.0::eth0 mtdparts=nand_davinci.0:4096k(UBOOT),128k(UBOOT_ENV),3200k(KERNEL),20480k(FS)
    Uboot <= saveenv

  Verifying if the boot command needs to be installed...
    Uboot <= setenv bootcmd nboot KERNEL
    Uboot <= setenv autostart yes
    Uboot <= saveenv

Then open minicom and boot the Leopard Board:

Leopard Board # boot

Loading from NAND 256MiB 3,3V 8-bit, offset 0x420000
   Image Name:   "RR Linux Kernel"
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    3250544 Bytes =  3.1 MB
   Load Address: 80008000
   Entry Point:  80008000
Automatic boot of image at addr 0x82000000 ...
## Booting image at 82000000 ...
   Image Name:   "RR Linux Kernel"
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    3250544 Bytes =  3.1 MB
   Load Address: 80008000
   Entry Point:  80008000
   Verifying Checksum ... OK
OK

Starting kernel ...

[    0.000000] Linux version 2.6.29-ridgerun-davinci1 (miguel@miguel-desktop) (gcc version 4.2.4) #1 PREEMPT Fri Nov 27 15:52:34 CST 2009
[    0.000000] CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
[    0.000000] CPU: VIVT data cache, VIVT instruction cache
[    0.000000] Machine: DaVinci DM355 leopard
[    0.000000] Memory policy: ECC disabled, Data cache writeback
[    0.000000] DaVinci DM0355 variant 0x0
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 29464
[    0.000000] Kernel command line: console=ttyS0,115200n8 video=davincifb:osd1=0x0x8 mem=116M root=/dev/nfs nfsroot=192.168.0.100:/home/miguel/DM355SDK786811/fs/fs)
[    0.000000] PID hash table entries: 512 (order: 9, 2048 bytes)
[42949372.960000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
[42949372.960000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
[42949372.980000] Memory: 116MB = 116MB total
[42949372.980000] Memory: 114204KB available (2936K code, 203K data, 116K init)
[42949372.980000] Calibrating delay loop... 107.72 BogoMIPS (lpj=538624)
[42949373.210000] Mount-cache hash table entries: 512
[42949373.210000] CPU: Testing write buffer coherency: ok
[42949373.220000] net_namespace: 520 bytes
[42949373.220000] NET: Registered protocol family 16
[42949373.220000] MUX: initialized INT_EDMA_CC
[42949373.220000] MUX: initialized VIN_CINL_EN
[42949373.260000] DaVinci: 104 gpio irqs
[42949373.370000] bio: create slab <bio-0> at 0
[42949373.370000] vpss vpss: dm355_vpss vpss probed
[42949373.370000] vpss vpss: dm355_vpss vpss probe success
[42949373.380000] ch0 default output "COMPOSITE", mode "NTSC"
[42949373.380000] VPBE Encoder Initialized
[42949373.390000] SCSI subsystem initialized
[42949373.390000] usbcore: registered new interface driver usbfs
[42949373.400000] usbcore: registered new interface driver hub
[42949373.400000] usbcore: registered new device driver usb
[42949373.410000] Avnetlcd encoder initialized
[42949373.430000] musb_hdrc: version 6.0, pio, host, debug=0
[42949373.450000] musb_hdrc: USB Host mode controller at fec64000 using PIO, IRQ 12
[42949373.450000] musb_hdrc musb_hdrc: MUSB HDRC host driver
[42949373.450000] musb_hdrc musb_hdrc: new USB bus registered, assigned bus number 1
[42949373.450000] usb usb1: configuration #1 chosen from 1 choice
[42949373.450000] hub 1-0:1.0: USB hub found
[42949373.450000] hub 1-0:1.0: 1 port detected
[42949373.460000] NET: Registered protocol family 2
[42949373.460000] IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
[42949373.460000] TCP established hash table entries: 4096 (order: 3, 32768 bytes)
[42949373.460000] TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
[42949373.460000] TCP: Hash tables configured (established 4096 bind 4096)
[42949373.460000] TCP reno registered
[42949373.470000] NET: Registered protocol family 1
[42949373.480000] msgmni has been set to 223
[42949373.480000] io scheduler noop registered (default)
[42949373.500000] davincifb davincifb.0: dm_osd0_fb: 720x480x16@0,0 with framebuffer size 1350KB
[42949373.510000] davincifb davincifb.0: dm_vid0_fb: 0x0x16@0,0 with framebuffer size 675KB
[42949373.530000] davincifb davincifb.0: dm_osd1_fb: 0x0x8@0,0 with framebuffer size 1350KB
[42949373.540000] davincifb davincifb.0: dm_vid1_fb: 0x0x16@0,0 with framebuffer size 675KB
[42949373.540000] Serial: 8250/16550 driver, 3 ports, IRQ sharing disabled
[42949373.550000] serial8250.0: ttyS0 at MMIO 0x1c20000 (irq = 40) is a 16550A
[42949373.550000] console [ttyS0] enabled
[42949373.880000] brd: module loaded
[42949373.910000] loop: module loaded
[42949373.920000] dm9000 Ethernet Driver, V1.31
[42949374.040000] eth0 (dm9000): not using net_device_ops yet
[42949374.040000] eth0: dm9000e at c780c000,c7810016 IRQ 73 MAC: 00:0e:99:00:05:2e (chip)
[42949374.050000] Linux video capture interface: v2.00
[42949374.060000] vpfe-capture vpfe-capture: video device registered
[42949374.070000] vpfe-capture vpfe-capture: v4l2 int master registered
[42949374.080000] vpfe_capture: init successful
[42949374.080000] Trying to register davinci display video device.
[42949374.090000] layer=c66f7200,layer->video_dev=c66f7364
[42949374.100000] Trying to register davinci display video device.
[42949374.100000] layer=c66f7000,layer->video_dev=c66f7164
[42949374.110000] davinci_init:DaVinci V4L2 Display Driver V1.0 loaded
[42949374.120000] vpfe-capture vpfe-capture: register slave mt9v113
[42949374.120000] mt9v113 1-003c: mt9v113 found at 0x78 (DaVinci I2C adapter)
[42949374.130000] mt9v113 1-003c: chip version 0x2280 detected
[42949375.060000] vpfe-capture: Current decoder is set to mt9v113
[42949375.060000] mt9v113 1-003c: Registered to v4l2 master vpfe-capture!!
[42949375.070000] Driver 'sd' needs updating - please use bus_type methods
[42949375.080000] davinci_nand davinci_nand.0: 4-bit ECC nyet supported
[42949375.090000] davinci_nand: probe of davinci_nand.0 failed with error -22
[42949375.100000] Initializing USB Mass Storage driver...
[42949375.110000] usbcore: registered new interface driver usb-storage
[42949375.120000] USB Mass Storage support registered.
[42949375.120000] i2c /dev entries driver
[42949375.130000] watchdog watchdog: heartbeat 60 sec
[42949375.140000] davinci_mmc davinci_mmc.0: Using DMA, 4-bit mode
[42949375.160000] davinci_mmc davinci_mmc.1: Using DMA, 4-bit mode
[42949375.180000] Advanced Linux Sound Architecture Driver Version 1.0.18a.
[42949375.190000] No device for DAI tlv320aic3x
[42949375.190000] No device for DAI davinci-i2s
[42949375.200000] AIC3X Audio Codec 0.2
[42949375.210000] asoc: tlv320aic3x <-> davinci-i2s mapping ok
[42949375.240000] ALSA device list:
[42949375.250000]   #0: Leopard Board (tlv320aic3x)
[42949375.250000] TCP cubic registered
[42949375.260000] NET: Registered protocol family 17
[42949375.260000] RPC: Registered udp transport module.
[42949375.270000] RPC: Registered tcp transport module.
[42949375.280000] drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
[42949375.880000] eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
[42949376.890000] IP-Config: Complete:
[42949376.890000]      device=eth0, addr=192.168.0.101, mask=255.255.255.0, gw=255.255.255.255,
[42949376.900000]      host=192.168.0.101, domain=, nis-domain=(none),
[42949376.900000]      bootserver=255.255.255.255, rootserver=192.168.0.100, rootpath=
[42949376.910000] Looking up port of RPC 100003/2 on 192.168.0.100
[42949376.930000] Looking up port of RPC 100005/1 on 192.168.0.100
[42949376.950000] VFS: Mounted root (nfs filesystem) on device 0:12.
[42949376.960000] Freeing init memory: 116K
init started: BusyBox v1.14.2 (2009-11-29 14:56:08 CST)
starting pid 256, tty '': '/etc/rcS'
Starting System
done.
Welcome to
__________ .__     .___               __________               
\______   \|__|  __| _/  ____    ____ \______   \ __ __   ____ 
 |       _/|  | / __ |  / ___\ _/ __ \ |       _/|  |  \ /    \
 |    |   \|  |/ /_/ | / /_/  >\  ___/ |    |   \|  |  /|   |  \
 |____|_  /|__|\____ | \___  /  \___  >|____|_  /|____/ |___|  /
        \/          \//_____/       \/        \/             \/
          
    Embedded Linux Solutions
 
For further information see:
http://www.ridgerun.com
Build host: miguel-desktop
Built by: root
Build date: Sun, 29 Nov 2009 16:40:53 -0600
Build tag: leopard
Configuring network interfaces

Please press Enter to activate this console.
starting pid 334, tty '/dev/ttyS0': '-/bin/sh'


BusyBox v1.14.2 (2009-11-29 14:56:08 CST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

/ #