U-Boot-2013.04
From ArmadeusWiki
Status
- APF27: Huge network transfert (20MB and more) may hang FEC driver by timeout when U-Boot is compiled with GCC4.4.x
- fixed with GCC 4.6.x and higher: BSP from our GIT server uses GCC 4.7.3 by default.
- APF28: Direct TFTP to NAND transfert may hang FEC driver by timeout when U-Boot is compiled with GCC4.4.x
- fixed with GCC 4.6.x and higher: BSP from our GIT server uses GCC 4.7.3 by default.
- APF51: new patchwork revision 2.1 adds a true U-Boot SPL in order to bypass the 256KiB memory footprint limit
- APF51 patch 2.1 is now aligned on the regular features supported by the APF boards.
- APF51 patch 2.1 use the U-Boot binary format "u-boot-with-nand-spl.imx" that replace the "u-boot-nand.bin"
- migration to U-Boot 2013.04 for the APF51 is transparent even for the new binary file format as soon as you reload apf51 buidlroot config: make apf51_defconfig
- Extra environment variables are now externalized and downloaded at run time from ${board_name}-u-boot-env.txt
- This change is requested by U-Boot project in order to integrate the APF boards in U-Boot
- Few scripts help to manage the environment variable: download_env, flash_env, update_env, flash_reset_env and check_env
- You can customize your environment variable from BuildRoot: make menuconfig -> boot loaders -> U-Boot -> Environment image -> source file.. -> $(ARMADEUS_PATH)/u-boot-env-2013.04.txt
- FPGA improvement:
- APF51 now supports .bit files from U-Boot through the command: fpga loadb. .bit files can also be used for autoload purpose: setenv firmware_autoload 1; saveenv
- update to handle firmware named ${board_name}-firmware.bin
- new management scripts: download_firmware, flash_firmware, update_firmware, load_firmware and checknload_firmware
- use the preboot variable to automatize some boot action: check_env checks the environment versions - checknload_firmware will load the FPGA (bit and bin files) if the variable firmware_autoload is set.
- DTB improvement:
- update to handle DTB files named ${board_name}.dtb
- new management scripts: download_dtb, flash_dtb, update_dtb
Features/Status
Status | Legend Color |
Test passed | |
Compilation or runtime test failed | |
To be tested | |
Optional/not activated by default | |
NA/not supported |
Feature | Status | Test case | |||
---|---|---|---|---|---|
boards | apf9328 | apf28 | apf27 | apf51 | |
U-Boot power on | U-Boot 2013.04... I2C: ready DRAM: 16 MiB Flash: 8 MiB In: serial Out: serial Err: serial Net: dm9000 |
U-Boot 2013.04... CPU: Freescale i.MX28 BOOT: NAND, 3V3 DRAM: 128 MiB NAND: 256 MiB MMC: MXS MMC: 0 In: serial Out: serial Err: serial Net: FEC0 [PRIME] |
U-Boot 2013.04.. CPU: Freescale i.MX27 at 399 MHz Armadeus APF27 I2C: ready DRAM: 64 MiB NAND: 256 MiB MMC: MXC MCI: 0 In: serial Out: serial Err: serial Net: FEC |
U-Boot 2013.04... I2C: ready DRAM: 256-512 MiB NAND: 512 MiB MMC: FSL_SDHC: 0 In: serial Out: serial Err: serial Net: FEC |
power on the board and check the boot log of the board |
NOR/NAND flash | 8 MiB | 256MiB-2GiB | 256MiB | 512MiB-4GiB | startup sceen shall display: Flash: xx MiB or NAND: xxxMiB |
RAM | 16/32 MiB | 128MiB-512MiB | 64-128MiB | 256-512MiB | startup sceen shall display: DRAM: xxx MiB |
Ethernet driver | dm9000 | FEC0 | FEC | FEC | startup sceen shall display: Net: <DRIVER> |
Ethernet MAC | dm9000 read 00000000: 1e00 00ac |
bdinfo ... ethaddr = 00:1e:ac:... |
bdinfo ... ethaddr = 00:1e:ac:... |
iim read fecmac FEC MAC address: 0x00:0x1e:0xac:... |
test the presence of the MAC address in EEPROM/fuses the command bdinfo should return a valid mac address |
Default IP | the default IP variables should be: ipaddr=192.168.0.10 netmask=255.255.255.0 serverip=192.168.0.2 gatewayip=192.168.0.1 use the "flash_reset_env" script to restore the default environment variables | ||||
DHCP | the command "DHCP" should be able to update IP environment variables according to your network and DHCP server | ||||
Ping | set ipaddr & serverip according to your network. Test the connection to the server: ping ${serverip} should return the status "alive" | ||||
Board reset | command "reset" shall reset the board | ||||
TFTP | the command "run download_uboot" should UBoot from the host PC into the target RAM | ||||
NFS | the command "nfs ${loadaddr} ${serverip}:/tftpboot/${board_name}-linux.bin" should download linux kernel from the host PC into the target RAM | ||||
Board upgrade scripts | use the hereafter scripts to update the software of the board: run update_all reset run flash_reset_env | ||||
I2C | 38 76 7F | postponed | 38 68 | 1A 36 38 | startup sceen shall display: I2C: ready the command "i2c probe" should return the list of devices on the i2c bus of the board |
TFTP reliability | 5MB | Build a big rootfs (amount of mem minus 10MB) by adding a huge tar file in the target root dir - the command "run update_rootfs" should download the file and update the flash accordingly | |||
TFTP NAND option | NA | Build a big rootfs (bigger then RAM SIZE) by adding a huge tar file in the target root dir - the command "nand erase.part rootfs ; tftpboot ${rootfs_addr} ${board_name}-rootfs.ubi nand" should download the file and update the flash accordingly | |||
linux boot from flash | the command "boot" should start linux and rootfs from flash the linux login should be "armadeus login: " | ||||
NFS boot (rootfs) | http://www.armadeus.com/wiki/index.php?title=Nfs#Boot_from_NFS the command "run nfsboot" should start linux using rootfs over a NFS shared drive on your host server ${serverip} | ||||
rootfs on SD/MMC | http://www.armadeus.com/wiki/index.php?title=MultiMediaCard#Booting_from_MMC.2FSD the command "run mmcboot" should start linux using a rootfs on your sd/mmc memory card | ||||
Flash lock/unlock | Not Applicable | For APF9328: protect on all erase nor0,1 -> - Warning: 1 protected sectors will not be erased! protect off all erase nor0,1 -> no warning - erase done other apf boards: nand lock; nand erase.part kernel Should not erase the kernel partion (error message, system hang or no message) boot linux | |||
Env compatibility change | force a new environment version and check the warning on next reboot: setenv env_version 0 saveenv reset => *** Warning - Environment version change suggests: run flash_reset_env; reset | ||||
FPGA control | blinking_led_ apf9328_200k.bit |
Not Applicable | blinking_led_ apf27_200k.bit |
blinking_led_ apf51_lx9.bin |
the command "fpga info 0" should indicate the presence of the spartan 3 Test FPGA download with the blinking_led bit file of your board: tftpboot ${loadaddr} blinking_led_apfxxxx_xxxk.bit fpga load 0 ${loadaddr} ${filesize} should make the LED blinking without error |
Firmware autoload | Not Applicable | run flash_firmware setenv firmware_autoload 1 saveenv <power off>/<power on> the board LED should blink after a couple of seconds and UBoot should continue countdown to boot linux | |||
imxfuse commands | Not Applicable | ocotp | imxfuse mac... | iim blow fecmac... | Use production tool to blow a MAC address |
Detect RAM SIze | not supported | 128MiB | Board rev. 1 with 128 MiB | Board rev. 1 with 512MiB | Using the default UBoot config test the given config is correct during boot |
PAR cleared | Not Applicable | Not Applicable | run unlock_regs; boot once logged on linux try the command imxregs CSR should display imx register value instead of any error like "Unhandled fault" | ||
SD/MMC driver | not supported | The command "mmcinfo" should display the SD/MMC card information | |||
NETCONSOLE | not supported | not supported | not supported | not supported | Ethernet_console |
LCD | not supported | not supported | not supported | not supported | |
SPI | not supported | not supported | not supported | not supported | |
USB | not supported | not supported | not supported | not supported |
PPS Test/Status
Feature | Status | Test case | |||
---|---|---|---|---|---|
boards | PPS (PPS2) | PPS51 | |||
U-Boot power on | U-Boot 2012.10.. CPU: Freescale i.MX27 at 399 MHz Armadeus APF27 DRAM: 64 MiB NAND: 256 MiB |
U-Boot 2012.10... I2C: ready DRAM: 256-512 MiB NAND: 512 MiB In: serial Out: serial Err: serial Net: FEC |
power on the board and check the boot log of the board | ||
NOR/NAND flash | 256 MiB | 512MiB | startup sceen shall display: Flash: xx MiB | ||
RAM | 64-128MiB | | 256-512MiB | startup sceen shall display: DRAM: xx MiB | ||
Ethernet driver | FEC | FEC | startup sceen shall display: Net: <DRIVER> | ||
DHCP | the command "DHCP" should be able to update IP environment variables according to your network and DHCP server | ||||
Ping | set ipaddr & serverip according to your network. Test the connection to the server: ping ${serverip} should return the status "alive" | ||||
Board reset | command "reset" shall reset the board | ||||
TFTP | the command "run download_uboot" should UBoot from the host PC into the target RAM | ||||
Board upgrade scripts | use the hereafter scripts to update the software of the board: run update_all run flash_reset_env | ||||
TFTP reliability | Build a big rootfs (amount of mem minus 10MB) by adding a huge tar file in the target root dir - the command "run update_rootfs" should download the file and update the flash accordingly | ||||
linux boot from flash | the command "boot" should start linux and rootfs from flash the linux login should be "armadeus login: " | ||||
Wifi test | boot linux and initiate a wifi connection : load drivers and scan wifi network |