Open main menu

DAVE Developer's Wiki β

Standalone boot (SDVX)

Revision as of 13:21, 12 September 2018 by U0013 (talk | contribs)

Contents

HistoryEdit

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

IntroductionEdit

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 eMMC 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

This is a common step for both booting options.

  • Boot the system via SD or NFS as described in the e 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

... into NOR flashEdit

U-BootEdit

Linux kernel image and device treeEdit

... into NAND flashEdit

U-BootEdit

Linux kernel image and device treeEdit

... into eMMCEdit

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