Difference between revisions of "The bootloader U-Boot"
From IGEP - ISEE Wiki
(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
Contents
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
- 2011-03-07 Release 2010.06-2
- Set MPU to 1GHz and IVA to 800MHz by default for DM3730
- Improve GPMC timming for SMSC LAN9221
- 2010-11-03 Release 2010.06-1
- Improve I2C driver support
- Use default NET_GPMC configuration to be compatible with DM37XX. This worsens a bit the SMSC LAN9221 throughput.
- 2010-10-19 Release 2010.06-0
- Add support for DM37XX
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
- 2010-06-15 Release 2009.11-2
- improve SMSC LAN9221 throughput
- 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
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'