Texas Instruments TMS320TCI648x Network Card User Manual


 
www.ti.com
2.3.4.4MessagePassingSoftwareRequirements
SRIOFunctionalDescription
Softwareperformsthefollowingfunctionsformessaging:
RXOperation
AssignsMailbox-to-queuemappingandallowableSourceIDs/mailbox-QueueMapping
SetsupassociatedbufferdescriptormemoryCPPIRAMorL2RAM
Link-liststhebufferdescriptors,next_descriptor_pointer
Assignssinglesegment(256-bytepayload)andmulti-segment(4K-bytepayload)bufferstoqueues
buffer_length
Assignsbufferdescriptortodatabuffer,buffer_pointer
Givescontrolofthebuffertotheperipheral,ownership=1
ConfiguresandinitiatesRXqueues
AssignsHeadDescriptorPointer,HDP,forupto16queues:RXDMAStateHDP
PortbeginstoconsumebuffersbeginningwithHDPdescriptorandsetsownership=0foreachbuffer
descriptorused.WritesCompletionPointer,CP,RXDMAStateCPandmovestonextbuffer.
PorthardwaregeneratespendinginterruptwhenCPiswritten.Physicalinterruptgeneratedwhen
InterruptPacingCountdowntimer=0.
Processesinterrupt
DeterminesICSRbitandprocesscorrespondingqueueuntilownership=1oreoq=1
Setsprocessedbufferdescriptorownership=1
WritesCPvalueoflastbufferdescriptorprocessed
PorthardwareclearsICSRbitonlyiftheCPvaluewrittenbyCPUequalsportwrittenvalueintheRX
DMAStateCPregister
Resetsinterruptpacingvalue
TXOperation
SetsupassociatedbufferdescriptormemoryCPPIRAMorL2RAM
Link-liststhebufferdescriptors,next_descriptor_pointer
Assignsbufferdescriptortodatabuffer,buffer_pointer
CPUwritesbufferdescriptorsandsetsownership=1foreachused.
SpecifiesRIOfields:Dest_id,Pri,tt,Mailbox
Setsparameters:PortID,Message_length
PortstartsqueuetransmitonCPUwritetoHDPforupto16queues-TXDMAStateHDP
Portprocessescorrespondingqueuesuntilownership=0ornext_descriptor_pointer=all0s.Portsets
eoq=1andwritesall0stotheHDP.
Wheneachpackettransmissioniscomplete,theportsetsownership=0andissuesaninterrupttothe
CPUbywritingthelastprocessedbufferdescriptoraddresstotheCP,TXDMAStateCP
Processesinterrupt
TheCPUprocessesthebufferqueuetoreclaimbuffers.Ifownership=0,thepackethasbeen
transmittedandthebufferisreclaimed.
CPUprocessesthequeueuntileoq=1orownership=1
CPUdeterminesallpacketshavebeentransmittedifownership=0,eoq=1,and
next_descriptor_pointer=all0sinlastprocessedbufferdescriptor
CPUacknowledgestheinterruptafterre-claimingallavailablebufferdescriptors.
CPUacknowledgestheinterruptbywritingtheCPvalue
ThisvalueiscomparedagainsttheportwrittenvalueintheTXDMAStateCPregister,ifequal,the
interruptisdeasserted.
60SerialRapidIO(SRIO)SPRUE13ASeptember2006
SubmitDocumentationFeedback