From 0416278cfdd3d657a828fbb977bcd736dd4962a8 Mon Sep 17 00:00:00 2001 From: andrewfish Date: Fri, 5 Mar 2010 02:15:41 +0000 Subject: Added FIQ interrupt primatives. Update exception handler to disable/reenable FIQ when updating in case debug agent library is using FIQ. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10197 6f19259b-4bc3-4df7-8a09-765794883524 --- ArmPkg/Library/ArmLib/Common/ArmLibSupport.asm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'ArmPkg/Library/ArmLib/Common/ArmLibSupport.asm') diff --git a/ArmPkg/Library/ArmLib/Common/ArmLibSupport.asm b/ArmPkg/Library/ArmLib/Common/ArmLibSupport.asm index 630c72fdee..ca8d980b0d 100644 --- a/ArmPkg/Library/ArmLib/Common/ArmLibSupport.asm +++ b/ArmPkg/Library/ArmLib/Common/ArmLibSupport.asm @@ -18,6 +18,9 @@ EXPORT ArmEnableInterrupts EXPORT ArmDisableInterrupts EXPORT ArmGetInterruptState + EXPORT ArmEnableFiq + EXPORT ArmDisableFiq + EXPORT ArmGetFiqState EXPORT ArmInvalidateTlb EXPORT ArmSetTranslationTableBaseAddress EXPORT ArmGetTranslationTableBaseAddress @@ -56,6 +59,28 @@ ArmGetInterruptState moveq R0,#1 movne R0,#0 bx LR + +ArmEnableFiq + mrs R0,CPSR + bic R0,R0,#0x40 ;Enable IRQ interrupts + msr CPSR_c,R0 + bx LR + +ArmDisableFiq + mrs R0,CPSR + orr R1,R0,#0x40 ;Disable IRQ interrupts + msr CPSR_c,R1 + tst R0,#0x40 + moveq R0,#1 + movne R0,#0 + bx LR + +ArmGetFiqState + mrs R0,CPSR + tst R0,#0x40 ;Check if IRQ is enabled. + moveq R0,#1 + movne R0,#0 + bx LR ArmInvalidateTlb mov r0,#0 -- cgit v1.2.3