I have validated my boot cfg bits through the schematics are set to 0x0800_E048 which properly selects the uSDHC1 interface for booting. I was attempting to validate this with my emulator, but am unsure of the address the boot cfg bits are stored in on the i.MX6. Where can I find this register?
If I use my JTAG emulator to boot u-boot I can access the SD card and have validated my u-boot.imx image exists in the 2nd block of memory on the card:
U-Boot > mmc read 0x10000000 2 1
MMC read: dev # 0, block # 2, count 1 ... 1 blocks read: OK
U-Boot > md.b 0x10000000
10000000: d1 00 20 40 00 00 80 17 00 00 00 00 2c f4 7f 17 .. @........,...
10000010: 20 f4 7f 17 00 f4 7f 17 00 00 00 00 00 00 00 00 ...............
10000020: 00 f0 7f 17 00 e0 05 00 00 00 00 00 d2 01 90 40 ...............@
10000030: cc 01 8c 04 02 1b 00 18 00 08 17 40 02 1b 00 04 ...........@....
According to fdisk in Linux, the block size for the disk is 512. Which means that my u-boot.imx image is properly located at a 1024 byte offset.
So the SD card is programmed properly (according to documentation), the interface is accessible, the boot configuration bits appear to be correct... What else could be wrong?