The CpuExceptionHandlerLib LibraryClass dependency is trivially satisfied on most ARM systems by the null implementation, i.e., an implementation that does absolutely nothing.
The upstream implementation of ARM's CpuDxe will be refactored to delegate the registration and dispatch of exceptions to CpuExceptionHandlerLib, of which an ARM implementation (both AArch32 and AArch64) has been contributed by Eugene Cohen. This means all current users of ARM's CpuDxe will need to upgrade. Please refer to the attached patches #2 and #3 for an example.
Ard Biesheuvel (3): Chips/TI/Omap35xx: drop CpuExceptionHandlerLib library class resolution Platforms/TI/BeagleBoard: move to ARM version of CpuExceptionHandlerLib Platforms/VExpress: move to ARM version of CpuExceptionHandlerLib
Chips/TexasInstruments/Omap35xx/Omap35xxPkg.dsc | 1 - Platforms/ARM/VExpress/ArmVExpress.dsc.inc | 2 +- Platforms/TexasInstruments/BeagleBoard/BeagleBoardPkg.dsc | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-)
Remove the null resolution for CpuExceptionHandlerLib: this version will no longer work once we update ARM's CpuDxe to depend on the ARM specific version. Since this module does not actually rely on it, let's just remove all mention of it.
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ard Biesheuvel ard.biesheuvel@linaro.org Reviewed-by: Leif Lindholm leif.lindholm@linaro.org
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ard Biesheuvel ard.biesheuvel@linaro.org --- Chips/TexasInstruments/Omap35xx/Omap35xxPkg.dsc | 1 - 1 file changed, 1 deletion(-)
diff --git a/Chips/TexasInstruments/Omap35xx/Omap35xxPkg.dsc b/Chips/TexasInstruments/Omap35xx/Omap35xxPkg.dsc index 60edc79a2cd2..f6606cafb849 100644 --- a/Chips/TexasInstruments/Omap35xx/Omap35xxPkg.dsc +++ b/Chips/TexasInstruments/Omap35xx/Omap35xxPkg.dsc @@ -43,7 +43,6 @@
CacheMaintenanceLib|ArmPkg/Library/ArmCacheMaintenanceLib/ArmCacheMaintenanceLib.inf DefaultExceptioHandlerLib|ArmPkg/Library/DefaultExceptionHandlerLib/DefaultExceptionHandlerLib.inf - CpuExceptionHandlerLib|MdeModulePkg/Library/CpuExceptionHandlerLibNull/CpuExceptionHandlerLibNull.inf PrePiLib|EmbeddedPkg/Library/PrePiLib/PrePiLib.inf
RealTimeClockLib|EmbeddedPkg/Library/TemplateRealTimeClockLib/TemplateRealTimeClockLib.inf
Change our resolution for the previously unused CpuExceptionHandlerLib from the null implementation to the newly added implementation specific to AARCH64 and ARM. This is needed since our CpuDxe will start using it in a subsequent patch.
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ard Biesheuvel ard.biesheuvel@linaro.org Reviewed-by: Leif Lindholm leif.lindholm@linaro.org --- Platforms/TexasInstruments/BeagleBoard/BeagleBoardPkg.dsc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Platforms/TexasInstruments/BeagleBoard/BeagleBoardPkg.dsc b/Platforms/TexasInstruments/BeagleBoard/BeagleBoardPkg.dsc index 73c8d6aa2931..e24df3b7a8df 100644 --- a/Platforms/TexasInstruments/BeagleBoard/BeagleBoardPkg.dsc +++ b/Platforms/TexasInstruments/BeagleBoard/BeagleBoardPkg.dsc @@ -83,7 +83,7 @@
CacheMaintenanceLib|ArmPkg/Library/ArmCacheMaintenanceLib/ArmCacheMaintenanceLib.inf DefaultExceptionHandlerLib|ArmPkg/Library/DefaultExceptionHandlerLib/DefaultExceptionHandlerLib.inf - CpuExceptionHandlerLib|MdeModulePkg/Library/CpuExceptionHandlerLibNull/CpuExceptionHandlerLibNull.inf + CpuExceptionHandlerLib|ArmPkg/Library/ArmExceptionLib/ArmExceptionLib.inf PrePiLib|EmbeddedPkg/Library/PrePiLib/PrePiLib.inf
SerialPortLib|OpenPlatformPkg/Chips/TexasInstruments/Omap35xx/Library/SerialPortLib/SerialPortLib.inf
Change our resolution for the previously unused CpuExceptionHandlerLib from the null implementation to the newly added implementation specific to AARCH64 and ARM. This is needed since our CpuDxe will start using it in a subsequent patch.
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ard Biesheuvel ard.biesheuvel@linaro.org --- Platforms/ARM/VExpress/ArmVExpress.dsc.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Platforms/ARM/VExpress/ArmVExpress.dsc.inc b/Platforms/ARM/VExpress/ArmVExpress.dsc.inc index 42355f405502..9bb45c82a5e9 100644 --- a/Platforms/ARM/VExpress/ArmVExpress.dsc.inc +++ b/Platforms/ARM/VExpress/ArmVExpress.dsc.inc @@ -71,7 +71,7 @@ # ARM Architectural Libraries CacheMaintenanceLib|ArmPkg/Library/ArmCacheMaintenanceLib/ArmCacheMaintenanceLib.inf DefaultExceptionHandlerLib|ArmPkg/Library/DefaultExceptionHandlerLib/DefaultExceptionHandlerLib.inf - CpuExceptionHandlerLib|MdeModulePkg/Library/CpuExceptionHandlerLibNull/CpuExceptionHandlerLibNull.inf + CpuExceptionHandlerLib|ArmPkg/Library/ArmExceptionLib/ArmExceptionLib.inf ArmDisassemblerLib|ArmPkg/Library/ArmDisassemblerLib/ArmDisassemblerLib.inf DmaLib|ArmPkg/Library/ArmDmaLib/ArmDmaLib.inf ArmGicLib|ArmPkg/Drivers/ArmGic/ArmGicLib.inf