2 * Jailhouse, a Linux-based partitioning hypervisor
4 * Minimal configuration for demo inmates, 1 CPU, 1 MB RAM, 1 serial port
6 * Copyright (c) Siemens AG, 2013
9 * Jan Kiszka <jan.kiszka@siemens.com>
11 * This work is licensed under the terms of the GNU GPL, version 2. See
12 * the COPYING file in the top-level directory.
15 #include <linux/types.h>
16 #include <jailhouse/cell-config.h>
18 #define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
21 struct jailhouse_cell_desc cell;
23 struct jailhouse_memory mem_regions[3];
24 struct jailhouse_irqchip irqchips[1];
25 __u8 pio_bitmap[0x2000];
26 } __attribute__((packed)) config = {
28 .signature = JAILHOUSE_CELL_DESC_SIGNATURE,
31 .cpu_set_size = sizeof(config.cpus),
32 .num_memory_regions = ARRAY_SIZE(config.mem_regions),
33 .num_irqchips = ARRAY_SIZE(config.irqchips),
34 .pio_bitmap_size = ARRAY_SIZE(config.pio_bitmap),
44 .phys_start = 0x3f000000,
47 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
48 JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA |
49 JAILHOUSE_MEM_LOADABLE,
51 /* communication region */ {
52 .virt_start = 0x00100000,
54 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
55 JAILHOUSE_MEM_COMM_REGION,
58 // .phys_start = 0x3f200000,
59 // .virt_start = 0x3f200000,
61 // .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
62 // JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
65 // .phys_start = 0x3ffdf000,
66 // .virt_start = 0x3ffdf000,
68 // .flags = JAILHOUSE_MEM_READ |
69 // JAILHOUSE_MEM_ROOTSHARED,
71 /* MemRegion: fed00000-fed003ff : PNP0103:00 */
73 .phys_start = 0xfed00000,
74 .virt_start = 0xfed00000,
76 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
82 .address = 0xfec00000,
84 /* Timer0 has IRQ2, Timer1 has IRQ8, IRQ16-IRQ32 could be used for timers too.*/
85 .pin_bitmap = 0x00ff0104,
90 [ 0/8 ... 0x3f7/8] = -1,
91 [ 0x3f8/8 ... 0x3ff/8] = 0, /* serial1 */
92 [ 0x400/8 ... 0xe00f/8] = -1,
93 [0xe010/8 ... 0xe017/8] = 0, /* OXPCIe952 serial1 */
94 [0xe018/8 ... 0xffff/8] = -1,