After some investigation I have some additional information that might help. Note that none of these U-Boot images were successfully loaded and started from QSPI by the processor.
When generating the final imximage for the mfgtool, this is the command that is run:
./tools/mkimage -n board/freescale/mx6sxsabresd/imximage.cfg.cfgtmp -T imximage -e 0x87800000 -d u-boot.bin u-boot.imx
Image Type: Freescale IMX Boot Image
Image Ver: 2 (i.MX53/6 compatible)
Mode: DCD
Data Size: 385024 Bytes = 376.00 kB = 0.37 MB
Load Address: 877ff420
Entry Point: 87800000
And this is the initial part of the resulting u-boot.imx image where the IVT/DCD/etc. structures are:
00000000: d100 2040 0000 8087 0000 0000 2cf4 7f87 .. @........,...
00000010: 20f4 7f87 00f4 7f87 0000 0000 0000 0000 ...............
00000020: 00f0 7f87 00e0 0500 0000 0000 d202 0840 ...............@
00000030: cc02 0404 020c 4068 ffff ffff 020c 406c ......@h......@l
00000040: ffff ffff 020c 4070 ffff ffff 020c 4074 ......@p......@t
00000050: ffff ffff 020c 4078 ffff ffff 020c 407c ......@x......@|
00000060: ffff ffff 020c 4080 ffff ffff 020c 4084 ......@.......@.
00000070: ffff ffff 020e 0618 000c 0000 020e 05fc ................
When generating the U-Boot imximage intended to boot from qspi (CONFIG_SYS_BOOT_QSPI is defined), this is the command that is run:
./tools/mkimage -n board/freescale/mx6sxsabresd/imximage.cfg.cfgtmp -T imximage -e 0x87800000 -d u-boot.bin u-boot.imx
Image Type: Freescale IMX Boot Image
Image Ver: 2 (i.MX53/6 compatible)
Mode: DCD
Data Size: 389120 Bytes = 380.00 kB = 0.37 MB
Load Address: 877ff7f0
Entry Point: 87800000
And this is the initial part of the resulting u-boot.imx image, note that the only major change is the "size" in the boot data section (I think?):
00000000: d100 2040 0000 8087 0000 0000 fcf7 7f87 .. @............
00000010: f0f7 7f87 d0f7 7f87 0000 0000 0000 0000 ................
00000020: d0e7 7f87 00f0 0500 0000 0000 d202 0840 ...............@
00000030: cc02 0404 020c 4068 ffff ffff 020c 406c ......@h......@l
00000040: ffff ffff 020c 4070 ffff ffff 020c 4074 ......@p......@t
00000050: ffff ffff 020c 4078 ffff ffff 020c 407c ......@x......@|
00000060: ffff ffff 020c 4080 ffff ffff 020c 4084 ......@.......@.
00000070: ffff ffff 020e 0618 000c 0000 020e 05fc ................
I did find a note in the README.imximage file (uboot-imx.git - Freescale i.MX u-boot Tree ) that "BOOT_FROM" command in the imximage.cfg file (uboot-imx.git - Freescale i.MX u-boot Tree ) is depreciated and the BOOT_OFFSET tag is recommended to be used instead. So I tried modifying the imximage.cfg file to specify
BOOT_OFFSET FLASH_OFFSET_QSPI
rather than:
BOOT_FROM qspi
Here is the mkimage output for that attempt:
./tools/mkimage -n board/freescale/mx6sxsabresd/imximage.cfg.cfgtmp -T imximage -e 0x87800000 -d u-boot.bin u-boot.imx
Image Type: Freescale IMX Boot Image
Image Ver: 2 (i.MX53/6 compatible)
Mode: DCD
Data Size: 385024 Bytes = 376.00 kB = 0.37 MB
Load Address: 877ff7f0
Entry Point: 87800000
Note that the data size is the now the same as the mfgtool U-Boot that I built, but the DCD and "boot data" pointers match the previous qspi U-Boot version that I built:
00000000: d100 2040 0000 8087 0000 0000 fcf7 7f87 .. @............
00000010: f0f7 7f87 d0f7 7f87 0000 0000 0000 0000 ................
00000020: c1f7 7f87 00e0 0500 0000 0000 d202 0840 ...............@
00000030: cc02 0404 020c 4068 ffff ffff 020c 406c ......@h......@l
00000040: ffff ffff 020c 4070 ffff ffff 020c 4074 ......@p......@t
00000050: ffff ffff 020c 4078 ffff ffff 020c 407c ......@x......@|
00000060: ffff ffff 020c 4080 ffff ffff 020c 4084 ......@.......@.
00000070: ffff ffff 020e 0618 000c 0000 020e 05fc ................