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 | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/hw/arm/xilinx_zynq.c b/hw/arm/xilinx_zynq.c index 5aac215c27..a464189542 100644 --- a/hw/arm/xilinx_zynq.c +++ b/hw/arm/xilinx_zynq.c @@ -259,7 +259,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"); @@ -485,6 +485,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 662b390431..bf411f1cc2 100644 --- a/include/hw/arm/xilinx_zynq.h +++ b/include/hw/arm/xilinx_zynq.h @@ -24,6 +24,7 @@ OBJECT_DECLARE_TYPE(ZynqMachineState, ZynqMachineClass, ZYNQ_MACHINE) struct ZynqMachineState { MachineState parent; Clock *ps_clk; + Clock *mpcore_clk; ARMCPU *cpu[ZYNQ_MAX_CPUS]; uint8_t boot_mode; }; @@ -31,6 +32,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
