From: YannickV <[email protected]>

Add ps_clk_freq to ZynqMachineClass so derived machine types can set
their own PS clock frequency instead of using the hardcoded default.

Signed-off-by: YannickV <[email protected]>
---
 hw/arm/xilinx_zynq.c         | 3 ++-
 include/hw/arm/xilinx_zynq.h | 1 +
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/hw/arm/xilinx_zynq.c b/hw/arm/xilinx_zynq.c
index f7190118f7ff..1e09182b1cbe 100644
--- a/hw/arm/xilinx_zynq.c
+++ b/hw/arm/xilinx_zynq.c
@@ -253,7 +253,7 @@ static void zynq_init(MachineState *machine)
     object_property_add_child(OBJECT(zynq_machine), "ps_clk",
                               OBJECT(zynq_machine->ps_clk));
     object_unref(OBJECT(zynq_machine->ps_clk));
-    clock_set_hz(zynq_machine->ps_clk, PS_CLK_FREQUENCY);
+    clock_set_hz(zynq_machine->ps_clk, zmc->ps_clk_freq);
 
     /* Create slcr, keep a pointer to connect clocks */
     slcr = qdev_new("xilinx-zynq_slcr");
@@ -480,6 +480,7 @@ static void zynq_machine_class_init(ObjectClass *oc, const 
void *data)
                                           " jtag qspi sd nor");
     object_property_set_default_str(prop, "qspi");
     zmc->qspi_flash_type = "n25q128";
+    zmc->ps_clk_freq = PS_CLK_FREQUENCY;
 }
 
 static const TypeInfo zynq_machine_type = {
diff --git a/include/hw/arm/xilinx_zynq.h b/include/hw/arm/xilinx_zynq.h
index 33a68cdcd15e..a52caca18eb9 100644
--- a/include/hw/arm/xilinx_zynq.h
+++ b/include/hw/arm/xilinx_zynq.h
@@ -33,6 +33,7 @@ struct ZynqMachineState {
 struct ZynqMachineClass {
     MachineClass parent_class;
     const char *qspi_flash_type;
+    uint64_t ps_clk_freq;
 };
 
 #endif /* QEMU_ARM_ZYNQ_H */
-- 
2.47.3


Reply via email to