2 * Jailhouse, a Linux-based partitioning hypervisor
4 * Test configuration for Banana Pi board (A20 dual-core Cortex-A7, 1G RAM)
6 * Copyright (c) Siemens AG, 2014
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_system header;
23 struct jailhouse_memory mem_regions[16];
24 struct jailhouse_irqchip irqchips[1];
25 } __attribute__((packed)) config = {
27 .signature = JAILHOUSE_SYSTEM_SIGNATURE,
28 .hypervisor_memory = {
29 .phys_start = 0x7c000000,
33 .phys_start = 0x01c28000,
35 .flags = JAILHOUSE_MEM_IO,
40 .cpu_set_size = sizeof(config.cpus),
41 .num_memory_regions = ARRAY_SIZE(config.mem_regions),
52 .phys_start = 0x01c05000,
53 .virt_start = 0x01c05000,
55 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
59 .phys_start = 0x01c0f000,
60 .virt_start = 0x01c0f000,
62 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
66 .phys_start = 0x01c14000,
67 .virt_start = 0x01c14000,
69 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
73 .phys_start = 0x01c18000,
74 .virt_start = 0x01c18000,
76 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
80 .phys_start = 0x01c1c000,
81 .virt_start = 0x01c1c000,
83 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
87 .phys_start = 0x01c20000,
88 .virt_start = 0x01c20000,
90 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
91 JAILHOUSE_MEM_IO | JAILHOUSE_MEM_IO_32,
94 .phys_start = 0x01c20400,
95 .virt_start = 0x01c20400,
97 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
98 JAILHOUSE_MEM_IO | JAILHOUSE_MEM_IO_32,
100 /* GPIO: ports A-G */ {
101 .phys_start = 0x01c20800,
102 .virt_start = 0x01c20800,
104 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
105 JAILHOUSE_MEM_IO | JAILHOUSE_MEM_IO_32,
108 .phys_start = 0x01c208fc,
109 .virt_start = 0x01c208fc,
111 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
112 JAILHOUSE_MEM_IO | JAILHOUSE_MEM_IO_32,
115 .phys_start = 0x01c20920,
116 .virt_start = 0x01c20920,
118 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
119 JAILHOUSE_MEM_IO | JAILHOUSE_MEM_IO_32,
121 /* GPIO: intr config */ {
122 .phys_start = 0x01c20a00,
123 .virt_start = 0x01c20a00,
125 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
126 JAILHOUSE_MEM_IO | JAILHOUSE_MEM_IO_32,
129 .phys_start = 0x01c20c00,
130 .virt_start = 0x01c20c00,
132 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
133 JAILHOUSE_MEM_IO | JAILHOUSE_MEM_IO_32,
136 .phys_start = 0x01c28000,
137 .virt_start = 0x01c28000,
139 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
143 .phys_start = 0x01c50000,
144 .virt_start = 0x01c50000,
146 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
150 .phys_start = 0x01c60000,
151 .virt_start = 0x01c60000,
153 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
157 .phys_start = 0x40000000,
158 .virt_start = 0x40000000,
160 .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
161 JAILHOUSE_MEM_EXECUTE,
166 .address = 0x01c81000,
169 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff