Kernel: Allow disabling of IDE controllers with disable_ide

The kernel doesn't like the IDE controllers on an Asus A7N8X-E Deluxe
motherboard, so add an option to disable them.
This commit is contained in:
Jean-Baptiste Boric 2021-01-24 18:20:23 +01:00 committed by Andreas Kling
parent 7eaefa5aa6
commit 4d755725bf
Notes: sideshowbarker 2024-07-18 22:53:30 +09:00

View File

@ -25,6 +25,7 @@
*/
#include <AK/UUID.h>
#include <Kernel/CommandLine.h>
#include <Kernel/Devices/BlockDevice.h>
#include <Kernel/FileSystem/Ext2FileSystem.h>
#include <Kernel/PCI/Access.h>
@ -60,11 +61,13 @@ bool StorageManagement::boot_argument_contains_partition_uuid()
NonnullRefPtrVector<StorageController> StorageManagement::enumerate_controllers(bool force_pio) const
{
NonnullRefPtrVector<StorageController> controllers;
PCI::enumerate([&](const PCI::Address& address, PCI::ID) {
if (PCI::get_class(address) == 0x1 && PCI::get_subclass(address) == 0x1) {
controllers.append(IDEController::initialize(address, force_pio));
}
});
if (!kernel_command_line().contains("disable_ide")) {
PCI::enumerate([&](const PCI::Address& address, PCI::ID) {
if (PCI::get_class(address) == 0x1 && PCI::get_subclass(address) == 0x1) {
controllers.append(IDEController::initialize(address, force_pio));
}
});
}
controllers.append(RamdiskController::initialize());
return controllers;
}