3 Copyright (c) 2013-2017, ARM Ltd. All rights reserved.<BR>
5 This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
15 #ifndef __ARM_GIC_DXE_H__
16 #define __ARM_GIC_DXE_H__
18 #include <Library/ArmGicLib.h>
19 #include <Library/ArmLib.h>
20 #include <Library/DebugLib.h>
21 #include <Library/IoLib.h>
22 #include <Library/MemoryAllocationLib.h>
23 #include <Library/UefiBootServicesTableLib.h>
25 #include <Protocol/Cpu.h>
26 #include <Protocol/HardwareInterrupt.h>
27 #include <Protocol/HardwareInterrupt2.h>
29 extern UINTN mGicNumInterrupts
;
30 extern HARDWARE_INTERRUPT_HANDLER
*gRegisteredInterruptHandlers
;
34 InstallAndRegisterInterruptService (
35 IN EFI_HARDWARE_INTERRUPT_PROTOCOL
*InterruptProtocol
,
36 IN EFI_HARDWARE_INTERRUPT2_PROTOCOL
*Interrupt2Protocol
,
37 IN EFI_CPU_INTERRUPT_HANDLER InterruptHandler
,
38 IN EFI_EVENT_NOTIFY ExitBootServicesEvent
43 RegisterInterruptSource (
44 IN EFI_HARDWARE_INTERRUPT_PROTOCOL
*This
,
45 IN HARDWARE_INTERRUPT_SOURCE Source
,
46 IN HARDWARE_INTERRUPT_HANDLER Handler
52 IN EFI_HANDLE ImageHandle
,
53 IN EFI_SYSTEM_TABLE
*SystemTable
59 IN EFI_HANDLE ImageHandle
,
60 IN EFI_SYSTEM_TABLE
*SystemTable
67 Calculate GICD_ICFGRn base address and corresponding bit
68 field Int_config[1] of the GIC distributor register.
70 @param Source Hardware source of the interrupt.
71 @param RegAddress Corresponding GICD_ICFGRn base address.
72 @param Config1Bit Bit number of F Int_config[1] bit in the register.
74 @retval EFI_SUCCESS Source interrupt supported.
75 @retval EFI_UNSUPPORTED Source interrupt is not supported.
78 GicGetDistributorIcfgBaseAndBit (
79 IN HARDWARE_INTERRUPT_SOURCE Source
,
80 OUT UINTN
*RegAddress
,