www.ti.com
SRIOFunctionalDescription
TheCPPImodulecanbepowereddownifthemessagepassingprotocolisnotbeingsupportedinthe
application.Forexample,ifthedirectI/Oprotocolisbeingusedfordatatransfers,poweringdownthe
CPPImodulewillsavepower.Inthissituation,thebufferdescriptorqueueSRAMsandmailboxmapper
logicshouldbepowereddown.Clocksshouldbegatedtotheseblockswhileinthepowerdownstate.
Section2.3.9describesthisindetail.
2.3.4.5MessagePassingSoftwareRequirements
Softwareperformsthefollowingfunctionsformessaging:
RXOperation
•AssignsMailbox-to-queuemappingandallowableSourceIDs/mailbox-QueueMapping
•Setsupassociatedbufferdescriptormemory–CPPIRAMorL2RAM
•Link-liststhebufferdescriptors,next_descriptor_pointer
•Assignssinglesegment(256Bpayload)andmulti-segment(4KBpayload)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
Setsupassociatedbufferdescriptormemory–CPPIRAMorL2RAM
•Link-liststhebufferdescriptors,next_descriptor_pointer
•Assignsbufferdescriptortodatabuffer,buffer_pointer
•GivescontrolofthebuffertotheCPU,ownership=0
•CPUwritesbufferdescriptorsbeginningwithHDPdescriptorandsetsownership=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
SPRU976–March2006SerialRapidIO(SRIO)55
SubmitDocumentationFeedback