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
This commit is contained in:
andrewfish
2010-03-05 02:15:41 +00:00
parent 41d478023f
commit 0416278cfd
6 changed files with 118 additions and 4 deletions

View File

@@ -19,6 +19,9 @@
.globl ASM_PFX(ArmEnableInterrupts)
.globl ASM_PFX(ArmDisableInterrupts)
.globl ASM_PFX(ArmGetInterruptState)
.globl ASM_PFX(ArmEnableFiq)
.globl ASM_PFX(ArmDisableFiq)
.globl ASM_PFX(ArmGetFiqState)
.globl ASM_PFX(ArmInvalidateTlb)
.globl ASM_PFX(ArmSetTranslationTableBaseAddress)
.globl ASM_PFX(ArmGetTranslationTableBaseAddress)
@@ -54,6 +57,21 @@ ASM_PFX(ArmGetInterruptState):
movne R0,#0
bx LR
ASM_PFX(ArmEnableFiq):
cpsie f
bx LR
ASM_PFX(ArmDisableFiq):
cpsid f
bx LR
ASM_PFX(ArmGetFiqState):
mrs R0,CPSR
tst R0,#0x30 @Check if IRQ is enabled.
moveq R0,#1
movne R0,#0
bx LR
ASM_PFX(ArmInvalidateTlb):
mov r0,#0
mcr p15,0,r0,c8,c7,0

View File

@@ -18,6 +18,9 @@
EXPORT ArmEnableInterrupts
EXPORT ArmDisableInterrupts
EXPORT ArmGetInterruptState
EXPORT ArmEnableFiq
EXPORT ArmDisableFiq
EXPORT ArmGetFiqState
EXPORT ArmInvalidateTlb
EXPORT ArmSetTranslationTableBaseAddress
EXPORT ArmGetTranslationTableBaseAddress
@@ -51,6 +54,21 @@ ArmGetInterruptState
moveq R0,#1
movne R0,#0
bx LR
ArmEnableFiq
CPSIE f
bx LR
ArmDisableFiq
CPSID f
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