]> rtime.felk.cvut.cz Git - jailhouse.git/blob - configs/f2a88xm-hd3.c
inmates: hpet-demo: avoid warning on the unused func
[jailhouse.git] / configs / f2a88xm-hd3.c
1 /*
2  * Jailhouse, a Linux-based partitioning hypervisor
3  *
4  * Copyright (c) Siemens AG, 2014
5  * Copyright (c) Valentine Sinitsyn, 2014
6  *
7  * This work is licensed under the terms of the GNU GPL, version 2.  See
8  * the COPYING file in the top-level directory.
9  *
10  * Configuration for Gigabyte Technology Co., Ltd. GA-F2A88XM-HD3 Rev. 3.0
11  * board with AMD A10-7800 APU and 1G RAM.
12  *
13  * Created with 'jailhouse config create f2a88xm-hd3.c' and adjusted
14  * by Valentine Sinitsyn <valentine.sinitsyn@gmail.com>.
15  *
16  * NOTE: This config expects the following to be appended to your kernel cmdline
17  *       "memmap=0x4200000$0x3b000000"
18  */
19
20 #include <linux/types.h>
21 #include <jailhouse/cell-config.h>
22
23 #define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
24
25 struct {
26         struct jailhouse_system header;
27         __u64 cpus[1];
28         struct jailhouse_memory mem_regions[35];
29         struct jailhouse_irqchip irqchips[2];
30         __u8 pio_bitmap[0x2000];
31         struct jailhouse_pci_device pci_devices[26];
32         struct jailhouse_pci_capability pci_caps[27];
33 } __attribute__((packed)) config = {
34         .header = {
35                 .signature = JAILHOUSE_SYSTEM_SIGNATURE,
36                 .hypervisor_memory = {
37                         .phys_start = 0x3b000000,
38                         .size = 0x4000000,
39                 },
40                 .debug_console = {
41                         .phys_start = 0x3f8,
42                 },
43                 .platform_info.x86 = {
44                         .mmconfig_base = 0xe0000000,
45                         .mmconfig_end_bus = 0xff,
46                         .pm_timer_address = 0x808,
47                         .iommu_units = {
48                                 {
49                                         .base = 0xfeb80000,
50                                         .size = 0x80000,
51                                         .amd_bdf = 0x02,
52                                         .amd_base_cap = 0x40,
53                                         .amd_msi_cap = 0x54,
54                                         .amd_features = 0x80048824,
55                                 },
56                         },
57                 },
58                 .interrupt_limit = 256,
59                 .root_cell = {
60                         .name = "F2A88XM-HD3",
61                         .cpu_set_size = sizeof(config.cpus),
62                         .num_memory_regions = ARRAY_SIZE(config.mem_regions),
63                         .num_irqchips = ARRAY_SIZE(config.irqchips),
64                         .pio_bitmap_size = ARRAY_SIZE(config.pio_bitmap),
65                         .num_pci_devices = ARRAY_SIZE(config.pci_devices),
66                         .num_pci_caps = ARRAY_SIZE(config.pci_caps),
67                 },
68         },
69
70         .cpus = {
71                 0x000000000000000f,
72         },
73
74         .mem_regions = {
75                 /* MemRegion: 00000000-0009e7ff : System RAM */
76                 {
77                         .phys_start = 0x0,
78                         .virt_start = 0x0,
79                         .size = 0x9f000,
80                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
81                                 JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
82                 },
83                 /* MemRegion: 000a0000-000bffff : PCI Bus 0000:00 */
84                 {
85                         .phys_start = 0xa0000,
86                         .virt_start = 0xa0000,
87                         .size = 0x20000,
88                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
89                 },
90                 /* MemRegion: 000c0000-000cf5ff : Video ROM */
91                 {
92                         .phys_start = 0xc0000,
93                         .virt_start = 0xc0000,
94                         .size = 0x10000,
95                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
96                 },
97                 /* MemRegion: 000e0000-000fffff : System ROM */
98                 {
99                         .phys_start = 0xe0000,
100                         .virt_start = 0xe0000,
101                         .size = 0x20000,
102                         .flags = JAILHOUSE_MEM_READ,
103                 },
104                 /* MemRegion: 00100000-00ffffff : System RAM */
105                 {
106                         .phys_start = 0x100000,
107                         .virt_start = 0x100000,
108                         .size = 0xf00000,
109                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
110                                 JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
111                 },
112                 /* MemRegion: 01000000-01ffffff : Kernel */
113                 {
114                         .phys_start = 0x1000000,
115                         .virt_start = 0x1000000,
116                         .size = 0x1000000,
117                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
118                                 JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
119                 },
120                 /* MemRegion: 02000000-3affffff : System RAM */
121                 {
122                         .phys_start = 0x2000000,
123                         .virt_start = 0x2000000,
124                         .size = 0x39000000,
125                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
126                                 JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
127                 },
128                 /* MemRegion: 3f200000-6b8ecfff : System RAM */
129                 {
130                         .phys_start = 0x3f200000,
131                         .virt_start = 0x3f200000,
132                         .size = 0x2c6ed000,
133                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
134                                 JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
135                 },
136                 /* MemRegion: 6b91d000-6bbdffff : System RAM */
137                 {
138                         .phys_start = 0x6b91d000,
139                         .virt_start = 0x6b91d000,
140                         .size = 0x2c3000,
141                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
142                                 JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
143                 },
144                 /* MemRegion: 6bbe0000-6bcadfff : ACPI Non-volatile Storage */
145                 {
146                         .phys_start = 0x6bbe0000,
147                         .virt_start = 0x6bbe0000,
148                         .size = 0xce000,
149                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
150                 },
151                 /* MemRegion: 6d1c9000-6d1c9fff : System RAM */
152                 {
153                         .phys_start = 0x6d1c9000,
154                         .virt_start = 0x6d1c9000,
155                         .size = 0x1000,
156                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
157                                 JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
158                 },
159                 /* MemRegion: 6d1ca000-6d3cffff : ACPI Non-volatile Storage */
160                 {
161                         .phys_start = 0x6d1ca000,
162                         .virt_start = 0x6d1ca000,
163                         .size = 0x206000,
164                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
165                 },
166                 /* MemRegion: 6d3d0000-6d850fff : System RAM */
167                 {
168                         .phys_start = 0x6d3d0000,
169                         .virt_start = 0x6d3d0000,
170                         .size = 0x481000,
171                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
172                                 JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
173                 },
174                 /* MemRegion: 6dfe2000-6dffffff : System RAM */
175                 {
176                         .phys_start = 0x6dfe2000,
177                         .virt_start = 0x6dfe2000,
178                         .size = 0x1e000,
179                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
180                                 JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
181                 },
182                 /* MemRegion: 6e000000-6fffffff : RAM buffer */
183                 {
184                         .phys_start = 0x6e000000,
185                         .virt_start = 0x6e000000,
186                         .size = 0x2000000,
187                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
188                                 JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA,
189                 },
190                 /* MemRegion: c0000000-cfffffff : 0000:00:01.0 */
191                 {
192                         .phys_start = 0xc0000000,
193                         .virt_start = 0xc0000000,
194                         .size = 0x10000000,
195                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
196                 },
197                 /* MemRegion: d0000000-d07fffff : 0000:00:01.0 */
198                 {
199                         .phys_start = 0xd0000000,
200                         .virt_start = 0xd0000000,
201                         .size = 0x800000,
202                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
203                 },
204                 /* MemRegion: d0801000-d0803fff : r8169 */
205                 {
206                         .phys_start = 0xd0801000,
207                         .virt_start = 0xd0801000,
208                         .size = 0x3000,
209                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
210                 },
211                 /* MemRegion: fea00000-fea00fff : r8169 */
212                 {
213                         .phys_start = 0xfea00000,
214                         .virt_start = 0xfea00000,
215                         .size = 0x1000,
216                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
217                 },
218                 /* MemRegion: feb00000-feb3ffff : 0000:00:01.0 */
219                 {
220                         .phys_start = 0xfeb00000,
221                         .virt_start = 0xfeb00000,
222                         .size = 0x40000,
223                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
224                 },
225                 /* MemRegion: feb40000-feb5ffff : 0000:00:01.0 */
226                 {
227                         .phys_start = 0xfeb40000,
228                         .virt_start = 0xfeb40000,
229                         .size = 0x20000,
230                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
231                 },
232                 /* MemRegion: feb60000-feb63fff : ICH HD audio */
233                 {
234                         .phys_start = 0xfeb60000,
235                         .virt_start = 0xfeb60000,
236                         .size = 0x4000,
237                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
238                 },
239                 /* MemRegion: feb64000-feb67fff : ICH HD audio */
240                 {
241                         .phys_start = 0xfeb64000,
242                         .virt_start = 0xfeb64000,
243                         .size = 0x4000,
244                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
245                 },
246                 /* MemRegion: feb68000-feb68fff : xhci_hcd */
247                 {
248                         .phys_start = 0xfeb68000,
249                         .virt_start = 0xfeb68000,
250                         .size = 0x1000,
251                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
252                 },
253                 /* MemRegion: feb6a000-feb6afff : xhci_hcd */
254                 {
255                         .phys_start = 0xfeb6a000,
256                         .virt_start = 0xfeb6a000,
257                         .size = 0x1000,
258                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
259                 },
260                 /* MemRegion: feb6c000-feb6cfff : ohci_hcd */
261                 {
262                         .phys_start = 0xfeb6c000,
263                         .virt_start = 0xfeb6c000,
264                         .size = 0x1000,
265                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
266                 },
267                 /* MemRegion: feb6d000-feb6d0ff : ehci_hcd */
268                 {
269                         .phys_start = 0xfeb6d000,
270                         .virt_start = 0xfeb6d000,
271                         .size = 0x1000,
272                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
273                 },
274                 /* MemRegion: feb6e000-feb6efff : ohci_hcd */
275                 {
276                         .phys_start = 0xfeb6e000,
277                         .virt_start = 0xfeb6e000,
278                         .size = 0x1000,
279                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
280                 },
281                 /* MemRegion: feb6f000-feb6f0ff : ehci_hcd */
282                 {
283                         .phys_start = 0xfeb6f000,
284                         .virt_start = 0xfeb6f000,
285                         .size = 0x1000,
286                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
287                 },
288                 /* MemRegion: feb70000-feb70fff : ohci_hcd */
289                 {
290                         .phys_start = 0xfeb70000,
291                         .virt_start = 0xfeb70000,
292                         .size = 0x1000,
293                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
294                 },
295                 /* MemRegion: feb71000-feb717ff : ahci */
296                 {
297                         .phys_start = 0xfeb71000,
298                         .virt_start = 0xfeb71000,
299                         .size = 0x1000,
300                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
301                 },
302                 /* MemRegion: feb80000-febfffff : pnp 00:02 */
303                 {
304                         .phys_start = 0xfeb80000,
305                         .virt_start = 0xfeb80000,
306                         .size = 0x80000,
307                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
308                 },
309                 /* MemRegion: fed00000-fed003ff : HPET 0 */
310                 {
311                         .phys_start = 0xfed00000,
312                         .virt_start = 0xfed00000,
313                         .size = 0x1000,
314                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
315                 },
316                 /* MemRegion: fed61000-fed70fff : pnp 00:09 */
317                 {
318                         .phys_start = 0xfed61000,
319                         .virt_start = 0xfed61000,
320                         .size = 0x10000,
321                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
322                 },
323                 /* MemRegion: 3f000000-3f1fffff : JAILHOUSE Inmate Memory */
324                 {
325                         .phys_start = 0x3f000000,
326                         .virt_start = 0x3f000000,
327                         .size = 0x200000,
328                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
329                 },
330         },
331
332         .irqchips = {
333                 /* IOAPIC 0, GSI base 0 */
334                 {
335                         .address = 0xfec00000,
336                         .id = 0x0,
337                         .pin_bitmap = {
338                                 0xffffff
339                         },
340                 },
341                 /* IOAPIC 1, GSI base 24 */
342                 {
343                         .address = 0xfec01000,
344                         .id = 0x0,
345                         .pin_bitmap = {
346                                 0xffffff
347                         },
348                 },
349         },
350
351         .pio_bitmap = {
352                 [     0/8 ...   0x1f/8] = -1,
353                 [  0x20/8 ...   0x27/8] = 0xfc, /* HACK: PIC */
354                 [  0x28/8 ...   0x3f/8] = -1,
355                 [  0x40/8 ...   0x47/8] = 0xf0, /* PIT */
356                 [  0x48/8 ...   0x5f/8] = -1,
357                 [  0x60/8 ...   0x67/8] = 0xec, /* HACK: NMI status/control */
358                 [  0x68/8 ...   0x6f/8] = -1,
359                 [  0x70/8 ...   0x77/8] = 0xfc, /* RTC */
360                 [  0x78/8 ...   0x7f/8] = -1,
361                 [  0x80/8 ...   0x87/8] = 0xfe, /* Port 80 (delays) */
362                 [  0x88/8 ...  0x3af/8] = -1,
363                 [ 0x3b0/8 ...  0x3df/8] = 0x00, /* VGA */
364                 [ 0x3e0/8 ...  0xcf7/8] = 0, /* HACK: PCI bus */
365                 [ 0xcf8/8 ...  0xcff/8] = -1,
366                 [ 0xd00/8 ... 0xffff/8] = 0, /* HACK: PCI bus */
367         },
368
369         .pci_devices = {
370                 /* PCIDevice: 00:00.0 */
371                 {
372                         .type = JAILHOUSE_PCI_TYPE_DEVICE,
373                         .domain = 0x0,
374                         .bdf = 0x0,
375                         .caps_start = 0,
376                         .num_caps = 0,
377                         .num_msi_vectors = 0,
378                         .msi_64bits = 0,
379                         .num_msix_vectors = 0,
380                         .msix_region_size = 0x0,
381                         .msix_address = 0x0,
382                 },
383                 /* PCIDevice: 00:01.0 */
384                 {
385                         .type = JAILHOUSE_PCI_TYPE_DEVICE,
386                         .iommu = 0,
387                         .domain = 0x0,
388                         .bdf = 0x8,
389                         .caps_start = 3,
390                         .num_caps = 4,
391                         .num_msi_vectors = 1,
392                         .msi_64bits = 1,
393                         .num_msix_vectors = 0,
394                         .msix_region_size = 0x0,
395                         .msix_address = 0x0,
396                 },
397                 /* PCIDevice: 00:01.1 */
398                 {
399                         .type = JAILHOUSE_PCI_TYPE_DEVICE,
400                         .iommu = 0,
401                         .domain = 0x0,
402                         .bdf = 0x9,
403                         .caps_start = 3,
404                         .num_caps = 4,
405                         .num_msi_vectors = 1,
406                         .msi_64bits = 1,
407                         .num_msix_vectors = 0,
408                         .msix_region_size = 0x0,
409                         .msix_address = 0x0,
410                 },
411                 /* PCIDevice: 00:02.0 */
412                 {
413                         .type = JAILHOUSE_PCI_TYPE_DEVICE,
414                         .iommu = 0,
415                         .domain = 0x0,
416                         .bdf = 0x10,
417                         .caps_start = 0,
418                         .num_caps = 0,
419                         .num_msi_vectors = 0,
420                         .msi_64bits = 0,
421                         .num_msix_vectors = 0,
422                         .msix_region_size = 0x0,
423                         .msix_address = 0x0,
424                 },
425                 /* PCIDevice: 00:03.0 */
426                 {
427                         .type = JAILHOUSE_PCI_TYPE_DEVICE,
428                         .iommu = 0,
429                         .domain = 0x0,
430                         .bdf = 0x18,
431                         .caps_start = 0,
432                         .num_caps = 0,
433                         .num_msi_vectors = 0,
434                         .msi_64bits = 0,
435                         .num_msix_vectors = 0,
436                         .msix_region_size = 0x0,
437                         .msix_address = 0x0,
438                 },
439                 /* PCIDevice: 00:03.1 */
440                 {
441                         .type = JAILHOUSE_PCI_TYPE_BRIDGE,
442                         .iommu = 0,
443                         .domain = 0x0,
444                         .bdf = 0x19,
445                         .caps_start = 7,
446                         .num_caps = 5,
447                         .num_msi_vectors = 1,
448                         .msi_64bits = 1,
449                         .num_msix_vectors = 0,
450                         .msix_region_size = 0x0,
451                         .msix_address = 0x0,
452                 },
453                 /* PCIDevice: 00:04.0 */
454                 {
455                         .type = JAILHOUSE_PCI_TYPE_DEVICE,
456                         .iommu = 0,
457                         .domain = 0x0,
458                         .bdf = 0x20,
459                         .caps_start = 0,
460                         .num_caps = 0,
461                         .num_msi_vectors = 0,
462                         .msi_64bits = 0,
463                         .num_msix_vectors = 0,
464                         .msix_region_size = 0x0,
465                         .msix_address = 0x0,
466                 },
467                 /* PCIDevice: 00:10.0 */
468                 {
469                         .type = JAILHOUSE_PCI_TYPE_DEVICE,
470                         .iommu = 0,
471                         .domain = 0x0,
472                         .bdf = 0x80,
473                         .caps_start = 12,
474                         .num_caps = 4,
475                         .num_msi_vectors = 8,
476                         .msi_64bits = 1,
477                         .num_msix_vectors = 8,
478                         .msix_region_size = 0x1000,
479                         .msix_address = 0xfeb6b000,
480                 },
481                 /* PCIDevice: 00:10.1 */
482                 {
483                         .type = JAILHOUSE_PCI_TYPE_DEVICE,
484                         .iommu = 0,
485                         .domain = 0x0,
486                         .bdf = 0x81,
487                         .caps_start = 12,
488                         .num_caps = 4,
489                         .num_msi_vectors = 8,
490                         .msi_64bits = 1,
491                         .num_msix_vectors = 8,
492                         .msix_region_size = 0x1000,
493                         .msix_address = 0xfeb69000,
494                 },
495                 /* PCIDevice: 00:11.0 */
496                 {
497                         .type = JAILHOUSE_PCI_TYPE_DEVICE,
498                         .iommu = 0,
499                         .domain = 0x0,
500                         .bdf = 0x88,
501                         .caps_start = 16,
502                         .num_caps = 2,
503                         .num_msi_vectors = 8,
504                         .msi_64bits = 1,
505                         .num_msix_vectors = 0,
506                         .msix_region_size = 0x0,
507                         .msix_address = 0x0,
508                 },
509                 /* PCIDevice: 00:12.0 */
510                 {
511                         .type = JAILHOUSE_PCI_TYPE_DEVICE,
512                         .iommu = 0,
513                         .domain = 0x0,
514                         .bdf = 0x90,
515                         .caps_start = 0,
516                         .num_caps = 0,
517                         .num_msi_vectors = 0,
518                         .msi_64bits = 0,
519                         .num_msix_vectors = 0,
520                         .msix_region_size = 0x0,
521                         .msix_address = 0x0,
522                 },
523                 /* PCIDevice: 00:12.2 */
524                 {
525                         .type = JAILHOUSE_PCI_TYPE_DEVICE,
526                         .iommu = 0,
527                         .domain = 0x0,
528                         .bdf = 0x92,
529                         .caps_start = 18,
530                         .num_caps = 2,
531                         .num_msi_vectors = 0,
532                         .msi_64bits = 0,
533                         .num_msix_vectors = 0,
534                         .msix_region_size = 0x0,
535                         .msix_address = 0x0,
536                 },
537                 /* PCIDevice: 00:13.0 */
538                 {
539                         .type = JAILHOUSE_PCI_TYPE_DEVICE,
540                         .iommu = 0,
541                         .domain = 0x0,
542                         .bdf = 0x98,
543                         .caps_start = 0,
544                         .num_caps = 0,
545                         .num_msi_vectors = 0,
546                         .msi_64bits = 0,
547                         .num_msix_vectors = 0,
548                         .msix_region_size = 0x0,
549                         .msix_address = 0x0,
550                 },
551                 /* PCIDevice: 00:13.2 */
552                 {
553                         .type = JAILHOUSE_PCI_TYPE_DEVICE,
554                         .iommu = 0,
555                         .domain = 0x0,
556                         .bdf = 0x9a,
557                         .caps_start = 18,
558                         .num_caps = 2,
559                         .num_msi_vectors = 0,
560                         .msi_64bits = 0,
561                         .num_msix_vectors = 0,
562                         .msix_region_size = 0x0,
563                         .msix_address = 0x0,
564                 },
565                 /* PCIDevice: 00:14.0 */
566                 {
567                         .type = JAILHOUSE_PCI_TYPE_DEVICE,
568                         .iommu = 0,
569                         .domain = 0x0,
570                         .bdf = 0xa0,
571                         .caps_start = 0,
572                         .num_caps = 0,
573                         .num_msi_vectors = 0,
574                         .msi_64bits = 0,
575                         .num_msix_vectors = 0,
576                         .msix_region_size = 0x0,
577                         .msix_address = 0x0,
578                 },
579                 /* PCIDevice: 00:14.2 */
580                 {
581                         .type = JAILHOUSE_PCI_TYPE_DEVICE,
582                         .iommu = 0,
583                         .domain = 0x0,
584                         .bdf = 0xa2,
585                         .caps_start = 20,
586                         .num_caps = 1,
587                         .num_msi_vectors = 0,
588                         .msi_64bits = 0,
589                         .num_msix_vectors = 0,
590                         .msix_region_size = 0x0,
591                         .msix_address = 0x0,
592                 },
593                 /* PCIDevice: 00:14.3 */
594                 {
595                         .type = JAILHOUSE_PCI_TYPE_DEVICE,
596                         .iommu = 0,
597                         .domain = 0x0,
598                         .bdf = 0xa3,
599                         .caps_start = 0,
600                         .num_caps = 0,
601                         .num_msi_vectors = 0,
602                         .msi_64bits = 0,
603                         .num_msix_vectors = 0,
604                         .msix_region_size = 0x0,
605                         .msix_address = 0x0,
606                 },
607                 /* PCIDevice: 00:14.4 */
608                 {
609                         .type = JAILHOUSE_PCI_TYPE_BRIDGE,
610                         .iommu = 0,
611                         .domain = 0x0,
612                         .bdf = 0xa4,
613                         .caps_start = 0,
614                         .num_caps = 0,
615                         .num_msi_vectors = 0,
616                         .msi_64bits = 0,
617                         .num_msix_vectors = 0,
618                         .msix_region_size = 0x0,
619                         .msix_address = 0x0,
620                 },
621                 /* PCIDevice: 00:14.5 */
622                 {
623                         .type = JAILHOUSE_PCI_TYPE_DEVICE,
624                         .iommu = 0,
625                         .domain = 0x0,
626                         .bdf = 0xa5,
627                         .caps_start = 0,
628                         .num_caps = 0,
629                         .num_msi_vectors = 0,
630                         .msi_64bits = 0,
631                         .num_msix_vectors = 0,
632                         .msix_region_size = 0x0,
633                         .msix_address = 0x0,
634                 },
635                 /* PCIDevice: 00:18.0 */
636                 {
637                         .type = JAILHOUSE_PCI_TYPE_DEVICE,
638                         .iommu = 0,
639                         .domain = 0x0,
640                         .bdf = 0xc0,
641                         .caps_start = 0,
642                         .num_caps = 0,
643                         .num_msi_vectors = 0,
644                         .msi_64bits = 0,
645                         .num_msix_vectors = 0,
646                         .msix_region_size = 0x0,
647                         .msix_address = 0x0,
648                 },
649                 /* PCIDevice: 00:18.1 */
650                 {
651                         .type = JAILHOUSE_PCI_TYPE_DEVICE,
652                         .iommu = 0,
653                         .domain = 0x0,
654                         .bdf = 0xc1,
655                         .caps_start = 0,
656                         .num_caps = 0,
657                         .num_msi_vectors = 0,
658                         .msi_64bits = 0,
659                         .num_msix_vectors = 0,
660                         .msix_region_size = 0x0,
661                         .msix_address = 0x0,
662                 },
663                 /* PCIDevice: 00:18.2 */
664                 {
665                         .type = JAILHOUSE_PCI_TYPE_DEVICE,
666                         .iommu = 0,
667                         .domain = 0x0,
668                         .bdf = 0xc2,
669                         .caps_start = 0,
670                         .num_caps = 0,
671                         .num_msi_vectors = 0,
672                         .msi_64bits = 0,
673                         .num_msix_vectors = 0,
674                         .msix_region_size = 0x0,
675                         .msix_address = 0x0,
676                 },
677                 /* PCIDevice: 00:18.3 */
678                 {
679                         .type = JAILHOUSE_PCI_TYPE_DEVICE,
680                         .iommu = 0,
681                         .domain = 0x0,
682                         .bdf = 0xc3,
683                         .caps_start = 21,
684                         .num_caps = 1,
685                         .num_msi_vectors = 0,
686                         .msi_64bits = 0,
687                         .num_msix_vectors = 0,
688                         .msix_region_size = 0x0,
689                         .msix_address = 0x0,
690                 },
691                 /* PCIDevice: 00:18.4 */
692                 {
693                         .type = JAILHOUSE_PCI_TYPE_DEVICE,
694                         .iommu = 0,
695                         .domain = 0x0,
696                         .bdf = 0xc4,
697                         .caps_start = 0,
698                         .num_caps = 0,
699                         .num_msi_vectors = 0,
700                         .msi_64bits = 0,
701                         .num_msix_vectors = 0,
702                         .msix_region_size = 0x0,
703                         .msix_address = 0x0,
704                 },
705                 /* PCIDevice: 00:18.5 */
706                 {
707                         .type = JAILHOUSE_PCI_TYPE_DEVICE,
708                         .iommu = 0,
709                         .domain = 0x0,
710                         .bdf = 0xc5,
711                         .caps_start = 0,
712                         .num_caps = 0,
713                         .num_msi_vectors = 0,
714                         .msi_64bits = 0,
715                         .num_msix_vectors = 0,
716                         .msix_region_size = 0x0,
717                         .msix_address = 0x0,
718                 },
719                 /* PCIDevice: 01:00.0 */
720                 {
721                         .type = JAILHOUSE_PCI_TYPE_DEVICE,
722                         .iommu = 0,
723                         .domain = 0x0,
724                         .bdf = 0x100,
725                         .caps_start = 22,
726                         .num_caps = 5,
727                         .num_msi_vectors = 1,
728                         .msi_64bits = 1,
729                         .num_msix_vectors = 4,
730                         .msix_region_size = 0x1000,
731                         .msix_address = 0xd0800000,
732                 },
733         },
734
735         .pci_caps = {
736                 /* PCIDevice: 00:00.2 */
737                 {
738                         .id = 0xf,
739                         .start = 0x40,
740                         .len = 2,
741                         .flags = 0,
742                 },
743                 {
744                         .id = 0x5,
745                         .start = 0x54,
746                         .len = 14,
747                         .flags = JAILHOUSE_PCICAPS_WRITE,
748                 },
749                 {
750                         .id = 0x8,
751                         .start = 0x64,
752                         .len = 2,
753                         .flags = 0,
754                 },
755                 /* PCIDevice: 00:01.0 */
756                 /* PCIDevice: 00:01.1 */
757                 {
758                         .id = 0x9,
759                         .start = 0x48,
760                         .len = 2,
761                         .flags = 0,
762                 },
763                 {
764                         .id = 0x1,
765                         .start = 0x50,
766                         .len = 8,
767                         .flags = JAILHOUSE_PCICAPS_WRITE,
768                 },
769                 {
770                         .id = 0x10,
771                         .start = 0x58,
772                         .len = 2,
773                         .flags = 0,
774                 },
775                 {
776                         .id = 0x5,
777                         .start = 0xa0,
778                         .len = 14,
779                         .flags = JAILHOUSE_PCICAPS_WRITE,
780                 },
781                 /* PCIDevice: 00:03.1 */
782                 {
783                         .id = 0x1,
784                         .start = 0x50,
785                         .len = 8,
786                         .flags = JAILHOUSE_PCICAPS_WRITE,
787                 },
788                 {
789                         .id = 0x10,
790                         .start = 0x58,
791                         .len = 2,
792                         .flags = 0,
793                 },
794                 {
795                         .id = 0x5,
796                         .start = 0xa0,
797                         .len = 14,
798                         .flags = JAILHOUSE_PCICAPS_WRITE,
799                 },
800                 {
801                         .id = 0xd,
802                         .start = 0xb0,
803                         .len = 2,
804                         .flags = 0,
805                 },
806                 {
807                         .id = 0x8,
808                         .start = 0xb8,
809                         .len = 2,
810                         .flags = 0,
811                 },
812                 /* PCIDevice: 00:10.0 */
813                 /* PCIDevice: 00:10.1 */
814                 {
815                         .id = 0x1,
816                         .start = 0x50,
817                         .len = 8,
818                         .flags = JAILHOUSE_PCICAPS_WRITE,
819                 },
820                 {
821                         .id = 0x5,
822                         .start = 0x70,
823                         .len = 14,
824                         .flags = JAILHOUSE_PCICAPS_WRITE,
825                 },
826                 {
827                         .id = 0x11,
828                         .start = 0x90,
829                         .len = 12,
830                         .flags = JAILHOUSE_PCICAPS_WRITE,
831                 },
832                 {
833                         .id = 0x10,
834                         .start = 0xa0,
835                         .len = 2,
836                         .flags = 0,
837                 },
838                 /* PCIDevice: 00:11.0 */
839                 {
840                         .id = 0x5,
841                         .start = 0x50,
842                         .len = 14,
843                         .flags = JAILHOUSE_PCICAPS_WRITE,
844                 },
845                 {
846                         .id = 0x12,
847                         .start = 0x70,
848                         .len = 2,
849                         .flags = 0,
850                 },
851                 /* PCIDevice: 00:12.2 */
852                 /* PCIDevice: 00:13.2 */
853                 {
854                         .id = 0x1,
855                         .start = 0xc0,
856                         .len = 8,
857                         .flags = JAILHOUSE_PCICAPS_WRITE,
858                 },
859                 {
860                         .id = 0xa,
861                         .start = 0xe4,
862                         .len = 2,
863                         .flags = 0,
864                 },
865                 /* PCIDevice: 00:14.2 */
866                 {
867                         .id = 0x1,
868                         .start = 0x50,
869                         .len = 8,
870                         .flags = JAILHOUSE_PCICAPS_WRITE,
871                 },
872                 /* PCIDevice: 00:18.3 */
873                 {
874                         .id = 0xf,
875                         .start = 0xf0,
876                         .len = 2,
877                         .flags = 0,
878                 },
879                 /* PCIDevice: 01:00.0 */
880                 {
881                         .id = 0x1,
882                         .start = 0x40,
883                         .len = 8,
884                         .flags = JAILHOUSE_PCICAPS_WRITE,
885                 },
886                 {
887                         .id = 0x5,
888                         .start = 0x50,
889                         .len = 14,
890                         .flags = JAILHOUSE_PCICAPS_WRITE,
891                 },
892                 {
893                         .id = 0x10,
894                         .start = 0x70,
895                         .len = 2,
896                         .flags = 0,
897                 },
898                 {
899                         .id = 0x11,
900                         .start = 0xb0,
901                         .len = 12,
902                         .flags = JAILHOUSE_PCICAPS_WRITE,
903                 },
904                 {
905                         .id = 0x3,
906                         .start = 0xd0,
907                         .len = 2,
908                         .flags = 0,
909                 },
910         },
911 };