mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 14:17:36 +00:00
Kernel/Storage: Add support for IDE controllers in PCI native mode
Also handle native and compatibility channel modes together, so if only one IDE channel was set to work on PCI native mode, we need to handle it separately, so the other channel continue to operate with the legacy IO ports and interrupt line.
This commit is contained in:
parent
627cfe017c
commit
2718d7c74c
6 changed files with 96 additions and 25 deletions
|
@ -36,12 +36,23 @@ UNMAP_AFTER_INIT NonnullRefPtr<BMIDEChannel> BMIDEChannel::create(const IDEContr
|
|||
return adopt(*new BMIDEChannel(ide_controller, io_group, type));
|
||||
}
|
||||
|
||||
UNMAP_AFTER_INIT NonnullRefPtr<BMIDEChannel> BMIDEChannel::create(const IDEController& ide_controller, u8 irq, IDEChannel::IOAddressGroup io_group, IDEChannel::ChannelType type)
|
||||
{
|
||||
return adopt(*new BMIDEChannel(ide_controller, irq, io_group, type));
|
||||
}
|
||||
|
||||
UNMAP_AFTER_INIT BMIDEChannel::BMIDEChannel(const IDEController& controller, IDEChannel::IOAddressGroup io_group, IDEChannel::ChannelType type)
|
||||
: IDEChannel(controller, io_group, type)
|
||||
{
|
||||
initialize();
|
||||
}
|
||||
|
||||
UNMAP_AFTER_INIT BMIDEChannel::BMIDEChannel(const IDEController& controller, u8 irq, IDEChannel::IOAddressGroup io_group, IDEChannel::ChannelType type)
|
||||
: IDEChannel(controller, irq, io_group, type)
|
||||
{
|
||||
initialize();
|
||||
}
|
||||
|
||||
UNMAP_AFTER_INIT void BMIDEChannel::initialize()
|
||||
{
|
||||
VERIFY(m_io_group.bus_master_base().has_value());
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue