[edk2] ArmVirtPkg/ArmVirtQemu: move to ARM version of CpuExceptionHandlerLib

Message ID 1458127470-10985-1-git-send-email-ard.biesheuvel@linaro.org
State Accepted
Commit 9fa52603119bc562787300b6cb2941baf7e1b9af
Headers show

Commit Message

Ard Biesheuvel March 16, 2016, 11:24 a.m.
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>

---
 ArmVirtPkg/ArmVirt.dsc.inc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

-- 
2.5.0

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Comments

Laszlo Ersek March 16, 2016, 11:39 a.m. | #1
On 03/16/16 12:24, Ard Biesheuvel wrote:
> 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>

> ---

>  ArmVirtPkg/ArmVirt.dsc.inc | 2 +-

>  1 file changed, 1 insertion(+), 1 deletion(-)

> 

> diff --git a/ArmVirtPkg/ArmVirt.dsc.inc b/ArmVirtPkg/ArmVirt.dsc.inc

> index 5938cb4ebfcb..db31b2dc4cfe 100644

> --- a/ArmVirtPkg/ArmVirt.dsc.inc

> +++ b/ArmVirtPkg/ArmVirt.dsc.inc

> @@ -83,7 +83,7 @@ [LibraryClasses.common]

>    # 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

> 


Acked-by: Laszlo Ersek <lersek@redhat.com>


Can you pls summarize in a few words what the exception handlers will
do? For example, in OVMF's case, a register dump is written to the
serial port, and the image and the exception address into it are named too.

Thanks
Laszlo
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Laszlo Ersek March 16, 2016, 11:40 a.m. | #2
On 03/16/16 12:39, Laszlo Ersek wrote:
> On 03/16/16 12:24, Ard Biesheuvel wrote:

>> 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>

>> ---

>>  ArmVirtPkg/ArmVirt.dsc.inc | 2 +-

>>  1 file changed, 1 insertion(+), 1 deletion(-)

>>

>> diff --git a/ArmVirtPkg/ArmVirt.dsc.inc b/ArmVirtPkg/ArmVirt.dsc.inc

>> index 5938cb4ebfcb..db31b2dc4cfe 100644

>> --- a/ArmVirtPkg/ArmVirt.dsc.inc

>> +++ b/ArmVirtPkg/ArmVirt.dsc.inc

>> @@ -83,7 +83,7 @@ [LibraryClasses.common]

>>    # 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

>>

> 

> Acked-by: Laszlo Ersek <lersek@redhat.com>

> 

> Can you pls summarize in a few words what the exception handlers will

> do? For example, in OVMF's case, a register dump is written to the

> serial port, and the image and the exception address into it are named too.


I mean: it's enough to educate me on the list; this wasn't a suggestion
to update the commit message.

Thanks
Laszlo

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Ard Biesheuvel March 16, 2016, 11:54 a.m. | #3
On 16 March 2016 at 12:40, Laszlo Ersek <lersek@redhat.com> wrote:
> On 03/16/16 12:39, Laszlo Ersek wrote:

>> On 03/16/16 12:24, Ard Biesheuvel wrote:

>>> 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>

>>> ---

>>>  ArmVirtPkg/ArmVirt.dsc.inc | 2 +-

>>>  1 file changed, 1 insertion(+), 1 deletion(-)

>>>

>>> diff --git a/ArmVirtPkg/ArmVirt.dsc.inc b/ArmVirtPkg/ArmVirt.dsc.inc

>>> index 5938cb4ebfcb..db31b2dc4cfe 100644

>>> --- a/ArmVirtPkg/ArmVirt.dsc.inc

>>> +++ b/ArmVirtPkg/ArmVirt.dsc.inc

>>> @@ -83,7 +83,7 @@ [LibraryClasses.common]

>>>    # 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

>>>

>>

>> Acked-by: Laszlo Ersek <lersek@redhat.com>

>>


Thanks

>> Can you pls summarize in a few words what the exception handlers will

>> do? For example, in OVMF's case, a register dump is written to the

>> serial port, and the image and the exception address into it are named too.

>

> I mean: it's enough to educate me on the list; this wasn't a suggestion

> to update the commit message.

>


This is just the plumbing to register and unregister exception
handlers. If an exception occurs for which no handler has been
registered, the DefaultExceptionHandler() implementation supplied by
DefaultExceptionHandlerLib is invoked. This aligns with how CpuDxe is
implemented currently, but moves it to a separate library.

-- 
Ard.
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Patch

diff --git a/ArmVirtPkg/ArmVirt.dsc.inc b/ArmVirtPkg/ArmVirt.dsc.inc
index 5938cb4ebfcb..db31b2dc4cfe 100644
--- a/ArmVirtPkg/ArmVirt.dsc.inc
+++ b/ArmVirtPkg/ArmVirt.dsc.inc
@@ -83,7 +83,7 @@  [LibraryClasses.common]
   # 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