Changes

Jump to: navigation, search
Typical scenario
*Boot mode is ''Internal boot'', selected via BOOT_MODE pins
*eFUSE have not been programmed, thus ''GPIO override'' is enabled because <code>BT_FUSE_SEL</code> is 0
*according to GPIOs settings, Boot ROM retrieves program image from the selected device.
*LCD1_DATA[23:00] are connected to a circuitry [1] that allows to change easily GPIO settings in order to test different configurations.
Once the product has been qualified validated and the production boot strategy has been defined, the definitive boot configuration needs to be stored permanently in OTP memory. This operation is usually performed during the manufacturing process. To implement it, the ''Manufacture mode'' may come to help. This mode is associated to the <code>SDMMC_MFG_DISABLE</code> setting that by default is 0 (manufacture mode enabled). Therefore the typical manufacturing process looks like this:
*<code>BOOT_MODE</code> pins are set to 00 in order to select ''Boot from eFUSEs'' boot mode
*at the first power up
**if SD/MMC card connected to SDHC1 is found [2], Boot ROM tries to load a Program Image from SDHC1 because it, as <code>SDMMC_MFG_DISABLE</code> is 0**if no SD/MMC card is found [2], Boot ROM switches to serial download mode
***as a consequence, Boot ROM polls for a connection over these interfaces: USB OTG1, UART1 and UART2
**Boot ROM jumps to user code (no matter if this has been retrieved from SD/MMC card or downloaded through serial connection)
**user code takes care of several tasks including the programming of eFUSEs; in particular:
***<code>SDMMC_MFG_DISABLE</code> is blown [3] in order to disable permanently ''manufacture mode''
***<code>BT_FUSE_SEL</code> is blown in order to indicarte indicate Boot ROM that eFUSEs have been programmed***<code>FORCE_INTERNAL_BOOT</code> is blown in order to ignore <code>BOOT_MODE </code> pins from now on
***depending of application's security requirements, other eFUSEs may be blown; for example <code>SDP_DISABLE</code> is blown in case serial download has to be completely disabled
*the system has been fully programmed and can be finally booted in its production configuration
[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 in order to prevent any interference with the actual functional use of these signals.
[2] The detection of SD/MMC card presence is done by polling the status of the pad <code>SD1_CD</code>. If it is 0, SD/MMC card is present.
4,650
edits

Navigation menu