diff options
Diffstat (limited to 'dev')
| -rw-r--r-- | dev/Boot/amd64-desktop.make | 8 | ||||
| -rw-r--r-- | dev/Kernel/HALKit/AMD64/Storage/SATA.cc | 19 | ||||
| -rw-r--r-- | dev/LibSCI/GPU.h | 4 | ||||
| -rw-r--r-- | dev/LibSCI/Macros.h | 8 | ||||
| -rw-r--r-- | dev/LibSCI/SCI.h | 2 |
5 files changed, 20 insertions, 21 deletions
diff --git a/dev/Boot/amd64-desktop.make b/dev/Boot/amd64-desktop.make index 37244c91..161d5f59 100644 --- a/dev/Boot/amd64-desktop.make +++ b/dev/Boot/amd64-desktop.make @@ -28,9 +28,17 @@ BIOS=OVMF.fd IMG=epm-master-1.img IMG_2=epm-master-2.img +ifeq ($(shell uname), Darwin) +EMU_FLAGS=-net none -smp 4 -m 8G \ + -bios $(BIOS) -drive \ + file=fat:rw:src/Root/,index=3,format=raw +endif + +ifneq ($(shell uname), Darwin) EMU_FLAGS=-net none -smp 4 -m 8G \ -bios $(BIOS) -drive \ file=fat:rw:src/Root/,index=3,format=raw -accel kvm +endif LD_FLAGS=-e Main --subsystem=10 diff --git a/dev/Kernel/HALKit/AMD64/Storage/SATA.cc b/dev/Kernel/HALKit/AMD64/Storage/SATA.cc index 58435c8d..7764b55b 100644 --- a/dev/Kernel/HALKit/AMD64/Storage/SATA.cc +++ b/dev/Kernel/HALKit/AMD64/Storage/SATA.cc @@ -28,6 +28,7 @@ #define kHBAErrTaskFile (1 << 30) #define kHBACmdGhc (1 << 31) +#define kHBACmdAE (1 << 0) #define kHBAPxCmdST 0x0001 #define kHBAPxCmdFre 0x0010 #define kHBAPxCmdFR 0x4000 @@ -116,9 +117,7 @@ Kernel::Boolean drv_std_init(Kernel::UInt16& PortsImplemented) kSATAPortIdx = ahci_index; kSATAPort = mem_ahci; - kSATAPort->Ports[kSATAPortIdx].Cmd |= kHBAPxCmdFre; - kSATAPort->Ports[kSATAPortIdx].Cmd |= kHBAPxCmdST; - kSATAPort->Ghc |= kHBACmdGhc; + kSATAPort->Ghc |= kHBACmdAE; drvi_calculate_disk_geometry(); @@ -178,7 +177,7 @@ static Kernel::Void drvi_std_input_output(Kernel::UInt64 lba, Kernel::UInt8* buf if (size_buffer > mib_cast(4)) Kernel::ke_panic(RUNTIME_CHECK_FAILED, "AHCI only supports < 4mb DMA transfers."); - HbaCmdHeader* command_header = ((HbaCmdHeader*)((Kernel::UInt64)(kSATAPort->Ports[kSATAPortIdx].Clbu << 32) | kSATAPort->Ports[kSATAPortIdx].Clb)) + slot; + HbaCmdHeader* command_header = ((HbaCmdHeader*)((Kernel::UInt64)(kSATAPort->Ports[kSATAPortIdx].Clbu) | kSATAPort->Ports[kSATAPortIdx].Clb)) + slot; MUST_PASS(command_header); @@ -229,11 +228,6 @@ static Kernel::Void drvi_std_input_output(Kernel::UInt64 lba, Kernel::UInt8* buf h2d_fis->CountLow = sector_sz & 0xFF; h2d_fis->CountHigh = (sector_sz >> 8) & 0xFF; - while ((kSATAPort->Ports[kSATAPortIdx].Tfd & (kSATASRBsy | kSATASRDrq))) - { - kout << "Waiting for the TFD to be ready...\r"; - } - if (kSATAPort->Is & kHBAErrTaskFile) Kernel::ke_panic(RUNTIME_CHECK_BAD_BEHAVIOR, "AHCI Read disk failure, faulty component."); @@ -244,18 +238,13 @@ static Kernel::Void drvi_std_input_output(Kernel::UInt64 lba, Kernel::UInt8* buf if (kSATAPort->Ports[kSATAPortIdx].Ci == 0) break; - kout << "AHCI Interrupt Status: " << Kernel::hex_number(kSATAPort->Is) << endl; + kout << "PxCI: " << Kernel::hex_number(kSATAPort->Ports[kSATAPortIdx].Ci) << endl; kout << "PxCMD: " << Kernel::hex_number(kSATAPort->Ports[kSATAPortIdx].Cmd) << endl; if (kSATAPort->Is & kHBAErrTaskFile) Kernel::ke_panic(RUNTIME_CHECK_BAD_BEHAVIOR, "AHCI Read disk failure, faulty component."); } - while ((kSATAPort->Ports[kSATAPortIdx].Tfd & (kSATASRBsy | kSATASRDrq))) - { - kout << "Waiting for the TFD to be ready...\r"; - } - delete command_table; command_table = nullptr; } diff --git a/dev/LibSCI/GPU.h b/dev/LibSCI/GPU.h index 6ee937f5..fee621e6 100644 --- a/dev/LibSCI/GPU.h +++ b/dev/LibSCI/GPU.h @@ -10,7 +10,7 @@ Purpose: GFX System Calls. #ifndef SCIKIT_GPU_H #define SCIKIT_GPU_H -#include <SCI.h> +#include <LibSCI/SCI.h> struct GPUCmdBuffer; @@ -31,7 +31,7 @@ struct GPUCmdBuffer final Bool isGPGPUData() { - return !this->BufferFirst && this->IsGPGPUData; + return this->isValid() && !this->BufferFirst && this->IsGPGPUData; } Bool isValid() diff --git a/dev/LibSCI/Macros.h b/dev/LibSCI/Macros.h index 62d522c9..e57df6ee 100644 --- a/dev/LibSCI/Macros.h +++ b/dev/LibSCI/Macros.h @@ -14,7 +14,7 @@ Purpose: LibSCI Macros header. /// @brief Macros and core types. /***********************************************************************************/ -#include <CompilerHint.h> +#include <LibSCI/CompilerHint.h> #define ATTRIBUTE(X) __attribute__((X)) @@ -29,6 +29,8 @@ Purpose: LibSCI Macros header. #define FILE_MAX_LEN 256 typedef bool Bool; +typedef bool BOOL; +typedef bool Boolean; typedef void Void; typedef __UINT64_TYPE__ UInt64; @@ -57,10 +59,10 @@ typedef SCIObject SocketObject; #ifdef __cplusplus typedef decltype(nullptr) nullPtr; -typedef decltype(nullptr) NullPtr; +typedef nullPtr NullPtr; #endif -EXTERN_C void _rtl_assert(Bool expr, const Char* origin); +IMPORT_C void _rtl_assert(Bool expr, const Char* origin); #define MUST_PASS(X) _rtl_assert(X, __FILE__) diff --git a/dev/LibSCI/SCI.h b/dev/LibSCI/SCI.h index 19bd1aa1..ca77c515 100644 --- a/dev/LibSCI/SCI.h +++ b/dev/LibSCI/SCI.h @@ -10,7 +10,7 @@ Purpose: System Calls. #ifndef SCIKIT_FOUNDATION_H
#define SCIKIT_FOUNDATION_H
-#include <Macros.h>
+#include <LibSCI/Macros.h>
// ------------------------------------------------------------------------------------------ //
/// @brief Dynamic Loader API.
|
