mirror of https://github.com/acidanthera/audk.git
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:
parent
1525ff38cb
commit
43b7cd61c9
|
@ -30,6 +30,27 @@ EFI_UNICODE_STRING_TABLE mDriverNameTable[] = {
|
|||
|
||||
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
|
||||
EFI_STATUS
|
||||
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
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
|
|
|
@ -49,6 +49,19 @@ SupportedNonDiscoverableDevices [] = {
|
|||
// - 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
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
|
@ -103,6 +116,19 @@ CloseProtocol:
|
|||
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
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
|
@ -153,7 +179,18 @@ FreeDev:
|
|||
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
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
|
@ -209,9 +246,16 @@ STATIC EFI_DRIVER_BINDING_PROTOCOL gDriverBinding = {
|
|||
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
|
||||
EFIAPI
|
||||
NonDiscoverablePciDeviceDxeEntryPoint (
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
## @file
|
||||
# PCI I/O driver for non-discoverable devices.
|
||||
#
|
||||
# Copyright (C) 2016, Linaro Ltd.
|
||||
#
|
||||
# This program and the accompanying materials are licensed and made available
|
||||
|
@ -44,11 +46,11 @@
|
|||
gEfiCpuArchProtocolGuid ## CONSUMES
|
||||
|
||||
[Guids]
|
||||
gEdkiiNonDiscoverableAhciDeviceGuid
|
||||
gEdkiiNonDiscoverableEhciDeviceGuid
|
||||
gEdkiiNonDiscoverableNvmeDeviceGuid
|
||||
gEdkiiNonDiscoverableOhciDeviceGuid
|
||||
gEdkiiNonDiscoverableSdhciDeviceGuid
|
||||
gEdkiiNonDiscoverableUfsDeviceGuid
|
||||
gEdkiiNonDiscoverableUhciDeviceGuid
|
||||
gEdkiiNonDiscoverableXhciDeviceGuid
|
||||
gEdkiiNonDiscoverableAhciDeviceGuid ## CONSUMES ## GUID
|
||||
gEdkiiNonDiscoverableEhciDeviceGuid ## CONSUMES ## GUID
|
||||
gEdkiiNonDiscoverableNvmeDeviceGuid ## CONSUMES ## GUID
|
||||
gEdkiiNonDiscoverableOhciDeviceGuid ## CONSUMES ## GUID
|
||||
gEdkiiNonDiscoverableSdhciDeviceGuid ## CONSUMES ## GUID
|
||||
gEdkiiNonDiscoverableUfsDeviceGuid ## CONSUMES ## GUID
|
||||
gEdkiiNonDiscoverableUhciDeviceGuid ## CONSUMES ## GUID
|
||||
gEdkiiNonDiscoverableXhciDeviceGuid ## CONSUMES ## GUID
|
||||
|
|
|
@ -28,9 +28,14 @@ typedef struct {
|
|||
UINTN NumberOfBytes;
|
||||
} 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
|
||||
EFI_STATUS
|
||||
GetBarResource (
|
||||
|
@ -61,6 +66,21 @@ GetBarResource (
|
|||
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
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
|
@ -79,6 +99,21 @@ PciIoPollMem (
|
|||
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
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
|
@ -97,6 +132,22 @@ PciIoPollIo (
|
|||
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
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
|
@ -148,6 +199,26 @@ PciIoMemRW (
|
|||
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
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
|
@ -215,6 +286,26 @@ PciIoMemRead (
|
|||
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
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
|
@ -282,6 +373,19 @@ PciIoMemWrite (
|
|||
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
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
|
@ -298,6 +402,19 @@ PciIoIoRead (
|
|||
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
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
|
@ -314,6 +431,17 @@ PciIoIoWrite (
|
|||
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
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
|
@ -350,6 +478,22 @@ PciIoPciRead (
|
|||
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
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
|
@ -378,6 +522,24 @@ PciIoPciWrite (
|
|||
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
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
|
@ -395,6 +557,25 @@ PciIoCopyMem (
|
|||
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
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
|
@ -461,6 +642,15 @@ CoherentPciIoMap (
|
|||
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
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
|
@ -484,6 +674,25 @@ CoherentPciIoUnmap (
|
|||
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
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
|
@ -526,6 +735,16 @@ CoherentPciIoAllocateBuffer (
|
|||
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
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
|
@ -539,6 +758,17 @@ CoherentPciIoFreeBuffer (
|
|||
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
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
|
@ -604,6 +834,25 @@ FreeAlloc:
|
|||
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
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
|
@ -702,6 +951,25 @@ FreeBuffer:
|
|||
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
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
|
@ -816,6 +1084,15 @@ FreeMapInfo:
|
|||
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
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
|
@ -859,6 +1136,12 @@ NonCoherentPciIoUnmap (
|
|||
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
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
|
@ -869,6 +1152,19 @@ PciIoFlush (
|
|||
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
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
|
@ -895,6 +1191,25 @@ PciIoGetLocation (
|
|||
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
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
|
@ -952,6 +1267,28 @@ PciIoAttributes (
|
|||
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
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
|
@ -1003,6 +1340,19 @@ PciIoGetBarAttributes (
|
|||
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
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
|
@ -1039,6 +1389,12 @@ STATIC CONST EFI_PCI_IO_PROTOCOL PciIoTemplate =
|
|||
0
|
||||
};
|
||||
|
||||
/**
|
||||
Initialize PciIo Protocol.
|
||||
|
||||
@param Dev Point to NON_DISCOVERABLE_PCI_DEVICE instance.
|
||||
|
||||
**/
|
||||
VOID
|
||||
InitializePciIoProtocol (
|
||||
NON_DISCOVERABLE_PCI_DEVICE *Dev
|
||||
|
|
|
@ -102,6 +102,12 @@ typedef struct {
|
|||
LIST_ENTRY UncachedAllocationList;
|
||||
} NON_DISCOVERABLE_PCI_DEVICE;
|
||||
|
||||
/**
|
||||
Initialize PciIo Protocol.
|
||||
|
||||
@param Device Point to NON_DISCOVERABLE_PCI_DEVICE instance.
|
||||
|
||||
**/
|
||||
VOID
|
||||
InitializePciIoProtocol (
|
||||
NON_DISCOVERABLE_PCI_DEVICE *Device
|
||||
|
|
Loading…
Reference in New Issue