TianoCore EDK2 master
Loading...
Searching...
No Matches
AArch64Lib.c
Go to the documentation of this file.
1
11#include <Base.h>
12
13#include <Library/ArmLib.h>
14#include <Library/DebugLib.h>
15
16#include <AArch64/AArch64.h>
17
18#include "AArch64Lib.h"
19#include "ArmLibPrivate.h"
20
27BOOLEAN
28EFIAPI
30 VOID
31 )
32{
33 return ((ArmReadIdAA64Pfr0 () & AARCH64_PFR0_GIC) != 0);
34}
35
41BOOLEAN
42EFIAPI
44 VOID
45 )
46{
47 return ((ArmReadIdAA64Pfr2 () & AARCH64_PFR2_GCIE) != 0);
48}
49
55BOOLEAN
56EFIAPI
58 VOID
59 )
60{
61 UINTN Mmfr2;
62
63 Mmfr2 = ArmReadIdAA64Mmfr2 ();
64 return (((Mmfr2 >> 20) & 0xF) == 1) ? TRUE : FALSE;
65}
66
73BOOLEAN
74EFIAPI
76 VOID
77 )
78{
79 return ((ArmReadIdAA64Mmfr1 () & AARCH64_MMFR1_VH) != 0);
80}
81
88BOOLEAN
89EFIAPI
91 VOID
92 )
93{
94 return ((ArmReadIdAA64Dfr0 () & AARCH64_DFR0_TRBE) != 0);
95}
96
103BOOLEAN
104EFIAPI
106 VOID
107 )
108{
109 // The ID_AA64DFR0_EL1.TraceVer field identifies the presence of FEAT_ETE.
110 return ((ArmReadIdAA64Dfr0 () & AARCH64_DFR0_TRACEVER) != 0);
111}
112
120BOOLEAN
121EFIAPI
123 VOID
124 )
125{
126 UINT64 Mmfr0;
127
128 Mmfr0 = ArmReadIdAA64Mmfr0 ();
129
130 return ((Mmfr0 & AARCH64_MMFR0_TGRAN4_MASK) == AARCH64_MMFR0_TGRAN4_52BITS);
131}
UINT64 UINTN
BOOLEAN EFIAPI ArmHasGicSystemRegisters(VOID)
Definition: AArch64Lib.c:29
BOOLEAN EFIAPI ArmHasCcidx(VOID)
Definition: AArch64Lib.c:57
BOOLEAN EFIAPI ArmHasVhe(VOID)
Definition: AArch64Lib.c:75
BOOLEAN EFIAPI ArmHas52BitTgran4(VOID)
Definition: AArch64Lib.c:122
BOOLEAN EFIAPI ArmHasTrbe(VOID)
Definition: AArch64Lib.c:90
BOOLEAN EFIAPI ArmHasEte(VOID)
Definition: AArch64Lib.c:105
BOOLEAN EFIAPI ArmHasGicV5SystemRegisters(VOID)
Definition: AArch64Lib.c:43
UINTN EFIAPI ArmReadIdAA64Mmfr2(VOID)
#define VOID
Definition: Base.h:269
#define TRUE
Definition: Base.h:301
#define FALSE
Definition: Base.h:307