MCF5485 FEC DMA problem

Discussion created by Guest on Jan 15, 2009
Latest reply on Jan 27, 2009 by Guest
Hello all!
I testing my own FEC driver for RTEMS and has a following problem:

Sometimes program hangs on MCD_continDma( sc->dma_tx_channel ); (RTEMS multitasking turned off at this moment)
dma_tx_channel is right.
DMA interrupt handler is normal too: { printk( "TX\n" ); }
DMA API version: Alpha v0.3 (2004-04-26)
There is part of TX initialization code:
dma_res = MCD_startDma(
    sc->dma_tx_channel,
    (s8*)sc->txdesc,
    0,
    (s8*)&( MCF548X_FEC_FECTFDR( ifp-
    0,
    FEC_MAX_TX_FRM_SIZE,
    0,
    sc->dma_initiator_tx,
    FEC_TX_DMA_PRI,
    ( 0
    | MCD_FECTX_DMA
    | MCD_INTERRUPT
    | MCD_TT_FLAGS_CW
    | MCD_TT_FLAGS_RL
    | MCD_TT_FLAGS_SP
    ),
    MCD_NO_CSUM | MCD_NO_BYTE_SWAP );
Any ideas, why is such thing happening? Can TX DMA cause a system hang?

Thanks!

Outcomes