Yocto Platform Customization: Difference between revisions

From Variscite Wiki
No edit summary
Line 1: Line 1:
== Yocto ==
= Yocto =
=== Documentation ===
== Documentation ==
<section begin=YOCTO_FSLC_MORTY/>
<section begin=YOCTO_FSLC_MORTY/>
* Yocto Project Core - Morty 2.2.1 (released on 02/24/2017)
* Yocto Project Core - Morty 2.2.1 (released on 02/24/2017)
Line 8: Line 8:
<section end=YOCTO_FSLC_MORTY/>
<section end=YOCTO_FSLC_MORTY/>


== VAR-SOM-MX6 ==
= VAR-SOM-MX6 =
=== Build Results ===
== Build Results ==
<section begin=VAR-SOM-MX6_BUILD_RESULTS/>
<section begin=VAR-SOM-MX6_BUILD_RESULTS/>
{| class="wikitable"
{| class="wikitable"
Line 82: Line 82:
<section end=VAR-SOM-MX6_BUILD_RESULTS/>
<section end=VAR-SOM-MX6_BUILD_RESULTS/>


=== Device tree ===
== Device tree ==
<section begin=VAR-SOM-MX6_DTB/>
<section begin=VAR-SOM-MX6_DTB/>
<pre>
<pre>
Line 118: Line 118:




== DART-6UL==
= DART-6UL=


=== Build Results ===
== Build Results ==
<section begin=DART-6UL_BUILD_RESULTS/>  
<section begin=DART-6UL_BUILD_RESULTS/>  
{| class="wikitable"
{| class="wikitable"
Line 154: Line 154:
<section end=DART-6UL_BUILD_RESULTS/>
<section end=DART-6UL_BUILD_RESULTS/>


=== Device tree ===
== Device tree ==
<section begin=DART-6UL_DTB/>
<section begin=DART-6UL_DTB/>
<pre>
<pre>
Line 183: Line 183:
<section end=DART-6UL_DTB/>
<section end=DART-6UL_DTB/>


=== SD card image file tree ===
== SD card image file tree ==
<section begin=DART-6UL_SD_TREE/>
<section begin=DART-6UL_SD_TREE/>
<pre>
<pre>
Line 205: Line 205:
</pre>
</pre>
<section end=DART-6UL_SD_TREE/>
<section end=DART-6UL_SD_TREE/>
= Boot board with a bootable SD card =
<section begin=DART-6UL_BOOT_BOARD/>
<span style="color:red">Note: Boot from SD card eliminates Wifi</span> as the Wifi and SD card are using same SDIO interface.<br>
A typical use-case, is to boot from SD card, flash eMMC or NAND flash, and re-boot form eMMC/NAND to have Wi-Fi operational.
== Setting the Boot DIP switches ==
Booting your system from an SD card requires switching the Boot DIP switches. See picture below.
[[File:Boot_switch_6ul1.jpg|thumb|none|upright=2.0]]
* "00" The current position in the picture will set the system to boot from SD card.
* "01" Moving the right switch will set the system to boot from eMMC
* "10" Moving the left switch will set the system to boot from NAND flash
* "11" is illegal.
Be aware that your system has eMMC or NAND but never both.
== Automatic device Tree selection in U-Boot ==
Upon reset you will see the U-Boot SPL printouts. It will print also the SOM configuration:
<br>On-SOM storage: SD only, eMMC, NAND.
<br>WIFI if chip exits.
<br>For example:
<pre>
U-Boot SPL 2015.10-00532-g482dc88 (Jan 03 2016 - 10:05:42)
i.MX6UL SOC
Part number: DART-6U-A01
Assembly: AS11
Date of production: 2015 Dec 31
DART-6UL configuration: eMMC WIFI
Ram size: 512
Boot Device: SD
</pre>
As explained in the above [[#Build_Results | Build Results]] table we have 4 optional configurations.
<br>We implemented in U-Boot and automatic device tree selection, so when kernel boots, the U-Boot will load the corresponding device tree according to On-SOM configuration.
{| class="wikitable"
|-
! scope="col" | SOM Type<br/>
! scope="col" | Boot From<br/>
! scope="col" | SOM Internal FLASH<br/>
! scope="col" | SOM has WIFI/BT<br/>
! scope="col" | Device Tree selected<br/>
|-
| DART-6UL
| SD
| eMMC
| Don't Care
| imx6ul-var-dart-sd_emmc.dtb
|-
| DART-6UL
| SD
| NAND
| Don't Care
| imx6ul-var-dart-sd_nand.dtb
|-
| DART-6UL
| eMMC
| eMMC
| Yes
| imx6ul-var-dart-emmc_wifi.dtb
|-
| DART-6UL
| eMMC
| eMMC
| NO
| imx6ul-var-dart-sd_emmc.dtb
|-
| DART-6UL
| NAND
| NAND
| YES
| imx6ul-var-dart-nand_wifi.dtb
|-
| DART-6UL
| NAND
| NAND
| NO
| imx6ul-var-dart-sd_nand.dtb
|-
| DART-6ULL
| SD
| eMMC
| Don't Care
| imx6ull-var-dart-sd_emmc.dtb
|-
| DART-6ULL
| SD
| NAND
| Don't Care
| imx6ull-var-dart-sd_nand.dtb
|-
| DART-6ULL
| eMMC
| eMMC
| Yes
| imx6ull-var-dart-emmc_wifi.dtb
|-
| DART-6ULL
| eMMC
| eMMC
| NO
| imx6ull-var-dart-sd_emmc.dtb
|-
| DART-6ULL
| NAND
| NAND
| YES
| imx6ull-var-dart-nand_wifi.dtb
|-
| DART-6ULL
| NAND
| NAND
| NO
| imx6ull-var-dart-sd_nand.dtb
|}
<span style="color:red">Note: Boot from SD card eliminates Wifi</span> as the Wifi and SD card are using same SDIO interface.<br>
A typical use-case, is to boot from SD card, flash eMMC or NAND flash, and re-boot form eMMC/NAND to have Wi-Fi operational.
== Disable Automatic Device Tree selection ==
To disable the automatic device tree selection in U-Boot:
<pre>
$ setenv var_auto_fdt_file=N
$ saveenv
</pre>
Now you can set the device tree to meet your requirements. For example:
<pre>
$ setenv fdt_file=imx6ul-var-dart-sd_emmc.dtb
$ saveenv
</pre>
Will select device tree that has SD and eMMC regardless if the SOM has WIFI.
<pre>
$ setenv fdt_file=imx6ul-var-dart-sd_nand.dtb
$ saveenv
</pre>
Will select device tree that has SD and NAND regardless if the SOM has WIFI.
{{note|Comment:<br/>Make sure you don't set am illegal value like "imx6ul-var-dart-sd_nand.dtb" in a SOM that has eMMC flash.|info}}
<section end=DART-6UL_BOOT_BOARD/>


== Platform Customizations==
== Platform Customizations==

Revision as of 13:32, 8 May 2017

Yocto

Documentation

  • Yocto Project Core - Morty 2.2.1 (released on 02/24/2017)

Documentation is available from www.yoctoproject.org

  • FSL Community BSP Release Notes 2.2 documentation

Documentation is available from http://freescale.github.io


VAR-SOM-MX6

Build Results

Device Tree Name
SOM type
Carrier Board type
LCD Type
Evaluation Kit name
uImage-imx6q-var-som-cap.dtb VAR-SOM-MX6_V2 (Quad / Dual) VAR-MX6CustomBoard Capacitive touch VAR-DVK-MX6_V2-PRO
VAR-STK-MX6_V2
uImage-imx6q-var-som-res.dtb VAR-SOM-MX6_V2 (Quad / Dual) VAR-MX6CustomBoard Resistive touch VAR-DVK-MX6_V2-PRO
VAR-STK-MX6_V2
uImage-imx6q-var-som-vsc.dtb VAR-SOM-MX6_V2 (Quad / Dual) VAR-SOLOCustomBoard Capacitive LVDS touch N/A
uImage-imx6dl-var-som-cap.dtb VAR-SOM-MX6_V2 (DualLite/ Solo) VAR-MX6CustomBoard Capacitive touch N/A
uImage-imx6dl-var-som-res.dtb VAR-SOM-MX6_V2 (DualLite/ Solo) VAR-MX6CustomBoard Resistive touch N/A
uImage-imx6dl-var-som-vsc.dtb VAR-SOM-MX6_V2 (DualLite/ Solo) VAR-SOLOCustomBoard Capacitive LVDS touch N/A
uImage-imx6dl-var-som-solo-vsc.dtb VAR-SOM-SOLO / VAR-SOM-DUAL VAR-SOLOCustomBoard Capacitive LVDS touch VAR-DVK-SOLO/DUAL
VAR-STK-SOLO/DUAL
uImage-imx6dl-var-som-solo-cap.dtb VAR-SOM-SOLO / VAR-SOM-DUAL VAR-MX6CustomBoard Capacitive touch N/A
uImage-imx6dl-var-som-solo-res.dtb VAR-SOM-SOLO / VAR-SOM-DUAL VAR-MX6CustomBoard Resistive touch N/A
uImage-imx6q-var-dart.dtb VAR-SOM-SOLO / VAR-SOM-DUAL VAR-DT6CustomBoard Capacitive LVDS touch VAR-DVK-DT6
VAR-STK-DT6


Device tree

Build the device tree for Dualite/Solo on VAR-MX6CustomBoard with capacitive touchscreen:
$ make -j4 imx6dl-var-som-cap.dtb

Build the device tree for Dualite/Solo on VAR-MX6CustomBoard with resistive touchscreen:
$ make -j4 imx6dl-var-som-res.dtb

Build the device tree for Dualite/Solo on VAR-SOLOCustomBoard:
$ make -j4 imx6dl-var-som-vsc.dtb

Build the device tree for Quad/Dual on VAR-MX6CustomBoard with capacitive touchscreen:
$ make -j4 imx6q-var-som-cap.dtb

Build the device tree for Quad/Dual on VAR-MX6CustomBoard with resistive touchscreen:
$ make -j4 imx6q-var-som-res.dtb

Build the device tree for Quad/Dual on VAR-SOLOCustomBoard:
$ make -j4 imx6q-var-som-vsc.dtb

Build the device tree for VAR-SOM-SOLO on VAR-MX6CustomBoard with capacitive touchscreen:
$ make -j4 imx6dl-var-som-solo-cap.dtb

Build the device tree for VAR-SOM-SOLO on VAR-MX6CustomBoard with resistive touchscreen:
$ make -j4 imx6dl-var-som-solo-res.dtb

Build the device tree for VAR-SOM-SOLO on VAR-SOLOCustomBoard:
$ make -j4 imx6dl-var-som-solo-vsc.dtb

Build the device tree for DART-MX6:
$ make -j4 imx6q-var-dart.dtb


DART-6UL

Build Results

File Name Description
zImage-imx6ul-var-dart-emmc_wifi.dtb Device tree blob for DART-6UL with eMMC & WI-FI enabled. (SD card & NAND disabled)
zImage-imx6ul-var-dart-nand_wifi.dtb Device tree blob for DART-6UL with NAND flash & WI-FI enabled. (SD card & eMMC disabled)
zImage-imx6ul-var-dart-sd_emmc.dtb Device tree blob for DART-6UL with SD card & eMMC enabled (WIFI & NAND disabled)
zImage-imx6ul-var-dart-sd_nand.dtb Device tree blob for DART-6UL with SD card & NAND flash enabled (WIFI & eMMC disabled)
zImage-imx6ull-var-dart-emmc_wifi.dtb Device tree blob for DART-6ULL with eMMC & WI-FI enabled. (SD card & NAND disabled)
zImage-imx6ull-var-dart-nand_wifi.dtb Device tree blob for DART-6ULL with NAND flash & WI-FI enabled. (SD card & eMMC disabled)
zImage-imx6ull-var-dart-sd_emmc.dtb Device tree blob for DART-6ULL with SD card & eMMC enabled (WIFI & NAND disabled)
zImage-imx6ull-var-dart-sd_nand.dtb Device tree blob for DART-6ULL with SD card & NAND flash enabled (WIFI & eMMC disabled)


Device tree

Build only the device tree for DART-6UL with eMMC and WiFi:
$ make -j4 imx6ul-var-dart-emmc_wifi.dtb

Build only the device tree for DART-6UL with eMMC and SD card:
$ make -j4 imx6ul-var-dart-sd_emmc.dtb

Build only the device tree for DART-6UL with NAND flash and WiFi:
$ make -j4 imx6ul-var-dart-nand_wifi.dtb

Build only the device tree for DART-6UL with NAND flash and SD card:
$ make -j4 imx6ul-var-dart-sd_nand.dtb

Build only the device tree for DART-6ULL with eMMC and WiFi:
$ make -j4 imx6ull-var-dart-emmc_wifi.dtb

Build only the device tree for DART-6ULL with eMMC and SD card:
$ make -j4 imx6ull-var-dart-sd_emmc.dtb

Build only the device tree for DART-6ULL with NAND flash and WiFi:
$ make -j4 imx6ull-var-dart-nand_wifi.dtb

Build only the device tree for DART-6ULL with NAND flash and SD card:
$ make -j4 imx6ull-var-dart-sd_nand.dtb


SD card image file tree

/opt/images/
└── Yocto
    ├── imx6ul-var-dart-emmc_wifi.dtb
    ├── imx6ul-var-dart-nand_wifi.dtb
    ├── imx6ul-var-dart-sd_emmc.dtb
    ├── imx6ul-var-dart-sd_nand.dtb
    ├── imx6ull-var-dart-emmc_wifi.dtb
    ├── imx6ull-var-dart-nand_wifi.dtb
    ├── imx6ull-var-dart-sd_emmc.dtb
    ├── imx6ull-var-dart-sd_nand.dtb
    ├── rootfs.tar.bz2
    ├── rootfs.ubi
    ├── SPL-nand
    ├── SPL-sd
    ├── u-boot.img-nand
    ├── u-boot.img-sd
    └── zImage


Boot board with a bootable SD card

Note: Boot from SD card eliminates Wifi as the Wifi and SD card are using same SDIO interface.
A typical use-case, is to boot from SD card, flash eMMC or NAND flash, and re-boot form eMMC/NAND to have Wi-Fi operational.

Setting the Boot DIP switches

Booting your system from an SD card requires switching the Boot DIP switches. See picture below.

Boot switch 6ul1.jpg
  • "00" The current position in the picture will set the system to boot from SD card.
  • "01" Moving the right switch will set the system to boot from eMMC
  • "10" Moving the left switch will set the system to boot from NAND flash
  • "11" is illegal.

Be aware that your system has eMMC or NAND but never both.

Automatic device Tree selection in U-Boot

Upon reset you will see the U-Boot SPL printouts. It will print also the SOM configuration:
On-SOM storage: SD only, eMMC, NAND.
WIFI if chip exits.
For example:

U-Boot SPL 2015.10-00532-g482dc88 (Jan 03 2016 - 10:05:42)
i.MX6UL SOC 
Part number: DART-6U-A01
Assembly: AS11
Date of production: 2015 Dec 31
DART-6UL configuration: eMMC WIFI
Ram size: 512
Boot Device: SD

As explained in the above Build Results table we have 4 optional configurations.
We implemented in U-Boot and automatic device tree selection, so when kernel boots, the U-Boot will load the corresponding device tree according to On-SOM configuration.

SOM Type
Boot From
SOM Internal FLASH
SOM has WIFI/BT
Device Tree selected
DART-6UL SD eMMC Don't Care imx6ul-var-dart-sd_emmc.dtb
DART-6UL SD NAND Don't Care imx6ul-var-dart-sd_nand.dtb
DART-6UL eMMC eMMC Yes imx6ul-var-dart-emmc_wifi.dtb
DART-6UL eMMC eMMC NO imx6ul-var-dart-sd_emmc.dtb
DART-6UL NAND NAND YES imx6ul-var-dart-nand_wifi.dtb
DART-6UL NAND NAND NO imx6ul-var-dart-sd_nand.dtb
DART-6ULL SD eMMC Don't Care imx6ull-var-dart-sd_emmc.dtb
DART-6ULL SD NAND Don't Care imx6ull-var-dart-sd_nand.dtb
DART-6ULL eMMC eMMC Yes imx6ull-var-dart-emmc_wifi.dtb
DART-6ULL eMMC eMMC NO imx6ull-var-dart-sd_emmc.dtb
DART-6ULL NAND NAND YES imx6ull-var-dart-nand_wifi.dtb
DART-6ULL NAND NAND NO imx6ull-var-dart-sd_nand.dtb

Note: Boot from SD card eliminates Wifi as the Wifi and SD card are using same SDIO interface.
A typical use-case, is to boot from SD card, flash eMMC or NAND flash, and re-boot form eMMC/NAND to have Wi-Fi operational.

Disable Automatic Device Tree selection

To disable the automatic device tree selection in U-Boot:

$ setenv var_auto_fdt_file=N
$ saveenv

Now you can set the device tree to meet your requirements. For example:

$ setenv fdt_file=imx6ul-var-dart-sd_emmc.dtb
$ saveenv

Will select device tree that has SD and eMMC regardless if the SOM has WIFI.

$ setenv fdt_file=imx6ul-var-dart-sd_nand.dtb
$ saveenv

Will select device tree that has SD and NAND regardless if the SOM has WIFI.

Comment:
Make sure you don't set am illegal value like "imx6ul-var-dart-sd_nand.dtb" in a SOM that has eMMC flash.


Platform Customizations