Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/arch/arm/mach-ixp2000/include/mach/entry-macro.S
10820 views
1
/*
2
* arch/arm/mach-ixp2000/include/mach/entry-macro.S
3
*
4
* Low-level IRQ helper macros for IXP2000-based platforms
5
*
6
* This file is licensed under the terms of the GNU General Public
7
* License version 2. This program is licensed "as is" without any
8
* warranty of any kind, whether express or implied.
9
*/
10
#include <mach/irqs.h>
11
12
.macro disable_fiq
13
.endm
14
15
.macro get_irqnr_preamble, base, tmp
16
.endm
17
18
.macro arch_ret_to_user, tmp1, tmp2
19
.endm
20
21
.macro get_irqnr_and_base, irqnr, irqstat, base, tmp
22
23
mov \irqnr, #0x0 @clear out irqnr as default
24
mov \base, #0xfe000000
25
orr \base, \base, #0x00e00000
26
orr \base, \base, #0x08
27
ldr \irqstat, [\base] @ get interrupts
28
29
cmp \irqstat, #0
30
beq 1001f
31
32
clz \irqnr, \irqstat
33
mov \base, #31
34
subs \irqnr, \base, \irqnr
35
36
/*
37
* We handle PCIA and PCIB here so we don't have an
38
* extra layer of code just to check these two bits.
39
*/
40
cmp \irqnr, #IRQ_IXP2000_PCI
41
bne 1001f
42
43
mov \base, #0xfe000000
44
orr \base, \base, #0x00c00000
45
orr \base, \base, #0x00000100
46
orr \base, \base, #0x00000058
47
ldr \irqstat, [\base]
48
49
mov \tmp, #(1<<26)
50
tst \irqstat, \tmp
51
movne \irqnr, #IRQ_IXP2000_PCIA
52
bne 1001f
53
54
mov \tmp, #(1<<27)
55
tst \irqstat, \tmp
56
movne \irqnr, #IRQ_IXP2000_PCIB
57
58
1001:
59
.endm
60
61
62