From nobody Fri May 17 06:43:15 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+113210+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+113210+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 1704429432355853.5307290292013; Thu, 4 Jan 2024 20:37:12 -0800 (PST) Return-Path: DKIM-Signature: a=rsa-sha256; bh=+LRgqXZfeOPEVB+lKx1EdLXwkSAqOY54HD6UPTAF+fo=; 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=1704429432; v=1; b=NXWt4/A4wpUrLhyWVssqt+CfjkiQxSBZH5l4j/TQWglbq1OiF7ujt48CRMF4AoVJ/g4dC+KI brniogHwfvkfOy3mGkazj9nTq36e+7I2Ry/lPEFZ4sTnOsoAYYq6Gw325mdegn+rvZwRKqKo+Gx PXnPeDwl7ug3Ie0rw16cbB6g= X-Received: by 127.0.0.2 with SMTP id yfN9YY1788612x6QY3nGBVZO; Thu, 04 Jan 2024 20:37:12 -0800 X-Received: from NAM10-BN7-obe.outbound.protection.outlook.com (NAM10-BN7-obe.outbound.protection.outlook.com [40.107.92.113]) by mx.groups.io with SMTP id smtpd.web10.17200.1704429430875622080 for ; Thu, 04 Jan 2024 20:37:11 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nDwO36vv9HbohyeLg063k/InjQFwUPoK8k4YfET886VeJyqdfyD437BlsJNgcUNZ0RYoz+sqCIdkj+/7cyKV/HNYOpUUdy8bmqBviQdfzMeXP7Bq5orwemK/29qezy+ztzHlpTeWckl5BBUBEilTMhCs80E5ivWxQAsvAtOFEQvm6tFJmDjKSFmi0LxKcCwaXfxBdnURJHpuPg6kwwLowpIqgFKuBnUnPqx0/lp0NdlVE8eCXkJ/LSEPhBpJAYYzJ+vS1vNVli4UdFHm4ypsCXPg9wyzU3jZuTCjxSevplQidI7WQbUn9RR1+L0VDdTplwvHV6+CGO17rE+/uHJ7Mw== 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=VToZNNKpX78lvUIZSUcEfgtLf2m63jubblZrL5vRUvpSqAvH5TQ+0uiIh6S+iC8kN4Ot3+E8gEoulLGoYa7mNxXwwgVJ7me6e8umS8bRs/sJmfOBAsuvNcLtOcWAlTQEzJ/enltYep985owVjgb2qcEjce+1CykdiAQYnZN9fkOYwHHYPp7Yt5LkzV3Qksw24VP6kCJRXToeyUBjQb8W8Pz+J2lD08ZzXIe5w4W+kD/VY2vMTtPoJN0QoYUBEzEmzasjH6gjkE7X1vGKZ/RIG7FrS+E9Af6BkmWPNfAjnACP1mqcSe2uB5Fa8D6mAWdnEcOI5NtuEg1M0MFRe+FDlA== 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 SA0PR01MB6220.prod.exchangelabs.com (2603:10b6:806:e2::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7159.13; Fri, 5 Jan 2024 04:37:08 +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 04:37:08 +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 v2 1/3] ArmPkg: Update GenericWatchdogDxe to allow setting full 48-bit offset Date: Thu, 4 Jan 2024 21:35:06 -0700 Message-ID: <20240105043508.461417-2-rebecca@os.amperecomputing.com> In-Reply-To: <20240105043508.461417-1-rebecca@os.amperecomputing.com> References: <20240105043508.461417-1-rebecca@os.amperecomputing.com> X-ClientProxiedBy: CH0PR03CA0267.namprd03.prod.outlook.com (2603:10b6:610:e5::32) To LV3PR01MB8464.prod.exchangelabs.com (2603:10b6:408:1a3::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LV3PR01MB8464:EE_|SA0PR01MB6220:EE_ X-MS-Office365-Filtering-Correlation-Id: 4183aa78-67a8-4b89-ae2c-08dc0da7f9df X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Message-Info: e8N6ybRmuRMNcZPNl4BF8udMvUgh/Pxxg0TWIFthTcJUseyXRdKXmxpEUmLe9rLSoAH2kzFgoiWs70pKCAuIjWpCbGmfdzaecUVLxIxNVpFJZ12esIDFx7e/on9sM4PSTjPRJXEwniWVNEc4cuLyRDikZUPmfcCfduNpnLkypTK6TVkVxx9pShkip7eEXQJgm0efkZ1zyjLtGwglxxSA5cZ+l3EBmXMUhXTay7qFat2U706X9kqqGry1x6KwzWjhwJoDv/dAg43UD0mff/xXWRr7LeyD9isqCJxLUijohN1EN5PNiZ/B64KJARy71mUerrW3ksOtfGFT5LZF26DR9zfVqaaMEf6DUWKguJq+XBB7hXztfN9jx76KxAmP5VuvdEo1H59iN80q6+B1nZyuOX+ahm3zRw0nPTCUk9QX08hi9J4a302e/rZtMywwK+2fTQsvHGMOZfEf4JMGXTNbk+IHnIEEw2qLOZnV7RoURiWq+ZNFt4wbuCY7HEkj96XqqjryfCGBCrjApBPj95DcEON40BpV15155UUjd92gXlJTT6GKW7bXREon9ImXi93rb6WNna0PV9JrbEoSO+Kg6er9bIv2vlsysu0AThl0KTw= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?1jYFKfdevJYpJJrfb/MZ0Y3mVB89fGN/Ua4g4wKCphhemr/n9kZln/zcMfia?= =?us-ascii?Q?d3AagPtAKgPAYpjCZdS3iPH0ILAogVIzsxZFfuqd/VYUWFafiQvCBvy3t+Pr?= =?us-ascii?Q?9/ji4R5q1P9HHOdIViVPN+Y1/rrhKBeFD/USmZLjQSOBnEE4XTR9x0iey5eG?= =?us-ascii?Q?t49kQF/3oIU3+Ex5gWaYRImXWdiE7oqiZDSpRXwDcEjJnHDWQ6i5A2jEyQyY?= =?us-ascii?Q?tnTbaXpNPLMMWjcDMHcUBtiEU1te2+AIBeDjjpaoJc3POt+jhN1OvjHvC8ff?= =?us-ascii?Q?4r61PlMLm6lGFKnk+iWAziyCWVYOETmpEs+4t+d2i7NlmcDdWOcUKnqxB9UC?= =?us-ascii?Q?zmBImzOaJQsoqT5Uq6M0RvvbBF+IfEovB84QBa3LIbwnfL97W+c0BjGJbKwl?= =?us-ascii?Q?kdnf/5ZJWqyp2NIackU/YHDdOtfRAVUOM2EBHmu7cV8HnwXClv3UUpFK0nRj?= =?us-ascii?Q?xl5JrRYfXb+tui31QhWMQ4Xp/uP5QhFZJDZUFLCAm8gCeNb8K4Z1Oip6RLsc?= =?us-ascii?Q?UniuneqVRgXgBdTOvRGr1tFrjvBHKJYXhAKmgmetQz2pNjC3QhIvXPtQ0u0+?= =?us-ascii?Q?w52Hx2W6GInf73ga3azrFZIBiBbTNqMvciD9G/DcUDYaldsXGzub9gyCjbxf?= =?us-ascii?Q?ghHq8TtKdWKZqf7BkGiDH/y3PSg5xd3HTE/EzH5spbYr40Ps+Da/YCXtw1A0?= =?us-ascii?Q?kEew5938gneHh2PTIq8yzcVAqh0u/v5IEaogigZ1V0Oc0rcycx1i2nyX4tav?= =?us-ascii?Q?Mg+/2v38iidIoBxpZUb3yxcUDm0rezxHArkzl5Hx2cXhoK1cggdMpGKjatgi?= =?us-ascii?Q?DjWaaiVGNQWiL3kQ+VuAM2s9pSwkisqTu2iTNiQqJpAepJMOvt0kM1ZOxO14?= =?us-ascii?Q?kpsGq7TWH7iaBW0Zo1d9HGlMgujkNTZBF5dqumgvbnnyREomozEP/RLQeBwQ?= =?us-ascii?Q?mERkEIf+RL3zohgbyouaouM5Md39dkK1qHXEg7ci4B3tQJ9ARhO3SpD0VuB1?= =?us-ascii?Q?MZTtJ/qEqCDFfiLtrSUrgauTqejy2yGqHtPUMvDdKg9h9z/UfQRGiE0yOewa?= =?us-ascii?Q?qwYH13xdKiRUVXskXUNZDK8T/RtxSPk75oQxW2iq+Ur9BeSD9YckSn5mUZrs?= =?us-ascii?Q?b55K77ctIF4jx5GuHIy7PYuulyMEyfG3WYPVygavtzZlen7laLJGldQvDic/?= =?us-ascii?Q?dihjaspFJdem9h1Gn1zPrU/HAuqtRw9L8KCtSBSLbXI8euvXIpCRfQsO8pOR?= =?us-ascii?Q?Zgc5gdzH99fSMzZhwXC3Qx8ysat2YjPxDWdJqm8abfp7Ie3cbTJznrdDV9hu?= =?us-ascii?Q?hX6oXZb/SSkZomzxYrlihJdEK/F37XJpL/44tJSvISD7jnksvxloD8BeCEji?= =?us-ascii?Q?OruyzM5INASXr+UvAYFsEWflYUOmecoDQLOdWzlP9yKbp2Ov8WDBds2bQWDL?= =?us-ascii?Q?iHLifuzCchLk1iocz14T9eETPrZ69bdbf94mA5GKbdeuVaMEL8FFH/VnY1Eg?= =?us-ascii?Q?dlxmAp9wkewNOOaVCSSjUKLtQnoTvCTKf4/AmXJjkFJIZGAt9QeDsXZccvuj?= =?us-ascii?Q?eqt4r+MvtDYBIZ8pWZ2KrC1KjYB1Durg+bLNZOxPgG9oyK2eU2AfRT8nHwFZ?= =?us-ascii?Q?0UQpZORIsgOly0fvozNcfs8=3D?= X-OriginatorOrg: os.amperecomputing.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4183aa78-67a8-4b89-ae2c-08dc0da7f9df X-MS-Exchange-CrossTenant-AuthSource: LV3PR01MB8464.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jan 2024 04:37:08.3457 (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: xIAA0N3Q32tmgo19Fw4dsbhGGj3TZbi6QmFX0hRRGqgzXtiM3h/s9gLkmCX+Z9OOV/NzTodktQ7Ju/7+H3dY5FPsHwvNwWqtatykiEwONtVvECjumZg+FQBHVxvQomN0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR01MB6220 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: A2SxXFk6S9yLfNZQvLPTeKfZx1787277AA= Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1704429433446100002 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 (#113210): https://edk2.groups.io/g/devel/message/113210 Mute This Topic: https://groups.io/mt/103537818/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 06:43:15 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+113211+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+113211+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 1704429433201593.9257338082498; Thu, 4 Jan 2024 20:37:13 -0800 (PST) Return-Path: DKIM-Signature: a=rsa-sha256; bh=YVB2nohqwPbxjcJHO5bGYVwi/wbtSm1A0o3NG/3wYfY=; 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=1704429432; v=1; b=SA8Q/CDfsTPCvDzdSu8N0HIl+ALws7sfH9qxi+m48ncqDTRy0oymii94SDKFAYVSH/jliXcy tCLgd5cc0pHLAmL81mZRhPVL1KH3GcE1SwRF3/HQxIfWWXQdH5gCi03U0xG1TRSmA5TWR1w9vjh IxIjc/su16GpO7CNppmaCHpw= X-Received: by 127.0.0.2 with SMTP id vLuPYY1788612x2AUelJi8oh; Thu, 04 Jan 2024 20:37:12 -0800 X-Received: from NAM10-BN7-obe.outbound.protection.outlook.com (NAM10-BN7-obe.outbound.protection.outlook.com [40.107.92.113]) by mx.groups.io with SMTP id smtpd.web10.17200.1704429430875622080 for ; Thu, 04 Jan 2024 20:37:12 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZWjIOCJedcszHnFkCiVrokpB+qlii5rj3qO82YR4Ua6LGtJlaqWSb4iF5bLzQ7oMucER2Pb0UH1QNFrm1g2AY6JINUiRnTXKyN1nGsOBQHVw8tgtuvBCrc+EZjFBey5VxAn15xIch8yqMMkN5qAvJHuc6BEPjqz3i9TtLhJt9d/YEhuvhl0QKe7tOPBAjuEFNYaOHlb5vtrO+7BmooaiRW2e52vAGhUIIX/mawdNYExIzNUrndIVAGR5I2sO6SM2igCU2pmLCh9txCnIEifTZWOyghU6msMWEIZHDkY8/NVBXszZMF15NPtfdO9Bm5+JHgSuvlwjOsrAlMqxMbVojA== 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=l7jjFBpZXJ39N3gzhsEcRaSFnp5bLxVPs6GfCN2YayQ=; b=NhsdvBa2B0zryHk3bdVLhyxUwybfEDVNOkomXAwSzp/CzUNj4MeU4oISXN7BekJvtH7ZsfU3lzh6VUAWLipVn2455+5d9BpOIlk+YYTbzw8xpRCCBf18X3ZjvhtlQnFTozCuACOLE7n1Yl0FwZyeusjSP1pIAvBEpQXMPsCy8Q3+xPgXG5+GP/ZkNllwGIkEjePakCPZ7rrOeILl0Jughp3Iz7p8dgNZCeVK2XvzjXt1junn3CysLZq3zNWh4vznIP6Skn+eCdGeVPEzkFj8dfwLw5BxEazcCICpVpOaXWHizNHD2C77/5254Z06J60WRT5DbeVEXckmxh0CEqdPzw== 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 SA0PR01MB6220.prod.exchangelabs.com (2603:10b6:806:e2::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7159.13; Fri, 5 Jan 2024 04:37:09 +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 04:37:08 +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 v2 2/3] ArmPkg: Introduce global mTimerPeriod and remove calculation Date: Thu, 4 Jan 2024 21:35:07 -0700 Message-ID: <20240105043508.461417-3-rebecca@os.amperecomputing.com> In-Reply-To: <20240105043508.461417-1-rebecca@os.amperecomputing.com> References: <20240105043508.461417-1-rebecca@os.amperecomputing.com> X-ClientProxiedBy: CH0PR03CA0267.namprd03.prod.outlook.com (2603:10b6:610:e5::32) To LV3PR01MB8464.prod.exchangelabs.com (2603:10b6:408:1a3::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LV3PR01MB8464:EE_|SA0PR01MB6220:EE_ X-MS-Office365-Filtering-Correlation-Id: d7474eb2-1afb-4ad9-35d9-08dc0da7fa27 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Message-Info: pt+dI39w+cnjBqNFHX6HGJNSEWHXdhT7uhwpcPkIj9GlYXfPkpjLgtW/aaCicC6uDDxsUag1FuX3A7w8U3/XTalTjsCzIENODXAyqCqRmfAsSvBHh1SKFmZfgUe2KZHWz9z6PYBnCk0OeT5AHDzDUsq4HqGyL8NGbyzgG/dMwP1EzC1IHGl6M6EeBEMkZc1ZvpsQASZwJdpDGwfHPV4EFlB6xUnHfO7zrN1ZiwCFUJ00yGr9/6SOi4lDuBBLU2dCdkEj/cW58fx4TxXOHDzlQE5OF9nsQk6zQZe46+i6MOw2SaYk1y80qC9X0na0Ll+wGAdXScPXGwjtOSGrkNG2cLUTnUSDx2KitRANFsJ4LW1ILltxtdgVu2qHpeQPlJcfym69J6EmCP33WfjR8wvCNlBNgDn88vq0XmC2jHRG5HN+Io+KoyV2j3yPTqiT6vKx66W/+QJmnMl0Ey5ibBq3rq5hrWg+ShHCnI8mMm3ma4fP4h98GyznwuCHNnb4A/nB/hCE/Zvj3y3EUj843vUGLiXB0/LsUFPFJB8b3rwtgylh9bT+R1rA7ce4u8vsgp2ImHjKIxdCS3ShlLQ+frBkiOiSQUNZKAwB/lM9hh70qN+TIJp9g+TbRt4m+/rn+ET8 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?brbEqrQF44dmgx8LNcaR1lkEhbXPi/O7ryjqnxjfplkxjE7zz9tVJQJQmrMS?= =?us-ascii?Q?IerM3v/yEHuVY/kZHCqI4GAdPD3IOFJ+7Nm5I89cpW1O/kpLfg6BOx2arA/m?= =?us-ascii?Q?WUmd3k7y58AvXBKAeld+fS7hxbx3xkA1zMBd01ySxjuHswFeY8amzvO8iQMz?= =?us-ascii?Q?AP8VgsvZ5rOLCu1rOfnjH1Mg6z3VoQ8HmWfikCN/a2mtz1H+mFtmoWhBZcdU?= =?us-ascii?Q?jAd1Tcjo50AfVrDJAGLiABY6OBB4BEO2k6c0B80AJkjOaKFaGaSGwszUr3w/?= =?us-ascii?Q?HuO51xoYRdfEqK2PtgSQteYIUSps3S3+b7JGI55CMpmumx0DNt8jMb2Bg8JY?= =?us-ascii?Q?tAKh3HaxOJ6Fuwrv3ohjPfmDfafH92GfwDv6HrZ5URbRsR6KKl0b5ftwJZ+Z?= =?us-ascii?Q?9MUnYBuQhiScVUuR8UGLqGDuXe4k9c6sPGOPEm08g3hoRm+c7gp+fKqsA/EP?= =?us-ascii?Q?gEieVPsqgZA28cR3jmeeEmqfCAeVgEAiT0GZKQM4fcigNXz+D82AR9LHu8Ji?= =?us-ascii?Q?VAa4o6EC9W4gBHQx/SXwR04MsLYLmbQS1f4ZZc/bUiGf4CCsp6dy3G8YAfcn?= =?us-ascii?Q?J+Q5gz3fSujLngjK8nfp8N78Su0A9XV9Eh1p3N8BeX9EgbiIKM/2dcjHqzjE?= =?us-ascii?Q?ORPTKFjgIPqgmQDEf1toyj7dyU3B/zJ0cRbjTIpCBaoJnMHJscTf4uwT08jP?= =?us-ascii?Q?VYR9H1hThxq41pUEki8wk9MF/6VyntZ4H82te1PQFK3H0smW/cNgUc36wDMs?= =?us-ascii?Q?I9fQOkTWttEsRzsPMOYRF3x3QcPfNHtDpN2Qq6NBvLGZ7wliWhFgmwjg+kJP?= =?us-ascii?Q?SF1z5Bb74IYoz9f9tXSKOrGqn/lbt6dEJpqPr4jK2TjXknA9n9uEKht5Kt4H?= =?us-ascii?Q?pG0kf/7vAt6VLS6mRDgt/bJV+9Okb7w2Oei73RFemo6E9k1whCZt2wZzTEFV?= =?us-ascii?Q?Rhpq4kYzBwb890PdNdYpeJhW8TnRvte3P2c98/lfV47a3U6rPtyr+91ulizk?= =?us-ascii?Q?C5RqmVhAPff3oXK8qMWy/Oe3XfVWZCo1kk+vgRplDxfIeh1bqfR22Cz9P8gR?= =?us-ascii?Q?RF1Beko24ZqKRtbBkblacIHn2ldj+5RIWheOw4LjpJ2Goe8MnTrowifJwJ/+?= =?us-ascii?Q?EcWdyanJFhkXjlxf4kLmd9JaeztCS4jtqay9nN5aprY4E+iib4jV9HljaIMd?= =?us-ascii?Q?xjTiFgIN5rI2ss6yrI5lVHD960FIo3VHAELQCJP5sbllDWucm8hnb+7sA9+V?= =?us-ascii?Q?eCLLX6NCuuIH7qQLY92TlBTknC2bXPJg6aW0BYvI94RlRzaAx0oJoUWvsUyP?= =?us-ascii?Q?9VCla35QuVPOvwFUQFp3TMy+m8Nwlz9j4v18qEPHFCjdJup2OV/dZ9dywAn/?= =?us-ascii?Q?vpJCzApknqSoehqF0PDNxCeyj6Vc4+bxsf1U714V0gPLBlB/xEv+n+M0p2Tq?= =?us-ascii?Q?zIuOo5K76L9vu9yjSNUDY5tp8Frc4Xsza6mJ8BcuXZI1tBVYZCUmvBWFjdU2?= =?us-ascii?Q?mXZOgmdwlyV2PmHJEEv0iRyHNTxH0KqWN89UJOYB4Ksle1IaxoKZeveImFGJ?= =?us-ascii?Q?B0i0jEHTIIkOlBa/z7L913uyNmcEZw+PrPcGOU96lr7QVlTOwXz67vyOFIwI?= =?us-ascii?Q?WDRxeU+4TNGDhmiR8h4lgdQ=3D?= X-OriginatorOrg: os.amperecomputing.com X-MS-Exchange-CrossTenant-Network-Message-Id: d7474eb2-1afb-4ad9-35d9-08dc0da7fa27 X-MS-Exchange-CrossTenant-AuthSource: LV3PR01MB8464.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jan 2024 04:37:08.8114 (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: mBnXovFLGLgc1VlV8GpGm0amxSR+/m2DpgxINNM1M6ng9sVDCR7eXv3WsTJSS20WCkAE94UOfobPlUmHILKHOd2RhEVSskcjpXay3GyUTJxVufbiMApYTf1at2/O7yqD X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR01MB6220 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: 4dQZhxOCvfp5YqLD14R8gq8Mx1787277AA= Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1704429435247100012 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 --- 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..f74d0d1ced2e 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; + mNumTimerTicks =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 (#113211): https://edk2.groups.io/g/devel/message/113211 Mute This Topic: https://groups.io/mt/103537819/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 06:43:15 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+113212+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+113212+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 1704429433616832.9492576538819; Thu, 4 Jan 2024 20:37:13 -0800 (PST) Return-Path: DKIM-Signature: a=rsa-sha256; bh=Y4rHkXEOqzsIcSVrakH2SjmBYZB0idYRt/lV21iKJn0=; 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=1704429433; v=1; b=eGk/HvmKChGf3S3k208+ltWqCBRGRUrh20hFr6jZCOWewVVm3kczi70D9rkomg/6Law3DAib F6DJ3tYjJbWqGYgXr4MUkWLOCPQhyFFGhJ3Anyp/AiqLJXtOu271qOKrCBuS24O5D5TrvutsN1s wc/8WfXeseVbJSLsiw+J9o4M= X-Received: by 127.0.0.2 with SMTP id Jwo5YY1788612xHxEHkb21qU; Thu, 04 Jan 2024 20:37:13 -0800 X-Received: from NAM10-BN7-obe.outbound.protection.outlook.com (NAM10-BN7-obe.outbound.protection.outlook.com [40.107.92.113]) by mx.groups.io with SMTP id smtpd.web10.17200.1704429430875622080 for ; Thu, 04 Jan 2024 20:37:12 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=esmxp3I7fFVwGhl7PBBTFkjbDdEJKnZp3RnR4zfGqtDOnVCunKd4tsalaJYjn/2cwPnrDsBEbee/f+dDB8mKkT+bBZnOTJ6f4jb4Rx4Jda3cOqhxX2Fymx+e/mtXCOoidnNr2v99VoJoHCgFt04hLTQP9Uztm7fX3qV8TCsTkyE4w9mcXeAshJxe2Iuskg9UwKa3njG3W4UZMbfun3Zox3H3Vymze/GTxgmK78xScmXC3cyhObx0UvYXYtTX1XpxHkn2okI4fjUMPQBFhZqz37aWCB6gXMA7XxOUsFzrWBWddYBwTidXLxwYE/mqTXzsZPRrYbbcABjWQNbYKLBwNg== 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=MFhBUevKJg9aLPRout3TE6a8z6n/iieDadsdTJc4cjk=; b=L5So6hmhWnr2hDz7ZnLfxZdGFEOzs8iI1etIYjmNTQl3tl9JojjxKHeE1Z4KatAmJOsXti0BiCUQz3n1r++6jr0PknRhbgQ+0ERzWFQxh5jxIo+SBpkB/wzZ6ZRjKMkJqbhLERqXhwYaXLFbglIH0oyceK2ni46/ic1sM+3oRRN3CITRt9e+n9jnRR2ARp+njQGC771TwReBlc+K4EY/xYDWl2tgXTnbrwipm39uqGjxTGFvZ+TZqQWrp9BHkPc2Cf1X7qXZaY1XFtd0YONvTWvoPPuf1ZLJ4I46wm+vz9hz1j4dQwFZPWHqGIBcPEpEqPrWgx5fK0/c9ETO0XDUWQ== 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 SA0PR01MB6220.prod.exchangelabs.com (2603:10b6:806:e2::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7159.13; Fri, 5 Jan 2024 04:37:09 +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 04:37:09 +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 v2 3/3] ArmPkg: Disable watchdog interaction after exiting boot services Date: Thu, 4 Jan 2024 21:35:08 -0700 Message-ID: <20240105043508.461417-4-rebecca@os.amperecomputing.com> In-Reply-To: <20240105043508.461417-1-rebecca@os.amperecomputing.com> References: <20240105043508.461417-1-rebecca@os.amperecomputing.com> X-ClientProxiedBy: CH0PR03CA0267.namprd03.prod.outlook.com (2603:10b6:610:e5::32) To LV3PR01MB8464.prod.exchangelabs.com (2603:10b6:408:1a3::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LV3PR01MB8464:EE_|SA0PR01MB6220:EE_ X-MS-Office365-Filtering-Correlation-Id: 174ee40d-2ac7-48c5-bd94-08dc0da7fa6e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Message-Info: PYmb4evxVBKNLC/fKX0tmY9CulD+r/tcsekwuKDNNFxS+Kq/6z7MzDDol27xqrsmgIG0KN3ILnAn3Ic2JynqcOm3dIaIblOc49y/B/TAdoxGiDsLY7Wya6MyXuzmhVBcmXHAQzknTsejAAAegR3XwX/8hdPcgXxYlUEUixkF5YQMyTbwDZvKk+Mc84LCwkY1u6eqWa57DxR01I/t3QtHUTvcL7scIiZu4evrWwK4VvYhHWEitgV2kayBWpB6Rdr4NvkL0j7e2Fs2x6QS3TJlpi7IAWuegYRN201e+7PgzXU+g/Uzsg+TE6zmmzx3R3AlpyENaPe/cU4NShlsBmjAQEZP+kOegb/Sc3qF6xjXxbJRa2gtNdC4CVQGt0/cn5VsV4GBY1Ah460RamwQG/nn6mln5GaOpCJq732/IauNJxf1fnBHxu/5G9Lga4lXofDBGV1Iergen2VbfRqgeu63i5FHzMWRCmFVZbz5OJIEzYIHAThRym00WxBYBJyWi1V21U2GYWQB7gFG+w6hbdMDeDYOnETbTQQw48oKENMPgGgoHPHHAGcxJMwmXkjmlAtPF4lh9RZxMchZVDpiKsbSJG40rK2QxxEXGzs72XlVMru54P3ApE4ex/MupyCiJQhJ X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Ke/JkD5XDPsY4AiwJ/kPyxGtX2KFYkIL9908NzF+GTf/PhFM3RR6J6JhhWmc?= =?us-ascii?Q?x9v+4TCRNhdhqXJ2K/cf9pc5j/vSdaPgF+lDMWDs7x84EKIRBvw4jAHlssUs?= =?us-ascii?Q?dNndjLQdSttCunzGtnrAb9lw9ZiAAkK00vEwilILrxf3I28Q0fbYe3UIxYiP?= =?us-ascii?Q?NzJtBzqpWlyUWJ0x3SsVccS+dRN10u9NJNY6EdVzcipxRUKzTph1DaMITYNg?= =?us-ascii?Q?l0uXs9cfmX+HHemO6F4yHGU4sGH3szRTICE/hUzjaGb8RtNAzVs+1hu3ZIva?= =?us-ascii?Q?ghXG+80we3OVANeSxj341JS0zDZKvqVcuvs0bIosBQEbrxqAmWRo8dJb5MOf?= =?us-ascii?Q?CKCCpqAVx+sn59nj/jc3yRFQkXVK4sQGSRo0tX5ReO4azYV53KEx039BbBbc?= =?us-ascii?Q?LP/snclWUtdiaN13Pu58BaorEfXZkpyIfrSOhjn1t7tNwhKf7jqF3ynEv21s?= =?us-ascii?Q?Q4wOjP2RNT8Y19I2nP8sE1lev6ruQR6hvqkm3dczCTkoeZeTiA5wzQvcpvui?= =?us-ascii?Q?86AskhBHp1aJwVwp+FcLGXtfLSU8Ne9qPA+wIRugLFGR+ceqDwJZuy0hX/Ls?= =?us-ascii?Q?uJHztBgTx2lkNcZ4/SKJ2Ympauq9CmRYcDcvJAwSixMSiSBTE/BOAGvRQcZi?= =?us-ascii?Q?+oU3AiVrHSJ9k77wycmjTSZuEQRPKBc5ppt7R2BLwln1lGKp/ja5BXyjj59I?= =?us-ascii?Q?JmKhxd87HcjMoPzhSHDnkm7XZccmIqMDGSyBR5qCyh5lCJOuhZdyoTqEs+IX?= =?us-ascii?Q?TBADocsF1eAD8buU8COB6kQ8JMennU1c1VWSH5XHHconP23sWXjAN58CYaeb?= =?us-ascii?Q?td5sfpAJiekcRCm6IhTQ+idsutXdoRqoZ/lXU2BvajxNCXLdaVoiK70s8j0g?= =?us-ascii?Q?u8CooxMsAIHrNW6RVozHAUOb3PQ9NU02a8Z9Ufz5tzDUeqaJzf2o3Mjert7A?= =?us-ascii?Q?Vp2EDPstG6Dwf8b4V1qeoIfmn/XYJ3vcFoetF9kLmlVOcJ/9CQjkKGt2VMkT?= =?us-ascii?Q?75XDreETNH0p6K2/0zWX1FXrs+u/xx1GvkLrtXe56kdXSSMqGyv0X1tssuK4?= =?us-ascii?Q?ANFafyPltcMaFdUypox9rLQzVpPB9Y4GP9kS5YBgoxy60T18/Z1LozPlzVTa?= =?us-ascii?Q?sNVx+vbK/gwtrL3PTLXDimUFpNqKmD57OLcJbJqBycXLwpCDgo1csORjyPpD?= =?us-ascii?Q?ETRniyorllNav326qe7vykLXe8lTl0KO9Gbq4zmSJvbDOE+35WKt2y4pCyMa?= =?us-ascii?Q?UOrAZoGXL5DyDwWbnYe0hd8GQ0sN00oreukRXUarasS97oy8Y4XW70b1ACjd?= =?us-ascii?Q?97kgPQUM/ZSpixvQ+sbiXtP0Q/byv84lHMHWELvferwlQZ752WqfmfgVSEt5?= =?us-ascii?Q?lVLQZHrBkitH/x6QzySoJf2mBUvlJJddt5CpyoELvYJt7WEBhPl2XPnR1cY5?= =?us-ascii?Q?xzWjbcQW6GJd7SILWgXZlhJ4OzCoCrsDPk7Fp9XwyRQfpJcc3FEuED7Hz1X0?= =?us-ascii?Q?+3FFwkWeKZ0lnKbjxjan5iU/rgyrJ88oVRRzBx+nKphK3N25sUwDItlUpDp+?= =?us-ascii?Q?9iuf2HhNyHXp5FXuYFU5iTNHgbKjZx55xSHmgcCQw9YLusk1PcYQl6AhVTEB?= =?us-ascii?Q?ryo8fW55yIcrPFOSywVX5Vw=3D?= X-OriginatorOrg: os.amperecomputing.com X-MS-Exchange-CrossTenant-Network-Message-Id: 174ee40d-2ac7-48c5-bd94-08dc0da7fa6e X-MS-Exchange-CrossTenant-AuthSource: LV3PR01MB8464.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jan 2024 04:37:09.2801 (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: GU7BcjCVzBKKw8WhpkJwt5oOzYXk4c/4EbAdEsDRyZ+tgAOkPht82jzhePVC7BzNsr4zw5PN5MrVoOU33y9a3gnBraUowe+eKXy4HhZKIbg/tLTv+mfPXsAddPfuExzT X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR01MB6220 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: lSejN8DkznNHXJQx1LDI9YMex1787277AA= Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1704429435208100011 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 f74d0d1ced2e..44d812193031 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 (#113212): https://edk2.groups.io/g/devel/message/113212 Mute This Topic: https://groups.io/mt/103537820/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-