Hi, I'm looking for some help or suggestions in debugging what looks like a marginal design (that was done by a predecessor)
The situation is that we have two prototype boards each with two C6455 DSPs. Both DSPs on both of these boards work fine.
We then got 2 pre-production boards. Of the four DSPs in total, only one works. The others all fail in a similar way.
Failure is due to either an opcode fetch exception (in 2 of 3 chips) or memcpy getting stuck in an infinite loop (in the other DSP), in the bit of DSP/BIOS that does memory section initialisation. Code is executing from IRAM, some of the sections are in DDR2 So it seems that something that accesses memory is unhappy (yet it is totally consistent – i.e it always fails the same way)
BUT – if I single step – or, weirdly, carefully chill the chip (only) with freezer spray, then the DSP works. Always.
I tried changing the PLL (we normally run at 1.2G) but this made no difference.
I read the bit in the user manual that the memory should be initialised before DSP/BIOS – this is done in the GEL file for the moment (the bootloader does this in the full system but I can’t get far enough to program that in yet!)
I am suspicious - but not wholly convinced - it’s when the DDR2 is accessed (due I believe to the original designer wanting heaps in some sections)
As far as I can tell, DDR2 is set up OK. But I am not the original designer so have not thoroughtly checked every parameter - but it works on the prototypes.
I am also reasonably confident that the hardware itself is well made (and probably x-rayed) so i don't think this is a solder problem or noise pickup in a track etc. The reason for this assertion is that the fault is totally consistent.
Because I have no source for the DSP/BIOS,and am relying only on interpreting what I see in the disassembly window, I am finding it extremely difficult to make any headway into where the DSP parts from normal code execution and wonder if anyone can make any suggestions on what to try next? In the case where I get an exception, the NRP is 0x6000,0000 which does not make much sense.
DSP/bios is 5_41_11_38
Thanks in advance