Ring3: Fixed ArmPkg and ArmVirtPkg compilation.

This commit is contained in:
Mikhail Krichanov 2024-09-02 19:50:25 +03:00
parent d74b97ed94
commit ab1bc54366
10 changed files with 46 additions and 88 deletions

View File

@ -29,6 +29,6 @@ ArmCrashDumpDxeInitialize (
return mCpu->RegisterInterruptHandler (
mCpu,
EXCEPT_AARCH64_SYNCHRONOUS_EXCEPTIONS,
&DefaultExceptionHandler
(EFI_CPU_INTERRUPT_HANDLER)&DefaultExceptionHandler
);
}

View File

@ -764,17 +764,29 @@ ArmHasCcidx (
VOID
);
/**
Checks whether the CPU implements the Privileged Access Never.
@retval TRUE FEAT_PAN is implemented.
@retval FALSE FEAT_PAN is not mplemented.
**/
BOOLEAN
EFIAPI
ArmHasPan (
VOID
);
/**
Checks whether the CPU implements the Privileged Access Never.
@retval TRUE FEAT_PAN is implemented.
@retval FALSE FEAT_PAN is not mplemented.
**/
BOOLEAN
EFIAPI
ArmHasPan (
VOID
);
VOID
EFIAPI
ArmSetPan (
VOID
);
VOID
EFIAPI
ArmClearPan (
VOID
);
#ifdef MDE_CPU_AARCH64
///

View File

@ -524,4 +524,14 @@ ASM_FUNC(ArmReadIdAA64Pfr1)
mrs x0, ID_AA64PFR1_EL1
ret
.cpu cortex-a76
ASM_FUNC(ArmSetPan)
msr pan, #1
ret
ASM_FUNC(ArmClearPan)
msr pan, #0
ret
ASM_FUNCTION_REMOVE_IF_UNREFERENCED

View File

@ -167,4 +167,14 @@ ASM_FUNC (ArmGetPhysicalAddressBits)
movge r0, #40 // 40 bits if LPAE
bx lr
.arch armv8.1-a
ASM_FUNC(ArmSetPan)
setpan #1
bx LR
ASM_FUNC(ArmClearPan)
setpan #0
bx LR
ASM_FUNCTION_REMOVE_IF_UNREFERENCED

View File

@ -11,6 +11,7 @@
#include <Chipset/AArch64.h>
#include <Uefi.h>
#include <Library/ArmLib.h>
#include <Library/UefiLib.h>
#include <Library/BaseLib.h>
#include <Library/DebugLib.h>
@ -47,12 +48,6 @@ GetImageName (
OUT UINTN *DebugBase
);
VOID
EFIAPI
ArmClearPan (
VOID
);
STATIC
VOID
DescribeInstructionOrDataAbort (

View File

@ -37,6 +37,7 @@
ArmDisassemblerLib
SerialPortLib
UefiBootServicesTableLib
ArmLib
[Guids]
gEfiDebugImageInfoTableGuid

View File

@ -145,25 +145,3 @@ ASM_FUNC(ReturnToCore)
msr daifclr, #0xf
isb
ret
//------------------------------------------------------------------------------
// VOID
// EFIAPI
// ArmSetPan (
// VOID
// );
//------------------------------------------------------------------------------
ASM_FUNC(ArmSetPan)
msr pan, #1
ret
//------------------------------------------------------------------------------
// VOID
// EFIAPI
// ArmClearPan (
// VOID
// );
//------------------------------------------------------------------------------
ASM_FUNC(ArmClearPan)
msr pan, #0
ret

View File

@ -32,18 +32,6 @@ ReturnToCore (
IN UINTN CoreSp
);
VOID
EFIAPI
ArmSetPan (
VOID
);
VOID
EFIAPI
ArmClearPan (
VOID
);
STATIC
EFI_STATUS
EFIAPI

View File

@ -7,8 +7,6 @@
#include <AsmMacroIoLib.h>
.arch armv8.1a
//------------------------------------------------------------------------------
// EFI_STATUS
// EFIAPI
@ -124,25 +122,3 @@ ASM_FUNC(ReturnToCore)
isb
bx LR
//------------------------------------------------------------------------------
// VOID
// EFIAPI
// ArmSetPan (
// VOID
// );
//------------------------------------------------------------------------------
ASM_FUNC(ArmSetPan)
setpan #1
bx LR
//------------------------------------------------------------------------------
// VOID
// EFIAPI
// ArmClearPan (
// VOID
// );
//------------------------------------------------------------------------------
ASM_FUNC(ArmClearPan)
setpan #0
bx LR

View File

@ -29,18 +29,6 @@ ReturnToCore (
IN UINTN CoreSp
);
VOID
EFIAPI
ArmSetPan (
VOID
);
VOID
EFIAPI
ArmClearPan (
VOID
);
STATIC
EFI_STATUS
EFIAPI