]> rtime.felk.cvut.cz Git - jailhouse.git/blob - configs/bananapi.c
configs: Adjust QEMU config to use VGA instead of Cirrus
[jailhouse.git] / configs / bananapi.c
1 /*
2  * Jailhouse, a Linux-based partitioning hypervisor
3  *
4  * Test configuration for Banana Pi board (A20 dual-core Cortex-A7, 1G RAM)
5  *
6  * Copyright (c) Siemens AG, 2014
7  *
8  * Authors:
9  *  Jan Kiszka <jan.kiszka@siemens.com>
10  *
11  * This work is licensed under the terms of the GNU GPL, version 2.  See
12  * the COPYING file in the top-level directory.
13  */
14
15 #include <linux/types.h>
16 #include <jailhouse/cell-config.h>
17
18 #define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
19
20 struct {
21         struct jailhouse_system header;
22         __u64 cpus[1];
23         struct jailhouse_memory mem_regions[10];
24         struct jailhouse_irqchip irqchips[1];
25 } __attribute__((packed)) config = {
26         .header = {
27                 .hypervisor_memory = {
28                         .phys_start = 0x7c000000,
29                         .size = 0x4000000,
30                 },
31                 .debug_uart = {
32                         .phys_start = 0x01c28000,
33                         .size = 0x1000,
34                         .flags = JAILHOUSE_MEM_IO,
35                 },
36                 .root_cell = {
37                         .name = "Banana-Pi",
38
39                         .cpu_set_size = sizeof(config.cpus),
40                         .num_memory_regions = ARRAY_SIZE(config.mem_regions),
41                         .num_irqchips = 1,
42                 },
43         },
44
45         .cpus = {
46                 0x3,
47         },
48
49         .mem_regions = {
50                 /* SPI */ {
51                         .phys_start = 0x01c05000,
52                         .virt_start = 0x01c05000,
53                         .size = 0x00001000,
54                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
55                                 JAILHOUSE_MEM_IO,
56                 },
57                 /* MMC */ {
58                         .phys_start = 0x01c0f000,
59                         .virt_start = 0x01c0f000,
60                         .size = 0x00001000,
61                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
62                                 JAILHOUSE_MEM_IO,
63                 },
64                 /* USB + PMU1 */ {
65                         .phys_start = 0x01c14000,
66                         .virt_start = 0x01c14000,
67                         .size = 0x00001000,
68                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
69                                 JAILHOUSE_MEM_IO,
70                 },
71                 /* SATA */ {
72                         .phys_start = 0x01c18000,
73                         .virt_start = 0x01c18000,
74                         .size = 0x00001000,
75                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
76                                 JAILHOUSE_MEM_IO,
77                 },
78                 /* USB + PMU2 */ {
79                         .phys_start = 0x01c1c000,
80                         .virt_start = 0x01c1c000,
81                         .size = 0x00001000,
82                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
83                                 JAILHOUSE_MEM_IO,
84                 },
85                 /* CCU, Ints, GPIO, Timer */ {
86                         .phys_start = 0x01c20000,
87                         .virt_start = 0x01c20000,
88                         .size = 0x1000,
89                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
90                                 JAILHOUSE_MEM_IO,
91                 },
92                 /* UART0-3 */ {
93                         .phys_start = 0x01c28000,
94                         .virt_start = 0x01c28000,
95                         .size = 0x1000,
96                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
97                                 JAILHOUSE_MEM_IO,
98                 },
99                 /* GMAC */ {
100                         .phys_start = 0x01c50000,
101                         .virt_start = 0x01c50000,
102                         .size = 0x00010000,
103                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
104                                 JAILHOUSE_MEM_IO,
105                 },
106                 /* HSTIMER */ {
107                         .phys_start = 0x01c60000,
108                         .virt_start = 0x01c60000,
109                         .size = 0x00001000,
110                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
111                                 JAILHOUSE_MEM_IO,
112                 },
113                 /* RAM */ {
114                         .phys_start = 0x40000000,
115                         .virt_start = 0x40000000,
116                         .size = 0x3c000000,
117                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
118                                 JAILHOUSE_MEM_EXECUTE,
119                 },
120         },
121         .irqchips = {
122                 /* GIC */ {
123                         .address = 0x2f000000,
124                         .pin_bitmap = 0xffffffffffffffff,
125                 },
126         },
127
128 };