Hi,
we are working on a design with i.MX8mm with eMMC as primary boot memory (controlled by eFUSE).
As a fallback to that (eMMC) we would like to be able to boot the system from an SPI-flash.
According to IMX8MMRM (R3) there is an eFUSE bit called "SPI recovery boot enable" (p 784) but unfortunately there is not so much more information about that. On page 831 table 6-24 this signal is mentioned again but the paragraph is "Serial(SPI) NOR eFUSE configuration".
I am looking for some answers to:
1. Is it possible to use SPI-flash as a fallback boot to eMMC?
2. Would it be possible to force a boot from the SPI-flash in some way?
3. Is there any more documentation regarding these questions or application notes?
Best regards,
Jonny
Hi,
can report with success, that on i.MX8M Nano, setting RECOVER_ECSPI_BOOT_EN efuse bit will trigger eCSPI boot in case boot from primary device fails.
Thanks @jonnye again for helpful information!
@jonnye
Hello,
The boot ROM supports these boot devices:
• Serial NOR Flash via FlexSPI
• NAND flash
• SD/MMC
• Serial (SPI) NOR
Section Table 6-9 (Boot device selection) of i.MX 8Mm Reference Manual (Rev. 3, 11/2020)
shows available for boot options, which can be selected, using BOOT_CFG[14:12].
Note: i.MX8Mm recovery boot is from ECSPI, if the corresponding fuse is burned.
Besides this recovery boot, SD/MMC manufacture mode allows to boot from USDHC2
before entering USB download mode if other boot devices failed.
Regards,
Yuri.
Hi, thanks for your fast response. We planned to use BOOT_CFG[14:12] = 010 (MMC/eMMC).
What is not clear to me is if I (when loading from eMMC fails) can use SPI-flash from ECSPI as recovery boot?
And can I force the system to use the recovery SPI-flash (if needed, e.g. booting U-Boot works fine but when loading kernel or later it fails)?
Regards,
Jonny
Hi,
we have done some initial tests on an iMX8mmevk board. On that board we only use the SD-CARD as boot memory. But when that boot fails the processor boots from SPI-flash located on ECSPI2. But we needed to have a later version of the processor to get it to work.
Regards,
Jonny
Hi @jonnye
Thanks again for your answers! Very helpful indeed.
I promise those are my last questions and then I will leave you alone
Questions:
1) Beside programming fuse bank 2 0 -> 0x480[31:24], did you also need to program fuse bank 1 3 -> 0x470[0:15]. These fuse bits contain eCSPI related settings e.g. SPI addressing, CS#, etc. Or did you leave those at default values?
2) What kind of SPI-NOR chip are you using? We have serial SPI-NOR ISSI is25lp032 (4MiB).
BR
Hi @wooosaiiii,
No problem,
1) I did not program fuse bank 1 3, we use dip-switches on the board to control default boot storage. But for recovery boot that was not an option.
2) Micron Serial NOR Flash Memory, MT25QL128ABA. Package with 8 pins.
BR
Jonny