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.

Reply via email to