From c00f6ece0ff9a1ad2d07691122070d52d4397d78 Mon Sep 17 00:00:00 2001 From: John Hodge Date: Tue, 25 Jun 2013 09:02:59 +0800 Subject: [PATCH] Modules/AHCI - Different debug --- KernelLand/Modules/Storage/AHCI/ahci.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/KernelLand/Modules/Storage/AHCI/ahci.c b/KernelLand/Modules/Storage/AHCI/ahci.c index 4aa8df6a..f471d0ef 100644 --- a/KernelLand/Modules/Storage/AHCI/ahci.c +++ b/KernelLand/Modules/Storage/AHCI/ahci.c @@ -348,7 +348,6 @@ void AHCI_IRQHandler(int UNUSED(IRQ), void *Data) Uint32 IS = Ctrlr->MMIO->IS; Uint32 PI = Ctrlr->MMIO->PI; - LOG("Ctrlr->MMIO->IS = %x", IS); for( int i = 0; i < 32; i ++ ) { @@ -367,7 +366,7 @@ void AHCI_IRQHandler(int UNUSED(IRQ), void *Data) void AHCI_int_IRQHandlerPort(tAHCI_Port *Port) { Uint32 PxIS = Port->MMIO->PxIS; - LOG("port->MMIO->PxIS = %x", PxIS); + LOG("port[%i]->MMIO->PxIS = %x", Port->Idx, PxIS); Port->LastIS |= PxIS; if( PxIS & AHCI_PxIS_CPDS ) { // Cold port detect change detected @@ -375,15 +374,15 @@ void AHCI_int_IRQHandlerPort(tAHCI_Port *Port) } if( PxIS & AHCI_PxIS_DHRS ) { - LOG("Port->RcvdFIS->RFIS = {"); - LOG(".Status = 0x%02x", Port->RcvdFIS->RFIS.Status); - LOG(".Error = 0x%02x", Port->RcvdFIS->RFIS.Error); - LOG("}"); + // LOG("Port->RcvdFIS->RFIS = {"); + // LOG(".Status = 0x%02x", Port->RcvdFIS->RFIS.Status); + // LOG(".Error = 0x%02x", Port->RcvdFIS->RFIS.Error); + // LOG("}"); } // Get bitfield of completed commands (Issued but no activity) Uint32 done_commands = Port->IssuedCommands ^ Port->MMIO->PxSACT; - LOG("done_commands = %x", done_commands); + //LOG("done_commands = %x", done_commands); for( int i = 0; i < 32; i ++ ) { if( !(done_commands & (1 << i)) ) @@ -405,6 +404,9 @@ int AHCI_ReadSectors(void *Ptr, Uint64 Address, size_t Count, void *Buffer) { tAHCI_Port *Port = Ptr; + ENTER("pPtr XAddress xCount pBuffer", + Ptr, Address, Count, Buffer); + memset(Buffer, 0xFF, Count*512); ASSERT(Count <= 8096/512); @@ -414,15 +416,18 @@ int AHCI_ReadSectors(void *Ptr, Uint64 Address, size_t Count, void *Buffer) AHCI_SendLBA48Cmd(Port, 0, 0, Count, Address, ATA_CMD_READDMA48, Count*512, Buffer); if( AHCI_WaitForInterrupt(Port, 1000) ) { Log_Notice("AHCI", "Timeout reading from disk"); + LEAVE('i', 0); return 0; } if( Port->RcvdFIS->RFIS.Status & ATA_STATUS_ERR ) { LOG("Error detected = 0x%02x", Port->RcvdFIS->RFIS.Error); + LEAVE('i', 0); return 0; } //Debug_HexDump("AHCI_ReadSectors", Buffer, Count*512); // TODO: Check status from command + LEAVE('i', Count); return Count; } -- 2.20.1