The timer irq number is also platform specific information. Store it in the cell config and pass it to the communication region.
Signed-off-by: Ralf Ramsauer <[email protected]> --- configs/arm/bananapi.c | 1 + configs/arm/emtrion-rzg1e.c | 1 + configs/arm/emtrion-rzg1h.c | 1 + configs/arm/emtrion-rzg1m.c | 1 + configs/arm/jetson-tk1.c | 1 + configs/arm/orangepi0.c | 1 + configs/arm/vexpress.c | 1 + configs/arm64/amd-seattle.c | 1 + configs/arm64/espressobin.c | 1 + configs/arm64/foundation-v8.c | 1 + configs/arm64/hikey.c | 1 + configs/arm64/imx8mq.c | 1 + configs/arm64/jetson-tx1.c | 1 + configs/arm64/jetson-tx2.c | 1 + configs/arm64/qemu-arm64.c | 1 + configs/arm64/zynqmp-zcu102.c | 1 + hypervisor/arch/arm-common/control.c | 2 ++ include/arch/arm-common/asm/jailhouse_hypercall.h | 3 ++- include/jailhouse/cell-config.h | 1 + 19 files changed, 21 insertions(+), 1 deletion(-) diff --git a/configs/arm/bananapi.c b/configs/arm/bananapi.c index cb1d8a5e..7a0433eb 100644 --- a/configs/arm/bananapi.c +++ b/configs/arm/bananapi.c @@ -53,6 +53,7 @@ struct { .gich_base = 0x01c84000, .gicv_base = 0x01c86000, .maintenance_irq = 25, + .timer_irq = 27, }, }, .root_cell = { diff --git a/configs/arm/emtrion-rzg1e.c b/configs/arm/emtrion-rzg1e.c index b32c6935..4290cd7e 100644 --- a/configs/arm/emtrion-rzg1e.c +++ b/configs/arm/emtrion-rzg1e.c @@ -54,6 +54,7 @@ struct { .gich_base = 0xf1004000, .gicv_base = 0xf1006000, .maintenance_irq = 25, + .timer_irq = 27, }, }, .root_cell = { diff --git a/configs/arm/emtrion-rzg1h.c b/configs/arm/emtrion-rzg1h.c index b0b03065..2056d620 100644 --- a/configs/arm/emtrion-rzg1h.c +++ b/configs/arm/emtrion-rzg1h.c @@ -54,6 +54,7 @@ struct { .gich_base = 0xf1004000, .gicv_base = 0xf1006000, .maintenance_irq = 25, + .timer_irq = 27, }, }, .root_cell = { diff --git a/configs/arm/emtrion-rzg1m.c b/configs/arm/emtrion-rzg1m.c index 148e2f78..b2f3598c 100644 --- a/configs/arm/emtrion-rzg1m.c +++ b/configs/arm/emtrion-rzg1m.c @@ -54,6 +54,7 @@ struct { .gich_base = 0xf1004000, .gicv_base = 0xf1006000, .maintenance_irq = 25, + .timer_irq = 27, }, }, .root_cell = { diff --git a/configs/arm/jetson-tk1.c b/configs/arm/jetson-tk1.c index cc781ea8..cdfbe6ad 100644 --- a/configs/arm/jetson-tk1.c +++ b/configs/arm/jetson-tk1.c @@ -57,6 +57,7 @@ struct { .gich_base = 0x50044000, .gicv_base = 0x50046000, .maintenance_irq = 25, + .timer_irq = 27, }, }, .root_cell = { diff --git a/configs/arm/orangepi0.c b/configs/arm/orangepi0.c index 1e5c0f44..e2481f49 100644 --- a/configs/arm/orangepi0.c +++ b/configs/arm/orangepi0.c @@ -50,6 +50,7 @@ struct { .gich_base = 0x01c84000, .gicv_base = 0x01c86000, .maintenance_irq = 25, + .timer_irq = 27, }, }, .root_cell = { diff --git a/configs/arm/vexpress.c b/configs/arm/vexpress.c index b1a6a76b..5d3500f5 100644 --- a/configs/arm/vexpress.c +++ b/configs/arm/vexpress.c @@ -51,6 +51,7 @@ struct { .gicv_base = 0x2c006000, #endif .maintenance_irq = 25, + .timer_irq = 27, }, .root_cell = { .name = "VExpress Linux", diff --git a/configs/arm64/amd-seattle.c b/configs/arm64/amd-seattle.c index 1f37ec8e..201572a1 100644 --- a/configs/arm64/amd-seattle.c +++ b/configs/arm64/amd-seattle.c @@ -49,6 +49,7 @@ struct { .gich_base = 0xe1140000, .gicv_base = 0xe116f000, .maintenance_irq = 25, + .timer_irq = 27, }, }, .root_cell = { diff --git a/configs/arm64/espressobin.c b/configs/arm64/espressobin.c index 83a6fee5..47be11e6 100644 --- a/configs/arm64/espressobin.c +++ b/configs/arm64/espressobin.c @@ -51,6 +51,7 @@ struct { .gicd_base = 0xd1d00000, .gicr_base = 0xd1d40000, .maintenance_irq = 25, + .timer_irq = 27, }, }, .root_cell = { diff --git a/configs/arm64/foundation-v8.c b/configs/arm64/foundation-v8.c index 8e7974a1..ad1dbd58 100644 --- a/configs/arm64/foundation-v8.c +++ b/configs/arm64/foundation-v8.c @@ -51,6 +51,7 @@ struct { .gicv_base = 0x2c006000, #endif .maintenance_irq = 25, + .timer_irq = 27, }, .root_cell = { .name = "foundation-v8", diff --git a/configs/arm64/hikey.c b/configs/arm64/hikey.c index 86d677bd..f9d65d50 100644 --- a/configs/arm64/hikey.c +++ b/configs/arm64/hikey.c @@ -51,6 +51,7 @@ struct { .gich_base = 0xf6804000, .gicv_base = 0xf6806000, .maintenance_irq = 25, + .timer_irq = 27, }, }, .root_cell = { diff --git a/configs/arm64/imx8mq.c b/configs/arm64/imx8mq.c index 608e70b9..2d512198 100644 --- a/configs/arm64/imx8mq.c +++ b/configs/arm64/imx8mq.c @@ -44,6 +44,7 @@ struct { .gicd_base = 0x38800000, .gicr_base = 0x38880000, .maintenance_irq = 25, + .timer_irq = 27, }, }, .root_cell = { diff --git a/configs/arm64/jetson-tx1.c b/configs/arm64/jetson-tx1.c index a33fb9ca..b1a72c58 100644 --- a/configs/arm64/jetson-tx1.c +++ b/configs/arm64/jetson-tx1.c @@ -55,6 +55,7 @@ struct { .gich_base = 0x50044000, .gicv_base = 0x50046000, .maintenance_irq = 25, + .timer_irq = 27, } }, .root_cell = { diff --git a/configs/arm64/jetson-tx2.c b/configs/arm64/jetson-tx2.c index 23503629..dc6871c0 100644 --- a/configs/arm64/jetson-tx2.c +++ b/configs/arm64/jetson-tx2.c @@ -53,6 +53,7 @@ struct { .gicv_base = 0x03886000, .gic_version = 2, .maintenance_irq = 25, + .timer_irq = 27, } }, .root_cell = { diff --git a/configs/arm64/qemu-arm64.c b/configs/arm64/qemu-arm64.c index 295a156e..f94c7a34 100644 --- a/configs/arm64/qemu-arm64.c +++ b/configs/arm64/qemu-arm64.c @@ -51,6 +51,7 @@ struct { .gicd_base = 0x08000000, .gicr_base = 0x080a0000, .maintenance_irq = 25, + .timer_irq = 27, }, }, .root_cell = { diff --git a/configs/arm64/zynqmp-zcu102.c b/configs/arm64/zynqmp-zcu102.c index 9c7d49e2..40dcbff6 100644 --- a/configs/arm64/zynqmp-zcu102.c +++ b/configs/arm64/zynqmp-zcu102.c @@ -53,6 +53,7 @@ struct { .gich_base = 0xf9040000, .gicv_base = 0xf906f000, .maintenance_irq = 25, + .timer_irq = 27, }, }, .root_cell = { diff --git a/hypervisor/arch/arm-common/control.c b/hypervisor/arch/arm-common/control.c index 8b247ee1..18b52660 100644 --- a/hypervisor/arch/arm-common/control.c +++ b/hypervisor/arch/arm-common/control.c @@ -203,6 +203,8 @@ int arch_cell_create(struct cell *cell) comm_region->gicc_base = system_config->platform_info.arm.gicc_base; comm_region->gicr_base = system_config->platform_info.arm.gicr_base; + comm_region->timer_irq = system_config->platform_info.arm.timer_irq; + return arm_paging_cell_init(cell); } diff --git a/include/arch/arm-common/asm/jailhouse_hypercall.h b/include/arch/arm-common/asm/jailhouse_hypercall.h index a4fb1360..5ff81391 100644 --- a/include/arch/arm-common/asm/jailhouse_hypercall.h +++ b/include/arch/arm-common/asm/jailhouse_hypercall.h @@ -40,4 +40,5 @@ __u8 gic_version; \ __u64 gicd_base; \ __u64 gicc_base; \ - __u64 gicr_base; + __u64 gicr_base; \ + __u8 timer_irq; diff --git a/include/jailhouse/cell-config.h b/include/jailhouse/cell-config.h index 09a45a40..f06a334b 100644 --- a/include/jailhouse/cell-config.h +++ b/include/jailhouse/cell-config.h @@ -216,6 +216,7 @@ struct jailhouse_system { } __attribute__((packed)) x86; struct { u8 maintenance_irq; + u8 timer_irq; u8 gic_version; u64 gicd_base; u64 gicc_base; -- 2.17.0 -- You received this message because you are subscribed to the Google Groups "Jailhouse" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
