Trim-Slice U-Boot Development

From Utilite Wiki

Jump to: navigation, search

Contents

Overview

This article describe Trim-Slice U-Boot build, deploy and recovery process.

Building the Trim-Slice U-Boot

Cross-Compiler

For Trim-Slice U-Boot compilation we recommend to use CodeSourcery 2009-q1 cross-compiler. Install the cross-compiler by following the instructions below:

cd /home/development/cross-tools/
wget http://www.codesourcery.com/sgpp/lite/arm/portal/package4571/public/arm-none-linux-gnueabi/arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
tar xvjf arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2

Getting U-Boot sources

U-Boot sources for Trim-Slice are publicly available on gitorious.org hosting. Currently there two U-Boot repositories for Trim-Slice:

U-Boot for L4T

U-Boot with DTS for mainline Linux

Admolition note.png The following instructions assume that you have created /home/development/trimslice/trimslice-u-boot directory for Trim-Slice U-Boot sources.

Cloning U-Boot repository

  • Install git version control system.
  • Create a clone of trimslice-u-boot tree.
  • Make use of a correct U-Boot repository.
cd /home/development/trimslice-u-boot/
# without DTS
git clone git://gitorious.org/trimslice-u-boot/trimslice-u-boot.git
# with DTS
git clone git://gitorious.org/trimslice-u-boot-dts/trimslice-u-boot-dts.git
cd trimslice-u-boot-dts
git checkout remotes/origin/trimslice/2012.04-upload

Building the U-Boot

In the example below, the U-Boot image (u-boot.bin/u-boot-dtb.bin) will be created at trimslice-u-boot/Debug.

Admolition note.png The following instructions assume that your ARM development environment directory is /home/development/cross-tools/arm-2009q1/bin/ .
export ARCH=arm
export CROSS_COMPILE=arm-none-linux-gnueabi-
export PATH=${PATH}:"/home/development/cross-tools/arm-2009q1/bin/"
cd /home/development/trimslice/trimslice-u-boot
# without DTS
git checkout trimslice-2010.09-1.03
# with DTS
git checkout trimslice-2012.04-1.01
mkdir Debug
make trimslice_config O=./Debug
make -j8 O=./Debug

Building U-Boot firmware image

The result of U-Boot build process is a u-boot.bin. To get the Firmware binary,the u-boot.bin should be prepended with a binary configuration table (BCT). The cbootimage tools can be used for this purpose.

Getting cbootimage-scripts

cd /home/development
git clone git://gitorious.org/cbootimage/cbootimage-scripts.git

Converting u-boot.bin to Firmware

# without DTS
export U_BOOT_BIN="/home/development/trimslice/trimslice-u-boot/Debug/u-boot.bin"
# with DTS
export U_BOOT_BIN="/home/development/trimslice/trimslice-u-boot/Debug/u-boot-dtb.bin"

cd /home/development/cbootimage-scripts
./sliceboot.scr $U_BOOT_BIN /home/development/trimslice/trimslice-u-boot/Debug/u-boot.firmware spi
cd -

Deploying the U-Boot

Admolition note.png The following instructions assume that your development machine runs the TFTP-Server and the /var/lib/tftpboot directory is getting exported.

Host Side

  • Copy /home/development/trimslice/trimslice-u-boot/Debug/u-boot.firmware into the TFTP-server exported directory /var/lib/tftpboot directory.
cp /home/development/trimslice/trimslice-u-boot/Debug/u-boot.firmware /var/lib/tftpboot/

Target Side

Admolition warning.png Flashing a corrupted Firmware image can brick Trim-Slice.
See Recovery section for more details.
  • Burn the u-boot.firmware to the Trim-Slice SPI flash:
setenv serverip 'Your Server IP'
dhcp && tftp 4080000 ${serverip}:u-boot.firmware && sf probe 0 && sf erase 0 100000 && sf write 4080000 0 80000
reset

Recovery

Trim-Slice is considered bricked when there is no output on serial console after the power up. The possible reasons are:

  • burning SPI flash process has failed
  • U-Boot firmware file is corrupted

Follow the Firmware Update instructions in order to recover the Trim-Slice Firmware

Personal tools