mirror of https://github.com/acidanthera/audk.git
Omap35xxPkg/InterruptDxe: Fix dependency chain with the Arch Cpu Dxe
The CPU Dxe should be loaded before the Interrupt Dxe. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11969 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
1c1e70fa6e
commit
d326412cce
|
@ -31,8 +31,6 @@
|
||||||
//
|
//
|
||||||
// Notifications
|
// Notifications
|
||||||
//
|
//
|
||||||
VOID *CpuProtocolNotificationToken = NULL;
|
|
||||||
EFI_EVENT CpuProtocolNotificationEvent = (EFI_EVENT)NULL;
|
|
||||||
EFI_EVENT EfiExitBootServicesEvent = (EFI_EVENT)NULL;
|
EFI_EVENT EfiExitBootServicesEvent = (EFI_EVENT)NULL;
|
||||||
|
|
||||||
|
|
||||||
|
@ -298,37 +296,6 @@ EFI_HARDWARE_INTERRUPT_PROTOCOL gHardwareInterruptProtocol = {
|
||||||
EndOfInterrupt
|
EndOfInterrupt
|
||||||
};
|
};
|
||||||
|
|
||||||
//
|
|
||||||
// Notification routines
|
|
||||||
//
|
|
||||||
VOID
|
|
||||||
CpuProtocolInstalledNotification (
|
|
||||||
IN EFI_EVENT Event,
|
|
||||||
IN VOID *Context
|
|
||||||
)
|
|
||||||
{
|
|
||||||
EFI_STATUS Status;
|
|
||||||
EFI_CPU_ARCH_PROTOCOL *Cpu;
|
|
||||||
|
|
||||||
//
|
|
||||||
// Get the cpu protocol that this driver requires.
|
|
||||||
//
|
|
||||||
Status = gBS->LocateProtocol (&gEfiCpuArchProtocolGuid, NULL, (VOID **)&Cpu);
|
|
||||||
ASSERT_EFI_ERROR(Status);
|
|
||||||
|
|
||||||
//
|
|
||||||
// Unregister the default exception handler.
|
|
||||||
//
|
|
||||||
Status = Cpu->RegisterInterruptHandler (Cpu, EXCEPT_ARM_IRQ, NULL);
|
|
||||||
ASSERT_EFI_ERROR(Status);
|
|
||||||
|
|
||||||
//
|
|
||||||
// Register to receive interrupts
|
|
||||||
//
|
|
||||||
Status = Cpu->RegisterInterruptHandler (Cpu, EXCEPT_ARM_IRQ, IrqInterruptHandler);
|
|
||||||
ASSERT_EFI_ERROR(Status);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Initialize the state information for the CPU Architectural Protocol
|
Initialize the state information for the CPU Architectural Protocol
|
||||||
|
|
||||||
|
@ -347,6 +314,7 @@ InterruptDxeInitialize (
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
EFI_STATUS Status;
|
EFI_STATUS Status;
|
||||||
|
EFI_CPU_ARCH_PROTOCOL *Cpu;
|
||||||
|
|
||||||
// Make sure the Interrupt Controller Protocol is not already installed in the system.
|
// Make sure the Interrupt Controller Protocol is not already installed in the system.
|
||||||
ASSERT_PROTOCOL_ALREADY_INSTALLED (NULL, &gHardwareInterruptProtocolGuid);
|
ASSERT_PROTOCOL_ALREADY_INSTALLED (NULL, &gHardwareInterruptProtocolGuid);
|
||||||
|
@ -362,11 +330,22 @@ InterruptDxeInitialize (
|
||||||
NULL);
|
NULL);
|
||||||
ASSERT_EFI_ERROR(Status);
|
ASSERT_EFI_ERROR(Status);
|
||||||
|
|
||||||
// Set up to be notified when the Cpu protocol is installed.
|
//
|
||||||
Status = gBS->CreateEvent(EVT_NOTIFY_SIGNAL, TPL_CALLBACK, CpuProtocolInstalledNotification, NULL, &CpuProtocolNotificationEvent);
|
// Get the CPU protocol that this driver requires.
|
||||||
|
//
|
||||||
|
Status = gBS->LocateProtocol(&gEfiCpuArchProtocolGuid, NULL, (VOID **)&Cpu);
|
||||||
ASSERT_EFI_ERROR(Status);
|
ASSERT_EFI_ERROR(Status);
|
||||||
|
|
||||||
Status = gBS->RegisterProtocolNotify(&gEfiCpuArchProtocolGuid, CpuProtocolNotificationEvent, (VOID *)&CpuProtocolNotificationToken);
|
//
|
||||||
|
// Unregister the default exception handler.
|
||||||
|
//
|
||||||
|
Status = Cpu->RegisterInterruptHandler(Cpu, EXCEPT_ARM_IRQ, NULL);
|
||||||
|
ASSERT_EFI_ERROR(Status);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Register to receive interrupts
|
||||||
|
//
|
||||||
|
Status = Cpu->RegisterInterruptHandler(Cpu, EXCEPT_ARM_IRQ, IrqInterruptHandler);
|
||||||
ASSERT_EFI_ERROR(Status);
|
ASSERT_EFI_ERROR(Status);
|
||||||
|
|
||||||
// Register for an ExitBootServicesEvent
|
// Register for an ExitBootServicesEvent
|
||||||
|
|
|
@ -53,5 +53,5 @@
|
||||||
[FixedPcd.common]
|
[FixedPcd.common]
|
||||||
gEmbeddedTokenSpaceGuid.PcdInterruptBaseAddress
|
gEmbeddedTokenSpaceGuid.PcdInterruptBaseAddress
|
||||||
|
|
||||||
[depex]
|
[Depex]
|
||||||
TRUE
|
gEfiCpuArchProtocolGuid
|
||||||
|
|
Loading…
Reference in New Issue