In a later patch, we'll modify the depex of "ArmPkg/Drivers/CpuDxe/CpuDxe.inf" (currently "AFTER gArmGicDxeFileGuid") to "gHardwareInterruptProtocolGuid OR gHardwareInterrupt2ProtocolGuid". Considering platforms that include "ArmPkg/Drivers/CpuDxe/CpuDxe.inf", there are two classes: (1) The platform gets its gHardwareInterruptProtocolGuid or gHardwareInterrupt2ProtocolGuid instance from "ArmPkg/Drivers/ArmGic/ArmGicDxe.inf". For such platforms, the upcoming CpuDxe change is not a problem, because commit61a7b0ec63
made ArmGicDxe wait for the CPU Arch Protocol with a protocol notify. (2) The platform gets its hardware interrupt protocol(s) from a different driver that has a hard depex on the CPU Arch Protocol. The upcoming CpuDxe change would lead to a loop in the DXE dispatch order. In the edk2 tree, only "BeagleBoardPkg/BeagleBoardPkg.dsc" falls in class (2), and the driver in question is "Omap35xxPkg/InterruptDxe". Port (most of) commit61a7b0ec63
to it. Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org> Cc: Leif Lindholm <leif.lindholm@linaro.org> Cc: Steve Capper <steve.capper@linaro.org> Cc: Supreeth Venkatesh <Supreeth.Venkatesh@arm.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
55 lines
1.4 KiB
INI
55 lines
1.4 KiB
INI
#/** @file
|
|
#
|
|
# Interrupt DXE driver
|
|
#
|
|
# Copyright (c) 2008 - 2010, Apple Inc. All rights reserved.<BR>
|
|
# 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 = 0x00010005
|
|
BASE_NAME = Omap35xxBoardInterruptDxe
|
|
FILE_GUID = 23eed05d-1b93-4a1a-8e1b-931d69e37952
|
|
MODULE_TYPE = DXE_DRIVER
|
|
VERSION_STRING = 1.0
|
|
|
|
ENTRY_POINT = InterruptDxeInitialize
|
|
|
|
|
|
[Sources.common]
|
|
HardwareInterrupt.c
|
|
|
|
|
|
[Packages]
|
|
ArmPkg/ArmPkg.dec
|
|
Omap35xxPkg/Omap35xxPkg.dec
|
|
MdePkg/MdePkg.dec
|
|
EmbeddedPkg/EmbeddedPkg.dec
|
|
|
|
[LibraryClasses]
|
|
BaseLib
|
|
UefiLib
|
|
UefiBootServicesTableLib
|
|
DebugLib
|
|
PrintLib
|
|
UefiDriverEntryPoint
|
|
IoLib
|
|
ArmLib
|
|
|
|
[Protocols]
|
|
gHardwareInterruptProtocolGuid ## PRODUCES
|
|
gEfiCpuArchProtocolGuid ## CONSUMES ## NOTIFY
|
|
|
|
[FixedPcd.common]
|
|
gEmbeddedTokenSpaceGuid.PcdInterruptBaseAddress
|
|
|
|
[Depex]
|
|
TRUE
|