The phyBOARD-i.MX7 is delivered with a pre-flashed bootloader. The following instructions for flashing images from SD card will be useful if you want to:

  • Flash images because NAND is empty
  • Upgrade to a new release
  • Use custom built images

Configure SD Card for Flashing

In addition to the standard SD card formatted in Creating a Bootable SD Card, the following steps are required to copy over images that will be flashed. Execute from the host PC:

  1. Copy u-boot.imx-nand to the Boot partition of the SD card. In order to be able to save the environment to NAND and boot kernel images from NAND by default, the u-boot.imx-nand image is needed. The default u-boot.imx image will default to SD card. Both images are available in the release binaries. 

    cp u-boot.imx-nand /media/<user>/Boot\ imx7/; sync
    CODE

    To build a u-boot.imx-nand image with Yocto, follow the same instructions for building the BSP described in the Quickstart, but set the UBOOT_CONFIG variable to nand in $YOCTO_DIR/build/conf/local.conf before starting the build:

    UBOOT_CONFIG = "nand"
    CODE
  2. Create a new partition on the SD card to hold the root filesystem ext4 image.

    sudo fdisk /dev/sd<X>
    
            p           print current partitions (note end of partition 2, 1826815 for NXP 1.2.0 release)
            n           newpartition
            p           primary
            3           partition number
            1826816     (start after end of partition 2) first sector
            <enter>       Use defaultvalue forlast sector
            t           Change partition systemid
            3           Partition number
            c           FAT32
            w           write table to disk and exit
    
    sudo mkfs.vfat -n "data" /dev/sd<X>3
    CODE
  3. Copy the filesystem image to the new "data" partition. Due to the size of NAND, the standard 'fsl-image-gui' and 'fsl-image-validation-imx' filesystems do not fit on NAND, so a smaller filesystem will need to be used. This example uses the Yocto image "core-image-minimal", which is included in the BSP release images.

    cp core-image-minimal-<MACHINE NAME>.tar.bz2 /media/<user>/data/; sync
    CODE
  4. Set the boot switches, according to Boot Configurations, to boot from SD card and power on the board into Linux.
  5. Erase mtd0 and use NXP's utility "kobs-ng" to flash u-boot.imx-nand to NAND:

    flash_erase /dev/mtd0 0 0
    kobs-ng init -x /run/media/mmcblk0p1/u-boot.imx-nand
    CODE
  6. Flash zImage and device tree :

    flash_erase /dev/mtd1 0 0
    nandwrite -p /dev/mtd1 /run/media/mmcblk0p1/zImage
    
    flash_erase /dev/mtd2 0 0
    nandwrite -p /dev/mtd2 /run/media/mmcblk0p1/<MACHINE NAME>.dtb
    CODE
  7. Flash filesystem:

    flash_erase /dev/mtd3 0 0
    ubiformat /dev/mtd3; ubiattach /dev/ubi_ctrl -m 3; ubimkvol /dev/ubi0 -N rootfs -m
    mkdir /tmp/rootfs
    mount -t ubifs ubi0:rootfs /tmp/rootfs
    tar -xf /run/media/mmcblk0p3/core-image-minimal-<MACHINE NAME>.tar.bz2 -C /tmp/rootfs/; sync
    CODE
  8. Power off the board, set boot switches according to Boot Configurations, and power back on.