summaryrefslogtreecommitdiffhomepage
path: root/dev/kernel/HALKit/AMD64
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-03-28 20:19:56 +0100
committerAmlal El Mahrouss <amlal@nekernel.org>2025-03-28 20:19:56 +0100
commit15493aad092a3e2f0ebacc4fe38d40de02ea67de (patch)
tree036ab95fdf6702b0a1dba53ca7f4670466329f05 /dev/kernel/HALKit/AMD64
parentba7b3ed69cd24970a28b72c54982735cd120e663 (diff)
ahci: fix: report success when ahci is detected.
mbci: reintroduce NeKernel's MBCI. cfkit: rename: CFKit -> CF libuser: rename ErrKind to ErrRef. coregfx: fix last unconsistent things about the module. Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'dev/kernel/HALKit/AMD64')
-rw-r--r--dev/kernel/HALKit/AMD64/HalDebugOutput.cc2
-rw-r--r--dev/kernel/HALKit/AMD64/HalKernelMain.cc2
-rw-r--r--dev/kernel/HALKit/AMD64/HalTimerAMD64.cc16
-rw-r--r--dev/kernel/HALKit/AMD64/PCI/Device.cc12
-rw-r--r--dev/kernel/HALKit/AMD64/Processor.h2
-rw-r--r--dev/kernel/HALKit/AMD64/Storage/AHCI+Generic.cc31
-rw-r--r--dev/kernel/HALKit/AMD64/Storage/DMA+Generic.cc4
-rw-r--r--dev/kernel/HALKit/AMD64/Storage/PIO+Generic.cc2
8 files changed, 41 insertions, 30 deletions
diff --git a/dev/kernel/HALKit/AMD64/HalDebugOutput.cc b/dev/kernel/HALKit/AMD64/HalDebugOutput.cc
index 1aab95aa..acf7dffd 100644
--- a/dev/kernel/HALKit/AMD64/HalDebugOutput.cc
+++ b/dev/kernel/HALKit/AMD64/HalDebugOutput.cc
@@ -125,7 +125,7 @@ namespace Kernel
fb_init();
- FBDrawInRegion(fb_get_clear_clr(), FB::UIAccessibilty::Height(), FB::UIAccessibilty::Width(),
+ FBDrawInRegion(fb_get_clear_clr(), FB::FBAccessibilty::Height(), FB::FBAccessibilty::Width(),
0, 0);
fb_clear();
diff --git a/dev/kernel/HALKit/AMD64/HalKernelMain.cc b/dev/kernel/HALKit/AMD64/HalKernelMain.cc
index fadb37e4..30463f5d 100644
--- a/dev/kernel/HALKit/AMD64/HalKernelMain.cc
+++ b/dev/kernel/HALKit/AMD64/HalKernelMain.cc
@@ -22,7 +22,7 @@ STATIC Kernel::Void hal_init_scheduler_team()
{
for (Kernel::SizeT i = 0U; i < Kernel::UserProcessScheduler::The().CurrentTeam().AsArray().Count(); ++i)
{
- Kernel::UserProcessScheduler::The().CurrentTeam().AsArray()[i] = Kernel::UserProcess();
+ Kernel::UserProcessScheduler::The().CurrentTeam().AsArray()[i] = Kernel::UserProcess();
Kernel::UserProcessScheduler::The().CurrentTeam().AsArray()[i].Status = Kernel::ProcessStatusKind::kKilled;
}
}
diff --git a/dev/kernel/HALKit/AMD64/HalTimerAMD64.cc b/dev/kernel/HALKit/AMD64/HalTimerAMD64.cc
index 55e92dfe..cddd4a1b 100644
--- a/dev/kernel/HALKit/AMD64/HalTimerAMD64.cc
+++ b/dev/kernel/HALKit/AMD64/HalTimerAMD64.cc
@@ -30,16 +30,16 @@ namespace Kernel::Detail
{
struct HPET_BLOCK : public Kernel::SDT
{
- Kernel::UInt8 hardware_rev_id;
- Kernel::UInt8 comparator_count : 5;
- Kernel::UInt8 counter_size : 1;
- Kernel::UInt8 reserved : 1;
- Kernel::UInt8 legacy_replacement : 1;
+ Kernel::UInt8 hardware_rev_id;
+ Kernel::UInt8 comparator_count : 5;
+ Kernel::UInt8 counter_size : 1;
+ Kernel::UInt8 reserved : 1;
+ Kernel::UInt8 legacy_replacement : 1;
Kernel::UInt16 pci_vendor_id;
- ACPI_ADDRESS address;
- Kernel::UInt8 hpet_number;
+ ACPI_ADDRESS address;
+ Kernel::UInt8 hpet_number;
Kernel::UInt16 minimum_tick;
- Kernel::UInt8 page_protection;
+ Kernel::UInt8 page_protection;
} PACKED;
} // namespace Kernel::Detail
diff --git a/dev/kernel/HALKit/AMD64/PCI/Device.cc b/dev/kernel/HALKit/AMD64/PCI/Device.cc
index 553ffad4..32ea9e1f 100644
--- a/dev/kernel/HALKit/AMD64/PCI/Device.cc
+++ b/dev/kernel/HALKit/AMD64/PCI/Device.cc
@@ -15,11 +15,11 @@
Kernel::UInt NE_PCIReadRaw(Kernel::UInt bar, Kernel::UShort bus, Kernel::UShort dev, Kernel::UShort fun)
{
Kernel::UInt target = 0x80000000 | ((Kernel::UInt)bus << 16) |
- ((Kernel::UInt)dev << 11) | ((Kernel::UInt)fun << 8) |
- (bar & 0xFC);
+ ((Kernel::UInt)dev << 11) | ((Kernel::UInt)fun << 8) |
+ (bar & 0xFC);
Kernel::HAL::rt_out32((Kernel::UShort)Kernel::PCI::PciConfigKind::ConfigAddress,
- target);
+ target);
Kernel::HAL::rt_wait_400ns();
@@ -29,11 +29,11 @@ Kernel::UInt NE_PCIReadRaw(Kernel::UInt bar, Kernel::UShort bus, Kernel::UShort
void NE_PCISetCfgTarget(Kernel::UInt bar, Kernel::UShort bus, Kernel::UShort dev, Kernel::UShort fun)
{
Kernel::UInt target = 0x80000000 | ((Kernel::UInt)bus << 16) |
- ((Kernel::UInt)dev << 11) | ((Kernel::UInt)fun << 8) |
- (bar & 0xFC);
+ ((Kernel::UInt)dev << 11) | ((Kernel::UInt)fun << 8) |
+ (bar & 0xFC);
Kernel::HAL::rt_out32((Kernel::UShort)Kernel::PCI::PciConfigKind::ConfigAddress,
- target);
+ target);
Kernel::HAL::rt_wait_400ns();
}
diff --git a/dev/kernel/HALKit/AMD64/Processor.h b/dev/kernel/HALKit/AMD64/Processor.h
index 83fde9ba..57f50a48 100644
--- a/dev/kernel/HALKit/AMD64/Processor.h
+++ b/dev/kernel/HALKit/AMD64/Processor.h
@@ -323,4 +323,4 @@ EXTERN_C ATTRIBUTE(naked) Kernel::Void hal_load_idt(Kernel::HAL::Register64 ptr)
EXTERN_C ATTRIBUTE(naked) Kernel::Void hal_load_gdt(Kernel::HAL::RegisterGDT ptr);
inline Kernel::VoidPtr kKernelBitMpStart = nullptr;
-inline Kernel::UIntPtr kKernelBitMpSize = 0UL;
+inline Kernel::UIntPtr kKernelBitMpSize = 0UL;
diff --git a/dev/kernel/HALKit/AMD64/Storage/AHCI+Generic.cc b/dev/kernel/HALKit/AMD64/Storage/AHCI+Generic.cc
index 318327f8..2ef2fda7 100644
--- a/dev/kernel/HALKit/AMD64/Storage/AHCI+Generic.cc
+++ b/dev/kernel/HALKit/AMD64/Storage/AHCI+Generic.cc
@@ -5,7 +5,7 @@
------------------------------------------- */
/**
- * @file AHCI.cc
+ * @file AHCI+Generic.cc
* @author Amlal El Mahrouss (amlal@nekernel.org)
* @brief AHCI driver.
* @version 0.1
@@ -19,17 +19,14 @@
#include <KernelKit/DriveMgr.h>
#include <KernelKit/UserProcessScheduler.h>
#include <KernelKit/KPC.h>
-
#include <FirmwareKit/EPM.h>
-
+#include <StorageKit/AHCI.h>
#include <modules/ATA/ATA.h>
#include <modules/AHCI/AHCI.h>
#include <KernelKit/PCI/Iterator.h>
#include <NewKit/Utils.h>
#include <KernelKit/LockDelegate.h>
-#include <StorageKit/AHCI.h>
-
#define kHBAErrTaskFile (1 << 30)
#define kHBAPxCmdST (0x0001)
#define kHBAPxCmdFre (0x0010)
@@ -345,8 +342,6 @@ STATIC Bool drv_std_init_ahci(UInt16& pi, BOOL& atapi)
if (mem_ahci->Ports[ahci_index].Sig == kSATASignature)
{
- kout << "detect device: /dev/sat" << number(ahci_index) << kendl;
-
kSATAIndex = ahci_index;
kSATAHba = mem_ahci;
@@ -356,8 +351,6 @@ STATIC Bool drv_std_init_ahci(UInt16& pi, BOOL& atapi)
}
else if (atapi && kSATAPISignature == mem_ahci->Ports[ahci_index].Sig)
{
- kout << "detect device: /dev/atp" << number(ahci_index) << kendl;
-
kSATAIndex = ahci_index;
kSATAHba = mem_ahci;
@@ -370,6 +363,8 @@ STATIC Bool drv_std_init_ahci(UInt16& pi, BOOL& atapi)
++ahci_index;
}
+ err_global_get() = kErrorSuccess;
+
return YES;
}
}
@@ -476,38 +471,54 @@ namespace Kernel
#ifdef __AHCI__
+////////////////////////////////////////////////////
+///
+////////////////////////////////////////////////////
Void drv_std_write(UInt64 lba, Char* buffer, SizeT sector_sz, SizeT size_buffer)
{
drv_std_input_output_ahci<YES, YES, NO>(lba, reinterpret_cast<UInt8*>(buffer), sector_sz, size_buffer);
}
+////////////////////////////////////////////////////
+///
+////////////////////////////////////////////////////
Void drv_std_read(UInt64 lba, Char* buffer, SizeT sector_sz, SizeT size_buffer)
{
drv_std_input_output_ahci<NO, YES, NO>(lba, reinterpret_cast<UInt8*>(buffer), sector_sz, size_buffer);
}
+////////////////////////////////////////////////////
+///
+////////////////////////////////////////////////////
Bool drv_std_init(UInt16& pi)
{
BOOL atapi = NO;
return drv_std_init_ahci(pi, atapi);
}
+////////////////////////////////////////////////////
+///
+////////////////////////////////////////////////////
Bool drv_std_detected(Void)
{
return drv_std_detected_ahci();
}
-/***
+////////////////////////////////////////////////////
+/**
@brief Gets the number of sectors inside the drive.
@return Sector size in bytes.
*/
+////////////////////////////////////////////////////
SizeT drv_get_sector_count()
{
return drv_get_sector_count_ahci();
}
+////////////////////////////////////////////////////
/// @brief Get the drive size.
/// @return Disk size in bytes.
+////////////////////////////////////////////////////
SizeT drv_get_size()
{
return drv_get_size_ahci();
diff --git a/dev/kernel/HALKit/AMD64/Storage/DMA+Generic.cc b/dev/kernel/HALKit/AMD64/Storage/DMA+Generic.cc
index 261643fc..e350228d 100644
--- a/dev/kernel/HALKit/AMD64/Storage/DMA+Generic.cc
+++ b/dev/kernel/HALKit/AMD64/Storage/DMA+Generic.cc
@@ -5,7 +5,7 @@
------------------------------------------- */
/**
- * @file ATA-PIO.cc
+ * @file DMA+Generic.cc
* @author Amlal EL Mahrouss (amlal@nekernel.org)
* @brief ATA driver (DMA mode).
* @version 0.1
@@ -32,7 +32,7 @@ STATIC Boolean kATADetected = false;
STATIC Int32 kATADeviceType = kATADeviceCount;
STATIC Char kATAData[kATADataLen] = {0};
STATIC Kernel::PCI::Device kATADevice;
-STATIC Char kCurrentDiskModel[50] = {"UNKNOWN DMA DRIVE"};
+STATIC Char kCurrentDiskModel[50] = {"UNKNOWN DMA DRIVE"};
Boolean drv_std_wait_io(UInt16 IO)
{
diff --git a/dev/kernel/HALKit/AMD64/Storage/PIO+Generic.cc b/dev/kernel/HALKit/AMD64/Storage/PIO+Generic.cc
index 2bbdb0e5..d828839d 100644
--- a/dev/kernel/HALKit/AMD64/Storage/PIO+Generic.cc
+++ b/dev/kernel/HALKit/AMD64/Storage/PIO+Generic.cc
@@ -5,7 +5,7 @@
------------------------------------------- */
/**
- * @file PIO.cc
+ * @file PIO+Generic.cc
* @author Amlal EL Mahrouss (amlal@nekernel.org)
* @brief ATA driver (PIO mode).
* @version 0.1