From 8df934fd614ffa04f5bea091b02c848b1d703049 Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Sun, 16 Mar 2025 11:04:10 +0100 Subject: AHCI: FIX: Place det || ipm condition before checking for ATAPI/SATA. AHCI: Finish .drawio design of AHCI driver. Signed-off-by: Amlal El Mahrouss --- dev/Kernel/HALKit/AMD64/Storage/AHCI+Generic.cc | 5 +++- dev/Kernel/HALKit/AMD64/Storage/PIO+Generic.cc | 4 ++- doc/AHCI.drawio | 22 -------------- doc/AHCI_DESIGN.drawio | 40 +++++++++++++++++++++++++ 4 files changed, 47 insertions(+), 24 deletions(-) delete mode 100644 doc/AHCI.drawio create mode 100644 doc/AHCI_DESIGN.drawio diff --git a/dev/Kernel/HALKit/AMD64/Storage/AHCI+Generic.cc b/dev/Kernel/HALKit/AMD64/Storage/AHCI+Generic.cc index 0400970e..9f03754c 100644 --- a/dev/Kernel/HALKit/AMD64/Storage/AHCI+Generic.cc +++ b/dev/Kernel/HALKit/AMD64/Storage/AHCI+Generic.cc @@ -257,7 +257,10 @@ STATIC Bool drv_std_init_ahci(UInt16& pi, BOOL atapi) UInt8 ipm = (mem_ahci->Ports[ahci_index].Ssts >> 8) & 0x0F; UInt8 det = mem_ahci->Ports[ahci_index].Ssts & 0x0F; - if (mem_ahci->Ports[ahci_index].Sig == kSATASignature && det == kSATAPresent && ipm == kSATAIPMActive) + if (det != kSATAPresent || ipm != kSATAIPMActive) + continue; + + if (mem_ahci->Ports[ahci_index].Sig == kSATASignature) { kout << "Detect: /dev/sat" << number(ahci_index) << kendl; diff --git a/dev/Kernel/HALKit/AMD64/Storage/PIO+Generic.cc b/dev/Kernel/HALKit/AMD64/Storage/PIO+Generic.cc index 62791aee..8e6197c9 100644 --- a/dev/Kernel/HALKit/AMD64/Storage/PIO+Generic.cc +++ b/dev/Kernel/HALKit/AMD64/Storage/PIO+Generic.cc @@ -23,7 +23,7 @@ using namespace NeOS; using namespace NeOS::HAL; -/// bugs: 0 +/// BUGS: 0 #define kATADataLen 512 @@ -107,6 +107,8 @@ ATAInit_Retry: kCurrentDiskModel[40] = '\0'; + kout << "Detect: /dev/ata0" << kendl; + kout << "Drive Model: " << kCurrentDiskModel << kendl; return true; diff --git a/doc/AHCI.drawio b/doc/AHCI.drawio deleted file mode 100644 index 191f04aa..00000000 --- a/doc/AHCI.drawio +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/AHCI_DESIGN.drawio b/doc/AHCI_DESIGN.drawio new file mode 100644 index 00000000..73029de7 --- /dev/null +++ b/doc/AHCI_DESIGN.drawio @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file -- cgit v1.2.3