From nobody Sat May 4 16:56:28 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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; arc=pass (i=1dmarc=pass fromdomain=hensoldt-cyber.de) ARC-Seal: i=2; a=rsa-sha256; t=1606244019; cv=pass; d=zohomail.com; s=zohoarc; b=gXHnNT8SRgJpJ4KKJHhwY6afdNzd/DsqgBMyeg0P80LzGJSdEFXyLkC32t5DEWRB3m5JJfGRlmBLAotRb1NmYtyeZve+vUir8IVPNtzfbO+L4DgPupVcwEzT9FR4GRP6zS6eEs9CQXRObGHhQhqDYuEje9a4+yghfXr6Dgydqzw= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1606244019; h=Content-Type:Date:From:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:To; bh=4mglr0ae8u9yi2yOB7xgGgbLQ63WSG3tKA6hXyqd7d4=; b=V9eG/lj2TrmsZdl47zFK444NanJfGontIvXkAL+0CFM+yLKh2Ooi2U20AO9hodYkBxlx0ybUc3yXcAGaWOqvS7vSGDkCS6m5RmRCUtOAKAAZpordwEauoafRiCwb4h6+As9WcKGSyZ/ar1DTqxROAMcl8wlNP77B8n3kmUhhxgE= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; 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; arc=pass (i=1dmarc=pass fromdomain=hensoldt-cyber.de) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1606244018777419.4812301225961; Tue, 24 Nov 2020 10:53:38 -0800 (PST) Received: from localhost ([::1]:53792 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1khdRZ-0002Sd-1t for importer@patchew.org; Tue, 24 Nov 2020 13:53:37 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:54876) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1khbd0-0006hI-GO for qemu-devel@nongnu.org; Tue, 24 Nov 2020 11:57:19 -0500 Received: from mail-be0deu01on2070b.outbound.protection.outlook.com ([2a01:111:f400:7e23::70b]:1121 helo=DEU01-BE0-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1khbcw-0006qU-M1 for qemu-devel@nongnu.org; Tue, 24 Nov 2020 11:57:17 -0500 Received: from FRYP281MB0158.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:6::16) by FR2P281MB0025.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:11::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3611.9; Tue, 24 Nov 2020 16:52:07 +0000 Received: from FRYP281MB0158.DEUP281.PROD.OUTLOOK.COM ([fe80::e9c6:6b71:941f:670]) by FRYP281MB0158.DEUP281.PROD.OUTLOOK.COM ([fe80::e9c6:6b71:941f:670%9]) with mapi id 15.20.3611.013; Tue, 24 Nov 2020 16:52:07 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NzOohmgtgr8c++ck84Sh3ld6IE56k9Lf+hqPBBQJsDSdw0CP8dSECFRsrT2cfUFBUHJUaTbdF+ZV3pS0NoCglsa3WjtLE2VLoP4sbSDU6oCd2XRhOzpb8oJXEUShaL4VpUjDf7CWw8FmkPToI5DglcF47IBTS4agY4YhMeGJInSVSmWZqLl8Dpe5I2vI8+qZybwma1gFUh+h2EaVA4V+5cFaj011H6z1xzKq6AAu04Bzi8NyUU9HnURoyFp6FA0UrHqlsza4zIG7g3bCozOgm1adUO23mLgsRbXzT0Hc7QUgeD4N54PwNwdO1GQARGKn+zfFSCxbLUrK80qR/eyM3A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=4mglr0ae8u9yi2yOB7xgGgbLQ63WSG3tKA6hXyqd7d4=; b=NPaGpqR0zWurUn+J7HUvPYUB0SdcRmGmH8thGHirfR2Q/MkWbDmL0kLCeNr9Xz56M/j3QOsDXhTftJUe8zBX08nU1xQH0mVysPUqRsaX+8JXQyoRjpAk6L4EsSjH0BJlnPu54VzzZWX91kdDDKbUbgt07Lf/5yzGlfmYM01PpCLt3o3rrYWV2KlWAFGKFvvfgXuysHMVUS6oYuVnr7KNoxy9bdpKyauO4crcG1HqRKRb6Ow9SHOiH+SFlxvasi3m2fY4UDdW+4pY2zcvEivZOo0H9PKqMpAEyabND8nb4G0S9x5Jo9h99H7IYrIZ8zIaigpEnbt8O8w/cgJXvXSlYQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=hensoldt-cyber.de; dmarc=pass action=none header.from=hensoldt-cyber.de; dkim=pass header.d=hensoldt-cyber.de; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hensoldtcybermuc.onmicrosoft.com; s=selector1-hensoldtcybermuc-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=4mglr0ae8u9yi2yOB7xgGgbLQ63WSG3tKA6hXyqd7d4=; b=CCVwbxOjyMfJSTgNFiJFlX0O9Y9yePbBiC7wAU9Q71RNmTMyALql9RiQng7L05rlGTDW9YYO6qVJ3bt2JetBtud73BoMqUtur6Cnk+HBDE7ybCbLma6b6wA7FsLF355PyfxW/FEMpcyDYlHiq6emWNEzObiJ7Y1G3qVyx+WDCyxwUZ2YqokEiooZF3631ncxchJgOh9e5597fOqoJJy5tgxArOjYJLVYHxhsKR4ZY8o7uHrWEafuivREtWuFV0+R8GZBYpnhaeXmBJeErFO2BrQUoNo6doOXme0soUQTQXD/Px9tUfpM0pCUOaYUA9EPlm2CdLyiRy+02b4ND3r7uA== From: Michael Peter To: "qemu-devel@nongnu.org" Subject: [PATCH] Initialize Zynq7000 UART clocks on reset Thread-Topic: [PATCH] Initialize Zynq7000 UART clocks on reset Thread-Index: AQHWwoHQiM0NUtwtTU6wGSn3YTG5+w== Date: Tue, 24 Nov 2020 16:52:07 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: nongnu.org; dkim=none (message not signed) header.d=none;nongnu.org; dmarc=none action=none header.from=hensoldt-cyber.de; x-originating-ip: [2a01:c23:c428:4f00:4cf3:24f3:926f:c656] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: dd8c55c6-1172-4db0-6ebf-08d89099477f x-ms-traffictypediagnostic: FR2P281MB0025: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:820; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 3TwyTROXaGz0HxmHW25dr73JnUmv5GPhQYvB4XZEG1tgdAiZbFq/sEKVJRNTQfmq2INGRfoSBa1a/cSH4mB7Y3rIhprKHKQ7Z3M+6zhR7G9N1RAT1Ytye5ODGhSg6UVC2WdseT02nKsiUp+N6VMGAfI80JVVmGJsItlYwW2WYhWrtevFy/W9MKtxrFKKBeZEUGgFQ2w06VAYqcqgakWYdxNFLpS5AiRSDpAO2+JgOB4dj3eiPJVil+rimzD8T3RV/l/SWX8R/czRQ4nqOedl8HeetlBE+WJWGC7DXJGyT05XYlt/f5K2SgNnL+bIJGGVWO2QrMnFyzybzNncy5RRvg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:FRYP281MB0158.DEUP281.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(396003)(376002)(39830400003)(136003)(346002)(366004)(55016002)(6916009)(86362001)(8936002)(19627405001)(478600001)(2906002)(186003)(6506007)(66946007)(44832011)(7696005)(33656002)(8676002)(71200400001)(76116006)(83380400001)(91956017)(52536014)(66476007)(66446008)(9686003)(64756008)(5660300002)(66556008)(316002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: a1tXpJTckLPiASd0MrXoqKLIs51xX68ZDrRTWQh+5WUOSMGwATEPK7CFCC/5VGFPwwPRJwJQZVtQMseEuIBm/3PcauUGG8Dg41XZlmwde0Wsf21WqlbDGbZ0D6R0AvCt1kJjQ0kEPKjv7EkvLRJq6oVxPm38Af5J/r3wI8WAOe9SliziQO07J5Vl2pchXnGilCxgSxcHADNFTogoRWdA8MzcKX25Rm9kEBGNbh4xR6hewHA1Jq/xRAAw/nND1i/XIRlrRdY5eJaiV0GCXO05MgTKFsxmhNzIYZNtW5jT5egxRgxi8/JyR0FAqjl5Dxv5306CM2w6ysPUnVfTxs6pvuXdESBLUpT1J7Tk5C59shfF1gKX3FGTB6NOJ7qaJvkYcFNd2dIJDIe+oVSOFImStIdJ2Y+pCtFPY55xewagZzxmqqM1SgRfFk8hQjHTnNTOB0razktlwgiCMJSRkCuLSA== x-ms-exchange-transport-forked: True Content-Type: multipart/alternative; boundary="_000_FRYP281MB0158389968A2A1C231F3A585ABFB0FRYP281MB0158DEUP_" MIME-Version: 1.0 X-OriginatorOrg: hensoldt-cyber.de X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: FRYP281MB0158.DEUP281.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: dd8c55c6-1172-4db0-6ebf-08d89099477f X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Nov 2020 16:52:07.5759 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 77dfadea-3647-43b9-b48b-9c5540a475cd X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: fHEGO1TAu0CcIjozM//OirCPJCy+F1Hyg774v8U4tnv5jAUOV7XPo/azXo7ZqStxIkBC6MV9tGhEPtMySQ+7jYOkYQn05qYNGnsHJrybKhg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: FR2P281MB0025 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=2a01:111:f400:7e23::70b; envelope-from=michael.peter@hensoldt-cyber.de; helo=DEU01-BE0-obe.outbound.protection.outlook.com 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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Tue, 24 Nov 2020 13:52:37 -0500 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @hensoldtcybermuc.onmicrosoft.com) --_000_FRYP281MB0158389968A2A1C231F3A585ABFB0FRYP281MB0158DEUP_ Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Pass an additional argument to zynq_slcr_compute_clocks that indicates whet= her an reset-exit condition applies. If called from zynq_slcr_reset_exit, external clocks are assumed t= o be active, even if the device state indicates a reset state. Signed-off-by: Michael Peter Reviewed-by: Damien Hedde --- hw/misc/zynq_slcr.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/hw/misc/zynq_slcr.c b/hw/misc/zynq_slcr.c index a2b28019e3..073122b934 100644 --- a/hw/misc/zynq_slcr.c +++ b/hw/misc/zynq_slcr.c @@ -269,12 +269,12 @@ static uint64_t zynq_slcr_compute_clock(const uint64_= t periods[], * But do not propagate them further. Connected clocks * will not receive any updates (See zynq_slcr_compute_clocks()) */ -static void zynq_slcr_compute_clocks(ZynqSLCRState *s) +static void zynq_slcr_compute_clocks(ZynqSLCRState *s, bool ignore_reset) { uint64_t ps_clk =3D clock_get(s->ps_clk); /* consider outputs clocks are disabled while in reset */ - if (device_is_in_reset(DEVICE(s))) { + if (!ignore_reset && device_is_in_reset(DEVICE(s))) { ps_clk =3D 0; } @@ -305,7 +305,7 @@ static void zynq_slcr_propagate_clocks(ZynqSLCRState *s) static void zynq_slcr_ps_clk_callback(void *opaque) { ZynqSLCRState *s =3D (ZynqSLCRState *) opaque; - zynq_slcr_compute_clocks(s); + zynq_slcr_compute_clocks(s, false); zynq_slcr_propagate_clocks(s); } @@ -410,7 +410,7 @@ static void zynq_slcr_reset_hold(Object *obj) ZynqSLCRState *s =3D ZYNQ_SLCR(obj); /* will disable all output clocks */ - zynq_slcr_compute_clocks(s); + zynq_slcr_compute_clocks(s, false); zynq_slcr_propagate_clocks(s); } @@ -419,7 +419,7 @@ static void zynq_slcr_reset_exit(Object *obj) ZynqSLCRState *s =3D ZYNQ_SLCR(obj); /* will compute output clocks according to ps_clk and registers */ - zynq_slcr_compute_clocks(s); + zynq_slcr_compute_clocks(s, true); zynq_slcr_propagate_clocks(s); } @@ -558,7 +558,7 @@ static void zynq_slcr_write(void *opaque, hwaddr offset, case R_ARM_PLL_CTRL: case R_DDR_PLL_CTRL: case R_UART_CLK_CTRL: - zynq_slcr_compute_clocks(s); + zynq_slcr_compute_clocks(s, false); zynq_slcr_propagate_clocks(s); break; } -- 2.17.1 --_000_FRYP281MB0158389968A2A1C231F3A585ABFB0FRYP281MB0158DEUP_ Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
Pass an additional argument to zynq_slcr_compute_clocks that indicates whet= her an reset-exit condition
applies. If called from zynq_slcr_reset_exit, external clocks are assu= med to be active, even if the
device state indicates a reset state.

Signed-off-by: Michael Peter <michael.peter@hensoldt-cyber.de>
---
 hw/misc/zynq_slcr.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/hw/misc/zynq_slcr.c b/hw/misc/zynq_slcr.c
index a2b28019e3..073122b934 100644
--- a/hw/misc/zynq_slcr.c
+++ b/hw/misc/zynq_slcr.c
@@ -269,12 +269,12 @@ static uint64_t zynq_slcr_compute_clock(const ui= nt64_t periods[],
  * But do not propagate them further. Connected clocks
  * will not receive any updates (See zynq_slcr_compute_clocks())=
  */
-static void zynq_slcr_compute_clocks(ZynqSLCRState *s)
+static void zynq_slcr_compute_clocks(ZynqSLCRState *s, bool ignore_re= set)
 {
     uint64_t ps_clk =3D clock_get(s->ps_clk);
 
     /* consider outputs clocks are disabled while in r= eset */
-    if (device_is_in_reset(DEVICE(s))) {
+    if (!ignore_reset && device_is_in_reset(DEVICE(= s))) {
         ps_clk =3D 0;
     }
 
@@ -305,7 +305,7 @@ static void zynq_slcr_propagate_clocks(ZynqSLCRSta= te *s)
 static void zynq_slcr_ps_clk_callback(void *opaque)
 {
     ZynqSLCRState *s =3D (ZynqSLCRState *) opaque;
-    zynq_slcr_compute_clocks(s);
+    zynq_slcr_compute_clocks(s, false);
     zynq_slcr_propagate_clocks(s);
 }
 
@@ -410,7 +410,7 @@ static void zynq_slcr_reset_hold(Object *obj)
     ZynqSLCRState *s =3D ZYNQ_SLCR(obj);
 
     /* will disable all output clocks */
-    zynq_slcr_compute_clocks(s);
+    zynq_slcr_compute_clocks(s, false);
     zynq_slcr_propagate_clocks(s);
 }
 
@@ -419,7 +419,7 @@ static void zynq_slcr_reset_exit(Object *obj)
     ZynqSLCRState *s =3D ZYNQ_SLCR(obj);
 
     /* will compute output clocks according to ps_clk = and registers */
-    zynq_slcr_compute_clocks(s);
+    zynq_slcr_compute_clocks(s, true);
     zynq_slcr_propagate_clocks(s);
 }
 
@@ -558,7 +558,7 @@ static void zynq_slcr_write(void *opaque, hwaddr o= ffset,
     case R_ARM_PLL_CTRL:
     case R_DDR_PLL_CTRL:
     case R_UART_CLK_CTRL:
-        zynq_slcr_compute_clocks(s);
+        zynq_slcr_compute_clocks(s, false);
         zynq_slcr_propagate_clocks(s);
         break;
     }
--
2.17.1



--_000_FRYP281MB0158389968A2A1C231F3A585ABFB0FRYP281MB0158DEUP_--