From nobody Fri Dec 19 04:17:24 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1633362587178758.4359704026856; Mon, 4 Oct 2021 08:49:47 -0700 (PDT) Received: from localhost ([::1]:55758 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mXQDn-0003F0-Ol for importer@patchew.org; Mon, 04 Oct 2021 11:49:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44448) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mXQAu-0000zj-2Y for qemu-devel@nongnu.org; Mon, 04 Oct 2021 11:46:44 -0400 Received: from 2.mo552.mail-out.ovh.net ([178.33.105.233]:57911) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mXQAs-0001Cd-3T for qemu-devel@nongnu.org; Mon, 04 Oct 2021 11:46:43 -0400 Received: from mxplan5.mail.ovh.net (unknown [10.108.16.17]) by mo552.mail-out.ovh.net (Postfix) with ESMTPS id 0597721C77; Mon, 4 Oct 2021 15:46:38 +0000 (UTC) Received: from kaod.org (37.59.142.98) by DAG4EX1.mxp5.local (172.16.2.31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.14; Mon, 4 Oct 2021 17:46:36 +0200 Authentication-Results: garm.ovh; auth=pass (GARM-98R002017bd19a-9c25-4f92-8aa3-05a66f16e2c8, 32296DFA07ABF8CFA5B750E6C0B5925FEAD98EF4) smtp.auth=clg@kaod.org X-OVh-ClientIp: 82.64.250.170 From: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= To: Peter Maydell Subject: [PATCH 1/4] aspeed/wdt: Add trace events Date: Mon, 4 Oct 2021 17:46:32 +0200 Message-ID: <20211004154635.394258-2-clg@kaod.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211004154635.394258-1-clg@kaod.org> References: <20211004154635.394258-1-clg@kaod.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Originating-IP: [37.59.142.98] X-ClientProxiedBy: DAG7EX1.mxp5.local (172.16.2.61) To DAG4EX1.mxp5.local (172.16.2.31) X-Ovh-Tracer-GUID: b9a2107d-e1c2-48bd-bee0-8228989132b2 X-Ovh-Tracer-Id: 2440106576764570406 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: -100 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedvtddrudelvddgledtucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvufffkffojghfgggtgfhisehtkeertdertdejnecuhfhrohhmpeevrogurhhitgcunfgvucfiohgrthgvrhcuoegtlhhgsehkrghougdrohhrgheqnecuggftrfgrthhtvghrnhepheehfeegjeeitdfffeetjeduveejueefuefgtdefueelueetveeliefhhffgtdelnecukfhppedtrddtrddtrddtpdefjedrheelrddugedvrdelkeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhhouggvpehsmhhtphdqohhuthdphhgvlhhopehmgihplhgrnhehrdhmrghilhdrohhvhhdrnhgvthdpihhnvghtpedtrddtrddtrddtpdhmrghilhhfrhhomheptghlgheskhgrohgurdhorhhgpdhrtghpthhtoheptghlgheskhgrohgurdhorhhg Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=178.33.105.233; envelope-from=clg@kaod.org; helo=2.mo552.mail-out.ovh.net X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Andrew Jeffery , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , qemu-arm@nongnu.org, Joel Stanley , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZM-MESSAGEID: 1633362589701100001 Signed-off-by: C=C3=A9dric Le Goater Reviewed-by: Francisco Iglesias Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- hw/watchdog/wdt_aspeed.c | 5 +++++ hw/watchdog/trace-events | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/hw/watchdog/wdt_aspeed.c b/hw/watchdog/wdt_aspeed.c index 69c37af9a6e9..146ffcd71301 100644 --- a/hw/watchdog/wdt_aspeed.c +++ b/hw/watchdog/wdt_aspeed.c @@ -19,6 +19,7 @@ #include "hw/sysbus.h" #include "hw/watchdog/wdt_aspeed.h" #include "migration/vmstate.h" +#include "trace.h" =20 #define WDT_STATUS (0x00 / 4) #define WDT_RELOAD_VALUE (0x04 / 4) @@ -60,6 +61,8 @@ static uint64_t aspeed_wdt_read(void *opaque, hwaddr offs= et, unsigned size) { AspeedWDTState *s =3D ASPEED_WDT(opaque); =20 + trace_aspeed_wdt_read(offset, size); + offset >>=3D 2; =20 switch (offset) { @@ -140,6 +143,8 @@ static void aspeed_wdt_write(void *opaque, hwaddr offse= t, uint64_t data, AspeedWDTClass *awc =3D ASPEED_WDT_GET_CLASS(s); bool enable; =20 + trace_aspeed_wdt_write(offset, size, data); + offset >>=3D 2; =20 switch (offset) { diff --git a/hw/watchdog/trace-events b/hw/watchdog/trace-events index c3bafbffa911..e7523e22aaf2 100644 --- a/hw/watchdog/trace-events +++ b/hw/watchdog/trace-events @@ -5,3 +5,7 @@ cmsdk_apb_watchdog_read(uint64_t offset, uint64_t data, uns= igned size) "CMSDK AP cmsdk_apb_watchdog_write(uint64_t offset, uint64_t data, unsigned size) "C= MSDK APB watchdog write: offset 0x%" PRIx64 " data 0x%" PRIx64 " size %u" cmsdk_apb_watchdog_reset(void) "CMSDK APB watchdog: reset" cmsdk_apb_watchdog_lock(uint32_t lock) "CMSDK APB watchdog: lock %" PRIu32 + +# wdt-aspeed.c +aspeed_wdt_read(uint64_t addr, uint32_t size) "@0x%" PRIx64 " size=3D%d" +aspeed_wdt_write(uint64_t addr, uint32_t size, uint64_t data) "@0x%" PRIx6= 4 " size=3D%d value=3D0x%"PRIx64 --=20 2.31.1 From nobody Fri Dec 19 04:17:24 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1633362590818348.54476936874823; Mon, 4 Oct 2021 08:49:50 -0700 (PDT) Received: from localhost ([::1]:56338 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mXQDt-0003by-Fh for importer@patchew.org; Mon, 04 Oct 2021 11:49:49 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44536) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mXQB0-00019w-Jv for qemu-devel@nongnu.org; Mon, 04 Oct 2021 11:46:50 -0400 Received: from 8.mo552.mail-out.ovh.net ([46.105.37.156]:47297) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mXQAx-0001Ce-My for qemu-devel@nongnu.org; Mon, 04 Oct 2021 11:46:50 -0400 Received: from mxplan5.mail.ovh.net (unknown [10.108.16.17]) by mo552.mail-out.ovh.net (Postfix) with ESMTPS id 21F7D21B65; Mon, 4 Oct 2021 15:46:38 +0000 (UTC) Received: from kaod.org (37.59.142.98) by DAG4EX1.mxp5.local (172.16.2.31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.14; Mon, 4 Oct 2021 17:46:37 +0200 Authentication-Results: garm.ovh; auth=pass (GARM-98R002688db4f2-5256-4221-84f5-25f6fcc3fa1a, 32296DFA07ABF8CFA5B750E6C0B5925FEAD98EF4) smtp.auth=clg@kaod.org X-OVh-ClientIp: 82.64.250.170 From: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= To: Peter Maydell Subject: [PATCH 2/4] aspeed/smc: Dump address offset in trace events Date: Mon, 4 Oct 2021 17:46:33 +0200 Message-ID: <20211004154635.394258-3-clg@kaod.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211004154635.394258-1-clg@kaod.org> References: <20211004154635.394258-1-clg@kaod.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Originating-IP: [37.59.142.98] X-ClientProxiedBy: DAG7EX1.mxp5.local (172.16.2.61) To DAG4EX1.mxp5.local (172.16.2.31) X-Ovh-Tracer-GUID: bf878faf-e389-4046-99d3-0e7758334c5d X-Ovh-Tracer-Id: 2440106576663251750 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: -100 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedvtddrudelvddgledtucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvufffkffojghfgggtgfhisehtkeertdertdejnecuhfhrohhmpeevrogurhhitgcunfgvucfiohgrthgvrhcuoegtlhhgsehkrghougdrohhrgheqnecuggftrfgrthhtvghrnhepheehfeegjeeitdfffeetjeduveejueefuefgtdefueelueetveeliefhhffgtdelnecukfhppedtrddtrddtrddtpdefjedrheelrddugedvrdelkeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhhouggvpehsmhhtphdqohhuthdphhgvlhhopehmgihplhgrnhehrdhmrghilhdrohhvhhdrnhgvthdpihhnvghtpedtrddtrddtrddtpdhmrghilhhfrhhomheptghlgheskhgrohgurdhorhhgpdhrtghpthhtoheptghlgheskhgrohgurdhorhhg Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=46.105.37.156; envelope-from=clg@kaod.org; helo=8.mo552.mail-out.ovh.net X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Andrew Jeffery , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , qemu-arm@nongnu.org, Joel Stanley , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZM-MESSAGEID: 1633362591342100003 The register index is currently printed and this is confusing. Signed-off-by: C=C3=A9dric Le Goater Reviewed-by: Francisco Iglesias Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- hw/ssi/aspeed_smc.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hw/ssi/aspeed_smc.c b/hw/ssi/aspeed_smc.c index 7129341c129e..8a988c167604 100644 --- a/hw/ssi/aspeed_smc.c +++ b/hw/ssi/aspeed_smc.c @@ -728,7 +728,7 @@ static uint64_t aspeed_smc_read(void *opaque, hwaddr ad= dr, unsigned int size) addr < R_SEG_ADDR0 + asc->max_peripherals) || (addr >=3D s->r_ctrl0 && addr < s->r_ctrl0 + asc->max_peripherals)= ) { =20 - trace_aspeed_smc_read(addr, size, s->regs[addr]); + trace_aspeed_smc_read(addr << 2, size, s->regs[addr]); =20 return s->regs[addr]; } else { @@ -1029,10 +1029,10 @@ static void aspeed_smc_write(void *opaque, hwaddr a= ddr, uint64_t data, AspeedSMCClass *asc =3D ASPEED_SMC_GET_CLASS(s); uint32_t value =3D data; =20 - addr >>=3D 2; - trace_aspeed_smc_write(addr, size, data); =20 + addr >>=3D 2; + if (addr =3D=3D s->r_conf || (addr >=3D s->r_timings && addr < s->r_timings + asc->nregs_timings) || --=20 2.31.1 From nobody Fri Dec 19 04:17:24 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1633362873052938.1196401893022; Mon, 4 Oct 2021 08:54:33 -0700 (PDT) Received: from localhost ([::1]:36222 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mXQIR-0000pP-Up for importer@patchew.org; Mon, 04 Oct 2021 11:54:32 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44470) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mXQAv-000118-AF for qemu-devel@nongnu.org; Mon, 04 Oct 2021 11:46:45 -0400 Received: from 7.mo552.mail-out.ovh.net ([188.165.59.253]:36509) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mXQAs-0001Cq-OK for qemu-devel@nongnu.org; Mon, 04 Oct 2021 11:46:45 -0400 Received: from mxplan5.mail.ovh.net (unknown [10.108.16.17]) by mo552.mail-out.ovh.net (Postfix) with ESMTPS id 2E12D21BD4; Mon, 4 Oct 2021 15:46:38 +0000 (UTC) Received: from kaod.org (37.59.142.98) by DAG4EX1.mxp5.local (172.16.2.31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.14; Mon, 4 Oct 2021 17:46:37 +0200 Authentication-Results: garm.ovh; auth=pass (GARM-98R002d00afd69-ff90-481c-b980-8ca82c3bad5c, 32296DFA07ABF8CFA5B750E6C0B5925FEAD98EF4) smtp.auth=clg@kaod.org X-OVh-ClientIp: 82.64.250.170 From: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= To: Peter Maydell Subject: [PATCH 3/4] aspeed/wdt: Add an alias for the MMIO region Date: Mon, 4 Oct 2021 17:46:34 +0200 Message-ID: <20211004154635.394258-4-clg@kaod.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211004154635.394258-1-clg@kaod.org> References: <20211004154635.394258-1-clg@kaod.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Originating-IP: [37.59.142.98] X-ClientProxiedBy: DAG7EX1.mxp5.local (172.16.2.61) To DAG4EX1.mxp5.local (172.16.2.31) X-Ovh-Tracer-GUID: 69f4c91a-2a74-40d1-9b49-03a19d521310 X-Ovh-Tracer-Id: 2440106575108737897 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: -100 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedvtddrudelvddgledtucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvufffkffojghfgggtgfhisehtkeertdertdejnecuhfhrohhmpeevrogurhhitgcunfgvucfiohgrthgvrhcuoegtlhhgsehkrghougdrohhrgheqnecuggftrfgrthhtvghrnhepheehfeegjeeitdfffeetjeduveejueefuefgtdefueelueetveeliefhhffgtdelnecukfhppedtrddtrddtrddtpdefjedrheelrddugedvrdelkeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhhouggvpehsmhhtphdqohhuthdphhgvlhhopehmgihplhgrnhehrdhmrghilhdrohhvhhdrnhgvthdpihhnvghtpedtrddtrddtrddtpdhmrghilhhfrhhomheptghlgheskhgrohgurdhorhhgpdhrtghpthhtoheptghlgheskhgrohgurdhorhhg Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=188.165.59.253; envelope-from=clg@kaod.org; helo=7.mo552.mail-out.ovh.net X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Andrew Jeffery , qemu-devel@nongnu.org, qemu-arm@nongnu.org, =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , Peter Delevoryas , Joel Stanley Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZM-MESSAGEID: 1633362876673100001 Initialize the region in the instance_init handler because we will want to link this region in the FMC object before the WDT object is realized. Cc: Peter Delevoryas Signed-off-by: C=C3=A9dric Le Goater --- include/hw/watchdog/wdt_aspeed.h | 1 + hw/watchdog/wdt_aspeed.c | 15 ++++++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/include/hw/watchdog/wdt_aspeed.h b/include/hw/watchdog/wdt_asp= eed.h index f945cd6c5833..008e7d9b498c 100644 --- a/include/hw/watchdog/wdt_aspeed.h +++ b/include/hw/watchdog/wdt_aspeed.h @@ -29,6 +29,7 @@ struct AspeedWDTState { =20 /*< public >*/ MemoryRegion iomem; + MemoryRegion iomem_alias; uint32_t regs[ASPEED_WDT_REGS_MAX]; =20 AspeedSCUState *scu; diff --git a/hw/watchdog/wdt_aspeed.c b/hw/watchdog/wdt_aspeed.c index 146ffcd71301..6426f3a77494 100644 --- a/hw/watchdog/wdt_aspeed.c +++ b/hw/watchdog/wdt_aspeed.c @@ -261,6 +261,16 @@ static void aspeed_wdt_timer_expired(void *dev) =20 #define PCLK_HZ 24000000 =20 +static void aspeed_wdt_instance_init(Object *obj) +{ + AspeedWDTState *s =3D ASPEED_WDT(obj); + + memory_region_init_io(&s->iomem, OBJECT(s), &aspeed_wdt_ops, s, + TYPE_ASPEED_WDT, ASPEED_WDT_REGS_MAX * 4); + memory_region_init_alias(&s->iomem_alias, OBJECT(s), + TYPE_ASPEED_WDT ".alias", + &s->iomem, 0, ASPEED_WDT_REGS_MAX * 4); +} static void aspeed_wdt_realize(DeviceState *dev, Error **errp) { SysBusDevice *sbd =3D SYS_BUS_DEVICE(dev); @@ -275,9 +285,7 @@ static void aspeed_wdt_realize(DeviceState *dev, Error = **errp) */ s->pclk_freq =3D PCLK_HZ; =20 - memory_region_init_io(&s->iomem, OBJECT(s), &aspeed_wdt_ops, s, - TYPE_ASPEED_WDT, ASPEED_WDT_REGS_MAX * 4); - sysbus_init_mmio(sbd, &s->iomem); + sysbus_init_mmio(sbd, &s->iomem_alias); } =20 static Property aspeed_wdt_properties[] =3D { @@ -301,6 +309,7 @@ static void aspeed_wdt_class_init(ObjectClass *klass, v= oid *data) static const TypeInfo aspeed_wdt_info =3D { .parent =3D TYPE_SYS_BUS_DEVICE, .name =3D TYPE_ASPEED_WDT, + .instance_init =3D aspeed_wdt_instance_init, .instance_size =3D sizeof(AspeedWDTState), .class_init =3D aspeed_wdt_class_init, .class_size =3D sizeof(AspeedWDTClass), --=20 2.31.1 From nobody Fri Dec 19 04:17:24 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1633363064488364.65245982022805; Mon, 4 Oct 2021 08:57:44 -0700 (PDT) Received: from localhost ([::1]:40470 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mXQLX-0003x3-ES for importer@patchew.org; Mon, 04 Oct 2021 11:57:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44578) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mXQB3-0001Ib-Lj; Mon, 04 Oct 2021 11:46:53 -0400 Received: from 5.mo552.mail-out.ovh.net ([188.165.45.220]:59343) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mXQAy-0001D9-Qj; Mon, 04 Oct 2021 11:46:53 -0400 Received: from mxplan5.mail.ovh.net (unknown [10.108.16.17]) by mo552.mail-out.ovh.net (Postfix) with ESMTPS id 9C4DB21C58; Mon, 4 Oct 2021 15:46:38 +0000 (UTC) Received: from kaod.org (37.59.142.98) by DAG4EX1.mxp5.local (172.16.2.31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.14; Mon, 4 Oct 2021 17:46:37 +0200 Authentication-Results: garm.ovh; auth=pass (GARM-98R002e0362ea3-083a-467b-ae6f-e00aaf0091e8, 32296DFA07ABF8CFA5B750E6C0B5925FEAD98EF4) smtp.auth=clg@kaod.org X-OVh-ClientIp: 82.64.250.170 From: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= To: Peter Maydell Subject: [PATCH 4/4] aspeed/smc: Improve support for the alternate boot function Date: Mon, 4 Oct 2021 17:46:35 +0200 Message-ID: <20211004154635.394258-5-clg@kaod.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211004154635.394258-1-clg@kaod.org> References: <20211004154635.394258-1-clg@kaod.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Originating-IP: [37.59.142.98] X-ClientProxiedBy: DAG7EX1.mxp5.local (172.16.2.61) To DAG4EX1.mxp5.local (172.16.2.31) X-Ovh-Tracer-GUID: 582b18ef-cded-48e6-97e6-9a46087718dd X-Ovh-Tracer-Id: 2440388051409275753 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: -100 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedvtddrudelvddgledtucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvufffkffojghfgggtgfhisehtkeertdertdejnecuhfhrohhmpeevrogurhhitgcunfgvucfiohgrthgvrhcuoegtlhhgsehkrghougdrohhrgheqnecuggftrfgrthhtvghrnhepheehfeegjeeitdfffeetjeduveejueefuefgtdefueelueetveeliefhhffgtdelnecukfhppedtrddtrddtrddtpdefjedrheelrddugedvrdelkeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhhouggvpehsmhhtphdqohhuthdphhgvlhhopehmgihplhgrnhehrdhmrghilhdrohhvhhdrnhgvthdpihhnvghtpedtrddtrddtrddtpdhmrghilhhfrhhomheptghlgheskhgrohgurdhorhhgpdhrtghpthhtoheptghlgheskhgrohgurdhorhhg Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=188.165.45.220; envelope-from=clg@kaod.org; helo=5.mo552.mail-out.ovh.net X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Andrew Jeffery , qemu-devel@nongnu.org, qemu-arm@nongnu.org, =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , Peter Delevoryas , Joel Stanley Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZM-MESSAGEID: 1633363066759100001 Map the WDT2 registers in the AST2600 FMC memory region by creating a local address space on top of WDT2 memory region. The model only implements the enable bit of the control register. The reload register uses a 0.1s unit instead of a 1us. Values are converted on the fly when doing the accesses. The restart register is the same. Cc: Peter Delevoryas Signed-off-by: C=C3=A9dric Le Goater --- include/hw/ssi/aspeed_smc.h | 3 ++ hw/arm/aspeed_ast2600.c | 2 + hw/ssi/aspeed_smc.c | 78 ++++++++++++++++++++++++++++++++++++- hw/ssi/trace-events | 1 + 4 files changed, 82 insertions(+), 2 deletions(-) diff --git a/include/hw/ssi/aspeed_smc.h b/include/hw/ssi/aspeed_smc.h index 75bc793bd269..ad3c80f2d809 100644 --- a/include/hw/ssi/aspeed_smc.h +++ b/include/hw/ssi/aspeed_smc.h @@ -76,6 +76,9 @@ struct AspeedSMCState { MemoryRegion *dram_mr; AddressSpace dram_as; =20 + AddressSpace wdt2_as; + MemoryRegion *wdt2_mr; + AspeedSMCFlash flashes[ASPEED_SMC_CS_MAX]; =20 uint8_t snoop_index; diff --git a/hw/arm/aspeed_ast2600.c b/hw/arm/aspeed_ast2600.c index 0384357a9510..2c53d77899a8 100644 --- a/hw/arm/aspeed_ast2600.c +++ b/hw/arm/aspeed_ast2600.c @@ -353,6 +353,8 @@ static void aspeed_soc_ast2600_realize(DeviceState *dev= , Error **errp) } =20 /* FMC, The number of CS is set at the board level */ + object_property_set_link(OBJECT(&s->fmc), "wdt2", OBJECT(&s->wdt[2].io= mem), + &error_abort); object_property_set_link(OBJECT(&s->fmc), "dram", OBJECT(s->dram_mr), &error_abort); if (!sysbus_realize(SYS_BUS_DEVICE(&s->fmc), errp)) { diff --git a/hw/ssi/aspeed_smc.c b/hw/ssi/aspeed_smc.c index 8a988c167604..1770985230b0 100644 --- a/hw/ssi/aspeed_smc.c +++ b/hw/ssi/aspeed_smc.c @@ -130,6 +130,8 @@ #define FMC_WDT2_CTRL_SINGLE_BOOT_MODE BIT(5) #define FMC_WDT2_CTRL_BOOT_SOURCE BIT(4) /* O: primary 1: alternate= */ #define FMC_WDT2_CTRL_EN BIT(0) +#define R_FMC_WDT2_RELOAD (0x68 / 4) +#define R_FMC_WDT2_RESTART (0x6C / 4) =20 /* DMA Control/Status Register */ #define R_DMA_CTRL (0x80 / 4) @@ -704,6 +706,54 @@ static void aspeed_smc_reset(DeviceState *d) s->snoop_dummies =3D 0; } =20 +#define ASPEED_WDT_RELOAD 0x04 +#define ASPEED_WDT_RESTART 0x08 +#define ASPEED_WDT_CTRL 0x0C + +static void aspeed_smc_wdt2_write(AspeedSMCState *s, uint32_t offset, + uint32_t value) +{ + MemTxResult result; + + address_space_stl_le(&s->wdt2_as, offset, value, MEMTXATTRS_UNSPECIFIE= D, + &result); + if (result !=3D MEMTX_OK) { + aspeed_smc_error("WDT2 write failed @%08x", offset); + return; + } +} + +static uint64_t aspeed_smc_wdt2_read(AspeedSMCState *s, uint32_t offset) +{ + MemTxResult result; + uint32_t value; + + value =3D address_space_ldl_le(&s->wdt2_as, offset, MEMTXATTRS_UNSPECI= FIED, + &result); + if (result !=3D MEMTX_OK) { + aspeed_smc_error("WDT2 read failed @%08x", offset); + return -1; + } + return value; +} + +static void aspeed_smc_wdt2_enable(AspeedSMCState *s, bool enable) +{ + uint32_t value; + + value =3D aspeed_smc_wdt2_read(s, ASPEED_WDT_CTRL); + if (value =3D=3D -1) { + return; + } + + value &=3D ~BIT(0); + value |=3D enable; + + aspeed_smc_wdt2_write(s, ASPEED_WDT_CTRL, value); + + trace_aspeed_smc_wdt2_enable(enable ? "en" : "dis"); +} + static uint64_t aspeed_smc_read(void *opaque, hwaddr addr, unsigned int si= ze) { AspeedSMCState *s =3D ASPEED_SMC(opaque); @@ -718,7 +768,6 @@ static uint64_t aspeed_smc_read(void *opaque, hwaddr ad= dr, unsigned int size) addr =3D=3D R_CE_CMD_CTRL || addr =3D=3D R_INTR_CTRL || addr =3D=3D R_DUMMY_DATA || - (aspeed_smc_has_wdt_control(asc) && addr =3D=3D R_FMC_WDT2_CTRL) || (aspeed_smc_has_dma(asc) && addr =3D=3D R_DMA_CTRL) || (aspeed_smc_has_dma(asc) && addr =3D=3D R_DMA_FLASH_ADDR) || (aspeed_smc_has_dma(asc) && addr =3D=3D R_DMA_DRAM_ADDR) || @@ -731,6 +780,10 @@ static uint64_t aspeed_smc_read(void *opaque, hwaddr a= ddr, unsigned int size) trace_aspeed_smc_read(addr << 2, size, s->regs[addr]); =20 return s->regs[addr]; + } else if (aspeed_smc_has_wdt_control(asc) && addr =3D=3D R_FMC_WDT2_C= TRL) { + return aspeed_smc_wdt2_read(s, ASPEED_WDT_CTRL); + } else if (aspeed_smc_has_wdt_control(asc) && addr =3D=3D R_FMC_WDT2_R= ELOAD) { + return aspeed_smc_wdt2_read(s, ASPEED_WDT_RELOAD) / 100000; } else { qemu_log_mask(LOG_UNIMP, "%s: not implemented: 0x%" HWADDR_PRIx "\= n", __func__, addr); @@ -1053,7 +1106,11 @@ static void aspeed_smc_write(void *opaque, hwaddr ad= dr, uint64_t data, } else if (addr =3D=3D R_DUMMY_DATA) { s->regs[addr] =3D value & 0xff; } else if (aspeed_smc_has_wdt_control(asc) && addr =3D=3D R_FMC_WDT2_C= TRL) { - s->regs[addr] =3D value & FMC_WDT2_CTRL_EN; + aspeed_smc_wdt2_enable(s, !!(value & FMC_WDT2_CTRL_EN)); + } else if (aspeed_smc_has_wdt_control(asc) && addr =3D=3D R_FMC_WDT2_R= ELOAD) { + aspeed_smc_wdt2_write(s, ASPEED_WDT_RELOAD, value * 100000); + } else if (aspeed_smc_has_wdt_control(asc) && addr =3D=3D R_FMC_WDT2_R= ESTART) { + aspeed_smc_wdt2_write(s, ASPEED_WDT_RESTART, value); } else if (addr =3D=3D R_INTR_CTRL) { s->regs[addr] =3D value; } else if (aspeed_smc_has_dma(asc) && addr =3D=3D R_DMA_CTRL) { @@ -1108,6 +1165,16 @@ static void aspeed_smc_dma_setup(AspeedSMCState *s, = Error **errp) TYPE_ASPEED_SMC ".dma-dram"); } =20 +static void aspeed_smc_wdt_setup(AspeedSMCState *s, Error **errp) +{ + if (!s->wdt2_mr) { + error_setg(errp, TYPE_ASPEED_SMC ": 'wdt2' link not set"); + return; + } + + address_space_init(&s->wdt2_as, s->wdt2_mr, TYPE_ASPEED_SMC ".wdt2"); +} + static void aspeed_smc_realize(DeviceState *dev, Error **errp) { SysBusDevice *sbd =3D SYS_BUS_DEVICE(dev); @@ -1189,6 +1256,11 @@ static void aspeed_smc_realize(DeviceState *dev, Err= or **errp) if (aspeed_smc_has_dma(asc)) { aspeed_smc_dma_setup(s, errp); } + + /* WDT2 support */ + if (aspeed_smc_has_wdt_control(asc)) { + aspeed_smc_wdt_setup(s, errp); + } } =20 static const VMStateDescription vmstate_aspeed_smc =3D { @@ -1208,6 +1280,8 @@ static Property aspeed_smc_properties[] =3D { DEFINE_PROP_BOOL("inject-failure", AspeedSMCState, inject_failure, fal= se), DEFINE_PROP_LINK("dram", AspeedSMCState, dram_mr, TYPE_MEMORY_REGION, MemoryRegion *), + DEFINE_PROP_LINK("wdt2", AspeedSMCState, wdt2_mr, + TYPE_MEMORY_REGION, MemoryRegion *), DEFINE_PROP_END_OF_LIST(), }; =20 diff --git a/hw/ssi/trace-events b/hw/ssi/trace-events index 612d3d6087aa..0de79bf9c6a5 100644 --- a/hw/ssi/trace-events +++ b/hw/ssi/trace-events @@ -9,6 +9,7 @@ aspeed_smc_dma_checksum(uint32_t addr, uint32_t data) "0x%0= 8x: 0x%08x" aspeed_smc_dma_rw(const char *dir, uint32_t flash_addr, uint32_t dram_addr= , uint32_t size) "%s flash:@0x%08x dram:@0x%08x size:0x%08x" aspeed_smc_write(uint64_t addr, uint32_t size, uint64_t data) "@0x%" PRIx= 64 " size %u: 0x%" PRIx64 aspeed_smc_flash_select(int cs, const char *prefix) "CS%d %sselect" +aspeed_smc_wdt2_enable(const char *prefix) "WDT2 is %sabled" =20 # npcm7xx_fiu.c =20 --=20 2.31.1