Texas Instruments TMS320C645X Musical Instrument Amplifier User Manual


 
www.ti.com
SRIOFunctionalDescription
ForpostedWRITEoperations,whichdonotrequireaRapidIOresponsepacket,acoremaysubmit
multipleoutstandingrequests.Forinstance,asinglecoremayhavemanystreamingwritepackets
bufferedatanygiventime,givenoutgoingresources.Inthisapplication,thecontrol/commandregisters
canbereleased(BSY=0)totheCPUassoonastheheaderinfoiswrittenintothesharedTXbuffer
pool.Iftherequesthasbeenflowcontrolled,theperipheralwillsetthecompletioncodestatusregisterand
appropriateinterruptbitoftheICSR.Thecontrol/commandregisterscanbereleasedaftertheinterrupt
serviceroutinecompletes.
Fornon-postedWRITEoperations,whichdorequireaRapidIOresponsepacket,therecanbeonlyone
outstandingrequestpercoreatanygiventime.Thepayloaddataandheaderinformationiswrittentothe
sharedTXbufferpoolasdescribedabove;however,thecommandregisterscannotbereleased(BSY=
1)untiltheresponsepacketisroutedbacktothemoduleandtheappropriatecompletioncodeissetinthe
statusregister.Onespecialcaseexistsforoutgoingtest-and-swappackets(Ftype5,Transaction1110b).
ThisistheonlyWRITEclasspacketthatexpectsaresponsewithpayload.Thisresponsepayloadis
routedtotheLSU,itisexaminedtoverifywhetherthesemaphorewasaccepted,andthentheappropriate
completioncodeisset.ThepayloadisnottransferredoutoftheperipheralviatheDMAbus.
Sothegeneralflowisasfollows:
LSUregistersarewrittenusingtheconfigurationbus
Flowcontrolisdetermined
TXFIFOfreebufferavailabilityisdetermined
DMAbusreadrequestfordatapayload
DMAbusresponsewritesdatatospecifiedmodulebufferinthesharedTXbufferspace
DMAbusreadresponseismonitoredforlastbyteofpayload
HeaderdataintheLSUregistersiswrittentothesharedTXbufferspace
PayloadandheaderaretransferredtotheTXFIFO
TheLSUregistersarereleasedifnoRapidIOresponseisneeded
TransferfromtheTXFIFOtoexternaldevicebasedonpriority
READTransactions:
TheflowforgeneratingREADtransactionsissimilartonon-postedWRITEwithresponsetransactions.
Therearetwomaindifferences:READpacketscontainnodatapayload,andREADresponseshavea
payload.SoREADcommandssimplyrequireanon-payloadTXbufferwithinthesharedpool.Inaddition,
theyrequireasharedRXdatabuffer.Thisbufferisnotpre-allocatedbeforetransmittingtheREAD
requestpacket,sincedoingsocouldcausetrafficcongestionofotherin-boundpacketsdestinedtoother
functionalblocks.
Again,thecontrol/commandregisterscannotbereleased(BSY=1)untiltheresponsepacketisrouted
backtothemoduleandappropriatecompletioncodeissetinthestatusregister.
Sothegeneralflowwouldbe:
LSUregistersarewrittenusingtheconfigurationbus
Flowcontrolisdetermined
TXFIFObufferisallocated
HeaderdataintheLSUregistersiswrittentothesharedTXbuffer
PayloadandheaderaretransferredtotheTXFIFO
TheLSUregistersarereleasedifnoRapidIOresponseisneeded
TransferfromtheTXFIFOtoexternaldevicebasedonpriority
Foralltransactions,thesharedTXbuffersarereleasedassoonasthepacketisforwardedtotheTX
FIFOs.IfanERRORorRETRYresponseisreceivedforanon-postedtransaction,theCPUmusteither
reinitiatetheprocessbywritingtotheLSUregister,orinitiateanewtransactionaltogether.
38SerialRapidIO(SRIO)SPRU976March2006
SubmitDocumentationFeedback