From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by spool.mail.gandi.net (Postfix) with ESMTPS id 6C5CA9410E6 for ; Fri, 5 Jan 2024 04:37:13 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=wou5q4wL67ZJwCpUvkj5sl8tkr0dnCKfvyOghZiSHhM=; 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=KnVI0UkD6VNBeDYQEkg2AzU+9Q3PT8/Sl6xVCLevwbotvgtoWHSzcq6LSRrjo29k1yx00J4F jl4GgGWJEuqpArkqSxu5+N8mAoMUKoLcRgjwVKhJvsSQW2F7C6PdhachxQI/xS3Du8bTUvm2+ZF vikmHWSX5CMK/B9wEBGTg7oA= X-Received: by 127.0.0.2 with SMTP id kJJNYY7687511xh6YFUOh27Y; 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: 3sIZI6H8W5xYfrCbmNNTd5qkx7686176AA= Content-Transfer-Encoding: quoted-printable Content-Type: text/plain X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20140610 header.b=KnVI0UkD; dmarc=none; spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io 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/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-