summaryrefslogtreecommitdiffhomepage
path: root/dev/Mod
diff options
context:
space:
mode:
authorAmlal <amlal.elmahrouss@icloud.com>2025-01-27 15:09:24 +0100
committerAmlal <amlal.elmahrouss@icloud.com>2025-01-27 15:09:24 +0100
commita4d64ddc1375f40a4c72bd2ba9326df04058c9bb (patch)
treebee09c5cd413151a84183c1ebc8ca81ab7c3c88b /dev/Mod
parent974d89be4047f92b9f55e3e8821f4b89c9ab945b (diff)
Bump and fixes.
Signed-off-by: Amlal <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'dev/Mod')
-rw-r--r--dev/Mod/ACPI/ACPI.h2
-rw-r--r--dev/Mod/AHCI/AHCI.h17
-rw-r--r--dev/Mod/ATA/ATA.h2
3 files changed, 13 insertions, 8 deletions
diff --git a/dev/Mod/ACPI/ACPI.h b/dev/Mod/ACPI/ACPI.h
index 3a895430..a07f4b60 100644
--- a/dev/Mod/ACPI/ACPI.h
+++ b/dev/Mod/ACPI/ACPI.h
@@ -13,6 +13,8 @@
#include <NewKit/Defines.h>
+#define SDT_OBJECT : public Kernel::SDT
+
namespace Kernel
{
class PACKED SDT
diff --git a/dev/Mod/AHCI/AHCI.h b/dev/Mod/AHCI/AHCI.h
index 7b50d461..937be6d2 100644
--- a/dev/Mod/AHCI/AHCI.h
+++ b/dev/Mod/AHCI/AHCI.h
@@ -284,10 +284,10 @@ typedef struct HbaCmdHeader final
Kernel::UInt8 Reserved0 : 1; // Reserved
Kernel::UInt8 Pmp : 4; // Port multiplier port
- Kernel::UInt16 Prdtl; // Physical region descriptor table length in entries
- volatile Kernel::UInt32 Prdbc; // Physical region descriptor byte count transferred
+ Kernel::UInt16 Prdtl; // Physical region descriptor table length in entries
+ Kernel::UInt32 Prdbc; // Physical region descriptor byte count transferred
- Kernel::UInt64 Ctba; // Command table descriptor base address
+ Kernel::UInt32 Ctba; // Command table descriptor base address
Kernel::UInt32 Reserved1[4]; // Reserved
} HbaCmdHeader;
@@ -313,7 +313,8 @@ typedef struct HbaFis final
typedef struct HbaPrdtEntry final
{
- Kernel::UInt64 Dba; // Data base address
+ Kernel::UInt32 Dba; // Data base address
+ Kernel::UInt32 Dbau;
Kernel::UInt32 Reserved0; // Reserved
// DW3
Kernel::UInt32 Dbc : 22; // Byte count, 4M max
@@ -323,10 +324,10 @@ typedef struct HbaPrdtEntry final
typedef struct HbaCmdTbl final
{
- Kernel::UInt8 Cfis[64]; // Command FIS
- Kernel::UInt8 Acmd[16]; // ATAPI command, 12 or 16 bytes
- Kernel::UInt8 Rsv[48]; // Reserved
- struct HbaPrdtEntry PrdtEntries[1]; // Physical region descriptor table entries, 0 ~ 65535
+ Kernel::UInt8 Cfis[64]; // Command FIS
+ Kernel::UInt8 Acmd[16]; // ATAPI command, 12 or 16 bytes
+ Kernel::UInt8 Rsv[48]; // Reserved
+ struct HbaPrdtEntry Prdt[1]; // Physical region descriptor table entries, 0 ~ 65535
} HbaCmdTbl;
/// @brief Initializes an AHCI disk.
diff --git a/dev/Mod/ATA/ATA.h b/dev/Mod/ATA/ATA.h
index 07226a97..c3c65ec0 100644
--- a/dev/Mod/ATA/ATA.h
+++ b/dev/Mod/ATA/ATA.h
@@ -65,6 +65,8 @@
#define ATA_IDENT_COMMANDSETS 164
#define ATA_IDENT_MAX_LBA_EXT 200
+#define ATA_REG_SET_FEATURES 0xEF
+
#define ATA_MASTER 0x00
#define ATA_SLAVE 0x01