/* * Jailhouse, a Linux-based partitioning hypervisor * * Copyright (c) Siemens AG, 2014-2016 * * 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 Intel Corp. Broxton P * created with 'tools/jailhouse config create -r myboard/ configs/myboard.c' * * NOTE: This config expects the following to be appended to your kernel cmdline * "memmap=0x4200000$0x3b000000" */ #include #include #define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0])) struct { struct jailhouse_system header; __u64 cpus[1]; struct jailhouse_memory mem_regions[97]; struct jailhouse_irqchip irqchips[1]; __u8 pio_bitmap[0x2000]; struct jailhouse_pci_device pci_devices[33]; struct jailhouse_pci_capability pci_caps[39]; } __attribute__((packed)) config = { .header = { .signature = JAILHOUSE_SYSTEM_SIGNATURE, .hypervisor_memory = { .phys_start = 0x3b000000, .size = 0x4000000, }, .debug_console = { .phys_start = 0x9122e000, .size = 0x1000, .flags = JAILHOUSE_MEM_IO | JAILHOUSE_MEM_IO_32, }, .platform_info.x86 = { .mmconfig_base = 0xe0000000, .mmconfig_end_bus = 0x3f, .pm_timer_address = 0x408, .iommu_units = { { .base = 0xfed64000, .size = 0x1000, }, { .base = 0xfed65000, .size = 0x1000, }, }, }, .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-00057fff : System RAM */ { .phys_start = 0x0, .virt_start = 0x0, .size = 0x58000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE | JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA, }, /* MemRegion: 00059000-0009dfff : System RAM */ { .phys_start = 0x59000, .virt_start = 0x59000, .size = 0x45000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE | JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA, }, /* MemRegion: 00100000-02ffffff : System RAM */ { .phys_start = 0x100000, .virt_start = 0x100000, .size = 0x2f00000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE | JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA, }, /* MemRegion: 03000000-05ffffff : Kernel */ { .phys_start = 0x3000000, .virt_start = 0x3000000, .size = 0x3000000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE | JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA, }, /* MemRegion: 06000000-0effffff : System RAM */ { .phys_start = 0x6000000, .virt_start = 0x6000000, .size = 0x9000000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE | JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA, }, /* MemRegion: 12152000-3affffff : System RAM */ { .phys_start = 0x12152000, .virt_start = 0x12152000, .size = 0x28eae000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE | JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA, }, /* MemRegion: 3f200000-78190fff : System RAM */ { .phys_start = 0x3f200000, .virt_start = 0x3f200000, .size = 0x38f91000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE | JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA, }, /* MemRegion: 79f41000-79f8dfff : ACPI Non-volatile Storage */ { .phys_start = 0x79f41000, .virt_start = 0x79f41000, .size = 0x4d000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 79f8f000-79fa0fff : ACPI Non-volatile Storage */ { .phys_start = 0x79f8f000, .virt_start = 0x79f8f000, .size = 0x12000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 79fa1000-79fd0fff : ACPI Tables */ { .phys_start = 0x79fa1000, .virt_start = 0x79fa1000, .size = 0x30000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 79fd1000-7ab78fff : System RAM */ { .phys_start = 0x79fd1000, .virt_start = 0x79fd1000, .size = 0xba8000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE | JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA, }, /* MemRegion: 7ab79000-7ab79fff : ACPI Non-volatile Storage */ { .phys_start = 0x7ab79000, .virt_start = 0x7ab79000, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 7aba4000-7affffff : System RAM */ { .phys_start = 0x7aba4000, .virt_start = 0x7aba4000, .size = 0x45c000, .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: 91100000-9111ffff : igb_avb */ { .phys_start = 0x91100000, .virt_start = 0x91100000, .size = 0x20000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 91121000-91123fff : igb_avb */ { .phys_start = 0x91121000, .virt_start = 0x91121000, .size = 0x3000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 91200000-9120ffff : xhci-hcd */ { .phys_start = 0x91200000, .virt_start = 0x91200000, .size = 0x10000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 91218000-9121bfff : ICH HD audio */ { .phys_start = 0x91218000, .virt_start = 0x91218000, .size = 0x4000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 9121c000-9121dfff : heci_ish */ { .phys_start = 0x9121c000, .virt_start = 0x9121c000, .size = 0x2000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 9121e000-9121ffff : ahci */ { .phys_start = 0x9121e000, .virt_start = 0x9121e000, .size = 0x2000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 91220000-91220fff : mei_me */ { .phys_start = 0x91220000, .virt_start = 0x91220000, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 91223000-91223fff : heci_ish */ { .phys_start = 0x91223000, .virt_start = 0x91223000, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 91224000-912241ff : lpss_dev */ { .phys_start = 0x91224000, .virt_start = 0x91224000, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 91224200-912242ff : lpss_priv */ { .phys_start = 0x91224200, .virt_start = 0x91224200, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 91224800-91224fff : idma64.0 */ { .phys_start = 0x91224800, .virt_start = 0x91224800, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 91225000-912251ff : lpss_dev */ { .phys_start = 0x91225000, .virt_start = 0x91225000, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 91225200-912252ff : lpss_priv */ { .phys_start = 0x91225200, .virt_start = 0x91225200, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 91225800-91225fff : idma64.1 */ { .phys_start = 0x91225800, .virt_start = 0x91225800, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 91226000-912261ff : lpss_dev */ { .phys_start = 0x91226000, .virt_start = 0x91226000, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 91226200-912262ff : lpss_priv */ { .phys_start = 0x91226200, .virt_start = 0x91226200, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 91226800-91226fff : idma64.2 */ { .phys_start = 0x91226800, .virt_start = 0x91226800, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 91227000-912271ff : lpss_dev */ { .phys_start = 0x91227000, .virt_start = 0x91227000, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 91227200-912272ff : lpss_priv */ { .phys_start = 0x91227200, .virt_start = 0x91227200, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 91227800-91227fff : idma64.3 */ { .phys_start = 0x91227800, .virt_start = 0x91227800, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 91228000-912281ff : lpss_dev */ { .phys_start = 0x91228000, .virt_start = 0x91228000, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 91228200-912282ff : lpss_priv */ { .phys_start = 0x91228200, .virt_start = 0x91228200, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 91228800-91228fff : idma64.4 */ { .phys_start = 0x91228800, .virt_start = 0x91228800, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 91229000-912291ff : lpss_dev */ { .phys_start = 0x91229000, .virt_start = 0x91229000, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 91229200-912292ff : lpss_priv */ { .phys_start = 0x91229200, .virt_start = 0x91229200, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 91229800-91229fff : idma64.5 */ { .phys_start = 0x91229800, .virt_start = 0x91229800, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 9122a000-9122a1ff : lpss_dev */ { .phys_start = 0x9122a000, .virt_start = 0x9122a000, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 9122a200-9122a2ff : lpss_priv */ { .phys_start = 0x9122a200, .virt_start = 0x9122a200, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 9122a800-9122afff : idma64.6 */ { .phys_start = 0x9122a800, .virt_start = 0x9122a800, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 9122b000-9122b1ff : lpss_dev */ { .phys_start = 0x9122b000, .virt_start = 0x9122b000, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 9122b200-9122b2ff : lpss_priv */ { .phys_start = 0x9122b200, .virt_start = 0x9122b200, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 9122b800-9122bfff : idma64.7 */ { .phys_start = 0x9122b800, .virt_start = 0x9122b800, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 9122c000-9122c01f : serial */ { .phys_start = 0x9122c000, .virt_start = 0x9122c000, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 9122c200-9122c2ff : lpss_priv */ { .phys_start = 0x9122c200, .virt_start = 0x9122c200, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 9122c800-9122cfff : idma64.8 */ { .phys_start = 0x9122c800, .virt_start = 0x9122c800, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 9122d000-9122d01f : serial */ { .phys_start = 0x9122d000, .virt_start = 0x9122d000, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 9122d200-9122d2ff : lpss_priv */ { .phys_start = 0x9122d200, .virt_start = 0x9122d200, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 9122d800-9122dfff : idma64.9 */ { .phys_start = 0x9122d800, .virt_start = 0x9122d800, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 9122e000-9122e01f : serial */ { .phys_start = 0x9122e000, .virt_start = 0x9122e000, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 9122e200-9122e2ff : lpss_priv */ { .phys_start = 0x9122e200, .virt_start = 0x9122e200, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 9122f000-9122f01f : serial */ { .phys_start = 0x9122f000, .virt_start = 0x9122f000, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 9122f200-9122f2ff : lpss_priv */ { .phys_start = 0x9122f200, .virt_start = 0x9122f200, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 91230000-912301ff : lpss_dev */ { .phys_start = 0x91230000, .virt_start = 0x91230000, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 91230200-912302ff : lpss_priv */ { .phys_start = 0x91230200, .virt_start = 0x91230200, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 91230800-91230fff : idma64.12 */ { .phys_start = 0x91230800, .virt_start = 0x91230800, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 91231000-912311ff : lpss_dev */ { .phys_start = 0x91231000, .virt_start = 0x91231000, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 91231200-912312ff : lpss_priv */ { .phys_start = 0x91231200, .virt_start = 0x91231200, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 91231800-91231fff : idma64.13 */ { .phys_start = 0x91231800, .virt_start = 0x91231800, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 91232000-912321ff : lpss_dev */ { .phys_start = 0x91232000, .virt_start = 0x91232000, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 91232200-912322ff : lpss_priv */ { .phys_start = 0x91232200, .virt_start = 0x91232200, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 91232800-91232fff : idma64.14 */ { .phys_start = 0x91232800, .virt_start = 0x91232800, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 91233000-91233fff : mmc0 */ { .phys_start = 0x91233000, .virt_start = 0x91233000, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 91234000-91234fff : mmc1 */ { .phys_start = 0x91234000, .virt_start = 0x91234000, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 91235000-91235fff : mmc2 */ { .phys_start = 0x91235000, .virt_start = 0x91235000, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 91236000-912367ff : ahci */ { .phys_start = 0x91236000, .virt_start = 0x91236000, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 91237000-912370ff : 0000:00:1f.1 */ { .phys_start = 0x91237000, .virt_start = 0x91237000, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 91238000-912380ff : ahci */ { .phys_start = 0x91238000, .virt_start = 0x91238000, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 91300000-914fffff : PCI Bus 0000:01 */ { .phys_start = 0x91300000, .virt_start = 0x91300000, .size = 0x200000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 91500000-916fffff : PCI Bus 0000:01 */ { .phys_start = 0x91500000, .virt_start = 0x91500000, .size = 0x200000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 91700000-918fffff : PCI Bus 0000:02 */ { .phys_start = 0x91700000, .virt_start = 0x91700000, .size = 0x200000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 91900000-91afffff : PCI Bus 0000:04 */ { .phys_start = 0x91900000, .virt_start = 0x91900000, .size = 0x200000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 91b00000-91cfffff : PCI Bus 0000:04 */ { .phys_start = 0x91b00000, .virt_start = 0x91b00000, .size = 0x200000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 91d00000-91efffff : PCI Bus 0000:05 */ { .phys_start = 0x91d00000, .virt_start = 0x91d00000, .size = 0x200000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 91f00000-920fffff : PCI Bus 0000:05 */ { .phys_start = 0x91f00000, .virt_start = 0x91f00000, .size = 0x200000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: d0c00000-d0c00653 : INT3452:03 */ { .phys_start = 0xd0c00000, .virt_start = 0xd0c00000, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: d0c40000-d0c40763 : INT3452:01 */ { .phys_start = 0xd0c40000, .virt_start = 0xd0c40000, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: d0c50000-d0c5076b : INT3452:00 */ { .phys_start = 0xd0c50000, .virt_start = 0xd0c50000, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: d0c70000-d0c70673 : INT3452:02 */ { .phys_start = 0xd0c70000, .virt_start = 0xd0c70000, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: fea00000-feafffff : pnp 00:01 */ { .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:01 */ { .phys_start = 0xfed03000, .virt_start = 0xfed03000, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: fed06000-fed06fff : pnp 00:01 */ { .phys_start = 0xfed06000, .virt_start = 0xfed06000, .size = 0x1000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: fed08000-fed09fff : pnp 00:01 */ { .phys_start = 0xfed08000, .virt_start = 0xfed08000, .size = 0x2000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: fed1c000-fed1cfff : pnp 00:01 */ { .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:01 */ { .phys_start = 0xfed80000, .virt_start = 0xfed80000, .size = 0x40000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, /* MemRegion: 100000000-1ffffffff : System RAM */ { .phys_start = 0x100000000, .virt_start = 0x100000000, .size = 0x100000000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE | JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA, }, /* MemRegion: 79f1c000-79f3bfff : ACPI DMAR RMRR */ /* PCI device: 00:15.0 */ { .phys_start = 0x79f1c000, .virt_start = 0x79f1c000, .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: 3f000000-3f1fffff : JAILHOUSE Inmate Memory */ { .phys_start = 0x3f000000, .virt_start = 0x3f000000, .size = 0x200000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, { .phys_start = 0xd0d00000, .virt_start = 0xd0d00000, .size = 0x100000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, }, }, .irqchips = { /* IOAPIC 1, GSI base 0 */ { .address = 0xfec00000, .id = 0xfaf8, .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 ... 0x7f/8] = -1, [ 0x80/8 ... 0x87/8] = 0xfe, /* Linux: native_io_delay() */ [ 0x88/8 ... 0x3af/8] = -1, [ 0x3b0/8 ... 0x3df/8] = 0x00, /* VGA */ [ 0x3e0/8 ... 0x3ff/8] = -1, [ 0x400/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, 0x00000000, 0xf0000000, 0xffffffff, 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, 0x00000000, 0xfff00000, }, .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:11.0 */ { .type = JAILHOUSE_PCI_TYPE_DEVICE, .iommu = 1, .domain = 0x0, .bdf = 0x88, .bar_mask = { 0xffffe000, 0xffffffff, 0x00000000, 0xfffff000, 0xffffffff, 0x00000000, }, .caps_start = 15, .num_caps = 2, .num_msi_vectors = 0, .msi_64bits = 0, .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 = 17, .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 = 20, .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 = 20, .num_caps = 9, .num_msi_vectors = 1, .msi_64bits = 0, .num_msix_vectors = 0, .msix_region_size = 0x0, .msix_address = 0x0, }, /* PCIDevice: 00:13.3 */ { .type = JAILHOUSE_PCI_TYPE_BRIDGE, .iommu = 1, .domain = 0x0, .bdf = 0x9b, .bar_mask = { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, .caps_start = 20, .num_caps = 9, .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_BRIDGE, .iommu = 1, .domain = 0x0, .bdf = 0xa0, .bar_mask = { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, .caps_start = 20, .num_caps = 9, .num_msi_vectors = 1, .msi_64bits = 0, .num_msix_vectors = 0, .msix_region_size = 0x0, .msix_address = 0x0, }, /* PCIDevice: 00:14.1 */ { .type = JAILHOUSE_PCI_TYPE_BRIDGE, .iommu = 1, .domain = 0x0, .bdf = 0xa1, .bar_mask = { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, .caps_start = 20, .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 = 29, .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, 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, .caps_start = 15, .num_caps = 2, .num_msi_vectors = 0, .msi_64bits = 0, .num_msix_vectors = 0, .msix_region_size = 0x0, .msix_address = 0x0, }, /* PCIDevice: 00:16.1 */ { .type = JAILHOUSE_PCI_TYPE_DEVICE, .iommu = 1, .domain = 0x0, .bdf = 0xb1, .bar_mask = { 0xfffff000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, .caps_start = 15, .num_caps = 2, .num_msi_vectors = 0, .msi_64bits = 0, .num_msix_vectors = 0, .msix_region_size = 0x0, .msix_address = 0x0, }, /* PCIDevice: 00:16.2 */ { .type = JAILHOUSE_PCI_TYPE_DEVICE, .iommu = 1, .domain = 0x0, .bdf = 0xb2, .bar_mask = { 0xfffff000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, .caps_start = 15, .num_caps = 2, .num_msi_vectors = 0, .msi_64bits = 0, .num_msix_vectors = 0, .msix_region_size = 0x0, .msix_address = 0x0, }, /* PCIDevice: 00:16.3 */ { .type = JAILHOUSE_PCI_TYPE_DEVICE, .iommu = 1, .domain = 0x0, .bdf = 0xb3, .bar_mask = { 0xfffff000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, .caps_start = 15, .num_caps = 2, .num_msi_vectors = 0, .msi_64bits = 0, .num_msix_vectors = 0, .msix_region_size = 0x0, .msix_address = 0x0, }, /* PCIDevice: 00:17.0 */ { .type = JAILHOUSE_PCI_TYPE_DEVICE, .iommu = 1, .domain = 0x0, .bdf = 0xb8, .bar_mask = { 0xfffff000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, .caps_start = 15, .num_caps = 2, .num_msi_vectors = 0, .msi_64bits = 0, .num_msix_vectors = 0, .msix_region_size = 0x0, .msix_address = 0x0, }, /* PCIDevice: 00:17.1 */ { .type = JAILHOUSE_PCI_TYPE_DEVICE, .iommu = 1, .domain = 0x0, .bdf = 0xb9, .bar_mask = { 0xfffff000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, .caps_start = 15, .num_caps = 2, .num_msi_vectors = 0, .msi_64bits = 0, .num_msix_vectors = 0, .msix_region_size = 0x0, .msix_address = 0x0, }, /* PCIDevice: 00:17.2 */ { .type = JAILHOUSE_PCI_TYPE_DEVICE, .iommu = 1, .domain = 0x0, .bdf = 0xba, .bar_mask = { 0xfffff000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, .caps_start = 15, .num_caps = 2, .num_msi_vectors = 0, .msi_64bits = 0, .num_msix_vectors = 0, .msix_region_size = 0x0, .msix_address = 0x0, }, /* PCIDevice: 00:17.3 */ { .type = JAILHOUSE_PCI_TYPE_DEVICE, .iommu = 1, .domain = 0x0, .bdf = 0xbb, .bar_mask = { 0xfffff000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, .caps_start = 15, .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, 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, .caps_start = 15, .num_caps = 2, .num_msi_vectors = 0, .msi_64bits = 0, .num_msix_vectors = 0, .msix_region_size = 0x0, .msix_address = 0x0, }, /* PCIDevice: 00:18.1 */ { .type = JAILHOUSE_PCI_TYPE_DEVICE, .iommu = 1, .domain = 0x0, .bdf = 0xc1, .bar_mask = { 0xfffff000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, .caps_start = 15, .num_caps = 2, .num_msi_vectors = 0, .msi_64bits = 0, .num_msix_vectors = 0, .msix_region_size = 0x0, .msix_address = 0x0, }, /* PCIDevice: 00:18.2 */ { .type = JAILHOUSE_PCI_TYPE_DEVICE, .iommu = 1, .domain = 0x0, .bdf = 0xc2, .bar_mask = { 0xfffff000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, .caps_start = 15, .num_caps = 2, .num_msi_vectors = 0, .msi_64bits = 0, .num_msix_vectors = 0, .msix_region_size = 0x0, .msix_address = 0x0, }, /* PCIDevice: 00:18.3 */ { .type = JAILHOUSE_PCI_TYPE_DEVICE, .iommu = 1, .domain = 0x0, .bdf = 0xc3, .bar_mask = { 0xfffff000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, .caps_start = 15, .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, 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, .caps_start = 15, .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, 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, .caps_start = 15, .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, 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, .caps_start = 15, .num_caps = 2, .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 = { 0xfffff000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, .caps_start = 15, .num_caps = 2, .num_msi_vectors = 0, .msi_64bits = 0, .num_msix_vectors = 0, .msix_region_size = 0x0, .msix_address = 0x0, }, /* PCIDevice: 00:1c.0 */ { .type = JAILHOUSE_PCI_TYPE_DEVICE, .iommu = 1, .domain = 0x0, .bdf = 0xe0, .bar_mask = { 0xfffff000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, .caps_start = 15, .num_caps = 2, .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_DEVICE, .iommu = 1, .domain = 0x0, .bdf = 0xf0, .bar_mask = { 0xfffff000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, .caps_start = 15, .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, 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 = { 0xfffe0000, 0x00000000, 0xffffffe0, 0xffffc000, 0x00000000, 0x00000000, }, .caps_start = 32, .num_caps = 7, .num_msi_vectors = 1, .msi_64bits = 1, .num_msix_vectors = 5, .msix_region_size = 0x1000, .msix_address = 0x91120000, }, }, .pci_caps = { /* PCIDevice: 00:02.0 */ { .id = 0x9, .start = 0x40, .len = 2, .flags = 0, }, { .id = 0x10, .start = 0x70, .len = 44, .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:11.0 */ /* PCIDevice: 00:16.0 */ /* PCIDevice: 00:16.1 */ /* PCIDevice: 00:16.2 */ /* PCIDevice: 00:16.3 */ /* PCIDevice: 00:17.0 */ /* PCIDevice: 00:17.1 */ /* PCIDevice: 00:17.2 */ /* PCIDevice: 00:17.3 */ /* PCIDevice: 00:18.0 */ /* PCIDevice: 00:18.1 */ /* PCIDevice: 00:18.2 */ /* PCIDevice: 00:18.3 */ /* PCIDevice: 00:19.0 */ /* PCIDevice: 00:19.1 */ /* PCIDevice: 00:19.2 */ /* PCIDevice: 00:1b.0 */ /* PCIDevice: 00:1c.0 */ /* PCIDevice: 00:1e.0 */ { .id = 0x1, .start = 0x80, .len = 8, .flags = JAILHOUSE_PCICAPS_WRITE, }, { .id = 0x9, .start = 0x90, .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.2 */ /* PCIDevice: 00:13.3 */ /* PCIDevice: 00:14.0 */ /* PCIDevice: 00:14.1 */ { .id = 0x10, .start = 0x40, .len = 44, .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 = 0x1f | 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: 02:00.0 */ { .id = 0x1, .start = 0x40, .len = 8, .flags = JAILHOUSE_PCICAPS_WRITE, }, { .id = 0x5, .start = 0x50, .len = 24, .flags = JAILHOUSE_PCICAPS_WRITE, }, { .id = 0x11, .start = 0x70, .len = 12, .flags = JAILHOUSE_PCICAPS_WRITE, }, { .id = 0x10, .start = 0xa0, .len = 44, .flags = 0, }, { .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 = 0x17 | JAILHOUSE_PCI_EXT_CAP, .start = 0x1a0, .len = 4, .flags = 0, }, }, };