serenity/Kernel/Storage
Liav A 531037db7e Kernel: Remove support for CHS addressing
An article about IDE limits states that:
"Hard drives over 8.4 GB are supposed to report their geometry as
16383/16/63. This in effect means that the `geometry' is obsolete, and
the total disk size can no longer be computed from the geometry, but is
found in the LBA capacity field returned by the IDENTIFY command.
Hard drives over 137.4 GB are supposed to report an LBA capacity of
0xfffffff = 268435455 sectors (137438952960 bytes). Now the actual disk
size is found in the new 48-capacity field."
(https://tldp.org/HOWTO/Large-Disk-HOWTO-4.html) which is the main
reason to not support CHS as harddrives with less than 8.4 GB capacity
are completely obsolete.

Another good reason is that virtually any harddrive in the last 20 years
or so, supports LBA mode. Therefore, it's probably OK to just ignore CHS
as it's unlikely to encounter a harddrive that doesn't support LBA.

This is somewhat simplifying the IDE initialization and access code.
Also, we should use the ATAIdentifyBlock structure if possible,
so now we do it instead of using macros to calculate offsets.

With the usage of the ATAIdentifyBlock structure, we now use the
48-bit LBA max count if the drive indicates it supports 48-bit LBA mode.
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
IDEChannel.cpp Kernel: Remove support for CHS addressing 2021-03-27 16:40:16 +01:00
IDEChannel.h Kernel: Refactor storage stack with u64 as block index 2021-03-17 23:22:42 +01:00
IDEController.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
IDEController.h Kernel: Untangle StorageController from PCI::DeviceController 2021-01-22 22:17:39 +01:00
PATADiskDevice.cpp Kernel: Refactor storage stack with u64 as number of blocks 2021-03-17 23:22:42 +01:00
PATADiskDevice.h Kernel: Remove support for CHS addressing 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