51.9.1.1 Boot Procedure, Processor Mode
- Configure the SDMMC:
a. Set the data bus width using SDMMC_HC1R.DW and SDMMC_HC1R.EXTDW according to the BOOT_BUS_WIDTH in the Extended CSD Register (see “Embedded MultiMedia Card (e.MMC) Electrical Standard 4.51” ).
b. Select the speed mode (using SDMMC_HC1R.HSEN or SDMMC_MC1R.DDR) according to BOOT_MODE in the Extended CSD Register.
c. Set the SDCLK frequency according to the selected speed mode.
d. If the Boot Acknowledge is sent by the e.MMC device (BOOT_ACK = 1 in the Extended CSD Register), set the Boot Acknowledge Enable to ‘1’ (SDMMC_MC1R.BOOTA = 1).
e. Enable the interrupt on Boot Acknowledge Received (SDMMC_NISTER.BOOTAR = 1 and SDMMC_NISIER.BOOTAR = 1).
f. Set the e.MMC Command Type to BOOT (SDMMC_MC1R.CMDTYP = 3)
g. Set SDMMC_TMR to read multiple blocks for the e.MMC device (SDMMC_TMR.MSBSEL = 1 and SDMMC_TMR.DTDSEL = 1).
h. Select the NonDMA transfer (SDMMC_TMR.DMAEN = 0).
i. Optional: select the Auto CMD method (using SDMMC_TMR.ACMDEN).
j. Set the block size to 512 bytes (SDMMC_BSR.BLKSIZE = 512).
k. Set the required number of read blocks (using SDMMC_BCR.BLKCNT). SDMMC_TMR.BCEN must be set to ‘1’.
- Write SDMMC_CR = 20(hexa) to set the e.MMC in Boot Operation mode.
- Wait for interrupt on Boot Acknowledge Received (BOOTAR).
- The user can copy the boot data sequentially as soon as the BRDRDY flag is asserted.
- When the data transfer is completed, the boot operation must be terminated by setting SDMMC_MC2R.ABOOT to ‘1’.