Some boards of a board type with the TMS320C6414T show the error as described.
After powerup the DSP is booted by the host via the HPI (HPI32). After some successful HPI accesses /HRDY does not go active on a HPID Read from the internal RAM of the DSP. The access is terminated by the host after a timeout (60us). When the HPID Read is repeated, the result is the same (/HRDY not going active, bus timeout).
While the HPI is not working any more, the DSP continues to work normally (as seen from GPIO pins and from an emulator).
The only way to recover from this state is to reset and reboot the DSP. After a reset and reboot the error does not occur any more. i.e. the DSP enters the error state only after the first boot after powerup. This is a potential workaround.
The error occurs sometimes on some boards, never on other boards.
HPIA accesses in the error state:
In the error state the HPIA can be read from the host, it contains the last written value, unincremented. Reading HPIAW und HPIAR from the emulator returns the same result.
It is not possible to modify HPIA from the host. A write to HPIA from the host terminates normally, but the value in the register, as seen from the host and from the emulator, is unchanged.
It is possible to modify HPIAW and HPIAR from the emulator. Depending on the last HPID access, a read from HPIA by the host returns either the value in HPIAW or the value in HPIAR.
HPID Writes in the error state:
Writes to HPID terminate normally, but do not work. As seen from the emulator nothing is written to memory.
HPID Reads in the error state:
As already stated above the DSP does not go ready on HPID Reads, the access is terminated by a host bus timeout.
On the board the I/O supply ramps up before the core supply. Pin W25 is connected to Vss. We modified 2 boards so that the core supply ramps up before the I/O supply. With that modification on one board the error did not occur any more, on the other board the error still occurs.
Devices:
The devices are assumed to be
TMS320C6414TBCLZ7
Device Marking (see also attached photo):
TMS320C6414TCLZ
$N20-35ZC1S9
(c)2003 TI 82
G1
--
The device marking does not fully match the marking as described in the errata sheet ("$N20" instead of "D20"), but we assume that the devices are silicon revision 2.0.
The value read from DEVICE_REV (0x01b00200) is 0x00126414, that confirms that the devices are silicon revision 2.0.
Used documentation:
Data sheet SPRS226M - NOVEMBER 2003 - REVISED APRIL 2009
Errata sheet SPRZ216J, December 2003, Revised July 2012
Host Port Interface (HPI) Reference Guide SPRU578C, January 2006
Emulator and software used with emulator:
Spectrum Digital XDS510 USB
SDConfigEx Version 1.43.04
Code Composer Studio Version 4.4.82.13
Is there an explanation for the error state of the HPI?
Is there a way to recover from the HPI error state other than a reset?
Can we assume that the mentioned potential workaround is reliable?