📄 xllp_pccardsocket.cod
字号:
; 804 : //5 volt card detected in the socket
; 805 : //
; 806 : *puiCardVoltage = XLLP_PCCARD_5_00VOLTS;
00090 13a03002 movne r3, #2
00094 1a000000 bne |$L1200|
00098 |$L1062|
; 807 : }
; 808 : else
; 809 : {
; 810 : //
; 811 : //3.3 volt card detected in the socket
; 812 : //
; 813 : *puiCardVoltage = XLLP_PCCARD_3_30VOLTS;
00098 e3a03001 mov r3, #1
0009c |$L1200|
0009c e5823000 str r3, [r2]
; 856 :
; 857 : } //end switch
; 858 : }
; 859 :
; 860 : return ReturnValue;
; 861 :
; 862 : } //end XllpPCCardGetVoltageSetting()
000a0 e89d6000 ldmia sp, {sp, lr}
000a4 e12fff1e bx lr
000a8 |$M1203|
ENDP ; |XllpPCCardGetVoltageSetting|
EXPORT |XllpPCCardSetExpMemTiming|
00000 AREA |.text| { |XllpPCCardSetExpMemTiming| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$XllpPCCardSetExpMemTiming|, PDATA, SELECTION=5, ASSOC=|.text| { |XllpPCCardSetExpMemTiming| } ; comdat associative
|$T1217| DCD |$L1216|
DCD 0x40001d00
; Function compile flags: /Ogsy
00000 AREA |.text| { |XllpPCCardSetExpMemTiming| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |XllpPCCardSetExpMemTiming| PROC
; 883 : {
00000 |$L1216|
00000 |$M1214|
00000 e1b01000 movs r1, r0
; 884 :
; 885 : XLLP_STATUS_T ReturnValue = XLLP_STATUS_SUCCESS;
00004 e3a00000 mov r0, #0
; 886 :
; 887 : //
; 888 : //Check the validity of the input arguments to the function
; 889 : //
; 890 : if(pstrSocketHandle == XLLP_NULL_PTR)
; 891 : {
; 892 : ReturnValue = XLLP_STATUS_PCCARD_FAILURE;
00008 03a0000f moveq r0, #0xF
; 905 : }
; 906 :
; 907 : return ReturnValue;
; 908 :
; 909 : } //end XllpPCCardSetExpMemTiming()
0000c 012fff1e bxeq lr
; 893 : }
; 894 :
; 895 : if(ReturnValue != XLLP_STATUS_PCCARD_FAILURE)
; 896 : {
; 897 : pstrSocketHandle->pstrMemCtrlRegsHandle->MCATT0 = pstrSocketHandle->pstrCardTimingHandle->MCATT0;
00010 e5913010 ldr r3, [r1, #0x10]
00014 e5912014 ldr r2, [r1, #0x14]
00018 e5933008 ldr r3, [r3, #8]
0001c e5823030 str r3, [r2, #0x30]
; 898 : pstrSocketHandle->pstrMemCtrlRegsHandle->MCATT1 = pstrSocketHandle->pstrCardTimingHandle->MCATT1;
00020 e5913010 ldr r3, [r1, #0x10]
00024 e5912014 ldr r2, [r1, #0x14]
00028 e593300c ldr r3, [r3, #0xC]
0002c e5823034 str r3, [r2, #0x34]
; 899 :
; 900 : pstrSocketHandle->pstrMemCtrlRegsHandle->MCMEM0 = pstrSocketHandle->pstrCardTimingHandle->MCMEM0;
00030 e5913010 ldr r3, [r1, #0x10]
00034 e5912014 ldr r2, [r1, #0x14]
00038 e5933000 ldr r3, [r3]
0003c e5823028 str r3, [r2, #0x28]
; 901 : pstrSocketHandle->pstrMemCtrlRegsHandle->MCMEM1 = pstrSocketHandle->pstrCardTimingHandle->MCMEM1;
00040 e5913010 ldr r3, [r1, #0x10]
00044 e5912014 ldr r2, [r1, #0x14]
00048 e5933004 ldr r3, [r3, #4]
0004c e582302c str r3, [r2, #0x2C]
; 902 :
; 903 : pstrSocketHandle->pstrMemCtrlRegsHandle->MCIO0 = pstrSocketHandle->pstrCardTimingHandle->MCIO0;
00050 e5913010 ldr r3, [r1, #0x10]
00054 e5912014 ldr r2, [r1, #0x14]
00058 e5933010 ldr r3, [r3, #0x10]
0005c e5823038 str r3, [r2, #0x38]
; 904 : pstrSocketHandle->pstrMemCtrlRegsHandle->MCIO1 = pstrSocketHandle->pstrCardTimingHandle->MCIO1;
00060 e5913010 ldr r3, [r1, #0x10]
00064 e5912014 ldr r2, [r1, #0x14]
00068 e5933014 ldr r3, [r3, #0x14]
0006c e582303c str r3, [r2, #0x3C]
; 905 : }
; 906 :
; 907 : return ReturnValue;
; 908 :
; 909 : } //end XllpPCCardSetExpMemTiming()
00070 e12fff1e bx lr
00074 |$M1215|
ENDP ; |XllpPCCardSetExpMemTiming|
EXPORT |XllpPCCardGetExpMemTiming|
00000 AREA |.text| { |XllpPCCardGetExpMemTiming| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$XllpPCCardGetExpMemTiming|, PDATA, SELECTION=5, ASSOC=|.text| { |XllpPCCardGetExpMemTiming| } ; comdat associative
|$T1230| DCD |$L1229|
DCD 0x40001a00
; Function compile flags: /Ogsy
00000 AREA |.text| { |XllpPCCardGetExpMemTiming| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |XllpPCCardGetExpMemTiming| PROC
; 931 : {
00000 |$L1229|
00000 |$M1227|
00000 e1b02000 movs r2, r0
; 932 : XLLP_STATUS_T ReturnValue = XLLP_STATUS_SUCCESS;
00004 e3a00000 mov r0, #0
; 933 :
; 934 : //
; 935 : //Check the validity of the input arguments to the function
; 936 : //
; 937 : if((pstrSocketHandle == XLLP_NULL_PTR) ||
; 938 : (pstrCardTimingHandle == XLLP_NULL_PTR))
00008 0a000001 beq |$L1086|
0000c e3510000 cmp r1, #0
00010 1a000001 bne |$L1221|
00014 |$L1086|
; 939 : {
; 940 : ReturnValue = XLLP_STATUS_PCCARD_FAILURE;
00014 e3a0000f mov r0, #0xF
; 953 : }
; 954 :
; 955 : return ReturnValue;
; 956 :
; 957 : } //end XllpPCCardGetExpMemTiming()
00018 e12fff1e bx lr
0001c |$L1221|
; 941 : }
; 942 :
; 943 : if(ReturnValue != XLLP_STATUS_PCCARD_FAILURE)
; 944 : {
; 945 : pstrCardTimingHandle->MCATT0 = pstrSocketHandle->pstrMemCtrlRegsHandle->MCATT0;
0001c e5923014 ldr r3, [r2, #0x14]
; 946 : pstrCardTimingHandle->MCATT1 = pstrSocketHandle->pstrMemCtrlRegsHandle->MCATT1;
00020 e5933030 ldr r3, [r3, #0x30]
; 947 :
; 948 : pstrCardTimingHandle->MCMEM0 = pstrSocketHandle->pstrMemCtrlRegsHandle->MCMEM0;
; 949 : pstrCardTimingHandle->MCMEM1 = pstrSocketHandle->pstrMemCtrlRegsHandle->MCMEM1;
; 950 :
; 951 : pstrCardTimingHandle->MCIO0 = pstrSocketHandle->pstrMemCtrlRegsHandle->MCIO0;
; 952 : pstrCardTimingHandle->MCIO1 = pstrSocketHandle->pstrMemCtrlRegsHandle->MCIO1;
00024 e5813008 str r3, [r1, #8]
00028 e5923014 ldr r3, [r2, #0x14]
0002c e5933034 ldr r3, [r3, #0x34]
00030 e581300c str r3, [r1, #0xC]
00034 e5923014 ldr r3, [r2, #0x14]
00038 e5933028 ldr r3, [r3, #0x28]
0003c e5813000 str r3, [r1]
00040 e5923014 ldr r3, [r2, #0x14]
00044 e593302c ldr r3, [r3, #0x2C]
00048 e5813004 str r3, [r1, #4]
0004c e5923014 ldr r3, [r2, #0x14]
00050 e5933038 ldr r3, [r3, #0x38]
00054 e5813010 str r3, [r1, #0x10]
00058 e5923014 ldr r3, [r2, #0x14]
0005c e593303c ldr r3, [r3, #0x3C]
00060 e5813014 str r3, [r1, #0x14]
; 953 : }
; 954 :
; 955 : return ReturnValue;
; 956 :
; 957 : } //end XllpPCCardGetExpMemTiming()
00064 e12fff1e bx lr
00068 |$M1228|
ENDP ; |XllpPCCardGetExpMemTiming|
EXPORT |XllpPCCardHWSetup|
00000 AREA |.text| { |XllpPCCardHWSetup| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$XllpPCCardHWSetup|, PDATA, SELECTION=5, ASSOC=|.text| { |XllpPCCardHWSetup| } ; comdat associative
|$T1243| DCD |$L1242|
DCD 0x40003f02
; Function compile flags: /Ogsy
00000 AREA |.text| { |XllpPCCardHWSetup| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |XllpPCCardHWSetup| PROC
; 66 : {
00000 |$L1242|
00000 e92d4070 stmdb sp!, {r4 - r6, lr}
00004 e24dd004 sub sp, sp, #4
00008 |$M1240|
00008 e1a05000 mov r5, r0
; 67 : volatile XLLP_BCR_T *vpstrMainBLRegs = (volatile XLLP_BCR_T *)pstrSocketHandle->pstrBcrHandle;
; 68 : XLLP_STATUS_T ReturnValue = XLLP_STATUS_SUCCESS;
; 69 : XLLP_UINT32_T uiCardVoltage = 0;
0000c e3a03000 mov r3, #0
; 70 :
; 71 : //
; 72 : //Check the validity of the input arguments to the function
; 73 : //
; 74 : if((pstrSocketHandle == XLLP_NULL_PTR))
; 75 : {
; 76 : ReturnValue = XLLP_STATUS_PCCARD_FAILURE;
; 77 : }
; 78 :
; 79 : if(ReturnValue != XLLP_STATUS_PCCARD_FAILURE)
; 80 : {
; 81 : XllpPCCardConfigureGPIOs(pstrSocketHandle);
00010 e5954004 ldr r4, [r5, #4]
00014 e58d3000 str r3, [sp]
00018 eb000000 bl XllpPCCardConfigureGPIOs
; 82 :
; 83 : //
; 84 : //*************************** SOCKET 0 **********************************
; 85 : //
; 86 : vpstrMainBLRegs->PCMCIAS0SCR &= ~(XLLP_BCR_PCMCIA_SCR_S0_PWR);
0001c e59430e0 ldr r3, [r4, #0xE0]
; 87 :
; 88 : //
; 89 : //Deassert RESET for Socket 0: bit[4] of the Socket 0 Status Control Register
; 90 : //
; 91 : vpstrMainBLRegs->PCMCIAS0SCR &= ~(XLLP_BCR_PCMCIA_SCR_S0_RESET);
; 92 :
; 93 : //
; 94 : //If a card is inserted, configure the MAX1602EE power IC for
; 95 : //appropriate power supply to the socket, based on the voltage requirements
; 96 : //of the card. If no card is present in the socket, then bypass powering
; 97 : //up the socket at this point
; 98 : //
; 99 : ReturnValue = XllpPCCardGetVoltageSetting(pstrSocketHandle, XLLP_PCCARD_SOCKET0, &uiCardVoltage);
00020 e28d2000 add r2, sp, #0
00024 e3a01000 mov r1, #0
00028 e3c3300f bic r3, r3, #0xF
0002c e58430e0 str r3, [r4, #0xE0]
00030 e59430e0 ldr r3, [r4, #0xE0]
00034 e1a00005 mov r0, r5
00038 e3c33010 bic r3, r3, #0x10
0003c e58430e0 str r3, [r4, #0xE0]
00040 eb000000 bl XllpPCCardGetVoltageSetting
00044 e3500000 cmp r0, #0
; 100 :
; 101 : if(ReturnValue == XLLP_STATUS_SUCCESS)
00048 1a000009 bne |$L924|
; 102 : {
; 103 : XllpPCCardPowerOn(pstrSocketHandle, XLLP_PCCARD_SOCKET0, uiCardVoltage);
0004c e59d2000 ldr r2, [sp]
00050 e3a01000 mov r1, #0
00054 e1a00005 mov r0, r5
00058 eb000000 bl XllpPCCardPowerOn
; 104 :
; 105 : //
; 106 : //Assert RESET for Socket 0: bit[4] of the Socket 0 Status Control Register
; 107 : //
; 108 : vpstrMainBLRegs->PCMCIAS0SCR |= XLLP_BCR_PCMCIA_SCR_S0_RESET;
0005c e59430e0 ldr r3, [r4, #0xE0]
; 109 :
; 110 : //
; 111 : //Deassert RESET for Socket 0: bit[4] of the Socket 0 Status Control Register
; 112 : //
; 113 : vpstrMainBLRegs->PCMCIAS0SCR &= ~(XLLP_BCR_PCMCIA_SCR_S0_RESET);
00060 e3833010 orr r3, r3, #0x10
00064 e58430e0 str r3, [r4, #0xE0]
00068 e59430e0 ldr r3, [r4, #0xE0]
0006c e3c33010 bic r3, r3, #0x10
00070 e58430e0 str r3, [r4, #0xE0]
00074 |$L924|
; 114 : }
; 115 :
; 116 : //
; 117 : //*************************** SOCKET 1 **********************************
; 118 : //
; 119 : vpstrMainBLRegs->PCMCIAS1SCR &= ~(XLLP_BCR_PCMCIA_SCR_S1_PWR);
00074 e59430e4 ldr r3, [r4, #0xE4]
; 120 :
; 121 : //
; 122 : //Deassert RESET for Socket 1: bit[4] of the Socket 1 Status Control Register
; 123 : //
; 124 : vpstrMainBLRegs->PCMCIAS1SCR &= ~(XLLP_BCR_PCMCIA_SCR_S1_RESET);
; 125 :
; 126 : //
; 127 : //If a card is inserted, configure the MAX1602EE power IC for
; 128 : //appropriate power supply to the socket, based on the voltage requirements
; 129 : //of the card. If no card is present in the socket, then bypass powering
; 130 : //up the socket at this point
; 131 : //
; 132 : uiCardVoltage = 0; //reset the value
00078 e3a0e000 mov lr, #0
; 133 : ReturnValue = XLLP_STATUS_SUCCESS; //reset the value
; 134 :
; 135 : ReturnValue = XllpPCCardGetVoltageSetting(pstrSocketHandle, XLLP_PCCARD_SOCKET1, &uiCardVoltage);
0007c e28d2000 add r2, sp, #0
00080 e3c3300f bic r3, r3, #0xF
00084 e58430e4 str r3, [r4, #0xE4]
00088 e59430e4 ldr r3, [r4, #0xE4]
0008c e3a01001 mov r1, #1
00090 e1a00005 mov r0, r5
00094 e3c33010 bic r3, r3, #0x10
00098 e58430e4 str r3, [r4, #0xE4]
0009c e58de000 str lr, [sp]
000a0 eb000000 bl XllpPCCardGetVoltageSetting
000a4 e1b06000 movs r6, r0
; 136 :
; 137 : if(ReturnValue == XLLP_STATUS_SUCCESS)
000a8 1a000009 bne |$L925|
; 138 : {
; 139 : XllpPCCardPowerOn(pstrSocketHandle, XLLP_PCCARD_SOCKET1, uiCardVoltage);
000ac e59d2000 ldr r2, [sp]
000b0 e3a01001 mov r1, #1
000b4 e1a00005 mov r0, r5
000b8 eb000000 bl XllpPCCardPowerOn
; 140 :
; 141 : //
; 142 : //Assert RESET for Socket 1: bit[4] of the Socket 1 Status Control Register
; 143 : //
; 144 : vpstrMainBLRegs->PCMCIAS1SCR |= XLLP_BCR_PCMCIA_SCR_S0_RESET;
000bc e59430e4 ldr r3, [r4, #0xE4]
; 145 :
; 146 : //
; 147 : //Deassert RESET for Socket 1: bit[4] of the Socket 1 Status Control Register
; 148 : //
; 149 : vpstrMainBLRegs->PCMCIAS1SCR &= ~(XLLP_BCR_PCMCIA_SCR_S0_RESET);
000c0 e3833010 orr r3, r3, #0x10
000c4 e58430e4 str r3, [r4, #0xE4]
000c8 e59430e4 ldr r3, [r4, #0xE4]
000cc e3c33010 bic r3, r3, #0x10
000d0 e58430e4 str r3, [r4, #0xE4]
000d4 |$L925|
; 150 : }
; 151 :
; 152 : //
; 153 : //Route signals to the PC card interface, as opposed to the Baseband controller
; 154 : //
; 155 : vpstrMainBLRegs->MISCWR1 |= (XLLP_BCR_MISCWR1_BB_SEL);
000d4 e5943080 ldr r3, [r4, #0x80]
; 156 : vpstrMainBLRegs->MISCWR1 &= ~(XLLP_BCR_MISCWR1_BB_SEL);
; 157 : }
; 158 :
; 159 : return ReturnValue;
000d8 e1a00006 mov r0, r6
000dc e3833c02 orr r3, r3, #2, 24
000e0 e5843080 str r3, [r4, #0x80]
000e4 e5943080 ldr r3, [r4, #0x80]
000e8 e3c33c02 bic r3, r3, #2, 24
000ec e5843080 str r3, [r4, #0x80]
; 160 :
; 161 : } //end XllpPCCardHWSetup()
000f0 e28dd004 add sp, sp, #4
000f4 e8bd4070 ldmia sp!, {r4 - r6, lr}
000f8 e12fff1e bx lr
000fc |$M1241|
ENDP ; |XllpPCCardHWSetup|
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -