-/// This structure definition is not part of the protocol\r
-/// definition because the ATA/ATAPI Specification controls\r
-/// the definition of all the fields. The ATA/ATAPI\r
-/// Specification can obsolete old fields or redefine existing\r
-/// fields. This definition is provided here for reference only.\r
-///\r
-#pragma pack(1)\r
-typedef struct {\r
- UINT16 config; ///< General Configuration\r
- UINT16 cylinders; ///< Number of Cylinders\r
- UINT16 reserved_2;\r
- UINT16 heads; ///< Number of logical heads\r
- UINT16 vendor_data1;\r
- UINT16 vendor_data2;\r
- UINT16 sectors_per_track;\r
- UINT16 vendor_specific_7_9[3];\r
- CHAR8 SerialNo[20]; ///< ASCII\r
- UINT16 vendor_specific_20_21[2];\r
- UINT16 ecc_bytes_available;\r
- CHAR8 FirmwareVer[8]; ///< ASCII\r
- CHAR8 ModelName[40]; ///< ASCII\r
- UINT16 multi_sector_cmd_max_sct_cnt;\r
- UINT16 reserved_48;\r
- UINT16 capabilities;\r
- UINT16 reserved_50;\r
- UINT16 pio_cycle_timing;\r
- UINT16 reserved_52;\r
- UINT16 field_validity;\r
- UINT16 current_cylinders;\r
- UINT16 current_heads;\r
- UINT16 current_sectors;\r
- UINT16 CurrentCapacityLsb;\r
- UINT16 CurrentCapacityMsb;\r
- UINT16 reserved_59;\r
- UINT16 user_addressable_sectors_lo;\r
- UINT16 user_addressable_sectors_hi;\r
- UINT16 reserved_62;\r
- UINT16 multi_word_dma_mode;\r
- UINT16 advanced_pio_modes;\r
- UINT16 min_multi_word_dma_cycle_time;\r
- UINT16 rec_multi_word_dma_cycle_time;\r
- UINT16 min_pio_cycle_time_without_flow_control;\r
- UINT16 min_pio_cycle_time_with_flow_control;\r
- UINT16 reserved_69_79[11];\r
- UINT16 major_version_no;\r
- UINT16 minor_version_no;\r
- UINT16 command_set_supported_82; ///< word 82\r
- UINT16 command_set_supported_83; ///< word 83\r
- UINT16 command_set_feature_extn; ///< word 84\r
- UINT16 command_set_feature_enb_85; ///< word 85\r
- UINT16 command_set_feature_enb_86; ///< word 86\r
- UINT16 command_set_feature_default; ///< word 87\r
- UINT16 ultra_dma_mode; ///< word 88\r
- UINT16 reserved_89_105[17];\r
- UINT16 phy_logic_sector_support; ///< word 106\r
- UINT16 reserved_107_116[10];\r
- UINT16 logic_sector_size_lo; ///< word 117\r
- UINT16 logic_sector_size_hi; ///< word 118\r
- UINT16 reserved_119_127[9];\r
- UINT16 security_status;\r
- UINT16 vendor_data_129_159[31];\r
- UINT16 reserved_160_208[49];\r
- UINT16 alignment_logic_in_phy_blocks; ///< word 209\r
- UINT16 reserved_210_255[46];\r
-} EFI_ATA_IDENTIFY_DATA;\r
-#pragma pack()\r
-\r
-///\r
-/// EFI_ATAPI_IDENTIFY_DATA structure\r
-///\r
-/// This structure definition is not part of the protocol\r
-/// definition because the ATA/ATAPI Specification controls\r
-/// the definition of all the fields. The ATA/ATAPI\r
-/// Specification can obsolete old fields or redefine existing\r
-/// fields. This definition is provided here for reference only.\r
-///\r
-#pragma pack(1)\r
-typedef struct {\r
- UINT16 config; ///< General Configuration\r
- UINT16 obsolete_1;\r
- UINT16 specific_config;\r
- UINT16 obsolete_3;\r
- UINT16 retired_4_5[2];\r
- UINT16 obsolete_6;\r
- UINT16 cfa_reserved_7_8[2];\r
- UINT16 retired_9;\r
- CHAR8 SerialNo[20]; ///< ASCII\r
- UINT16 retired_20_21[2];\r
- UINT16 obsolete_22;\r
- CHAR8 FirmwareVer[8]; ///< ASCII\r
- CHAR8 ModelName[40]; ///< ASCII\r
- UINT16 multi_sector_cmd_max_sct_cnt;\r
- UINT16 reserved_48;\r
- UINT16 capabilities_49;\r
- UINT16 capabilities_50;\r
- UINT16 obsolete_51_52[2];\r
- UINT16 field_validity;\r
- UINT16 obsolete_54_58[5];\r
- UINT16 mutil_sector_setting;\r
- UINT16 user_addressable_sectors_lo;\r
- UINT16 user_addressable_sectors_hi;\r
- UINT16 obsolete_62;\r
- UINT16 multi_word_dma_mode;\r
- UINT16 advanced_pio_modes;\r
- UINT16 min_multi_word_dma_cycle_time;\r
- UINT16 rec_multi_word_dma_cycle_time;\r
- UINT16 min_pio_cycle_time_without_flow_control;\r
- UINT16 min_pio_cycle_time_with_flow_control;\r
- UINT16 reserved_69_74[6];\r
- UINT16 queue_depth;\r
- UINT16 reserved_76_79[4];\r
- UINT16 major_version_no;\r
- UINT16 minor_version_no;\r
- UINT16 cmd_set_support_82;\r
- UINT16 cmd_set_support_83;\r
- UINT16 cmd_feature_support;\r
- UINT16 cmd_feature_enable_85;\r
- UINT16 cmd_feature_enable_86;\r
- UINT16 cmd_feature_default;\r
- UINT16 ultra_dma_select;\r
- UINT16 time_required_for_sec_erase;\r
- UINT16 time_required_for_enhanced_sec_erase;\r
- UINT16 current_advanced_power_mgmt_value;\r
- UINT16 master_pwd_revison_code;\r
- UINT16 hardware_reset_result;\r
- UINT16 current_auto_acoustic_mgmt_value;\r
- UINT16 reserved_95_99[5];\r
- UINT16 max_user_lba_for_48bit_addr[4];\r
- UINT16 reserved_104_126[23];\r
- UINT16 removable_media_status_notification_support;\r
- UINT16 security_status;\r
- UINT16 vendor_data_129_159[31];\r
- UINT16 cfa_power_mode;\r
- UINT16 cfa_reserved_161_175[15];\r
- UINT16 current_media_serial_no[30];\r
- UINT16 reserved_206_254[49];\r
- UINT16 integrity_word;\r
-} EFI_ATAPI_IDENTIFY_DATA;\r
-#pragma pack()\r