mirror of
https://github.com/Doczom/SDHCI_driver_for_Kolibrios.git
synced 2025-09-21 02:50:10 +02:00
small fix code
small fix code
This commit is contained in:
20
sdhci.asm
20
sdhci.asm
@@ -904,6 +904,9 @@ endp
|
|||||||
; eax - map reg
|
; eax - map reg
|
||||||
; ebx - divider Clock base
|
; ebx - divider Clock base
|
||||||
proc set_SD_clock
|
proc set_SD_clock
|
||||||
|
and dword[eax + SDHC_CTRL2], 0xffffffff - 0x04
|
||||||
|
|
||||||
|
|
||||||
and dword[eax + SDHC_CTRL2], 0xffff004f ; clear
|
and dword[eax + SDHC_CTRL2], 0xffff004f ; clear
|
||||||
cmp ebx, 0x80
|
cmp ebx, 0x80
|
||||||
jbe @f
|
jbe @f
|
||||||
@@ -930,15 +933,7 @@ endp
|
|||||||
; out: ebx = type card 0 - unknow card 1 - sdio 2 - sd card(ver1 ver2 ver2-hsp ), 4 - spi(MMC, eMMC)
|
; out: ebx = type card 0 - unknow card 1 - sdio 2 - sd card(ver1 ver2 ver2-hsp ), 4 - spi(MMC, eMMC)
|
||||||
proc card_init
|
proc card_init
|
||||||
DEBUGF 1,'SDHCI: Card init\n'
|
DEBUGF 1,'SDHCI: Card init\n'
|
||||||
; <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>
|
|
||||||
mov ebx, [esi + SDHCI_CONTROLLER.divider400KHz]
|
|
||||||
call set_SD_clock
|
|
||||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SDHC_CTRL1
|
|
||||||
and dword[eax + SDHC_CTRL1], 11000b
|
|
||||||
|
|
||||||
@@:
|
|
||||||
jmp @b
|
|
||||||
; <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]
|
||||||
@@ -951,6 +946,13 @@ proc card_init
|
|||||||
or edx, 0x01 ; <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
or edx, 0x01 ; <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
or dword[eax + SDHC_CTRL1], edx
|
or dword[eax + SDHC_CTRL1], edx
|
||||||
DEBUGF 1,'SDHCI: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> \n'
|
DEBUGF 1,'SDHCI: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> \n'
|
||||||
|
|
||||||
|
; <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>
|
||||||
|
mov ebx, [esi + SDHCI_CONTROLLER.divider400KHz]
|
||||||
|
call set_SD_clock
|
||||||
|
; <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> b power control
|
||||||
; cmd0 - reset card
|
; cmd0 - reset card
|
||||||
|
|
||||||
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(sd bus, spi) - <20><> <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(sd bus, spi) - <20><> <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
@@ -989,7 +991,7 @@ proc thread_card_detect
|
|||||||
mov eax, edi
|
mov eax, edi
|
||||||
invoke Kfree
|
invoke Kfree
|
||||||
mov eax, ecx
|
mov eax, ecx
|
||||||
;call card_detect
|
call card_detect
|
||||||
.no_malloc:
|
.no_malloc:
|
||||||
; destryct thread
|
; destryct thread
|
||||||
mov eax, -1
|
mov eax, -1
|
||||||
|
Reference in New Issue
Block a user