Presentation is loading. Please wait.

Presentation is loading. Please wait.

Babak Kalantari, EPICS Meeting, 11.10.2009, Kobe A vxWorks driver for DMA on VMEbus Babak Kalantari Paul Scherrer Institute Switzerland.

Similar presentations


Presentation on theme: "Babak Kalantari, EPICS Meeting, 11.10.2009, Kobe A vxWorks driver for DMA on VMEbus Babak Kalantari Paul Scherrer Institute Switzerland."— Presentation transcript:

1 Babak Kalantari, EPICS Meeting, 11.10.2009, Kobe A vxWorks driver for DMA on VMEbus Babak Kalantari Paul Scherrer Institute Switzerland

2 Babak Kalantari, EPICS Meeting, 11.10.2009, Kobe Direct Memory Access Processor board Slave board (e.g. ADC) MemoryCPU Memory Transfer using DMATransfer by CPU PCI-VME bridge Memory - Universe II - Tsi148 - etc. VMEbus

3 Babak Kalantari, EPICS Meeting, 11.10.2009, Kobe DMA drivers in out-of-the-box BSP’s : have different API from BSP to BSP depending on PCI-VME bus bridge controller some use polling to check transfer completion (MVME -23xx and -51xx boards have no interrupt handling, callback, …) have single-requester API while a transfer is on execution the next transfer request fails (DMA engine busy) application program has to keep retrying assume a fixed transfer protocol per VME access window DMA: software support

4 Babak Kalantari, EPICS Meeting, 11.10.2009, Kobe We’ve developed a driver that provides: 1)effective use of DMA engine interrupt / Error handling, user callback, DMA engine control/monitor, etc. 2)multi-requester API parallel request handling, reading status, cancelling, or stopping a transfer request 3)unique API throughout several processor boards: (mvme-23xx, mvme-51xx, mvme-6100, mvme-4100, should also work for mvme-3100) DMA: software support

5 Babak Kalantari, EPICS Meeting, 11.10.2009, Kobe DMA: software support API ( dmaLib.h ) mvme23xxmvme51xxmvme61xxmvme41xx implementation ( dmaLib.c ) BSP universe II implementation ( dmaLib.c ) BSP Tsi148 User application (drivers)

6 Babak Kalantari, EPICS Meeting, 11.10.2009, Kobe DMA driver API  dmaReqId = dmaTransferRequest (…)  dmaRequestStatRead (dmaReqId)  dmaRequestCancel (dmaReqId, forcedStop)  dmaStatReport() destination source size addrMode dataWidth direction timeout *cb_routine *cb_param *dmaStat

7 Babak Kalantari, EPICS Meeting, 11.10.2009, Kobe dmaReq_0 dmaReq_1 dmaReq_n msgQueue If queue non-empty then Handle dmaReq_x 1)Check if this request is not cancelled 2)Program DMA engine + initiate transfer 3)Block until completion or error occurrence 4)Call the user callback and pass the status DMA driver operation principle client server

8 Babak Kalantari, EPICS Meeting, 11.10.2009, Kobe Usage: same dmaLib.h in standard vxWorks include path rebuild kernel with the right dmaLib.c added to the BSP – Include the source code in configAll – Make a call to “dmaHandlerInit()” in usrConfig API Documentaion: https://controls.web.psi.ch/cgi-bin/twiki/view/Main/VxWorksDmaDriver

9 Babak Kalantari, EPICS Meeting, 11.10.2009, Kobe Thanks!

10 Babak Kalantari, EPICS Meeting, 11.10.2009, Kobe DMA: Processor Boards SBC PCI-to-VME Bus Bridge Transfer protocols Direction of Transfer PSI controls support mvme230xUniverse II SCT, BLT, MBLT V2C, C2Vsupported mvme51xx mvme5500 Universe II SCT, BLT, MBLT V2C, C2Vsupported mvme6100Tsi148 (Tempe) SCT, (M)BLT, 2eVME, 2eSST V2C, C2V, V2V, C2C supported mvme4100Tsi148 (Tempe)SCT, (M)BLT, 2eVME, 2eSST V2C, C2V, V2V, C2C supported


Download ppt "Babak Kalantari, EPICS Meeting, 11.10.2009, Kobe A vxWorks driver for DMA on VMEbus Babak Kalantari Paul Scherrer Institute Switzerland."

Similar presentations


Ads by Google