Difference between revisions of "The bootloader U-Boot"

From IGEP - ISEE Wiki

Jump to: navigation, search
(known issue: does not work if you use gcc 4.4 or upper.)
Line 75: Line 75:
 
** improve SMSC LAN9221 throughput
 
** improve SMSC LAN9221 throughput
 
** add support for OMAP3 IGEP module (igep0030)
 
** add support for OMAP3 IGEP module (igep0030)
 +
 +
= 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 =
 
= Annex: default u-boot environment =

Revision as of 12:24, 20 May 2011

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-2.tar.gz
$ tar xzf u-boot-arm-2010.06-2.tar.gz
$ cd u-boot-arm-2010.06-2

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'