From: Jan Kiszka <jan.kis...@siemens.com>

This requires dedicated configs for the system and the non-root Linux
cell. We only add them for 'latest' because 0.9.1 is lacking the
required EFI framebuffer and further fixes which are needed for this
target. Thus, NUC6CAY will be --latest only.

Signed-off-by: Jan Kiszka <jan.kis...@siemens.com>
---
 .../jailhouse/files/linux-nuc6cay-demo.c           |   94 ++
 recipes-jailhouse/jailhouse/files/nuc6cay.c        | 1234 ++++++++++++++++++++
 recipes-jailhouse/jailhouse/jailhouse.inc          |    2 +-
 recipes-jailhouse/jailhouse/jailhouse_latest.bb    |    6 +
 4 files changed, 1335 insertions(+), 1 deletion(-)
 create mode 100644 recipes-jailhouse/jailhouse/files/linux-nuc6cay-demo.c
 create mode 100644 recipes-jailhouse/jailhouse/files/nuc6cay.c

diff --git a/recipes-jailhouse/jailhouse/files/linux-nuc6cay-demo.c 
b/recipes-jailhouse/jailhouse/files/linux-nuc6cay-demo.c
new file mode 100644
index 0000000..f4e0f65
--- /dev/null
+++ b/recipes-jailhouse/jailhouse/files/linux-nuc6cay-demo.c
@@ -0,0 +1,94 @@
+/*
+ * Jailhouse, a Linux-based partitioning hypervisor
+ *
+ * Configuration for Linux inmate, 2 CPUs, 74 MB RAM, ~1MB shmem, serial ports
+ *
+ * Copyright (c) Siemens AG, 2013-2018
+ *
+ * Authors:
+ *  Jan Kiszka <jan.kis...@siemens.com>
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2.  See
+ * the COPYING file in the top-level directory.
+ */
+
+#include <jailhouse/types.h>
+#include <jailhouse/cell-config.h>
+
+#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
+
+struct {
+       struct jailhouse_cell_desc cell;
+       __u64 cpus[1];
+       struct jailhouse_memory mem_regions[4];
+       __u8 pio_bitmap[0x2000];
+       struct jailhouse_pci_device pci_devices[1];
+} __attribute__((packed)) config = {
+       .cell = {
+               .signature = JAILHOUSE_CELL_DESC_SIGNATURE,
+               .revision = JAILHOUSE_CONFIG_REVISION,
+               .name = "linux-nuc6cay-demo",
+               .flags = JAILHOUSE_CELL_PASSIVE_COMMREG |
+                        JAILHOUSE_CELL_VIRTUAL_CONSOLE_PERMITTED,
+
+               .cpu_set_size = sizeof(config.cpus),
+               .num_memory_regions = ARRAY_SIZE(config.mem_regions),
+               .pio_bitmap_size = ARRAY_SIZE(config.pio_bitmap),
+               .num_pci_devices = ARRAY_SIZE(config.pci_devices),
+       },
+
+       .cpus = {
+               0xc,
+       },
+
+       .mem_regions = {
+               /* low RAM */ {
+                       .phys_start = 0x3a600000,
+                       .virt_start = 0,
+                       .size = 0x00100000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
+                               JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA |
+                               JAILHOUSE_MEM_LOADABLE,
+               },
+               /* communication region */ {
+                       .virt_start = 0x00100000,
+                       .size = 0x00001000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_COMM_REGION,
+               },
+               /* high RAM */ {
+                       .phys_start = 0x3a700000,
+                       .virt_start = 0x00200000,
+                       .size = 0x4a00000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
+                               JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA |
+                               JAILHOUSE_MEM_LOADABLE,
+               },
+               /* IVSHMEM shared memory region */
+               {
+                       .phys_start = 0x3f100000,
+                       .virt_start = 0x3f100000,
+                       .size = 0xff000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
+                               JAILHOUSE_MEM_ROOTSHARED,
+               },
+       },
+
+       .pio_bitmap = {
+               [     0/8 ... 0xffff/8] = -1,
+       },
+
+       .pci_devices = {
+               {
+                       .type = JAILHOUSE_PCI_TYPE_IVSHMEM,
+                       .domain = 0x0,
+                       .bdf = 0x10 << 3,
+                       .bar_mask = {
+                               0xffffff00, 0xffffffff, 0x00000000,
+                               0x00000000, 0xffffffe0, 0xffffffff,
+                       },
+                       .num_msix_vectors = 1,
+                       .shmem_region = 3,
+                       .shmem_protocol = JAILHOUSE_SHMEM_PROTO_VETH,
+               },
+       },
+};
diff --git a/recipes-jailhouse/jailhouse/files/nuc6cay.c 
b/recipes-jailhouse/jailhouse/files/nuc6cay.c
new file mode 100644
index 0000000..31191bb
--- /dev/null
+++ b/recipes-jailhouse/jailhouse/files/nuc6cay.c
@@ -0,0 +1,1234 @@
+/*
+ * Jailhouse, a Linux-based partitioning hypervisor
+ *
+ * Copyright (c) Siemens AG, 2014-2017
+ *
+ * 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.
+ */
+
+#include <jailhouse/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[54];
+       struct jailhouse_irqchip irqchips[1];
+       __u8 pio_bitmap[0x2000];
+       struct jailhouse_pci_device pci_devices[21];
+       struct jailhouse_pci_capability pci_caps[53];
+} __attribute__((packed)) config = {
+       .header = {
+               .signature = JAILHOUSE_SYSTEM_SIGNATURE,
+               .revision = JAILHOUSE_CONFIG_REVISION,
+               .flags = JAILHOUSE_SYS_VIRTUAL_DEBUG_CONSOLE,
+               .hypervisor_memory = {
+                       .phys_start = 0x3a000000,
+                       .size = 0x600000,
+               },
+               .debug_console = {
+                       .address = 0x80000000,
+                       .size = 0x7f0000,
+                       .type = JAILHOUSE_CON_TYPE_EFIFB,
+                       .flags = JAILHOUSE_CON_ACCESS_MMIO |
+                               JAILHOUSE_CON_FB_1920x1080,
+               },
+               .platform_info = {
+                       .pci_mmconfig_base = 0xe0000000,
+                       .pci_mmconfig_end_bus = 0xff,
+                       .x86 = {
+                               .pm_timer_address = 0x408,
+                               .vtd_interrupt_limit = 256,
+                               .iommu_units = {
+                                       {
+                                               .base = 0xfed64000,
+                                               .size = 0x1000,
+                                       },
+                                       {
+                                               .base = 0xfed65000,
+                                               .size = 0x1000,
+                                       },
+                               },
+                       },
+               },
+               .root_cell = {
+                       .name = "NUC6CAY",
+                       .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 = {
+               0xf,
+       },
+
+       .mem_regions = {
+               /* MemRegion: 00000000-0003efff : System RAM */
+               {
+                       .phys_start = 0x0,
+                       .virt_start = 0x0,
+                       .size = 0x3f000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
+                               JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
+               },
+               /* MemRegion: 00040000-0009dfff : System RAM */
+               {
+                       .phys_start = 0x40000,
+                       .virt_start = 0x40000,
+                       .size = 0x5e000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
+                               JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
+               },
+               /* MemRegion: 000f0000-0fffffff : System RAM */
+               {
+                       .phys_start = 0xf0000,
+                       .virt_start = 0xf0000,
+                       .size = 0xff10000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
+                               JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
+               },
+               /* MemRegion: 12151000-39ffffff : System RAM */
+               {
+                       .phys_start = 0x12151000,
+                       .virt_start = 0x12151000,
+                       .size = 0x27eaf000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
+                               JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
+               },
+               /* MemRegion: 3e200000-77709fff : System RAM */
+               {
+                       .phys_start = 0x3e200000,
+                       .virt_start = 0x3e200000,
+                       .size = 0x3950a000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
+                               JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
+               },
+               /* MemRegion: 7982d000-79847fff : ACPI Tables */
+               {
+                       .phys_start = 0x7982d000,
+                       .virt_start = 0x7982d000,
+                       .size = 0x1b000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: 79848000-798a7fff : ACPI Non-volatile Storage */
+               {
+                       .phys_start = 0x79848000,
+                       .virt_start = 0x79848000,
+                       .size = 0x60000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: 798a8000-79bd1fff : reserved but used */
+               {
+                       .phys_start = 0x798a8000,
+                       .virt_start = 0x798a8000,
+                       .size = 0x32a000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: 79bd2000-79c36fff : Unknown E820 type */
+               {
+                       .phys_start = 0x79bd2000,
+                       .virt_start = 0x79bd2000,
+                       .size = 0x65000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: 79c37000-79fb9fff : System RAM */
+               {
+                       .phys_start = 0x79c37000,
+                       .virt_start = 0x79c37000,
+                       .size = 0x383000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
+                               JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
+               },
+               /* MemRegion: 79fba000-79fbafff : ACPI Non-volatile Storage */
+               {
+                       .phys_start = 0x79fba000,
+                       .virt_start = 0x79fba000,
+                       .size = 0x1000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: 79fe5000-7a9defff : System RAM */
+               {
+                       .phys_start = 0x79fe5000,
+                       .virt_start = 0x79fe5000,
+                       .size = 0x9fa000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
+                               JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
+               },
+               /* MemRegion: 7a9e1000-7affffff : System RAM */
+               {
+                       .phys_start = 0x7a9e1000,
+                       .virt_start = 0x7a9e1000,
+                       .size = 0x61f000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
+                               JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
+               },
+               /* MemRegion: 80000000-8fffffff : 0000:00:02.0 */
+               {
+                       .phys_start = 0x80000000,
+                       .virt_start = 0x80000000,
+                       .size = 0x10000000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: 90000000-90ffffff : 0000:00:02.0 */
+               {
+                       .phys_start = 0x90000000,
+                       .virt_start = 0x90000000,
+                       .size = 0x1000000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: 91000000-910fffff : ICH HD audio */
+               {
+                       .phys_start = 0x91000000,
+                       .virt_start = 0x91000000,
+                       .size = 0x100000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: 91101000-91103fff : r8169 */
+               {
+                       .phys_start = 0x91101000,
+                       .virt_start = 0x91101000,
+                       .size = 0x3000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: 91104000-91104fff : r8169 */
+               {
+                       .phys_start = 0x91104000,
+                       .virt_start = 0x91104000,
+                       .size = 0x1000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: 91200000-91201fff : 0000:02:00.0 */
+               {
+                       .phys_start = 0x91200000,
+                       .virt_start = 0x91200000,
+                       .size = 0x2000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: 91300000-91300fff : rtsx_pci */
+               {
+                       .phys_start = 0x91300000,
+                       .virt_start = 0x91300000,
+                       .size = 0x1000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: 91400000-9140ffff : xhci-hcd */
+               {
+                       .phys_start = 0x91400000,
+                       .virt_start = 0x91400000,
+                       .size = 0x10000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: 91410000-91413fff : ICH HD audio */
+               {
+                       .phys_start = 0x91410000,
+                       .virt_start = 0x91410000,
+                       .size = 0x4000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: 91414000-91415fff : ahci */
+               {
+                       .phys_start = 0x91414000,
+                       .virt_start = 0x91414000,
+                       .size = 0x2000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: 91416000-914160ff : 0000:00:1f.1 */
+               {
+                       .phys_start = 0x91416000,
+                       .virt_start = 0x91416000,
+                       .size = 0x100,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: 91417000-91417fff : 0000:00:1a.0 */
+               {
+                       .phys_start = 0x91417000,
+                       .virt_start = 0x91417000,
+                       .size = 0x1000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: 91418000-91418fff : 0000:00:1a.0 */
+               {
+                       .phys_start = 0x91418000,
+                       .virt_start = 0x91418000,
+                       .size = 0x1000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: 91419000-91419fff : 0000:00:19.2 */
+               {
+                       .phys_start = 0x91419000,
+                       .virt_start = 0x91419000,
+                       .size = 0x1000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: 9141a000-9141afff : lpss_dev, lpss_priv, idma64.4 
*/
+               {
+                       .phys_start = 0x9141a000,
+                       .virt_start = 0x9141a000,
+                       .size = 0x1000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: 9141b000-9141bfff : 0000:00:19.1 */
+               {
+                       .phys_start = 0x9141b000,
+                       .virt_start = 0x9141b000,
+                       .size = 0x1000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: 9141c000-9141cfff : lpss_dev, lpss_priv, idma64.3 
*/
+               {
+                       .phys_start = 0x9141c000,
+                       .virt_start = 0x9141c000,
+                       .size = 0x1000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: 9141d000-9141dfff : 0000:00:19.0 */
+               {
+                       .phys_start = 0x9141d000,
+                       .virt_start = 0x9141d000,
+                       .size = 0x1000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: 9141e000-9141efff : lpss_dev, lpss_priv, idma64.2 
*/
+               {
+                       .phys_start = 0x9141e000,
+                       .virt_start = 0x9141e000,
+                       .size = 0x1000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: 9141f000-9141ffff : 0000:00:18.0 */
+               {
+                       .phys_start = 0x9141f000,
+                       .virt_start = 0x9141f000,
+                       .size = 0x1000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: 91420000-91420fff : serial, lpss_priv, idma64.1 */
+               {
+                       .phys_start = 0x91420000,
+                       .virt_start = 0x91420000,
+                       .size = 0x1000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: 91421000-91421fff : 0000:00:16.0 */
+               {
+                       .phys_start = 0x91421000,
+                       .virt_start = 0x91421000,
+                       .size = 0x1000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: 91422000-91422fff : lpss_dev, lpss_priv, idma64.0 
*/
+               {
+                       .phys_start = 0x91422000,
+                       .virt_start = 0x91422000,
+                       .size = 0x1000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: 91423000-914237ff : ahci */
+               {
+                       .phys_start = 0x91423000,
+                       .virt_start = 0x91423000,
+                       .size = 0x1000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: 91424000-914240ff : ahci */
+               {
+                       .phys_start = 0x91424000,
+                       .virt_start = 0x91424000,
+                       .size = 0x1000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: 91427000-91427fff : mei_me */
+               {
+                       .phys_start = 0x91427000,
+                       .virt_start = 0x91427000,
+                       .size = 0x1000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: fea00000-feafffff : pnp 00:03 */
+               {
+                       .phys_start = 0xfea00000,
+                       .virt_start = 0xfea00000,
+                       .size = 0x100000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: fed00000-fed003ff : PNP0103:00 */
+               {
+                       .phys_start = 0xfed00000,
+                       .virt_start = 0xfed00000,
+                       .size = 0x1000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: fed03000-fed03fff : pnp 00:03 */
+               {
+                       .phys_start = 0xfed03000,
+                       .virt_start = 0xfed03000,
+                       .size = 0x1000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: fed06000-fed06fff : pnp 00:03 */
+               {
+                       .phys_start = 0xfed06000,
+                       .virt_start = 0xfed06000,
+                       .size = 0x1000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: fed08000-fed09fff : pnp 00:03 */
+               {
+                       .phys_start = 0xfed08000,
+                       .virt_start = 0xfed08000,
+                       .size = 0x2000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: fed1c000-fed1cfff : pnp 00:03 */
+               {
+                       .phys_start = 0xfed1c000,
+                       .virt_start = 0xfed1c000,
+                       .size = 0x1000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: fed40000-fed44fff : MSFT0101:00 */
+               {
+                       .phys_start = 0xfed40000,
+                       .virt_start = 0xfed40000,
+                       .size = 0x5000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: fed80000-fedbffff : pnp 00:03 */
+               {
+                       .phys_start = 0xfed80000,
+                       .virt_start = 0xfed80000,
+                       .size = 0x40000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* MemRegion: 100000000-127dfffff : System RAM */
+               {
+                       .phys_start = 0x100000000,
+                       .virt_start = 0x100000000,
+                       .size = 0x27e00000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
+                               JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
+               },
+               /* MemRegion: 127e00000-129ffffff : Kernel */
+               {
+                       .phys_start = 0x127e00000,
+                       .virt_start = 0x127e00000,
+                       .size = 0x2200000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
+                               JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
+               },
+               /* MemRegion: 12a000000-27fffffff : System RAM */
+               {
+                       .phys_start = 0x12a000000,
+                       .virt_start = 0x12a000000,
+                       .size = 0x156000000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
+                               JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
+               },
+               /* MemRegion: 797c8000-797e7fff : ACPI DMAR RMRR */
+               /* PCI device: 00:15.0 */
+               {
+                       .phys_start = 0x797c8000,
+                       .virt_start = 0x797c8000,
+                       .size = 0x20000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
+                               JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
+               },
+               /* MemRegion: 7b800000-7fffffff : ACPI DMAR RMRR */
+               /* PCI device: 00:02.0 */
+               {
+                       .phys_start = 0x7b800000,
+                       .virt_start = 0x7b800000,
+                       .size = 0x4800000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
+                               JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
+               },
+               /* MemRegion: 3a600000-3f0fffff : JAILHOUSE Inmate Memory */
+               {
+                       .phys_start = 0x3a600000,
+                       .virt_start = 0x3a600000,
+                       .size = 0x4b00000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* IVSHMEM shared memory region */
+               {
+                       .phys_start = 0x3f100000,
+                       .virt_start = 0x3f100000,
+                       .size = 0xff000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+       },
+
+       .irqchips = {
+               /* IOAPIC 1, GSI base 0 */
+               {
+                       .address = 0xfec00000,
+                       .id = 0x1faf8,
+                       .pin_bitmap = {
+                               0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff
+                       },
+               },
+       },
+
+       .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 ...  0x3af/8] = -1,
+               [ 0x3b0/8 ...  0x3df/8] = 0x00, /* VGA */
+               [ 0x3e0/8 ...  0x3ff/8] = -1,
+               [ 0x400/8 ...  0x47f/8] = 0, /* HACK: ACPI */
+               [ 0x480/8 ...  0xcff/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 = 0,
+                       .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 = {
+                               0xff000000, 0xffffffff, 0xf0000000,
+                               0xffffffff, 0xffffffc0, 0x00000000,
+                       },
+                       .caps_start = 0,
+                       .num_caps = 7,
+                       .num_msi_vectors = 1,
+                       .msi_64bits = 0,
+                       .num_msix_vectors = 0,
+                       .msix_region_size = 0x0,
+                       .msix_address = 0x0,
+               },
+               /* PCIDevice: 00:0e.0 */
+               {
+                       .type = JAILHOUSE_PCI_TYPE_DEVICE,
+                       .iommu = 1,
+                       .domain = 0x0,
+                       .bdf = 0x70,
+                       .bar_mask = {
+                               0xffffc000, 0xffffffff, 0x00000000,
+                               0x00000000, 0xfff00000, 0xffffffff,
+                       },
+                       .caps_start = 7,
+                       .num_caps = 5,
+                       .num_msi_vectors = 1,
+                       .msi_64bits = 1,
+                       .num_msix_vectors = 0,
+                       .msix_region_size = 0x0,
+                       .msix_address = 0x0,
+               },
+               /* PCIDevice: 00:0f.0 */
+               {
+                       .type = JAILHOUSE_PCI_TYPE_DEVICE,
+                       .iommu = 1,
+                       .domain = 0x0,
+                       .bdf = 0x78,
+                       .bar_mask = {
+                               0xfffff000, 0xffffffff, 0x00000000,
+                               0x00000000, 0x00000000, 0x00000000,
+                       },
+                       .caps_start = 12,
+                       .num_caps = 3,
+                       .num_msi_vectors = 1,
+                       .msi_64bits = 1,
+                       .num_msix_vectors = 0,
+                       .msix_region_size = 0x0,
+                       .msix_address = 0x0,
+               },
+               /* PCIDevice: 00:12.0 */
+               {
+                       .type = JAILHOUSE_PCI_TYPE_DEVICE,
+                       .iommu = 1,
+                       .domain = 0x0,
+                       .bdf = 0x90,
+                       .bar_mask = {
+                               0xffffe000, 0xffffff00, 0xfffffff8,
+                               0xfffffffc, 0xffffffe0, 0xfffff800,
+                       },
+                       .caps_start = 15,
+                       .num_caps = 3,
+                       .num_msi_vectors = 1,
+                       .msi_64bits = 0,
+                       .num_msix_vectors = 0,
+                       .msix_region_size = 0x0,
+                       .msix_address = 0x0,
+               },
+               /* PCIDevice: 00:13.0 */
+               {
+                       .type = JAILHOUSE_PCI_TYPE_BRIDGE,
+                       .iommu = 1,
+                       .domain = 0x0,
+                       .bdf = 0x98,
+                       .bar_mask = {
+                               0x00000000, 0x00000000, 0x00000000,
+                               0x00000000, 0x00000000, 0x00000000,
+                       },
+                       .caps_start = 18,
+                       .num_caps = 9,
+                       .num_msi_vectors = 1,
+                       .msi_64bits = 0,
+                       .num_msix_vectors = 0,
+                       .msix_region_size = 0x0,
+                       .msix_address = 0x0,
+               },
+               /* PCIDevice: 00:13.1 */
+               {
+                       .type = JAILHOUSE_PCI_TYPE_BRIDGE,
+                       .iommu = 1,
+                       .domain = 0x0,
+                       .bdf = 0x99,
+                       .bar_mask = {
+                               0x00000000, 0x00000000, 0x00000000,
+                               0x00000000, 0x00000000, 0x00000000,
+                       },
+                       .caps_start = 18,
+                       .num_caps = 9,
+                       .num_msi_vectors = 1,
+                       .msi_64bits = 0,
+                       .num_msix_vectors = 0,
+                       .msix_region_size = 0x0,
+                       .msix_address = 0x0,
+               },
+               /* PCIDevice: 00:13.2 */
+               {
+                       .type = JAILHOUSE_PCI_TYPE_BRIDGE,
+                       .iommu = 1,
+                       .domain = 0x0,
+                       .bdf = 0x9a,
+                       .bar_mask = {
+                               0x00000000, 0x00000000, 0x00000000,
+                               0x00000000, 0x00000000, 0x00000000,
+                       },
+                       .caps_start = 18,
+                       .num_caps = 9,
+                       .num_msi_vectors = 1,
+                       .msi_64bits = 0,
+                       .num_msix_vectors = 0,
+                       .msix_region_size = 0x0,
+                       .msix_address = 0x0,
+               },
+               /* PCIDevice: 00:15.0 */
+               {
+                       .type = JAILHOUSE_PCI_TYPE_DEVICE,
+                       .iommu = 1,
+                       .domain = 0x0,
+                       .bdf = 0xa8,
+                       .bar_mask = {
+                               0xffff0000, 0xffffffff, 0x00000000,
+                               0x00000000, 0x00000000, 0x00000000,
+                       },
+                       .caps_start = 27,
+                       .num_caps = 3,
+                       .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 = {
+                               0xfffff000, 0xffffffff, 0xfffff000,
+                               0xffffffff, 0x00000000, 0x00000000,
+                       },
+                       .caps_start = 30,
+                       .num_caps = 2,
+                       .num_msi_vectors = 0,
+                       .msi_64bits = 0,
+                       .num_msix_vectors = 0,
+                       .msix_region_size = 0x0,
+                       .msix_address = 0x0,
+               },
+               /* PCIDevice: 00:18.0 */
+               {
+                       .type = JAILHOUSE_PCI_TYPE_DEVICE,
+                       .iommu = 1,
+                       .domain = 0x0,
+                       .bdf = 0xc0,
+                       .bar_mask = {
+                               0xfffff000, 0xffffffff, 0xfffff000,
+                               0xffffffff, 0x00000000, 0x00000000,
+                       },
+                       .caps_start = 30,
+                       .num_caps = 2,
+                       .num_msi_vectors = 0,
+                       .msi_64bits = 0,
+                       .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 = {
+                               0xfffff000, 0xffffffff, 0xfffff000,
+                               0xffffffff, 0x00000000, 0x00000000,
+                       },
+                       .caps_start = 30,
+                       .num_caps = 2,
+                       .num_msi_vectors = 0,
+                       .msi_64bits = 0,
+                       .num_msix_vectors = 0,
+                       .msix_region_size = 0x0,
+                       .msix_address = 0x0,
+               },
+               /* PCIDevice: 00:19.1 */
+               {
+                       .type = JAILHOUSE_PCI_TYPE_DEVICE,
+                       .iommu = 1,
+                       .domain = 0x0,
+                       .bdf = 0xc9,
+                       .bar_mask = {
+                               0xfffff000, 0xffffffff, 0xfffff000,
+                               0xffffffff, 0x00000000, 0x00000000,
+                       },
+                       .caps_start = 30,
+                       .num_caps = 2,
+                       .num_msi_vectors = 0,
+                       .msi_64bits = 0,
+                       .num_msix_vectors = 0,
+                       .msix_region_size = 0x0,
+                       .msix_address = 0x0,
+               },
+               /* PCIDevice: 00:19.2 */
+               {
+                       .type = JAILHOUSE_PCI_TYPE_DEVICE,
+                       .iommu = 1,
+                       .domain = 0x0,
+                       .bdf = 0xca,
+                       .bar_mask = {
+                               0xfffff000, 0xffffffff, 0xfffff000,
+                               0xffffffff, 0x00000000, 0x00000000,
+                       },
+                       .caps_start = 30,
+                       .num_caps = 2,
+                       .num_msi_vectors = 0,
+                       .msi_64bits = 0,
+                       .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 = {
+                               0xfffff000, 0xffffffff, 0xfffff000,
+                               0xffffffff, 0x00000000, 0x00000000,
+                       },
+                       .caps_start = 30,
+                       .num_caps = 2,
+                       .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 = 0,
+                       .num_msi_vectors = 0,
+                       .msi_64bits = 0,
+                       .num_msix_vectors = 0,
+                       .msix_region_size = 0x0,
+                       .msix_address = 0x0,
+               },
+               /* PCIDevice: 00:1f.1 */
+               {
+                       .type = JAILHOUSE_PCI_TYPE_DEVICE,
+                       .iommu = 1,
+                       .domain = 0x0,
+                       .bdf = 0xf9,
+                       .bar_mask = {
+                               0xffffff00, 0xffffffff, 0x00000000,
+                               0x00000000, 0xffffffe0, 0x00000000,
+                       },
+                       .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: 01:00.0 */
+               {
+                       .type = JAILHOUSE_PCI_TYPE_DEVICE,
+                       .iommu = 1,
+                       .domain = 0x0,
+                       .bdf = 0x100,
+                       .bar_mask = {
+                               0xfffff000, 0x00000000, 0x00000000,
+                               0x00000000, 0x00000000, 0x00000000,
+                       },
+                       .caps_start = 32,
+                       .num_caps = 5,
+                       .num_msi_vectors = 1,
+                       .msi_64bits = 1,
+                       .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 = {
+                               0xffffe000, 0xffffffff, 0x00000000,
+                               0x00000000, 0x00000000, 0x00000000,
+                       },
+                       .caps_start = 37,
+                       .num_caps = 7,
+                       .num_msi_vectors = 1,
+                       .msi_64bits = 1,
+                       .num_msix_vectors = 0,
+                       .msix_region_size = 0x0,
+                       .msix_address = 0x0,
+               },
+               /* PCIDevice: 03:00.0 */
+               {
+                       .type = JAILHOUSE_PCI_TYPE_DEVICE,
+                       .iommu = 1,
+                       .domain = 0x0,
+                       .bdf = 0x300,
+                       .bar_mask = {
+                               0xffffff00, 0x00000000, 0xfffff000,
+                               0xffffffff, 0xffffc000, 0xffffffff,
+                       },
+                       .caps_start = 44,
+                       .num_caps = 9,
+                       .num_msi_vectors = 1,
+                       .msi_64bits = 1,
+                       .num_msix_vectors = 4,
+                       .msix_region_size = 0x1000,
+                       .msix_address = 0x91100000,
+               },
+               /* IVSHMEM: 00:10.0 */
+               {
+                       .type = JAILHOUSE_PCI_TYPE_IVSHMEM,
+                       .iommu = 1,
+                       .domain = 0x0,
+                       .bdf = 0x10 << 3,
+                       .bar_mask = {
+                               0xffffff00, 0xffffffff, 0x00000000,
+                               0x00000000, 0xffffffe0, 0xffffffff,
+                       },
+                       .num_msix_vectors = 1,
+                       .shmem_region = 53,
+                       .shmem_protocol = JAILHOUSE_SHMEM_PROTO_VETH,
+               },
+       },
+
+       .pci_caps = {
+               /* PCIDevice: 00:02.0 */
+               {
+                       .id = 0x9,
+                       .start = 0x40,
+                       .len = 2,
+                       .flags = 0,
+               },
+               {
+                       .id = 0x10,
+                       .start = 0x70,
+                       .len = 60,
+                       .flags = 0,
+               },
+               {
+                       .id = 0x5,
+                       .start = 0xac,
+                       .len = 10,
+                       .flags = JAILHOUSE_PCICAPS_WRITE,
+               },
+               {
+                       .id = 0x1,
+                       .start = 0xd0,
+                       .len = 8,
+                       .flags = JAILHOUSE_PCICAPS_WRITE,
+               },
+               {
+                       .id = 0x1b | JAILHOUSE_PCI_EXT_CAP,
+                       .start = 0x100,
+                       .len = 4,
+                       .flags = 0,
+               },
+               {
+                       .id = 0xf | JAILHOUSE_PCI_EXT_CAP,
+                       .start = 0x200,
+                       .len = 4,
+                       .flags = 0,
+               },
+               {
+                       .id = 0x13 | JAILHOUSE_PCI_EXT_CAP,
+                       .start = 0x300,
+                       .len = 4,
+                       .flags = 0,
+               },
+               /* PCIDevice: 00:0e.0 */
+               {
+                       .id = 0x1,
+                       .start = 0x50,
+                       .len = 8,
+                       .flags = JAILHOUSE_PCICAPS_WRITE,
+               },
+               {
+                       .id = 0x9,
+                       .start = 0x80,
+                       .len = 2,
+                       .flags = 0,
+               },
+               {
+                       .id = 0x5,
+                       .start = 0x60,
+                       .len = 14,
+                       .flags = JAILHOUSE_PCICAPS_WRITE,
+               },
+               {
+                       .id = 0x10,
+                       .start = 0x70,
+                       .len = 20,
+                       .flags = 0,
+               },
+               {
+                       .id = 0x0 | JAILHOUSE_PCI_EXT_CAP,
+                       .start = 0x100,
+                       .len = 4,
+                       .flags = 0,
+               },
+               /* PCIDevice: 00:0f.0 */
+               {
+                       .id = 0x1,
+                       .start = 0x50,
+                       .len = 8,
+                       .flags = JAILHOUSE_PCICAPS_WRITE,
+               },
+               {
+                       .id = 0x5,
+                       .start = 0x8c,
+                       .len = 14,
+                       .flags = JAILHOUSE_PCICAPS_WRITE,
+               },
+               {
+                       .id = 0x9,
+                       .start = 0xa4,
+                       .len = 2,
+                       .flags = 0,
+               },
+               /* PCIDevice: 00:12.0 */
+               {
+                       .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,
+               },
+               /* PCIDevice: 00:13.0 */
+               /* PCIDevice: 00:13.1 */
+               /* PCIDevice: 00:13.2 */
+               {
+                       .id = 0x10,
+                       .start = 0x40,
+                       .len = 60,
+                       .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,
+               },
+               {
+                       .id = 0x0 | JAILHOUSE_PCI_EXT_CAP,
+                       .start = 0x100,
+                       .len = 4,
+                       .flags = 0,
+               },
+               {
+                       .id = 0xd | JAILHOUSE_PCI_EXT_CAP,
+                       .start = 0x140,
+                       .len = 4,
+                       .flags = 0,
+               },
+               {
+                       .id = 0x0 | JAILHOUSE_PCI_EXT_CAP,
+                       .start = 0x150,
+                       .len = 4,
+                       .flags = 0,
+               },
+               {
+                       .id = 0x1e | JAILHOUSE_PCI_EXT_CAP,
+                       .start = 0x200,
+                       .len = 4,
+                       .flags = 0,
+               },
+               {
+                       .id = 0x0 | JAILHOUSE_PCI_EXT_CAP,
+                       .start = 0x220,
+                       .len = 4,
+                       .flags = 0,
+               },
+               /* PCIDevice: 00:15.0 */
+               {
+                       .id = 0x1,
+                       .start = 0x70,
+                       .len = 8,
+                       .flags = JAILHOUSE_PCICAPS_WRITE,
+               },
+               {
+                       .id = 0x5,
+                       .start = 0x80,
+                       .len = 14,
+                       .flags = JAILHOUSE_PCICAPS_WRITE,
+               },
+               {
+                       .id = 0x9,
+                       .start = 0x90,
+                       .len = 2,
+                       .flags = 0,
+               },
+               /* PCIDevice: 00:16.0 */
+               /* PCIDevice: 00:18.0 */
+               /* PCIDevice: 00:19.0 */
+               /* PCIDevice: 00:19.1 */
+               /* PCIDevice: 00:19.2 */
+               /* PCIDevice: 00:1a.0 */
+               {
+                       .id = 0x1,
+                       .start = 0x80,
+                       .len = 8,
+                       .flags = JAILHOUSE_PCICAPS_WRITE,
+               },
+               {
+                       .id = 0x9,
+                       .start = 0x90,
+                       .len = 2,
+                       .flags = 0,
+               },
+               /* PCIDevice: 01:00.0 */
+               {
+                       .id = 0x1,
+                       .start = 0x40,
+                       .len = 8,
+                       .flags = JAILHOUSE_PCICAPS_WRITE,
+               },
+               {
+                       .id = 0x5,
+                       .start = 0x50,
+                       .len = 14,
+                       .flags = JAILHOUSE_PCICAPS_WRITE,
+               },
+               {
+                       .id = 0x10,
+                       .start = 0x70,
+                       .len = 60,
+                       .flags = JAILHOUSE_PCICAPS_WRITE,
+               },
+               {
+                       .id = 0x1 | JAILHOUSE_PCI_EXT_CAP,
+                       .start = 0x100,
+                       .len = 4,
+                       .flags = 0,
+               },
+               {
+                       .id = 0x3 | JAILHOUSE_PCI_EXT_CAP,
+                       .start = 0x140,
+                       .len = 4,
+                       .flags = 0,
+               },
+               /* PCIDevice: 02:00.0 */
+               {
+                       .id = 0x1,
+                       .start = 0xc8,
+                       .len = 8,
+                       .flags = JAILHOUSE_PCICAPS_WRITE,
+               },
+               {
+                       .id = 0x5,
+                       .start = 0xd0,
+                       .len = 14,
+                       .flags = JAILHOUSE_PCICAPS_WRITE,
+               },
+               {
+                       .id = 0x10,
+                       .start = 0x40,
+                       .len = 60,
+                       .flags = JAILHOUSE_PCICAPS_WRITE,
+               },
+               {
+                       .id = 0x1 | JAILHOUSE_PCI_EXT_CAP,
+                       .start = 0x100,
+                       .len = 4,
+                       .flags = 0,
+               },
+               {
+                       .id = 0x3 | JAILHOUSE_PCI_EXT_CAP,
+                       .start = 0x140,
+                       .len = 4,
+                       .flags = 0,
+               },
+               {
+                       .id = 0x18 | JAILHOUSE_PCI_EXT_CAP,
+                       .start = 0x14c,
+                       .len = 4,
+                       .flags = 0,
+               },
+               {
+                       .id = 0x1e | JAILHOUSE_PCI_EXT_CAP,
+                       .start = 0x154,
+                       .len = 4,
+                       .flags = 0,
+               },
+               /* PCIDevice: 03:00.0 */
+               {
+                       .id = 0x1,
+                       .start = 0x40,
+                       .len = 8,
+                       .flags = JAILHOUSE_PCICAPS_WRITE,
+               },
+               {
+                       .id = 0x5,
+                       .start = 0x50,
+                       .len = 14,
+                       .flags = JAILHOUSE_PCICAPS_WRITE,
+               },
+               {
+                       .id = 0x10,
+                       .start = 0x70,
+                       .len = 60,
+                       .flags = JAILHOUSE_PCICAPS_WRITE,
+               },
+               {
+                       .id = 0x11,
+                       .start = 0xb0,
+                       .len = 12,
+                       .flags = JAILHOUSE_PCICAPS_WRITE,
+               },
+               {
+                       .id = 0x1 | JAILHOUSE_PCI_EXT_CAP,
+                       .start = 0x100,
+                       .len = 4,
+                       .flags = 0,
+               },
+               {
+                       .id = 0x2 | JAILHOUSE_PCI_EXT_CAP,
+                       .start = 0x140,
+                       .len = 4,
+                       .flags = 0,
+               },
+               {
+                       .id = 0x3 | JAILHOUSE_PCI_EXT_CAP,
+                       .start = 0x160,
+                       .len = 4,
+                       .flags = 0,
+               },
+               {
+                       .id = 0x18 | JAILHOUSE_PCI_EXT_CAP,
+                       .start = 0x170,
+                       .len = 4,
+                       .flags = 0,
+               },
+               {
+                       .id = 0x1e | JAILHOUSE_PCI_EXT_CAP,
+                       .start = 0x178,
+                       .len = 4,
+                       .flags = 0,
+               },
+       },
+};
diff --git a/recipes-jailhouse/jailhouse/jailhouse.inc 
b/recipes-jailhouse/jailhouse/jailhouse.inc
index 2caf601..65585b3 100644
--- a/recipes-jailhouse/jailhouse/jailhouse.inc
+++ b/recipes-jailhouse/jailhouse/jailhouse.inc
@@ -11,7 +11,7 @@
 
 python() {
     machine = d.getVar('MACHINE', True)
-    if machine in ['qemuamd64']:
+    if machine in ['qemuamd64', 'nuc6cay']:
         machine = 'x86-64'
     d.setVar('JAILHOUSE_CONFIG', machine + '_config.h')
 }
diff --git a/recipes-jailhouse/jailhouse/jailhouse_latest.bb 
b/recipes-jailhouse/jailhouse/jailhouse_latest.bb
index 962863e..a6a9de1 100644
--- a/recipes-jailhouse/jailhouse/jailhouse_latest.bb
+++ b/recipes-jailhouse/jailhouse/jailhouse_latest.bb
@@ -14,7 +14,13 @@ require jailhouse.inc
 SRCREV = "next"
 PV = "0.9999-next"
 
+SRC_URI += " \
+    file://nuc6cay.c \
+    file://linux-nuc6cay-demo.c"
+
 dpkg_runbuild_prepend() {
     bbplain $(printf "jailhouse-latest: Building revision %.12s\n" \
                      $(cat ${S}/.git/refs/heads/next))
+    cp ${WORKDIR}/nuc6cay.c ${S}/configs/x86/
+    cp ${WORKDIR}/linux-nuc6cay-demo.c ${S}/configs/x86/
 }
-- 
2.16.4

-- 
You received this message because you are subscribed to the Google Groups 
"Jailhouse" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jailhouse-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to