14BOOLEAN mIsFlushingGCD;
53 case EfiCpuFlushTypeWriteBack:
56 case EfiCpuFlushTypeInvalidate:
59 case EfiCpuFlushTypeWriteBackInvalidate:
63 return EFI_INVALID_PARAMETER;
84 ArmEnableInterrupts ();
104 ArmDisableInterrupts ();
130 return EFI_INVALID_PARAMETER;
133 *State = ArmGetInterruptState ();
160 return EFI_UNSUPPORTED;
178 IN UINT32 TimerIndex,
179 OUT UINT64 *TimerValue,
180 OUT UINT64 *TimerPeriod OPTIONAL
183 return EFI_UNSUPPORTED;
227 CpuArchProtocol->DmaBufferAlignment = ArmCacheWritebackGranule ();
239 InitializeExceptions (&mCpu);
241 InitializeDma (&mCpu);
243 Status =
gBS->InstallMultipleProtocolInterfaces (
245 &gEfiCpuArchProtocolGuid,
255 mIsFlushingGCD =
TRUE;
256 SyncCacheConfig (&mCpu);
257 mIsFlushingGCD =
FALSE;
261 if (ArmIsMpCore ()) {
268 Status =
gBS->CreateEventEx (
VOID *EFIAPI WriteBackDataCacheRange(IN VOID *Address, IN UINTN Length)
VOID *EFIAPI InvalidateDataCacheRange(IN VOID *Address, IN UINTN Length)
VOID *EFIAPI WriteBackInvalidateDataCacheRange(IN VOID *Address, IN UINTN Length)
EFI_STATUS EFIAPI CpuGetInterruptState(IN EFI_CPU_ARCH_PROTOCOL *This, OUT BOOLEAN *State)
VOID EFIAPI IdleLoopEventCallback(IN EFI_EVENT Event, IN VOID *Context)
EFI_STATUS EFIAPI CpuRegisterInterruptHandler(IN EFI_CPU_ARCH_PROTOCOL *This, IN EFI_EXCEPTION_TYPE InterruptType, IN EFI_CPU_INTERRUPT_HANDLER InterruptHandler)
EFI_STATUS EFIAPI CpuGetTimerValue(IN EFI_CPU_ARCH_PROTOCOL *This, IN UINT32 TimerIndex, OUT UINT64 *TimerValue, OUT UINT64 *TimerPeriod OPTIONAL)
EFI_STATUS EFIAPI CpuDisableInterrupt(IN EFI_CPU_ARCH_PROTOCOL *This)
EFI_STATUS EFIAPI CpuInit(IN EFI_CPU_ARCH_PROTOCOL *This, IN EFI_CPU_INIT_TYPE InitType)
EFI_STATUS EFIAPI CpuFlushCpuDataCache(IN EFI_CPU_ARCH_PROTOCOL *This, IN EFI_PHYSICAL_ADDRESS Start, IN UINT64 Length, IN EFI_CPU_FLUSH_TYPE FlushType)
EFI_STATUS EFIAPI CpuEnableInterrupt(IN EFI_CPU_ARCH_PROTOCOL *This)
EFI_STATUS RegisterInterruptHandler(IN EFI_EXCEPTION_TYPE InterruptType, IN EFI_CPU_INTERRUPT_HANDLER InterruptHandler)
VOID EFIAPI PublishArmProcessorTable(VOID)
VOID(EFIAPI * EFI_CPU_INTERRUPT_HANDLER)(IN CONST EFI_EXCEPTION_TYPE InterruptType, IN CONST EFI_SYSTEM_CONTEXT SystemContext)
VOID EFIAPI CpuSleep(VOID)
#define ASSERT_EFI_ERROR(StatusParameter)
UINT64 EFI_PHYSICAL_ADDRESS
EFI_STATUS EFIAPI CpuSetMemoryAttributes(IN EFI_CPU_ARCH_PROTOCOL *This, IN EFI_PHYSICAL_ADDRESS BaseAddress, IN UINT64 Length, IN UINT64 Attributes)