]> git.proxmox.com Git - mirror_edk2.git/blobdiff - IntelFrameworkPkg/Include/Protocol/IdeControllerInit.h
Update revision reference tag.
[mirror_edk2.git] / IntelFrameworkPkg / Include / Protocol / IdeControllerInit.h
index aef6a2ea269d49100f978f4fbb5341cd50577106..dd6c3f4cca814ccdcf6050fad2e8b1748b557f32 100644 (file)
@@ -1,5 +1,13 @@
 /** @file\r
   This file declares EFI IDE Controller Init Protocol\r
+  The EFI_IDE_CONTROLLER_INIT_PROTOCOL provides the chipset-specific information to\r
+  the IDE bus driver. This protocol is mandatory for IDE controllers if the IDE devices behind the\r
+  controller are to be enumerated by an IDE bus driver.\r
+  There can only be one instance of EFI_IDE_CONTROLLER_INIT_PROTOCOL for each IDE\r
+  controller in a system. It is installed on the handle that corresponds to the IDE controller. An IDE\r
+  bus driver that wishes to manage an IDE bus and possibly IDE devices in a system will have to\r
+  retrieve the EFI_IDE_CONTROLLER_INIT_PROTOCOL instance that is associated with the\r
+  controller to be managed.\r
 \r
   Copyright (c) 2007, Intel Corporation\r
   All rights reserved. This program and the accompanying materials\r
@@ -14,7 +22,7 @@
 \r
   @par Revision Reference:\r
   This Protocol is defined in IDE Controller Initialization Protocol Specification\r
-  Version 0.9\r
+  Version 0.9.\r
 \r
 **/\r
 \r
@@ -170,10 +178,17 @@ typedef struct {
   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_127[39];\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_255[96];\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
 \r
 #pragma pack()\r
@@ -278,7 +293,7 @@ typedef union {
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_IDE_CONTROLLER_GET_CHANNEL_INFO) (\r
+(EFIAPI *EFI_IDE_CONTROLLER_GET_CHANNEL_INFO)(\r
   IN EFI_IDE_CONTROLLER_INIT_PROTOCOL *This,\r
   IN  UINT8                           Channel,\r
   OUT BOOLEAN                         *Enabled,\r
@@ -301,7 +316,7 @@ EFI_STATUS
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_IDE_CONTROLLER_NOTIFY_PHASE) (\r
+(EFIAPI *EFI_IDE_CONTROLLER_NOTIFY_PHASE)(\r
   IN EFI_IDE_CONTROLLER_INIT_PROTOCOL  *This,\r
   IN EFI_IDE_CONTROLLER_ENUM_PHASE     Phase,\r
   IN UINT8                             Channel\r
@@ -322,7 +337,7 @@ EFI_STATUS
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_IDE_CONTROLLER_SUBMIT_DATA) (\r
+(EFIAPI *EFI_IDE_CONTROLLER_SUBMIT_DATA)(\r
   IN EFI_IDE_CONTROLLER_INIT_PROTOCOL *This,\r
   IN  UINT8                           Channel,\r
   IN  UINT8                           Device,\r
@@ -340,12 +355,13 @@ EFI_STATUS
 \r
   @retval EFI_SUCCESS           The modes were accepted without any errors.\r
   @retval EFI_INVALID_PARAMETER Channel is invalid (Channel >= ChannelCount).\r
-                                Or Device is invalid.\r
+                                Or Device is invalid, \r
+                                Or IdentifyData is NULL.\r
 \r
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_IDE_CONTROLLER_DISQUALIFY_MODE) (\r
+(EFIAPI *EFI_IDE_CONTROLLER_DISQUALIFY_MODE)(\r
   IN EFI_IDE_CONTROLLER_INIT_PROTOCOL *This,\r
   IN  UINT8                           Channel,\r
   IN  UINT8                           Device,\r
@@ -368,7 +384,7 @@ EFI_STATUS
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_IDE_CONTROLLER_CALCULATE_MODE) (\r
+(EFIAPI *EFI_IDE_CONTROLLER_CALCULATE_MODE)(\r
   IN EFI_IDE_CONTROLLER_INIT_PROTOCOL *This,\r
   IN  UINT8                           Channel,\r
   IN  UINT8                           Device,\r
@@ -394,7 +410,7 @@ EFI_STATUS
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_IDE_CONTROLLER_SET_TIMING) (\r
+(EFIAPI *EFI_IDE_CONTROLLER_SET_TIMING)(\r
   IN EFI_IDE_CONTROLLER_INIT_PROTOCOL *This,\r
   IN  UINT8                           Channel,\r
   IN  UINT8                           Device,\r