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