mirror of
https://github.com/Doczom/SDHCI_driver_for_Kolibrios.git
synced 2025-09-21 02:50:10 +02:00
save file
save file
This commit is contained in:
@@ -18,9 +18,9 @@ proc send_sdhc_command
|
|||||||
@@:
|
@@:
|
||||||
;test dword[esi + SDHCI_CONTROLLER.flag_command_copmlate], -1
|
;test dword[esi + SDHCI_CONTROLLER.flag_command_copmlate], -1
|
||||||
test dword[eax + SDHC_INT_STATUS], 0x01
|
test dword[eax + SDHC_INT_STATUS], 0x01
|
||||||
jnz @b
|
jz @b
|
||||||
|
DEBUGF 1,"SDHCI: Command is out INT_STAT=%x\n", [eax + SDHC_INT_STATUS]
|
||||||
or dword[eax + SDHC_INT_STATUS], 0x01
|
or dword[eax + SDHC_INT_STATUS], 0x01
|
||||||
DEBUGF 1,"SDHCI: Command is out\n"
|
|
||||||
DEBUGF 1,"SDHCI: resp1=%x resp2=%x \n", [eax + SDHC_RESP1_0], [eax + SDHC_RESP3_2]
|
DEBUGF 1,"SDHCI: resp1=%x resp2=%x \n", [eax + SDHC_RESP1_0], [eax + SDHC_RESP3_2]
|
||||||
ret
|
ret
|
||||||
endp
|
endp
|
||||||
@@ -30,8 +30,8 @@ endp
|
|||||||
;cmd0 - Resets all cards to idle state
|
;cmd0 - Resets all cards to idle state
|
||||||
proc GO_IDLE_SATTE
|
proc GO_IDLE_SATTE
|
||||||
xor ebx, ebx
|
xor ebx, ebx
|
||||||
mov ecx, 0x00
|
mov ecx, 0x02 ; read mull
|
||||||
mov edx, 0x00
|
mov edx, 0x0220
|
||||||
call send_sdhc_command
|
call send_sdhc_command
|
||||||
ret
|
ret
|
||||||
endp
|
endp
|
||||||
|
@@ -939,6 +939,7 @@ proc card_init
|
|||||||
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0<>01
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0<>01
|
||||||
or dword[eax + SDHC_INT_MASK], 0xFFFF0001
|
or dword[eax + SDHC_INT_MASK], 0xFFFF0001
|
||||||
or dword[eax + SDHC_SOG_MASK], 0xFFFF0001
|
or dword[eax + SDHC_SOG_MASK], 0xFFFF0001
|
||||||
|
DEBUGF 1,'SDHCI: INT_MASK = %x\n',[eax + SDHC_INT_MASK]
|
||||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (3.3<EFBFBD> - <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (3.3<EFBFBD> - <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
; <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
; <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
mov ebx, [esi + SDHCI_CONTROLLER.Capabilities]
|
mov ebx, [esi + SDHCI_CONTROLLER.Capabilities]
|
||||||
@@ -955,6 +956,7 @@ proc card_init
|
|||||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> 400 <20><><EFBFBD>
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> 400 <20><><EFBFBD>
|
||||||
mov ebx, [esi + SDHCI_CONTROLLER.divider400KHz]
|
mov ebx, [esi + SDHCI_CONTROLLER.divider400KHz]
|
||||||
|
mov ebx, [esi + SDHCI_CONTROLLER.divider25MHz]
|
||||||
call set_SD_clock
|
call set_SD_clock
|
||||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SDHC_CTRL1
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SDHC_CTRL1
|
||||||
and dword[eax + SDHC_CTRL1], 11000b + 0x0f00 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> dma <20><><EFBFBD><EFBFBD><EFBFBD> <20> power control
|
and dword[eax + SDHC_CTRL1], 11000b + 0x0f00 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> dma <20><><EFBFBD><EFBFBD><EFBFBD> <20> power control
|
||||||
@@ -1031,6 +1033,9 @@ proc card_detect
|
|||||||
DEBUGF 1,'SDHCI: Card init - SDIO card\n'
|
DEBUGF 1,'SDHCI: Card init - SDIO card\n'
|
||||||
ret
|
ret
|
||||||
.unknowe:
|
.unknowe:
|
||||||
|
and dword[eax + SDHC_CTRL1], not 0x0100 ; stop power
|
||||||
|
and dword[eax + SDHC_CTRL2], not 0x04 ; stop SD clock
|
||||||
|
|
||||||
DEBUGF 1,'SDHCI: Card not init\n'
|
DEBUGF 1,'SDHCI: Card not init\n'
|
||||||
ret
|
ret
|
||||||
endp
|
endp
|
||||||
|
Reference in New Issue
Block a user