]> rtime.felk.cvut.cz Git - jailhouse.git/blob - configs/vexpress.c
configs: Adjust VExpress configs for smaller reservations
[jailhouse.git] / configs / vexpress.c
1 /*
2  * Jailhouse, a Linux-based partitioning hypervisor
3  *
4  * Copyright (c) ARM Limited, 2014
5  *
6  * Authors:
7  *  Jean-Philippe Brucker <jean-philippe.brucker@arm.com>
8  *
9  * This work is licensed under the terms of the GNU GPL, version 2.  See
10  * the COPYING file in the top-level directory.
11  */
12
13 #include <linux/types.h>
14 #include <jailhouse/cell-config.h>
15
16 #define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
17
18 struct {
19         struct jailhouse_system header;
20         __u64 cpus[1];
21         struct jailhouse_memory mem_regions[8];
22         struct jailhouse_irqchip irqchips[1];
23 } __attribute__((packed)) config = {
24         .header = {
25                 .hypervisor_memory = {
26                         .phys_start = 0xfc000000,
27                         .size = 0x4000000,
28                 },
29                 .root_cell = {
30                         .name = "VExpress Linux",
31
32                         .cpu_set_size = sizeof(config.cpus),
33                         .num_memory_regions = ARRAY_SIZE(config.mem_regions),
34                         .num_irqchips = 1,
35                 },
36         },
37
38         .cpus = {
39                 0xf,
40         },
41
42         .mem_regions = {
43                 /* SMC91x */ {
44                         .phys_start = 0x1a000000,
45                         .virt_start = 0x1a000000,
46                         .size = 0x00001000,
47                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
48                                 JAILHOUSE_MEM_DMA,
49                 },
50                 /* SP810 */ {
51                         .phys_start = 0x1c020000,
52                         .virt_start = 0x1c020000,
53                         .size = 0x00010000,
54                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
55                                 JAILHOUSE_MEM_DMA,
56                 },
57                 /* MMC */ {
58                         .phys_start = 0x1c050000,
59                         .virt_start = 0x1c050000,
60                         .size = 0x00001000,
61                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
62                                 JAILHOUSE_MEM_DMA,
63                 },
64                 /* Mouse */ {
65                         .phys_start = 0x1c070000,
66                         .virt_start = 0x1c070000,
67                         .size = 0x00010000,
68                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
69                                 JAILHOUSE_MEM_DMA,
70                 },
71                 /* Keyboard */ {
72                         .phys_start = 0x1c060000,
73                         .virt_start = 0x1c060000,
74                         .size = 0x00010000,
75                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
76                                 JAILHOUSE_MEM_DMA,
77                 },
78                 /* UARTs */ {
79                         .phys_start = 0x1c090000,
80                         .virt_start = 0x1c090000,
81                         .size = 0x00040000,
82                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
83                                 JAILHOUSE_MEM_DMA,
84                 },
85                 /* Redistributors (ignore the mmio traps)*/ {
86                         .phys_start = 0x2f100000,
87                         .virt_start = 0x2f100000,
88                         .size = 0x04000000,
89                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
90                                 JAILHOUSE_MEM_DMA,
91                 },
92                 /* RAM */ {
93                         .phys_start = 0x80000000,
94                         .virt_start = 0x80000000,
95                         .size = 0x7c000000,
96                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
97                                 JAILHOUSE_MEM_EXECUTE,
98                 },
99         },
100         .irqchips = {
101                 /* GIC */ {
102                         .address = 0x2f000000,
103                         .pin_bitmap = 0xffffffffffffffff,
104                 },
105         },
106
107 };