* [patch 1/3] MdeModulePkg/NonDiscoverablePciDeviceDxe: Fix VS2010/2012 build failure @ 2016-12-16 2:25 Dandan Bi 2016-12-16 2:25 ` [patch 2/3] MdeModulePkg/NonDiscoverablePciDeviceDxe: Add comments for functions Dandan Bi ` (2 more replies) 0 siblings, 3 replies; 6+ messages in thread From: Dandan Bi @ 2016-12-16 2:25 UTC (permalink / raw) To: edk2-devel; +Cc: Ard Biesheuvel, Ruiyu Ni 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> --- .../Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceIo.c | 1 + 1 file changed, 1 insertion(+) diff --git a/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceIo.c b/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceIo.c index ce73a77..f9b13a5 100644 --- a/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceIo.c +++ b/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceIo.c @@ -555,10 +555,11 @@ NonCoherentPciIoFreeBuffer ( BOOLEAN Found; Dev = NON_DISCOVERABLE_PCI_DEVICE_FROM_PCI_IO(This); Found = FALSE; + Alloc = NULL; // // Find the uncached allocation list entry associated // with this allocation // -- 1.9.5.msysgit.1 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [patch 2/3] MdeModulePkg/NonDiscoverablePciDeviceDxe: Add comments for functions 2016-12-16 2:25 [patch 1/3] MdeModulePkg/NonDiscoverablePciDeviceDxe: Fix VS2010/2012 build failure Dandan Bi @ 2016-12-16 2:25 ` Dandan Bi 2016-12-16 4:59 ` Ni, Ruiyu 2016-12-16 2:25 ` [patch 3/3] MdeModulePkg/NonDiscoverablePciDevice: Make variable definition follow rule Dandan Bi 2016-12-16 4:59 ` [patch 1/3] MdeModulePkg/NonDiscoverablePciDeviceDxe: Fix VS2010/2012 build failure Ni, Ruiyu 2 siblings, 1 reply; 6+ messages in thread From: Dandan Bi @ 2016-12-16 2:25 UTC (permalink / raw) To: edk2-devel; +Cc: Ard Biesheuvel, Ruiyu Ni 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> --- .../NonDiscoverablePciDeviceDxe/ComponentName.c | 47 +++ .../NonDiscoverablePciDeviceDxe.c | 50 ++- .../NonDiscoverablePciDeviceDxe.inf | 18 +- .../NonDiscoverablePciDeviceIo.c | 362 ++++++++++++++++++++- .../NonDiscoverablePciDeviceIo.h | 6 + 5 files changed, 469 insertions(+), 14 deletions(-) diff --git a/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/ComponentName.c b/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/ComponentName.c index 6e51d00..0e6ebec 100644 --- a/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/ComponentName.c +++ b/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/ComponentName.c @@ -28,10 +28,31 @@ EFI_UNICODE_STRING_TABLE mDriverNameTable[] = { { NULL, NULL } }; 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 NonDiscoverablePciGetDriverName ( IN EFI_COMPONENT_NAME_PROTOCOL *This, @@ -46,10 +67,36 @@ NonDiscoverablePciGetDriverName ( DriverName, (BOOLEAN)(This == &gComponentName) // Iso639Language ); } +/** + 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 NonDiscoverablePciGetDeviceName ( IN EFI_COMPONENT_NAME_PROTOCOL *This, diff --git a/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceDxe.c b/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceDxe.c index 0fcf2b2..876e99f 100644 --- a/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceDxe.c +++ b/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceDxe.c @@ -47,10 +47,23 @@ SupportedNonDiscoverableDevices [] = { // - 5.1.3.4 OpenProtocol() and CloseProtocol() // - UEFI Spec 2.3.1 + Errata C // - 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 NonDiscoverablePciDeviceSupported ( IN EFI_DRIVER_BINDING_PROTOCOL *This, @@ -101,10 +114,23 @@ CloseProtocol: This->DriverBindingHandle, DeviceHandle); 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 NonDiscoverablePciDeviceStart ( IN EFI_DRIVER_BINDING_PROTOCOL *This, @@ -151,11 +177,22 @@ FreeDev: FreePool (Dev); 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 NonDiscoverablePciDeviceStop ( IN EFI_DRIVER_BINDING_PROTOCOL *This, @@ -207,13 +244,20 @@ STATIC EFI_DRIVER_BINDING_PROTOCOL gDriverBinding = { 0x10, // Version, must be in [0x10 .. 0xFFFFFFEF] for IHV-developed drivers 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 EFIAPI NonDiscoverablePciDeviceDxeEntryPoint ( IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable diff --git a/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceDxe.inf b/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceDxe.inf index 5faa894..ac551a8 100644 --- a/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceDxe.inf +++ b/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceDxe.inf @@ -1,6 +1,8 @@ ## @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 # under the terms and conditions of the BSD License which accompanies this # distribution. The full text of the license may be found at @@ -42,13 +44,13 @@ [Protocols] gEfiPciIoProtocolGuid ## BY_START gEdkiiNonDiscoverableDeviceProtocolGuid ## TO_START 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 diff --git a/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceIo.c b/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceIo.c index f9b13a5..1ffbdfa 100644 --- a/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceIo.c +++ b/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceIo.c @@ -26,13 +26,18 @@ typedef struct { VOID *HostAddress; EFI_PCI_IO_PROTOCOL_OPERATION Operation; 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 ( IN NON_DISCOVERABLE_PCI_DEVICE *Dev, IN UINT8 BarIndex, @@ -59,10 +64,25 @@ GetBarResource ( BarIndex -= 1; } 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 PciIoPollMem ( IN EFI_PCI_IO_PROTOCOL *This, @@ -77,10 +97,25 @@ PciIoPollMem ( { ASSERT (FALSE); 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 PciIoPollIo ( IN EFI_PCI_IO_PROTOCOL *This, @@ -95,10 +130,26 @@ PciIoPollIo ( { ASSERT (FALSE); 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 PciIoMemRW ( IN EFI_PCI_IO_PROTOCOL_WIDTH Width, @@ -146,10 +197,30 @@ 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 PciIoMemRead ( IN EFI_PCI_IO_PROTOCOL *This, @@ -213,10 +284,30 @@ PciIoMemRead ( break; } 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 PciIoMemWrite ( IN EFI_PCI_IO_PROTOCOL *This, @@ -280,10 +371,23 @@ PciIoMemWrite ( break; } 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 PciIoIoRead ( IN EFI_PCI_IO_PROTOCOL *This, @@ -296,10 +400,23 @@ PciIoIoRead ( { ASSERT (FALSE); 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 PciIoIoWrite ( IN EFI_PCI_IO_PROTOCOL *This, @@ -312,10 +429,21 @@ PciIoIoWrite ( { ASSERT (FALSE); 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 PciIoPciRead ( IN EFI_PCI_IO_PROTOCOL *This, @@ -348,10 +476,26 @@ PciIoPciRead ( Count -= Length >> ((UINTN)Width & 0x3); } 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 PciIoPciWrite ( IN EFI_PCI_IO_PROTOCOL *This, @@ -376,10 +520,28 @@ 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 PciIoCopyMem ( IN EFI_PCI_IO_PROTOCOL *This, @@ -393,10 +555,29 @@ PciIoCopyMem ( { ASSERT (FALSE); 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 CoherentPciIoMap ( IN EFI_PCI_IO_PROTOCOL *This, @@ -459,10 +640,19 @@ CoherentPciIoMap ( *Mapping = NULL; } 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 CoherentPciIoUnmap ( IN EFI_PCI_IO_PROTOCOL *This, @@ -482,10 +672,29 @@ CoherentPciIoUnmap ( FreePool (MapInfo); } 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 CoherentPciIoAllocateBuffer ( IN EFI_PCI_IO_PROTOCOL *This, @@ -524,10 +733,20 @@ CoherentPciIoAllocateBuffer ( *HostAddress = (VOID *)(UINTN)AllocAddress; } 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 CoherentPciIoFreeBuffer ( IN EFI_PCI_IO_PROTOCOL *This, @@ -537,10 +756,21 @@ CoherentPciIoFreeBuffer ( { FreePages (HostAddress, Pages); 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 NonCoherentPciIoFreeBuffer ( IN EFI_PCI_IO_PROTOCOL *This, @@ -602,10 +832,29 @@ NonCoherentPciIoFreeBuffer ( FreeAlloc: FreePool (Alloc); 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 NonCoherentPciIoAllocateBuffer ( IN EFI_PCI_IO_PROTOCOL *This, @@ -700,10 +949,29 @@ RemoveList: FreeBuffer: CoherentPciIoFreeBuffer (This, Pages, AllocAddress); 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 NonCoherentPciIoMap ( IN EFI_PCI_IO_PROTOCOL *This, @@ -814,10 +1082,19 @@ FreeMapInfo: FreePool (MapInfo); 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 NonCoherentPciIoUnmap ( IN EFI_PCI_IO_PROTOCOL *This, @@ -857,20 +1134,39 @@ NonCoherentPciIoUnmap ( } FreePool (MapInfo); 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 PciIoFlush ( IN EFI_PCI_IO_PROTOCOL *This ) { 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 PciIoGetLocation ( IN EFI_PCI_IO_PROTOCOL *This, @@ -893,10 +1189,29 @@ PciIoGetLocation ( *FunctionNumber = 0; 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 PciIoAttributes ( IN EFI_PCI_IO_PROTOCOL *This, @@ -950,10 +1265,32 @@ PciIoAttributes ( Dev->Enabled = TRUE; } 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 PciIoGetBarAttributes ( IN EFI_PCI_IO_PROTOCOL *This, @@ -1001,10 +1338,23 @@ PciIoGetBarAttributes ( *Resources = Descriptor; } 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 PciIoSetBarAttributes ( IN EFI_PCI_IO_PROTOCOL *This, @@ -1037,10 +1387,16 @@ STATIC CONST EFI_PCI_IO_PROTOCOL PciIoTemplate = PciIoSetBarAttributes, 0, 0 }; +/** + Initialize PciIo Protocol. + + @param Dev Point to NON_DISCOVERABLE_PCI_DEVICE instance. + +**/ VOID InitializePciIoProtocol ( NON_DISCOVERABLE_PCI_DEVICE *Dev ) { diff --git a/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceIo.h b/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceIo.h index 4496148..e641189 100644 --- a/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceIo.h +++ b/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceIo.h @@ -100,10 +100,16 @@ typedef struct { // on behalf of this device // 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 ); -- 1.9.5.msysgit.1 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [patch 2/3] MdeModulePkg/NonDiscoverablePciDeviceDxe: Add comments for functions 2016-12-16 2:25 ` [patch 2/3] MdeModulePkg/NonDiscoverablePciDeviceDxe: Add comments for functions Dandan Bi @ 2016-12-16 4:59 ` Ni, Ruiyu 0 siblings, 0 replies; 6+ messages in thread From: Ni, Ruiyu @ 2016-12-16 4:59 UTC (permalink / raw) To: Bi, Dandan, edk2-devel@lists.01.org; +Cc: Ard Biesheuvel Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com> Regards, Ray >-----Original Message----- >From: Bi, Dandan >Sent: Friday, December 16, 2016 10:26 AM >To: edk2-devel@lists.01.org >Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>; Ni, Ruiyu <ruiyu.ni@intel.com> >Subject: [patch 2/3] 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> >--- > .../NonDiscoverablePciDeviceDxe/ComponentName.c | 47 +++ > .../NonDiscoverablePciDeviceDxe.c | 50 ++- > .../NonDiscoverablePciDeviceDxe.inf | 18 +- > .../NonDiscoverablePciDeviceIo.c | 362 ++++++++++++++++++++- > .../NonDiscoverablePciDeviceIo.h | 6 + > 5 files changed, 469 insertions(+), 14 deletions(-) > >diff --git a/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/ComponentName.c >b/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/ComponentName.c >index 6e51d00..0e6ebec 100644 >--- a/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/ComponentName.c >+++ b/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/ComponentName.c >@@ -28,10 +28,31 @@ EFI_UNICODE_STRING_TABLE mDriverNameTable[] = { > { NULL, NULL } > }; > > 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 > NonDiscoverablePciGetDriverName ( > IN EFI_COMPONENT_NAME_PROTOCOL *This, >@@ -46,10 +67,36 @@ NonDiscoverablePciGetDriverName ( > DriverName, > (BOOLEAN)(This == &gComponentName) // Iso639Language > ); > } > >+/** >+ 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 > NonDiscoverablePciGetDeviceName ( > IN EFI_COMPONENT_NAME_PROTOCOL *This, >diff --git a/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceDxe.c >b/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceDxe.c >index 0fcf2b2..876e99f 100644 >--- a/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceDxe.c >+++ b/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceDxe.c >@@ -47,10 +47,23 @@ SupportedNonDiscoverableDevices [] = { > // - 5.1.3.4 OpenProtocol() and CloseProtocol() > // - UEFI Spec 2.3.1 + Errata C > // - 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 > NonDiscoverablePciDeviceSupported ( > IN EFI_DRIVER_BINDING_PROTOCOL *This, >@@ -101,10 +114,23 @@ CloseProtocol: > This->DriverBindingHandle, DeviceHandle); > > 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 > NonDiscoverablePciDeviceStart ( > IN EFI_DRIVER_BINDING_PROTOCOL *This, >@@ -151,11 +177,22 @@ FreeDev: > FreePool (Dev); > > 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 > NonDiscoverablePciDeviceStop ( > IN EFI_DRIVER_BINDING_PROTOCOL *This, >@@ -207,13 +244,20 @@ STATIC EFI_DRIVER_BINDING_PROTOCOL gDriverBinding = { > 0x10, // Version, must be in [0x10 .. 0xFFFFFFEF] for IHV-developed drivers > 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 > EFIAPI > NonDiscoverablePciDeviceDxeEntryPoint ( > IN EFI_HANDLE ImageHandle, > IN EFI_SYSTEM_TABLE *SystemTable >diff --git a/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceDxe.inf >b/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceDxe.inf >index 5faa894..ac551a8 100644 >--- a/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceDxe.inf >+++ b/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceDxe.inf >@@ -1,6 +1,8 @@ > ## @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 > # under the terms and conditions of the BSD License which accompanies this > # distribution. The full text of the license may be found at >@@ -42,13 +44,13 @@ [Protocols] > gEfiPciIoProtocolGuid ## BY_START > gEdkiiNonDiscoverableDeviceProtocolGuid ## TO_START > 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 >diff --git a/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceIo.c >b/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceIo.c >index f9b13a5..1ffbdfa 100644 >--- a/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceIo.c >+++ b/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceIo.c >@@ -26,13 +26,18 @@ typedef struct { > VOID *HostAddress; > EFI_PCI_IO_PROTOCOL_OPERATION Operation; > 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 ( > IN NON_DISCOVERABLE_PCI_DEVICE *Dev, > IN UINT8 BarIndex, >@@ -59,10 +64,25 @@ GetBarResource ( > BarIndex -= 1; > } > 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 > PciIoPollMem ( > IN EFI_PCI_IO_PROTOCOL *This, >@@ -77,10 +97,25 @@ PciIoPollMem ( > { > ASSERT (FALSE); > 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 > PciIoPollIo ( > IN EFI_PCI_IO_PROTOCOL *This, >@@ -95,10 +130,26 @@ PciIoPollIo ( > { > ASSERT (FALSE); > 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 > PciIoMemRW ( > IN EFI_PCI_IO_PROTOCOL_WIDTH Width, >@@ -146,10 +197,30 @@ 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 > PciIoMemRead ( > IN EFI_PCI_IO_PROTOCOL *This, >@@ -213,10 +284,30 @@ PciIoMemRead ( > break; > } > 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 > PciIoMemWrite ( > IN EFI_PCI_IO_PROTOCOL *This, >@@ -280,10 +371,23 @@ PciIoMemWrite ( > break; > } > 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 > PciIoIoRead ( > IN EFI_PCI_IO_PROTOCOL *This, >@@ -296,10 +400,23 @@ PciIoIoRead ( > { > ASSERT (FALSE); > 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 > PciIoIoWrite ( > IN EFI_PCI_IO_PROTOCOL *This, >@@ -312,10 +429,21 @@ PciIoIoWrite ( > { > ASSERT (FALSE); > 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 > PciIoPciRead ( > IN EFI_PCI_IO_PROTOCOL *This, >@@ -348,10 +476,26 @@ PciIoPciRead ( > Count -= Length >> ((UINTN)Width & 0x3); > } > 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 > PciIoPciWrite ( > IN EFI_PCI_IO_PROTOCOL *This, >@@ -376,10 +520,28 @@ 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 > PciIoCopyMem ( > IN EFI_PCI_IO_PROTOCOL *This, >@@ -393,10 +555,29 @@ PciIoCopyMem ( > { > ASSERT (FALSE); > 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 > CoherentPciIoMap ( > IN EFI_PCI_IO_PROTOCOL *This, >@@ -459,10 +640,19 @@ CoherentPciIoMap ( > *Mapping = NULL; > } > 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 > CoherentPciIoUnmap ( > IN EFI_PCI_IO_PROTOCOL *This, >@@ -482,10 +672,29 @@ CoherentPciIoUnmap ( > FreePool (MapInfo); > } > 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 > CoherentPciIoAllocateBuffer ( > IN EFI_PCI_IO_PROTOCOL *This, >@@ -524,10 +733,20 @@ CoherentPciIoAllocateBuffer ( > *HostAddress = (VOID *)(UINTN)AllocAddress; > } > 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 > CoherentPciIoFreeBuffer ( > IN EFI_PCI_IO_PROTOCOL *This, >@@ -537,10 +756,21 @@ CoherentPciIoFreeBuffer ( > { > FreePages (HostAddress, Pages); > 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 > NonCoherentPciIoFreeBuffer ( > IN EFI_PCI_IO_PROTOCOL *This, >@@ -602,10 +832,29 @@ NonCoherentPciIoFreeBuffer ( > FreeAlloc: > FreePool (Alloc); > 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 > NonCoherentPciIoAllocateBuffer ( > IN EFI_PCI_IO_PROTOCOL *This, >@@ -700,10 +949,29 @@ RemoveList: > FreeBuffer: > CoherentPciIoFreeBuffer (This, Pages, AllocAddress); > 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 > NonCoherentPciIoMap ( > IN EFI_PCI_IO_PROTOCOL *This, >@@ -814,10 +1082,19 @@ FreeMapInfo: > FreePool (MapInfo); > > 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 > NonCoherentPciIoUnmap ( > IN EFI_PCI_IO_PROTOCOL *This, >@@ -857,20 +1134,39 @@ NonCoherentPciIoUnmap ( > } > FreePool (MapInfo); > 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 > PciIoFlush ( > IN EFI_PCI_IO_PROTOCOL *This > ) > { > 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 > PciIoGetLocation ( > IN EFI_PCI_IO_PROTOCOL *This, >@@ -893,10 +1189,29 @@ PciIoGetLocation ( > *FunctionNumber = 0; > > 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 > PciIoAttributes ( > IN EFI_PCI_IO_PROTOCOL *This, >@@ -950,10 +1265,32 @@ PciIoAttributes ( > Dev->Enabled = TRUE; > } > 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 > PciIoGetBarAttributes ( > IN EFI_PCI_IO_PROTOCOL *This, >@@ -1001,10 +1338,23 @@ PciIoGetBarAttributes ( > *Resources = Descriptor; > } > 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 > PciIoSetBarAttributes ( > IN EFI_PCI_IO_PROTOCOL *This, >@@ -1037,10 +1387,16 @@ STATIC CONST EFI_PCI_IO_PROTOCOL PciIoTemplate = > PciIoSetBarAttributes, > 0, > 0 > }; > >+/** >+ Initialize PciIo Protocol. >+ >+ @param Dev Point to NON_DISCOVERABLE_PCI_DEVICE instance. >+ >+**/ > VOID > InitializePciIoProtocol ( > NON_DISCOVERABLE_PCI_DEVICE *Dev > ) > { >diff --git a/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceIo.h >b/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceIo.h >index 4496148..e641189 100644 >--- a/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceIo.h >+++ b/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceIo.h >@@ -100,10 +100,16 @@ typedef struct { > // on behalf of this device > // > 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 > ); > >-- >1.9.5.msysgit.1 ^ permalink raw reply [flat|nested] 6+ messages in thread
* [patch 3/3] MdeModulePkg/NonDiscoverablePciDevice: Make variable definition follow rule 2016-12-16 2:25 [patch 1/3] MdeModulePkg/NonDiscoverablePciDeviceDxe: Fix VS2010/2012 build failure Dandan Bi 2016-12-16 2:25 ` [patch 2/3] MdeModulePkg/NonDiscoverablePciDeviceDxe: Add comments for functions Dandan Bi @ 2016-12-16 2:25 ` Dandan Bi 2016-12-16 4:59 ` Ni, Ruiyu 2016-12-16 4:59 ` [patch 1/3] MdeModulePkg/NonDiscoverablePciDeviceDxe: Fix VS2010/2012 build failure Ni, Ruiyu 2 siblings, 1 reply; 6+ messages in thread From: Dandan Bi @ 2016-12-16 2:25 UTC (permalink / raw) To: edk2-devel; +Cc: Ard Biesheuvel, Ruiyu Ni 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> --- .../Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceDxe.c | 2 +- .../Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceIo.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceDxe.c b/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceDxe.c index 876e99f..3e9ff66 100644 --- a/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceDxe.c +++ b/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceDxe.c @@ -21,11 +21,11 @@ EFI_CPU_ARCH_PROTOCOL *mCpu; // // We only support the following device types // STATIC CONST EFI_GUID * CONST -SupportedNonDiscoverableDevices [] = { +SupportedNonDiscoverableDevices[] = { &gEdkiiNonDiscoverableAhciDeviceGuid, &gEdkiiNonDiscoverableEhciDeviceGuid, &gEdkiiNonDiscoverableNvmeDeviceGuid, &gEdkiiNonDiscoverableOhciDeviceGuid, &gEdkiiNonDiscoverableSdhciDeviceGuid, diff --git a/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceIo.c b/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceIo.c index 1ffbdfa..b07c129 100644 --- a/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceIo.c +++ b/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceIo.c @@ -1298,11 +1298,12 @@ PciIoGetBarAttributes ( OUT UINT64 *Supports OPTIONAL, OUT VOID **Resources OPTIONAL ) { NON_DISCOVERABLE_PCI_DEVICE *Dev; - EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR *Descriptor, *BarDesc; + EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR *Descriptor; + EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR *BarDesc; EFI_ACPI_END_TAG_DESCRIPTOR *End; EFI_STATUS Status; if (Supports == NULL && Resources == NULL) { return EFI_INVALID_PARAMETER; -- 1.9.5.msysgit.1 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [patch 3/3] MdeModulePkg/NonDiscoverablePciDevice: Make variable definition follow rule 2016-12-16 2:25 ` [patch 3/3] MdeModulePkg/NonDiscoverablePciDevice: Make variable definition follow rule Dandan Bi @ 2016-12-16 4:59 ` Ni, Ruiyu 0 siblings, 0 replies; 6+ messages in thread From: Ni, Ruiyu @ 2016-12-16 4:59 UTC (permalink / raw) To: Bi, Dandan, edk2-devel@lists.01.org; +Cc: Ard Biesheuvel Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com> Regards, Ray >-----Original Message----- >From: Bi, Dandan >Sent: Friday, December 16, 2016 10:26 AM >To: edk2-devel@lists.01.org >Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>; Ni, Ruiyu <ruiyu.ni@intel.com> >Subject: [patch 3/3] MdeModulePkg/NonDiscoverablePciDevice: Make variable definition follow rule > >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> >--- > .../Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceDxe.c | 2 +- > .../Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceIo.c | 3 ++- > 2 files changed, 3 insertions(+), 2 deletions(-) > >diff --git a/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceDxe.c >b/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceDxe.c >index 876e99f..3e9ff66 100644 >--- a/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceDxe.c >+++ b/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceDxe.c >@@ -21,11 +21,11 @@ EFI_CPU_ARCH_PROTOCOL *mCpu; > // > // We only support the following device types > // > STATIC > CONST EFI_GUID * CONST >-SupportedNonDiscoverableDevices [] = { >+SupportedNonDiscoverableDevices[] = { > &gEdkiiNonDiscoverableAhciDeviceGuid, > &gEdkiiNonDiscoverableEhciDeviceGuid, > &gEdkiiNonDiscoverableNvmeDeviceGuid, > &gEdkiiNonDiscoverableOhciDeviceGuid, > &gEdkiiNonDiscoverableSdhciDeviceGuid, >diff --git a/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceIo.c >b/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceIo.c >index 1ffbdfa..b07c129 100644 >--- a/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceIo.c >+++ b/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceIo.c >@@ -1298,11 +1298,12 @@ PciIoGetBarAttributes ( > OUT UINT64 *Supports OPTIONAL, > OUT VOID **Resources OPTIONAL > ) > { > NON_DISCOVERABLE_PCI_DEVICE *Dev; >- EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR *Descriptor, *BarDesc; >+ EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR *Descriptor; >+ EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR *BarDesc; > EFI_ACPI_END_TAG_DESCRIPTOR *End; > EFI_STATUS Status; > > if (Supports == NULL && Resources == NULL) { > return EFI_INVALID_PARAMETER; >-- >1.9.5.msysgit.1 ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [patch 1/3] MdeModulePkg/NonDiscoverablePciDeviceDxe: Fix VS2010/2012 build failure 2016-12-16 2:25 [patch 1/3] MdeModulePkg/NonDiscoverablePciDeviceDxe: Fix VS2010/2012 build failure Dandan Bi 2016-12-16 2:25 ` [patch 2/3] MdeModulePkg/NonDiscoverablePciDeviceDxe: Add comments for functions Dandan Bi 2016-12-16 2:25 ` [patch 3/3] MdeModulePkg/NonDiscoverablePciDevice: Make variable definition follow rule Dandan Bi @ 2016-12-16 4:59 ` Ni, Ruiyu 2 siblings, 0 replies; 6+ messages in thread From: Ni, Ruiyu @ 2016-12-16 4:59 UTC (permalink / raw) To: Bi, Dandan, edk2-devel@lists.01.org; +Cc: Ard Biesheuvel Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com> Regards, Ray >-----Original Message----- >From: Bi, Dandan >Sent: Friday, December 16, 2016 10:26 AM >To: edk2-devel@lists.01.org >Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>; Ni, Ruiyu <ruiyu.ni@intel.com> >Subject: [patch 1/3] MdeModulePkg/NonDiscoverablePciDeviceDxe: Fix VS2010/2012 build failure > >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> >--- > .../Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceIo.c | 1 + > 1 file changed, 1 insertion(+) > >diff --git a/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceIo.c >b/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceIo.c >index ce73a77..f9b13a5 100644 >--- a/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceIo.c >+++ b/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceIo.c >@@ -555,10 +555,11 @@ NonCoherentPciIoFreeBuffer ( > BOOLEAN Found; > > Dev = NON_DISCOVERABLE_PCI_DEVICE_FROM_PCI_IO(This); > > Found = FALSE; >+ Alloc = NULL; > > // > // Find the uncached allocation list entry associated > // with this allocation > // >-- >1.9.5.msysgit.1 ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2016-12-16 4:59 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-12-16 2:25 [patch 1/3] MdeModulePkg/NonDiscoverablePciDeviceDxe: Fix VS2010/2012 build failure Dandan Bi 2016-12-16 2:25 ` [patch 2/3] MdeModulePkg/NonDiscoverablePciDeviceDxe: Add comments for functions Dandan Bi 2016-12-16 4:59 ` Ni, Ruiyu 2016-12-16 2:25 ` [patch 3/3] MdeModulePkg/NonDiscoverablePciDevice: Make variable definition follow rule Dandan Bi 2016-12-16 4:59 ` Ni, Ruiyu 2016-12-16 4:59 ` [patch 1/3] MdeModulePkg/NonDiscoverablePciDeviceDxe: Fix VS2010/2012 build failure Ni, Ruiyu
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox