This implements support for non-discoverable PCI compatible devices, i.e, devices that are not on a PCI bus but that can be controlled by generic PCI drivers in EDK2. This is implemented as a UEFI driver, which means we take full advantage of the UEFI driver model, and only instantiate those devices that are necessary for booting. Care is taken to deal with DMA addressing limitations: DMA mappings and allocations are moved below 4 GB if the PCI driver has not informed us that the device being driven is 64-bit DMA capable. DMA is implemented as coherent, support for non-coherent DMA is implemented by a subsequent patch. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com> Tested-by: Marcin Wojtas <mw@semihalf.com>
53 lines
1.6 KiB
INI
53 lines
1.6 KiB
INI
## @file
|
|
# 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
|
|
# http://opensource.org/licenses/bsd-license.php
|
|
#
|
|
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|
#
|
|
##
|
|
|
|
[Defines]
|
|
INF_VERSION = 0x00010019
|
|
BASE_NAME = NonDiscoverablePciDeviceDxe
|
|
FILE_GUID = 71fd84cd-353b-464d-b7a4-6ea7b96995cb
|
|
MODULE_TYPE = UEFI_DRIVER
|
|
VERSION_STRING = 1.0
|
|
ENTRY_POINT = NonDiscoverablePciDeviceDxeEntryPoint
|
|
|
|
[Sources]
|
|
ComponentName.c
|
|
NonDiscoverablePciDeviceDxe.c
|
|
NonDiscoverablePciDeviceIo.c
|
|
NonDiscoverablePciDeviceIo.h
|
|
|
|
[Packages]
|
|
MdePkg/MdePkg.dec
|
|
MdeModulePkg/MdeModulePkg.dec
|
|
|
|
[LibraryClasses]
|
|
BaseMemoryLib
|
|
DebugLib
|
|
MemoryAllocationLib
|
|
UefiBootServicesTableLib
|
|
UefiDriverEntryPoint
|
|
UefiLib
|
|
|
|
[Protocols]
|
|
gEfiPciIoProtocolGuid ## BY_START
|
|
gEdkiiNonDiscoverableDeviceProtocolGuid ## TO_START
|
|
|
|
[Guids]
|
|
gEdkiiNonDiscoverableAhciDeviceGuid
|
|
gEdkiiNonDiscoverableEhciDeviceGuid
|
|
gEdkiiNonDiscoverableNvmeDeviceGuid
|
|
gEdkiiNonDiscoverableOhciDeviceGuid
|
|
gEdkiiNonDiscoverableSdhciDeviceGuid
|
|
gEdkiiNonDiscoverableUfsDeviceGuid
|
|
gEdkiiNonDiscoverableUhciDeviceGuid
|
|
gEdkiiNonDiscoverableXhciDeviceGuid
|