The primes application comes from the MX6_PLATFORM_SDK. The dcd.c file that I used to enhance the Sourcery Probe startup script comes from that app. The remainder of the initialization occurs when the code runs.
For an application to run in DDR, the muxes and MMDC must be setup before the program image is loaded. In this case, the mux and MMDC setup is in the Sourcery Probe script, and comes from the dcd.c file from the SDK.
The memory failure occurs after the mux and MMDC are initialized by the script file. Therefore, I suspect that the ROM boot code has not done all its initialization. The reason would be that without the SD, the ROM enters the serial download mode, and may not complete some initialization.
The memory failure is for every other address. The odd thing is the smart devices board uses one channel of memory. So I am having a hard time imagining what cause failure on every other address. On interleaved memory it would be easier to understand.
I am hoping someone that knows the ROM code will either tell me what else has to be done, or will state the dcd data is enough and offer suggestions on what could have gone wrong.
Here is the data from the probe script that should be the equivalent to the dcd.c file. The dcd.c path in the sdk is SDK/board/mqx6dq/smart_device/dcd.c
ew 0x020E0798 = 0x000C0000
ew 0x020E0758 = 0x00000000
ew 0x020E0588 = 0x00000030
ew 0x020E0594 = 0x00000030
ew 0x020E056c = 0x00000030
ew 0x020E0578 = 0x00000030
ew 0x020E074c = 0x00000030
ew 0x020E057c = 0x00000030
ew 0x020E058c = 0x00000000
ew 0x020E059c = 0x00000030
ew 0x020E05a0 = 0x00000030
ew 0x020E078c = 0x00000030
ew 0x020E0750 = 0x00020000
ew 0x020E05a8 = 0x00000030
ew 0x020E05b0 = 0x00000030
ew 0x020E0524 = 0x00000030
ew 0x020E051c = 0x00000030
ew 0x020E0518 = 0x00000030
ew 0x020E050c = 0x00000030
ew 0x020E05b8 = 0x00000030
ew 0x020E05c0 = 0x00000030
ew 0x020E0774 = 0x00020000
ew 0x020E0784 = 0x00000030
ew 0x020E0788 = 0x00000030
ew 0x020E0794 = 0x00000030
ew 0x020E079c = 0x00000030
ew 0x020E07a0 = 0x00000030
ew 0x020E07a4 = 0x00000030
ew 0x020E07a8 = 0x00000030
ew 0x020E0748 = 0x00000030
ew 0x020E05ac = 0x00000030
ew 0x020E05b4 = 0x00000030
ew 0x020E0528 = 0x00000030
ew 0x020E0520 = 0x00000030
ew 0x020E0514 = 0x00000030
ew 0x020E0510 = 0x00000030
ew 0x020E05bc = 0x00000030
ew 0x020E05c4 = 0x00000030
ew 0x021B0800 = 0xa1390003
ew 0x021B080c = 0x001F001F
ew 0x021B0810 = 0x001F001F
ew 0x021B480c = 0x001F001F
ew 0x021B4810 = 0x001F001F
ew 0x021B083c = 0x43270338
ew 0x021B0840 = 0x03200314
ew 0x021B483c = 0x431A032F
ew 0x021B4840 = 0x03200263
ew 0x021B0848 = 0x4B434748
ew 0x021B4848 = 0x4445404C
ew 0x021B0850 = 0x38444542
ew 0x021B4850 = 0x4935493A
ew 0x021B081c = 0x33333333
ew 0x021B0820 = 0x33333333
ew 0x021B0824 = 0x33333333
ew 0x021B0828 = 0x33333333
ew 0x021B481c = 0x33333333
ew 0x021B4820 = 0x33333333
ew 0x021B4824 = 0x33333333
ew 0x021B4828 = 0x33333333
ew 0x021B08b8 = 0x00000800
ew 0x021B48b8 = 0x00000800
ew 0x021B0004 = 0x00020036
ew 0x021B0008 = 0x09444040
ew 0x021B000c = 0x555A7975
ew 0x021B0010 = 0xFF538F64
ew 0x021B0014 = 0x01FF00DB
ew 0x021B0018 = 0x00001740
ew 0x021B001c = 0x00008000
ew 0x021B002c = 0x000026d2
ew 0x021B0030 = 0x005A1023
ew 0x021B0040 = 0x00000027
ew 0x021B0000 = 0x831A0000
ew 0x021B001c = 0x04088032
ew 0x021B001c = 0x00008033
ew 0x021B001c = 0x00048031
ew 0x021B001c = 0x09408030
ew 0x021B001c = 0x09408038
// ew 0x021B001c = 0x04008040
ew 0x021B0020 = 0x00005000
ew 0x021B0818 = 0x00011117
ew 0x021B4818 = 0x00011117
ew 0x021B0004 = 0x00025576
ew 0x021B0404 = 0x00011006
ew 0x021B001c = 0x00000000