AnsweredAssumed Answered

TDM on P1020 within vxWorks

Question asked by Naum Grutman on Aug 7, 2019
Latest reply on Aug 14, 2019 by Pavel Chubakov

To anybody that has experience with P1020 and TDM,

 

 

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...

  1. Bring the chip out of reset.
  2. Program the TDM control registers-TDM RIR, TDM RFP, TDM TIR, TDM TFP,

and TDM GIR.

  1. Program all channel enable registers (TDM RCENn , TDM TCENn ) and transmit

channel mask registers (TDM TCMAn ) as disabled.

  1. Enable the TDM Rx and Tx by setting the TDM RCR[REN] and TDM TCR[TEN]

bits.

  1. Wait until TDM TSR[TENS] and TDM RSR[RENS] are set.
  2. If the TDM is serviced by:
  3. 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).

  1. Interrupts-immediately write data to the Tx data register(s) (must be completed

before two Tx frame syncs arrive after enabling).

  1. Follow the steps outlined in Dynamic channel configuration while TDM operating-shared,

to enable channels.

  1. 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

Outcomes