]> rtime.felk.cvut.cz Git - jailhouse.git/blob - configs/f2a88xm-hd3.c
configs: Prepare f2a8xm-hd3 cell to multi-IOAPIC
[jailhouse.git] / configs / f2a88xm-hd3.c
1 /*
2  * Jailhouse, a Linux-based partitioning hypervisor
3  *
4  * Copyright (c) Siemens AG, 2014
5  * Copyright (c) Valentine Sinitsyn, 2014
6  *
7  * This work is licensed under the terms of the GNU GPL, version 2.  See
8  * the COPYING file in the top-level directory.
9  *
10  * Configuration for Gigabyte Technology Co., Ltd. GA-F2A88XM-HD3 Rev. 3.0
11  * board with AMD A10-7800 APU and 1G RAM.
12  *
13  * Created with 'jailhouse config create f2a88xm-hd3.c' and adjusted
14  * by Valentine Sinitsyn <valentine.sinitsyn@gmail.com>.
15  *
16  * NOTE: This config expects the following to be appended to your kernel cmdline
17  *       "memmap=0x4200000$0x3b000000"
18  */
19
20 #include <linux/types.h>
21 #include <jailhouse/cell-config.h>
22
23 #define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
24
25 struct {
26         struct jailhouse_system header;
27         __u64 cpus[1];
28         struct jailhouse_memory mem_regions[33];
29         struct jailhouse_irqchip irqchips[2];
30         __u8 pio_bitmap[0x2000];
31         struct jailhouse_pci_device pci_devices[24];
32         struct jailhouse_pci_capability pci_caps[26];
33 } __attribute__((packed)) config = {
34         .header = {
35                 .hypervisor_memory = {
36                         .phys_start = 0x3b000000,
37                         .size = 0x4000000,
38                 },
39                 .platform_info.x86 = {
40                         .mmconfig_base = 0xe0000000,
41                         .mmconfig_end_bus = 0xff,
42                         .pm_timer_address = 0x808,
43                 },
44                 .root_cell = {
45                         .name = "F2A88XM-HD3",
46                         .cpu_set_size = sizeof(config.cpus),
47                         .num_memory_regions = ARRAY_SIZE(config.mem_regions),
48                         .num_irqchips = ARRAY_SIZE(config.irqchips),
49                         .pio_bitmap_size = ARRAY_SIZE(config.pio_bitmap),
50                         .num_pci_devices = ARRAY_SIZE(config.pci_devices),
51                         .num_pci_caps = ARRAY_SIZE(config.pci_caps),
52                 },
53         },
54
55         .cpus = {
56                 0x000000000000000f,
57         },
58
59         .mem_regions = {
60                 /* MemRegion: 00000000-0009e7ff : System RAM */
61                 {
62                         .phys_start = 0x0,
63                         .virt_start = 0x0,
64                         .size = 0x9f000,
65                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
66                                 JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
67                 },
68                 /* MemRegion: 000a0000-000bffff : PCI Bus 0000:00 */
69                 {
70                         .phys_start = 0xa0000,
71                         .virt_start = 0xa0000,
72                         .size = 0x20000,
73                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
74                 },
75                 /* MemRegion: 000c0000-000cf5ff : Video ROM */
76                 {
77                         .phys_start = 0xc0000,
78                         .virt_start = 0xc0000,
79                         .size = 0x10000,
80                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
81                 },
82                 /* MemRegion: 000e0000-000fffff : System ROM */
83                 {
84                         .phys_start = 0xe0000,
85                         .virt_start = 0xe0000,
86                         .size = 0x20000,
87                         .flags = JAILHOUSE_MEM_READ,
88                 },
89                 /* MemRegion: 00100000-3affffff : System RAM */
90                 {
91                         .phys_start = 0x100000,
92                         .virt_start = 0x100000,
93                         .size = 0x3af00000,
94                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
95                                 JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
96                 },
97                 /* MemRegion: 3f200000-6c046fff : System RAM */
98                 {
99                         .phys_start = 0x3f200000,
100                         .virt_start = 0x3f200000,
101                         .size = 0x2ce47000,
102                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
103                                 JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
104                 },
105                 /* MemRegion: 6c077000-6c339fff : System RAM */
106                 {
107                         .phys_start = 0x6c077000,
108                         .virt_start = 0x6c077000,
109                         .size = 0x2c3000,
110                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
111                                 JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
112                 },
113                 /* MemRegion: 6c33a000-6c407fff : ACPI Non-volatile Storage */
114                 {
115                         .phys_start = 0x6c33a000,
116                         .virt_start = 0x6c33a000,
117                         .size = 0xce000,
118                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
119                 },
120                 /* MemRegion: 6d1c9000-6d1c9fff : System RAM */
121                 {
122                         .phys_start = 0x6d1c9000,
123                         .virt_start = 0x6d1c9000,
124                         .size = 0x1000,
125                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
126                                 JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
127                 },
128                 /* MemRegion: 6d1ca000-6d3cffff : ACPI Non-volatile Storage */
129                 {
130                         .phys_start = 0x6d1ca000,
131                         .virt_start = 0x6d1ca000,
132                         .size = 0x206000,
133                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
134                 },
135                 /* MemRegion: 6d3d0000-6d850fff : System RAM */
136                 {
137                         .phys_start = 0x6d3d0000,
138                         .virt_start = 0x6d3d0000,
139                         .size = 0x481000,
140                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
141                                 JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
142                 },
143                 /* MemRegion: 6dfe2000-6dffffff : System RAM */
144                 {
145                         .phys_start = 0x6dfe2000,
146                         .virt_start = 0x6dfe2000,
147                         .size = 0x1e000,
148                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
149                                 JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
150                 },
151                 /* MemRegion: 6e000000-6fffffff : RAM buffer */
152                 {
153                         .phys_start = 0x6e000000,
154                         .virt_start = 0x6e000000,
155                         .size = 0x2000000,
156                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
157                                 JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
158                 },
159                 /* MemRegion: c0000000-cfffffff : 0000:00:01.0 */
160                 {
161                         .phys_start = 0xc0000000,
162                         .virt_start = 0xc0000000,
163                         .size = 0x10000000,
164                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
165                 },
166                 /* MemRegion: d0000000-d07fffff : 0000:00:01.0 */
167                 {
168                         .phys_start = 0xd0000000,
169                         .virt_start = 0xd0000000,
170                         .size = 0x800000,
171                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
172                 },
173                 /* MemRegion: d0801000-d0803fff : r8169 */
174                 {
175                         .phys_start = 0xd0801000,
176                         .virt_start = 0xd0801000,
177                         .size = 0x3000,
178                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
179                 },
180                 /* MemRegion: fea00000-fea00fff : r8169 */
181                 {
182                         .phys_start = 0xfea00000,
183                         .virt_start = 0xfea00000,
184                         .size = 0x1000,
185                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
186                 },
187                 /* MemRegion: feb00000-feb3ffff : 0000:00:01.0 */
188                 {
189                         .phys_start = 0xfeb00000,
190                         .virt_start = 0xfeb00000,
191                         .size = 0x40000,
192                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
193                 },
194                 /* MemRegion: feb40000-feb5ffff : 0000:00:01.0 */
195                 {
196                         .phys_start = 0xfeb40000,
197                         .virt_start = 0xfeb40000,
198                         .size = 0x20000,
199                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
200                 },
201                 /* MemRegion: feb60000-feb63fff : ICH HD audio */
202                 {
203                         .phys_start = 0xfeb60000,
204                         .virt_start = 0xfeb60000,
205                         .size = 0x4000,
206                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
207                 },
208                 /* MemRegion: feb64000-feb67fff : ICH HD audio */
209                 {
210                         .phys_start = 0xfeb64000,
211                         .virt_start = 0xfeb64000,
212                         .size = 0x4000,
213                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
214                 },
215                 /* MemRegion: feb68000-feb68fff : xhci_hcd */
216                 {
217                         .phys_start = 0xfeb68000,
218                         .virt_start = 0xfeb68000,
219                         .size = 0x1000,
220                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
221                 },
222                 /* MemRegion: feb6a000-feb6afff : xhci_hcd */
223                 {
224                         .phys_start = 0xfeb6a000,
225                         .virt_start = 0xfeb6a000,
226                         .size = 0x1000,
227                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
228                 },
229                 /* MemRegion: feb6c000-feb6cfff : ohci_hcd */
230                 {
231                         .phys_start = 0xfeb6c000,
232                         .virt_start = 0xfeb6c000,
233                         .size = 0x1000,
234                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
235                 },
236                 /* MemRegion: feb6d000-feb6d0ff : ehci_hcd */
237                 {
238                         .phys_start = 0xfeb6d000,
239                         .virt_start = 0xfeb6d000,
240                         .size = 0x1000,
241                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
242                 },
243                 /* MemRegion: feb6e000-feb6efff : ohci_hcd */
244                 {
245                         .phys_start = 0xfeb6e000,
246                         .virt_start = 0xfeb6e000,
247                         .size = 0x1000,
248                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
249                 },
250                 /* MemRegion: feb6f000-feb6f0ff : ehci_hcd */
251                 {
252                         .phys_start = 0xfeb6f000,
253                         .virt_start = 0xfeb6f000,
254                         .size = 0x1000,
255                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
256                 },
257                 /* MemRegion: feb70000-feb70fff : ohci_hcd */
258                 {
259                         .phys_start = 0xfeb70000,
260                         .virt_start = 0xfeb70000,
261                         .size = 0x1000,
262                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
263                 },
264                 /* MemRegion: feb71000-feb717ff : ahci */
265                 {
266                         .phys_start = 0xfeb71000,
267                         .virt_start = 0xfeb71000,
268                         .size = 0x1000,
269                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
270                 },
271                 /* MemRegion: feb80000-febfffff : amd_iommu */
272                 {
273                         .phys_start = 0xfeb80000,
274                         .virt_start = 0xfeb80000,
275                         .size = 0x80000,
276                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
277                 },
278                 /* MemRegion: fed00000-fed003ff : HPET 0 */
279                 {
280                         .phys_start = 0xfed00000,
281                         .virt_start = 0xfed00000,
282                         .size = 0x1000,
283                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
284                 },
285                 /* MemRegion: fed61000-fed70fff : pnp 00:0a */
286                 {
287                         .phys_start = 0xfed61000,
288                         .virt_start = 0xfed61000,
289                         .size = 0x10000,
290                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
291                 },
292                 /* MemRegion: 3f000000-3f1fffff : JAILHOUSE Inmate Memory */
293                 {
294                         .phys_start = 0x3f000000,
295                         .virt_start = 0x3f000000,
296                         .size = 0x200000,
297                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
298                 },
299         },
300
301         .irqchips = {
302                 /* IOAPIC 0, GSI base 0 */
303                 {
304                         .address = 0xfec00000,
305                         .id = 0x0,
306                         .pin_bitmap = 0xffffff,
307                 },
308                 /* IOAPIC 1, GSI base 24 */
309                 {
310                         .address = 0xfec01000,
311                         .id = 0x0,
312                         .pin_bitmap = 0xffffff,
313                 },
314         },
315
316         .pio_bitmap = {
317                 [     0/8 ...   0x1f/8] = -1,
318                 [  0x20/8 ...   0x27/8] = 0xfc, /* HACK: PIC */
319                 [  0x28/8 ...   0x3f/8] = -1,
320                 [  0x40/8 ...   0x47/8] = 0xf0, /* PIT */
321                 [  0x48/8 ...   0x5f/8] = -1,
322                 [  0x60/8 ...   0x67/8] = 0xec, /* HACK: NMI status/control */
323                 [  0x68/8 ...   0x6f/8] = -1,
324                 [  0x70/8 ...   0x77/8] = 0xfc, /* RTC */
325                 [  0x78/8 ...   0x7f/8] = -1,
326                 [  0x80/8 ...   0x87/8] = 0xfe, /* Port 80 (delays) */
327                 [  0x88/8 ...  0x3af/8] = -1,
328                 [ 0x3b0/8 ...  0x3df/8] = 0x00, /* VGA */
329                 [ 0x3e0/8 ...  0xcf7/8] = 0, /* HACK: PCI bus */
330                 [ 0xcf8/8 ...  0xcff/8] = -1,
331                 [ 0xd00/8 ... 0xffff/8] = 0, /* HACK: PCI bus */
332         },
333
334         .pci_devices = {
335                 /* PCIDevice: 00:00.0 */
336                 {
337                         .type = JAILHOUSE_PCI_TYPE_DEVICE,
338                         .domain = 0x0,
339                         .bdf = 0x0,
340                         .caps_start = 0,
341                         .num_caps = 0,
342                 },
343                 /* PCIDevice: 00:00.2 */
344                 {
345                         .type = JAILHOUSE_PCI_TYPE_DEVICE,
346                         .domain = 0x0,
347                         .bdf = 0x2,
348                         .caps_start = 0,
349                         .num_caps = 3,
350                 },
351                 /* PCIDevice: 00:01.0 */
352                 {
353                         .type = JAILHOUSE_PCI_TYPE_DEVICE,
354                         .domain = 0x0,
355                         .bdf = 0x8,
356                         .caps_start = 3,
357                         .num_caps = 3,
358                 },
359                 /* PCIDevice: 00:01.1 */
360                 {
361                         .type = JAILHOUSE_PCI_TYPE_DEVICE,
362                         .domain = 0x0,
363                         .bdf = 0x9,
364                         .caps_start = 3,
365                         .num_caps = 3,
366                 },
367                 /* PCIDevice: 00:04.0 */
368                 {
369                         .type = JAILHOUSE_PCI_TYPE_BRIDGE,
370                         .domain = 0x0,
371                         .bdf = 0x20,
372                         .caps_start = 6,
373                         .num_caps = 5,
374                 },
375                 /* PCIDevice: 00:10.0 */
376                 {
377                         .type = JAILHOUSE_PCI_TYPE_DEVICE,
378                         .domain = 0x0,
379                         .bdf = 0x80,
380                         .caps_start = 11,
381                         .num_caps = 4,
382                 },
383                 /* PCIDevice: 00:10.1 */
384                 {
385                         .type = JAILHOUSE_PCI_TYPE_DEVICE,
386                         .domain = 0x0,
387                         .bdf = 0x81,
388                         .caps_start = 11,
389                         .num_caps = 4,
390                 },
391                 /* PCIDevice: 00:11.0 */
392                 {
393                         .type = JAILHOUSE_PCI_TYPE_DEVICE,
394                         .domain = 0x0,
395                         .bdf = 0x88,
396                         .caps_start = 15,
397                         .num_caps = 2,
398                 },
399                 /* PCIDevice: 00:12.0 */
400                 {
401                         .type = JAILHOUSE_PCI_TYPE_DEVICE,
402                         .domain = 0x0,
403                         .bdf = 0x90,
404                         .caps_start = 0,
405                         .num_caps = 0,
406                 },
407                 /* PCIDevice: 00:12.2 */
408                 {
409                         .type = JAILHOUSE_PCI_TYPE_DEVICE,
410                         .domain = 0x0,
411                         .bdf = 0x92,
412                         .caps_start = 17,
413                         .num_caps = 2,
414                 },
415                 /* PCIDevice: 00:13.0 */
416                 {
417                         .type = JAILHOUSE_PCI_TYPE_DEVICE,
418                         .domain = 0x0,
419                         .bdf = 0x98,
420                         .caps_start = 0,
421                         .num_caps = 0,
422                 },
423                 /* PCIDevice: 00:13.2 */
424                 {
425                         .type = JAILHOUSE_PCI_TYPE_DEVICE,
426                         .domain = 0x0,
427                         .bdf = 0x9a,
428                         .caps_start = 17,
429                         .num_caps = 2,
430                 },
431                 /* PCIDevice: 00:14.0 */
432                 {
433                         .type = JAILHOUSE_PCI_TYPE_DEVICE,
434                         .domain = 0x0,
435                         .bdf = 0xa0,
436                         .caps_start = 0,
437                         .num_caps = 0,
438                 },
439                 /* PCIDevice: 00:14.2 */
440                 {
441                         .type = JAILHOUSE_PCI_TYPE_DEVICE,
442                         .domain = 0x0,
443                         .bdf = 0xa2,
444                         .caps_start = 19,
445                         .num_caps = 1,
446                 },
447                 /* PCIDevice: 00:14.3 */
448                 {
449                         .type = JAILHOUSE_PCI_TYPE_DEVICE,
450                         .domain = 0x0,
451                         .bdf = 0xa3,
452                         .caps_start = 0,
453                         .num_caps = 0,
454                 },
455                 /* PCIDevice: 00:14.4 */
456                 {
457                         .type = JAILHOUSE_PCI_TYPE_BRIDGE,
458                         .domain = 0x0,
459                         .bdf = 0xa4,
460                         .caps_start = 0,
461                         .num_caps = 0,
462                 },
463                 /* PCIDevice: 00:14.5 */
464                 {
465                         .type = JAILHOUSE_PCI_TYPE_DEVICE,
466                         .domain = 0x0,
467                         .bdf = 0xa5,
468                         .caps_start = 0,
469                         .num_caps = 0,
470                 },
471                 /* PCIDevice: 00:18.0 */
472                 {
473                         .type = JAILHOUSE_PCI_TYPE_DEVICE,
474                         .domain = 0x0,
475                         .bdf = 0xc0,
476                         .caps_start = 0,
477                         .num_caps = 0,
478                 },
479                 /* PCIDevice: 00:18.1 */
480                 {
481                         .type = JAILHOUSE_PCI_TYPE_DEVICE,
482                         .domain = 0x0,
483                         .bdf = 0xc1,
484                         .caps_start = 0,
485                         .num_caps = 0,
486                 },
487                 /* PCIDevice: 00:18.2 */
488                 {
489                         .type = JAILHOUSE_PCI_TYPE_DEVICE,
490                         .domain = 0x0,
491                         .bdf = 0xc2,
492                         .caps_start = 0,
493                         .num_caps = 0,
494                 },
495                 /* PCIDevice: 00:18.3 */
496                 {
497                         .type = JAILHOUSE_PCI_TYPE_DEVICE,
498                         .domain = 0x0,
499                         .bdf = 0xc3,
500                         .caps_start = 20,
501                         .num_caps = 1,
502                 },
503                 /* PCIDevice: 00:18.4 */
504                 {
505                         .type = JAILHOUSE_PCI_TYPE_DEVICE,
506                         .domain = 0x0,
507                         .bdf = 0xc4,
508                         .caps_start = 0,
509                         .num_caps = 0,
510                 },
511                 /* PCIDevice: 00:18.5 */
512                 {
513                         .type = JAILHOUSE_PCI_TYPE_DEVICE,
514                         .domain = 0x0,
515                         .bdf = 0xc5,
516                         .caps_start = 0,
517                         .num_caps = 0,
518                 },
519                 /* PCIDevice: 01:00.0 */
520                 {
521                         .type = JAILHOUSE_PCI_TYPE_DEVICE,
522                         .domain = 0x0,
523                         .bdf = 0x100,
524                         .caps_start = 21,
525                         .num_caps = 5,
526                 },
527         },
528
529         .pci_caps = {
530                 /* PCIDevice: 00:00.2 */
531                 {
532                         .id = 0xf,
533                         .start = 0x40,
534                         .len = 2,
535                         .flags = 0,
536                 },
537                 {
538                         .id = 0x5,
539                         .start = 0x54,
540                         .len = 14,
541                         .flags = JAILHOUSE_PCICAPS_WRITE,
542                 },
543                 {
544                         .id = 0x8,
545                         .start = 0x64,
546                         .len = 2,
547                         .flags = 0,
548                 },
549                 /* PCIDevice: 00:01.0 */
550                 /* PCIDevice: 00:01.1 */
551                 {
552                         .id = 0x1,
553                         .start = 0x50,
554                         .len = 8,
555                         .flags = JAILHOUSE_PCICAPS_WRITE,
556                 },
557                 {
558                         .id = 0x10,
559                         .start = 0x58,
560                         .len = 2,
561                         .flags = 0,
562                 },
563                 {
564                         .id = 0x5,
565                         .start = 0xa0,
566                         .len = 14,
567                         .flags = JAILHOUSE_PCICAPS_WRITE,
568                 },
569                 /* PCIDevice: 00:04.0 */
570                 {
571                         .id = 0x1,
572                         .start = 0x50,
573                         .len = 8,
574                         .flags = JAILHOUSE_PCICAPS_WRITE,
575                 },
576                 {
577                         .id = 0x10,
578                         .start = 0x58,
579                         .len = 2,
580                         .flags = 0,
581                 },
582                 {
583                         .id = 0x5,
584                         .start = 0xa0,
585                         .len = 14,
586                         .flags = JAILHOUSE_PCICAPS_WRITE,
587                 },
588                 {
589                         .id = 0xd,
590                         .start = 0xb0,
591                         .len = 2,
592                         .flags = 0,
593                 },
594                 {
595                         .id = 0x8,
596                         .start = 0xb8,
597                         .len = 2,
598                         .flags = 0,
599                 },
600                 /* PCIDevice: 00:10.0 */
601                 /* PCIDevice: 00:10.1 */
602                 {
603                         .id = 0x1,
604                         .start = 0x50,
605                         .len = 8,
606                         .flags = JAILHOUSE_PCICAPS_WRITE,
607                 },
608                 {
609                         .id = 0x5,
610                         .start = 0x70,
611                         .len = 14,
612                         .flags = JAILHOUSE_PCICAPS_WRITE,
613                 },
614                 {
615                         .id = 0x11,
616                         .start = 0x90,
617                         .len = 12,
618                         .flags = JAILHOUSE_PCICAPS_WRITE,
619                 },
620                 {
621                         .id = 0x10,
622                         .start = 0xa0,
623                         .len = 2,
624                         .flags = 0,
625                 },
626                 /* PCIDevice: 00:11.0 */
627                 {
628                         .id = 0x5,
629                         .start = 0x50,
630                         .len = 14,
631                         .flags = JAILHOUSE_PCICAPS_WRITE,
632                 },
633                 {
634                         .id = 0x12,
635                         .start = 0x70,
636                         .len = 2,
637                         .flags = 0,
638                 },
639                 /* PCIDevice: 00:12.2 */
640                 /* PCIDevice: 00:13.2 */
641                 {
642                         .id = 0x1,
643                         .start = 0xc0,
644                         .len = 8,
645                         .flags = JAILHOUSE_PCICAPS_WRITE,
646                 },
647                 {
648                         .id = 0xa,
649                         .start = 0xe4,
650                         .len = 2,
651                         .flags = 0,
652                 },
653                 /* PCIDevice: 00:14.2 */
654                 {
655                         .id = 0x1,
656                         .start = 0x50,
657                         .len = 8,
658                         .flags = JAILHOUSE_PCICAPS_WRITE,
659                 },
660                 /* PCIDevice: 00:18.3 */
661                 {
662                         .id = 0xf,
663                         .start = 0xf0,
664                         .len = 2,
665                         .flags = 0,
666                 },
667                 /* PCIDevice: 01:00.0 */
668                 {
669                         .id = 0x1,
670                         .start = 0x40,
671                         .len = 8,
672                         .flags = JAILHOUSE_PCICAPS_WRITE,
673                 },
674                 {
675                         .id = 0x5,
676                         .start = 0x50,
677                         .len = 14,
678                         .flags = JAILHOUSE_PCICAPS_WRITE,
679                 },
680                 {
681                         .id = 0x10,
682                         .start = 0x70,
683                         .len = 2,
684                         .flags = 0,
685                 },
686                 {
687                         .id = 0x11,
688                         .start = 0xb0,
689                         .len = 12,
690                         .flags = JAILHOUSE_PCICAPS_WRITE,
691                 },
692                 {
693                         .id = 0x3,
694                         .start = 0xd0,
695                         .len = 2,
696                         .flags = 0,
697                 },
698         },
699 };