serenity/Kernel/Storage
Liav A 3547d90a0f Kernel/Storage: Select the drive before working with busmaster register
This is a "quirk" I've observed on a Intel ICH7 test machine. Apparently
we need to select the device (master or slave) before starting to work
with the bus master register.
It's very possible that other machines are requiring this step to happen
before the DMA transfer can occur correctly.

Also, when reading with DMA, we should set the transfer direction before
clearing the interrupt status.

For the sake of completeness, I added a few lines in places that I
deemed it to be reasonable to clear the interrupt status there.
2021-03-27 16:40:16 +01:00
..
Partition Kernel: Remove unused MBRPartitionTable::m_partitions_count. 2021-03-26 16:54:05 +01:00
AHCI.h Kernel: Generalize the ATAIdentifyBlock structure 2021-03-27 16:40:16 +01:00
AHCIController.cpp Revert "Kernel/AHCI: Add a boot argument to force AHCI to operate on IRQ 11" 2021-03-23 19:27:00 +01:00
AHCIController.h Kernel/AHCI: Use interrupts for IO operations 2021-03-21 13:41:09 +01:00
AHCIPort.cpp Kernel: Remove unused AHCIPort::ScatterList::m_device_block_size. 2021-03-26 16:54:05 +01:00
AHCIPort.h Kernel: Remove unused AHCIPort::ScatterList::m_device_block_size. 2021-03-26 16:54:05 +01:00
AHCIPortHandler.cpp Kernel/Storage: Add a whole bunch of AHCI debug output 2021-03-18 07:52:15 +01:00
AHCIPortHandler.h Kernel: Add basic AHCI functionality 2021-03-05 11:29:34 +01:00
ATA.h Kernel: Generalize the ATAIdentifyBlock structure 2021-03-27 16:40:16 +01:00
BMIDEChannel.cpp Kernel/Storage: Select the drive before working with busmaster register 2021-03-27 16:40:16 +01:00
BMIDEChannel.h Kernel/Storage: Move IDE bus master handling code into a separate class 2021-03-27 16:40:16 +01:00
IDEChannel.cpp Kernel/Storage: Use more locking in the IDE code 2021-03-27 16:40:16 +01:00
IDEChannel.h Kernel/Storage: Use more locking in the IDE code 2021-03-27 16:40:16 +01:00
IDEController.cpp Kernel/Storage: Add some debug printing about IDE controllers 2021-03-27 16:40:16 +01:00
IDEController.h Kernel/Storage: Remove redundant public declaration in IDEController.h 2021-03-27 16:40:16 +01:00
PATADiskDevice.cpp Kernel/Storage: Move IDE bus master handling code into a separate class 2021-03-27 16:40:16 +01:00
PATADiskDevice.h Kernel: Make IDEChannel Ref-counted 2021-03-27 16:40:16 +01:00
RamdiskController.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
RamdiskController.h Kernel: Implement RamdiskDevice 2021-01-22 22:17:39 +01:00
RamdiskDevice.cpp Kernel: Refactor storage stack with u64 as number of blocks 2021-03-17 23:22:42 +01:00
RamdiskDevice.h Kernel: Refactor storage stack with u64 as number of blocks 2021-03-17 23:22:42 +01:00
SATADiskDevice.cpp Kernel: Refactor storage stack with u64 as number of blocks 2021-03-17 23:22:42 +01:00
SATADiskDevice.h Kernel: Refactor storage stack with u64 as number of blocks 2021-03-17 23:22:42 +01:00
StorageController.h Kernel: Add enum values for later implementation of AHCI 2021-03-05 11:29:34 +01:00
StorageDevice.cpp Kernel: Refactor storage stack with u64 as file operations offset 2021-03-17 23:22:42 +01:00
StorageDevice.h Kernel: Refactor storage stack with u64 as file operations offset 2021-03-17 23:22:42 +01:00
StorageManagement.cpp Kernel: Add basic AHCI functionality 2021-03-05 11:29:34 +01:00
StorageManagement.h Kernel: Use global mechanism to determine minor number of Storage Device 2021-03-05 11:29:34 +01:00