OvmfPkg: Add PlatformHasIoMmuLib

Add the shorter-term library instance outlined in the previous patch to
OvmfPkg, so that we can imbue PciHostBridgeDxe with a protocol dependency
on gEdkiiIoMmuProtocolGuid OR gIoMmuAbsentProtocolGuid.

Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Suggested-by: Laszlo Ersek <lersek@redhat.com>
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
This commit is contained in:
Brijesh Singh 2017-07-06 09:27:58 -04:00 committed by Jordan Justen
parent c5d736eb67
commit 6c22e534be
2 changed files with 71 additions and 0 deletions

View File

@ -0,0 +1,33 @@
/** @file
A hook-in library for MdeModulePkg/Bus/Pci/PciHostBridgeDxe.
Plugging this library instance into PciHostBridgeDxe makes
PciHostBridgeDxe depend on the platform's dynamic decision whether
to provide IOMMU implementation (usually through IoMmuDxe driver).
Copyright (C) 2017, Red Hat, Inc.
Copyright (C) 2017, AMD, Inc.
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.
**/
#include <Base.h>
RETURN_STATUS
EFIAPI
PlatformHasIoMmuInitialize (
VOID
)
{
//
// Do nothing, just imbue PciHostBridgeDxe with a protocol dependency on
// gIoMmuAbsentProtocolGuid OR gEdkiiIoMmuProtocolGuid.
//
return RETURN_SUCCESS;
}

View File

@ -0,0 +1,38 @@
## @file
# A hook-in library for MdeModulePkg/Bus/Pci/PciHostBridgeDxe.
#
# Plugging this library instance into PciHostBridgeDxe makes
# PciHostBridgeDxe depend on the platform's dynamic decision whether
# to provide IOMMU implementation (usually through IoMmuDxe driver).
#
# Copyright (C) 2017, Red Hat, Inc.
# Copyright (C) 2017, AMD, Inc.
#
# 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 = 1.25
BASE_NAME = PlatformHasIoMmuLib
FILE_GUID = 49b4b018-0558-448b-1e1a-12226342877d
MODULE_TYPE = BASE
VERSION_STRING = 1.0
LIBRARY_CLASS = PlatformHasIoMmuLib|DXE_DRIVER
CONSTRUCTOR = PlatformHasIoMmuInitialize
[Sources]
PlatformHasIoMmuLib.c
[Packages]
MdeModulePkg/MdeModulePkg.dec
MdePkg/MdePkg.dec
OvmfPkg/OvmfPkg.dec
[Depex]
gEdkiiIoMmuProtocolGuid OR gIoMmuAbsentProtocolGuid