?? pxadma.cod
字號:
; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.4345
TTL E:\WM604\PLATFORM\SEUICBSP\SRC\DRIVERS\DMBDRV\DmaPxaXXX\.\PxaDMA.c
CODE32
00000 AREA |.drectve|, DRECTVE
DCB "-defaultlib:coredll.lib "
DCB "-defaultlib:corelibc.lib "
00000 AREA |.rdata|, DATA, READONLY
|userBusWidthToDmaConfig| DCD 0x1
DCD 0x2
DCD 0x3
|userBurstSizeToDmaConfig| DCD 0x1
DCD 0x2
DCD 0x3
EXPORT |ResetEvent|
IMPORT |EventModify|
; File e:\wm604\public\common\sdk\inc\kfuncs.h
00000 AREA |.text| { |ResetEvent| }, CODE, ARM, SELECTION=2 ; comdat any
00000 AREA |.pdata$$ResetEvent|, PDATA, SELECTION=5, ASSOC=|.text| { |ResetEvent| } ; comdat associative
|$T39004| DCD |$L39003|
DCD 0x40000501
; Function compile flags: /Ogsy
00000 AREA |.text| { |ResetEvent| }, CODE, ARM, SELECTION=2 ; comdat any
00000 |ResetEvent| PROC
; 174 : _inline BOOL ResetEvent(HANDLE h) {
00000 |$L39003|
00000 e52de004 str lr, [sp, #-4]!
00004 |$M39001|
; 175 : return EventModify(h,EVENT_RESET);
00004 e3a01002 mov r1, #2
00008 eb000000 bl EventModify
; 176 : }
0000c e49de004 ldr lr, [sp], #4
00010 e12fff1e bx lr
00014 |$M39002|
ENDP ; |ResetEvent|
EXPORT |??_C@_1GM@BBJNGGCL@?$AAP?$AAh?$AAy?$AAD?$AAm?$AAa?$AAS?$AAe?$AAt?$AAU?$AAp?$AA?0?$AA?5?$AAV?$AAi?$AAr?$AAt?$AAu?$AAa?$AAl@| [ DATA ] ; `string'
EXPORT |??_C@_0O@DJLCAKBK@dma?5registers?$AA@| [ DATA ] ; `string'
EXPORT |PhyDmaSetUp|
IMPORT |VirtualAllocCopy|
IMPORT |NKDbgPrintfW|
IMPORT |XllpDmacAllocChannel|
IMPORT |HalAllocateCommonBuffer|
IMPORT |XllpDmacInit|
; File e:\wm604\platform\seuicbsp\src\drivers\dmbdrv\dmapxaxxx\pxadma.c
00000 AREA |.text| { |PhyDmaSetUp| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$PhyDmaSetUp|, PDATA, SELECTION=5, ASSOC=|.text| { |PhyDmaSetUp| } ; comdat associative
|$T39015| DCD |$L39014|
DCD 0x40002402
00000 AREA |.rdata| { |??_C@_0O@DJLCAKBK@dma?5registers?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0O@DJLCAKBK@dma?5registers?$AA@| DCB "dma registers", 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1GM@BBJNGGCL@?$AAP?$AAh?$AAy?$AAD?$AAm?$AAa?$AAS?$AAe?$AAt?$AAU?$AAp?$AA?0?$AA?5?$AAV?$AAi?$AAr?$AAt?$AAu?$AAa?$AAl@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1GM@BBJNGGCL@?$AAP?$AAh?$AAy?$AAD?$AAm?$AAa?$AAS?$AAe?$AAt?$AAU?$AAp?$AA?0?$AA?5?$AAV?$AAi?$AAr?$AAt?$AAu?$AAa?$AAl@| DCB "P"
DCB 0x0, "h", 0x0, "y", 0x0, "D", 0x0, "m", 0x0, "a", 0x0, "S"
DCB 0x0, "e", 0x0, "t", 0x0, "U", 0x0, "p", 0x0, ",", 0x0, " "
DCB 0x0, "V", 0x0, "i", 0x0, "r", 0x0, "t", 0x0, "u", 0x0, "a"
DCB 0x0, "l", 0x0, "A", 0x0, "l", 0x0, "l", 0x0, "o", 0x0, "c"
DCB 0x0, "C", 0x0, "o", 0x0, "p", 0x0, "y", 0x0, "(", 0x0, ")"
DCB 0x0, ":", 0x0, " ", 0x0, "G", 0x0, "d", 0x0, "e", 0x0, "D"
DCB 0x0, "m", 0x0, "a", 0x0, "c", 0x0, "I", 0x0, "n", 0x0, "i"
DCB 0x0, "t", 0x0, " ", 0x0, "F", 0x0, "a", 0x0, "i", 0x0, "l"
DCB 0x0, "e", 0x0, "d", 0x0, 0xd, 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
; Function compile flags: /Ogsy
00000 AREA |.text| { |PhyDmaSetUp| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |PhyDmaSetUp| PROC
; 36 : {
00000 |$L39014|
00000 e92d40f0 stmdb sp!, {r4 - r7, lr}
00004 e24dd00c sub sp, sp, #0xC
00008 |$M39012|
00008 e1a05000 mov r5, r0
; 37 : void* ptr;
; 38 : PHYSICAL_ADDRESS phyAddr;
; 39 : //volatile P_XLLP_DMAC_T pDmacHandle = NULL;
; 40 : DMA_ADAPTER_OBJECT adapter;
; 41 :
; 42 : if(XllpDmacInit()==0)
0000c eb000000 bl XllpDmacInit
00010 e3500000 cmp r0, #0
; 43 : {
; 44 : RETAILMSG(1, (TEXT("PhyDmaSetUp, VirtualAllocCopy(): GdeDmacInit Failed\r\n")));
00014 059f0070 ldreq r0, [pc, #0x70]
00018 0b000000 bleq NKDbgPrintfW
; 45 : }
; 46 : XllpDmacAllocChannel((XLLP_DMAC_CHANNEL_T*)&dev->channel,XLLP_DMAC_CHANNEL_PRIORITY_HIGH);
0001c e3a01000 mov r1, #0
00020 e2850004 add r0, r5, #4
00024 eb000000 bl XllpDmacAllocChannel
; 47 :
; 48 :
; 49 : phyAddr.LowPart = DMAC_BASE_PHYSICAL;
; 50 : phyAddr.HighPart = 0;
; 51 : // ptr = MmMapIoSpace(phyAddr, sizeof(DMAC_REGISTERS), FALSE);
; 52 : // RETAILMSG(1, (TEXT("PhyDmaSetUp, MmMapIoSpace ptr: 0x%x\r\n"),ptr));
; 53 : ptr= (DMAC_REGISTERS *)VirtualAllocCopy(sizeof(DMAC_REGISTERS),"dma registers",(PVOID)(DMAC_BASE_U_VIRTUAL));
00028 e59f1058 ldr r1, [pc, #0x58]
0002c e3a02329 mov r2, #0x29, 6
00030 e3a00c11 mov r0, #0x11, 24
00034 e3822605 orr r2, r2, #5, 12
00038 e380002c orr r0, r0, #0x2C
0003c eb000000 bl VirtualAllocCopy
00040 e1a04000 mov r4, r0
; 54 :
; 55 : adapter.ObjectSize = sizeof(DMA_ADAPTER_OBJECT);
00044 e3a0e00c mov lr, #0xC
; 56 : adapter.InterfaceType = Internal;
00048 e3a06000 mov r6, #0
; 57 : adapter.BusNumber = 0;
0004c e3a07000 mov r7, #0
; 58 :
; 59 : dev->desc = HalAllocateCommonBuffer( &adapter,
; 60 : sizeof(DMAC_FRAME_DESCRIPTOR_ST),
; 61 : &dev->descPhyAddr,
; 62 : FALSE);
00050 e28d0000 add r0, sp, #0
00054 e3a03000 mov r3, #0
00058 e2852030 add r2, r5, #0x30
0005c e3a01010 mov r1, #0x10
00060 e1cde0b0 strh lr, [sp]
00064 e58d6004 str r6, [sp, #4]
00068 e58d7008 str r7, [sp, #8]
0006c eb000000 bl HalAllocateCommonBuffer
00070 e5850038 str r0, [r5, #0x38]
; 63 : dev->pDmacAddr = ptr;
; 64 : return TRUE;
00074 e3a00001 mov r0, #1
00078 e5854000 str r4, [r5]
; 65 : }
0007c e28dd00c add sp, sp, #0xC
00080 e8bd40f0 ldmia sp!, {r4 - r7, lr}
00084 e12fff1e bx lr
00088 |$L39017|
00088 00000000 DCD |??_C@_0O@DJLCAKBK@dma?5registers?$AA@|
0008c 00000000 DCD |??_C@_1GM@BBJNGGCL@?$AAP?$AAh?$AAy?$AAD?$AAm?$AAa?$AAS?$AAe?$AAt?$AAU?$AAp?$AA?0?$AA?5?$AAV?$AAi?$AAr?$AAt?$AAu?$AAa?$AAl@|
00090 |$M39013|
ENDP ; |PhyDmaSetUp|
EXPORT |PhyDmaRemoveChannel|
IMPORT |MmUnmapIoSpace|
IMPORT |XllpDmacFreeChannel|
IMPORT |HalFreeCommonBuffer|
00000 AREA |.text| { |PhyDmaRemoveChannel| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$PhyDmaRemoveChannel|, PDATA, SELECTION=5, ASSOC=|.text| { |PhyDmaRemoveChannel| } ; comdat associative
|$T39024| DCD |$L39023|
DCD 0x40001c02
; Function compile flags: /Ogsy
00000 AREA |.text| { |PhyDmaRemoveChannel| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |PhyDmaRemoveChannel| PROC
; 68 : {
00000 |$L39023|
00000 e92d40f0 stmdb sp!, {r4 - r7, lr}
00004 e24dd014 sub sp, sp, #0x14
00008 |$M39021|
00008 e1a04000 mov r4, r0
; 69 : DMA_ADAPTER_OBJECT adapter;
; 70 :
; 71 : adapter.ObjectSize = sizeof(DMA_ADAPTER_OBJECT);
; 72 : adapter.InterfaceType = Internal;
; 73 : adapter.BusNumber = 0;
; 74 : //Interrupt has ended, free the descriptors memory allocated on channel config.
; 75 : HalFreeCommonBuffer( &adapter,
; 76 : sizeof(DMAC_FRAME_DESCRIPTOR_ST),
; 77 : dev->descPhyAddr,
; 78 : dev->desc,
; 79 : FALSE);
0000c e5941038 ldr r1, [r4, #0x38]
00010 e5942030 ldr r2, [r4, #0x30]
00014 e5943034 ldr r3, [r4, #0x34]
00018 e58d1000 str r1, [sp]
0001c e3a0e00c mov lr, #0xC
00020 e3a05000 mov r5, #0
00024 e3a06000 mov r6, #0
00028 e3a07000 mov r7, #0
0002c e3a01010 mov r1, #0x10
00030 e28d0008 add r0, sp, #8
00034 e1cde0b8 strh lr, [sp, #8]
00038 e58d500c str r5, [sp, #0xC]
0003c e58d6010 str r6, [sp, #0x10]
00040 e58d7004 str r7, [sp, #4]
00044 eb000000 bl HalFreeCommonBuffer
; 80 :
; 81 : XllpDmacFreeChannel(dev->channel, XLLP_DMAC_MEM2MEM_MOVE);
00048 e5940004 ldr r0, [r4, #4]
0004c e3a01063 mov r1, #0x63
00050 eb000000 bl XllpDmacFreeChannel
; 82 :
; 83 : MmUnmapIoSpace(dev->pDmacAddr, sizeof(DMAC_REGISTERS));
00054 e5940000 ldr r0, [r4]
00058 e3a01c11 mov r1, #0x11, 24
0005c e381102c orr r1, r1, #0x2C
00060 eb000000 bl MmUnmapIoSpace
; 84 : }
00064 e28dd014 add sp, sp, #0x14
00068 e8bd40f0 ldmia sp!, {r4 - r7, lr}
0006c e12fff1e bx lr
00070 |$M39022|
ENDP ; |PhyDmaRemoveChannel|
EXPORT |PhyDmaSendDescriptor|
; File e:\wm604\public\common\sdk\inc\kfuncs.h
00000 AREA |.text| { |PhyDmaSendDescriptor| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$PhyDmaSendDescriptor|, PDATA, SELECTION=5, ASSOC=|.text| { |PhyDmaSendDescriptor| } ; comdat associative
|$T39042| DCD |$L39041|
DCD 0x40005c02
; Function compile flags: /Ogsy
; File e:\wm604\platform\seuicbsp\src\drivers\dmbdrv\dmapxaxxx\pxadma.c
00000 AREA |.text| { |PhyDmaSendDescriptor| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -