The bootloader U-Boot

From IGEP - ISEE Wiki

Revision as of 11:55, 29 July 2011 by Eballetbo (talk | contribs) (upgrade from 2010.06-2 to 2010.06-3)

Jump to: navigation, search

U-Boot for IGEP platforms

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 2010.06-y series (stable)

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

$ wget http://downloads.igep.es/sources/u-boot-arm-2010.06-3.tar.gz
$ tar xzf u-boot-arm-2010.06-3.tar.gz
$ cd u-boot-arm-2010.06-3

Configure for your board with,

$ make CROSS_COMPILE=arm-none-linux-gnueabi- <board-config>

where:

  • <board-config> is igep0020_config for IGEP v2 platform.
  • <board-config> is igep0030_config for OMAP3 IGEP module.

Finally, build with

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

The result will be an u-boot.bin file in local directory.

CHANGELOG

KNOWN ISSUES

  • This versions does not work if you use gcc 4.4 or upper.

U-Boot 2009.11-y series (stable)

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

$ wget http://downloads.igep.es/sources/u-boot-arm-2009.11-2.tar.gz
$ tar xzf u-boot-arm-2009.11-2.tar.gz
$ cd u-boot-arm-2009.11-2

Configure for your board with,

$ make CROSS_COMPILE=arm-none-linux-gnueabi- <board-config>

where:

  • <board-config> is omap3_igep0020_config for IGEP v2 platform.
  • <board-config> is omap3_igep0030_config for OMAP3 IGEP module.

Finally, build with

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

The result will be an u-boot.bin file in local directory.

CHANGELOG

Quality assurance: Test Cases

Status table

Test case definitions

#001 : SDCARD boot

How to test: Put u-boot to sdcard and check if booting. Result should be like :

U-Boot 2011.03-00534-gb39628a-dirty (May 19 2011 - 13:39:01)
OMAP3630/3730-GP ES1.0, CPU-OPP2, L3-165MHz, Max CPU Clock 1 Ghz
IGEP v2 board + LPDDR/ONENAND
I2C:   ready
DRAM:  512 MiB
Muxed OneNAND(DDP) 512MB 1.8V 16-bit (0x58)
OneNAND version = 0x0031
Chip support all block unlock
Chip has 2 plane
block = 2048, wp status = 0x2
Scanning device for bad blocks
OneNAND: 512 MiB
MMC:   OMAP SD/MMC: 0
*** Warning - bad CRC, using default environment
In:    serial
Out:   serial
Err:   serial
Die ID #2a700000000000000156087c06013022
Net:   smc911x-0
Hit any key to stop autoboot:  0

#002 : ONENAND boot

How to test: Put u-boot to onenand and check if booting.

Script : flash u-boot using u-boot

mmc rescan 0
fatload mmc 0 0x80300000 u-boot.bin
onenand erase 0x80000 0x180000
onenand write 0x80300000 0x80000 0x180000

#003 : Run OS from SDCARD using ext2 filesystem

How to test:

#004 : Run OS from ONENAND using UBIFS filesystem

How to test:

#005 : Run OS from SDCARD using NFS filesystem

How to test:

Script:

setenv distro sandbox
setenv machine igep00x0
setenv project 0
setenv ethaddr ac:de:48:00:00:00
setenv ipaddr 192.168.2.245
setenv netmask 255.255.255.0
setenv gatewayip 192.168.2.1
setenv serverip 192.168.2.114
setenv addip 'setenv bootargs ${bootargs} ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}::eth0:'
setenv nfs-bootargs 'setenv bootargs ${bootargs-base} root=/dev/nfs nfsroot=${serverip}:/srv/nfs/${distro}/${project}/${machine} ; run addip'
setenv bootargs-base 'console=ttyS2,115200n8 console=tty0 omapfb.mode=dvi:1024x768MR-16@60'
setenv bootcmd 'run nfs-bootargs; nfs 0x80000000 ${serverip}:/srv/nfs/${distro}/${project}/${machine}/boot/uImage; bootm'
run bootcmd

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 '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'