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)SPRU976–March2006
SubmitDocumentationFeedback