We are trying to boot a custom i.mx23 board from an sd card and are seeing the following rom error code.
#define ERROR_ROM_USB_CONNECT_TIMEOUT (ERROR_ROM_GROUP |
ERROR_ROM_USB_DRIVER_GROUP | 0x8)
It does not appear to attempt to boot from the sd card.
Does the error above prevent it from booting from sd ?
We are looking for hardware issues but I was wondering if anyone had any insights into how this error affects boot, etc.
Thanks for any help,
Hmm, everything checks out, voltages, boot mode pins, fuses, but we are still seeing the same boot rom code indicating that it is trying to boot over USB.
We also are not seeing any SPI bus activity for the MMC so it does not seem to be even trying to boot from the SD card.
FWIW, we have another board based on the i.mx28 that we are able to boot from SD with no problems. The same guy designed both boards and he is stumped as to why the i.mx23 board is not booting from SD having checked all the voltages, pin settings, SD card presence switch, etc.
From the Boot ROM error list, it is trying to boot from USB.
#define ERROR_ROM_USB_CONNECT_TIMEOUT (ERROR_ROM_GROUP | ERROR_ROM_USB_DRIVER_GROUP | 0x8)
So it seems it is not falling back to mmc.
I'd do the following; boot the board from USB (using U-Boot) and try to check the MMC from there. If it works, then MMC is fine and it should be a fuse or boot pins issue.
We tried to USB boot u-boot from an SD card plugged into a USB card reader but got the same result.
Can it boot this way ? ie. with a SD card plugged into a USB SD card reader ?
No; you need to boot using a USB loader.
Last time I debugged this kind of issue from a customer board this boosted a lot the test cycle; so I think it is worth setting up the environment.
If your board has the USB_DP and USB_DN pins in the USB connector, it is easy to do.
You can use mxsldr to boot from USB that way. After that, it is a plain U-Boot and you just use it as usual.
Ok, we found and removed a solder bridge on our board and are now seeing a different rom code.
#define ERROR_DDI_SD_CONFIG_BLOCK_NOT_FOUND (ERROR_DDI_GROUP | ERROR_DDI_SD_DRIVER_GROUP | 0x7)
Could this mean that that SD card image is bad ?
i.MX23 Reference Manual (page 1372):
SD_MBR_BOOT—Set to enable SD Master Boot Record (MBR) mode. The
SD/MMC card should have a valid MBR to boot successfully in this mode. If this
bit is not set, ROM will try to boot in default mode, BCB (Boot Control Block).
So our you use BCB or you use MBR ;-)