Before splitting off ArmGicArchLib and moving it out of ArmPkg/Drivers/ArmGic into ArmPkg/Library, make sure that the GIC specific declarations it depends on are not hidden away in local headers "GicV2/GicV2Lib.h" and "GicV3/GicV3Lib.h".
So merge them with <Library/ArmGicLib.h>. This is entirely appropriate, since this is not a header that declares a public interface into ArmGicLib, but defines implementation internals. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ard Biesheuvel <ard.biesheu...@linaro.org> --- ArmPkg/Drivers/ArmGic/AArch64/ArmGicArchLib.c | 2 - ArmPkg/Drivers/ArmGic/Arm/ArmGicArchLib.c | 2 - ArmPkg/Drivers/ArmGic/ArmGicLib.c | 3 - ArmPkg/Drivers/ArmGic/ArmGicSecLib.c | 2 - ArmPkg/Drivers/ArmGic/GicV2/ArmGicV2Dxe.c | 3 +- ArmPkg/Drivers/ArmGic/GicV2/ArmGicV2Lib.h | 54 ------- ArmPkg/Drivers/ArmGic/GicV3/ArmGicV3Dxe.c | 3 +- ArmPkg/Drivers/ArmGic/GicV3/ArmGicV3Lib.h | 68 -------- ArmPkg/Include/Library/ArmGicLib.h | 94 ++++++++++++ 9 files changed, 98 insertions(+), 133 deletions(-) diff --git a/ArmPkg/Drivers/ArmGic/AArch64/ArmGicArchLib.c b/ArmPkg/Drivers/ArmGic/AArch64/ArmGicArchLib.c index 88fa4621e613..0e0fa3b9f33e 100644 --- a/ArmPkg/Drivers/ArmGic/AArch64/ArmGicArchLib.c +++ b/ArmPkg/Drivers/ArmGic/AArch64/ArmGicArchLib.c @@ -15,8 +15,6 @@ #include <Library/ArmLib.h> #include <Library/ArmGicLib.h> -#include "GicV3/ArmGicV3Lib.h" - ARM_GIC_ARCH_REVISION EFIAPI ArmGicGetSupportedArchRevision ( diff --git a/ArmPkg/Drivers/ArmGic/Arm/ArmGicArchLib.c b/ArmPkg/Drivers/ArmGic/Arm/ArmGicArchLib.c index 9ef56efeaa7b..f256de704631 100644 --- a/ArmPkg/Drivers/ArmGic/Arm/ArmGicArchLib.c +++ b/ArmPkg/Drivers/ArmGic/Arm/ArmGicArchLib.c @@ -15,8 +15,6 @@ #include <Library/ArmLib.h> #include <Library/ArmGicLib.h> -#include "GicV3/ArmGicV3Lib.h" - ARM_GIC_ARCH_REVISION EFIAPI ArmGicGetSupportedArchRevision ( diff --git a/ArmPkg/Drivers/ArmGic/ArmGicLib.c b/ArmPkg/Drivers/ArmGic/ArmGicLib.c index 48708e3812b4..248e896c4b94 100644 --- a/ArmPkg/Drivers/ArmGic/ArmGicLib.c +++ b/ArmPkg/Drivers/ArmGic/ArmGicLib.c @@ -19,9 +19,6 @@ #include <Library/IoLib.h> #include <Library/PcdLib.h> -#include "GicV2/ArmGicV2Lib.h" -#include "GicV3/ArmGicV3Lib.h" - /** * Return the base address of the GIC redistributor for the current CPU * diff --git a/ArmPkg/Drivers/ArmGic/ArmGicSecLib.c b/ArmPkg/Drivers/ArmGic/ArmGicSecLib.c index 1fdd4d73bd7d..d64806d2f16b 100644 --- a/ArmPkg/Drivers/ArmGic/ArmGicSecLib.c +++ b/ArmPkg/Drivers/ArmGic/ArmGicSecLib.c @@ -17,8 +17,6 @@ #include <Library/IoLib.h> #include <Library/ArmGicLib.h> -#include "GicV2/ArmGicV2Lib.h" - /* * This function configures the interrupts set by the mask to be secure. * diff --git a/ArmPkg/Drivers/ArmGic/GicV2/ArmGicV2Dxe.c b/ArmPkg/Drivers/ArmGic/GicV2/ArmGicV2Dxe.c index 743c534e04d9..e649ac1bc6af 100644 --- a/ArmPkg/Drivers/ArmGic/GicV2/ArmGicV2Dxe.c +++ b/ArmPkg/Drivers/ArmGic/GicV2/ArmGicV2Dxe.c @@ -22,8 +22,9 @@ Abstract: --*/ +#include <Library/ArmGicLib.h> + #include "ArmGicDxe.h" -#include "GicV2/ArmGicV2Lib.h" #define ARM_GIC_DEFAULT_PRIORITY 0x80 diff --git a/ArmPkg/Drivers/ArmGic/GicV2/ArmGicV2Lib.h b/ArmPkg/Drivers/ArmGic/GicV2/ArmGicV2Lib.h deleted file mode 100644 index 6803467346a3..000000000000 --- a/ArmPkg/Drivers/ArmGic/GicV2/ArmGicV2Lib.h +++ /dev/null @@ -1,54 +0,0 @@ -/** @file -* -* Copyright (c) 2013-2014, ARM Limited. All rights reserved. -* -* 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. -* -**/ - -#ifndef _ARM_GIC_V2_H_ -#define _ARM_GIC_V2_H_ - -// Interrupts from 1020 to 1023 are considered as special interrupts (eg: spurious interrupts) -#define ARM_GIC_IS_SPECIAL_INTERRUPTS(Interrupt) (((Interrupt) >= 1020) && ((Interrupt) <= 1023)) - -VOID -EFIAPI -ArmGicV2SetupNonSecure ( - IN UINTN MpId, - IN INTN GicDistributorBase, - IN INTN GicInterruptInterfaceBase - ); - -VOID -EFIAPI -ArmGicV2EnableInterruptInterface ( - IN INTN GicInterruptInterfaceBase - ); - -VOID -EFIAPI -ArmGicV2DisableInterruptInterface ( - IN INTN GicInterruptInterfaceBase - ); - -UINTN -EFIAPI -ArmGicV2AcknowledgeInterrupt ( - IN UINTN GicInterruptInterfaceBase - ); - -VOID -EFIAPI -ArmGicV2EndOfInterrupt ( - IN UINTN GicInterruptInterfaceBase, - IN UINTN Source - ); - -#endif diff --git a/ArmPkg/Drivers/ArmGic/GicV3/ArmGicV3Dxe.c b/ArmPkg/Drivers/ArmGic/GicV3/ArmGicV3Dxe.c index 73cac8774056..4afa3d5a09c2 100644 --- a/ArmPkg/Drivers/ArmGic/GicV3/ArmGicV3Dxe.c +++ b/ArmPkg/Drivers/ArmGic/GicV3/ArmGicV3Dxe.c @@ -12,8 +12,9 @@ * **/ +#include <Library/ArmGicLib.h> + #include "ArmGicDxe.h" -#include "GicV3/ArmGicV3Lib.h" #define ARM_GIC_DEFAULT_PRIORITY 0x80 diff --git a/ArmPkg/Drivers/ArmGic/GicV3/ArmGicV3Lib.h b/ArmPkg/Drivers/ArmGic/GicV3/ArmGicV3Lib.h deleted file mode 100644 index 794e8788a60b..000000000000 --- a/ArmPkg/Drivers/ArmGic/GicV3/ArmGicV3Lib.h +++ /dev/null @@ -1,68 +0,0 @@ -/** @file -* -* Copyright (c) 2014-2015, ARM Limited. All rights reserved. -* -* 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. -* -**/ - -#ifndef _ARM_GIC_V3_H_ -#define _ARM_GIC_V3_H_ - -#define ICC_SRE_EL2_SRE (1 << 0) - -#define ARM_GICD_IROUTER_IRM BIT31 - -UINT32 -EFIAPI -ArmGicV3GetControlSystemRegisterEnable ( - VOID - ); - -VOID -EFIAPI -ArmGicV3SetControlSystemRegisterEnable ( - IN UINT32 ControlSystemRegisterEnable - ); - -VOID -EFIAPI -ArmGicV3EnableInterruptInterface ( - VOID - ); - -VOID -EFIAPI -ArmGicV3DisableInterruptInterface ( - VOID - ); - -UINTN -EFIAPI -ArmGicV3AcknowledgeInterrupt ( - VOID - ); - -VOID -EFIAPI -ArmGicV3EndOfInterrupt ( - IN UINTN Source - ); - -VOID -ArmGicV3SetBinaryPointer ( - IN UINTN BinaryPoint - ); - -VOID -ArmGicV3SetPriorityMask ( - IN UINTN Priority - ); - -#endif diff --git a/ArmPkg/Include/Library/ArmGicLib.h b/ArmPkg/Include/Library/ArmGicLib.h index e2a4818c4c0c..e3db9c0d250f 100644 --- a/ArmPkg/Include/Library/ArmGicLib.h +++ b/ArmPkg/Include/Library/ArmGicLib.h @@ -231,4 +231,98 @@ ArmGicIsInterruptEnabled ( IN UINTN Source ); +// +// GIC revision 2 specific declarations +// + +// Interrupts from 1020 to 1023 are considered as special interrupts (eg: spurious interrupts) +#define ARM_GIC_IS_SPECIAL_INTERRUPTS(Interrupt) (((Interrupt) >= 1020) && ((Interrupt) <= 1023)) + +VOID +EFIAPI +ArmGicV2SetupNonSecure ( + IN UINTN MpId, + IN INTN GicDistributorBase, + IN INTN GicInterruptInterfaceBase + ); + +VOID +EFIAPI +ArmGicV2EnableInterruptInterface ( + IN INTN GicInterruptInterfaceBase + ); + +VOID +EFIAPI +ArmGicV2DisableInterruptInterface ( + IN INTN GicInterruptInterfaceBase + ); + +UINTN +EFIAPI +ArmGicV2AcknowledgeInterrupt ( + IN UINTN GicInterruptInterfaceBase + ); + +VOID +EFIAPI +ArmGicV2EndOfInterrupt ( + IN UINTN GicInterruptInterfaceBase, + IN UINTN Source + ); + +// +// GIC revision 3 specific declarations +// + +#define ICC_SRE_EL2_SRE (1 << 0) + +#define ARM_GICD_IROUTER_IRM BIT31 + +UINT32 +EFIAPI +ArmGicV3GetControlSystemRegisterEnable ( + VOID + ); + +VOID +EFIAPI +ArmGicV3SetControlSystemRegisterEnable ( + IN UINT32 ControlSystemRegisterEnable + ); + +VOID +EFIAPI +ArmGicV3EnableInterruptInterface ( + VOID + ); + +VOID +EFIAPI +ArmGicV3DisableInterruptInterface ( + VOID + ); + +UINTN +EFIAPI +ArmGicV3AcknowledgeInterrupt ( + VOID + ); + +VOID +EFIAPI +ArmGicV3EndOfInterrupt ( + IN UINTN Source + ); + +VOID +ArmGicV3SetBinaryPointer ( + IN UINTN BinaryPoint + ); + +VOID +ArmGicV3SetPriorityMask ( + IN UINTN Priority + ); + #endif -- 1.9.1 ------------------------------------------------------------------------------ _______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel