++++Excerpt from i.MX 6Dual/6Quad Applications Processor Reference Manual, Rev. 3, 07/2015|
> **8.2.1 Boot mode pin settings**
> The device has four boot modes (one is reserved for Freescale use). Boot mode is
> selected based on the binary value stored in the internal BOOT_MODE register.
>
> BOOT_MODE is initialized by sampling the BOOT_MODE0 and BOOT_MODE1
> inputs on the rising edge of POR_B. After these inputs are sampled, their subsequent
> state does not affect the contents of the BOOT_MODE internal register. The state of the
> internal BOOT_MODE register may be read from the BMOD[1:0] field of the SRC Boot
> Mode Register (SRC_SBMR2). The available boot modes are: Boot From Fuses, serial
> boot via USB, and Internal Boot. See the table below for settings.
>
> **Table 8-1. Boot MODE Pin Settings**
>
>
^ BOOT_MODE[1:0] ^ Boot Type ^
| 00 | Boot From Fuses |
| 01 | Serial Downloader |
| 10 | Internal Boot |
| 11 | Reserved |
>
> ...
>
> **8.2.3 Boot From Fuses Mode (BOOT_MODE[1:0] = 00b)**
> A value of 00b in the BOOT_MODE[1:0] register selects the Boot From Fuses mode.
>
> This mode is similar to the Internal Boot mode described in Internal Boot Mode
> (BOOT_MODE[1:0] = 0b10)with one difference. In this mode the GPIO boot override
> pins are ignored. The boot ROM code uses the boot eFUSE settings only. This mode also
> supports a secure boot using HAB.
>
> If set to Boot From Fuses, the boot flow is controlled by the BT_FUSE_SEL eFUSE
> value. If BT_FUSE_SEL = 0, indicating that the boot device (for example, Flash, SD/
> MMC) has not yet been programmed, the boot flow jumps directly to the Serial
> Downloader. If BT_FUSE_SEL = 1, the normal boot flow is followed, where the ROM
> attempts to boot from the selected boot device.
>
> The first time a board is used, the default eFUSEs may be configured incorrectly for the
> hardware on the platform. In such a case, the Boot ROM code may try to boot from a
> device that does not exist. This may cause an electrical/logic violation on some pads.
> Using Boot From Fuses mode addresses this problem.
>
> Setting BT_FUSE_SEL=0 forces the ROM code to jump directly to the Serial
> Downloader. This allows a bootloader to be downloaded which can then provision the
> boot device with a Program Image and blow the BT_FUSE_SEL and the other boot
> configuration eFUSEs. After reset, the Boot ROM code determines that BT_FUSE_SEL
> is blown (BT_FUSE_SEL = 1) and the ROM code performs internal boot according to
> the new eFUSE settings. This allows a user to set BOOT_MODE[1:0]=00b on a
> production device and burn fuses on the same device (by forcing entry to the Serial
> Downloader), without changing the value of BOOT_MODE[1:0] or pullups/pulldowns
> on the BOOT_MODE pins.
++++
===== Brennen der eFuses =====
==== Boot from SPI NOR ====
passende Bootkonfiguration nachschauen (entweder DIP-Switches oder im CPU-Manual (Fusemap)):
^BOOT_CFG4 ^BOOT_CFG3 ^BOOT_CFG2 ^BOOT_CFG1 ^
|00011000 |00000000 |00000000 |00110000|
|S4 |S3 |S2 |S1 |
Umwandeln in Hex:\\
00011000 00000000 00000000 00110000bin = 18000030hex
==== Boot from eMMC ====
passende Bootkonfiguration nachschauen (entweder DIP-Switches oder im CPU-Manual (Fusemap)):
^BOOT_CFG4 ^BOOT_CFG3 ^BOOT_CFG2 ^BOOT_CFG1 ^
|00000000 |00000000 |01010000 |01100010|
|S4 |S3 |S2 |S1 |
Umwandeln in Hex:\\
00000000 00000000 01010000 01100010bin = 5062hex
==== Boot from SD-Card ====
passende Bootkonfiguration nachschauen (entweder DIP-Switches oder im CPU-Manual (Fusemap)):
^BOOT_CFG4 ^BOOT_CFG3 ^BOOT_CFG2 ^BOOT_CFG1 ^
|00000000 |00000000 |00101000 |01010000|
|S4 |S3 |S2 |S1 |
Umwandeln in Hex:\\
00000000 00000000 00101000 01010000bin = 2850hex
==== Befehle unter Uboot ====
=== Brennen der BOOT_CFG Fuses ===
fuse prog -y bank 5 word 0: BOOT_CFG \\
fuse prog -y bank 5 word 0
++++Beispiel:|
#set Fuses for Boot from SPI NOR \\
fuse prog -y 5 0 18000030
++++
=== Brennen der BT_FUSE_SEL ===
fuse prog -y bank 0 6: SRC Boot Mode Register 2 (BT_FUSE_SEL an Bit 4)
fuse prog -y 0 6 00000010
Das Brennen der Fuses kann nicht rückgängig gemacht werden. Wenn BT_FUSE_SEL gebrannt wurde, kann nur noch von den eFUses bzw. im Serial Downloader Mode gebootet werden. Ohne das Brennen der BT_FUSE_SEL kann bei der Beschaltung der TQ-Mainboards nicht von den eFuses gebootet werden.
=== Bootverhalten ===
^ BOOT MODE^ ^ Boot von eMMC auf eFuses gebrannt ^^
| | |BT_FUSE_SEL nicht gebrannt| BT_FUSE_SEL gebrannt|
|Internal Boot Mode|Dip-Switches auf Boot von SD-Karte|Bootet von SD-Karte|Bootet von eFuses|
| :::|Dip-Switches auf Boot von QSPI NOR| Bootet von QSPI NOR| Bootet von eFuses|
|eFuses Boot Mode| | Serial Downloader Mode|Bootet von eFuses|
|Serial Downloader Mode| | Serial Downloader Mode | Serial Downloader Mode|