Jesse
ab90d2e251
Kernel: Extended IDE interface to allow slave device usage ( #283 )
...
The IDE Disk Controller driver has been extended to allow the secondary device on the channel to be initialised and used. A test as to whether this is working (for anyone interested) is to modify `init.cpp:87` to `auto dev_hd0 = IDEDiskDevice::create(IdeDiskDevice::DeviceType::SLAVE);`. The kernel will fail to boot, as there is no disk attached to CHANNEL 1's slave. This was born out of the fact that my FAT driver can't be tested as easily without creating a partition on `hda`.
2019-07-08 08:16:52 +02:00
Andreas Kling
27f699ef0c
AK: Rename the common integer typedefs to make it obvious what they are.
...
These types can be picked up by including <AK/Types.h>:
* u8, u16, u32, u64 (unsigned)
* i8, i16, i32, i64 (signed)
2019-07-03 21:20:13 +02:00
Andreas Kling
90b1354688
AK: Rename RetainPtr => RefPtr and Retained => NonnullRefPtr.
2019-06-21 18:37:47 +02:00
Andreas Kling
bc951ca565
Kernel: Run clang-format on everything.
2019-06-07 11:43:58 +02:00
Andreas Kling
bb288c1baf
IDEDiskDevice: Implement basic DMA writes.
...
This could share more code with reads, and generally be better. But it works
and it's considerably faster than PIO, so let's use it. :^)
2019-05-26 14:58:21 +02:00
Andreas Kling
ebf645d72a
Kernel: Tidy up IDEDiskDevice a bit.
...
The main cleanup here is putting the I/O address base in a member variable.
2019-05-24 04:17:15 +02:00
Andreas Kling
5f26f83451
IDEDiskDevice: Add sysctl variable for turning DMA on/off.
2019-05-19 15:54:33 +02:00
Andreas Kling
c7d8aa6969
IDEDiskDevice: Support reading multiple sectors at a time with DMA.
...
This is another sizable improvement to GCC compile times.
2019-05-19 04:40:30 +02:00
Andreas Kling
ed79116e94
IDEDiskDevice: Use wait_for_irq() when waiting for DMA transfers.
...
Also make sure we return any device errors to caller.
2019-05-19 03:56:06 +02:00
Andreas Kling
c818773983
IDEDiskDevice: Add support for DMA reads.
...
I've only tested this with the PIIX3 chipset QEMU emulates, but it works
pretty well here. GCC compile times are cut roughly in half :^)
2019-05-19 03:46:50 +02:00
Andreas Kling
c3b7ace3e0
Kernel: Assign Lock names in class member initializers.
2019-05-02 03:28:20 +02:00
Andreas Kling
243e1d8462
Kernel: Use rep insw/outsw for IDE transfers.
...
There are much faster ways to do disk transfers, but I'm not implementing
those today. In the meantime, this is slightly nicer. :^)
2019-04-23 03:45:55 +02:00
Andreas Kling
37498c1566
Kernel: Send IDE flush command after writing sectors.
2019-04-23 03:16:47 +02:00
Andreas Kling
11e7ce60e5
Kernel: Use IDE LBA addressing instead of the long-obsolete C/H/S.
2019-04-23 02:26:51 +02:00
Andreas Kling
a58d7fd8bb
Kernel: Get rid of Kernel/types.h, separate LinearAddress/PhysicalAddress.
2019-04-06 14:29:29 +02:00
Andreas Kling
ab43658c55
Kernel: Move devices into Kernel/Devices/.
2019-04-03 12:36:40 +02:00