From: KONRAD Frederic <fred.kon...@greensocs.com> Hi,
This is a first draft of the clock framework API it contains: * The first 5 patches which introduce the framework. * The 6th patch which introduces a fixed-clock model. * The rest which gives an example how to model a PLL from the existing zynqmp-crf extracted from the qemu xilinx tree. No specific behavior is expected yet when the CRF register set is accessed but the user can see for example the dp_video_ref and vpll_to_lpd rate changing in the monitor with the "info qtree" command when the vpll_ctrl register is modified. bus: main-system-bus type System dev: xlnx.zynqmp_crf, id "" gpio-out "sysbus-irq" 1 gpio-out "RST_A9" 4 qemu-clk "dbg_trace" 0.0 qemu-clk "vpll_to_lpd" 12500000.0 qemu-clk "dp_stc_ref" 0.0 qemu-clk "dpll_to_lpd" 12500000.0 qemu-clk "acpu_clk" 0.0 qemu-clk "pcie_ref" 0.0 qemu-clk "topsw_main" 0.0 qemu-clk "topsw_lsbus" 0.0 qemu-clk "dp_audio_ref" 0.0 qemu-clk "sata_ref" 0.0 qemu-clk "dp_video_ref" 1428571.4 qemu-clk "vpll_clk" 50000000.0 qemu-clk "apll_to_lpd" 12500000.0 qemu-clk "dpll_clk" 50000000.0 qemu-clk "gpu_ref" 0.0 qemu-clk "aux_refclk" 0.0 qemu-clk "video_clk" 27000000.0 qemu-clk "gdma_ref" 0.0 qemu-clk "gt_crx_ref_clk" 0.0 qemu-clk "dbg_fdp" 0.0 qemu-clk "apll_clk" 50000000.0 qemu-clk "pss_alt_ref_clk" 0.0 qemu-clk "ddr" 0.0 qemu-clk "pss_ref_clk" 50000000.0 qemu-clk "dpdma_ref" 0.0 qemu-clk "dbg_tstmp" 0.0 mmio 00000000fd1a0000/000000000000010c This series is based on the current master (d6550e9ed2e1a60d889dfb721de00d9a4e3bafbe) with the data-driven register patch-set from Alistair. Note that the omap clock infrastructure is really far from what we need so I think it's worse implement the clock framework and then rework the omaps platforms to use it. TODO: * reshape the omap clock tree to use this one. Any comment on that? Thanks, Fred KONRAD Frederic (11): qemu-clk: introduce qemu-clk qom object qemu-clk: allow to attach a clock to a device qemu-clk: allow to bound two clocks together qdev-monitor: print the device's clock with info qtree docs: add qemu-clock documentation introduce fixed-clock introduce zynqmp_crf zynqmp_crf: fix against AF_EX32 changes zynqmp_crf: add the clock mechanism zynqmp: add the zynqmp_crf to the platform zynqmp: add reference clock Makefile.objs | 1 + docs/clock.txt | 112 +++++ hw/arm/xlnx-zynqmp.c | 49 +++ hw/misc/Makefile.objs | 3 + hw/misc/fixed-clock.c | 87 ++++ hw/misc/xilinx_zynqmp_crf.c | 972 ++++++++++++++++++++++++++++++++++++++++++ include/hw/arm/xlnx-zynqmp.h | 7 + include/hw/misc/fixed-clock.h | 30 ++ include/qemu/qemu-clock.h | 136 ++++++ qdev-monitor.c | 2 + qemu-clock.c | 153 +++++++ 11 files changed, 1552 insertions(+) create mode 100644 docs/clock.txt create mode 100644 hw/misc/fixed-clock.c create mode 100644 hw/misc/xilinx_zynqmp_crf.c create mode 100644 include/hw/misc/fixed-clock.h create mode 100644 include/qemu/qemu-clock.h create mode 100644 qemu-clock.c -- 2.5.5