Changes

Jump to: navigation, search
Overview of NXP iMX6UL bootstrap process
| 11||reserved
|}
It is worth remebering remembering that, no matter what modes is selected, when processor reset is released, internal Boot ROM is executed. Its behavior depends on selected mode as described in the following sections. 
===Boot from eFUSEs===
The term eFUSEs refers to an one-time-programmable (OTP) memory integrated in iMX6UL processor. This memory is organized in several 32-bit words. Some of these words - named <code>BOOT_CFG</code> - are used to store configuration bits that affect the boot process, when ''Boot from eFUSEs'' mode is selected. In this case, Boot ROM reads <code>BOOT_CFG</code> words and acts consequently. In particular it tries to retrieve the Program Image [1] from the selected device (NOR flash, NAND flash, SD card etc.), as per <code>BOOT_CFG</code> bits.
<code>BOOT_CFG </code> includes many configuration settings. Some of them are particularly important for the boot strategy:
*BT_FUSE_SEL (shipped value = 0)
*SDMMC_MFG_DISABLE (shipped value = 0)
The use of these settings will be more clear soon.
In case internal boots fails, Boot ROM can attempt to retrieve an alternative valid Program Image. For more details please refer to <ref name="IMX6ULRM"></ref>.  [1] Program Image includes - but it is not limited to - the code that is executed by the processor when Boot ROM jumps into to it. ===Internal boot===This mode is similar to ''Boot from eFUSEs'' with one notable difference related to the so called ''GPIO override'' option. The selection of the device from which Boot ROM retrieves Program Image along with several further device-specific configuration settings, can be done in two different ways, depending on <code>BT_FUSE_SEL</code> bit:* 0 (shipped value): GPIOs**This technique - also known as ''GPIO override'' is typically used during the development stage. It allows to use 24 GPIOs (specifically LCD1_DATA[23:00]) to configure <code>BOOT_CFG</code> bits.* 1: eFUSE.**In this case <code>BOOT_CFG</code> bits are fetched from OTP memory.
===Serial downloader===
Since these pads may be used to implement different functions other than UART signals in customer's application, '''system integrator needs to verify that the Serial Downloader - if used - is electrically compatible with his/her own carrier board'''.
===Internal boot===
This mode is similar to ''Boot from eFUSEs'' with one notable difference related to the so called ''GPIO override'' option.
 
The selection of the device along with several further device-specific configuration settings can be done in two different ways, depending on <code>BT_FUSE_SEL</code>:
* 0 (shipped value): GPIOs
**This technique - also known as ''GPIO override'' is typically used during the development stage. It allows use 24 GPIOs (specifically LCD1_DATA[23:00]) to configure <code>BOOT_CFG</code> bits.
* 1: eFUSE.
**In this case <code>BOOT_CFG</code> bits are fetched from OTP memory.
 
In case internal boots fails, Boot ROM can attempt to retrieve an alternative valid Program Image. For more details please refer to <ref name="IMX6ULRM"></ref>.
===Typical scenario===
[1] This circuitry - that will not be populated in mass production stage - is such that it operates until Boot ROM reads GPIO pads status. Once this operation is completed, GPIO pads should be electrically disconnected from this circuitry to prevent any interference with the actual use of these signals.  
==Options for AXELULite users==
==References==
{{reflist}}
4,650
edits

Navigation menu