Open main menu

DAVE Developer's Wiki β

Changes

no edit summary
! style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#73B2C7; padding:5px; color:white" |Notes
|-
| style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000" |2024/02/dd14
| style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000" |First documentation release
|-
|}
<section end="History" />
__FORCETOC__
<section begin="Body" />
This page illustrates the characteristics of the AURA's boot subsystem. Reading of the chapter ''System Boot'' of the ''i.MX 93 Applications Processor Reference Manual'' is highly recommended [[File:TBD1], though. i.MX93 SOC features several options in terms of booting. Such options are detailed in that document.png | center | 400px]]
It is worth remembering that, by default, AURA supports ''Single Boot'' modes (i.e. the Cortex-A55 is the boot core) as detailed in the rest of the document. Other options are available on-demand, however, allowing to implement different configurations. DAVE Embedded Systems' team is available for additional information on this matter. If necessary, please contact [mailto:sales@dave.eu sales@dave.eu].<section end="History" />__FORCETOC__<section begin="Body" />
== System boot ==
The boot process begins at Power On Reset (POR) where the hardware reset logic forces the ARM Cortex-A55 core to begin execution starting from the on-chip boot ROM. The boot ROM:
* determines whether the boot is secure or non-secure
* performs some initialization of the system and clean-ups
* reads the OTP settings
* reads the mode pins to determine the primary boot device
* once it is satisfied, it executes the boot code
=== Boot options ===
The default primary boot device is defined at the factory and identified by the 'Boot Mode fileld ' field of the ordering code as follows:
* 0: SPI NOR / SD option (SOM code: DAUxxx0xxxxR)
* 1: eMMC / SD option (SOM code: DAUxxx1xxxxR)
* 2: SPI NAND / SD option (SOM code: DAUxxx2xxxxR)
For both options an alternative primary boot from SD/MMC card is provided, selectable by driving low the BOOT_MODE_SEL signal. Bootable SD/MMC card connects via the SD2 (USDHC2) bus.
BOOT_MODE_SEL All boot modes provide 'single boot' mode, meaning that the Cortex-A55 is the first core to boot. In any case, boot process is managed by on-chip boot ROM code that is latched when described in detail in processor reset is released's Reference Manual. The bootable {| class="wikitable"!Ordering code 'Boot Mode' fileld!BOOT_MODE_SEL!Primary boot device|-| rowspan="2" |0|0|SD/MMC card must be connected to the SD2 (on USDHC2|-|1|FlexSPI NOR on FLEXSPI1|-| rowspan="2" |1|0|SD/MMC card on USDHC2|-|1|eMMC on USDHC1|-| rowspan="2" |2|0|SD/MMC card on USDHC2) bus.|-|1The iMX93x SoC uses some GPIOs to read the boot configuration set |FlexSPI NAND on the SOM: for this reason the SOM's ports UART1_TXD, UART2_TXD, SAI1_TXFS and SAi1_TXD0 are floating (high impedance) while CPU_PORn signal is low.FLEXSPI1|}
=== Note on boot signals ===
* BOOT_MODE_SEL is latched when processor reset CPU_PORn is released. Inside the SOM, BOOT_MODE_SEL is pulled-up with 10 kohm.
* The iMX93x SoC uses some GPIOs to read the boot configuration set on the SOM: for this reason the SOM's ports UART1_TXD, UART2_TXD, SAI1_TXFS and SAI1_TXD0 are floating (high impedance) while CPU_PORn signal is low.
[[File:AURA-boot-opt.png | 800px]]
==== SPI NOR / SD option ==Note on boot ==Selection of primary boot device is determined by the BOOT_MODE_SEL signal as follows:* BOOT_MODE_SEL = 0** primary boot device is SD2 (USDHC2)* boot ROM will try to boot a valid image from the SD card first, and then from the SPI NOR. In case no valid image is found, boot ROM shall enable USB serial download mode automatically* BOOT_MODE_SEL = 1 or floating** primary boot device is SPI NOR flash connected to FLEXSPI** in case no valid image is found in SPI NOR flash, boot ROM shall enable USB serial download mode automatically ==== eMMC / SD option ====Selection of primary boot device is determined by the BOOT_MODE_SEL signal as follows:* BOOT_MODE_SEL = 0** primary boot device is SD2 (USDHC2)** in case no valid image is found in SD card, boot ROM shall enable USB serial download mode automatically * BOOT_MODE_SEL = 1 or floating** primary boot device is eMMC connected to USDHC1** in case no valid image is found in eMMC flash, boot ROM shall enable USB serial download mode automatically ==== SPI NAND / SD option ====Selection of primary boot device is determined by the BOOT_MODE_SEL signal as follows:* BOOT_MODE_SEL = 0** primary boot device is SD2 (USDHC2)** in case no valid image is found in SD card, boot ROM shall enable USB serial download mode automatically * BOOT_MODE_SEL = 1 or floating** primary boot device is SPI NAND flash connected to FLEXSPI** in case no valid image is found in SPI NAND flash, boot ROM shall enable on USB serial download mode automaticallyOTG1.
===Important note for ''manufacture mode'' management===
Bootstrap stage has to be intended as the time elapsing between the release of hardware reset (CPU_PORn) and the execution of the first instruction of user code (typically this is the reset vector of U-Boot boot loader).
 
== References ==
[1] NXP, i.MX 93 Applications Processor Reference Manual
<section end="Body" />
[[Category:AURA]]
4,650
edits