diff options
author | Harald Welte <laforge@gnumonks.org> | 2010-05-10 11:08:28 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2010-05-17 09:23:35 +0200 |
commit | dbfa321c42c182a6964f25364c954f6f775b51e7 (patch) | |
tree | b3f5f53b66f484f8c2529a23829213705158bf1a /src/target/firmware/include/asm/system.h | |
parent | 5da81b609e5955782168c40e0b86cd2fb40ebf50 (diff) |
layer1: Disable FIQ as well as IRQ for locking between L1S and L1A
Diffstat (limited to 'src/target/firmware/include/asm/system.h')
-rw-r--r-- | src/target/firmware/include/asm/system.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/target/firmware/include/asm/system.h b/src/target/firmware/include/asm/system.h index 2bf0cc51..3db0dc7a 100644 --- a/src/target/firmware/include/asm/system.h +++ b/src/target/firmware/include/asm/system.h @@ -17,6 +17,20 @@ : "memory", "cc"); \ }) +/* Save IRQ flags and disable FIQ + IRQ */ +#define local_firq_save(x) \ + ({ \ + unsigned long temp; \ + (void) (&temp == &x); \ + __asm__ __volatile__( \ + "mrs %0, cpsr @ local_firq_save\n" \ +" orr %1, %0, #0xC0\n" \ +" msr cpsr_c, %1" \ + : "=r" (x), "=r" (temp) \ + : \ + : "memory", "cc"); \ + }) + /* * Enable IRQs */ |