I had 22 boards built and of those 22 this problem only occurs on 5 of the boards. I bootload the TMS320C6748 as a SPI slave with an .ais file generated with the AISgen tool. The microcontroller firmware that runs the boot up (SPI master) is the same on all 22 boards. The .ais file is the same on all 22 boards. I have verified that the .ais was successfully loaded onto all of the boards and is being written to the C6748 accurately.
All of the initial handshaking is ok on all of the boards. Following this several execute function commands are called. Then CRC checking is enabled. This is followed by several section loads and CRC checks. That goes OK on all of the boards. This continues to function OK until I get to the 4th section load and CRC check. The 4th section load is at a significantly higher address than the previous 3. At this point the 5 bad boards always report back an invalid CRC value.
I can't figure out why I have this problem on a limited set of boards. What could have occurred during assembly on those few boards that the C6748 communicates perfectly fine on the bad boards until a section load at a higher address. It doesn't seem like an assembly problem. The firmware and .ais code are identical so I don't think there is a problem with that. The good and bad boards both have the exact same part markings on the C6748 so I'm assuming they're the same silicon revision etc. Those are:
TMS320
C6748EZWT
63A80ZW GI 450
527 ZWT
Has anybody encountered something like this before or have an idea what my problem could be?