From 8092077e528e88d16b01fb0f451be50f9409c98f Mon Sep 17 00:00:00 2001 From: Doczom <78043169+Doczom@users.noreply.github.com> Date: Wed, 15 Jun 2022 08:15:32 +0500 Subject: [PATCH] save file save file --- sdhc_cmd.inc | 8 ++++---- sdhci.asm | 5 +++++ sdhci.sys | Bin 0 -> 5312 bytes 3 files changed, 9 insertions(+), 4 deletions(-) create mode 100644 sdhci.sys diff --git a/sdhc_cmd.inc b/sdhc_cmd.inc index 3874215..684eaed 100644 --- a/sdhc_cmd.inc +++ b/sdhc_cmd.inc @@ -18,9 +18,9 @@ proc send_sdhc_command @@: ;test dword[esi + SDHCI_CONTROLLER.flag_command_copmlate], -1 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 - DEBUGF 1,"SDHCI: Command is out\n" DEBUGF 1,"SDHCI: resp1=%x resp2=%x \n", [eax + SDHC_RESP1_0], [eax + SDHC_RESP3_2] ret endp @@ -30,8 +30,8 @@ endp ;cmd0 - Resets all cards to idle state proc GO_IDLE_SATTE xor ebx, ebx - mov ecx, 0x00 - mov edx, 0x00 + mov ecx, 0x02 ; read mull + mov edx, 0x0220 call send_sdhc_command ret endp diff --git a/sdhci.asm b/sdhci.asm index 7c4db8d..1b1aa8e 100644 --- a/sdhci.asm +++ b/sdhci.asm @@ -939,6 +939,7 @@ proc card_init ;включаем прерывания 0х01 or dword[eax + SDHC_INT_MASK], 0xFFFF0001 or dword[eax + SDHC_SOG_MASK], 0xFFFF0001 + DEBUGF 1,'SDHCI: INT_MASK = %x\n',[eax + SDHC_INT_MASK] ; Включить питание (3.3В - не всегда) максимально возможное для хоста ; дай бог чтоб не сгорело ничего mov ebx, [esi + SDHCI_CONTROLLER.Capabilities] @@ -955,6 +956,7 @@ proc card_init ; включить генератор частот контроллера и установим базовые значения регистров ; генератор на 400 КГц mov ebx, [esi + SDHCI_CONTROLLER.divider400KHz] + mov ebx, [esi + SDHCI_CONTROLLER.divider25MHz] call set_SD_clock ; очищает SDHC_CTRL1 and dword[eax + SDHC_CTRL1], 11000b + 0x0f00 ;оставляем только dma режим и power control @@ -1031,6 +1033,9 @@ proc card_detect DEBUGF 1,'SDHCI: Card init - SDIO card\n' ret .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' ret endp diff --git a/sdhci.sys b/sdhci.sys new file mode 100644 index 0000000000000000000000000000000000000000..4d3045007fa8f620daabf69a2c1eda7ca9894f3c GIT binary patch literal 5312 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 Oeh`531(+!PkK^B=mvSKh literal 0 HcmV?d00001