From: Peter Maydell <peter.maydell@linaro.org> To: qemu-arm@nongnu.org, qemu-devel@nongnu.org Cc: "Damien Hedde" <damien.hedde@greensocs.com>, "Luc Michel" <luc@lmichel.fr>, "Philippe Mathieu-Daudé" <f4bug@amsat.org> Subject: [PATCH 07/25] hw/timer/cmsdk-apb-timer: Add Clock input Date: Thu, 21 Jan 2021 19:06:04 +0000 Message-ID: <20210121190622.22000-8-peter.maydell@linaro.org> (raw) In-Reply-To: <20210121190622.22000-1-peter.maydell@linaro.org> As the first step in converting the CMSDK_APB_TIMER device to the Clock framework, add a Clock input. For the moment we do nothing with this clock; we will change the behaviour from using the pclk-frq property to using the Clock once all the users of this device have been converted to wire up the Clock. Since the device doesn't already have a doc comment for its "QEMU interface", we add one including the new Clock. This is a migration compatibility break for machines mps2-an505, mps2-an521, musca-a, musca-b1. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> --- include/hw/timer/cmsdk-apb-timer.h | 9 +++++++++ hw/timer/cmsdk-apb-timer.c | 7 +++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/include/hw/timer/cmsdk-apb-timer.h b/include/hw/timer/cmsdk-apb-timer.h index baa009bb2da..fc2aa97acac 100644 --- a/include/hw/timer/cmsdk-apb-timer.h +++ b/include/hw/timer/cmsdk-apb-timer.h @@ -15,11 +15,19 @@ #include "hw/qdev-properties.h" #include "hw/sysbus.h" #include "hw/ptimer.h" +#include "hw/clock.h" #include "qom/object.h" #define TYPE_CMSDK_APB_TIMER "cmsdk-apb-timer" OBJECT_DECLARE_SIMPLE_TYPE(CMSDKAPBTimer, CMSDK_APB_TIMER) +/* + * QEMU interface: + * + QOM property "pclk-frq": frequency at which the timer is clocked + * + Clock input "pclk": clock for the timer + * + sysbus MMIO region 0: the register bank + * + sysbus IRQ 0: timer interrupt TIMERINT + */ struct CMSDKAPBTimer { /*< private >*/ SysBusDevice parent_obj; @@ -29,6 +37,7 @@ struct CMSDKAPBTimer { qemu_irq timerint; uint32_t pclk_frq; struct ptimer_state *timer; + Clock *pclk; uint32_t ctrl; uint32_t value; diff --git a/hw/timer/cmsdk-apb-timer.c b/hw/timer/cmsdk-apb-timer.c index ae9c5422540..c63145ff553 100644 --- a/hw/timer/cmsdk-apb-timer.c +++ b/hw/timer/cmsdk-apb-timer.c @@ -35,6 +35,7 @@ #include "hw/sysbus.h" #include "hw/irq.h" #include "hw/registerfields.h" +#include "hw/qdev-clock.h" #include "hw/timer/cmsdk-apb-timer.h" #include "migration/vmstate.h" @@ -212,6 +213,7 @@ static void cmsdk_apb_timer_init(Object *obj) s, "cmsdk-apb-timer", 0x1000); sysbus_init_mmio(sbd, &s->iomem); sysbus_init_irq(sbd, &s->timerint); + s->pclk = qdev_init_clock_in(DEVICE(s), "pclk", NULL, NULL); } static void cmsdk_apb_timer_realize(DeviceState *dev, Error **errp) @@ -236,10 +238,11 @@ static void cmsdk_apb_timer_realize(DeviceState *dev, Error **errp) static const VMStateDescription cmsdk_apb_timer_vmstate = { .name = "cmsdk-apb-timer", - .version_id = 1, - .minimum_version_id = 1, + .version_id = 2, + .minimum_version_id = 2, .fields = (VMStateField[]) { VMSTATE_PTIMER(timer, CMSDKAPBTimer), + VMSTATE_CLOCK(pclk, CMSDKAPBTimer), VMSTATE_UINT32(ctrl, CMSDKAPBTimer), VMSTATE_UINT32(value, CMSDKAPBTimer), VMSTATE_UINT32(reload, CMSDKAPBTimer), -- 2.20.1
next prev parent reply index Thread overview: 80+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-01-21 19:05 [PATCH 00/25] Convert CMSDK timer, watchdog, dualtimer to Clock framework Peter Maydell 2021-01-21 19:05 ` [PATCH 01/25] ptimer: Add new ptimer_set_period_from_clock() function Peter Maydell 2021-01-22 14:08 ` Luc Michel 2021-01-21 19:05 ` [PATCH 02/25] clock: Add new clock_has_source() function Peter Maydell 2021-01-22 14:15 ` Luc Michel 2021-01-27 21:56 ` Philippe Mathieu-Daudé 2021-01-21 19:06 ` [PATCH 03/25] tests: Add a simple test of the CMSDK APB timer Peter Maydell 2021-01-21 19:56 ` Philippe Mathieu-Daudé 2021-01-24 12:50 ` Luc Michel 2021-01-21 19:06 ` [PATCH 04/25] tests: Add a simple test of the CMSDK APB watchdog Peter Maydell 2021-01-24 13:10 ` Luc Michel 2021-01-27 21:54 ` Philippe Mathieu-Daudé 2021-01-21 19:06 ` [PATCH 05/25] tests: Add a simple test of the CMSDK APB dual timer Peter Maydell 2021-01-24 13:24 ` Luc Michel 2021-01-21 19:06 ` [PATCH 06/25] hw/timer/cmsdk-apb-timer: Rename CMSDKAPBTIMER struct to CMSDKAPBTimer Peter Maydell 2021-01-21 20:21 ` Philippe Mathieu-Daudé 2021-01-22 14:22 ` Luc Michel 2021-01-21 19:06 ` Peter Maydell [this message] 2021-01-21 20:22 ` [PATCH 07/25] hw/timer/cmsdk-apb-timer: Add Clock input Philippe Mathieu-Daudé 2021-01-22 15:11 ` Luc Michel 2021-01-21 19:06 ` [PATCH 08/25] hw/timer/cmsdk-apb-dualtimer: " Peter Maydell 2021-01-21 21:49 ` Philippe Mathieu-Daudé 2021-01-22 15:17 ` Luc Michel 2021-01-21 19:06 ` [PATCH 09/25] hw/watchdog/cmsdk-apb-watchdog: " Peter Maydell 2021-01-21 20:27 ` Philippe Mathieu-Daudé 2021-01-22 15:18 ` Luc Michel 2021-01-21 19:06 ` [PATCH 10/25] hw/arm/armsse: Rename "MAINCLK" property to "MAINCLK_FRQ" Peter Maydell 2021-01-21 20:28 ` Philippe Mathieu-Daudé 2021-01-22 15:22 ` Luc Michel 2021-01-21 19:06 ` [PATCH 11/25] hw/arm/armsse: Wire up clocks Peter Maydell 2021-01-21 20:30 ` Philippe Mathieu-Daudé 2021-01-22 15:34 ` Luc Michel 2021-01-21 19:06 ` [PATCH 12/25] hw/arm/mps2: Inline CMSDK_APB_TIMER creation Peter Maydell 2021-01-21 22:14 ` Philippe Mathieu-Daudé 2021-01-22 15:33 ` Luc Michel 2021-01-21 19:06 ` [PATCH 13/25] hw/arm/mps2: Create and connect SYSCLK Clock Peter Maydell 2021-01-21 21:24 ` Philippe Mathieu-Daudé 2021-01-22 19:52 ` Luc Michel 2021-01-21 19:06 ` [PATCH 14/25] hw/arm/mps2-tz: Create and connect ARMSSE Clocks Peter Maydell 2021-01-21 21:30 ` Philippe Mathieu-Daudé 2021-01-22 19:52 ` Luc Michel 2021-01-21 19:06 ` [PATCH 15/25] hw/arm/musca: " Peter Maydell 2021-01-21 21:30 ` Philippe Mathieu-Daudé 2021-01-22 20:01 ` Luc Michel 2021-01-21 19:06 ` [PATCH 16/25] hw/arm/stellaris: Convert SSYS to QOM device Peter Maydell 2021-01-21 22:13 ` Philippe Mathieu-Daudé 2021-01-25 11:48 ` Peter Maydell 2021-01-27 22:10 ` Philippe Mathieu-Daudé 2021-01-22 20:26 ` Luc Michel 2021-01-21 19:06 ` [PATCH 17/25] hw/arm/stellaris: Create Clock input for watchdog Peter Maydell 2021-01-21 21:59 ` Philippe Mathieu-Daudé 2021-01-27 22:16 ` Philippe Mathieu-Daudé 2021-01-22 20:30 ` Luc Michel 2021-01-21 19:06 ` [PATCH 18/25] hw/timer/cmsdk-apb-timer: Convert to use Clock input Peter Maydell 2021-01-21 22:01 ` Philippe Mathieu-Daudé 2021-01-22 20:33 ` Luc Michel 2021-01-21 19:06 ` [PATCH 19/25] hw/timer/cmsdk-apb-dualtimer: " Peter Maydell 2021-01-22 20:49 ` Luc Michel 2021-01-22 21:41 ` Peter Maydell 2021-01-23 19:58 ` Luc Michel 2021-01-27 22:00 ` Philippe Mathieu-Daudé 2021-01-21 19:06 ` [PATCH 20/25] hw/watchdog/cmsdk-apb-watchdog: " Peter Maydell 2021-01-21 22:01 ` Philippe Mathieu-Daudé 2021-01-22 20:51 ` Luc Michel 2021-01-21 19:06 ` [PATCH 21/25] tests/qtest/cmsdk-apb-watchdog-test: Test clock changes Peter Maydell 2021-01-21 22:04 ` Philippe Mathieu-Daudé 2021-01-24 13:35 ` Luc Michel 2021-01-21 19:06 ` [PATCH 22/25] hw/arm/armsse: Use Clock to set system_clock_scale Peter Maydell 2021-01-21 22:05 ` Philippe Mathieu-Daudé 2021-01-23 20:31 ` Luc Michel 2021-01-23 22:33 ` Peter Maydell 2021-01-21 19:06 ` [PATCH 23/25] arm: Don't set freq properties on CMSDK timer, dualtimer, watchdog, ARMSSE Peter Maydell 2021-01-21 22:06 ` Philippe Mathieu-Daudé 2021-01-23 20:32 ` Luc Michel 2021-01-21 19:06 ` [PATCH 24/25] arm: Remove frq " Peter Maydell 2021-01-21 22:09 ` Philippe Mathieu-Daudé 2021-01-23 20:33 ` Luc Michel 2021-01-21 19:06 ` [PATCH 25/25] hw/arm/stellaris: Remove board-creation reset of STELLARIS_SYS Peter Maydell 2021-01-23 20:33 ` Luc Michel 2021-01-27 22:10 ` Philippe Mathieu-Daudé
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20210121190622.22000-8-peter.maydell@linaro.org \ --to=peter.maydell@linaro.org \ --cc=damien.hedde@greensocs.com \ --cc=f4bug@amsat.org \ --cc=luc@lmichel.fr \ --cc=qemu-arm@nongnu.org \ --cc=qemu-devel@nongnu.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
QEMU-Devel Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/qemu-devel/0 qemu-devel/git/0.git git clone --mirror https://lore.kernel.org/qemu-devel/1 qemu-devel/git/1.git git clone --mirror https://lore.kernel.org/qemu-devel/2 qemu-devel/git/2.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 qemu-devel qemu-devel/ https://lore.kernel.org/qemu-devel \ qemu-devel@nongnu.org public-inbox-index qemu-devel Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.nongnu.qemu-devel AGPL code for this site: git clone https://public-inbox.org/public-inbox.git