mirror of
https://github.com/acidanthera/audk.git
synced 2025-07-22 21:24:35 +02:00
According to PI errata 0000690, word "Ide Bus driver" has been replaced with "Driver entity".
Signed-off-by: erictian Reviewed-by: lgao4 git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12704 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
80d6c273d4
commit
01e20f0db7
@ -2,12 +2,12 @@
|
|||||||
This file declares EFI IDE Controller Init Protocol
|
This file declares EFI IDE Controller Init Protocol
|
||||||
|
|
||||||
The EFI_IDE_CONTROLLER_INIT_PROTOCOL provides the chipset-specific information
|
The EFI_IDE_CONTROLLER_INIT_PROTOCOL provides the chipset-specific information
|
||||||
to the IDE bus driver. This protocol is mandatory for IDE controllers if the
|
to the driver entity. This protocol is mandatory for IDE controllers if the
|
||||||
IDE devices behind the controller are to be enumerated by an IDE bus driver.
|
IDE devices behind the controller are to be enumerated by a driver entity.
|
||||||
|
|
||||||
There can only be one instance of EFI_IDE_CONTROLLER_INIT_PROTOCOL for each IDE
|
There can only be one instance of EFI_IDE_CONTROLLER_INIT_PROTOCOL for each IDE
|
||||||
controller in a system. It is installed on the handle that corresponds to the
|
controller in a system. It is installed on the handle that corresponds to the
|
||||||
IDE controller. An IDE bus driver that wishes to manage an IDE bus and possibly
|
IDE controller. A driver entity that wishes to manage an IDE bus and possibly
|
||||||
IDE devices in a system will have to retrieve the EFI_IDE_CONTROLLER_INIT_PROTOCOL
|
IDE devices in a system will have to retrieve the EFI_IDE_CONTROLLER_INIT_PROTOCOL
|
||||||
instance that is associated with the controller to be managed.
|
instance that is associated with the controller to be managed.
|
||||||
|
|
||||||
@ -51,38 +51,38 @@ typedef struct _EFI_IDE_CONTROLLER_INIT_PROTOCOL EFI_IDE_CONTROLLER_INIT_PROTOC
|
|||||||
///
|
///
|
||||||
typedef enum {
|
typedef enum {
|
||||||
///
|
///
|
||||||
/// The IDE bus driver is about to begin enumerating the devices
|
/// The driver entity is about to begin enumerating the devices
|
||||||
/// behind the specified channel. This notification can be used to
|
/// behind the specified channel. This notification can be used to
|
||||||
/// perform any chipset-specific programming.
|
/// perform any chipset-specific programming.
|
||||||
///
|
///
|
||||||
EfiIdeBeforeChannelEnumeration,
|
EfiIdeBeforeChannelEnumeration,
|
||||||
///
|
///
|
||||||
/// The IDE bus driver has completed enumerating the devices
|
/// The driver entity has completed enumerating the devices
|
||||||
/// behind the specified channel. This notification can be used to
|
/// behind the specified channel. This notification can be used to
|
||||||
/// perform any chipset-specific programming.
|
/// perform any chipset-specific programming.
|
||||||
///
|
///
|
||||||
EfiIdeAfterChannelEnumeration,
|
EfiIdeAfterChannelEnumeration,
|
||||||
///
|
///
|
||||||
/// The IDE bus driver is about to reset the devices behind the
|
/// The driver entity is about to reset the devices behind the
|
||||||
/// specified channel. This notification can be used to perform any
|
/// specified channel. This notification can be used to perform any
|
||||||
/// chipset-specific programming.
|
/// chipset-specific programming.
|
||||||
///
|
///
|
||||||
EfiIdeBeforeChannelReset,
|
EfiIdeBeforeChannelReset,
|
||||||
///
|
///
|
||||||
/// The IDE bus driver has completed resetting the devices behind
|
/// The driver entity has completed resetting the devices behind
|
||||||
/// the specified channel. This notification can be used to perform
|
/// the specified channel. This notification can be used to perform
|
||||||
/// any chipset-specific programming.
|
/// any chipset-specific programming.
|
||||||
///
|
///
|
||||||
EfiIdeAfterChannelReset,
|
EfiIdeAfterChannelReset,
|
||||||
///
|
///
|
||||||
/// The IDE bus driver is about to detect the presence of devices
|
/// The driver entity is about to detect the presence of devices
|
||||||
/// behind the specified channel. This notification can be used to
|
/// behind the specified channel. This notification can be used to
|
||||||
/// set up the bus signals to default levels or for implementing
|
/// set up the bus signals to default levels or for implementing
|
||||||
/// predelays.
|
/// predelays.
|
||||||
///
|
///
|
||||||
EfiIdeBusBeforeDevicePresenceDetection,
|
EfiIdeBusBeforeDevicePresenceDetection,
|
||||||
///
|
///
|
||||||
/// The IDE bus driver is done with detecting the presence of
|
/// The driver entity is done with detecting the presence of
|
||||||
/// devices behind the specified channel. This notification can be
|
/// devices behind the specified channel. This notification can be
|
||||||
/// used to perform any chipset-specific programming.
|
/// used to perform any chipset-specific programming.
|
||||||
///
|
///
|
||||||
@ -240,9 +240,9 @@ typedef union {
|
|||||||
Returns the information about the specified IDE channel.
|
Returns the information about the specified IDE channel.
|
||||||
|
|
||||||
This function can be used to obtain information about a particular IDE channel.
|
This function can be used to obtain information about a particular IDE channel.
|
||||||
The IDE bus driver uses this information during the enumeration process.
|
The driver entity uses this information during the enumeration process.
|
||||||
|
|
||||||
If Enabled is set to FALSE, the IDE bus driver will not scan the channel. Note
|
If Enabled is set to FALSE, the driver entity will not scan the channel. Note
|
||||||
that it will not prevent an operating system driver from scanning the channel.
|
that it will not prevent an operating system driver from scanning the channel.
|
||||||
|
|
||||||
For most of today's controllers, MaxDevices will either be 1 or 2. For SATA
|
For most of today's controllers, MaxDevices will either be 1 or 2. For SATA
|
||||||
@ -282,7 +282,7 @@ EFI_STATUS
|
|||||||
);
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
The notifications from the IDE bus driver that it is about to enter a certain
|
The notifications from the driver entity that it is about to enter a certain
|
||||||
phase of the IDE channel enumeration process.
|
phase of the IDE channel enumeration process.
|
||||||
|
|
||||||
This function can be used to notify the IDE controller driver to perform
|
This function can be used to notify the IDE controller driver to perform
|
||||||
@ -316,11 +316,11 @@ EFI_STATUS
|
|||||||
/**
|
/**
|
||||||
Submits the device information to the IDE controller driver.
|
Submits the device information to the IDE controller driver.
|
||||||
|
|
||||||
This function is used by the IDE bus driver to pass detailed information about
|
This function is used by the driver entity to pass detailed information about
|
||||||
a particular device to the IDE controller driver. The IDE bus driver obtains
|
a particular device to the IDE controller driver. The driver entity obtains
|
||||||
this information by issuing an ATA or ATAPI IDENTIFY_DEVICE command. IdentifyData
|
this information by issuing an ATA or ATAPI IDENTIFY_DEVICE command. IdentifyData
|
||||||
is the pointer to the response data buffer. The IdentifyData buffer is owned
|
is the pointer to the response data buffer. The IdentifyData buffer is owned
|
||||||
by the IDE bus driver, and the IDE controller driver must make a local copy
|
by the driver entity, and the IDE controller driver must make a local copy
|
||||||
of the entire buffer or parts of the buffer as needed. The original IdentifyData
|
of the entire buffer or parts of the buffer as needed. The original IdentifyData
|
||||||
buffer pointer may not be valid when
|
buffer pointer may not be valid when
|
||||||
|
|
||||||
@ -332,7 +332,7 @@ EFI_STATUS
|
|||||||
timing information. For example, an implementation of the IDE controller driver
|
timing information. For example, an implementation of the IDE controller driver
|
||||||
may examine the vendor and type/mode field to match known bad drives.
|
may examine the vendor and type/mode field to match known bad drives.
|
||||||
|
|
||||||
The IDE bus driver may submit drive information in any order, as long as it
|
The driver entity may submit drive information in any order, as long as it
|
||||||
submits information for all the devices belonging to the enumeration group
|
submits information for all the devices belonging to the enumeration group
|
||||||
before EFI_IDE_CONTROLLER_INIT_PROTOCOL.CalculateMode() is called for any device
|
before EFI_IDE_CONTROLLER_INIT_PROTOCOL.CalculateMode() is called for any device
|
||||||
in that enumeration group. If a device is absent, EFI_IDE_CONTROLLER_INIT_PROTOCOL.SubmitData()
|
in that enumeration group. If a device is absent, EFI_IDE_CONTROLLER_INIT_PROTOCOL.SubmitData()
|
||||||
@ -364,20 +364,20 @@ EFI_STATUS
|
|||||||
/**
|
/**
|
||||||
Disqualifies specific modes for an IDE device.
|
Disqualifies specific modes for an IDE device.
|
||||||
|
|
||||||
This function allows the IDE bus driver or other drivers (such as platform
|
This function allows the driver entity or other drivers (such as platform
|
||||||
drivers) to reject certain timing modes and request the IDE controller driver
|
drivers) to reject certain timing modes and request the IDE controller driver
|
||||||
to recalculate modes. This function allows the IDE bus driver and the IDE
|
to recalculate modes. This function allows the driver entity and the IDE
|
||||||
controller driver to negotiate the timings on a per-device basis. This function
|
controller driver to negotiate the timings on a per-device basis. This function
|
||||||
is useful in the case of drives that lie about their capabilities. An example
|
is useful in the case of drives that lie about their capabilities. An example
|
||||||
is when the IDE device fails to accept the timing modes that are calculated
|
is when the IDE device fails to accept the timing modes that are calculated
|
||||||
by the IDE controller driver based on the response to the Identify Drive command.
|
by the IDE controller driver based on the response to the Identify Drive command.
|
||||||
|
|
||||||
If the IDE bus driver does not want to limit the ATA timing modes and leave that
|
If the driver entity does not want to limit the ATA timing modes and leave that
|
||||||
decision to the IDE controller driver, it can either not call this function for
|
decision to the IDE controller driver, it can either not call this function for
|
||||||
the given device or call this function and set the Valid flag to FALSE for all
|
the given device or call this function and set the Valid flag to FALSE for all
|
||||||
modes that are listed in EFI_ATA_COLLECTIVE_MODE.
|
modes that are listed in EFI_ATA_COLLECTIVE_MODE.
|
||||||
|
|
||||||
The IDE bus driver may disqualify modes for a device in any order and any number
|
The driver entity may disqualify modes for a device in any order and any number
|
||||||
of times.
|
of times.
|
||||||
|
|
||||||
This function can be called multiple times to invalidate multiple modes of the
|
This function can be called multiple times to invalidate multiple modes of the
|
||||||
@ -413,24 +413,24 @@ EFI_STATUS
|
|||||||
/**
|
/**
|
||||||
Returns the information about the optimum modes for the specified IDE device.
|
Returns the information about the optimum modes for the specified IDE device.
|
||||||
|
|
||||||
This function is used by the IDE bus driver to obtain the optimum ATA modes for
|
This function is used by the driver entity to obtain the optimum ATA modes for
|
||||||
a specific device. The IDE controller driver takes into account the following
|
a specific device. The IDE controller driver takes into account the following
|
||||||
while calculating the mode:
|
while calculating the mode:
|
||||||
- The IdentifyData inputs to EFI_IDE_CONTROLLER_INIT_PROTOCOL.SubmitData()
|
- The IdentifyData inputs to EFI_IDE_CONTROLLER_INIT_PROTOCOL.SubmitData()
|
||||||
- The BadModes inputs to EFI_IDE_CONTROLLER_INIT_PROTOCOL.DisqualifyMode()
|
- The BadModes inputs to EFI_IDE_CONTROLLER_INIT_PROTOCOL.DisqualifyMode()
|
||||||
|
|
||||||
The IDE bus driver is required to call EFI_IDE_CONTROLLER_INIT_PROTOCOL.SubmitData()
|
The driver entity is required to call EFI_IDE_CONTROLLER_INIT_PROTOCOL.SubmitData()
|
||||||
for all the devices that belong to an enumeration group before calling
|
for all the devices that belong to an enumeration group before calling
|
||||||
EFI_IDE_CONTROLLER_INIT_PROTOCOL.CalculateMode() for any device in the same group.
|
EFI_IDE_CONTROLLER_INIT_PROTOCOL.CalculateMode() for any device in the same group.
|
||||||
|
|
||||||
The IDE controller driver will use controller- and possibly platform-specific
|
The IDE controller driver will use controller- and possibly platform-specific
|
||||||
algorithms to arrive at SupportedModes. The IDE controller may base its
|
algorithms to arrive at SupportedModes. The IDE controller may base its
|
||||||
decision on user preferences and other considerations as well. This function
|
decision on user preferences and other considerations as well. This function
|
||||||
may be called multiple times because the IDE bus driver may renegotiate the mode
|
may be called multiple times because the driver entity may renegotiate the mode
|
||||||
with the IDE controller driver using EFI_IDE_CONTROLLER_INIT_PROTOCOL.DisqualifyMode().
|
with the IDE controller driver using EFI_IDE_CONTROLLER_INIT_PROTOCOL.DisqualifyMode().
|
||||||
|
|
||||||
The IDE bus driver may collect timing information for various devices in any
|
The driver entity may collect timing information for various devices in any
|
||||||
order. The IDE bus driver is responsible for making sure that all the dependencies
|
order. The driver entity is responsible for making sure that all the dependencies
|
||||||
are satisfied. For example, the SupportedModes information for device A that
|
are satisfied. For example, the SupportedModes information for device A that
|
||||||
was previously returned may become stale after a call to
|
was previously returned may become stale after a call to
|
||||||
EFI_IDE_CONTROLLER_INIT_PROTOCOL.DisqualifyMode() for device B.
|
EFI_IDE_CONTROLLER_INIT_PROTOCOL.DisqualifyMode() for device B.
|
||||||
@ -444,7 +444,7 @@ EFI_STATUS
|
|||||||
The IDE controller driver for a Serial ATA (SATA) controller can use this
|
The IDE controller driver for a Serial ATA (SATA) controller can use this
|
||||||
member function to force a lower speed (first-generation [Gen1] speeds on a
|
member function to force a lower speed (first-generation [Gen1] speeds on a
|
||||||
second-generation [Gen2]-capable hardware). The IDE controller driver can
|
second-generation [Gen2]-capable hardware). The IDE controller driver can
|
||||||
also allow the IDE bus driver to stay with the speed that has been negotiated
|
also allow the driver entity to stay with the speed that has been negotiated
|
||||||
by the physical layer.
|
by the physical layer.
|
||||||
|
|
||||||
@param[in] This The pointer to the EFI_IDE_CONTROLLER_INIT_PROTOCOL instance.
|
@param[in] This The pointer to the EFI_IDE_CONTROLLER_INIT_PROTOCOL instance.
|
||||||
@ -477,7 +477,7 @@ EFI_STATUS
|
|||||||
Commands the IDE controller driver to program the IDE controller hardware
|
Commands the IDE controller driver to program the IDE controller hardware
|
||||||
so that the specified device can operate at the specified mode.
|
so that the specified device can operate at the specified mode.
|
||||||
|
|
||||||
This function is used by the IDE bus driver to instruct the IDE controller
|
This function is used by the driver entity to instruct the IDE controller
|
||||||
driver to program the IDE controller hardware to the specified modes. This
|
driver to program the IDE controller hardware to the specified modes. This
|
||||||
function can be called only once for a particular device. For a Serial ATA
|
function can be called only once for a particular device. For a Serial ATA
|
||||||
(SATA) Advanced Host Controller Interface (AHCI) controller, no controller-
|
(SATA) Advanced Host Controller Interface (AHCI) controller, no controller-
|
||||||
@ -493,7 +493,7 @@ EFI_STATUS
|
|||||||
@retval EFI_INVALID_PARAMETER Device is invalid.
|
@retval EFI_INVALID_PARAMETER Device is invalid.
|
||||||
@retval EFI_NOT_READY Modes cannot be set at this time due to lack of data.
|
@retval EFI_NOT_READY Modes cannot be set at this time due to lack of data.
|
||||||
@retval EFI_DEVICE_ERROR Modes cannot be set due to hardware failure.
|
@retval EFI_DEVICE_ERROR Modes cannot be set due to hardware failure.
|
||||||
The IDE bus driver should not use this device.
|
The driver entity should not use this device.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
typedef
|
typedef
|
||||||
@ -515,7 +515,7 @@ struct _EFI_IDE_CONTROLLER_INIT_PROTOCOL {
|
|||||||
EFI_IDE_CONTROLLER_GET_CHANNEL_INFO GetChannelInfo;
|
EFI_IDE_CONTROLLER_GET_CHANNEL_INFO GetChannelInfo;
|
||||||
|
|
||||||
///
|
///
|
||||||
/// The notification that the IDE bus driver is about to enter the
|
/// The notification that the driver entity is about to enter the
|
||||||
/// specified phase during the enumeration process.
|
/// specified phase during the enumeration process.
|
||||||
///
|
///
|
||||||
EFI_IDE_CONTROLLER_NOTIFY_PHASE NotifyPhase;
|
EFI_IDE_CONTROLLER_NOTIFY_PHASE NotifyPhase;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user