Hello Yiping,
I have a question a question about TDM on P1020
I have the TDM working just fine on within Linux and trying to make it it work within vxWorks
I have put together the the TDM driver for vxWorks based on the Linux driver within your SDK and also based on P1020 QorIQ Reference Manual Rev.6 page# 1519
I do steps 1 thru 4 and based on item number 5 I have to read the TSR and RSR and wait for those to get on...
but they never do... Could you shed some light on this subject...
- Bring the chip out of reset.
- Program the TDM control registers-TDM RIR, TDM RFP, TDM TIR, TDM TFP,
and TDM GIR.
- Program all channel enable registers (TDM RCENn , TDM TCENn ) and transmit
channel mask registers (TDM TCMAn ) as disabled.
- Enable the TDM Rx and Tx by setting the TDM RCR[REN] and TDM TCR[TEN]
bits.
- Wait until TDM TSR[TENS] and TDM RSR[RENS] are set.
- If the TDM is serviced by:
- DMA transfer-immediately use a software started DMA channel to write data to
the Tx data register(s) (must be completed before two Tx frame syncs arrive
after enabling).
- Interrupts-immediately write data to the Tx data register(s) (must be completed
before two Tx frame syncs arrive after enabling).
- Follow the steps outlined in Dynamic channel configuration while TDM operating-shared,
to enable channels.
- All other writes and reads will be initiated by either an interrupt or a DMA request,
depending on the configuration.
On Linux TDM TSR and TDM RSR do get set
====================================
F519A000: 00000001 0000E241 0000E041 007F0030 .......A...A...0
F519A010: 007F0030 007F0030 007F0030 007F0030 ...0...0...0...0
F519A020: FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF ................
F519A030: FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF ................
F519A040: FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF ................
F519A050: FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF ................
F519A060: 00000000 00000000 00000000 00000000 ................
F519A070: 00000000 00000000 00000000 00000000 ................
F519A080: 00000001 00000001 00000000 00000000 ................
F519A090: 00000000 00000000 00000000 00000000 ................
F519A0A0: 000001C0 000001C0 00000005 00000025 ...............%
On vxWorks instead of TSR and RSR I get 0x00000001 in Reserved fields marked in RED
==========================================================================
F3016000: 00000001 0000E241 0000E041 007F0030 .......A...A...0
F3016010: 007F0030 007F0030 007F0030 007F0030 ...0...0...0...0
F3016020: FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF ................
F3016030: FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF ................
F3016040: FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF ................
F3016050: FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF ................
F3016060: 00000000 00000000 00000000 00000000 ................
F3016070: 00000000 00000000 00000000 00000000 ................
F3016080: 00000001 00000001 00000000 00000000 ................
F3016090: 00000001 00000001 00000001 00000001 ................
F30160A0: 00000000 00000000 00000000 00000000 ................
Could you shed some light on this subject...
Thanks,
Naum