The bootloader U-Boot

From IGEP - ISEE Wiki

Revision as of 19:11, 30 May 2010 by Eballetbo (talk | contribs) (U-Boot v2009.11 (stable))

Jump to: navigation, search

How to cross compile U-Boot

Overview of How-To

This How-To is meant to be a starting point for people to learn build the u-boot software for IGEP v2 devices as quickly and easily as possible.

This How-To works with the Ubuntu 8.04 IGEP v2.0 SDK Virtual Machine but most of the contents are valid also for other GNU/Linux distributions. We do not issue any guarantee that this will work on other distributions.

Requirements

  • Ubuntu 8.04 IGEP v2.0 SDK Virtual Machine

Feedback and Contributing

At any point, if you see a mistake you can contribute to this How-To.

U-Boot for IGEP v2

First of all setup the build environment sourcing this script

$ source /usr/local/poky/eabi-glibc/arm/environment-setup

or

$ source /usr/local/poky/eabi-glibc/environment-setup-arm-none-linux-gnueabi

if you have updated your SDK environment to latest version (see Ubuntu 8.04 IGEP v2.0 SDK Virtual Machine)

U-Boot v2009.11 (stable)

This version support full OneNAND DDP

Download the IGEP v2 U-Boot sources and follow next steps:

$ wget http://downloads.igep.es/sources/u-boot-arm-2009.11-1.tar.gz
$ tar xzf u-boot-arm-2009.11-0.tar.gz
$ cd u-boot-arm-2009.11-0
$ make CROSS_COMPILE=arm-none-linux-gnueabi- omap3_igep0020_config
$ make CROSS_COMPILE=arm-none-linux-gnueabi- 

The result will be an u-boot.bin file in arch/arm/boot directory.

U-Boot mainline tree (development)

Clone the GIT repository from git.myigep.com

$ git clone git://git.igep.es/pub/scm/u-boot-arm.git
$ cd u-boot-arm
$ git checkout origin/u-boot-2009.11.y -b u-boot-2009.11.y

and build with

$ make CROSS_COMPILE=arm-none-linux-gnueabi- omap3_igep0020b_config
$ make CROSS_COMPILE=arm-none-linux-gnueabi- 

The result will be an u-boot.bin file in arch/arm/boot directory.

Annex: default u-boot environment

setenv distro poky
setenv machine igep0020
setenv project poky-image-sato
setenv ethaddr ac:de:48:00:02:54
setenv ipaddr 192.168.254.254
setenv netmask 255.255.255.0
setenv gatewayip 192.168.254.10
setenv serverip 192.168.254.10
setenv addip 'setenv bootargs ${bootargs} ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}::eth0:'
setenv bootargs-base 'mem=512M console=ttyS2,115200n8 console=tty0 omapfb.mode=dvi:1024x768MR-16@60'
setenv mmc-bootargs 'setenv bootargs ${bootargs-base} root=/dev/mmcblk0p2 rw rootwait'
setenv mmc-boot 'mmc init 0; if fatload mmc 0 80000000 boot.ini; then source; else if fatload mmc 0 80000000 uImage; then run mmc-bootargs; bootm; fi; fi'
setenv onenand-bootargs 'setenv bootargs ${bootargs-base} root=/dev/mtdblock4 rootfstype=jffs2 ; run addip'
setenv onenand-boot 'run onenand-bootargs; onenand read 80000000 280000 400000 ; bootm 80000000'
setenv nfs-bootargs 'setenv bootargs ${bootargs-base} root=/dev/nfs nfsroot=${serverip}:/srv/nfs/${distro}/${project}/${machine} ; run addip'
setenv nfs-boot 'if ping ${serverip}; then run nfs-bootargs; tftp 0x80000000 ${distro}/${project}/${machine}/uImage; bootm; fi;'
setenv bootcmd 'run mmc-boot; run nfs-boot; run onenand-boot'

--- That's all folks ---