ARM CPU driver inf file recently got updated to have a depedency
expression to load after GIC driver.
However, there are other Arm drivers like NorFlashDxe, MM Communication
drivers etc. which depends on ARM CPU driver for AddMemorySpace() and
its related operations to work properly.
Hence, NorflashDxe and other drivers encounter runtime asserts due to
bizzare order of loading drivers as they load ahead of ARM CPU Driver.

Hence to resolve runtime asserts due to bizzare order of loading drivers
either depex has to be updated in all the driver inf files that depend
on ARM CPU driver or reorder driver load order to load GIC Driver and
CPU driver load first.

This patch attempts to fix loading order of drivers on AARCH64 FVP.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Supreeth Venkatesh <>
 Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.dsc | 2 +-
 Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.fdf | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.dsc 
index 1be1e0115f..36ffc56a5a 100644
--- a/Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.dsc
+++ b/Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.dsc
@@ -219,6 +219,7 @@
   # Architectural Protocols
+  ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
@@ -270,7 +271,6 @@
-  ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
 !ifdef EDK2_ENABLE_PL111
diff --git a/Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.fdf 
index d30a50884f..1653138d8b 100644
--- a/Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.fdf
+++ b/Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.fdf
@@ -79,6 +79,7 @@ FvNameGuid         = 87940482-fc81-41c3-87e6-399cf85ac8a0
   # PI DXE Drivers producing Architectural Protocols (EFI Services)
+  INF ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
   INF ArmPkg/Drivers/CpuDxe/CpuDxe.inf
   INF MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
   INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
@@ -115,7 +116,6 @@ FvNameGuid         = 87940482-fc81-41c3-87e6-399cf85ac8a0
   INF MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
   INF MdeModulePkg/Universal/SerialDxe/SerialDxe.inf
-  INF ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
   INF ArmPkg/Drivers/TimerDxe/TimerDxe.inf
   INF ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf
 !ifdef EDK2_ENABLE_PL111

edk2-devel mailing list

Reply via email to