For a fast communication between a FPGA and a 21469 I use the Link Port. Normally this works fine, but I have problems with the error handling. For example I start a chained TX DMA over Link Port with 100 words and after 10 words the receiver Link Port controller has a problem and stops/holds the communication. If the communication is stopped too long (timeout), I would like to reset the both link port controllers.
My question is: How can I reset the LP transmitter with an uncompleted chained DMA?
I tried to disable and re-enable the LP, clear the chain pointer, clear the DMA length, but I just got a LP hung errors.
/* disable LCTL1 */
(*pLCTL1) = 0x0;
/* clear chain pointer */
// (*pCPLB1) = 0;
/* enable LP1 for chained Tx DMA */
(*pLCTL1) |= (LCHEN | LDEN | LTRAN | LEN |DMACH_IRPT_MSK| LP_BHD);