Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Chen Fan <chen.fan.f...@cn.fujitsu.com> --- UefiCpuPkg/CpuDxe/CpuMp.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+)
diff --git a/UefiCpuPkg/CpuDxe/CpuMp.c b/UefiCpuPkg/CpuDxe/CpuMp.c index 71b62be..94b72b7 100644 --- a/UefiCpuPkg/CpuDxe/CpuMp.c +++ b/UefiCpuPkg/CpuDxe/CpuMp.c @@ -1488,6 +1488,30 @@ ExitBootServicesCallback ( } /** + Specify NMI interruptHandler. + + @param InterruptType Defines the type of interrupt or exception that + occurred on the processor.This parameter is processor architecture specific. + @param SystemContext A pointer to the processor context when + the interrupt occurred on the processor. + +**/ +VOID +EFIAPI +NMIInterruptHandler ( + IN EFI_EXCEPTION_TYPE InterruptType, + IN EFI_SYSTEM_CONTEXT SystemContext + ) +{ + // + // NMI interrupt handler only for wake up AP with hlt state, + // so here no routine. + // + return; +} + + +/** Initialize Multi-processor support. **/ @@ -1497,6 +1521,7 @@ InitializeMpSupport ( ) { EFI_STATUS Status; + EFI_CPU_ARCH_PROTOCOL *Cpu; gMaxLogicalProcessorNumber = (UINTN) PcdGet32 (PcdCpuMaxLogicalProcessorNumber); if (gMaxLogicalProcessorNumber < 1) { @@ -1540,6 +1565,12 @@ InitializeMpSupport ( sizeof (CPU_DATA_BLOCK) * mMpSystemData.NumberOfProcessors, mMpSystemData.CpuDatas); + /* Register NMI interrupt handler */ + Status = gBS->LocateProtocol (&gEfiCpuArchProtocolGuid, NULL, (VOID **)&Cpu); + ASSERT_EFI_ERROR (Status); + Status = Cpu->RegisterInterruptHandler (Cpu, 2, NMIInterruptHandler); + ASSERT_EFI_ERROR (Status); + mAPsAlreadyInitFinished = TRUE; Status = gBS->InstallMultipleProtocolInterfaces ( -- 1.9.3 ------------------------------------------------------------------------------ Dive into the World of Parallel Programming. The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ _______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel