From nobody Fri May 17 09:18:46 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+113215+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+113215+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1704431697998608.3623185006091; Thu, 4 Jan 2024 21:14:57 -0800 (PST) Return-Path: DKIM-Signature: a=rsa-sha256; bh=6hA9GgD3f/U280d9d3xn+JHdcc48YPnqW7Qi+PlC6ms=; c=relaxed/simple; d=groups.io; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:From:To:CC:Subject:Date:Message-ID:In-Reply-To:References:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Transfer-Encoding:Content-Type; s=20140610; t=1704431697; v=1; b=srO1wKBan8Ymy7wqcj5cfZu0tsB4GgbiBHYtMq9IUMoRTgoxbCNy36nxkjj43I27tRn7kqf0 Lgw7r5wk/+7Hj7+kQWaB6VUQbTs2hH1MqOnM0Qg9JR9XGZWzbRO1bDg8toWgARMsooJII9N4sdK n1f1bSvDNfdeVLW7eRMGsLAA= X-Received: by 127.0.0.2 with SMTP id Y5CEYY1788612xHtfR9vhdcM; Thu, 04 Jan 2024 21:14:57 -0800 X-Received: from NAM11-DM6-obe.outbound.protection.outlook.com (NAM11-DM6-obe.outbound.protection.outlook.com [40.107.223.119]) by mx.groups.io with SMTP id smtpd.web10.17602.1704431696899496959 for ; Thu, 04 Jan 2024 21:14:57 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bwOTwMxUYf1Yo8CGA/VvEEnOvQ7ptQQ7b319GTe73bbivzzw3E+qO+wh6cM+Sc1i4XyqI+qESO2UkO11nfl4JWqzBft0eSYGqjj5Z+CLBdcF+oPFCJ5JxkkfgP3gVv7uQAv7AD031soVQL7sXEY6PAtC0Zv+KFC4NXRZy9OhKqHa3wBS6JL1lRTTOSveXpp8Oi5TroiThRZGBxbUSstZhxTSItEJ0Pzl95wkCLlgdWPNiSurDdpZHyMlto8D0dsQyn2y6/b/Ys9HHOT+ahj5/2IqHdsyPn9i/QmZFq7Ctz6H6h+2kOPpw8h4spABxqlTde5JWJb6dRWyi7WpXfUVMA== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=edg+E29QxWF3spqjjU2jQIKH56onX1yDH0xyJXtyKNI=; b=R9emANVXl2Jj0aKcTzgEwTmD2XVJtk4zLr8Kkq82teukGMoP5oa1Fjc8w5tbIV+4lRNovSAOGiu6xzMkKMEBTHb4paWAL9jerVQLlzKf3UpyXf5Ah4k/ZYQwBe6w7pdWZAqSjTG9cQAJSjW8hvbKA5inqNuOEHvX/bQQeLQ1OpnQNxlZWYxkefsG1kqPoDhvvMf30D6cpmTQlaOpSfSyma9E4F6B6AnB+7YBNDIDkSDAgypQUAiuFTHlbgf1imws1WUYKVtnYXEckM668XtoQJX18n2aUAKEUTfwa9O4nE9Xmn8NdXyvj3ziTvYa0D/PGWvK8A4Mr8HVp+pOeusA6Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=os.amperecomputing.com; dmarc=pass action=none header.from=os.amperecomputing.com; dkim=pass header.d=os.amperecomputing.com; arc=none X-Received: from LV3PR01MB8464.prod.exchangelabs.com (2603:10b6:408:1a3::7) by SA1PR01MB7294.prod.exchangelabs.com (2603:10b6:806:1f5::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7159.15; Fri, 5 Jan 2024 05:14:54 +0000 X-Received: from LV3PR01MB8464.prod.exchangelabs.com ([fe80::7748:d4a3:bcd9:14c1]) by LV3PR01MB8464.prod.exchangelabs.com ([fe80::7748:d4a3:bcd9:14c1%6]) with mapi id 15.20.7159.013; Fri, 5 Jan 2024 05:14:54 +0000 From: "Rebecca Cran via groups.io" To: Leif Lindholm , Ard Biesheuvel , Sami Mujawar CC: Rebecca Cran , devel@edk2.groups.io Subject: [edk2-devel] [PATCH v3 1/3] ArmPkg: Update GenericWatchdogDxe to allow setting full 48-bit offset Date: Thu, 4 Jan 2024 22:14:28 -0700 Message-ID: <20240105051430.465510-2-rebecca@os.amperecomputing.com> In-Reply-To: <20240105051430.465510-1-rebecca@os.amperecomputing.com> References: <20240105051430.465510-1-rebecca@os.amperecomputing.com> X-ClientProxiedBy: CH2PR02CA0027.namprd02.prod.outlook.com (2603:10b6:610:4e::37) To LV3PR01MB8464.prod.exchangelabs.com (2603:10b6:408:1a3::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LV3PR01MB8464:EE_|SA1PR01MB7294:EE_ X-MS-Office365-Filtering-Correlation-Id: d0ec9bfb-361b-4e36-6512-08dc0dad4075 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Message-Info: nYJQK1VorBz0exvjGZqmwBSjZXXenQJIhWvpTTrQ4/7d1dY4+Nzq6rcuAcufy7/pSbdOZyYuXeJzStKwga17qppj2gVL+ic/IlQRE1zzO+mUid6bx7YTwQHWxw2C5g9Xdfl18PHQTkVGNMObDR/NEiCojWqFieXlKKjXC+ypDwH3/+zmkHf8OS+rZ1nYv6BhGyR9pfoEc+dG4U6TCBr8bdt6BE4LMm0GZJz9JAfMmDIjTqmxRPjDxEgwV7OZdqw5IKVROaOKRiQT4uvinRV8wybp6lMqwSOadXeSFBcF7oQhF9WlINRBr7UC5jgBKxHA9rC1P6EUlJtw2MXimGmYWH+GibETKgPGx3HZ7PFJBsQRcFGMgT43IPpqoEVLWbMlbKnuC7MipYKcLDlJXVTL+7UZToHxq/zz12WVYAXDk4smU3kiLuZuvj+Pfdh0dFoHjpBMR9NFfOTPSH4OIjLwo84y5509t31cMNZAJCNDg8PgjrSyJVcZHOp5hBKPcBM0HDPbH+6wqZGVnheR35AWWhn0Rv+nC+r0CNbkGs72YchTB8HOyLd4DGMbwkiV5uqtGobhCMJQ2a4DvXBPaDHZBeZiErQYGajuj8QnbulF3h8= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?wbI2U27QwKB7PMuy2vv/azU3nkGz7a4FtZukUoRtJQZiBSzKfJU7tOuL5BkD?= =?us-ascii?Q?i+Aq39ENtuzVz+FCXJVHb3JfvV9jiS9NhuhRCj8yru0kL4qHYWka9ZoGYH+A?= =?us-ascii?Q?/7HSy4Ho2f151yhb3df3t55SKfRJs0tFTOj/9yNltn1g7HHItoZsKI89Ss58?= =?us-ascii?Q?03XePw33Y6Sv7REHG2UTdZArlGcspEmnNUMcCaFoP8Y3vnHpI0gP5qFS9k2U?= =?us-ascii?Q?uIjbzzm0jiT1OOYNhH1naBKdl4ItUhDYoi+KPW5mii0VEaZtcPKK7b/gaTWQ?= =?us-ascii?Q?rhLSavaBkakdAd755LJHWGIgtl9PQXEJiN+34oQ45pMGmpHAtIz4fNdyRHSy?= =?us-ascii?Q?CXyRq+XHn4Z2yiaPjOfVpHUbNfxbS2wX3c2aFM4M2pcuBytfWE2dOODrMqff?= =?us-ascii?Q?+SGA7TFgSAtHBR//vqJlJOJmkebl5HrSepC7ny3bRTCQH/aPqEiwKnS7WIV4?= =?us-ascii?Q?FT7XJ7BZgaW5yGNE2Kp6HU2IMN2KEWcgDVJ1u4OOE45ug9SvW4nyO0O2gGgQ?= =?us-ascii?Q?YIBeqjPODsgGEgdmV3luJqTW+9Aq/2bUB5dBuS+m6k7OfNfO2m3MlGZmYwI6?= =?us-ascii?Q?OKYbK5QIazHhMjbL5HFYeNTOy3fKZkgAGj5LWWkUGTC05BeCmVgSvPBaotGA?= =?us-ascii?Q?nIEgzghnn+6K5bB4uOkvNEoNml2ohWJ1WNvKSKmWPsUaw5OhmBkn3WEFX6Oi?= =?us-ascii?Q?mbNivY505jLjHV0Qq3djvSZmnrgIaO90y38J3Gi0tBy2Jq8StF1OY7+cMat9?= =?us-ascii?Q?92cbu3bqJVVPMffd2vg7sdjQgScWeJpeQOJWBRMaG8jE2pw2Ohw91wyMy6Cr?= =?us-ascii?Q?dKcaWdbMbmzgGn6ZU2uwCogZiLe7kKQsgd2zsBXAnlznALsAIoNkY0oKiTU/?= =?us-ascii?Q?g4xSslIcS70MNyvQFIqsKiEjeNFiEjWeYFHcoL+NJDVEaIPLd+yGNTu/6oDU?= =?us-ascii?Q?C3EDH4FC6BYuCOP5prO3YthpyvcffLDCumqbX7Ha6SS/RntUPqHCEEjyG5q9?= =?us-ascii?Q?TY8s+TRtV3nn0sEOLqg8nPpiuxbSSnmr6GhmbZtKLcfQpPaKoiYbW6kPYmf3?= =?us-ascii?Q?XfhDzkRsHRIitoftfZPbj2E2zoSOG+eUYPv6YmGhZuAOjMSTKAjWUZkBlHEX?= =?us-ascii?Q?fM2ogWsVae+drL7SLD1Wy6iRii8IRbawZDHycka/CPMGcM8QV19usIVKmN4Q?= =?us-ascii?Q?bInI2gUjP/kRIqMrZK+lKkxc4SAtjI0Y5uqS619Ytp9Zvm21ebJ4Pq1tSCE1?= =?us-ascii?Q?dZOmEs9AJw9ZfJ1fe5pjL8KCbsA6NOOBvOMQGDXeUXhjIblqmphm/03MkrDc?= =?us-ascii?Q?m/aNwwffgaBLGCzT2T9MPNCLtAWnmImPYhvmUTTqxeFmW/SEM9eBnYgQQUFV?= =?us-ascii?Q?6xu6VDpJwKQBYISq/+dwdQpGB+8jc9skBZ1dWvA1Zt7Bj4eS/YaZIxql01os?= =?us-ascii?Q?W86ejQEijn7UXnmuYIGzG4wmwkRLed+ucc+epnKreVjRexh7A6WQpEgD6N8v?= =?us-ascii?Q?sBQ5j9eJVQMtbxUZ358agIAVcw+bfN1kcXdli6mPMNO0WFxG1N06wcS4EJN9?= =?us-ascii?Q?Uf0V1pfxZst8e8JURwIXe57rh719M6lRzdNBO1D+YrLfpDYdepT0WLaq6j7n?= =?us-ascii?Q?xvGRcHkVcIXDZdGOXb3edps=3D?= X-OriginatorOrg: os.amperecomputing.com X-MS-Exchange-CrossTenant-Network-Message-Id: d0ec9bfb-361b-4e36-6512-08dc0dad4075 X-MS-Exchange-CrossTenant-AuthSource: LV3PR01MB8464.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jan 2024 05:14:54.2632 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3bc2b170-fd94-476d-b0ce-4229bdc904a7 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: caStonulxz76xgZt4J79kA/hmUHllOMVv42lVqJ0p61zIUubKZ7IrCYMRtZsLKsGP3thf5Ja/AIlwEUyTKB7vqfuxCnss6TIAd1Ra+EuqZvTvVReNMap2xet9pUCAfLD X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR01MB7294 Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,rebecca@os.amperecomputing.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: MzNNr8cKr3qEFBiIywrUuT00x1787277AA= Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1704431698749100003 Content-Type: text/plain; charset="utf-8" The generic watchdog offset register is 48 bits wide, and can be set by performing two 32-bit writes. Add support for writing the high 16 bits of the offset register and update the signature of the WatchdogWriteOffsetRegister function to take a UINT64 value. Signed-off-by: Rebecca Cran --- ArmPkg/Drivers/GenericWatchdogDxe/GenericWatchdog.h | 6 +++++- ArmPkg/Drivers/GenericWatchdogDxe/GenericWatchdogDxe.c | 14 +++++++++----- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/ArmPkg/Drivers/GenericWatchdogDxe/GenericWatchdog.h b/ArmPkg/D= rivers/GenericWatchdogDxe/GenericWatchdog.h index 9bc3bf47047c..2a0634e7e9f1 100644 --- a/ArmPkg/Drivers/GenericWatchdogDxe/GenericWatchdog.h +++ b/ArmPkg/Drivers/GenericWatchdogDxe/GenericWatchdog.h @@ -1,9 +1,12 @@ /** @file * +* Copyright (c) 2023, Ampere Computing LLC. All rights reserved.
* Copyright (c) 2013-2017, ARM Limited. All rights reserved. * * SPDX-License-Identifier: BSD-2-Clause-Patent * +* See Generic Watchdog specification in Arm Base System Architecture 1.0C: +* https://developer.arm.com/documentation/den0094/c/ **/ =20 #ifndef GENERIC_WATCHDOG_H_ @@ -14,7 +17,8 @@ =20 // Control Frame: #define GENERIC_WDOG_CONTROL_STATUS_REG ((UINTN)FixedPcdGet64 (PcdGen= ericWatchdogControlBase) + 0x000) -#define GENERIC_WDOG_OFFSET_REG ((UINTN)FixedPcdGet64 (PcdGen= ericWatchdogControlBase) + 0x008) +#define GENERIC_WDOG_OFFSET_REG_LOW ((UINTN)FixedPcdGet64 (PcdGen= ericWatchdogControlBase) + 0x008) +#define GENERIC_WDOG_OFFSET_REG_HIGH ((UINTN)FixedPcdGet64 (PcdGen= ericWatchdogControlBase) + 0x00C) #define GENERIC_WDOG_COMPARE_VALUE_REG_LOW ((UINTN)FixedPcdGet64 (PcdGen= ericWatchdogControlBase) + 0x010) #define GENERIC_WDOG_COMPARE_VALUE_REG_HIGH ((UINTN)FixedPcdGet64 (PcdGen= ericWatchdogControlBase) + 0x014) =20 diff --git a/ArmPkg/Drivers/GenericWatchdogDxe/GenericWatchdogDxe.c b/ArmPk= g/Drivers/GenericWatchdogDxe/GenericWatchdogDxe.c index 66c6c37c08b0..f8c39458a53a 100644 --- a/ArmPkg/Drivers/GenericWatchdogDxe/GenericWatchdogDxe.c +++ b/ArmPkg/Drivers/GenericWatchdogDxe/GenericWatchdogDxe.c @@ -1,5 +1,6 @@ /** @file * +* Copyright (c) 2023, Ampere Computing LLC. All rights reserved.
* Copyright (c) 2013-2018, ARM Limited. All rights reserved. * * SPDX-License-Identifier: BSD-2-Clause-Patent @@ -35,16 +36,19 @@ STATIC UINTN mTimerFrequencyHz =3D 0; It is therefore stored here. 0 means the timer is not running. */ STATIC UINT64 mNumTimerTicks =3D 0; =20 +#define MAX_UINT48 0xFFFFFFFFFFFFULL + STATIC EFI_HARDWARE_INTERRUPT2_PROTOCOL *mInterruptProtocol; STATIC EFI_WATCHDOG_TIMER_NOTIFY mWatchdogNotify; =20 STATIC VOID WatchdogWriteOffsetRegister ( - UINT32 Value + UINT64 Value ) { - MmioWrite32 (GENERIC_WDOG_OFFSET_REG, Value); + MmioWrite32 (GENERIC_WDOG_OFFSET_REG_LOW, Value & MAX_UINT32); + MmioWrite32 (GENERIC_WDOG_OFFSET_REG_HIGH, (Value >> 32) & MAX_UINT16); } =20 STATIC @@ -211,17 +215,17 @@ WatchdogSetTimerPeriod ( /* If the number of required ticks is greater than the max the watchdog's offset register (WOR) can hold, we need to manually compute and set the compare register (WCV) */ - if (mNumTimerTicks > MAX_UINT32) { + if (mNumTimerTicks > MAX_UINT48) { /* We need to enable the watchdog *before* writing to the compare regi= ster, because enabling the watchdog causes an "explicit refresh", which clobbers the compare register (WCV). In order to make sure this doe= sn't trigger an interrupt, set the offset to max. */ - WatchdogWriteOffsetRegister (MAX_UINT32); + WatchdogWriteOffsetRegister (MAX_UINT48); WatchdogEnable (); SystemCount =3D ArmGenericTimerGetSystemCount (); WatchdogWriteCompareRegister (SystemCount + mNumTimerTicks); } else { - WatchdogWriteOffsetRegister ((UINT32)mNumTimerTicks); + WatchdogWriteOffsetRegister (mNumTimerTicks); WatchdogEnable (); } =20 --=20 2.34.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#113215): https://edk2.groups.io/g/devel/message/113215 Mute This Topic: https://groups.io/mt/103538115/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Fri May 17 09:18:46 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+113216+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+113216+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1704431698612810.211920592655; Thu, 4 Jan 2024 21:14:58 -0800 (PST) Return-Path: DKIM-Signature: a=rsa-sha256; bh=8AB2W7RGF3SgFHxrrbiyoH9gPEbwcPf7SZLSI2YD4eU=; c=relaxed/simple; d=groups.io; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:From:To:CC:Subject:Date:Message-ID:In-Reply-To:References:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Transfer-Encoding:Content-Type; s=20140610; t=1704431698; v=1; b=eGVj40kCRTckREaMo6+wX5ZywFfUYvaxcEj8v24mXrWiqd1jkZQWTL90P93rj5HLBy77XzHl IV29AeaLQ+yw+w5V83Lp4OuFdYtBKj8RfptNRb0ZzObrVzAOse4UpUezZO8ym35Gn/dOsKYIG3X y5tLjYL7q6rMZHoabWWDj+m0= X-Received: by 127.0.0.2 with SMTP id fZSQYY1788612xr0n2tKgIw6; Thu, 04 Jan 2024 21:14:58 -0800 X-Received: from NAM11-DM6-obe.outbound.protection.outlook.com (NAM11-DM6-obe.outbound.protection.outlook.com [40.107.223.119]) by mx.groups.io with SMTP id smtpd.web10.17602.1704431696899496959 for ; Thu, 04 Jan 2024 21:14:57 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dxDPQEvQw0rkJzgLnGTN45JVIsw5Ug103c3TDj7yUP9tDwQ3fLGoX2PZD9XPlGZQxtq/minTgeDtPALioqy2pwA4HRLLfMgK+DOtFPyvycSR1o2TsK5TkJhjGBlvUyi7gZH6NiUrm0Bq+Ev1X7P/+AB77L2dF+YyBSJsxE2deOZ66g1zXuapGnGS+Rj8qsLk/wO6zPRrVxad/3JLHzhAIe9I0JE6Z7KoR+bHfAgnRT46rIxCEbcQBJ2PRYrlUBjXCvjx6ofnCsamkEpL1qZ/XtHYb7wsDhzuyI2cI8o35ufXiq9kHlZ0LG+c/pzYQ+GY9a18QYTNHAT6K6nnluMrWg== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=xwJ8IipegShrnoAdJdYvU9sKddOn4A+gUtKhprV26LM=; b=HGMbiYlYXnFsPFaMxQXF6puqG7oHqynVi85UMcfSr0RNcLSbQjGaWDwNYXFLjUAJRGMqfgZVwlwI+Gsq4B+lGm9WSgO9old18EX2B7qo8MruLghKITzU3SixaVH/gv3S+sXb86B5qBEfLlobenmFUkYEyCGrCQV3v72o6L96uFkZH4ZGOGjlhgRSQS3ujL1iW0h8DzX4PUjUREkISRqJsSVRDyn0dKdjsCf4+/laxiJKBxt9R8VIDWCFWLViouc+cKVVE2UctNz/scfobPyz92v+yYp1ZiCPn9hoKmpEFVx1cM8ywDjPT4YrNhW82DK4DfG7Erp1jtlCAvYRu6FYyg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=os.amperecomputing.com; dmarc=pass action=none header.from=os.amperecomputing.com; dkim=pass header.d=os.amperecomputing.com; arc=none X-Received: from LV3PR01MB8464.prod.exchangelabs.com (2603:10b6:408:1a3::7) by SA1PR01MB7294.prod.exchangelabs.com (2603:10b6:806:1f5::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7159.15; Fri, 5 Jan 2024 05:14:54 +0000 X-Received: from LV3PR01MB8464.prod.exchangelabs.com ([fe80::7748:d4a3:bcd9:14c1]) by LV3PR01MB8464.prod.exchangelabs.com ([fe80::7748:d4a3:bcd9:14c1%6]) with mapi id 15.20.7159.013; Fri, 5 Jan 2024 05:14:54 +0000 From: "Rebecca Cran via groups.io" To: Leif Lindholm , Ard Biesheuvel , Sami Mujawar CC: Rebecca Cran , devel@edk2.groups.io Subject: [edk2-devel] [PATCH v3 2/3] ArmPkg: Introduce global mTimerPeriod and remove calculation Date: Thu, 4 Jan 2024 22:14:29 -0700 Message-ID: <20240105051430.465510-3-rebecca@os.amperecomputing.com> In-Reply-To: <20240105051430.465510-1-rebecca@os.amperecomputing.com> References: <20240105051430.465510-1-rebecca@os.amperecomputing.com> X-ClientProxiedBy: CH2PR02CA0027.namprd02.prod.outlook.com (2603:10b6:610:4e::37) To LV3PR01MB8464.prod.exchangelabs.com (2603:10b6:408:1a3::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LV3PR01MB8464:EE_|SA1PR01MB7294:EE_ X-MS-Office365-Filtering-Correlation-Id: 4a90ef2b-a3fa-44b5-b19d-08dc0dad40c1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Message-Info: uuqeaTIUP/JuuaNMz9nRisXhQhcn8qpYJ7WoaziXoMlOHsNVIrJNzIKrzfbH/aYpzhpK6L+eB4iXU0zv+k/a2/CP1LoAwPzxTfT424LyTHIsRZ6ZbX5B+LW/V+AMypSZDHG7G+TnUrOX31ArxSvyHfeX6tOtGB0Wd1UxAuvcKxKf8tApQm2UIpOQKgEwn/0yBmIDJthFIi0hAoYYFnZVqtjwC6vJj5N8FGkXacCsuxPB/MJ3PS06mkbgKvMdbqAakGQcSvZ5DaMlHW2ZUdox/+gL6AHudiaLTlS98Zu+J5hIHMuWAAzmLOfogTzXWxGL3mVbghJHsHf2x9fGaL64NGLmoAHzBvppb+vmTG398AKPBL+c8MM7jX3ARn9rweJceH1bboO0C/wWQnP/Q+lfarY31RbZHI3MtHzWceyf1s0dR1scGRtVUdXthhMaKu0SBItW6Kf+39fQAgvp1uUrwN+8kgMOfs1Zv629k6Gg1pdb/raiIVz1zZzSLibqWbq3GUnhFeRBIVgwtzIDO69cjJrEsznJqa5JjX+rOtAIp9yuAxfwO0qrAqT8Hn2IVsYuzfuFW6ph3qoa5fi26kxArUSIUeVkt2xRViMRSvyszkXQZZtEKcKY2e3/LYrA3nco X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?2MP1j7t4lH4sJnzJMueCtw2kWrZ1G1VRpwhwdZ/y6YtyLBdZ6tH13otYVJa9?= =?us-ascii?Q?TyYT8GRwdaok4uLl8ZafSVBvTlcnQvDnXmphMyLx285LxLH9xQHyq35pkaY2?= =?us-ascii?Q?6a5VPUOyGupnb8w5dO9G/+YHHXCfwNPR0ij4P+PlLI4uFDMpkNPIki790MtT?= =?us-ascii?Q?xvcpVXjqX4WIidJWEDIPBZ4rpg7I144nIRYKD4pNLlHZynLeYtOmOq34gs1f?= =?us-ascii?Q?gopXWcBqcV3zNYC2dyIaP+lfgaxKgdxVua8wELAewgkKi8oMG+oJevtpQjKg?= =?us-ascii?Q?m+0wRezkuJGcNrjlfBctW45TVH0V2kIjhGFzaODcCtJ+1lwspreFpHAcog8H?= =?us-ascii?Q?bpaPOH+A62Q4Pn9xs8oFOoChAlaX7q7xcYiYmhpfryfQs/Sk4KUmLQU5Hzfq?= =?us-ascii?Q?XDUztX7TGBQiEn3ngiWPZ8EMxE19lsxrNZGu3QqFCTMnS/6meAg1uQ8r8Wld?= =?us-ascii?Q?CESOz2v7UQiBN5/YRw8K93eD5LNhgxyGGZYGE0bIcn1MDQfodoxQb5AGN1tt?= =?us-ascii?Q?PekHq1LvOJjkFXOx6Ban7/9c+VxSnb5lNIMcwcpwOUQM1Et2P2UCoUWVmZdm?= =?us-ascii?Q?oc4mlJfpfY7TCDQyfZgpqrLAlgYJd3+caa+oj7UbDSdPKS2by0JStF3/TnMj?= =?us-ascii?Q?P46bENWqylH2Z0wnelBVtrtpwCiGbENxWqAzxek0jV6CM63VzMYyJBXyWX5t?= =?us-ascii?Q?XB8qHuA/M2HXsnH6fzMDpOqPy4cs0TazZu35A8/LEZO5ZxBZkIowN6sUe98s?= =?us-ascii?Q?x4YJ87+zBms1udHoT5116pq8z9qJLALl238NaZ1aSdRx7o1UYSRsda8HVrKP?= =?us-ascii?Q?qXiayZVYTyGkUHc6dptlILFKBIQfxfYS26t11G2j//BQOBGO+4IPZ+SBDYn7?= =?us-ascii?Q?KTmOtWJMnTjpMf2AwGKDfOSaMfCbMvPu8BJOYAvtYAreCeogsIZkrODl2usy?= =?us-ascii?Q?wFxLDBwtfKRJ4E3mrCHEDhe8G9gu11o7LUkzgGTNWw2XlPTUrLuSf9DTNtLX?= =?us-ascii?Q?IZRn6gDaz39Uuvem3Smor0PirkbhtB9/3YZ9/FQ8XRUCo2ujhxhFu+jIbij4?= =?us-ascii?Q?dCRRdrg6oc1letUOi2dNyCPHy9eApT0QHhq/qnu3fqR0dv15d8P8XC6mfgdt?= =?us-ascii?Q?VyEMHfo3Zo+/LegzI28u35uUYTjE4cQVwJL1wqAXkyNIx4e1LzxTXX3r+xwE?= =?us-ascii?Q?EXizY7tyKaLm1wQsybGNErqjjCi5a7CRVR/I6toMU+WQMeki2HVTWm+hfbHc?= =?us-ascii?Q?sQy2fi+JMK9pR+FlNPnihdSVRh/dXOUtvcnChI9XzJsmlUSha4wTSEICgqsy?= =?us-ascii?Q?q98TGOfrsMe80axvydnqaF9rlx6tSV1cVhOOz1GziEKOUBLhFdy9IUVs4vmy?= =?us-ascii?Q?MNDJbVZtE9HDkI78KQPHt5at1YrjhF4d8VZoX398HSf8QKQ1g97vHeoUGZ+a?= =?us-ascii?Q?HOZuKttgN1gXlaEPHK2SxGsbRP+z2CvibWld0rp3iYD3Vwd7nEWzgt3BgdOM?= =?us-ascii?Q?fVQXlYrIXB2Ylm727WiwuvzIsCWUl/j15RMgZY28gzGqOz4o4rG+dkv0asKk?= =?us-ascii?Q?LbL+R2HhS/g4+84lxv93tWr/p/9nYm/TaO9jAdUBwcOrMT2OU/G8HtodEuRf?= =?us-ascii?Q?5b9jVOaON96yQ+FJtSCTFAk=3D?= X-OriginatorOrg: os.amperecomputing.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4a90ef2b-a3fa-44b5-b19d-08dc0dad40c1 X-MS-Exchange-CrossTenant-AuthSource: LV3PR01MB8464.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jan 2024 05:14:54.7679 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3bc2b170-fd94-476d-b0ce-4229bdc904a7 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: zLKDaNSfXbGGpE7XJSkKrSqk/RGizBVvRcQzNZMZx/ejqW2MTUHaCbx/8eegqCubHKOIgbzPHWyNiI0XPFSGIqYghwE6w2sxkNfcEodX8EovIMUdWi+wUP7snEe1rPfo X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR01MB7294 Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,rebecca@os.amperecomputing.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: VA9suARO4ggquF9ju35iuM93x1787277AA= Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1704431700922100011 Content-Type: text/plain; charset="utf-8" The calculation of the timer period was broken. Introduce a global mTimerPeriod so the calculation can be removed. Since mTimerFrequencyHz is only used in one place, remove the global and make it a local variable. Do the same with mNumTimerTicks. Signed-off-by: Rebecca Cran Reviewed-by: Sami Mujawar --- ArmPkg/Drivers/GenericWatchdogDxe/GenericWatchdogDxe.c | 36 ++++++++++++++= ---------------- 1 file changed, 17 insertions(+), 19 deletions(-) diff --git a/ArmPkg/Drivers/GenericWatchdogDxe/GenericWatchdogDxe.c b/ArmPk= g/Drivers/GenericWatchdogDxe/GenericWatchdogDxe.c index f8c39458a53a..78cee62a19d6 100644 --- a/ArmPkg/Drivers/GenericWatchdogDxe/GenericWatchdogDxe.c +++ b/ArmPkg/Drivers/GenericWatchdogDxe/GenericWatchdogDxe.c @@ -28,13 +28,10 @@ in a second */ #define TIME_UNITS_PER_SECOND 10000000 =20 -// Tick frequency of the generic timer basis of the generic watchdog. -STATIC UINTN mTimerFrequencyHz =3D 0; - /* In cases where the compare register was set manually, information about how long the watchdog was asked to wait cannot be retrieved from hardwa= re. It is therefore stored here. 0 means the timer is not running. */ -STATIC UINT64 mNumTimerTicks =3D 0; +STATIC UINT64 mTimerPeriod =3D 0; =20 #define MAX_UINT48 0xFFFFFFFFFFFFULL =20 @@ -91,7 +88,8 @@ WatchdogExitBootServicesEvent ( ) { WatchdogDisable (); - mNumTimerTicks =3D 0; + mTimerPeriod =3D 0; + mExitedBootServices =3D TRUE; } =20 /* This function is called when the watchdog's first signal (WS0) goes hig= h. @@ -106,7 +104,6 @@ WatchdogInterruptHandler ( ) { STATIC CONST CHAR16 ResetString[] =3D L"The generic watchdog timer ran = out."; - UINT64 TimerPeriod; =20 WatchdogDisable (); =20 @@ -119,8 +116,7 @@ WatchdogInterruptHandler ( // the timer period plus 1. // if (mWatchdogNotify !=3D NULL) { - TimerPeriod =3D ((TIME_UNITS_PER_SECOND / mTimerFrequencyHz) * mNumTim= erTicks); - mWatchdogNotify (TimerPeriod + 1); + mWatchdogNotify (mTimerPeriod + 1); } =20 gRT->ResetSystem ( @@ -200,22 +196,27 @@ WatchdogSetTimerPeriod ( IN UINT64 TimerPeriod // In 100ns un= its ) { - UINTN SystemCount; + UINTN SystemCount; + UINT64 TimerFrequencyHz; + UINT64 NumTimerTicks; =20 // if TimerPeriod is 0, this is a request to stop the watchdog. if (TimerPeriod =3D=3D 0) { - mNumTimerTicks =3D 0; + mTimerPeriod =3D 0; WatchdogDisable (); return EFI_SUCCESS; } =20 // Work out how many timer ticks will equate to TimerPeriod - mNumTimerTicks =3D (mTimerFrequencyHz * TimerPeriod) / TIME_UNITS_PER_SE= COND; + TimerFrequencyHz =3D ArmGenericTimerGetTimerFreq (); + ASSERT (TimerFrequencyHz !=3D 0); + mTimerPeriod =3D TimerPeriod; + NumTimerTicks =3D (TimerFrequencyHz * TimerPeriod) / TIME_UNITS_PER_SECO= ND; =20 /* If the number of required ticks is greater than the max the watchdog's offset register (WOR) can hold, we need to manually compute and set the compare register (WCV) */ - if (mNumTimerTicks > MAX_UINT48) { + if (NumTimerTicks > MAX_UINT48) { /* We need to enable the watchdog *before* writing to the compare regi= ster, because enabling the watchdog causes an "explicit refresh", which clobbers the compare register (WCV). In order to make sure this doe= sn't @@ -223,9 +224,9 @@ WatchdogSetTimerPeriod ( WatchdogWriteOffsetRegister (MAX_UINT48); WatchdogEnable (); SystemCount =3D ArmGenericTimerGetSystemCount (); - WatchdogWriteCompareRegister (SystemCount + mNumTimerTicks); + WatchdogWriteCompareRegister (SystemCount + NumTimerTicks); } else { - WatchdogWriteOffsetRegister (mNumTimerTicks); + WatchdogWriteOffsetRegister (NumTimerTicks); WatchdogEnable (); } =20 @@ -260,7 +261,7 @@ WatchdogGetTimerPeriod ( return EFI_INVALID_PARAMETER; } =20 - *TimerPeriod =3D ((TIME_UNITS_PER_SECOND / mTimerFrequencyHz) * mNumTime= rTicks); + *TimerPeriod =3D mTimerPeriod; =20 return EFI_SUCCESS; } @@ -327,9 +328,6 @@ GenericWatchdogEntry ( This will avoid conflicts with the universal watchdog */ ASSERT_PROTOCOL_ALREADY_INSTALLED (NULL, &gEfiWatchdogTimerArchProtocolG= uid); =20 - mTimerFrequencyHz =3D ArmGenericTimerGetTimerFreq (); - ASSERT (mTimerFrequencyHz !=3D 0); - // Install interrupt handler Status =3D mInterruptProtocol->RegisterInterruptSource ( mInterruptProtocol, @@ -371,7 +369,7 @@ GenericWatchdogEntry ( ); ASSERT_EFI_ERROR (Status); =20 - mNumTimerTicks =3D 0; + mTimerPeriod =3D 0; WatchdogDisable (); =20 return EFI_SUCCESS; --=20 2.34.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#113216): https://edk2.groups.io/g/devel/message/113216 Mute This Topic: https://groups.io/mt/103538116/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Fri May 17 09:18:46 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+113218+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+113218+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1704431699450670.3321878979095; Thu, 4 Jan 2024 21:14:59 -0800 (PST) Return-Path: DKIM-Signature: a=rsa-sha256; bh=ImNnvL7gpWsudk22BThjufQi8+sJsmM2UC5NmGstxd4=; c=relaxed/simple; d=groups.io; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:From:To:CC:Subject:Date:Message-ID:In-Reply-To:References:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Transfer-Encoding:Content-Type; s=20140610; t=1704431699; v=1; b=umLMMkFPitdeJtW3oHVYDO5lY5H6dAxhvSFYOcaXiwSvnJj1QhTCK2cvxaDbrWnEY4IEOf8U rT5SXdYQJTcn9yy9cJBEVbVzt10SmVt255s1woyOqRQfr2Ihd2YN2GNc7WHGTfuDthGDPMjzbqX diLkJtCjp/ZnbRMT37mCtCOk= X-Received: by 127.0.0.2 with SMTP id rS45YY1788612xjsH9oIVxK1; Thu, 04 Jan 2024 21:14:59 -0800 X-Received: from NAM11-DM6-obe.outbound.protection.outlook.com (NAM11-DM6-obe.outbound.protection.outlook.com [40.107.223.119]) by mx.groups.io with SMTP id smtpd.web10.17602.1704431696899496959 for ; Thu, 04 Jan 2024 21:14:58 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hqCKqqpjHVVd2Y1ef50P8IfQMsP2RdJEH6RvZfUn1zWqDrkEdf9FZa1sRKwFjCRMUFfrbXrvVmWY84eRIl13AaKag7TJxpzXyhEeKIlNHDHGU0NZQmbWSHcbCWGaeoFdwbl+5GY1RaaRDyI/flZR3S9CygQZy66FFyEibrB1KwL+RJbQo3i6yzmv4Gsf+fOnm0htDILAOmUBaV79QYvE8yWwY2uP6FIU4MnIqQJDhVOVthAaNeYsVVvq2UOAUPj40haDqtAkwIJ7+yu0CbH0rOMvSWlQc3OaUvHYBGKBW0/nbv2qiBsrbf0aOqNfUihAsQ9y2RJ/ARNYozk0aI0ziw== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=NCQ2xLtwaKaVKiDURV98sV3nPPTVujU1McqJ/o49M5A=; b=hKpqRF4Ix8fjg4S8MbZVRBzk9680PKOf5bDCb1F5DeFwo625UX18zV1gKx62H1jxMwDpp7dZ2HP9kFx6MtcUgAHDmeN7B7Ahzs30xs40O+BP+cbSC26d+ZYj/2QP2xlr+D0XH7j9PMvDa/Xbxb0Q7VjMSWWnm2VImku0DHwI0jBgNEqUj2UtMs8zfJS+fYx+I1w3AaMt8NkLmPtrmw9UcjPVD2j5qyq9v84FY2y6byYC2AOd7eaLJh2K4ORsPTLUq5+ipKcn5VBM1u1dqpO9zcM824rbVeJxtwnwb7YVUltsfDabjSyNamriizSG5lE2nd5N5IgYgZOvyWHLNcvV0A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=os.amperecomputing.com; dmarc=pass action=none header.from=os.amperecomputing.com; dkim=pass header.d=os.amperecomputing.com; arc=none X-Received: from LV3PR01MB8464.prod.exchangelabs.com (2603:10b6:408:1a3::7) by SA1PR01MB7294.prod.exchangelabs.com (2603:10b6:806:1f5::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7159.15; Fri, 5 Jan 2024 05:14:55 +0000 X-Received: from LV3PR01MB8464.prod.exchangelabs.com ([fe80::7748:d4a3:bcd9:14c1]) by LV3PR01MB8464.prod.exchangelabs.com ([fe80::7748:d4a3:bcd9:14c1%6]) with mapi id 15.20.7159.013; Fri, 5 Jan 2024 05:14:55 +0000 From: "Rebecca Cran via groups.io" To: Leif Lindholm , Ard Biesheuvel , Sami Mujawar CC: Rebecca Cran , devel@edk2.groups.io Subject: [edk2-devel] [PATCH v3 3/3] ArmPkg: Disable watchdog interaction after exiting boot services Date: Thu, 4 Jan 2024 22:14:30 -0700 Message-ID: <20240105051430.465510-4-rebecca@os.amperecomputing.com> In-Reply-To: <20240105051430.465510-1-rebecca@os.amperecomputing.com> References: <20240105051430.465510-1-rebecca@os.amperecomputing.com> X-ClientProxiedBy: CH2PR02CA0027.namprd02.prod.outlook.com (2603:10b6:610:4e::37) To LV3PR01MB8464.prod.exchangelabs.com (2603:10b6:408:1a3::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LV3PR01MB8464:EE_|SA1PR01MB7294:EE_ X-MS-Office365-Filtering-Correlation-Id: a93ca050-08d3-4fa5-fe20-08dc0dad410d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Message-Info: ebC9TvHEWBv/8OQnhGVzyQbgAI+/CkGBXx3hejlr4GWuW0c9KaF/ESsYK9ovpRQ9dTTGc4iVRK9rntQ577nZDk3nKxuE2onOuNKiPENQo5N3FkAhIlLEUGkHIpmK829gQylBC7S4TMTGJ1pSNJ+f7Hqn+nQYLugcY4XvaThn6cAA96zuYDHngJMBb88+kEQQKfdw7qg+6VaC3Kd2rcjTvDtRPd5Gs1SR34bEdeVkY0OmlovmSYywa8yWZnuKy2SrjX66d8bSJ2OUnisvvGAPTyxvGcdM1PQV2LzsmugMfi1nChAMUXLCchFp5yb7ZPeJkwcA+iU7px5RiuLEMzomh2tr8P2EzR0GyrNuDma09ovLShczIorgRtglm70n/Q/61jrYKaSV2hya1xcPvuiNpzTeJb1HEBEXb3DwD5QyNlE8gGjIBSaWuSRzswcjnYAwjdqqvCH9hCXVici9FGe+w1fsXLdbG/bRpxyjWmusmpHFksVO0iSBrrfMNh1gcthAvsLLqHE/wgcGrBYo/v639VWjfrBNjycz4Blev2q4GNEWSLZnswZo31k0mUcixVcdSDpspnZaqbcACCmbXrntJhygeK9YE+kcK339dHIlnymfgDQJmfURlkYjWTrAu7dB X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?EOB6/cQeSSyHYTgEadm4EU6y8VKKhLftprev02xVLLn/zgpKOE3CmjufCzN8?= =?us-ascii?Q?t0FnSeXlXA1WbDu4SSXwNKTenNzeR+SizK/Cbl/LPtTzi4M109u97zU1I4xT?= =?us-ascii?Q?Zd2LQMLl1BwGytmhMn947IoW8Roz5LhHyKgzLtc2bC1v8CNZeL0CWSlEzzly?= =?us-ascii?Q?Dv6PO3ABkqXfXBThAWR9putS8nGTxosDcfWE+JHPGQLQW4NETAOewXkLP80g?= =?us-ascii?Q?u2hmqZs9HYNIyFsi29om+2LwovwORItH0MbwXJ6Qj30QBRBgRvQLHlHmppzs?= =?us-ascii?Q?jXtK6VA9Ww4t3sDOON3WbqxvZfGxTsMRNBW9Zhk8fJYZnN6d+b6CExji0NEd?= =?us-ascii?Q?ACJLw+tok1ZJjFRavlsMhtYccuOHkYFvxcvr6b0n++qdL7fQp6KbLXqpc4S3?= =?us-ascii?Q?UqkbU3SpFkEk2H4//autrFqMadGh6ylcZMtzNeB+UVBddZq0BoQPbAaI526B?= =?us-ascii?Q?2l/dJ8ZWL9jS8HXGHhmoP1AaZNlpxzDkeBK9vF1udQX/q+fEbxu96TvG6kWA?= =?us-ascii?Q?AUU79lofUUSJ7pLEPeV/DISP3n5/Wj+rD9UNy5cnQeBWxgADh9q3k0/HSuH2?= =?us-ascii?Q?vvtDqgBTKnMmzOmLZ/1vfdeIZPjP5nr88o1AUVN9b7u1ngxFSUzjn39T3kuL?= =?us-ascii?Q?Zb9UUhTT71M68TLvI4NhVt8tDVWG4eXm/qiCULQ0SlyhI+HLSZt00+v8B0Rx?= =?us-ascii?Q?aSyWEOD9vLmgpUHKh+ryol2BJzegkfaGOEI+b20xttd8RFt86g1D+go+KRbB?= =?us-ascii?Q?Rafqnit8/tCsT6RUw0b2aDqPsjbrHDvNb+XmaQ4gxvNmDcxirqlx/MPnvBZ2?= =?us-ascii?Q?3SgBMjRi5nmcPyXJrMOSWUH/P9ieKY+Vaoe9n+KBkXOxQgsxE1xFna5e7NId?= =?us-ascii?Q?OkBcHFj9K7c6UGe4R493W8d56VOv5Kzwx6kb9REsjpYotoT54dW5hvpWXdDg?= =?us-ascii?Q?BIOyTSIJTqLkX+uBCP+Xs6HhB+yqyJhV8fjdeyH+y2RDnUDsX6ZBeE7ck2hj?= =?us-ascii?Q?0EaKmyN9USX1QJgq/snOyFdd/Vka1Mj37+FIe95Igv5TixMF1FajrG2ZDQYs?= =?us-ascii?Q?lnuDjJ0UwB479e9g7pRy4fxwnbXyM8f4Y3spe7kbzGdyxNzfEvxmEpR1DLS3?= =?us-ascii?Q?/f9eUgNp3WoCe0Xcohw/h+PhiNdgegCgtmRP1vgFbC3uGSlub53vUjr/rxx9?= =?us-ascii?Q?sBUeVNPC/WfaN8xKvNxTxUm2ftRfRffGAZ8TvYm0x9gHMansXyXh44dMheR+?= =?us-ascii?Q?l4yVx8BUr/wdZkp/3cKaAy/Ziss3sPJ62D7LaR6Jj1mGVOH0Ni1OWbLYxAR7?= =?us-ascii?Q?O9JwrQkwg5CyuezryKNf2R0BHcHkOT5OGtwlBh5sVCw/7KNPyL6VuAAtlPgr?= =?us-ascii?Q?q4/X6V919SP9rBUBei6uBw/CEfU42nYiyJ42szWAeDNBNCTIzOAt/k1ORhQs?= =?us-ascii?Q?8hzMYokxRIfwu1mHqzfadQ9LuIP273mpMtn+Yp3CzYE9yMkqLkxTZ3YeNTOk?= =?us-ascii?Q?1xchD9v1K5f2782rA3u6E7E9fHyNdraVCHeR7FqwLeqiyn7/QSK6n+X6TkYD?= =?us-ascii?Q?C18Dkx1pYtkmiMkrPVS60aULIKSv1WNgkb6w1Tp43H+nr6n1qzXKo4Xw03d6?= =?us-ascii?Q?ij2R0aj6sPUAySaFj4sxSk4=3D?= X-OriginatorOrg: os.amperecomputing.com X-MS-Exchange-CrossTenant-Network-Message-Id: a93ca050-08d3-4fa5-fe20-08dc0dad410d X-MS-Exchange-CrossTenant-AuthSource: LV3PR01MB8464.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jan 2024 05:14:55.2652 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3bc2b170-fd94-476d-b0ce-4229bdc904a7 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 7M5rWR5UdO8Zt62ARY6NxbaYu57EfdEO6YRsmjCMTrmMJ+xvZho3dIYi84lkqHx6BowBCCB0dmt78ij9CUfEza28IpNYZrAHmCZXVdO4STQvfAExxlczemEnSZY/8QUz X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR01MB7294 Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,rebecca@os.amperecomputing.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: y2CQbS07uonaQL4O0mEaDbSPx1787277AA= Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1704431700864100009 Content-Type: text/plain; charset="utf-8" Update GenericWatchdogDxe to disable watchdog interaction after exiting boot services. Also, move the mEfiExitBootServicesEvent event to the top of the file with the other static variables. Signed-off-by: Rebecca Cran --- ArmPkg/Drivers/GenericWatchdogDxe/GenericWatchdogDxe.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/ArmPkg/Drivers/GenericWatchdogDxe/GenericWatchdogDxe.c b/ArmPk= g/Drivers/GenericWatchdogDxe/GenericWatchdogDxe.c index 78cee62a19d6..ddf131660f9d 100644 --- a/ArmPkg/Drivers/GenericWatchdogDxe/GenericWatchdogDxe.c +++ b/ArmPkg/Drivers/GenericWatchdogDxe/GenericWatchdogDxe.c @@ -33,10 +33,14 @@ It is therefore stored here. 0 means the timer is not running. */ STATIC UINT64 mTimerPeriod =3D 0; =20 +/* disables watchdog interaction after Exit Boot Services */ +STATIC BOOLEAN mExitedBootServices =3D FALSE; + #define MAX_UINT48 0xFFFFFFFFFFFFULL =20 STATIC EFI_HARDWARE_INTERRUPT2_PROTOCOL *mInterruptProtocol; STATIC EFI_WATCHDOG_TIMER_NOTIFY mWatchdogNotify; +STATIC EFI_EVENT mEfiExitBootServicesEvent; =20 STATIC VOID @@ -200,7 +204,13 @@ WatchdogSetTimerPeriod ( UINT64 TimerFrequencyHz; UINT64 NumTimerTicks; =20 - // if TimerPeriod is 0, this is a request to stop the watchdog. + // If we've exited Boot Services but TimerPeriod isn't zero, this + // indicates that the caller is doing something wrong. + if (mExitedBootServices && (TimerPeriod !=3D 0)) { + return EFI_DEVICE_ERROR; + } + + // If TimerPeriod is 0 this is a request to stop the watchdog. if (TimerPeriod =3D=3D 0) { mTimerPeriod =3D 0; WatchdogDisable (); @@ -304,8 +314,6 @@ STATIC EFI_WATCHDOG_TIMER_ARCH_PROTOCOL mWatchdogTimer= =3D { WatchdogGetTimerPeriod }; =20 -STATIC EFI_EVENT mEfiExitBootServicesEvent; - EFI_STATUS EFIAPI GenericWatchdogEntry ( --=20 2.34.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#113218): https://edk2.groups.io/g/devel/message/113218 Mute This Topic: https://groups.io/mt/103538118/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-