This commit is contained in:
Anatoliy Belyanskiy 2023-08-31 03:52:15 +10:00
parent cc23cc96bb
commit d83a663874

View File

@ -7,27 +7,31 @@
;RemovableMedia bit 7 ;RemovableMedia bit 7
;Retired1 bit 8..14 ;Retired1 bit 8..14
;DeviceType bit 15 ;DeviceType bit 15
GeneralConfiguration WORD ; 0 GeneralConfiguration WORD ; 0 0
NumCylinders WORD ; 1 NumCylinders WORD ; 1 2
SpecificConfiguration WORD ; 2 SpecificConfiguration WORD ; 2 4
NumHeads WORD ; 3 NumHeads WORD ; 3 6
NumUnformattedBytesPerTrack WORD ; 4 NumUnformattedBytesPerTrack WORD ; 4 8
NumUnformattedBytesPerSector WORD ; 5 NumUnformattedBytesPerSector WORD ; 5 10
NumSectorsPerTrack WORD ; 6 NumSectorsPerTrack WORD ; 6 12
VendorUnique7 BLOCK 6 ; 6 VendorUnique7 BLOCK 6 ; 7 14
SerialNumber BLOCK 20 ; 10 SerialNumber BLOCK 20 ; 10 20
BufferType WORD ; 20 BufferType WORD ; 20 40
BufferSizeMul_512 WORD ; 21 BufferSizeMul_512 WORD ; 21 42
Obsolete22 WORD ; 22 Obsolete22 WORD ; 22 44
FirmwareRevision BLOCK 8 ; 23 FirmwareRevision BLOCK 8 ; 23 46
ModelNumber BLOCK 40 ; 27 ModelNumber BLOCK 40 ; 27 54
MaximumBlockTransfer BYTE ; 47 MaximumBlockTransfer BYTE ; 47 94
VendorUnique2 BYTE VendorUnique2 BYTE ; 95
;FeatureSupported bit 0 ;FeatureSupported bit 0
;Reserved bit 1..15 ;Reserved bit 1..15
TrustedComputing WORD ; 48 TrustedComputing WORD ; 48 96
;CurrentLongPhysicalSectorAlignment bit 0..1 ;CurrentLongPhysicalSectorAlignment bit 0..1
;Reserved bit 2..7 ;Reserved bit 2..7
Capabilities_low BYTE ; 49 98
;DMAsupported bit 8 ;DMAsupported bit 8
;LBAsupported bit 9 ;LBAsupported bit 9
;IORDYdisable bit 10 ;IORDYdisable bit 10
@ -36,20 +40,25 @@ TrustedComputing WORD ; 48
;OverlapOperationSupported bit 13 ;OverlapOperationSupported bit 13
;CommandQueuingSupported bit 14 ;CommandQueuingSupported bit 14
;InterleavedDMAsupported bit 15 ;InterleavedDMAsupported bit 15
Capabilities WORD ; 49 Capabilities_high WORD ; 99
Reserved50 WORD ; 50 Reserved50 WORD ; 50 100
ObsoleteWords51 WORD ; 51 102
ObsoleteWords52 WORD ; 52 104
ObsoleteWords51 WORD ; 51
ObsoleteWords52 WORD ; 52
;FieldsInWords54_58Valid bit 0 ;FieldsInWords54_58Valid bit 0
;FieldsInWords64_70Valid bit 1 ;FieldsInWords64_70Valid bit 1
;FieldsInWord88_Valid bit 2 ;FieldsInWord88_Valid bit 2
;Reserved bit 3..15 ;Reserved bit 3..15
TranslationFieldsValid WORD ; 53 TranslationFieldsValid WORD ; 53 106
NumberOfCurrentCylinders WORD ; 54 NumberOfCurrentCylinders_low BYTE ; 54 108
NumberOfCurrentHeads WORD ; 55 NumberOfCurrentCylinders_high BYTE ; 109
CurrentSectorsPerTrack WORD ; 56 NumberOfCurrentHeads_low BYTE ; 55 110
CurrentSectorCapacity DWORD ; 57 NumberOfCurrentHeads_high BYTE ; 111
CurrentSectorsPerTrack_low WORD ; 56 112
CurrentSectorsPerTrack_high WORD ; 113
CurrentSectorCapacity DWORD ; 57 114
;SectorsPerInt bit 0..7 ;SectorsPerInt bit 0..7
;MultiSectorSettingValid bit 8 ;MultiSectorSettingValid bit 8
;Reserved bit 9..11 ;Reserved bit 9..11
@ -57,46 +66,49 @@ CurrentSectorCapacity DWORD ; 57
;CryptoScrambleExtCommandSupported bit 13 ;CryptoScrambleExtCommandSupported bit 13
;OverwriteExtCommandSupported bit 14 ;OverwriteExtCommandSupported bit 14
;BlockEraseExtCommandSupported bit 15 ;BlockEraseExtCommandSupported bit 15
CurrentMultiSectorSetting WORD ; 59 CurrentMultiSectorSetting WORD ; 59 118
UserAddressableSectors DWORD ; 60 UserAddressableSectors DWORD ; 60 120
;TransferModesSupported bit 0..7 ;TransferModesSupported bit 0..7
;TransferModeActive bit 8..15 ;TransferModeActive bit 8..15
SingleWordDMA WORD ; 62 SingleWordDMA WORD ; 62 124
;TransferModesSupported bit 0..7 ;TransferModesSupported bit 0..7
;TransferModeActive bit 8..15 ;TransferModeActive bit 8..15
MultiWordDMA WORD ; 63 MultiWordDMA WORD ; 63 126
AdvancedPIOModes BYTE ; 64 128
ReservedByte129 BYTE ; 129
MinimumMWXferCycleTime WORD ; 65 130
RecommendedMWXferCycleTime WORD ; 66 132
MinimumPIOCycleTime WORD ; 67 134
MinimumPIOCycleTimeIORDY WORD ; 68 136
AdvancedPIOModes BYTE ; 64
ReservedByte129 BYTE
MinimumMWXferCycleTime WORD ; 65
RecommendedMWXferCycleTime WORD ; 66
MinimumPIOCycleTime WORD ; 67
MinimumPIOCycleTimeIORDY WORD ; 68
;ZonedCapabilities bit 0..1 ;ZonedCapabilities bit 0..1
;NonVolatileWriteCache bit 2 ;NonVolatileWriteCache bit 2
;ExtendedUserAddressableSectorsSupported bit 3 ;ExtendedUserAddressableSectors bit 3
;DeviceEncryptsAllUserData bit 4 ;DeviceEncryptsAllUserData bit 4
;ReadZeroAfterTrimSupported bit 5 ;ReadZeroAfterTrim bit 5
;Optional28BitCommandsSupported bit 6 ;Optional28BitCommands bit 6
;IEEE1667 bit 7 ;IEEE1667 bit 7
;DownloadMicrocodeDmaSupported bit 8 AdditionalSupported_low BYTE ; 69 138
;SetMaxSetPasswordUnlockDmaSupported bit 9
;WriteBufferDmaSupported bit 10 ;DownloadMicrocodeDma bit 8
;ReadBufferDmaSupported bit 11 ;SetMaxSetPasswordUnlockDMA bit 9
;DeviceConfigIdentifySetDmaSupported bit 12 ;WriteBufferDMA bit 10
;LPSAERCSupported bit 13 ;ReadBufferDMA bit 11
;DeterministicReadAfterTrimSupported bit 14 ;DeviceConfigIdentifySetDMA bit 12
;CFastSpecSupported bit 15 ;LPSAERC bit 13
AdditionalSupported WORD ; 69 ;DeterministicReadAfterTrim bit 14
ReservedWords70 BLOCK 10 ; 70 ;CFastSpec bit 15
QueueDepth WORD ; 75 AdditionalSupported_high BYTE ; 139
SerialAtaCapabilities DWORD ; 76 ReservedWords70 BLOCK 10 ; 70 140
SerialAtaFeaturesSupported WORD ; 78 QueueDepth WORD ; 75 150
SerialAtaFeaturesEnabled WORD ; 79 SerialAtaCapabilities DWORD ; 76 152
SerialAtaFeaturesSupported WORD ; 78 156
SerialAtaFeaturesEnabled WORD ; 79 158
MajorRevision WORD ; 80 160
MinorRevision WORD ; 81 162
MajorRevision WORD ; 80
MinorRevision WORD ; 81
;SmartCommands bit 0 ;SmartCommands bit 0
;SecurityMode bit 1 ;SecurityMode bit 1
;RemovableMediaFeature bit 2 ;RemovableMediaFeature bit 2
@ -142,7 +154,8 @@ MinorRevision WORD ; 81
;ReservedForTechReport bit 43.44 ;ReservedForTechReport bit 43.44
;IdleWithUnloadFeature bit 45 ;IdleWithUnloadFeature bit 45
;WordValid bit 46..47 ;WordValid bit 46..47
CommandSetSupport BLOCK 6 ; 82 CommandSetSupport BLOCK 6 ; 82 164
;SmartCommands bit 0 ;SmartCommands bit 0
;SecurityMode bit 1 ;SecurityMode bit 1
;RemovableMediaFeature bit 2 ;RemovableMediaFeature bit 2
@ -189,41 +202,44 @@ CommandSetSupport BLOCK 6 ; 82
;ReservedForTechReport bit 43..44 ;ReservedForTechReport bit 43..44
;IdleWithUnloadFeature bit 45 ;IdleWithUnloadFeature bit 45
;Reserved4 bit 46..47 ;Reserved4 bit 46..47
CommandSetActive BLOCK 6 ; 85 CommandSetActive BLOCK 6 ; 85 170
UltraDMASupport BYTE ; 88 176
UltraDMAActive BYTE ; 177
UltraDMASupport BYTE ; 88 ;USHORT TimeRequired : 15
UltraDMAActive BYTE ;USHORT ExtendedTimeReported : 1
; USHORT TimeRequired : 15 NormalSecurityEraseUnit WORD ; 89 178
; USHORT ExtendedTimeReported : 1
NormalSecurityEraseUnit WORD ; 89 ;USHORT TimeRequired : 15
; USHORT TimeRequired : 15 ;USHORT ExtendedTimeReported : 1
; USHORT ExtendedTimeReported : 1 EnhancedSecurityEraseUnit WORD ; 90 180
EnhancedSecurityEraseUnit WORD ; 90
CurrentAPMLevel BYTE ; 91 182
ReservedByte183 BYTE ; 183
MasterPasswordID WORD ; 92 184
HardwareResetResult WORD ; 93 186
CurrentAcousticValue BYTE ; 94 188
RecommendedAcousticValue BYTE ; 189
StreamMinRequestSize WORD ; 95 190
StreamingTransferTimeDMA WORD ; 96 192
StreamingAccessLatencyDMAPIO WORD ; 97 194
StreamingPerfGranularity DWORD ; 98 196
Max48BitLBA BLOCK 8 ; 100 200
StreamingTransferTime WORD ; 104 208
DsmCap WORD ; 105 210
CurrentAPMLevel BYTE ; 91
ReservedByte183 BYTE
MasterPasswordID WORD ; 92
HardwareResetResult WORD ; 93
CurrentAcousticValue BYTE ; 94
RecommendedAcousticValue BYTE
StreamMinRequestSize WORD ; 95
StreamingTransferTimeDMA WORD ; 96
StreamingAccessLatencyDMAPIO WORD ; 97
StreamingPerfGranularity DWORD ; 98
Max48BitLBA BLOCK 8 ; 100
StreamingTransferTime WORD ; 104
DsmCap WORD ; 105
;LogicalSectorsPerPhysicalSector : 4 ;LogicalSectorsPerPhysicalSector : 4
;Reserved0 : 8 ;Reserved0 : 8
;LogicalSectorLongerThan256Words : 1 ;LogicalSectorLongerThan256Words : 1
;MultipleLogicalSectorsPerPhysicalSector : 1 ;MultipleLogicalSectorsPerPhysicalSector : 1
;Reserved1 : 2 ;Reserved1 : 2
PhysicalLogicalSectorSize WORD ; 106 PhysicalLogicalSectorSize WORD ; 106 212
InterSeekDelay WORD ; 107 InterSeekDelay WORD ; 107 214
WorldWideName[4] BLOCK 8 ; 108 WorldWideName[4] BLOCK 8 ; 108 216
ReservedForWorldWideName128[4] BLOCK 8 ; 112 ReservedForWorldWideName128[4] BLOCK 8 ; 112 224
ReservedForTlcTechnicalReport WORD ; 116 ReservedForTlcTechnicalReport WORD ; 116 232
WordsPerLogicalSector[2] DWORD ; 117 WordsPerLogicalSector[2] DWORD ; 117 234
;ReservedForDrqTechnicalReport : 1 ;ReservedForDrqTechnicalReport : 1
;WriteReadVerify : 1 ;WriteReadVerify : 1
;WriteUncorrectableExt : 1 ;WriteUncorrectableExt : 1
@ -234,7 +250,8 @@ WordsPerLogicalSector[2] DWORD ; 117
;ExtendedPowerConditions : 1 ;ExtendedPowerConditions : 1
;Reserved0 : 6 ;Reserved0 : 6
;WordValid : 2 ;WordValid : 2
CommandSetSupportExt WORD ; 119 CommandSetSupportExt WORD ; 119 238
;ReservedForDrqTechnicalReport : 1 ;ReservedForDrqTechnicalReport : 1
;WriteReadVerify : 1 ;WriteReadVerify : 1
;WriteUncorrectableExt : 1 ;WriteUncorrectableExt : 1
@ -245,11 +262,11 @@ CommandSetSupportExt WORD ; 119
;ExtendedPowerConditions : 1 ;ExtendedPowerConditions : 1
;Reserved0 : 6 ;Reserved0 : 6
;Reserved1 : 2 ;Reserved1 : 2
CommandSetActiveExt WORD ; 120 CommandSetActiveExt WORD ; 120 240
Reserved121 BLOCK 12 ; 121 Reserved121 BLOCK 12 ; 121 242
MsnSupport BYTE ; 127 MsnSupport BYTE ; 127 254
ReservedByte255 BYTE ReservedByte255 BYTE ; 255
;SecuritySupported : 1 ;SecuritySupported : 1
;SecurityEnabled : 1 ;SecurityEnabled : 1
@ -260,18 +277,19 @@ ReservedByte255 BYTE
;Reserved0 : 2 ;Reserved0 : 2
;SecurityLevel : 1 ;SecurityLevel : 1
;Reserved1 : 7 ;Reserved1 : 7
SecurityStatus WORD ; 128 SecurityStatus WORD ; 128 256
ReservedBlock129 BLOCK 62 ; 129 258
ReservedBlock129 BLOCK 62 ; 129
;MaximumCurrentInMA : 12 ;MaximumCurrentInMA : 12
;CfaPowerMode1Disabled : 1 ;CfaPowerMode1Disabled : 1
;CfaPowerMode1Required : 1 ;CfaPowerMode1Required : 1
;Reserved0 : 1 ;Reserved0 : 1
;Word160Supported : 1 ;Word160Supported : 1
CfaPowerMode1 WORD ; 160 CfaPowerMode1 WORD ; 160 320
ReservedBlock161 BLOCK 14 ; 161 ReservedBlock161 BLOCK 14 ; 161 322
NominalFormFactor WORD ; 168 NominalFormFactor WORD ; 168 336
struct { struct {