2 * Jailhouse, a Linux-based partitioning hypervisor
4 * Copyright (c) Siemens AG, 2014, 2015
6 * This work is licensed under the terms of the GNU GPL, version 2. See
7 * the COPYING file in the top-level directory.
9 * Alternatively, you can use or redistribute this file under the following
12 * Redistribution and use in source and binary forms, with or without
13 * modification, are permitted provided that the following conditions
16 * 1. Redistributions of source code must retain the above copyright
17 * notice, this list of conditions and the following disclaimer.
19 * 2. Redistributions in binary form must reproduce the above copyright
20 * notice, this list of conditions and the following disclaimer in the
21 * documentation and/or other materials provided with the distribution.
23 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
24 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
27 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
28 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
29 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
30 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
31 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
32 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
33 * THE POSSIBILITY OF SUCH DAMAGE.
35 * Configuration for Dell Inc. OptiPlex 7010
36 * created with '/usr/local/libexec/jailhouse/jailhouse config create -r . novabox.c'
38 * NOTE: This config expects the following to be appended to your kernel cmdline
39 * "memmap=0x7c00000$0x37600000"
42 #include <linux/types.h>
43 #include <jailhouse/cell-config.h>
45 #define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
48 struct jailhouse_system header;
50 struct jailhouse_memory mem_regions[47];
51 struct jailhouse_irqchip irqchips[1];
52 __u8 pio_bitmap[0x2000];
53 struct jailhouse_pci_device pci_devices[16];
54 struct jailhouse_pci_capability pci_caps[29];
55 } __attribute__((packed)) config = {
57 .signature = JAILHOUSE_SYSTEM_SIGNATURE,
58 .hypervisor_memory = {
59 .phys_start = 0x37600000,
62 .platform_info.x86 = {
63 .mmconfig_base = 0xf8000000,
64 .mmconfig_end_bus = 0x3f,
65 .pm_timer_address = 0x408,
74 .interrupt_limit = 256,
77 .cpu_set_size = sizeof(config.cpus),
78 .num_memory_regions = ARRAY_SIZE(config.mem_regions),
79 .num_irqchips = ARRAY_SIZE(config.irqchips),
80 .pio_bitmap_size = ARRAY_SIZE(config.pio_bitmap),
81 .num_pci_devices = ARRAY_SIZE(config.pci_devices),
82 .num_pci_caps = ARRAY_SIZE(config.pci_caps),
91 /* MemRegion: 00000000-0009d7ff : System RAM */
96 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
97 JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
99 /* MemRegion: 000a0000-000bffff : PCI Bus 0000:00 */
101 .phys_start = 0xa0000,
102 .virt_start = 0xa0000,
104 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
106 /* MemRegion: 00100000-00ffffff : System RAM */
108 .phys_start = 0x100000,
109 .virt_start = 0x100000,
111 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
112 JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
114 /* MemRegion: 01000000-02ffffff : Kernel */
116 .phys_start = 0x1000000,
117 .virt_start = 0x1000000,
119 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
120 JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
122 /* MemRegion: 03000000-1fffffff : System RAM */
124 .phys_start = 0x3000000,
125 .virt_start = 0x3000000,
127 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
128 JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
130 /* MemRegion: 20200000-375fffff : System RAM */
132 .phys_start = 0x20200000,
133 .virt_start = 0x20200000,
135 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
136 JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
138 /* MemRegion: 3f200000-40003fff : System RAM */
140 .phys_start = 0x3f200000,
141 .virt_start = 0x3f200000,
143 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
144 JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
146 /* MemRegion: 40005000-d9b4dfff : System RAM */
148 .phys_start = 0x40005000,
149 .virt_start = 0x40005000,
151 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
152 JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
156 .phys_start = 0xd9b4e000,
157 .virt_start = 0xd9b4e000,
159 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
160 JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
163 .phys_start = 0xda113000,
164 .virt_start = 0xda113000,
166 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
167 JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
170 /* MemRegion: da174000-da3dbfff : ACPI Non-volatile Storage */
172 .phys_start = 0xda174000,
173 .virt_start = 0xda174000,
175 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
177 /* MemRegion: da3dc000-da3e6fff : ACPI Tables */
179 .phys_start = 0xda3dc000,
180 .virt_start = 0xda3dc000,
182 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
184 /* MemRegion: da3e7000-da3f3fff : ACPI Non-volatile Storage */
186 .phys_start = 0xda3e7000,
187 .virt_start = 0xda3e7000,
189 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
191 /* MemRegion: da3f4000-da3f8fff : ACPI Tables */
193 .phys_start = 0xda3f4000,
194 .virt_start = 0xda3f4000,
196 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
198 /* MemRegion: da3f9000-da43bfff : ACPI Non-volatile Storage */
200 .phys_start = 0xda3f9000,
201 .virt_start = 0xda3f9000,
203 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
205 /* MemRegion: da43c000-daffffff : System RAM */
207 .phys_start = 0xda43c000,
208 .virt_start = 0xda43c000,
210 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
211 JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
213 /* MemRegion: db000000-db7fffff : RAM buffer */
215 .phys_start = 0xdb000000,
216 .virt_start = 0xdb000000,
218 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
219 JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
221 /* MemRegion: dfa00000-dfa00fff : pnp 00:08 */
223 .phys_start = 0xdfa00000,
224 .virt_start = 0xdfa00000,
226 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
228 /* MemRegion: e0000000-efffffff : 0000:00:02.0 */
230 .phys_start = 0xe0000000,
231 .virt_start = 0xe0000000,
233 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
235 /* MemRegion: f7800000-f7bfffff : 0000:00:02.0 */
237 .phys_start = 0xf7800000,
238 .virt_start = 0xf7800000,
240 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
242 /* MemRegion: f7c00000-f7c00fff : 0000:02:00.1 */
244 .phys_start = 0xf7c00000,
245 .virt_start = 0xf7c00000,
247 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
249 /* MemRegion: f7c01000-f7c01fff : 0000:02:00.1 */
251 .phys_start = 0xf7c01000,
252 .virt_start = 0xf7c01000,
254 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
256 /* MemRegion: f7c02000-f7c02fff : 0000:02:00.0 */
258 .phys_start = 0xf7c02000,
259 .virt_start = 0xf7c02000,
261 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
263 /* MemRegion: f7c03000-f7c03fff : 0000:02:00.0 */
265 .phys_start = 0xf7c03000,
266 .virt_start = 0xf7c03000,
268 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
270 /* MemRegion: f7d00000-f7d1ffff : 0000:00:19.0 */
272 .phys_start = 0xf7d00000,
273 .virt_start = 0xf7d00000,
275 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
277 /* MemRegion: f7d20000-f7d2ffff : 0000:00:14.0 */
279 .phys_start = 0xf7d20000,
280 .virt_start = 0xf7d20000,
282 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
284 /* MemRegion: f7d30000-f7d33fff : 0000:00:1b.0 */
286 .phys_start = 0xf7d30000,
287 .virt_start = 0xf7d30000,
289 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
291 /* MemRegion: f7d35000-f7d350ff : 0000:00:1f.3 */
293 .phys_start = 0xf7d35000,
294 .virt_start = 0xf7d35000,
296 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
298 /* MemRegion: f7d36000-f7d367ff : ahci */
300 .phys_start = 0xf7d36000,
301 .virt_start = 0xf7d36000,
303 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
305 /* MemRegion: f7d37000-f7d373ff : ehci_hcd */
307 .phys_start = 0xf7d37000,
308 .virt_start = 0xf7d37000,
310 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
312 /* MemRegion: f7d38000-f7d383ff : ehci_hcd */
314 .phys_start = 0xf7d38000,
315 .virt_start = 0xf7d38000,
317 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
319 /* MemRegion: f7d39000-f7d39fff : 0000:00:19.0 */
321 .phys_start = 0xf7d39000,
322 .virt_start = 0xf7d39000,
324 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
326 /* MemRegion: f7d3c000-f7d3c00f : 0000:00:16.0 */
328 .phys_start = 0xf7d3c000,
329 .virt_start = 0xf7d3c000,
331 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
333 /* MemRegion: fed00000-fed003ff : HPET 0 */
335 .phys_start = 0xfed00000,
336 .virt_start = 0xfed00000,
338 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
340 /* MemRegion: fed10000-fed17fff : pnp 00:08 */
342 .phys_start = 0xfed10000,
343 .virt_start = 0xfed10000,
345 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
347 /* MemRegion: fed18000-fed18fff : pnp 00:08 */
349 .phys_start = 0xfed18000,
350 .virt_start = 0xfed18000,
352 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
354 /* MemRegion: fed19000-fed19fff : pnp 00:08 */
356 .phys_start = 0xfed19000,
357 .virt_start = 0xfed19000,
359 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
361 /* MemRegion: fed20000-fed3ffff : pnp 00:08 */
363 .phys_start = 0xfed20000,
364 .virt_start = 0xfed20000,
366 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
368 /* MemRegion: fed40000-fed44fff : pnp 00:00 */
370 .phys_start = 0xfed40000,
371 .virt_start = 0xfed40000,
373 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
375 /* MemRegion: fed45000-fed8ffff : pnp 00:08 */
377 .phys_start = 0xfed45000,
378 .virt_start = 0xfed45000,
380 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
382 /* MemRegion: fed90000-fed93fff : pnp 00:08 */
384 .phys_start = 0xfed90000,
385 .virt_start = 0xfed90000,
387 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
389 /* MemRegion: 100000000-11e5fffff : System RAM */
391 .phys_start = 0x100000000,
392 .virt_start = 0x100000000,
394 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
395 JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
397 /* MemRegion: 11e600000-11fffffff : RAM buffer */
399 .phys_start = 0x11e600000,
400 .virt_start = 0x11e600000,
402 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
403 JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
405 /* MemRegion: 000c0000-000dffff : ROMs */
407 .phys_start = 0xc0000,
408 .virt_start = 0xc0000,
410 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
412 /* MemRegion: da0ed000-da112fff : ACPI DMAR RMRR */
413 /* PCI device: 00:1d.0 */
414 /* PCI device: 00:1a.0 */
415 /* PCI device: 00:14.0 */
417 .phys_start = 0xda0ed000,
418 .virt_start = 0xda0ed000,
420 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
421 JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
423 /* MemRegion: db800000-df9fffff : ACPI DMAR RMRR */
424 /* PCI device: 00:02.0 */
426 .phys_start = 0xdb800000,
427 .virt_start = 0xdb800000,
429 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
430 JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
432 /* MemRegion: 3f000000-3f1fffff : JAILHOUSE Inmate Memory */
434 .phys_start = 0x3b600000,
435 .virt_start = 0x3b600000,
437 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
438 JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
443 /* IOAPIC 2, GSI base 0 */
445 .address = 0xfec00000,
447 .pin_bitmap = 0xffffff,
452 [ 0/8 ... 0x3f/8] = -1,
453 [ 0x40/8 ... 0x47/8] = 0xf0, /* PIT */
454 [ 0x48/8 ... 0x5f/8] = -1,
455 [ 0x60/8 ... 0x67/8] = 0xec, /* HACK: NMI status/control */
456 [ 0x68/8 ... 0x6f/8] = -1,
457 [ 0x70/8 ... 0x77/8] = 0xfc, /* RTC */
458 [ 0x78/8 ... 0x7f/7] = -1,
459 [ 0x80/8 ... 0x87/8] = 0xfe, /* Linux: native_io_delay() */
460 [ 0x88/8 ... 0xec/8] = -1,
461 [ 0xed/8 ... 0xf5/8] = 0xfe, /*port 0xed delay experimental*/
462 [ 0xf6/8 ... 0x2f7/8] = -1,
463 [ 0x2f8/8 ... 0x2ff/8] = 0,/*serial 1*/
464 [ 0x300/8 ... 0x3af/8] = -1,
465 [ 0x3b0/8 ... 0x3df/8] = 0x00, /* VGA */
466 [ 0x3e0/8 ... 0x3f7/8] = -1,
467 [ 0x3f8/8 ... 0x3ff/8] = -1,/*serial 0*/
468 [ 0x400/8 ... 0xeff/8] = -1,
469 [ 0xd00/8 ... 0xffff/8] = 0, /* HACK: PCI bus */
473 /* PCIDevice: 00:00.0 */
475 .type = JAILHOUSE_PCI_TYPE_DEVICE,
480 0x00000000, 0x00000000, 0x00000000,
481 0x00000000, 0x00000000, 0x00000000,
485 .num_msi_vectors = 0,
487 .num_msix_vectors = 0,
488 .msix_region_size = 0x0,
491 /* PCIDevice: 00:02.0 */
493 .type = JAILHOUSE_PCI_TYPE_DEVICE,
498 0xffc00000, 0xffffffff, 0x00000000,
499 0xf0000000, 0xffffffff, 0x00000000,
503 .num_msi_vectors = 1,
505 .num_msix_vectors = 0,
506 .msix_region_size = 0x0,
509 /* PCIDevice: 00:14.0 */
511 .type = JAILHOUSE_PCI_TYPE_DEVICE,
516 0xffff0000, 0xffffffff, 0x00000000,
517 0x00000000, 0x00000000, 0x00000000,
521 .num_msi_vectors = 8,
523 .num_msix_vectors = 0,
524 .msix_region_size = 0x0,
527 /* PCIDevice: 00:16.0 */
529 .type = JAILHOUSE_PCI_TYPE_DEVICE,
534 0xfffffff0, 0xffffffff, 0x00000000,
535 0x00000000, 0x00000000, 0x00000000,
539 .num_msi_vectors = 1,
541 .num_msix_vectors = 0,
542 .msix_region_size = 0x0,
545 /* PCIDevice: 00:19.0 */
547 .type = JAILHOUSE_PCI_TYPE_DEVICE,
552 0xfffe0000, 0xfffff000, 0xffffffe0,
553 0x00000000, 0x00000000, 0x00000000,
557 .num_msi_vectors = 1,
559 .num_msix_vectors = 0,
560 .msix_region_size = 0x0,
563 /* PCIDevice: 00:1a.0 */
565 .type = JAILHOUSE_PCI_TYPE_DEVICE,
570 0xfffffc00, 0x00000000, 0x00000000,
571 0x00000000, 0x00000000, 0x00000000,
575 .num_msi_vectors = 0,
577 .num_msix_vectors = 0,
578 .msix_region_size = 0x0,
581 /* PCIDevice: 00:1b.0 */
583 .type = JAILHOUSE_PCI_TYPE_DEVICE,
588 0xffffc000, 0xffffffff, 0x00000000,
589 0x00000000, 0x00000000, 0x00000000,
593 .num_msi_vectors = 1,
595 .num_msix_vectors = 0,
596 .msix_region_size = 0x0,
599 /* PCIDevice: 00:1c.0 */
601 .type = JAILHOUSE_PCI_TYPE_BRIDGE,
606 0x00000000, 0x00000000, 0x00000000,
607 0x00000000, 0x00000000, 0x00000000,
611 .num_msi_vectors = 1,
613 .num_msix_vectors = 0,
614 .msix_region_size = 0x0,
617 /* PCIDevice: 00:1c.2 */
619 .type = JAILHOUSE_PCI_TYPE_BRIDGE,
624 0x00000000, 0x00000000, 0x00000000,
625 0x00000000, 0x00000000, 0x00000000,
629 .num_msi_vectors = 1,
631 .num_msix_vectors = 0,
632 .msix_region_size = 0x0,
635 /* PCIDevice: 00:1d.0 */
637 .type = JAILHOUSE_PCI_TYPE_DEVICE,
642 0xfffffc00, 0x00000000, 0x00000000,
643 0x00000000, 0x00000000, 0x00000000,
647 .num_msi_vectors = 0,
649 .num_msix_vectors = 0,
650 .msix_region_size = 0x0,
653 /* PCIDevice: 00:1e.0 */
655 .type = JAILHOUSE_PCI_TYPE_BRIDGE,
660 0x00000000, 0x00000000, 0x00000000,
661 0x00000000, 0x00000000, 0x00000000,
665 .num_msi_vectors = 0,
667 .num_msix_vectors = 0,
668 .msix_region_size = 0x0,
671 /* PCIDevice: 00:1f.0 */
673 .type = JAILHOUSE_PCI_TYPE_DEVICE,
678 0x00000000, 0x00000000, 0x00000000,
679 0x00000000, 0x00000000, 0x00000000,
683 .num_msi_vectors = 0,
685 .num_msix_vectors = 0,
686 .msix_region_size = 0x0,
689 /* PCIDevice: 00:1f.2 */
691 .type = JAILHOUSE_PCI_TYPE_DEVICE,
696 0xfffffff8, 0xfffffffc, 0xfffffff8,
697 0xfffffffc, 0xffffffe0, 0xfffff800,
701 .num_msi_vectors = 1,
703 .num_msix_vectors = 0,
704 .msix_region_size = 0x0,
707 /* PCIDevice: 00:1f.3 */
709 .type = JAILHOUSE_PCI_TYPE_DEVICE,
714 0xffffff00, 0xffffffff, 0x00000000,
715 0x00000000, 0x00000000, 0xffffffe0,
719 .num_msi_vectors = 0,
721 .num_msix_vectors = 0,
722 .msix_region_size = 0x0,
725 /* PCIDevice: 02:00.0 */
727 .type = JAILHOUSE_PCI_TYPE_DEVICE,
732 0xfffffff8, 0xfffff000, 0x00000000,
733 0x00000000, 0x00000000, 0xfffff000,
737 .num_msi_vectors = 8,
739 .num_msix_vectors = 0,
740 .msix_region_size = 0x0,
743 /* PCIDevice: 02:00.1 */
745 .type = JAILHOUSE_PCI_TYPE_DEVICE,
750 0xfffffff8, 0xfffff000, 0x00000000,
751 0x00000000, 0x00000000, 0xfffff000,
755 .num_msi_vectors = 8,
757 .num_msix_vectors = 0,
758 .msix_region_size = 0x0,
764 /* PCIDevice: 00:00.0 */
765 /* PCIDevice: 00:1f.0 */
772 /* PCIDevice: 00:02.0 */
777 .flags = JAILHOUSE_PCICAPS_WRITE,
783 .flags = JAILHOUSE_PCICAPS_WRITE,
791 /* PCIDevice: 00:14.0 */
796 .flags = JAILHOUSE_PCICAPS_WRITE,
802 .flags = JAILHOUSE_PCICAPS_WRITE,
804 /* PCIDevice: 00:16.0 */
809 .flags = JAILHOUSE_PCICAPS_WRITE,
815 .flags = JAILHOUSE_PCICAPS_WRITE,
817 /* PCIDevice: 00:19.0 */
822 .flags = JAILHOUSE_PCICAPS_WRITE,
828 .flags = JAILHOUSE_PCICAPS_WRITE,
836 /* PCIDevice: 00:1a.0 */
837 /* PCIDevice: 00:1d.0 */
842 .flags = JAILHOUSE_PCICAPS_WRITE,
856 /* PCIDevice: 00:1b.0 */
861 .flags = JAILHOUSE_PCICAPS_WRITE,
867 .flags = JAILHOUSE_PCICAPS_WRITE,
875 /* PCIDevice: 00:1c.0 */
876 /* PCIDevice: 00:1c.2 */
887 .flags = JAILHOUSE_PCICAPS_WRITE,
899 .flags = JAILHOUSE_PCICAPS_WRITE,
901 /* PCIDevice: 00:1e.0 */
908 /* PCIDevice: 00:1f.2 */
913 .flags = JAILHOUSE_PCICAPS_WRITE,
919 .flags = JAILHOUSE_PCICAPS_WRITE,
933 /* PCIDevice: 02:00.0 */
934 /* PCIDevice: 02:00.1 */
939 .flags = JAILHOUSE_PCICAPS_WRITE,
945 .flags = JAILHOUSE_PCICAPS_WRITE,