]> rtime.felk.cvut.cz Git - jailhouse.git/commitdiff
jailhouse: configs: Change fiasco, novaboot and hpet config. Reserved memory layout...
authorMaxim Baryshnikov <barysmax@fel.cvut.cz>
Sun, 8 May 2016 08:59:22 +0000 (10:59 +0200)
committerMaxim Baryshnikov <barysmax@fel.cvut.cz>
Sun, 8 May 2016 08:59:22 +0000 (10:59 +0200)
Conflicts:
configs/novabox.c

configs/fiasco-demo.c
configs/hpet-inmate-config.c
configs/novabox.c [new file with mode: 0644]

index 141499569938ff9fdc0e1eec44faa8d5c23c72af..d7e9e6f7e41aa9f48bccaefa8b213eb8e0fe18ae 100755 (executable)
@@ -46,17 +46,17 @@ struct {
                /* low RAM */ {
                        .phys_start = 0x3b600000,
                        .virt_start = 0,
-                       .size = 0x3bff000,
+                       .size = 0x3c00000,
                        .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
                                JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA |
                                JAILHOUSE_MEM_LOADABLE,
                },
                
-               /* MemRegion: fee00000-feefffff : localAPIC */
+               /* MemRegion: fec00000-fecfffff : localAPIC */
                {
-                       .phys_start = 0xfee00000,
-                       .virt_start = 0xfee00000,
-                       .size = 0x100000,
+                       .phys_start = 0xfec00000,
+                       .virt_start = 0xfec00000,
+                       .size = 0x10000,
                        .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE | JAILHOUSE_MEM_DMA,
                },
        },
@@ -74,9 +74,9 @@ struct {
                [  0x89/8 ...   0x99/8] = -1,
                [  0xA0/8 ...   0xA8/8] = 0xfc, /* PIC Slave 0xA0 0xA1 */
                [ 0xA9/8  ...  0x3f7/8] = -1,
-               [ 0x3f8/8 ...  0x3ff/8] = 0, /* serial1 */
+               [ 0x3f8/8 ...  0x3ff/8] = 0, /* serial0 */
                [ 0x400/8 ... 0xe00f/8] = -1,
-               [0xe010/8 ... 0xe017/8] = 0, /* OXPCIe952 serial1 */
+               [0xe010/8 ... 0xe017/8] = -1, /* OXPCIe952 serial1 */
                [0xe018/8 ... 0xffff/8] = -1,
        },
 
index 553be6347e2aa1f1add8eb7d92ca26ee73479386..96ec18c80d19437cd77dfebd7efa6e7670317d8e 100755 (executable)
@@ -90,7 +90,7 @@ struct {
                [     0/8 ...  0x3f7/8] = -1,
                [ 0x3f8/8 ...  0x3ff/8] = 0, /* serial1 */
                [ 0x400/8 ... 0xe00f/8] = -1,
-               [0xe010/8 ... 0xe017/8] = 0, /* OXPCIe952 serial1 */
+               [0xe010/8 ... 0xe017/8] = -1, /* OXPCIe952 serial1 */
                [0xe018/8 ... 0xffff/8] = -1,
        },
 };
\ No newline at end of file
diff --git a/configs/novabox.c b/configs/novabox.c
new file mode 100644 (file)
index 0000000..18656ff
--- /dev/null
@@ -0,0 +1,937 @@
+/*
+ * Jailhouse, a Linux-based partitioning hypervisor
+ *
+ * Copyright (c) Siemens AG, 2014, 2015
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2.  See
+ * the COPYING file in the top-level directory.
+ *
+ * Alternatively, you can use or redistribute this file under the following
+ * BSD license:
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * Configuration for Dell Inc. OptiPlex 7010
+ * created with '/usr/local/libexec/jailhouse/jailhouse config create -r . novabox.c'
+ *
+ * NOTE: This config expects the following to be appended to your kernel cmdline
+ *       "memmap=0x7c00000$0x37600000"
+ */
+
+#include <linux/types.h>
+#include <jailhouse/cell-config.h>
+
+#define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
+
+struct {
+       struct jailhouse_system header;
+       __u64 cpus[1];
+       struct jailhouse_memory mem_regions[45];
+       struct jailhouse_irqchip irqchips[1];
+       __u8 pio_bitmap[0x2000];
+       struct jailhouse_pci_device pci_devices[16];
+       struct jailhouse_pci_capability pci_caps[29];
+} __attribute__((packed)) config = {
+       .header = {
+               .signature = JAILHOUSE_SYSTEM_SIGNATURE,
+               .hypervisor_memory = {
+                       .phys_start = 0x37600000,
+                       .size = 0x4000000,
+               },
+               .platform_info.x86 = {
+                       .mmconfig_base = 0xf8000000,
+                       .mmconfig_end_bus = 0x3f,
+                       .pm_timer_address = 0x408,
+                        .iommu_base = {
+                               0xfed90000,
+                               0xfed91000,
+                        },
+               },
+               .device_limit = 128,
+               .interrupt_limit = 256,
+               .root_cell = {
+                       .name = "RootCell",
+                       .cpu_set_size = sizeof(config.cpus),
+                       .num_memory_regions = ARRAY_SIZE(config.mem_regions),
+                       .num_irqchips = ARRAY_SIZE(config.irqchips),
+                       .pio_bitmap_size = ARRAY_SIZE(config.pio_bitmap),
+                       .num_pci_devices = ARRAY_SIZE(config.pci_devices),
+                       .num_pci_caps = ARRAY_SIZE(config.pci_caps),
+               },
+       },
+
+       .cpus = {
+               0x000000000000000f,
+       },
+
+       .mem_regions = {
+               /* MemRegion: 00000000-0009d7ff : System RAM */
+               {
+                       .phys_start = 0x0,
+                       .virt_start = 0x0,
+                       .size = 0x9e000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
+                               JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
+               },
+               /* MemRegion: 000a0000-000bffff : PCI Bus 0000:00 */
+               {
+                       .phys_start = 0xa0000,
+                       .virt_start = 0xa0000,
+                       .size = 0x20000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: 00100000-00ffffff : System RAM */
+               {
+                       .phys_start = 0x100000,
+                       .virt_start = 0x100000,
+                       .size = 0xf00000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
+                               JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
+               },
+               /* MemRegion: 01000000-02ffffff : Kernel */
+               {
+                       .phys_start = 0x1000000,
+                       .virt_start = 0x1000000,
+                       .size = 0x2000000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
+                               JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
+               },
+               /* MemRegion: 03000000-1fffffff : System RAM */
+               {
+                       .phys_start = 0x3000000,
+                       .virt_start = 0x3000000,
+                       .size = 0x1d000000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
+                               JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
+               },
+               /* MemRegion: 20200000-375fffff : System RAM */
+               {
+                       .phys_start = 0x20200000,
+                       .virt_start = 0x20200000,
+                       .size = 0x17400000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
+                               JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
+               },
+               /* MemRegion: 3f200000-40003fff : System RAM */
+               {
+                       .phys_start = 0x3f200000,
+                       .virt_start = 0x3f200000,
+                       .size = 0xe04000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
+                               JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
+               },
+               /* MemRegion: 40005000-d9b4dfff : System RAM */
+               {
+                       .phys_start = 0x40005000,
+                       .virt_start = 0x40005000,
+                       .size = 0x99b49000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
+                               JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
+               },
+               /* MemRegion: da174000-da3dbfff : ACPI Non-volatile Storage */
+               {
+                       .phys_start = 0xda174000,
+                       .virt_start = 0xda174000,
+                       .size = 0x268000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: da3dc000-da3e6fff : ACPI Tables */
+               {
+                       .phys_start = 0xda3dc000,
+                       .virt_start = 0xda3dc000,
+                       .size = 0xb000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: da3e7000-da3f3fff : ACPI Non-volatile Storage */
+               {
+                       .phys_start = 0xda3e7000,
+                       .virt_start = 0xda3e7000,
+                       .size = 0xd000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: da3f4000-da3f8fff : ACPI Tables */
+               {
+                       .phys_start = 0xda3f4000,
+                       .virt_start = 0xda3f4000,
+                       .size = 0x5000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: da3f9000-da43bfff : ACPI Non-volatile Storage */
+               {
+                       .phys_start = 0xda3f9000,
+                       .virt_start = 0xda3f9000,
+                       .size = 0x43000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: da43c000-daffffff : System RAM */
+               {
+                       .phys_start = 0xda43c000,
+                       .virt_start = 0xda43c000,
+                       .size = 0xbc4000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
+                               JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
+               },
+               /* MemRegion: db000000-db7fffff : RAM buffer */
+               {
+                       .phys_start = 0xdb000000,
+                       .virt_start = 0xdb000000,
+                       .size = 0x800000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
+                               JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
+               },
+               /* MemRegion: dfa00000-dfa00fff : pnp 00:08 */
+               {
+                       .phys_start = 0xdfa00000,
+                       .virt_start = 0xdfa00000,
+                       .size = 0x1000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: e0000000-efffffff : 0000:00:02.0 */
+               {
+                       .phys_start = 0xe0000000,
+                       .virt_start = 0xe0000000,
+                       .size = 0x10000000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: f7800000-f7bfffff : 0000:00:02.0 */
+               {
+                       .phys_start = 0xf7800000,
+                       .virt_start = 0xf7800000,
+                       .size = 0x400000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: f7c00000-f7c00fff : 0000:02:00.1 */
+               {
+                       .phys_start = 0xf7c00000,
+                       .virt_start = 0xf7c00000,
+                       .size = 0x1000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: f7c01000-f7c01fff : 0000:02:00.1 */
+               {
+                       .phys_start = 0xf7c01000,
+                       .virt_start = 0xf7c01000,
+                       .size = 0x1000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: f7c02000-f7c02fff : 0000:02:00.0 */
+               {
+                       .phys_start = 0xf7c02000,
+                       .virt_start = 0xf7c02000,
+                       .size = 0x1000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: f7c03000-f7c03fff : 0000:02:00.0 */
+               {
+                       .phys_start = 0xf7c03000,
+                       .virt_start = 0xf7c03000,
+                       .size = 0x1000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: f7d00000-f7d1ffff : 0000:00:19.0 */
+               {
+                       .phys_start = 0xf7d00000,
+                       .virt_start = 0xf7d00000,
+                       .size = 0x20000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: f7d20000-f7d2ffff : 0000:00:14.0 */
+               {
+                       .phys_start = 0xf7d20000,
+                       .virt_start = 0xf7d20000,
+                       .size = 0x10000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: f7d30000-f7d33fff : 0000:00:1b.0 */
+               {
+                       .phys_start = 0xf7d30000,
+                       .virt_start = 0xf7d30000,
+                       .size = 0x4000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: f7d35000-f7d350ff : 0000:00:1f.3 */
+               {
+                       .phys_start = 0xf7d35000,
+                       .virt_start = 0xf7d35000,
+                       .size = 0x1000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: f7d36000-f7d367ff : ahci */
+               {
+                       .phys_start = 0xf7d36000,
+                       .virt_start = 0xf7d36000,
+                       .size = 0x1000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: f7d37000-f7d373ff : ehci_hcd */
+               {
+                       .phys_start = 0xf7d37000,
+                       .virt_start = 0xf7d37000,
+                       .size = 0x1000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: f7d38000-f7d383ff : ehci_hcd */
+               {
+                       .phys_start = 0xf7d38000,
+                       .virt_start = 0xf7d38000,
+                       .size = 0x1000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: f7d39000-f7d39fff : 0000:00:19.0 */
+               {
+                       .phys_start = 0xf7d39000,
+                       .virt_start = 0xf7d39000,
+                       .size = 0x1000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: f7d3c000-f7d3c00f : 0000:00:16.0 */
+               {
+                       .phys_start = 0xf7d3c000,
+                       .virt_start = 0xf7d3c000,
+                       .size = 0x1000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: fed00000-fed003ff : HPET 0 */
+               {
+                       .phys_start = 0xfed00000,
+                       .virt_start = 0xfed00000,
+                       .size = 0x1000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: fed10000-fed17fff : pnp 00:08 */
+               {
+                       .phys_start = 0xfed10000,
+                       .virt_start = 0xfed10000,
+                       .size = 0x8000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: fed18000-fed18fff : pnp 00:08 */
+               {
+                       .phys_start = 0xfed18000,
+                       .virt_start = 0xfed18000,
+                       .size = 0x1000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: fed19000-fed19fff : pnp 00:08 */
+               {
+                       .phys_start = 0xfed19000,
+                       .virt_start = 0xfed19000,
+                       .size = 0x1000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: fed20000-fed3ffff : pnp 00:08 */
+               {
+                       .phys_start = 0xfed20000,
+                       .virt_start = 0xfed20000,
+                       .size = 0x20000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: fed40000-fed44fff : pnp 00:00 */
+               {
+                       .phys_start = 0xfed40000,
+                       .virt_start = 0xfed40000,
+                       .size = 0x5000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: fed45000-fed8ffff : pnp 00:08 */
+               {
+                       .phys_start = 0xfed45000,
+                       .virt_start = 0xfed45000,
+                       .size = 0x4b000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: fed90000-fed93fff : pnp 00:08 */
+               {
+                       .phys_start = 0xfed90000,
+                       .virt_start = 0xfed90000,
+                       .size = 0x4000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: 100000000-11e5fffff : System RAM */
+               {
+                       .phys_start = 0x100000000,
+                       .virt_start = 0x100000000,
+                       .size = 0x1e600000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
+                               JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
+               },
+               /* MemRegion: 11e600000-11fffffff : RAM buffer */
+               {
+                       .phys_start = 0x11e600000,
+                       .virt_start = 0x11e600000,
+                       .size = 0x1a00000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
+                               JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
+               },
+               /* MemRegion: 000c0000-000dffff : ROMs */
+               {
+                       .phys_start = 0xc0000,
+                       .virt_start = 0xc0000,
+                       .size = 0x20000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: da0ed000-da112fff : ACPI DMAR RMRR */
+               /* PCI device: 00:1d.0 */
+               /* PCI device: 00:1a.0 */
+               /* PCI device: 00:14.0 */
+               {
+                       .phys_start = 0xda0ed000,
+                       .virt_start = 0xda0ed000,
+                       .size = 0x26000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
+                               JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
+               },
+               /* MemRegion: db800000-df9fffff : ACPI DMAR RMRR */
+               /* PCI device: 00:02.0 */
+               {
+                       .phys_start = 0xdb800000,
+                       .virt_start = 0xdb800000,
+                       .size = 0x4200000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
+                               JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
+               },
+               /* MemRegion: 3f000000-3f1fffff : JAILHOUSE Inmate Memory */
+               {
+                       .phys_start = 0x3b600000,
+                       .virt_start = 0x3b600000,
+                       .size = 0x3C00000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
+                                        JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
+               },
+       },
+
+       .irqchips = {
+               /* IOAPIC 2, GSI base 0 */
+               {
+                       .address = 0xfec00000,
+                       .id = 0x1f0f8,
+                       .pin_bitmap = 0xffffff,
+               },
+       },
+
+       .pio_bitmap = {
+               [     0/8 ...   0x3f/8] = -1,
+               [  0x40/8 ...   0x47/8] = 0xf0, /* PIT */
+               [  0x48/8 ...   0x5f/8] = -1,
+               [  0x60/8 ...   0x67/8] = 0xec, /* HACK: NMI status/control */
+               [  0x68/8 ...   0x6f/8] = -1,
+               [  0x70/8 ...   0x77/8] = 0xfc, /* RTC */
+               [  0x78/8 ...   0x7f/7] = -1,
+               [  0x80/8 ...   0x87/8] = 0xfe, /* Linux: native_io_delay() */
+               [  0x88/8 ...   0xec/8] = -1,
+               [  0xed/8 ...   0xf5/8] = 0xfe, /*port 0xed delay experimental*/                
+               [  0xf6/8 ...  0x2f7/8] = -1,
+               [ 0x2f8/8 ...  0x2ff/8] = 0,/*serial 1*/
+               [ 0x300/8 ...  0x3af/8] = -1,
+               [ 0x3b0/8 ...  0x3df/8] = 0x00, /* VGA */               
+               [ 0x3e0/8 ...  0x3f7/8] = -1,
+               [ 0x3f8/8 ...  0x3ff/8] = -1,/*serial 0*/
+               [ 0x400/8 ...  0xeff/8] = -1,           
+               [ 0xd00/8 ... 0xffff/8] = 0, /* HACK: PCI bus */
+       },
+
+       .pci_devices = {
+               /* PCIDevice: 00:00.0 */
+               {
+                       .type = JAILHOUSE_PCI_TYPE_DEVICE,
+                       .iommu = 1,
+                       .domain = 0x0,
+                       .bdf = 0x0,
+                       .bar_mask = {
+                               0x00000000, 0x00000000, 0x00000000,
+                               0x00000000, 0x00000000, 0x00000000,
+                       },
+                       .caps_start = 0,
+                       .num_caps = 1,
+                       .num_msi_vectors = 0,
+                       .msi_64bits = 0,
+                       .num_msix_vectors = 0,
+                       .msix_region_size = 0x0,
+                       .msix_address = 0x0,
+               },
+               /* PCIDevice: 00:02.0 */
+               {
+                       .type = JAILHOUSE_PCI_TYPE_DEVICE,
+                       .iommu = 0,
+                       .domain = 0x0,
+                       .bdf = 0x10,
+                       .bar_mask = {
+                               0xffc00000, 0xffffffff, 0x00000000,
+                               0xf0000000, 0xffffffff, 0x00000000,
+                       },
+                       .caps_start = 1,
+                       .num_caps = 3,
+                       .num_msi_vectors = 1,
+                       .msi_64bits = 0,
+                       .num_msix_vectors = 0,
+                       .msix_region_size = 0x0,
+                       .msix_address = 0x0,
+               },
+               /* PCIDevice: 00:14.0 */
+               {
+                       .type = JAILHOUSE_PCI_TYPE_DEVICE,
+                       .iommu = 1,
+                       .domain = 0x0,
+                       .bdf = 0xa0,
+                       .bar_mask = {
+                               0xffff0000, 0xffffffff, 0x00000000,
+                               0x00000000, 0x00000000, 0x00000000,
+                       },
+                       .caps_start = 4,
+                       .num_caps = 2,
+                       .num_msi_vectors = 8,
+                       .msi_64bits = 1,
+                       .num_msix_vectors = 0,
+                       .msix_region_size = 0x0,
+                       .msix_address = 0x0,
+               },
+               /* PCIDevice: 00:16.0 */
+               {
+                       .type = JAILHOUSE_PCI_TYPE_DEVICE,
+                       .iommu = 1,
+                       .domain = 0x0,
+                       .bdf = 0xb0,
+                       .bar_mask = {
+                               0xfffffff0, 0xffffffff, 0x00000000,
+                               0x00000000, 0x00000000, 0x00000000,
+                       },
+                       .caps_start = 6,
+                       .num_caps = 2,
+                       .num_msi_vectors = 1,
+                       .msi_64bits = 1,
+                       .num_msix_vectors = 0,
+                       .msix_region_size = 0x0,
+                       .msix_address = 0x0,
+               },
+               /* PCIDevice: 00:19.0 */
+               {
+                       .type = JAILHOUSE_PCI_TYPE_DEVICE,
+                       .iommu = 1,
+                       .domain = 0x0,
+                       .bdf = 0xc8,
+                       .bar_mask = {
+                               0xfffe0000, 0xfffff000, 0xffffffe0,
+                               0x00000000, 0x00000000, 0x00000000,
+                       },
+                       .caps_start = 8,
+                       .num_caps = 3,
+                       .num_msi_vectors = 1,
+                       .msi_64bits = 1,
+                       .num_msix_vectors = 0,
+                       .msix_region_size = 0x0,
+                       .msix_address = 0x0,
+               },
+               /* PCIDevice: 00:1a.0 */
+               {
+                       .type = JAILHOUSE_PCI_TYPE_DEVICE,
+                       .iommu = 1,
+                       .domain = 0x0,
+                       .bdf = 0xd0,
+                       .bar_mask = {
+                               0xfffffc00, 0x00000000, 0x00000000,
+                               0x00000000, 0x00000000, 0x00000000,
+                       },
+                       .caps_start = 11,
+                       .num_caps = 3,
+                       .num_msi_vectors = 0,
+                       .msi_64bits = 0,
+                       .num_msix_vectors = 0,
+                       .msix_region_size = 0x0,
+                       .msix_address = 0x0,
+               },
+               /* PCIDevice: 00:1b.0 */
+               {
+                       .type = JAILHOUSE_PCI_TYPE_DEVICE,
+                       .iommu = 1,
+                       .domain = 0x0,
+                       .bdf = 0xd8,
+                       .bar_mask = {
+                               0xffffc000, 0xffffffff, 0x00000000,
+                               0x00000000, 0x00000000, 0x00000000,
+                       },
+                       .caps_start = 14,
+                       .num_caps = 3,
+                       .num_msi_vectors = 1,
+                       .msi_64bits = 1,
+                       .num_msix_vectors = 0,
+                       .msix_region_size = 0x0,
+                       .msix_address = 0x0,
+               },
+               /* PCIDevice: 00:1c.0 */
+               {
+                       .type = JAILHOUSE_PCI_TYPE_BRIDGE,
+                       .iommu = 1,
+                       .domain = 0x0,
+                       .bdf = 0xe0,
+                       .bar_mask = {
+                               0x00000000, 0x00000000, 0x00000000,
+                               0x00000000, 0x00000000, 0x00000000,
+                       },
+                       .caps_start = 17,
+                       .num_caps = 4,
+                       .num_msi_vectors = 1,
+                       .msi_64bits = 0,
+                       .num_msix_vectors = 0,
+                       .msix_region_size = 0x0,
+                       .msix_address = 0x0,
+               },
+               /* PCIDevice: 00:1c.2 */
+               {
+                       .type = JAILHOUSE_PCI_TYPE_BRIDGE,
+                       .iommu = 1,
+                       .domain = 0x0,
+                       .bdf = 0xe2,
+                       .bar_mask = {
+                               0x00000000, 0x00000000, 0x00000000,
+                               0x00000000, 0x00000000, 0x00000000,
+                       },
+                       .caps_start = 17,
+                       .num_caps = 4,
+                       .num_msi_vectors = 1,
+                       .msi_64bits = 0,
+                       .num_msix_vectors = 0,
+                       .msix_region_size = 0x0,
+                       .msix_address = 0x0,
+               },
+               /* PCIDevice: 00:1d.0 */
+               {
+                       .type = JAILHOUSE_PCI_TYPE_DEVICE,
+                       .iommu = 1,
+                       .domain = 0x0,
+                       .bdf = 0xe8,
+                       .bar_mask = {
+                               0xfffffc00, 0x00000000, 0x00000000,
+                               0x00000000, 0x00000000, 0x00000000,
+                       },
+                       .caps_start = 11,
+                       .num_caps = 3,
+                       .num_msi_vectors = 0,
+                       .msi_64bits = 0,
+                       .num_msix_vectors = 0,
+                       .msix_region_size = 0x0,
+                       .msix_address = 0x0,
+               },
+               /* PCIDevice: 00:1e.0 */
+               {
+                       .type = JAILHOUSE_PCI_TYPE_BRIDGE,
+                       .iommu = 1,
+                       .domain = 0x0,
+                       .bdf = 0xf0,
+                       .bar_mask = {
+                               0x00000000, 0x00000000, 0x00000000,
+                               0x00000000, 0x00000000, 0x00000000,
+                       },
+                       .caps_start = 21,
+                       .num_caps = 1,
+                       .num_msi_vectors = 0,
+                       .msi_64bits = 0,
+                       .num_msix_vectors = 0,
+                       .msix_region_size = 0x0,
+                       .msix_address = 0x0,
+               },
+               /* PCIDevice: 00:1f.0 */
+               {
+                       .type = JAILHOUSE_PCI_TYPE_DEVICE,
+                       .iommu = 1,
+                       .domain = 0x0,
+                       .bdf = 0xf8,
+                       .bar_mask = {
+                               0x00000000, 0x00000000, 0x00000000,
+                               0x00000000, 0x00000000, 0x00000000,
+                       },
+                       .caps_start = 0,
+                       .num_caps = 1,
+                       .num_msi_vectors = 0,
+                       .msi_64bits = 0,
+                       .num_msix_vectors = 0,
+                       .msix_region_size = 0x0,
+                       .msix_address = 0x0,
+               },
+               /* PCIDevice: 00:1f.2 */
+               {
+                       .type = JAILHOUSE_PCI_TYPE_DEVICE,
+                       .iommu = 1,
+                       .domain = 0x0,
+                       .bdf = 0xfa,
+                       .bar_mask = {
+                               0xfffffff8, 0xfffffffc, 0xfffffff8,
+                               0xfffffffc, 0xffffffe0, 0xfffff800,
+                       },
+                       .caps_start = 22,
+                       .num_caps = 4,
+                       .num_msi_vectors = 1,
+                       .msi_64bits = 0,
+                       .num_msix_vectors = 0,
+                       .msix_region_size = 0x0,
+                       .msix_address = 0x0,
+               },
+               /* PCIDevice: 00:1f.3 */
+               {
+                       .type = JAILHOUSE_PCI_TYPE_DEVICE,
+                       .iommu = 1,
+                       .domain = 0x0,
+                       .bdf = 0xfb,
+                       .bar_mask = {
+                               0xffffff00, 0xffffffff, 0x00000000,
+                               0x00000000, 0x00000000, 0xffffffe0,
+                       },
+                       .caps_start = 0,
+                       .num_caps = 0,
+                       .num_msi_vectors = 0,
+                       .msi_64bits = 0,
+                       .num_msix_vectors = 0,
+                       .msix_region_size = 0x0,
+                       .msix_address = 0x0,
+               },
+               /* PCIDevice: 02:00.0 */
+               {
+                       .type = JAILHOUSE_PCI_TYPE_DEVICE,
+                       .iommu = 1,
+                       .domain = 0x0,
+                       .bdf = 0x200,
+                       .bar_mask = {
+                               0xfffffff8, 0xfffff000, 0x00000000,
+                               0x00000000, 0x00000000, 0xfffff000,
+                       },
+                       .caps_start = 26,
+                       .num_caps = 3,
+                       .num_msi_vectors = 8,
+                       .msi_64bits = 1,
+                       .num_msix_vectors = 0,
+                       .msix_region_size = 0x0,
+                       .msix_address = 0x0,
+               },
+               /* PCIDevice: 02:00.1 */
+               {
+                       .type = JAILHOUSE_PCI_TYPE_DEVICE,
+                       .iommu = 1,
+                       .domain = 0x0,
+                       .bdf = 0x201,
+                       .bar_mask = {
+                               0xfffffff8, 0xfffff000, 0x00000000,
+                               0x00000000, 0x00000000, 0xfffff000,
+                       },
+                       .caps_start = 26,
+                       .num_caps = 3,
+                       .num_msi_vectors = 8,
+                       .msi_64bits = 1,
+                       .num_msix_vectors = 0,
+                       .msix_region_size = 0x0,
+                       .msix_address = 0x0,
+               },
+       },
+
+       .pci_caps = {
+               /* PCIDevice: 00:00.0 */
+               /* PCIDevice: 00:1f.0 */
+               {
+                       .id = 0x9,
+                       .start = 0xe0,
+                       .len = 2,
+                       .flags = 0,
+               },
+               /* PCIDevice: 00:02.0 */
+               {
+                       .id = 0x5,
+                       .start = 0x90,
+                       .len = 10,
+                       .flags = JAILHOUSE_PCICAPS_WRITE,
+               },
+               {
+                       .id = 0x1,
+                       .start = 0xd0,
+                       .len = 8,
+                       .flags = JAILHOUSE_PCICAPS_WRITE,
+               },
+               {
+                       .id = 0x13,
+                       .start = 0xa4,
+                       .len = 2,
+                       .flags = 0,
+               },
+               /* PCIDevice: 00:14.0 */
+               {
+                       .id = 0x1,
+                       .start = 0x70,
+                       .len = 8,
+                       .flags = JAILHOUSE_PCICAPS_WRITE,
+               },
+               {
+                       .id = 0x5,
+                       .start = 0x80,
+                       .len = 14,
+                       .flags = JAILHOUSE_PCICAPS_WRITE,
+               },
+               /* PCIDevice: 00:16.0 */
+               {
+                       .id = 0x1,
+                       .start = 0x50,
+                       .len = 8,
+                       .flags = JAILHOUSE_PCICAPS_WRITE,
+               },
+               {
+                       .id = 0x5,
+                       .start = 0x8c,
+                       .len = 14,
+                       .flags = JAILHOUSE_PCICAPS_WRITE,
+               },
+               /* PCIDevice: 00:19.0 */
+               {
+                       .id = 0x1,
+                       .start = 0xc8,
+                       .len = 8,
+                       .flags = JAILHOUSE_PCICAPS_WRITE,
+               },
+               {
+                       .id = 0x5,
+                       .start = 0xd0,
+                       .len = 14,
+                       .flags = JAILHOUSE_PCICAPS_WRITE,
+               },
+               {
+                       .id = 0x13,
+                       .start = 0xe0,
+                       .len = 2,
+                       .flags = 0,
+               },
+               /* PCIDevice: 00:1a.0 */
+               /* PCIDevice: 00:1d.0 */
+               {
+                       .id = 0x1,
+                       .start = 0x50,
+                       .len = 8,
+                       .flags = JAILHOUSE_PCICAPS_WRITE,
+               },
+               {
+                       .id = 0xa,
+                       .start = 0x58,
+                       .len = 2,
+                       .flags = 0,
+               },
+               {
+                       .id = 0x13,
+                       .start = 0x98,
+                       .len = 2,
+                       .flags = 0,
+               },
+               /* PCIDevice: 00:1b.0 */
+               {
+                       .id = 0x1,
+                       .start = 0x50,
+                       .len = 8,
+                       .flags = JAILHOUSE_PCICAPS_WRITE,
+               },
+               {
+                       .id = 0x5,
+                       .start = 0x60,
+                       .len = 14,
+                       .flags = JAILHOUSE_PCICAPS_WRITE,
+               },
+               {
+                       .id = 0x10,
+                       .start = 0x70,
+                       .len = 2,
+                       .flags = 0,
+               },
+               /* PCIDevice: 00:1c.0 */
+               /* PCIDevice: 00:1c.2 */
+               {
+                       .id = 0x10,
+                       .start = 0x40,
+                       .len = 2,
+                       .flags = 0,
+               },
+               {
+                       .id = 0x5,
+                       .start = 0x80,
+                       .len = 10,
+                       .flags = JAILHOUSE_PCICAPS_WRITE,
+               },
+               {
+                       .id = 0xd,
+                       .start = 0x90,
+                       .len = 2,
+                       .flags = 0,
+               },
+               {
+                       .id = 0x1,
+                       .start = 0xa0,
+                       .len = 8,
+                       .flags = JAILHOUSE_PCICAPS_WRITE,
+               },
+               /* PCIDevice: 00:1e.0 */
+               {
+                       .id = 0xd,
+                       .start = 0x50,
+                       .len = 2,
+                       .flags = 0,
+               },
+               /* PCIDevice: 00:1f.2 */
+               {
+                       .id = 0x5,
+                       .start = 0x80,
+                       .len = 10,
+                       .flags = JAILHOUSE_PCICAPS_WRITE,
+               },
+               {
+                       .id = 0x1,
+                       .start = 0x70,
+                       .len = 8,
+                       .flags = JAILHOUSE_PCICAPS_WRITE,
+               },
+               {
+                       .id = 0x12,
+                       .start = 0xa8,
+                       .len = 2,
+                       .flags = 0,
+               },
+               {
+                       .id = 0x13,
+                       .start = 0xb0,
+                       .len = 2,
+                       .flags = 0,
+               },
+               /* PCIDevice: 02:00.0 */
+               /* PCIDevice: 02:00.1 */
+               {
+                       .id = 0x5,
+                       .start = 0x50,
+                       .len = 14,
+                       .flags = JAILHOUSE_PCICAPS_WRITE,
+               },
+               {
+                       .id = 0x1,
+                       .start = 0x78,
+                       .len = 8,
+                       .flags = JAILHOUSE_PCICAPS_WRITE,
+               },
+               {
+                       .id = 0x10,
+                       .start = 0x80,
+                       .len = 2,
+                       .flags = 0,
+               },
+       },
+};
+