Patches b03c1b through 3f00b5
[barrelfish] / devices / xeon_phi / xeon_phi_dma.dev
1 /*
2  * Copyright (c) 2014 ETH Zurich. All rights reserved.
3  *
4  * This file is distributed under the terms in the attached LICENSE file.
5  * If you do not find this file, copies can be found by writing to:
6  * ETH Zurich D-INFK, Haldeneggsteig 4, CH-8092 Zurich. Attn: Systems Group.
7  */
8
9 /*
10  * xeon_phi_dma.dev
11  *
12  * description: register definitions for the Xeon Phi DMA
13  */
14
15 device xeon_phi_dma lsbfirst ( addr base ) "Intel Xeon Phi DMA System" {
16     
17     regarray car rw addr(base, 0xA000) [0x0, 0x40, 0x80, 0xC0, 0x100, 0x140, 0x180, 0x1C0] "DMA Channel Attribute Register" {
18         _ 23 "";
19         apic_irq    1 "APIC Interrupt mask bit";
20         msix_irq    1 "MSI-X Interrupt mask bit";
21         irq_status  1 "Interrupt status";
22         _ 7 "";
23     };
24     
25     /*
26      * Protection Level: Ring 0
27      * Visibility: Host / Coprocessor
28      * Reset Dmain: GRPB_REset
29      * Register Access: CRU
30      * Number: 8
31      */
32     regarray dhpr rw addr(base,  0xA004) [0x0, 0x40, 0x80, 0xC0, 0x100, 0x140, 0x180, 0x1C0] "DMA Descriptor Head Pointer Register" {
33         r 32 "";
34     };
35    
36     /*
37      * Protection Level: Ring 0
38      * Visibility: Host / Coprocessor
39      * Reset Dmain: GRPB_REset
40      * Register Access: CRU
41      * Number: 8
42      */
43         regarray dtpr rw addr(base, 0xA008) [0x0, 0x40, 0x80, 0xC0, 0x100, 0x140, 0x180, 0x1C0] "DMA Descriptor Tail Pointer Register" {
44         r 32 "";
45     };
46         
47         /*
48      * Protection Level: Ring 0
49      * Visibility: Host / Coprocessor
50      * Reset Dmain: GRPB_REset
51      * Register Access: CRU
52      * Number: 8
53      */
54         regarray aux_lo rw addr(base, 0xA00C) [0x0, 0x40, 0x80, 0xC0, 0x100, 0x140, 0x180, 0x1C0] "DMA Auxiliary Register 0 Lo" {
55         r 32 "";
56     };
57         
58         /*
59      * Protection Level: Ring 0
60      * Visibility: Host / Coprocessor
61      * Reset Dmain: GRPB_REset
62      * Register Access: CRU
63      * Number: 8
64      */
65         regarray aux_hi rw addr(base, 0xA010) [0x0, 0x40, 0x80, 0xC0, 0x100, 0x140, 0x180, 0x1C0] "DMA Auxiliary Register 0 Hi" {
66         r 32 "";
67     };
68         
69         /*
70      * Protection Level: Ring 0
71      * Visibility: Host / Coprocessor
72      * Reset Dmain: GRPB_REset
73      * Register Access: CRU
74      * Number: 8
75      */
76     regarray drar rw addr(base, 0xA014) [0x0, 0x40, 0x80, 0xC0, 0x100, 0x140, 0x180, 0x1C0] "DMA Descriptor Ring Attributes Register Lo" {
77         _     6 "";
78         base 30 "base address";
79         _     2 "";
80         size 15 "size of the descriptor ring";
81         page  5 "";
82         _     6 "";             
83     };
84         
85         
86         /*
87      * Protection Level: Ring 0
88      * Visibility: Host / Coprocessor
89      * Reset Dmain: GRPB_REset
90      * Register Access: CRU
91      * Number: 8
92      */
93         regarray ditr rw addr(base, 0xA01C) [0x0, 0x40, 0x80, 0xC0, 0x100, 0x140, 0x180, 0x1C0] "DMA Interrupt Timer Register" {
94         r 32 "";
95     };
96     
97         /*
98      * Protection Level: Ring 0
99      * Visibility: Host / Coprocessor
100      * Reset Dmain: GRPB_REset
101      * Register Access: CRU
102      * Number: 8
103      */
104         regarray dstat rw addr(base, 0xA020) [0x0, 0x40, 0x80, 0xC0, 0x100, 0x140, 0x180, 0x1C0] "DMA Status Channel Register" {
105         r 32 "";
106     };
107         
108         /*
109      * Protection Level: Ring 0
110      * Visibility: Host / Coprocessor
111      * Reset Dmain: GRPB_REset
112      * Register Access: CRU
113      * Number: 8
114      */
115         regarray dstatwb_lo rw addr(base, 0xA024) [0x0, 0x40, 0x80, 0xC0, 0x100, 0x140, 0x180, 0x1C0] "DMA Tail Pointer Write Back Register Lo" {
116         r 32 "";
117     };
118         
119         /*
120      * Protection Level: Ring 0
121      * Visibility: Host / Coprocessor
122      * Reset Dmain: GRPB_REset
123      * Register Access: CRU
124      * Number: 8
125      */
126         regarray dstatwb_hi rw addr(base, 0xA028) [0x0, 0x40, 0x80, 0xC0, 0x100, 0x140, 0x180, 0x1C0] "DMA Tail Pointer Write Back Register Hi" {
127         r 32 "";
128     };
129         
130         /*
131      * Protection Level: Ring 0
132      * Visibility: Host / Coprocessor
133      * Reset Dmain: GRPB_REset
134      * Register Access: CRU
135      * Number: 8
136      */
137         regarray dcherr rw addr(base, 0xA02C) [0x0, 0x40, 0x80, 0xC0, 0x100, 0x140, 0x180, 0x1C0] "DMA Channel Error Register" {
138         r 32 "";
139     };
140         
141         /*
142      * Protection Level: Ring 0
143      * Visibility: Host / Coprocessor
144      * Reset Dmain: GRPB_REset
145      * Register Access: CRU
146      * Number: 8
147      */
148         regarray dcherrmsk rw addr(base, 0xA030) [0x0, 0x40, 0x80, 0xC0, 0x100, 0x140, 0x180, 0x1C0] "DMA Channel Error Register Mask" {
149         r 32 "";
150     };
151     
152     /*
153      * Protection Level: Ring 0
154      * Visibility: Host / Coprocessor
155      * Reset Dmain: GRPB_REset
156      * Register Access: CRU
157      */
158     register dcr rw addr(base, 0xA280) "DMA Configuration Register" {
159         co0    1 "DMA Channel 0 Owner";
160         ce0    1 "DMA Channel 0 Enable"; 
161         co1    1 "DMA Channel 0 Owner";
162         ce1    1 "DMA Channel 1 Enable"; 
163         co2    1 "DMA Channel 0 Owner";
164         ce2    1 "DMA Channel 2 Enable"; 
165         co3    1 "DMA Channel 0 Owner";
166         ce3    1 "DMA Channel 3 Enable"; 
167         co4    1 "DMA Channel 0 Owner";
168         ce4    1 "DMA Channel 4 Enable"; 
169         co5    1 "DMA Channel 0 Owner";
170         ce5    1 "DMA Channel 5 Enable"; 
171         co6    1 "DMA Channel 0 Owner";
172         ce6    1 "DMA Channel 6 Enable"; 
173         co7    1 "DMA Channel 0 Owner";
174         ce7    1 "DMA Channel 7 Enable"; 
175         arb_h  8 "Arb H";
176         arb_l  7 "Arb L";
177         p      1 "Priority EN";
178     };
179     
180     /*
181      * Protection Level: Ring 0
182      * Visibility: Host / Coprocessor
183      * Reset Dmain: GRPB_REset
184      * Register Access: CRU
185      */
186     register dqar rw addr(base, 0xA284) "Descriptor Queue Access Register" {
187         r 32 "";
188     };
189     
190     /*
191      * Protection Level: Ring 0
192      * Visibility: Host / Coprocessor
193      * Reset Dmain: GRPB_REset
194      * Register Access: CRU
195      */
196     register dqdr_tl rw addr(base, 0xA288) "Descriptor Queue Data Register Top Left" {
197         r 32 "";
198     };
199     
200     /*
201      * Protection Level: Ring 0
202      * Visibility: Host / Coprocessor
203      * Reset Dmain: GRPB_REset
204      * Register Access: CRU
205      */
206     register dqdr_tr rw addr(base, 0xA28C) "Descriptor Queue Data Register Top Right" {
207         r 32 "";
208     };
209     
210     /*
211      * Protection Level: Ring 0
212      * Visibility: Host / Coprocessor
213      * Reset Dmain: GRPB_REset
214      * Register Access: CRU
215      */
216     register dqdr_bl rw addr(base, 0xA290) "Descriptor Queue Data Register Bottom Left" {
217         r 32 "";
218     };
219     
220     /*
221      * Protection Level: Ring 0
222      * Visibility: Host / Coprocessor
223      * Reset Dmain: GRPB_REset
224      * Register Access: CRU
225      */
226     register dqdr_br rw addr(base, 0xA294) "Descriptor Queue Data Register Bottom Right" {
227         r 32 "";
228     };
229     
230     /*
231      * Protection Level: Ring 0
232      * Visibility: Host / Coprocessor
233      * Reset Dmain: GRPB_REset
234      * Register Access: CRU
235      */
236     register misc rw addr(base, 0xA2A4) "Misc DMA Bits" {
237         r 32 "";
238     };
239     
240     /*
241      * Protection Level: Ring 0
242      * Visibility: Host / Coprocessor
243      * Reset Dmain: GRPB_REset
244      * Register Access: CRU
245      */
246     register lock rw addr(base, 0xA400) "Master Lock Register" {
247         r 32 "";
248     };
249
250 };