Texas Instruments TMS320TCI648x Network Card User Manual


 
www.ti.com
31
0
1
2
1523
7
27 11
19
3
29
o
w
n
e
r
s
h
i
p
t
e
a
r
d
o
w
n
e
o
p
e
o
q
s
o
p
3
reserved
cc
message_length
13
21
5
25
9
17 1
30
1422
626 10
18
2
28
12
20
424
8
16 0
BitFields
next_descriptor_pointer
buffer_pointer
src_id pri
tt
reserved mailbox
Word
Offset
SRIOFunctionalDescription
IfaRXmessage’slengthisgreaterthanthatofthetargetedbufferdescriptor,anERRORresponseis
sentbacktothesourcedevice.Inaddition,theDSPisnotifiedwiththeuseoftheCCfieldoftheRXCPPI
bufferdescriptor,describedasfollows.ThissituationcanresultfromaDSPsoftwareerror(misallocatinga
bufferforthequeue),orasaresultofsendererror(sendingtoawrongmailbox).
AnRXtransactiontimeoutisusedbyallmulti-segmentqueues,inordertonothangreceivemailbox
resourcesintheeventthatamessagesegmentislostinthefabric.Thisresponse-to-requesttimer
controlsthetime-outperiodforsendingaresponsepacketandreceivingthenextrequestpacketofa
givenmulti-segmentmessage.Ithasthesamevalueandisanalogoustotherequest-to-responsetimer
discussedintheTXCPPIandLSUsections,whichisdefinedbythe24-bitvalueintheportresponse
time-outCSR(SeeSection2.3.3.3).TheRapidIOInterconnectSpecificationstatesthatthemaximumtime
interval(all1s)isbetween3and6seconds.Eachmulti-segmentreceivetimerrequiresa4-bitregister.
Theregisterisloadedwiththecurrenttimecodewhentheresponseissent.Eachtimethetimecode
changes,a4-bitcompareisdonetotheregister.Iftheregisterbecomesequaltothetimecodeagain,
withoutthenextmessagesegmentbeingseen,thenthetransactionhastimedout.Ifthishappens,theRX
bufferresourcescanbereleased.
Thebufferdescriptorpointstothecorrespondingdatabufferinmemoryandalsopointstothenextbuffer
descriptorinthequeue.Assegmentsofareceivedmessagearrive,themsgsegfieldofeachsegmentis
monitoredtodetectthecompletionofthereceivedmessage.Onceafullmessageisreceived,the
OWNERSHIPbitisclearedinthepacket’sbufferdescriptortogivecontroltothehost.Atthispoint,ahost
interruptisissued.Thisinterfaceworkswithprogrammableinterruptratecontrol.ThereisanICSRbitfor
eachsupportedqueue.Oninterrupt,theCPUprocessestheRXbufferqueue,detectingreceivedpackets
bythestatusoftheOWNERSHIPbitineachbufferdescriptor.ThehostprocessestheRXqueueuntilit
reachesabufferdescriptorwithasetOWNERSHIPbit,orsetEOQbit.Onceprocessingiscomplete,the
hostupdatestheRXDMAStateCompletionPointer,allowingtheperipheraltoreusethebuffer.
Figure19showstheRXbufferdescriptorfieldsandTable18describesthem.ARXbufferdescriptorisa
contiguousblockoffour32-bitdatawordsalignedona32-bitboundary.Accessestotheseregistersare
restrictedto32-bitboundaries.
Figure19.RXBufferDescriptorFields
Table18.RXBufferDescriptorFieldDescriptions
FieldDescription
next_descriptor_pointerNextDescriptorPointer:The32-bitwordalignedmemoryaddressofthenextbuffer
descriptorintheRXqueue.Thisreferencesthenextbufferdescriptorfromthecurrent
bufferdescriptor.Ifthevalueofthispointeriszero,thenthecurrentbufferisthelast
bufferinthequeue.TheDSPcoresetsthenext_descriptor_pointer.
buffer_pointerBufferPointer:Thebytealignedmemoryaddressofthebufferassociatedwiththe
bufferdescriptor.TheDSPcoresetsthebuffer_pointer.
sop=1StartofMessage:Indicatesthatthedescriptorbufferisthefirstbufferinthemessage.
Thisbitwillalwaysbeset,asthisdeviceonlysupportsonebufferpermessage.
eop=1EndofMessage:Indicatesthatthedescriptorbufferisthelastbufferinthemessage.
Thisbitwillalwaysbeset,asthisdeviceonlysupportsonebufferpermessage.
SPRUE13ASeptember2006SerialRapidIO(SRIO)47
SubmitDocumentationFeedback