TMS320C6201 Silicon Errata | SPRZ153 |
Advisory 2.1.19
Revision(s) Affected:
Details:
Workaround:
PMEMC: Branch from External to Internal
2.1 and 2.0
The program flow is corrupted after branching from external memory to internal program memory when the following are true:
•CPU is executing from external memory
•A CPU stall occurs that holds the CPU until all pending program fetches complete. CPU stalls may be caused by:
–External data access
–Multicycle NOPs
–Prolonged data memory bank conflict with DMA
–Multiple accesses to
•A branch to internal program memory is taken before a new fetch packet is requested (i.e. during the same fetch packet that is executed when the CPU stalls.
The CPU will branch correctly to the internal memory location and correctly execute the code located there. When the branch is executed to return to external memory, the CPU will not complete the branch properly and the program will crash. (Internal reference number 0958)
There are several workaround options, depending on the situation that causes the failure. One or more of the following should be used to circumvent the problem:
•If the problem arises during an interrupt, move IST to external memory (same CE as code).
•If the problem occurs after a branch, delay the branch instruction with
•If an external data access is causing the CPU stall, place data in internal data memory.
•If a multicycle NOP is causing the stall, change to multiple
•If the stall is due to the CPU being starved, change the DMA priority to be lower than that of the CPU.
Advisory 2.1.21
Revision(s) Affected:
Details:
Workaround:
DMA: DMA Data Block Corrupted After Start Zero Transfer Count
2.1 and 2.0
If DMA is stopped after it has been started with a zero transfer count, then reprogrammed and started again, the first element of the block will be corrupted. (Internal reference number 0242)
Make sure the transfer count is not near zero when starting the DMA.
23