summaryrefslogtreecommitdiffhomepage
path: root/dev/Kernel
diff options
context:
space:
mode:
authorAmlal <amlal.elmahrouss@icloud.com>2025-02-17 13:34:21 +0100
committerAmlal <amlal.elmahrouss@icloud.com>2025-02-17 13:34:21 +0100
commitd3b39ca5bebf73804eae60e021e9083250195dc0 (patch)
treed5c55146c00bd9562b401e8f03e64a71af7b236f /dev/Kernel
parent6b97e53fb3a1f11f4549697a73f5e634db027afb (diff)
FIX: AHCI.cc
Signed-off-by: Amlal <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'dev/Kernel')
-rw-r--r--dev/Kernel/HALKit/AMD64/Storage/SATA.cc8
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.");