I ran into a problem while testing the eMMC boot on the iMX8MN device.
During this test, the eFuse 0x480.[25] (RECOVER_ECSPI_BOOT_EN) was enabled, but I don’t think it should matter for my question.
First I strapped the device to boot from eCSPI via the external BOOT_MODE pins (boot mode 0b1000). This works as expected.
Then I strapped the device to boot from eMMC via the external BOOT_MODE pins (boot mode 0b0010).
Since we are using uSDHC1 instead of uSDHC3 for the eMMC boot, I also set the following fuses:
set eFuse 0x470:
OVERRIDE_USDHC_BT_SEL = 0b1
OVERRIDE_USDHC_BT_SEL_VAl = 0b01 (uSDHC1 eMMC)
BOOT_MODE_FUSES = 0b0010 to prepare for a fused boot into eMMC
I used the following command in U-Boot:
fuse prog 1 3 0x00002A00
Also, this works as expected. The iMX now boots from uSDHC1 when BOOT_MODE pins are strapped to eMMC boot.
I also programmed the USDHC IO Voltage selection 0x490[1] to 1, in order to select the 1v8 mode.
fuse prog 2 1 0x2
I then strapped the BOOT_MODE pins to 0b0000, to select ‘boot from fuses’. However, now the iMX does not boot.
I thought that with the above fuse programming actions, the fuses should be set up correctly to boot from uSDHC1, also when the BOOT_MODE pins are set to 0.
Do you see any mistakes in this procedure?
Since the eMMC boot is working when using the external BOOT_MODE strapping, and since
"Table 6-3. GPIO override contact assignments"
from the IMX8MNRM only mentions the BOOT_MODE pin as overrides, I don't know what difference is causing my boot from fuses to fail.