Standalone boot (SDVX)

From DAVE Developer's Wiki
Revision as of 09:51, 10 September 2018 by U0013 (talk | contribs)

Jump to: navigation, search

History[edit | edit source]

Version Date XUELK version Hardware Part Nr Notes
1.0.0 September 2018 SDVX 1.0.0 XUBE0000I1R

Introduction[edit | edit source]

This document was written and tested with the software/hardware combination described in the history table above. However, it contains general concepts that can be adapted on any DAVE Embedded Systems' Linux platform.

We'll explain how to program and configure an SDVX to boot in standalone mode, without the need of a system microSD card or an NFS server, with two options:

  • booting with NAND only
    • In this configuration the whole system will boot without the need of a NOR flash storage, all images and the root file system will be fetched from NAND flash.
  • booting with microSD only
    • In this configuration the whole system will boot without the need of a NOR flash storage, all images and the root file system will be fetched from NAND flash.

Storing root file system into NAND flash (only Lite)[edit | edit source]

This is a common step for both booting options.

  • Boot the system via SD or NFS as described into the Quick start guide
  • By default, the NAND is already partitioned to allow booting from NAND-only (see next section) and, thus, some partitions are reserved for U-boot and kernel images. Here we won't modify this default configuration. The MTD partitions can be dumped with /proc/mtd (the partition's name should be self-explanatory)

Storing boot images ...[edit | edit source]

... into NOR flash[edit | edit source]

U-Boot[edit | edit source]

Linux kernel image and device tree[edit | edit source]

... into NAND flash[edit | edit source]

U-Boot[edit | edit source]

Linux kernel image and device tree[edit | edit source]

... into eMMC[edit | edit source]

We assume that the following environment variables are present in u-boot:

mmc_loadfdt=fatload mmc 0:1 ${fdtaddr} imx6ul-lynx.dtb
mmc_loadk=fatload mmc 0:1 ${loadaddr} uImage
mmc_loadsplash=fatload mmc ${mmcdev}:1 ${loadaddr} ${splashfile}; cp.b ${loadaddr} ${splashimage} ${filesize}
mmc_update=setexpr blocks ${filesize} / 0x200; setexpr blocks ${blocks} + 1; mmc write ${loadaddr} 2 ${blocks}
mmcargs=setenv bootargs root=${mmcroot}
  • Update the bootfile and fdtfile environment variables to fit the filename as found inside the TFTP server.
  • Program kernel and device tree on the MMC with the following U-Boot command