1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 #define LAPIC_ID 0x020
47 # define LAPIC_ID_MASK 0x0f000000
48 # define LAPIC_ID_SHIFT 24
49
50 #define LAPIC_VERS 0x030
51 # define LAPIC_VERSION_MASK 0x000000ff
52 # define LAPIC_VERSION_LVT_MASK 0x00ff0000
53 # define LAPIC_VERSION_LVT_SHIFT 16
54
55 #define LAPIC_TPRI 0x080
56 # define LAPIC_TPRI_MASK 0x000000ff
57 # define LAPIC_TPRI_INT_MASK 0x000000f0
58 # define LAPIC_TPRI_SUB_MASK 0x0000000f
59
60 #define LAPIC_APRI 0x090
61 # define LAPIC_APRI_MASK 0x000000ff
62
63 #define LAPIC_PPRI 0x0a0
64 #define LAPIC_EOI 0x0b0
65 #define LAPIC_RRR 0x0c0
66 #define LAPIC_LDR 0x0d0
67 #define LAPIC_DFR 0x0e0
68
69 #define LAPIC_SVR 0x0f0
70 # define LAPIC_SVR_VECTOR_MASK 0x000000ff
71 # define LAPIC_SVR_VEC_FIX 0x0000000f
72 # define LAPIC_SVR_VEC_PROG 0x000000f0
73 # define LAPIC_SVR_ENABLE 0x00000100
74 # define LAPIC_SVR_SWEN 0x00000100
75 # define LAPIC_SVR_FOCUS 0x00000200
76 # define LAPIC_SVR_FDIS 0x00000200
77
78 #define LAPIC_ISR 0x100
79 #define LAPIC_TMR 0x180
80 #define LAPIC_IRR 0x200
81 #define LAPIC_ESR 0x280
82
83 #define LAPIC_ICRLO 0x300
84 # define LAPIC_DLMODE_MASK 0x00000700
85 # define LAPIC_DLMODE_FIXED 0x00000000
86 # define LAPIC_DLMODE_LOW 0x00000100
87 # define LAPIC_DLMODE_SMI 0x00000200
88 # define LAPIC_DLMODE_RR 0x00000300
89 # define LAPIC_DLMODE_NMI 0x00000400
90 # define LAPIC_DLMODE_INIT 0x00000500
91 # define LAPIC_DLMODE_STARTUP 0x00000600
92
93 # define LAPIC_DSTMODE_LOG 0x00000800
94
95 # define LAPIC_DLSTAT_BUSY 0x00001000
96
97 # define LAPIC_LVL_ASSERT 0x00004000
98 # define LAPIC_LVL_DEASSERT 0x00000000
99
100 # define LAPIC_LVL_TRIG 0x00008000
101
102 # define LAPIC_RRSTAT_MASK 0x00030000
103 # define LAPIC_RRSTAT_INPROG 0x00010000
104 # define LAPIC_RRSTAT_VALID 0x00020000
105
106 # define LAPIC_DEST_MASK 0x000c0000
107 # define LAPIC_DEST_SELF 0x00040000
108 # define LAPIC_DEST_ALLINCL 0x00080000
109 # define LAPIC_DEST_ALLEXCL 0x000c0000
110
111 # define LAPIC_RESV2_MASK 0xfff00000
112
113
114 #define LAPIC_ICRHI 0x310
115 # define LAPIC_ID_MASK 0x0f000000
116 # define LAPIC_ID_SHIFT 24
117
118 #define LAPIC_LVTT 0x320
119 # define LAPIC_LVTT_VEC_MASK 0x000000ff
120 # define LAPIC_LVTT_DS 0x00001000
121 # define LAPIC_LVTT_M 0x00010000
122 # define LAPIC_LVTT_TM 0x00020000
123
124 #define LAPIC_PCINT 0x340
125 #define LAPIC_LVINT0 0x350
126 # define LAPIC_LVT_PERIODIC 0x00020000
127 # define LAPIC_LVT_MASKED 0x00010000
128 # define LAPIC_LVT_LEVTRIG 0x00008000
129 # define LAPIC_LVT_REMOTE_IRR 0x00004000
130 # define LAPIC_INP_POL 0x00002000
131 # define LAPIC_PEND_SEND 0x00001000
132
133 #define LAPIC_LVINT1 0x360
134 #define LAPIC_LVERR 0x370
135 #define LAPIC_ICR_TIMER 0x380
136 #define LAPIC_CCR_TIMER 0x390
137
138 #define LAPIC_DCR_TIMER 0x3e0
139 # define LAPIC_DCRT_DIV1 0x0b
140 # define LAPIC_DCRT_DIV2 0x00
141 # define LAPIC_DCRT_DIV4 0x01
142 # define LAPIC_DCRT_DIV8 0x02
143 # define LAPIC_DCRT_DIV16 0x03
144 # define LAPIC_DCRT_DIV32 0x08
145 # define LAPIC_DCRT_DIV64 0x09
146 # define LAPIC_DCRT_DIV128 0x0a
147
148 #define LAPIC_BASE 0xfee00000
149
150 #define LAPIC_IRQ_MASK(i) (1 << ((i) + 1))