1
1
choice
2
2
prompt "Platform"
3
3
default PLATFORM_SBL
4
+ help
5
+ The BIOS used on the target board.
4
6
5
7
config PLATFORM_UEFI
6
8
bool "UEFI"
7
9
select EFI_STUB
10
+ help
11
+ Select this if the target board uses UEFI.
8
12
9
13
config PLATFORM_SBL
10
14
bool "SBL"
15
+ help
16
+ Select this if the target board uses Slim Bootloader.
11
17
12
18
endchoice
13
19
14
20
choice
15
21
prompt "Hypervisor mode"
16
22
default SHARING_MODE
23
+ help
24
+ Select the usage mode of the hypervisor.
17
25
18
26
config SHARING_MODE
19
27
bool "Sharing mode"
28
+ help
29
+ In sharing mode, the first VM (called Service OS or SOS) is capable of
30
+ managing the other VMs (called User OS or UOS) and trap/mediate their
31
+ I/O accesses to physical devices.
20
32
21
33
config PARTITION_MODE
22
34
bool "Partition mode"
23
35
depends on PLATFORM_SBL
36
+ help
37
+ In partition mode, every VM owns part of the physical resources
38
+ exclusively and runs with minimal interference from the others. The VM
39
+ configurations are statically defined in the source.
40
+
24
41
endchoice
25
42
26
43
config PLATFORM
@@ -31,62 +48,84 @@ config PLATFORM
31
48
config RELEASE
32
49
bool "Release build"
33
50
default n
51
+ help
52
+ Whether to build a release version of the hypervisor. Logs, serial
53
+ console and hypervisor shell are available only in non-release
54
+ (i.e. debug) builds. Assertions are not effective in release builds.
34
55
35
56
config MAX_VM_NUM
36
57
int "Maximum number of VM"
37
58
range 1 8
38
59
default 4
60
+ help
61
+ The maximum number of virtual machines (VMs) the hypervisor can
62
+ support. This is customizable per the use cases of the build. For
63
+ general-purpose builds the maximum of physical cores can be used.
39
64
40
65
config MAX_VCPUS_PER_VM
41
66
int "Maximum number of VCPUS per VM"
42
67
range 1 8
43
68
default 4
69
+ help
70
+ The maximum number of virtual CPUs the hypervisor can support in a
71
+ single VM.
44
72
45
73
config MAX_PCPU_NUM
46
74
int "Maximum number of PCPU"
47
75
range 1 8
48
76
default 8
49
77
50
78
config MAX_IOMMU_NUM
51
- int "Maximum number of iommu dev "
79
+ int "Maximum number of IOMMU devices "
52
80
range 1 2
53
81
default 2
82
+ help
83
+ The maximum number of physical IOMMUs the hypervisor can support.
54
84
55
85
config STACK_SIZE
56
- hex "Capacity of each stack used in the hypervisor "
86
+ hex "Capacity of one stack, in byte "
57
87
default 0x2000
58
-
59
- config LOG_BUF_SIZE
60
- hex "Capacity of logbuf"
61
- default 0x100000
88
+ help
89
+ The size of stacks used by physical cores. Each core uses one stack
90
+ for normal operations and another three for specific exceptions.
62
91
63
92
config LOG_DESTINATION
64
93
int "Bitmap of consoles where logs are printed"
65
94
range 0 7
66
95
default 7
67
96
help
68
- A bitmap indicating the destinations of log messages. Currently there
69
- are 3 destinations available. Bit 0 represents the serial console, bit
70
- 1 the SOS ACRN log and bit 2 NPK log.
97
+ A bitmap indicating the destinations of log messages. Currently there
98
+ are 3 destinations available. Bit 0 represents the serial console, bit
99
+ 1 the SOS ACRN log and bit 2 NPK log. Effective only in debug builds .
71
100
72
101
config CPU_UP_TIMEOUT
73
102
int "Timeout in ms when bringing up secondary CPUs"
74
103
range 100 200
75
104
default 100
76
105
help
77
- A 32-bit integer specifying the timeout in microsecond when waiting for
78
- secondary CPUs to start up.
106
+ A 32-bit integer specifying the timeout in millisecond when waiting
107
+ for secondary CPUs to start up.
79
108
80
109
choice
81
110
prompt "serial IO type"
111
+ depends on !RELEASE
82
112
default SERIAL_MMIO if PLATFORM_SBL
83
113
default SERIAL_PIO if PLATFORM_UEFI
114
+ help
115
+ Whether the physical serial port shall be accessed via memory-mapped
116
+ registers or I/O ports.
84
117
85
118
config SERIAL_MMIO
86
119
bool "MMIO"
120
+ help
121
+ Select this if the serial port shall be accessed via memory-mapped
122
+ registers.
87
123
88
124
config SERIAL_PIO
89
125
bool "PIO"
126
+ help
127
+ Select this if the serial port shall be accessed via in/out
128
+ instructions.
90
129
91
130
endchoice
92
131
@@ -95,16 +134,16 @@ config SERIAL_MMIO_BASE
95
134
depends on SERIAL_MMIO
96
135
default 0xfc000000
97
136
help
98
- A 64-bit integer indicating the base physical address of the
99
- memory-mapped UART registers.
137
+ A 64-bit integer indicating the base physical address of the
138
+ memory-mapped UART registers.
100
139
101
140
config SERIAL_PIO_BASE
102
141
hex "Base address of serial PIO region"
103
142
depends on SERIAL_PIO
104
143
default 0x3f8
105
144
help
106
- The base of the UART ports. This is logically 16-bit but used as a
107
- 64-bit integer.
145
+ The base address of the UART ports. This is logically 16-bit but used
146
+ as a 64-bit integer.
108
147
109
148
config MALLOC_ALIGN
110
149
int "Block size in the heap for malloc()"
@@ -121,62 +160,86 @@ config HEAP_SIZE
121
160
122
161
config CONSOLE_LOGLEVEL_DEFAULT
123
162
int "Default loglevel on the serial console"
163
+ depends on !RELEASE
124
164
range 0 6
125
165
default 3
166
+ help
167
+ This indicates the maximum debug level of logs that will be available
168
+ on the the serial console. The higher the number, the more logs will
169
+ be available.
126
170
127
171
config MEM_LOGLEVEL_DEFAULT
128
172
int "Default loglevel in memory"
173
+ depends on !RELEASE
129
174
range 0 6
130
175
default 5
176
+ help
177
+ This indicates the maximum debug level of logs that will be available
178
+ in the logbuf in memory which can be accessed by ACRN log in SOS. The
179
+ higher the number, the more logs will be available.
131
180
132
181
config NPK_LOGLEVEL_DEFAULT
133
182
int "Default loglevel for the hypervisor NPK log"
183
+ depends on !RELEASE
134
184
range 0 6
135
185
default 5
186
+ help
187
+ This indicates the maximum debug level of logs that will be available
188
+ via NPK log. The higher the number, the more logs will be available.
136
189
137
190
config LOW_RAM_SIZE
138
191
hex "Size of the low RAM region"
139
192
default 0x00010000
140
193
help
141
- A 32-bit integer indicating the size of RAM region below address
142
- 0x10000, starting from address 0x0.
194
+ A 32-bit integer indicating the size of RAM region below address
195
+ 0x10000, starting from address 0x0.
143
196
144
197
config RAM_START
145
198
hex "Address of the RAM region assigned to the hypervisor"
146
199
default 0x6e000000 if PLATFORM_SBL
147
200
default 0x00100000 if PLATFORM_UEFI
148
201
help
149
- A 64-bit integer indicating the base address to where the hypervisor
150
- should be loaded to. If RELOC is disabled the bootloader is required to
151
- load the hypervisor to this specific address. Otherwise the hypervisor
152
- will not boot.With RELOC enabled the hypervisor is capable of relocating
153
- its symbols to where it is placed at, and thus the bootloader may not
154
- place the hypervisor at this specific address.
202
+ A 64-bit integer indicating the base address to where the hypervisor
203
+ should be loaded to. If RELOC is disabled the bootloader is required
204
+ to load the hypervisor to this specific address. Otherwise the
205
+ hypervisor will not boot. With RELOC enabled the hypervisor is capable
206
+ of relocating its symbols to where it is placed at, and thus the
207
+ bootloader may not place the hypervisor at this specific address.
155
208
156
209
config RAM_SIZE
157
210
hex "Size of the RAM region assigned to the hypervisor"
158
211
default 0x02000000
159
212
help
160
- A 64-bit integer indicating the size of RAM assigned to the
161
- hypervisor. It is ensured at link time that the footprint of the
162
- hypervisor does not exceed this size.
213
+ A 64-bit integer indicating the size of RAM assigned to the
214
+ hypervisor. It is ensured at link time that the footprint of the
215
+ hypervisor does not exceed this size.
163
216
164
217
config CONSTANT_ACPI
165
218
bool "The platform ACPI info is constant"
166
219
default n
220
+ help
221
+ Whether constant ACPI tables shall be used. If selected, the built-in
222
+ ACPI tables, usually generated on target platforms by an offline tool,
223
+ will be used. If not a fixup subroutine will be invoked to update the
224
+ built-in tables after parsing the real ACPI tables at runtime.
167
225
168
226
config DMAR_PARSE_ENABLED
169
227
bool
170
228
default n if PLATFORM_SBL
171
229
default y if PLATFORM_UEFI
230
+ help
231
+ Whether to parse the ACPI DMA Remapping tables at runtime.
172
232
173
233
config GPU_SBDF
174
234
hex
175
235
depends on DMAR_PARSE_ENABLED
176
236
default 0x00000010
177
237
help
178
- A 32-bit integer encoding the segment, bus, device and function of the
179
- GPU.
238
+ A 32-bit integer encoding the segment, bus, device and function of the
239
+ GPU. This integer consists of a 16-bit segment ID, 8-bit bus ID, 5-bit
240
+ device ID and 3-bit function ID. As an example, for PCI device at
241
+ 00:02.0 in DRHD segment 0, this SBDF would be (0 << 16) | (0 << 8) |
242
+ (2 << 3) | (0 << 0), i.e. 0x00000010.
180
243
181
244
config EFI_STUB
182
245
bool
@@ -195,11 +258,19 @@ config MTRR_ENABLED
195
258
config RELOC
196
259
bool "Enable relocation"
197
260
default n
261
+ help
262
+ When selected, the hypervisor will relocate itself to where it is
263
+ loaded. This allows the bootloader to put the hypervisor image to
264
+ wherever appropriate. Without relocation the bootloader must put the
265
+ image to RAM_START, otherwise the hypervisor will not start up.
198
266
199
267
config IOMMU_INIT_BUS_LIMIT
200
- hex "bus limitation when iommu init "
268
+ hex "Limit of PCI bus on IOMMU initialization "
201
269
default 0xf if PLATFORM_SBL
202
270
default 0xff if PLATFORM_UEFI
271
+ help
272
+ Any BDF with a bus ID smaller than or equal to this limit is mapped to
273
+ the IOMMU domain of the first VM.
203
274
204
275
config MAX_PCI_DEV_NUM
205
276
int "Maximum number of PCI dev"
0 commit comments