]> git.proxmox.com Git - mirror_edk2.git/blob - ArmPkg/Drivers/ArmGic/GicV3/Arm/ArmGicV3.asm
ArmPkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / ArmPkg / Drivers / ArmGic / GicV3 / Arm / ArmGicV3.asm
1 //
2 // Copyright (c) 2014, ARM Limited. All rights reserved.
3 //
4 // SPDX-License-Identifier: BSD-2-Clause-Patent
5 //
6 //
7
8 // For the moment we assume this will run in SVC mode on ARMv7
9
10
11 INCLUDE AsmMacroExport.inc
12
13 //UINT32
14 //EFIAPI
15 //ArmGicGetControlSystemRegisterEnable (
16 // VOID
17 // );
18 RVCT_ASM_EXPORT ArmGicV3GetControlSystemRegisterEnable
19 mrc p15, 0, r0, c12, c12, 5 // ICC_SRE
20 bx lr
21
22 //VOID
23 //EFIAPI
24 //ArmGicSetControlSystemRegisterEnable (
25 // IN UINT32 ControlSystemRegisterEnable
26 // );
27 RVCT_ASM_EXPORT ArmGicV3SetControlSystemRegisterEnable
28 mcr p15, 0, r0, c12, c12, 5 // ICC_SRE
29 isb
30 bx lr
31
32 //VOID
33 //ArmGicV3EnableInterruptInterface (
34 // VOID
35 // );
36 RVCT_ASM_EXPORT ArmGicV3EnableInterruptInterface
37 mov r0, #1
38 mcr p15, 0, r0, c12, c12, 7 // ICC_IGRPEN1
39 bx lr
40
41 //VOID
42 //ArmGicV3DisableInterruptInterface (
43 // VOID
44 // );
45 RVCT_ASM_EXPORT ArmGicV3DisableInterruptInterface
46 mov r0, #0
47 mcr p15, 0, r0, c12, c12, 7 // ICC_IGRPEN1
48 bx lr
49
50 //VOID
51 //ArmGicV3EndOfInterrupt (
52 // IN UINTN InterruptId
53 // );
54 RVCT_ASM_EXPORT ArmGicV3EndOfInterrupt
55 mcr p15, 0, r0, c12, c12, 1 //ICC_EOIR1
56 bx lr
57
58 //UINTN
59 //ArmGicV3AcknowledgeInterrupt (
60 // VOID
61 // );
62 RVCT_ASM_EXPORT ArmGicV3AcknowledgeInterrupt
63 mrc p15, 0, r0, c12, c12, 0 //ICC_IAR1
64 bx lr
65
66 //VOID
67 //ArmGicV3SetPriorityMask (
68 // IN UINTN Priority
69 // );
70 RVCT_ASM_EXPORT ArmGicV3SetPriorityMask
71 mcr p15, 0, r0, c4, c6, 0 //ICC_PMR
72 bx lr
73
74 //VOID
75 //ArmGicV3SetBinaryPointer (
76 // IN UINTN BinaryPoint
77 // );
78 RVCT_ASM_EXPORT ArmGicV3SetBinaryPointer
79 mcr p15, 0, r0, c12, c12, 3 //ICC_BPR1
80 bx lr
81
82 END