diff options
| author | Amlal <amlal.elmahrouss@icloud.com> | 2025-02-17 13:34:21 +0100 |
|---|---|---|
| committer | Amlal <amlal.elmahrouss@icloud.com> | 2025-02-17 13:34:21 +0100 |
| commit | d3b39ca5bebf73804eae60e021e9083250195dc0 (patch) | |
| tree | d5c55146c00bd9562b401e8f03e64a71af7b236f | |
| parent | 6b97e53fb3a1f11f4549697a73f5e634db027afb (diff) | |
FIX: AHCI.cc
Signed-off-by: Amlal <amlal.elmahrouss@icloud.com>
| -rw-r--r-- | dev/Kernel/HALKit/AMD64/Storage/SATA.cc | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/dev/Kernel/HALKit/AMD64/Storage/SATA.cc b/dev/Kernel/HALKit/AMD64/Storage/SATA.cc index 784033dd..6651db8c 100644 --- a/dev/Kernel/HALKit/AMD64/Storage/SATA.cc +++ b/dev/Kernel/HALKit/AMD64/Storage/SATA.cc @@ -250,12 +250,11 @@ static Kernel::Void drv_std_input_output(Kernel::UInt64 lba, Kernel::UInt8* buff for (Kernel::SizeT i = 0; i < (command_header->Prdtl - 1); i++) { - command_table->Prdt[i].Dba = ((Kernel::UInt32)(Kernel::UInt64)buffer_phys & 0xFFFFFFFF); - command_table->Prdt[i].Dbau = (((Kernel::UInt64)buffer_phys >> 32) & 0xFFFFFFFF); + command_table->Prdt[i].Dba = ((Kernel::UInt32)(Kernel::UInt64)buffer_phys + (i * 16) & 0xFFFFFFFF); + command_table->Prdt[i].Dbau = (((Kernel::UInt64)(buffer_phys + (i * 16)) >> 32) & 0xFFFFFFFF); command_table->Prdt[i].Dbc = (16 - 1); command_table->Prdt[i].Ie = YES; - size_buffer -= 16; buffer += 16; } @@ -292,9 +291,6 @@ static Kernel::Void drv_std_input_output(Kernel::UInt64 lba, Kernel::UInt8* buff while (kSATA->Ports[kSATAPortIdx].Ci & (1 << slot)) { - - kout << Kernel::number(slot) << endl; - if (kSATA->Is & kHBAErrTaskFile) // check for task file error. { Kernel::ke_panic(RUNTIME_CHECK_BAD_BEHAVIOR, "AHCI Read disk failure, faulty component."); |
