Discussion:
[edk2] ARM Exception Handling Refactor
Cohen, Eugene
2015-06-06 14:37:27 UTC
Permalink
Dear ArmPkg maintainers,

As I've been working towards an ARM implementation of SMM, I ran into an issue with the organization of exception handling code in edk2. Today we have exception handlers in the CpuDxe driver and another set in DebugAgentSymbolsBaseLib which is pulled in by SEC. Since SMM/EL3 will require yet another set of exception handlers I didn't want to create more duplication and instead refactored exception handling into a single library that can be used by all phases.

The ArmExceptionLib holds the exception handlers (Arm and AArch64, migrated out of the CpuDxe package) and pulls in the DefaultExceptionHandlerLib. It presents an interface for registering handler functions for each exception number. It is intended be used by any module that is responsible for owning the exception vectors at the given privilege level SEC/EL3, DXE/EL2, or SMM/EL3.

The code builds for Arm and AArch64 but it still needs testing. I wanted to send an early heads-up and get a review going on the code structure before finalizing it.

https://github.com/tianocore/edk2/pull/13/files

(Apologies in advance to Olivier who will get hit with this when he gets back from holiday!)


Contributed-under: TianoCore Contribution Agreement 1.0

Eugene

Loading...