Texas Instruments TMS320TCI648x Network Card User Manual


 
www.ti.com
SRIOFunctionalDescription
Table22.WeightedRoundRobinProgrammingRegisters(AddressOffset7E0h–7ECh)(continued)
FieldPairRegister[Bits]FieldValueDescription
TX_Queue_Map11TX_QUEUE_CNTL2[27–24]QueuePointer0htoFhPointertoaqueue.Thispointercanbe
programmedtopointtoanyoneofthe16
TXbufferdescriptorqueues.
TX_QUEUE_CNTL2[31–28]NumberofMsgs0htoFhNumberofcontiguousmessages
(descriptors)toprocessbeforemovingto
TX_Queue_Map12.
TX_Queue_Map12TX_QUEUE_CNTL3[3–0]QueuePointer0htoFhPointertoaqueue.Thispointercanbe
programmedtopointtoanyoneofthe16
TXbufferdescriptorqueues.
TX_QUEUE_CNTL3[7–4]NumberofMsgs0htoFhNumberofcontiguousmessages
(descriptors)toprocessbeforemovingto
TX_Queue_Map13.
TX_Queue_Map13TX_QUEUE_CNTL3[11–8]QueuePointer0htoFhPointertoaqueue.Thispointercanbe
programmedtopointtoanyoneofthe16
TXbufferdescriptorqueues.
TX_QUEUE_CNTL3[15–12]NumberofMsgs0htoFhNumberofcontiguousmessages
(descriptors)toprocessbeforemovingto
TX_Queue_Map14.
TX_Queue_Map14TX_QUEUE_CNTL3[19–16]QueuePointer0htoFhPointertoaqueue.Thispointercanbe
programmedtopointtoanyoneofthe16
TXbufferdescriptorqueues.
TX_QUEUE_CNTL3[23–20]NumberofMsgs0htoFhNumberofcontiguousmessages
(descriptors)toprocessbeforemovingto
TX_Queue_Map15.
TX_Queue_Map15TX_QUEUE_CNTL3[27–24]QueuePointer0htoFhPointertoaqueue.Thispointercanbe
programmedtopointtoanyoneofthe16
TXbufferdescriptorqueues.
TX_QUEUE_CNTL3[31–28]NumberofMsgs0htoFhNumberofcontiguousmessages
(descriptors)toprocessbeforemovingto
TX_Queue_Map0.
TheTXqueuesaretreateddifferentlythantheRXqueues.ATXqueuecanmixsingleandmulti-segment
messagebufferdescriptors.Thesoftwaremanagesthequeueusage.
Alloutgoingmessagesegmentshaveresponsesthatindicatethestatusofthetransaction.Responses
mayindicateDONE,ERRORorRETRY.AbufferdescriptormaybereleasedbacktoCPUcontrol
(OWNERSHIP=0),onlyafterallsegmentresponsesarereceived,oralternativelyifaresponsetimeout
occurs.Timeoutsandresponseevaluationhavehighpriorityinthestate-machinesincetheyaretheonly
meanstoreleaseTXpacketresources.TheCCissetinthebufferdescriptortoindicatetheresponse
statustotheCPU.IfthereisaRETRYresponse,theTXCPPImodulewillimmediatelyretrythepacket
beforecontinuingtothenextqueueintheround-robinloop,aslongastheRETRY_COUNTisnot
exceeded.Oncethislimitisexceeded,thebuffercanbereleasedbacktoCPUcontrolwiththe
appropriateCCset.Retryofamessagesegmentdoesnotimplyretryingawholemessage.Only
segmentsforwhichaRETRYresponseisreceivedshouldbere-transmitted.Thiswillinvolvecalculating
thecorrectstartingpointwithintheTXdatabufferbasedonthefailedsegmentnumberandmessage
length.Toachieverespectableperformance,theperipheralmustnotwaitforamessage/segment
responsebeforesendingoutthenextpacket.
SinceRapidIOallowsforout-of-orderresponses,theTXCPPIhardwaremustsupportthisfunctionality.As
responsesarereceived,thehardwareupdatesthecorrespondingTXbufferdescriptortoreflectthestatus.
However,iftheresponseisout-of-order,thehardwaredoesnotupdatetheCPorsetthecorresponding
interrupt.Onlyafterallprecedingoutstandingmessageresponsesarereceived,willtheCPandinterrupt
beupdated.Thisensuresthatacontiguousblockofbufferdescriptors,startingattheoldestoutstanding
descriptor,hasbeenprocessedbythehardwareandisreadyfortheCPUtoreclaimthebuffers.
58SerialRapidIO(SRIO)SPRUE13ASeptember2006
SubmitDocumentationFeedback