Difference between revisions of "U-Boot-2013.04"

From ArmadeusWiki
Jump to: navigation, search
(Status)
(Status)
Line 9: Line 9:
 
** APF51 patch 2.1 use the U-Boot binary format "u-boot-with-nand-spl.imx" that replace the "u-boot-nand.bin"
 
** 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
 
** 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
+
* Support environment variables customization to be downloaded and updated 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
 
** 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
 +
** Few scripts help to manage the environment variable customization: download_env, flash_env, update_env
 
* FPGA improvement:
 
* 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
 
** 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

Revision as of 09:53, 30 September 2013

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
  • Support environment variables customization to be downloaded and updated at run time from ${board_name}-u-boot-env.txt
    • 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
    • Few scripts help to manage the environment variable customization: download_env, flash_env, update_env
  • 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
to confirm nand integrity -> kernel should start

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