MdeModulePkg/NonDiscoverablePciDeviceDxe: Add comments for functions
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org> Cc: Ruiyu Ni <ruiyu.ni@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Dandan Bi <dandan.bi@intel.com> Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com>
This commit is contained in:
@ -30,6 +30,27 @@ EFI_UNICODE_STRING_TABLE mDriverNameTable[] = {
|
|||||||
|
|
||||||
EFI_COMPONENT_NAME_PROTOCOL gComponentName;
|
EFI_COMPONENT_NAME_PROTOCOL gComponentName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Retrieves a Unicode string that is the user readable name of the UEFI Driver.
|
||||||
|
|
||||||
|
@param This A pointer to the EFI_COMPONENT_NAME_PROTOCOL instance.
|
||||||
|
@param Language A pointer to a three character ISO 639-2 language identifier.
|
||||||
|
This is the language of the driver name that that the caller
|
||||||
|
is requesting, and it must match one of the languages specified
|
||||||
|
in SupportedLanguages. The number of languages supported by a
|
||||||
|
driver is up to the driver writer.
|
||||||
|
@param DriverName A pointer to the Unicode string to return. This Unicode string
|
||||||
|
is the name of the driver specified by This in the language
|
||||||
|
specified by Language.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The Unicode string for the Driver specified by This
|
||||||
|
and the language specified by Language was returned
|
||||||
|
in DriverName.
|
||||||
|
@retval EFI_INVALID_PARAMETER Language is NULL.
|
||||||
|
@retval EFI_INVALID_PARAMETER DriverName is NULL.
|
||||||
|
@retval EFI_UNSUPPORTED The driver specified by This does not support the
|
||||||
|
language specified by Language.
|
||||||
|
**/
|
||||||
STATIC
|
STATIC
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
@ -48,6 +69,32 @@ NonDiscoverablePciGetDriverName (
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Retrieves a Unicode string that is the user readable name of the controller
|
||||||
|
that is being managed by an UEFI Driver.
|
||||||
|
|
||||||
|
@param This A pointer to the EFI_COMPONENT_NAME_PROTOCOL instance.
|
||||||
|
@param DeviceHandle The handle of a controller that the driver specified by
|
||||||
|
This is managing. This handle specifies the controller
|
||||||
|
whose name is to be returned.
|
||||||
|
@param ChildHandle The handle of the child controller to retrieve the name
|
||||||
|
of. This is an optional parameter that may be NULL. It
|
||||||
|
will be NULL for device drivers. It will also be NULL
|
||||||
|
for a bus drivers that wish to retrieve the name of the
|
||||||
|
bus controller. It will not be NULL for a bus driver
|
||||||
|
that wishes to retrieve the name of a child controller.
|
||||||
|
@param Language A pointer to a three character ISO 639-2 language
|
||||||
|
identifier. This is the language of the controller name
|
||||||
|
that that the caller is requesting, and it must match one
|
||||||
|
of the languages specified in SupportedLanguages. The
|
||||||
|
number of languages supported by a driver is up to the
|
||||||
|
driver writer.
|
||||||
|
@param ControllerName A pointer to the Unicode string to return. This Unicode
|
||||||
|
string is the name of the controller specified by
|
||||||
|
ControllerHandle and ChildHandle in the language
|
||||||
|
specified by Language from the point of view of the
|
||||||
|
driver specified by This.
|
||||||
|
**/
|
||||||
STATIC
|
STATIC
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
|
@ -49,6 +49,19 @@ SupportedNonDiscoverableDevices [] = {
|
|||||||
// - 6.3 Protocol Handler Services
|
// - 6.3 Protocol Handler Services
|
||||||
//
|
//
|
||||||
|
|
||||||
|
/**
|
||||||
|
Supported function of Driver Binding protocol for this driver.
|
||||||
|
Test to see if this driver supports ControllerHandle.
|
||||||
|
|
||||||
|
@param This Protocol instance pointer.
|
||||||
|
@param DeviceHandle Handle of device to test.
|
||||||
|
@param RemainingDevicePath A pointer to the device path.
|
||||||
|
it should be ignored by device driver.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS This driver supports this device.
|
||||||
|
@retval other This driver does not support this device.
|
||||||
|
|
||||||
|
**/
|
||||||
STATIC
|
STATIC
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
@ -103,6 +116,19 @@ CloseProtocol:
|
|||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
This routine is called right after the .Supported() called and
|
||||||
|
Start this driver on ControllerHandle.
|
||||||
|
|
||||||
|
@param This Protocol instance pointer.
|
||||||
|
@param DeviceHandle Handle of device to bind driver to.
|
||||||
|
@param RemainingDevicePath A pointer to the device path.
|
||||||
|
it should be ignored by device driver.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS This driver is added to this device.
|
||||||
|
@retval other Some error occurs when binding this driver to this device.
|
||||||
|
|
||||||
|
**/
|
||||||
STATIC
|
STATIC
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
@ -153,7 +179,18 @@ FreeDev:
|
|||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Stop this driver on ControllerHandle.
|
||||||
|
|
||||||
|
@param This Protocol instance pointer.
|
||||||
|
@param DeviceHandle Handle of device to stop driver on.
|
||||||
|
@param NumberOfChildren Not used.
|
||||||
|
@param ChildHandleBuffer Not used.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS This driver is removed from this device.
|
||||||
|
@retval other Some error occurs when removing this driver from this device.
|
||||||
|
|
||||||
|
**/
|
||||||
STATIC
|
STATIC
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
@ -209,9 +246,16 @@ STATIC EFI_DRIVER_BINDING_PROTOCOL gDriverBinding = {
|
|||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
//
|
/**
|
||||||
// Entry point of this driver.
|
Entry point of this driver.
|
||||||
//
|
|
||||||
|
@param ImageHandle Image handle this driver.
|
||||||
|
@param SystemTable Pointer to the System Table.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The entry point is executed successfully.
|
||||||
|
@retval other Some error occurred when executing this entry point.
|
||||||
|
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
NonDiscoverablePciDeviceDxeEntryPoint (
|
NonDiscoverablePciDeviceDxeEntryPoint (
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
## @file
|
## @file
|
||||||
|
# PCI I/O driver for non-discoverable devices.
|
||||||
|
#
|
||||||
# Copyright (C) 2016, Linaro Ltd.
|
# Copyright (C) 2016, Linaro Ltd.
|
||||||
#
|
#
|
||||||
# This program and the accompanying materials are licensed and made available
|
# This program and the accompanying materials are licensed and made available
|
||||||
@ -44,11 +46,11 @@
|
|||||||
gEfiCpuArchProtocolGuid ## CONSUMES
|
gEfiCpuArchProtocolGuid ## CONSUMES
|
||||||
|
|
||||||
[Guids]
|
[Guids]
|
||||||
gEdkiiNonDiscoverableAhciDeviceGuid
|
gEdkiiNonDiscoverableAhciDeviceGuid ## CONSUMES ## GUID
|
||||||
gEdkiiNonDiscoverableEhciDeviceGuid
|
gEdkiiNonDiscoverableEhciDeviceGuid ## CONSUMES ## GUID
|
||||||
gEdkiiNonDiscoverableNvmeDeviceGuid
|
gEdkiiNonDiscoverableNvmeDeviceGuid ## CONSUMES ## GUID
|
||||||
gEdkiiNonDiscoverableOhciDeviceGuid
|
gEdkiiNonDiscoverableOhciDeviceGuid ## CONSUMES ## GUID
|
||||||
gEdkiiNonDiscoverableSdhciDeviceGuid
|
gEdkiiNonDiscoverableSdhciDeviceGuid ## CONSUMES ## GUID
|
||||||
gEdkiiNonDiscoverableUfsDeviceGuid
|
gEdkiiNonDiscoverableUfsDeviceGuid ## CONSUMES ## GUID
|
||||||
gEdkiiNonDiscoverableUhciDeviceGuid
|
gEdkiiNonDiscoverableUhciDeviceGuid ## CONSUMES ## GUID
|
||||||
gEdkiiNonDiscoverableXhciDeviceGuid
|
gEdkiiNonDiscoverableXhciDeviceGuid ## CONSUMES ## GUID
|
||||||
|
@ -28,9 +28,14 @@ typedef struct {
|
|||||||
UINTN NumberOfBytes;
|
UINTN NumberOfBytes;
|
||||||
} NON_DISCOVERABLE_PCI_DEVICE_MAP_INFO;
|
} NON_DISCOVERABLE_PCI_DEVICE_MAP_INFO;
|
||||||
|
|
||||||
//
|
/**
|
||||||
// Get the resource associated with BAR number 'BarIndex'.
|
Get the resource associated with BAR number 'BarIndex'.
|
||||||
//
|
|
||||||
|
@param Dev Point to the NON_DISCOVERABLE_PCI_DEVICE instance.
|
||||||
|
@param BarIndex The BAR index of the standard PCI Configuration header to use as the
|
||||||
|
base address for the memory operation to perform.
|
||||||
|
@param Descriptor Points to the address space descriptor
|
||||||
|
**/
|
||||||
STATIC
|
STATIC
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
GetBarResource (
|
GetBarResource (
|
||||||
@ -61,6 +66,21 @@ GetBarResource (
|
|||||||
return EFI_NOT_FOUND;
|
return EFI_NOT_FOUND;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Reads from the memory space of a PCI controller. Returns either when the polling exit criteria is
|
||||||
|
satisfied or after a defined duration.
|
||||||
|
|
||||||
|
@param This A pointer to the EFI_PCI_IO_PROTOCOL instance.
|
||||||
|
@param Width Signifies the width of the memory or I/O operations.
|
||||||
|
@param BarIndex The BAR index of the standard PCI Configuration header to use as the
|
||||||
|
base address for the memory operation to perform.
|
||||||
|
@param Offset The offset within the selected BAR to start the memory operation.
|
||||||
|
@param Mask Mask used for the polling criteria.
|
||||||
|
@param Value The comparison value used for the polling exit criteria.
|
||||||
|
@param Delay The number of 100 ns units to poll.
|
||||||
|
@param Result Pointer to the last value read from the memory location.
|
||||||
|
|
||||||
|
**/
|
||||||
STATIC
|
STATIC
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
@ -79,6 +99,21 @@ PciIoPollMem (
|
|||||||
return EFI_UNSUPPORTED;
|
return EFI_UNSUPPORTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Reads from the memory space of a PCI controller. Returns either when the polling exit criteria is
|
||||||
|
satisfied or after a defined duration.
|
||||||
|
|
||||||
|
@param This A pointer to the EFI_PCI_IO_PROTOCOL instance.
|
||||||
|
@param Width Signifies the width of the memory or I/O operations.
|
||||||
|
@param BarIndex The BAR index of the standard PCI Configuration header to use as the
|
||||||
|
base address for the memory operation to perform.
|
||||||
|
@param Offset The offset within the selected BAR to start the memory operation.
|
||||||
|
@param Mask Mask used for the polling criteria.
|
||||||
|
@param Value The comparison value used for the polling exit criteria.
|
||||||
|
@param Delay The number of 100 ns units to poll.
|
||||||
|
@param Result Pointer to the last value read from the memory location.
|
||||||
|
|
||||||
|
**/
|
||||||
STATIC
|
STATIC
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
@ -97,6 +132,22 @@ PciIoPollIo (
|
|||||||
return EFI_UNSUPPORTED;
|
return EFI_UNSUPPORTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Enable a PCI driver to access PCI controller registers in the PCI memory or I/O space.
|
||||||
|
|
||||||
|
@param Width Signifies the width of the memory or I/O operations.
|
||||||
|
@param Count The number of memory or I/O operations to perform.
|
||||||
|
@param DstStride The stride of the destination buffer.
|
||||||
|
@param Dst For read operations, the destination buffer to store the results. For write
|
||||||
|
operations, the destination buffer to write data to.
|
||||||
|
@param SrcStride The stride of the source buffer.
|
||||||
|
@param Src For read operations, the source buffer to read data from. For write
|
||||||
|
operations, the source buffer to write data from.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The data was read from or written to the PCI controller.
|
||||||
|
@retval EFI_INVALID_PARAMETER One or more parameters are invalid.
|
||||||
|
|
||||||
|
**/
|
||||||
STATIC
|
STATIC
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
@ -148,6 +199,26 @@ PciIoMemRW (
|
|||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Enable a PCI driver to access PCI controller registers in the PCI memory or I/O space.
|
||||||
|
|
||||||
|
@param This A pointer to the EFI_PCI_IO_PROTOCOL instance.
|
||||||
|
@param Width Signifies the width of the memory or I/O operations.
|
||||||
|
@param BarIndex The BAR index of the standard PCI Configuration header to use as the
|
||||||
|
base address for the memory or I/O operation to perform.
|
||||||
|
@param Offset The offset within the selected BAR to start the memory or I/O operation.
|
||||||
|
@param Count The number of memory or I/O operations to perform.
|
||||||
|
@param Buffer For read operations, the destination buffer to store the results. For write
|
||||||
|
operations, the source buffer to write data from.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The data was read from or written to the PCI controller.
|
||||||
|
@retval EFI_UNSUPPORTED BarIndex not valid for this PCI controller.
|
||||||
|
@retval EFI_UNSUPPORTED The address range specified by Offset, Width, and Count is not
|
||||||
|
valid for the PCI BAR specified by BarIndex.
|
||||||
|
@retval EFI_OUT_OF_RESOURCES The request could not be completed due to a lack of resources.
|
||||||
|
@retval EFI_INVALID_PARAMETER One or more parameters are invalid.
|
||||||
|
|
||||||
|
**/
|
||||||
STATIC
|
STATIC
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
@ -215,6 +286,26 @@ PciIoMemRead (
|
|||||||
return EFI_INVALID_PARAMETER;
|
return EFI_INVALID_PARAMETER;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Enable a PCI driver to access PCI controller registers in the PCI memory or I/O space.
|
||||||
|
|
||||||
|
@param This A pointer to the EFI_PCI_IO_PROTOCOL instance.
|
||||||
|
@param Width Signifies the width of the memory or I/O operations.
|
||||||
|
@param BarIndex The BAR index of the standard PCI Configuration header to use as the
|
||||||
|
base address for the memory or I/O operation to perform.
|
||||||
|
@param Offset The offset within the selected BAR to start the memory or I/O operation.
|
||||||
|
@param Count The number of memory or I/O operations to perform.
|
||||||
|
@param Buffer For read operations, the destination buffer to store the results. For write
|
||||||
|
operations, the source buffer to write data from.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The data was read from or written to the PCI controller.
|
||||||
|
@retval EFI_UNSUPPORTED BarIndex not valid for this PCI controller.
|
||||||
|
@retval EFI_UNSUPPORTED The address range specified by Offset, Width, and Count is not
|
||||||
|
valid for the PCI BAR specified by BarIndex.
|
||||||
|
@retval EFI_OUT_OF_RESOURCES The request could not be completed due to a lack of resources.
|
||||||
|
@retval EFI_INVALID_PARAMETER One or more parameters are invalid.
|
||||||
|
|
||||||
|
**/
|
||||||
STATIC
|
STATIC
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
@ -282,6 +373,19 @@ PciIoMemWrite (
|
|||||||
return EFI_INVALID_PARAMETER;
|
return EFI_INVALID_PARAMETER;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Enable a PCI driver to access PCI controller registers in the PCI memory or I/O space.
|
||||||
|
|
||||||
|
@param This A pointer to the EFI_PCI_IO_PROTOCOL instance.
|
||||||
|
@param Width Signifies the width of the memory or I/O operations.
|
||||||
|
@param BarIndex The BAR index of the standard PCI Configuration header to use as the
|
||||||
|
base address for the memory or I/O operation to perform.
|
||||||
|
@param Offset The offset within the selected BAR to start the memory or I/O operation.
|
||||||
|
@param Count The number of memory or I/O operations to perform.
|
||||||
|
@param Buffer For read operations, the destination buffer to store the results. For write
|
||||||
|
operations, the source buffer to write data from.
|
||||||
|
|
||||||
|
**/
|
||||||
STATIC
|
STATIC
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
@ -298,6 +402,19 @@ PciIoIoRead (
|
|||||||
return EFI_UNSUPPORTED;
|
return EFI_UNSUPPORTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Enable a PCI driver to access PCI controller registers in the PCI memory or I/O space.
|
||||||
|
|
||||||
|
@param This A pointer to the EFI_PCI_IO_PROTOCOL instance.
|
||||||
|
@param Width Signifies the width of the memory or I/O operations.
|
||||||
|
@param BarIndex The BAR index of the standard PCI Configuration header to use as the
|
||||||
|
base address for the memory or I/O operation to perform.
|
||||||
|
@param Offset The offset within the selected BAR to start the memory or I/O operation.
|
||||||
|
@param Count The number of memory or I/O operations to perform.
|
||||||
|
@param Buffer For read operations, the destination buffer to store the results. For write
|
||||||
|
operations, the source buffer to write data from.
|
||||||
|
|
||||||
|
**/
|
||||||
STATIC
|
STATIC
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
@ -314,6 +431,17 @@ PciIoIoWrite (
|
|||||||
return EFI_UNSUPPORTED;
|
return EFI_UNSUPPORTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Enable a PCI driver to access PCI config space.
|
||||||
|
|
||||||
|
@param This A pointer to the EFI_PCI_IO_PROTOCOL instance.
|
||||||
|
@param Width Signifies the width of the memory or I/O operations.
|
||||||
|
@param Offset The offset within the selected BAR to start the memory or I/O operation.
|
||||||
|
@param Count The number of memory or I/O operations to perform.
|
||||||
|
@param Buffer For read operations, the destination buffer to store the results. For write
|
||||||
|
operations, the source buffer to write data from.
|
||||||
|
|
||||||
|
**/
|
||||||
STATIC
|
STATIC
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
@ -350,6 +478,22 @@ PciIoPciRead (
|
|||||||
return PciIoMemRW (Width, Count, 1, Buffer, 1, Address);
|
return PciIoMemRW (Width, Count, 1, Buffer, 1, Address);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Enable a PCI driver to access PCI config space.
|
||||||
|
|
||||||
|
@param This A pointer to the EFI_PCI_IO_PROTOCOL instance.
|
||||||
|
@param Width Signifies the width of the memory or I/O operations.
|
||||||
|
@param Offset The offset within the selected BAR to start the memory or I/O operation.
|
||||||
|
@param Count The number of memory or I/O operations to perform.
|
||||||
|
@param Buffer For read operations, the destination buffer to store the results. For write
|
||||||
|
operations, the source buffer to write data from
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The data was read from or written to the PCI controller.
|
||||||
|
@retval EFI_UNSUPPORTED The address range specified by Offset, Width, and Count is not
|
||||||
|
valid for the PCI BAR specified by BarIndex.
|
||||||
|
@retval EFI_INVALID_PARAMETER One or more parameters are invalid.
|
||||||
|
|
||||||
|
**/
|
||||||
STATIC
|
STATIC
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
@ -378,6 +522,24 @@ PciIoPciWrite (
|
|||||||
return PciIoMemRW (Width, Count, 1, Address, 1, Buffer);
|
return PciIoMemRW (Width, Count, 1, Address, 1, Buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Enables a PCI driver to copy one region of PCI memory space to another region of PCI
|
||||||
|
memory space.
|
||||||
|
|
||||||
|
@param This A pointer to the EFI_PCI_IO_PROTOCOL instance.
|
||||||
|
@param Width Signifies the width of the memory operations.
|
||||||
|
@param DestBarIndex The BAR index in the standard PCI Configuration header to use as the
|
||||||
|
base address for the memory operation to perform.
|
||||||
|
@param DestOffset The destination offset within the BAR specified by DestBarIndex to
|
||||||
|
start the memory writes for the copy operation.
|
||||||
|
@param SrcBarIndex The BAR index in the standard PCI Configuration header to use as the
|
||||||
|
base address for the memory operation to perform.
|
||||||
|
@param SrcOffset The source offset within the BAR specified by SrcBarIndex to start
|
||||||
|
the memory reads for the copy operation.
|
||||||
|
@param Count The number of memory operations to perform. Bytes moved is Width
|
||||||
|
size * Count, starting at DestOffset and SrcOffset.
|
||||||
|
|
||||||
|
**/
|
||||||
STATIC
|
STATIC
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
@ -395,6 +557,25 @@ PciIoCopyMem (
|
|||||||
return EFI_UNSUPPORTED;
|
return EFI_UNSUPPORTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Provides the PCI controller-specific addresses needed to access system memory.
|
||||||
|
|
||||||
|
@param This A pointer to the EFI_PCI_IO_PROTOCOL instance.
|
||||||
|
@param Operation Indicates if the bus master is going to read or write to system memory.
|
||||||
|
@param HostAddress The system memory address to map to the PCI controller.
|
||||||
|
@param NumberOfBytes On input the number of bytes to map. On output the number of bytes
|
||||||
|
that were mapped.
|
||||||
|
@param DeviceAddress The resulting map address for the bus master PCI controller to use to
|
||||||
|
access the hosts HostAddress.
|
||||||
|
@param Mapping A resulting value to pass to Unmap().
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The range was mapped for the returned NumberOfBytes.
|
||||||
|
@retval EFI_UNSUPPORTED The HostAddress cannot be mapped as a common buffer.
|
||||||
|
@retval EFI_INVALID_PARAMETER One or more parameters are invalid.
|
||||||
|
@retval EFI_OUT_OF_RESOURCES The request could not be completed due to a lack of resources.
|
||||||
|
@retval EFI_DEVICE_ERROR The system hardware could not map the requested address.
|
||||||
|
|
||||||
|
**/
|
||||||
STATIC
|
STATIC
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
@ -461,6 +642,15 @@ CoherentPciIoMap (
|
|||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Completes the Map() operation and releases any corresponding resources.
|
||||||
|
|
||||||
|
@param This A pointer to the EFI_PCI_IO_PROTOCOL instance.
|
||||||
|
@param Mapping The mapping value returned from Map().
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The range was unmapped.
|
||||||
|
|
||||||
|
**/
|
||||||
STATIC
|
STATIC
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
@ -484,6 +674,25 @@ CoherentPciIoUnmap (
|
|||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Allocates pages.
|
||||||
|
|
||||||
|
@param This A pointer to the EFI_PCI_IO_PROTOCOL instance.
|
||||||
|
@param Type This parameter is not used and must be ignored.
|
||||||
|
@param MemoryType The type of memory to allocate, EfiBootServicesData or
|
||||||
|
EfiRuntimeServicesData.
|
||||||
|
@param Pages The number of pages to allocate.
|
||||||
|
@param HostAddress A pointer to store the base system memory address of the
|
||||||
|
allocated range.
|
||||||
|
@param Attributes The requested bit mask of attributes for the allocated range.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The requested memory pages were allocated.
|
||||||
|
@retval EFI_UNSUPPORTED Attributes is unsupported. The only legal attribute bits are
|
||||||
|
MEMORY_WRITE_COMBINE and MEMORY_CACHED.
|
||||||
|
@retval EFI_INVALID_PARAMETER One or more parameters are invalid.
|
||||||
|
@retval EFI_OUT_OF_RESOURCES The memory pages could not be allocated.
|
||||||
|
|
||||||
|
**/
|
||||||
STATIC
|
STATIC
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
@ -526,6 +735,16 @@ CoherentPciIoAllocateBuffer (
|
|||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Frees memory that was allocated in function CoherentPciIoAllocateBuffer ().
|
||||||
|
|
||||||
|
@param This A pointer to the EFI_PCI_IO_PROTOCOL instance.
|
||||||
|
@param Pages The number of pages to free.
|
||||||
|
@param HostAddress The base system memory address of the allocated range.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The requested memory pages were freed.
|
||||||
|
|
||||||
|
**/
|
||||||
STATIC
|
STATIC
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
@ -539,6 +758,17 @@ CoherentPciIoFreeBuffer (
|
|||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Frees memory that was allocated in function NonCoherentPciIoAllocateBuffer ().
|
||||||
|
|
||||||
|
@param This A pointer to the EFI_PCI_IO_PROTOCOL instance.
|
||||||
|
@param Pages The number of pages to free.
|
||||||
|
@param HostAddress The base system memory address of the allocated range.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The requested memory pages were freed.
|
||||||
|
@retval others The operation contain some errors.
|
||||||
|
|
||||||
|
**/
|
||||||
STATIC
|
STATIC
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
@ -604,6 +834,25 @@ FreeAlloc:
|
|||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Allocates pages.
|
||||||
|
|
||||||
|
@param This A pointer to the EFI_PCI_IO_PROTOCOL instance.
|
||||||
|
@param Type This parameter is not used and must be ignored.
|
||||||
|
@param MemoryType The type of memory to allocate, EfiBootServicesData or
|
||||||
|
EfiRuntimeServicesData.
|
||||||
|
@param Pages The number of pages to allocate.
|
||||||
|
@param HostAddress A pointer to store the base system memory address of the
|
||||||
|
allocated range.
|
||||||
|
@param Attributes The requested bit mask of attributes for the allocated range.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The requested memory pages were allocated.
|
||||||
|
@retval EFI_UNSUPPORTED Attributes is unsupported. The only legal attribute bits are
|
||||||
|
MEMORY_WRITE_COMBINE and MEMORY_CACHED.
|
||||||
|
@retval EFI_INVALID_PARAMETER One or more parameters are invalid.
|
||||||
|
@retval EFI_OUT_OF_RESOURCES The memory pages could not be allocated.
|
||||||
|
|
||||||
|
**/
|
||||||
STATIC
|
STATIC
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
@ -702,6 +951,25 @@ FreeBuffer:
|
|||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Provides the PCI controller-specific addresses needed to access system memory.
|
||||||
|
|
||||||
|
@param This A pointer to the EFI_PCI_IO_PROTOCOL instance.
|
||||||
|
@param Operation Indicates if the bus master is going to read or write to system memory.
|
||||||
|
@param HostAddress The system memory address to map to the PCI controller.
|
||||||
|
@param NumberOfBytes On input the number of bytes to map. On output the number of bytes
|
||||||
|
that were mapped.
|
||||||
|
@param DeviceAddress The resulting map address for the bus master PCI controller to use to
|
||||||
|
access the hosts HostAddress.
|
||||||
|
@param Mapping A resulting value to pass to Unmap().
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The range was mapped for the returned NumberOfBytes.
|
||||||
|
@retval EFI_UNSUPPORTED The HostAddress cannot be mapped as a common buffer.
|
||||||
|
@retval EFI_INVALID_PARAMETER One or more parameters are invalid.
|
||||||
|
@retval EFI_OUT_OF_RESOURCES The request could not be completed due to a lack of resources.
|
||||||
|
@retval EFI_DEVICE_ERROR The system hardware could not map the requested address.
|
||||||
|
|
||||||
|
**/
|
||||||
STATIC
|
STATIC
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
@ -816,6 +1084,15 @@ FreeMapInfo:
|
|||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Completes the Map() operation and releases any corresponding resources.
|
||||||
|
|
||||||
|
@param This A pointer to the EFI_PCI_IO_PROTOCOL instance.
|
||||||
|
@param Mapping The mapping value returned from Map().
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The range was unmapped.
|
||||||
|
|
||||||
|
**/
|
||||||
STATIC
|
STATIC
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
@ -859,6 +1136,12 @@ NonCoherentPciIoUnmap (
|
|||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Flushes all PCI posted write transactions from a PCI host bridge to system memory.
|
||||||
|
|
||||||
|
@param This A pointer to the EFI_PCI_IO_PROTOCOL instance.
|
||||||
|
|
||||||
|
**/
|
||||||
STATIC
|
STATIC
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
@ -869,6 +1152,19 @@ PciIoFlush (
|
|||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Retrieves this PCI controller's current PCI bus number, device number, and function number.
|
||||||
|
|
||||||
|
@param This A pointer to the EFI_PCI_IO_PROTOCOL instance.
|
||||||
|
@param SegmentNumber The PCI controller's current PCI segment number.
|
||||||
|
@param BusNumber The PCI controller's current PCI bus number.
|
||||||
|
@param DeviceNumber The PCI controller's current PCI device number.
|
||||||
|
@param FunctionNumber The PCI controller's current PCI function number.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The PCI controller location was returned.
|
||||||
|
@retval EFI_INVALID_PARAMETER One or more parameters are invalid.
|
||||||
|
|
||||||
|
**/
|
||||||
STATIC
|
STATIC
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
@ -895,6 +1191,25 @@ PciIoGetLocation (
|
|||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Performs an operation on the attributes that this PCI controller supports. The operations include
|
||||||
|
getting the set of supported attributes, retrieving the current attributes, setting the current
|
||||||
|
attributes, enabling attributes, and disabling attributes.
|
||||||
|
|
||||||
|
@param This A pointer to the EFI_PCI_IO_PROTOCOL instance.
|
||||||
|
@param Operation The operation to perform on the attributes for this PCI controller.
|
||||||
|
@param Attributes The mask of attributes that are used for Set, Enable, and Disable
|
||||||
|
operations.
|
||||||
|
@param Result A pointer to the result mask of attributes that are returned for the Get
|
||||||
|
and Supported operations.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The operation on the PCI controller's attributes was completed.
|
||||||
|
@retval EFI_INVALID_PARAMETER One or more parameters are invalid.
|
||||||
|
@retval EFI_UNSUPPORTED one or more of the bits set in
|
||||||
|
Attributes are not supported by this PCI controller or one of
|
||||||
|
its parent bridges when Operation is Set, Enable or Disable.
|
||||||
|
|
||||||
|
**/
|
||||||
STATIC
|
STATIC
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
@ -952,6 +1267,28 @@ PciIoAttributes (
|
|||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Gets the attributes that this PCI controller supports setting on a BAR using
|
||||||
|
SetBarAttributes(), and retrieves the list of resource descriptors for a BAR.
|
||||||
|
|
||||||
|
@param This A pointer to the EFI_PCI_IO_PROTOCOL instance.
|
||||||
|
@param BarIndex The BAR index of the standard PCI Configuration header to use as the
|
||||||
|
base address for resource range. The legal range for this field is 0..5.
|
||||||
|
@param Supports A pointer to the mask of attributes that this PCI controller supports
|
||||||
|
setting for this BAR with SetBarAttributes().
|
||||||
|
@param Resources A pointer to the ACPI 2.0 resource descriptors that describe the current
|
||||||
|
configuration of this BAR of the PCI controller.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS If Supports is not NULL, then the attributes that the PCI
|
||||||
|
controller supports are returned in Supports. If Resources
|
||||||
|
is not NULL, then the ACPI 2.0 resource descriptors that the PCI
|
||||||
|
controller is currently using are returned in Resources.
|
||||||
|
@retval EFI_INVALID_PARAMETER Both Supports and Attributes are NULL.
|
||||||
|
@retval EFI_UNSUPPORTED BarIndex not valid for this PCI controller.
|
||||||
|
@retval EFI_OUT_OF_RESOURCES There are not enough resources available to allocate
|
||||||
|
Resources.
|
||||||
|
|
||||||
|
**/
|
||||||
STATIC
|
STATIC
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
@ -1003,6 +1340,19 @@ PciIoGetBarAttributes (
|
|||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Sets the attributes for a range of a BAR on a PCI controller.
|
||||||
|
|
||||||
|
@param This A pointer to the EFI_PCI_IO_PROTOCOL instance.
|
||||||
|
@param Attributes The mask of attributes to set for the resource range specified by
|
||||||
|
BarIndex, Offset, and Length.
|
||||||
|
@param BarIndex The BAR index of the standard PCI Configuration header to use as the
|
||||||
|
base address for resource range. The legal range for this field is 0..5.
|
||||||
|
@param Offset A pointer to the BAR relative base address of the resource range to be
|
||||||
|
modified by the attributes specified by Attributes.
|
||||||
|
@param Length A pointer to the length of the resource range to be modified by the
|
||||||
|
attributes specified by Attributes.
|
||||||
|
**/
|
||||||
STATIC
|
STATIC
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
@ -1039,6 +1389,12 @@ STATIC CONST EFI_PCI_IO_PROTOCOL PciIoTemplate =
|
|||||||
0
|
0
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
Initialize PciIo Protocol.
|
||||||
|
|
||||||
|
@param Dev Point to NON_DISCOVERABLE_PCI_DEVICE instance.
|
||||||
|
|
||||||
|
**/
|
||||||
VOID
|
VOID
|
||||||
InitializePciIoProtocol (
|
InitializePciIoProtocol (
|
||||||
NON_DISCOVERABLE_PCI_DEVICE *Dev
|
NON_DISCOVERABLE_PCI_DEVICE *Dev
|
||||||
|
@ -102,6 +102,12 @@ typedef struct {
|
|||||||
LIST_ENTRY UncachedAllocationList;
|
LIST_ENTRY UncachedAllocationList;
|
||||||
} NON_DISCOVERABLE_PCI_DEVICE;
|
} NON_DISCOVERABLE_PCI_DEVICE;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Initialize PciIo Protocol.
|
||||||
|
|
||||||
|
@param Device Point to NON_DISCOVERABLE_PCI_DEVICE instance.
|
||||||
|
|
||||||
|
**/
|
||||||
VOID
|
VOID
|
||||||
InitializePciIoProtocol (
|
InitializePciIoProtocol (
|
||||||
NON_DISCOVERABLE_PCI_DEVICE *Device
|
NON_DISCOVERABLE_PCI_DEVICE *Device
|
||||||
|
Reference in New Issue
Block a user