diff --git a/ArmPkg/Include/Chipset/AArch64.h b/ArmPkg/Include/Chipset/AArch64.h index cac6366679..36ab902352 100644 --- a/ArmPkg/Include/Chipset/AArch64.h +++ b/ArmPkg/Include/Chipset/AArch64.h @@ -236,16 +236,6 @@ ArmReadCurrentEL ( VOID ); -VOID -ArmSetPan ( - VOID - ); - -VOID -ArmClearPan ( - VOID - ); - UINTN ArmWriteCptr ( IN UINT64 Cptr diff --git a/ArmPkg/Library/ArmLib/AArch64/AArch64Support.S b/ArmPkg/Library/ArmLib/AArch64/AArch64Support.S index 37c5ad0662..a7111e5188 100644 --- a/ArmPkg/Library/ArmLib/AArch64/AArch64Support.S +++ b/ArmPkg/Library/ArmLib/AArch64/AArch64Support.S @@ -464,16 +464,6 @@ ASM_FUNC(ArmReadCurrentEL) mrs x0, CurrentEL ret -// VOID ArmSetPan(VOID) -ASM_FUNC(ArmSetPan) - msr pan, #1 - ret - -// VOID ArmClearPan(VOID) -ASM_FUNC(ArmClearPan) - msr pan, #0 - ret - // UINT32 ArmReadCntHctl(VOID) ASM_FUNC(ArmReadCntHctl) mrs x0, cnthctl_el2 diff --git a/ArmPkg/Library/DefaultExceptionHandlerLib/AArch64/DefaultExceptionHandler.c b/ArmPkg/Library/DefaultExceptionHandlerLib/AArch64/DefaultExceptionHandler.c index 877f66a55e..3793a72255 100644 --- a/ArmPkg/Library/DefaultExceptionHandlerLib/AArch64/DefaultExceptionHandler.c +++ b/ArmPkg/Library/DefaultExceptionHandlerLib/AArch64/DefaultExceptionHandler.c @@ -54,6 +54,12 @@ GetImageName ( OUT UINTN *DebugBase ); +VOID +EFIAPI +ArmClearPan ( + VOID + ); + STATIC VOID DescribeInstructionOrDataAbort ( diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template index f00a8db12b..da055561cb 100755 --- a/BaseTools/Conf/tools_def.template +++ b/BaseTools/Conf/tools_def.template @@ -787,7 +787,7 @@ DEFINE GCC5_X64_DLINK_FLAGS = DEF(GCC5_IA32_X64_DLINK_FLAGS) -Wl,-melf_ DEFINE GCC5_X64_DLINK2_FLAGS = DEF(GCC_DLINK2_FLAGS_COMMON) -Wno-error DEFINE GCC5_ASM_FLAGS = DEF(GCC_ASM_FLAGS) DEFINE GCC5_ARM_ASM_FLAGS = DEF(GCC_ASM_FLAGS) -mlittle-endian -march=armv7-a -DEFINE GCC5_AARCH64_ASM_FLAGS = DEF(GCC_ASM_FLAGS) -mlittle-endian -mcpu=cortex-a76 +DEFINE GCC5_AARCH64_ASM_FLAGS = DEF(GCC_ASM_FLAGS) -mlittle-endian DEFINE GCC5_ARM_CC_FLAGS = DEF(GCC_ARM_CC_FLAGS) -fstack-protector -mword-relocations DEFINE GCC5_AARCH64_CC_FLAGS = DEF(GCC5_ALL_CC_FLAGS) DEF(GCC_AARCH64_CC_FLAGS) -mcmodel=small DEFINE GCC5_ARM_DLINK_FLAGS = DEF(GCC_ARM_DLINK_FLAGS) -Wl,--oformat=elf32-littlearm @@ -1291,7 +1291,7 @@ DEFINE CLANGDWARF_AARCH64_DLINK_FLAGS = DEF(CLANGDWARF_AARCH64_TARGET) DEF(GCC_ *_CLANGDWARF_AARCH64_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) -fno-lto *_CLANGDWARF_AARCH64_ASLDLINK_FLAGS = DEF(CLANGDWARF_AARCH64_TARGET) DEF(GCC_AARCH64_ASLDLINK_FLAGS) -fuse-ld=lld -*_CLANGDWARF_AARCH64_ASM_FLAGS = DEF(GCC_ASM_FLAGS) DEF(CLANGDWARF_AARCH64_TARGET) -Qunused-arguments -mcpu=cortex-a76 +*_CLANGDWARF_AARCH64_ASM_FLAGS = DEF(GCC_ASM_FLAGS) DEF(CLANGDWARF_AARCH64_TARGET) -Qunused-arguments *_CLANGDWARF_AARCH64_DLINK_FLAGS = DEF(CLANGDWARF_AARCH64_TARGET) DEF(GCC_AARCH64_DLINK_FLAGS) DEF(GCC_ALIGN) *_CLANGDWARF_AARCH64_DLINK_SECPEIFLAGS = DEF(GCC_ALIGN) *_CLANGDWARF_AARCH64_DLINK2_FLAGS = DEF(GCC_DLINK2_FLAGS_COMMON) diff --git a/MdeModulePkg/Core/Dxe/SysCall/AARCH64/CoreBootServices.S b/MdeModulePkg/Core/Dxe/SysCall/AARCH64/CoreBootServices.S index 8973f9fa33..f570b318e6 100644 --- a/MdeModulePkg/Core/Dxe/SysCall/AARCH64/CoreBootServices.S +++ b/MdeModulePkg/Core/Dxe/SysCall/AARCH64/CoreBootServices.S @@ -7,6 +7,8 @@ #include +.cpu cortex-a76 + //------------------------------------------------------------------------------ // EFI_STATUS // EFIAPI @@ -114,3 +116,25 @@ ASM_FUNC(ReturnToCore) ldp x29, x30, [sp] add sp, sp, #0x10 ret + +//------------------------------------------------------------------------------ +// VOID +// EFIAPI +// ArmSetPan ( +// VOID +// ); +//------------------------------------------------------------------------------ +ASM_FUNC(ArmSetPan) + msr pan, #1 + ret + +//------------------------------------------------------------------------------ +// VOID +// EFIAPI +// ArmClearPan ( +// VOID +// ); +//------------------------------------------------------------------------------ +ASM_FUNC(ArmClearPan) + msr pan, #0 + ret diff --git a/MdeModulePkg/Core/Dxe/SysCall/AARCH64/InitializeMsr.c b/MdeModulePkg/Core/Dxe/SysCall/AARCH64/InitializeMsr.c index bfdb466eb7..88b06ac53a 100644 --- a/MdeModulePkg/Core/Dxe/SysCall/AARCH64/InitializeMsr.c +++ b/MdeModulePkg/Core/Dxe/SysCall/AARCH64/InitializeMsr.c @@ -30,6 +30,18 @@ ReturnToCore ( IN UINTN CoreSp ); +VOID +EFIAPI +ArmSetPan ( + VOID + ); + +VOID +EFIAPI +ArmClearPan ( + VOID + ); + STATIC EFI_STATUS EFIAPI