mirror of
https://github.com/SerenityOS/serenity.git
synced 2025-01-24 02:12:09 -05:00
531037db7e
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. |
||
---|---|---|
.. | ||
Partition | ||
AHCI.h | ||
AHCIController.cpp | ||
AHCIController.h | ||
AHCIPort.cpp | ||
AHCIPort.h | ||
AHCIPortHandler.cpp | ||
AHCIPortHandler.h | ||
ATA.h | ||
IDEChannel.cpp | ||
IDEChannel.h | ||
IDEController.cpp | ||
IDEController.h | ||
PATADiskDevice.cpp | ||
PATADiskDevice.h | ||
RamdiskController.cpp | ||
RamdiskController.h | ||
RamdiskDevice.cpp | ||
RamdiskDevice.h | ||
SATADiskDevice.cpp | ||
SATADiskDevice.h | ||
StorageController.h | ||
StorageDevice.cpp | ||
StorageDevice.h | ||
StorageManagement.cpp | ||
StorageManagement.h |