struct {
struct jailhouse_cell_desc cell;
__u64 cpus[1];
- struct jailhouse_memory mem_regions[1];
+ struct jailhouse_memory mem_regions[1];
+ struct jailhouse_irqchip irqchips[1];
__u8 pio_bitmap[0x2000];
struct jailhouse_pci_device pci_devices[0];
} __attribute__((packed)) config = {
.cpu_set_size = sizeof(config.cpus),
.num_memory_regions = ARRAY_SIZE(config.mem_regions),
- .num_irqchips = 0,
+ .num_irqchips = ARRAY_SIZE(config.irqchips),
.pio_bitmap_size = ARRAY_SIZE(config.pio_bitmap),
.num_pci_devices = ARRAY_SIZE(config.pci_devices),
.num_pci_caps = 0,
// },
},
+ .irqchips = {
+ // IOAPIC
+ {
+ .address = 0xfec00000,
+ .id = 0xff01,
+ .pin_bitmap = 0xffffffff,
+ },
+ },
+
.pio_bitmap = {
- [ 0/8 ... 0x5f/8] = -1,
+ [ 0/8 ... 0x3f/8] = -1,
+ [ 0x20/8 ... 0x28/8] = 0xfc, /* PIC Master 0x20 0x21 */
+ [ 0x29/8 ... 0x3f/8] = -1,
+ [ 0x40/8 ... 0x47/8] = 0xf0, /* PIT */
+ [ 0x48/8 ... 0x5f/8] = -1,
[ 0x60/8 ... 0x67/8] = 0,
[ 0x68/8 ... 0x7f/8] = -1,
[ 0x80/8 ... 0x88/8] = 0xfe, //delay
- [ 0x89/8 ... 0x3f7/8] = -1,
-
+ [ 0x89/8 ... 0x99/8] = -1,
+ [ 0xA0/8 ... 0xA8/8] = 0xfc, /* PIC Slave 0xA0 0xA1 */
+ [ 0xA9/8 ... 0x3f7/8] = -1,
[ 0x3f8/8 ... 0x3ff/8] = 0, /* serial1 */
[ 0x400/8 ... 0xe00f/8] = -1,
[0xe010/8 ... 0xe017/8] = 0, /* OXPCIe952 serial1 */
[0xe018/8 ... 0xffff/8] = -1,
},
+
// .pci_devices = {
// {
// .type = JAILHOUSE_PCI_TYPE_IVSHMEM,