* THE POSSIBILITY OF SUCH DAMAGE.
*
* Configuration for Dell Inc. OptiPlex 7010
- * created with '/usr/local/libexec/jailhouse/jailhouse config create -r . novabox-pc.c'
+ * created with '/usr/local/libexec/jailhouse/jailhouse config create -r . novabox.c'
*
* NOTE: This config expects the following to be appended to your kernel cmdline
- * "memmap=0x4200000$0x3b000000"
+ * "memmap=0x9000000$0x37600000"
*/
#include <linux/types.h>
struct {
struct jailhouse_system header;
__u64 cpus[1];
- struct jailhouse_memory mem_regions[41];
+ struct jailhouse_memory mem_regions[46];
struct jailhouse_irqchip irqchips[1];
__u8 pio_bitmap[0x2000];
- struct jailhouse_pci_device pci_devices[12];
- struct jailhouse_pci_capability pci_caps[22];
+ struct jailhouse_pci_device pci_devices[16];
+ struct jailhouse_pci_capability pci_caps[29];
} __attribute__((packed)) config = {
.header = {
.signature = JAILHOUSE_SYSTEM_SIGNATURE,
.hypervisor_memory = {
- .phys_start = 0x3b000000,
+ .phys_start = 0x37600000,
.size = 0x4000000,
},
+ .debug_console = {
+ .phys_start = 0x3f8,
+ },
.platform_info.x86 = {
.mmconfig_base = 0xf8000000,
.mmconfig_end_bus = 0x3f,
.pm_timer_address = 0x408,
- .iommu_base = {
- 0xfed90000,
- 0xfed91000,
+ .iommu_units = {
+ {
+ .base = 0xfed90000,
+ .size = 0x1000,
+ },
+ {
+ .base = 0xfed91000,
+ .size = 0x1000,
+ },
},
},
- .device_limit = 128,
.interrupt_limit = 256,
.root_cell = {
.name = "RootCell",
.flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
},
- /* MemRegion: 20200000-3affffff : System RAM */
+ /* MemRegion: 20200000-375fffff : System RAM */
{
.phys_start = 0x20200000,
.virt_start = 0x20200000,
- .size = 0x1ae00000,
+ .size = 0x17400000,
+ .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
+ JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
+ },
+ // /* MemRegion: 3f200000-40003fff : System RAM */
+ // {
+ // .phys_start = 0x3f200000,
+ // .virt_start = 0x3f200000,
+ // .size = 0xe04000,
+ // .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
+ // JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
+ // },
+ /* MemRegion: 0x40600000-d9b4dfff : System RAM */
+ {
+ .phys_start = 0x40600000,
+ .virt_start = 0x40600000,
+ .size = 0x9954E000,
.flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
},
- /* MemRegion: 3f200000-40003fff : System RAM */
+ //for tinybench
{
- .phys_start = 0x3f200000,
- .virt_start = 0x3f200000,
- .size = 0xe04000,
+ .phys_start = 0xd9b4e000,
+ .virt_start = 0xd9b4e000,
+ .size = 0x59F000,
.flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
},
- /* MemRegion: 40005000-d9b4dfff : System RAM */
{
- .phys_start = 0x40005000,
- .virt_start = 0x40005000,
- .size = 0x99b49000,
+ .phys_start = 0xda113000,
+ .virt_start = 0xda113000,
+ .size = 0x61000,
.flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
},
+
/* MemRegion: da174000-da3dbfff : ACPI Non-volatile Storage */
{
.phys_start = 0xda174000,
.size = 0x400000,
.flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
},
- /* MemRegion: f7c00000-f7c1ffff : 0000:00:19.0 */
+ /* MemRegion: f7c00000-f7c00fff : 0000:02:00.1 */
{
.phys_start = 0xf7c00000,
.virt_start = 0xf7c00000,
+ .size = 0x1000,
+ .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+ },
+ /* MemRegion: f7c01000-f7c01fff : 0000:02:00.1 */
+ {
+ .phys_start = 0xf7c01000,
+ .virt_start = 0xf7c01000,
+ .size = 0x1000,
+ .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+ },
+ /* MemRegion: f7c02000-f7c02fff : 0000:02:00.0 */
+ {
+ .phys_start = 0xf7c02000,
+ .virt_start = 0xf7c02000,
+ .size = 0x1000,
+ .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+ },
+ /* MemRegion: f7c03000-f7c03fff : 0000:02:00.0 */
+ {
+ .phys_start = 0xf7c03000,
+ .virt_start = 0xf7c03000,
+ .size = 0x1000,
+ .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+ },
+ /* MemRegion: f7d00000-f7d1ffff : 0000:00:19.0 */
+ {
+ .phys_start = 0xf7d00000,
+ .virt_start = 0xf7d00000,
.size = 0x20000,
.flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
},
- /* MemRegion: f7c20000-f7c2ffff : 0000:00:14.0 */
+ /* MemRegion: f7d20000-f7d2ffff : 0000:00:14.0 */
{
- .phys_start = 0xf7c20000,
- .virt_start = 0xf7c20000,
+ .phys_start = 0xf7d20000,
+ .virt_start = 0xf7d20000,
.size = 0x10000,
.flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
},
- /* MemRegion: f7c30000-f7c33fff : 0000:00:1b.0 */
+ /* MemRegion: f7d30000-f7d33fff : 0000:00:1b.0 */
{
- .phys_start = 0xf7c30000,
- .virt_start = 0xf7c30000,
+ .phys_start = 0xf7d30000,
+ .virt_start = 0xf7d30000,
.size = 0x4000,
.flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
},
- /* MemRegion: f7c35000-f7c350ff : 0000:00:1f.3 */
+ /* MemRegion: f7d35000-f7d350ff : 0000:00:1f.3 */
{
- .phys_start = 0xf7c35000,
- .virt_start = 0xf7c35000,
+ .phys_start = 0xf7d35000,
+ .virt_start = 0xf7d35000,
.size = 0x1000,
.flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
},
- /* MemRegion: f7c36000-f7c367ff : ahci */
+ /* MemRegion: f7d36000-f7d367ff : ahci */
{
- .phys_start = 0xf7c36000,
- .virt_start = 0xf7c36000,
+ .phys_start = 0xf7d36000,
+ .virt_start = 0xf7d36000,
.size = 0x1000,
.flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
},
- /* MemRegion: f7c37000-f7c373ff : ehci_hcd */
+ /* MemRegion: f7d37000-f7d373ff : ehci_hcd */
{
- .phys_start = 0xf7c37000,
- .virt_start = 0xf7c37000,
+ .phys_start = 0xf7d37000,
+ .virt_start = 0xf7d37000,
.size = 0x1000,
.flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
},
- /* MemRegion: f7c38000-f7c383ff : ehci_hcd */
+ /* MemRegion: f7d38000-f7d383ff : ehci_hcd */
{
- .phys_start = 0xf7c38000,
- .virt_start = 0xf7c38000,
+ .phys_start = 0xf7d38000,
+ .virt_start = 0xf7d38000,
.size = 0x1000,
.flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
},
- /* MemRegion: f7c39000-f7c39fff : 0000:00:19.0 */
+ /* MemRegion: f7d39000-f7d39fff : 0000:00:19.0 */
{
- .phys_start = 0xf7c39000,
- .virt_start = 0xf7c39000,
+ .phys_start = 0xf7d39000,
+ .virt_start = 0xf7d39000,
.size = 0x1000,
.flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
},
- /* MemRegion: f7c3c000-f7c3c00f : 0000:00:16.0 */
+ /* MemRegion: f7d3c000-f7d3c00f : 0000:00:16.0 */
{
- .phys_start = 0xf7c3c000,
- .virt_start = 0xf7c3c000,
+ .phys_start = 0xf7d3c000,
+ .virt_start = 0xf7d3c000,
.size = 0x1000,
.flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
},
.flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
},
- /* MemRegion: 3f000000-3f1fffff : JAILHOUSE Inmate Memory */
+ /* MemRegion: 0x3b600000-0x40600000 : JAILHOUSE Inmate Memory */
{
- .phys_start = 0x3f000000,
- .virt_start = 0x3f000000,
- .size = 0x200000,
- .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+ .phys_start = 0x3b600000,
+ .virt_start = 0x3b600000,
+ .size = 0x5000000,
+ .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
+ JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
},
},
{
.address = 0xfec00000,
.id = 0x1f0f8,
- .pin_bitmap = 0xffffff,
+ .pin_bitmap = {
+ 0xffffff
+ },
},
},
[ 0x60/8 ... 0x67/8] = 0xec, /* HACK: NMI status/control */
[ 0x68/8 ... 0x6f/8] = -1,
[ 0x70/8 ... 0x77/8] = 0xfc, /* RTC */
- [ 0x78/8 ... 0x7f/7] = -1,
+ [ 0x78/8 ... 0x7f/8] = -1,
[ 0x80/8 ... 0x87/8] = 0xfe, /* Linux: native_io_delay() */
- [ 0x88/8 ... 0xec/8] = -1,
- [ 0xed/8 ... 0xf5/8] = 0xfe, /*port 0xed delay experimental*/
- [ 0xf6/8 ... 0x2f7/8] = -1,
+ [ 0x88/8 ... 0xe7/8] = -1,
+ [ 0xe8/8 ... 0xef/8] = 0xdf, /*port 0xed delay experimental*/
+ [ 0xf0/8 ... 0x2f7/8] = -1,
[ 0x2f8/8 ... 0x2ff/8] = 0,/*serial 1*/
[ 0x300/8 ... 0x3af/8] = -1,
- [ 0x3b0/8 ... 0x3df/8] = 0x00, /* VGA */
+ [ 0x3b0/8 ... 0x3df/8] = 0x00, /* VGA */
[ 0x3e0/8 ... 0x3f7/8] = -1,
- [ 0x3f8/8 ... 0x3ff/8] = 0,/*serial 0*/
- [ 0x400/8 ... 0xeff/8] = -1,
- [ 0xd00/8 ... 0xffff/8] = 0, /* HACK: PCI bus */
+ [ 0x3f8/8 ... 0x3ff/8] = -1,/*serial 0*/
+ [ 0x400/8 ... 0xcff/8] = -1,
+ [ 0xd00/8 ... 0xffff/8] = 0, /* HACK: full PCI */
},
.pci_devices = {
.msix_region_size = 0x0,
.msix_address = 0x0,
},
+ /* PCIDevice: 00:1c.0 */
+ {
+ .type = JAILHOUSE_PCI_TYPE_BRIDGE,
+ .iommu = 1,
+ .domain = 0x0,
+ .bdf = 0xe0,
+ .bar_mask = {
+ 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000,
+ },
+ .caps_start = 17,
+ .num_caps = 4,
+ .num_msi_vectors = 1,
+ .msi_64bits = 0,
+ .num_msix_vectors = 0,
+ .msix_region_size = 0x0,
+ .msix_address = 0x0,
+ },
+ /* PCIDevice: 00:1c.2 */
+ {
+ .type = JAILHOUSE_PCI_TYPE_BRIDGE,
+ .iommu = 1,
+ .domain = 0x0,
+ .bdf = 0xe2,
+ .bar_mask = {
+ 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000,
+ },
+ .caps_start = 17,
+ .num_caps = 4,
+ .num_msi_vectors = 1,
+ .msi_64bits = 0,
+ .num_msix_vectors = 0,
+ .msix_region_size = 0x0,
+ .msix_address = 0x0,
+ },
/* PCIDevice: 00:1d.0 */
{
.type = JAILHOUSE_PCI_TYPE_DEVICE,
0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000,
},
- .caps_start = 17,
+ .caps_start = 21,
.num_caps = 1,
.num_msi_vectors = 0,
.msi_64bits = 0,
0xfffffff8, 0xfffffffc, 0xfffffff8,
0xfffffffc, 0xffffffe0, 0xfffff800,
},
- .caps_start = 18,
+ .caps_start = 22,
.num_caps = 4,
.num_msi_vectors = 1,
.msi_64bits = 0,
.msix_region_size = 0x0,
.msix_address = 0x0,
},
+ /* PCIDevice: 02:00.0 */
+ {
+ .type = JAILHOUSE_PCI_TYPE_DEVICE,
+ .iommu = 1,
+ .domain = 0x0,
+ .bdf = 0x200,
+ .bar_mask = {
+ 0xfffffff8, 0xfffff000, 0x00000000,
+ 0x00000000, 0x00000000, 0xfffff000,
+ },
+ .caps_start = 26,
+ .num_caps = 3,
+ .num_msi_vectors = 8,
+ .msi_64bits = 1,
+ .num_msix_vectors = 0,
+ .msix_region_size = 0x0,
+ .msix_address = 0x0,
+ },
+ /* PCIDevice: 02:00.1 */
+ {
+ .type = JAILHOUSE_PCI_TYPE_DEVICE,
+ .iommu = 1,
+ .domain = 0x0,
+ .bdf = 0x201,
+ .bar_mask = {
+ 0xfffffff8, 0xfffff000, 0x00000000,
+ 0x00000000, 0x00000000, 0xfffff000,
+ },
+ .caps_start = 26,
+ .num_caps = 3,
+ .num_msi_vectors = 8,
+ .msi_64bits = 1,
+ .num_msix_vectors = 0,
+ .msix_region_size = 0x0,
+ .msix_address = 0x0,
+ },
},
.pci_caps = {
.len = 2,
.flags = 0,
},
+ /* PCIDevice: 00:1c.0 */
+ /* PCIDevice: 00:1c.2 */
+ {
+ .id = 0x10,
+ .start = 0x40,
+ .len = 2,
+ .flags = 0,
+ },
+ {
+ .id = 0x5,
+ .start = 0x80,
+ .len = 10,
+ .flags = JAILHOUSE_PCICAPS_WRITE,
+ },
+ {
+ .id = 0xd,
+ .start = 0x90,
+ .len = 2,
+ .flags = 0,
+ },
+ {
+ .id = 0x1,
+ .start = 0xa0,
+ .len = 8,
+ .flags = JAILHOUSE_PCICAPS_WRITE,
+ },
/* PCIDevice: 00:1e.0 */
{
.id = 0xd,
.len = 2,
.flags = 0,
},
+ /* PCIDevice: 02:00.0 */
+ /* PCIDevice: 02:00.1 */
+ {
+ .id = 0x5,
+ .start = 0x50,
+ .len = 14,
+ .flags = JAILHOUSE_PCICAPS_WRITE,
+ },
+ {
+ .id = 0x1,
+ .start = 0x78,
+ .len = 8,
+ .flags = JAILHOUSE_PCICAPS_WRITE,
+ },
+ {
+ .id = 0x10,
+ .start = 0x80,
+ .len = 2,
+ .flags = 0,
+ },
},
};
+