Description, Status codes returned – Intel Extensible Firmware Interface User Manual
Page 506

Extensible Firmware Interface Specification
12-88
12/01/02
Version 1.10
Description
The
Attributes()
function performs an operation on the attributes associated with this PCI
controller. If
Operation
is greater than or equal to the maximum operation value, then
EFI_INVALID_PARAMETER
is returned. If
Operation
is
Get
or
Supported
, and
Result
is
NULL
, then
EFI_INVALID_PARAMETER
is returned. If
Operation
is
Set
,
Enable
, or
Disable
for an attribute that is not supported by the PCI controller, then
EFI_UNSUPPORTED
is
returned. Otherwise, the operation is performed as described in “Related Definitions” and
EFI_SUCCESS
is returned. It is possible for this function to return
EFI_UNSUPPORTED
even if
the PCI controller supports the attribute. This can occur when the PCI root bridge does not support
the attribute. For example, if VGA I/O and VGA Memory transactions cannot be forwarded onto
PCI root bridge #2, then a request by a PCI VGA driver to enable the
VGA_IO
and
VGA_MEMORY
bits will fail even though a PCI VGA controller behind PCI root bridge #2 is able to decode these
transactions.
This function will also return
EFI_UNSUPPORTED
if more than one PCI controller on the same
PCI root bridge has already successfully requested one of the ISA addressing attributes. For
example, if one PCI VGA controller had already requested the
VGA_IO
and
VGA_MEMORY
attributes, then a second PCI VGA controller on the same root bridge cannot succeed in requesting
those same attributes. This restriction applies to the ISA-, VGA-, and IDE-related attributes.
Status Codes Returned
EFI_SUCCESS
The operation on the PCI controller’s attributes was completed. If
the operation was
Get
or
Supported
, then the attribute mask
is returned in
Result
.
EFI_INVALID_PARAMETER
Operation
is greater than or equal to
EfiPciIoAttributeOperationMaximum
.
EFI_INVALID_PARAMETER
Operation
is
Get
and
Result
is
NULL
.
EFI_INVALID_PARAMETER
Operation
is
Supported
and
Result
is
NULL
.
EFI_UNSUPPORTED
Operation
is
Set
, and one or more of the bits set in
Attributes
are not supported by this PCI controller or one of
its parent bridges.
EFI_UNSUPPORTED
Operation
is
Enable
, and one or more of the bits set in
Attributes
are not supported by this PCI controller or one of
its parent bridges.
EFI_UNSUPPORTED
Operation
is
Disable
, and one or more of the bits set in
Attributes
are not supported by this PCI controller or one of
its parent bridges.