Difference between revisions of "CL-SOM-iMX7: U-Boot: Firmware Overview"

From Compulab Mediawiki
Jump to: navigation, search
(Introduction)
 
(Boot sources)
Line 1: Line 1:
 
== Introduction ==
 
== Introduction ==
This article describes the firmware for CL-SOM-iMX7 system-on-module.
+
This article describes the firmware for CL-SOM-iMX7 system-on-module / Computer-on-Module.
CL-SOM-iMX7 firmware consists of <!--two components provided in--> a single binary: <!--Secondary Program Loader (SPL) and -->U-Boot image.
+
CL-SOM-iMX7 firmware consists of a single binary: U-Boot image.
<!--SPL is the bootstrap utility invoked by the CPU internal boot ROM code of the i.MX7 SoC.-->
+
The i.MX7 boot ROM tries to boot U-Boot from either SD card, or SPI flash, as determined by the hardware boot selector (ALT BOOT button).
The i.MX7 boot ROM tries to boot <!--SPL--> U-Boot from either SD card, or SPI flash, as determined by the hardware boot selector (ALT BOOT button).
 
<!--SPL performs minimal hardware initializations and loads U-Boot from the same boot storage device. If loading U-Boot from MMC fails, SPL will try to load it
 
from the SPI flash as a fall back.-->
 
 
U-Boot initializes hardware modules necessary for system boot and loads the operating system.
 
U-Boot initializes hardware modules necessary for system boot and loads the operating system.
 
=== Package contents ===
 
<pre>
 
cl-som-imx7-u-boot/
 
├── images
 
│   └── cl-som-imx7-firmware
 
├── README.txt
 
└── u-boot
 
    ├── patches
 
    │   ├── 0001-arm-imx7d-add-support-for-Compulab-cl-som-imx7.patch
 
    │   ├── ...
 
    │   └── 0008-arm-imx7d-cl-som-imx7-add-extraversion.patch
 
    ├── u-boot-v2016.09-cl-som-imx7-0.91.bin
 
    └── u-boot-v2016.09-cl-som-imx7-0.91.patch
 
</pre>
 
 
==== images ====
 
* {{filename|cl-som-imx7-firmware}} - CL-SOM-iMX7 firmware binary
 
 
==== u-boot ====
 
* {{filename|u-boot-v2016.09-cl-som-imx7-0.91.bin}} - U-Boot binary
 
* {{filename|u-boot-v2016.09-cl-som-imx7-0.91.patch}} - patch vs. v2016.09 mainline U-Boot
 
* {{filename|patches}} - ordered collection of patches, that form the single patch above (u-boot-v2016.09-cl-som-imx7-0.91.patch)
 
  
 
== U-Boot ==
 
== U-Boot ==
Line 41: Line 15:
  
 
== Boot sources ==
 
== Boot sources ==
CM-FX6 can boot from either a micro SD card, or the on-board SPI flash.
+
CL-SOM-iMX7 can boot from either a micro SD card, or the on-board SPI flash.
  
 
The following sections describe the layout of each storage type.
 
The following sections describe the layout of each storage type.
  
=== Default SPI flash mapping ===
+
=== Default CL-SOM-iMX7 storage device mapping ===
 
{| cellpadding="3" border="1" style="border: 1px solid rgb(85, 85, 85); border-collapse: collapse;"
 
{| cellpadding="3" border="1" style="border: 1px solid rgb(85, 85, 85); border-collapse: collapse;"
 +
|+ SPI flash mapping
 +
|-
 
! Offset
 
! Offset
 +
! Size
 
! Description
 
! Description
! Size
 
 
|-
 
|-
| 0KB
+
| 0x0 (0KB)
 +
| 0xc0000 (768KB)
 
| U-Boot
 
| U-Boot
| 768KB
 
 
|-
 
|-
| 768KB
+
| 0xc0000 (768KB)
 +
| 0x40000 (256KB)
 
| U-Boot environment
 
| U-Boot environment
| 256KB
 
 
|-
 
|-
| 1MB
+
| 0x100000 (1MB)
 +
| Remaining SPI flash space
 
| Splash image
 
| Splash image
| Remaining SPI flash space
 
 
|}
 
|}
  
=== Default SD card mapping ===
 
 
{| cellpadding="3" border="1" style="border: 1px solid rgb(85, 85, 85); border-collapse: collapse;"
 
{| cellpadding="3" border="1" style="border: 1px solid rgb(85, 85, 85); border-collapse: collapse;"
 +
|+ NAND flash mapping
 +
|-
 
! Offset
 
! Offset
 +
! Size
 
! Description
 
! Description
 +
|-
 +
| 0x0 (0KB)
 +
| 0x980000 (9.5MB)
 +
| Kernel (zImage)
 +
|-
 +
| 0x980000 (9.5MB)
 +
| 0x80000 (512KB)
 +
| Device Tree blob (.dtb)
 +
|-
 +
| 0xa00000 (10MB)
 +
| Remaining NAND flash space
 +
| Root filesystem
 +
|}
 +
 +
{| cellpadding="3" border="1" style="border: 1px solid rgb(85, 85, 85); border-collapse: collapse;"
 +
|+ SD card mapping
 +
|-
 +
! Offset
 
! Size
 
! Size
 +
! Description
 
|-
 
|-
| 0KB
+
| 0x0 (0KB)
 +
| 0x400 (1KB)
 
| Reserved/MBR
 
| Reserved/MBR
| 1KB
 
 
|-
 
|-
| 1KB
+
| 0x400 (1KB)
 +
| 0xffc00 (999KB)
 
| U-Boot
 
| U-Boot
| ~1MB
 
 
|-
 
|-
| 1MB
+
| 0x100000 (1MB)
| Remaining SD-card space
 
 
| Remaining SD-card space
 
| Remaining SD-card space
 +
| Partitions/Filesystems/Data
 
|}
 
|}
  
 
[[Category:U-Boot]]
 
[[Category:U-Boot]]
 
[[Category:CL-SOM-iMX7]]
 
[[Category:CL-SOM-iMX7]]

Revision as of 14:01, 12 July 2017

Introduction

This article describes the firmware for CL-SOM-iMX7 system-on-module / Computer-on-Module. CL-SOM-iMX7 firmware consists of a single binary: U-Boot image. The i.MX7 boot ROM tries to boot U-Boot from either SD card, or SPI flash, as determined by the hardware boot selector (ALT BOOT button). U-Boot initializes hardware modules necessary for system boot and loads the operating system.

U-Boot

U-Boot is the bootloader used on CL-SOM-iMX7. It allows flexible selection of operating system boot modes, provides scripting facilities and command line interface through a serial port. U-Boot allows booting operating system from the on-board eMMC flash, removable storage (e.g. USB drive, SD/MMC card), or the network (TFTP/NFS server).

Please consult U-Boot quick reference and U-Boot project documentation for U-Boot features and commands description.

U-Boot environment

U-Boot environment resides on the SPI flash, regardless of the boot source. The environment resides at offset 0xC0000 from the start of SPI flash, and its size is 8KiB.

Boot sources

CL-SOM-iMX7 can boot from either a micro SD card, or the on-board SPI flash.

The following sections describe the layout of each storage type.

Default CL-SOM-iMX7 storage device mapping

SPI flash mapping
Offset Size Description
0x0 (0KB) 0xc0000 (768KB) U-Boot
0xc0000 (768KB) 0x40000 (256KB) U-Boot environment
0x100000 (1MB) Remaining SPI flash space Splash image
NAND flash mapping
Offset Size Description
0x0 (0KB) 0x980000 (9.5MB) Kernel (zImage)
0x980000 (9.5MB) 0x80000 (512KB) Device Tree blob (.dtb)
0xa00000 (10MB) Remaining NAND flash space Root filesystem
SD card mapping
Offset Size Description
0x0 (0KB) 0x400 (1KB) Reserved/MBR
0x400 (1KB) 0xffc00 (999KB) U-Boot
0x100000 (1MB) Remaining SD-card space Partitions/Filesystems/Data