Yocto Platform Customization: Difference between revisions
No edit summary |
|||
Line 1: | Line 1: | ||
= Yocto = | |||
== 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 = | |||
== 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 == | |||
<section begin=VAR-SOM-MX6_DTB/> | <section begin=VAR-SOM-MX6_DTB/> | ||
<pre> | <pre> | ||
Line 118: | Line 118: | ||
= DART-6UL= | |||
== 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 == | |||
<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 == | |||
<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.
- "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.
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