diff --git a/Kernel/Storage/ATA/GenericIDE/ISAController.cpp b/Kernel/Arch/x86/ISABus/IDEController.cpp similarity index 96% rename from Kernel/Storage/ATA/GenericIDE/ISAController.cpp rename to Kernel/Arch/x86/ISABus/IDEController.cpp index ee8c48520b..b8b0e17e0d 100644 --- a/Kernel/Storage/ATA/GenericIDE/ISAController.cpp +++ b/Kernel/Arch/x86/ISABus/IDEController.cpp @@ -6,13 +6,13 @@ #include #include +#include #include #include #include #include #include #include -#include namespace Kernel { diff --git a/Kernel/Storage/ATA/GenericIDE/ISAController.h b/Kernel/Arch/x86/ISABus/IDEController.h similarity index 100% rename from Kernel/Storage/ATA/GenericIDE/ISAController.h rename to Kernel/Arch/x86/ISABus/IDEController.h diff --git a/Kernel/CMakeLists.txt b/Kernel/CMakeLists.txt index 0752e2245e..cb37e56307 100644 --- a/Kernel/CMakeLists.txt +++ b/Kernel/CMakeLists.txt @@ -95,7 +95,6 @@ set(KERNEL_SOURCES Storage/ATA/AHCI/InterruptHandler.cpp Storage/ATA/GenericIDE/Controller.cpp Storage/ATA/GenericIDE/Channel.cpp - Storage/ATA/GenericIDE/ISAController.cpp Storage/ATA/GenericIDE/PCIController.cpp Storage/ATA/ATAController.cpp Storage/ATA/ATADevice.cpp @@ -340,6 +339,7 @@ if ("${SERENITY_ARCH}" STREQUAL "i686" OR "${SERENITY_ARCH}" STREQUAL "x86_64") Arch/x86/Hypervisor/VMWareBackdoor.cpp + Arch/x86/ISABus/IDEController.cpp Arch/x86/PCI/Controller/HostBridge.cpp Arch/x86/PCI/Initializer.cpp ) diff --git a/Kernel/Storage/ATA/GenericIDE/Channel.cpp b/Kernel/Storage/ATA/GenericIDE/Channel.cpp index feda770ba2..b4e3e645a8 100644 --- a/Kernel/Storage/ATA/GenericIDE/Channel.cpp +++ b/Kernel/Storage/ATA/GenericIDE/Channel.cpp @@ -86,10 +86,12 @@ ErrorOr IDEChannel::allocate_resources_for_pci_ide_controller(Badge IDEChannel::allocate_resources_for_isa_ide_controller(Badge) { return allocate_resources(false); } +#endif UNMAP_AFTER_INIT ErrorOr IDEChannel::allocate_resources(bool force_pio) { diff --git a/Kernel/Storage/ATA/GenericIDE/Channel.h b/Kernel/Storage/ATA/GenericIDE/Channel.h index d77a2b3bf3..5c5f1715b2 100644 --- a/Kernel/Storage/ATA/GenericIDE/Channel.h +++ b/Kernel/Storage/ATA/GenericIDE/Channel.h @@ -37,7 +37,9 @@ class AsyncBlockDeviceRequest; class IDEController; class PCIIDEController; +#if ARCH(I386) || ARCH(X86_64) class ISAIDEController; +#endif class IDEChannel : public ATAPort , public IRQHandler { @@ -111,7 +113,9 @@ public: virtual StringView purpose() const override { return "PATA Channel"sv; } ErrorOr allocate_resources_for_pci_ide_controller(Badge, bool force_pio); +#if ARCH(I386) || ARCH(X86_64) ErrorOr allocate_resources_for_isa_ide_controller(Badge); +#endif private: static constexpr size_t m_logical_sector_size = 512; diff --git a/Kernel/Storage/StorageManagement.cpp b/Kernel/Storage/StorageManagement.cpp index d1648a8b81..e36bf0ade4 100644 --- a/Kernel/Storage/StorageManagement.cpp +++ b/Kernel/Storage/StorageManagement.cpp @@ -6,9 +6,13 @@ */ #include +#include #include #include #include +#if ARCH(I386) || ARCH(X86_64) +# include +#endif #include #include #include @@ -19,7 +23,6 @@ #include #include #include -#include #include #include #include @@ -429,9 +432,11 @@ UNMAP_AFTER_INIT void StorageManagement::initialize(StringView root_device, bool VERIFY(s_storage_device_minor_number == 0); m_boot_argument = root_device; if (PCI::Access::is_disabled()) { +#if ARCH(I386) || ARCH(X86_64) // Note: If PCI is disabled, we assume that at least we have an ISA IDE controller // to probe and use m_controllers.append(ISAIDEController::initialize()); +#endif } else { enumerate_pci_controllers(force_pio, poll); }