From nobody Tue Feb 10 13:37:18 2026 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+110956+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+110956+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=arm.com ARC-Seal: i=1; a=rsa-sha256; t=1699521838; cv=none; d=zohomail.com; s=zohoarc; b=eH1g6atFBTyxeeazOnBFQIooIbXDHIwde1mdmDqKHxJwAX6+yyXsi1rxSF8+V2PM/WspQhgR0jF7yM/R2TXxNkNLxzYO/yRtu3TNHH8XxqeovmINsArLm9y5aHp8Zh2L25EyavRoYc9KT4pG3ZlOUQeSxwet292HkipzB3+iTtc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1699521838; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Sender:Subject:Subject:To:To:Message-Id; bh=93NJrYlNU8ECvFEU3CS/v7VaCu8DHOffmFPMblIJWJc=; b=N3kdt3vsvHURtzU0FIlxSCHlDCZW9t6Cp4DjNFTTQ02Vnm29gcLEc0tYvcPVLkPt/ZXp4Np6AgUXoAmrUGsW3RlO5s6+ZQZ3wI+o1PjW6DFr9vTHmDsWaM4I60T5JEFkctYMffcX4U6eUNcwdgieO88pwrEodN8vfUg9ZzPobcw= ARC-Authentication-Results: i=1; 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+110956+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1699521838359461.62039072624816; Thu, 9 Nov 2023 01:23:58 -0800 (PST) Return-Path: DKIM-Signature: a=rsa-sha256; bh=Gb8lTMYRvm7iJzvcTvin9pLxH2RP3R0/YUt1FeXEIbQ=; c=relaxed/simple; d=groups.io; h=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; s=20140610; t=1699521838; v=1; b=gXXOvD9r3UVpWrAzaR8tm93WuzCVWnCZNTIXQNSd/vecGxP1Av2NwGEIiojSx5SPRVu5Huk0 nWe1T/uyk+12mgIZJ6AV3CuXIccMbZJs4Ajphlq+Hz3Qnc9Q2YI+AjYvikwvos83Xo/Vg9m/53i x4KRhwsLzaLw99C9SO2tBYmc= X-Received: by 127.0.0.2 with SMTP id Mp3oYY1788612x5dXhqp9LJc; Thu, 09 Nov 2023 01:23:58 -0800 X-Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web10.117373.1699521837425450426 for ; Thu, 09 Nov 2023 01:23:57 -0800 X-Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 97A421655; Thu, 9 Nov 2023 01:24:41 -0800 (PST) X-Received: from cam-smtp0.cambridge.arm.com (e126645.nice.arm.com [10.34.100.114]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 81B883F703; Thu, 9 Nov 2023 01:23:55 -0800 (PST) From: "PierreGondois" To: devel@edk2.groups.io Cc: Jiewen Yao , Yi Li , Xiaoyu Lu , Guomin Jiang , Leif Lindholm , Ard Biesheuvel , Sami Mujawar , Gerd Hoffmann , Michael D Kinney , Liming Gao Subject: [edk2-devel] [PATCH v2 3/7] MdePkg/BaseRngLib: Prefer ArmReadIdAA64Isar0Reg() over ArmReadIdIsar0() Date: Thu, 9 Nov 2023 10:23:03 +0100 Message-Id: <20231109092307.1770332-4-pierre.gondois@arm.com> In-Reply-To: <20231109092307.1770332-1-pierre.gondois@arm.com> References: <20231109092307.1770332-1-pierre.gondois@arm.com> MIME-Version: 1.0 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,pierre.gondois@arm.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: QcZ9EY4eh0MwhVyzTD8Y1f3Ix1787277AA= Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1699521839686100015 Content-Type: text/plain; charset="utf-8" A ArmReadIdAA64Isar0Reg() function was recently added to BaseLib. Use it instead of its ArmReadIdIsar0() equivalent, which was private to the BaseRngLib library. This also allows to avoid the confusion between the following registers: - ID_ISAR0_EL1: allows to probe for Divide instructions, Debug instructions, ... - ID_AA64ISAR0_EL1: AARCH64 specific register allowing to probe for AESE, RNDR, ... instructions Signed-off-by: Pierre Gondois --- .../BaseRngLib/AArch64/ArmReadIdIsar0.S | 30 ------------------- .../BaseRngLib/AArch64/ArmReadIdIsar0.asm | 30 ------------------- MdePkg/Library/BaseRngLib/AArch64/ArmRng.h | 12 -------- MdePkg/Library/BaseRngLib/AArch64/Rndr.c | 14 ++------- MdePkg/Library/BaseRngLib/BaseRngLib.inf | 2 -- 5 files changed, 3 insertions(+), 85 deletions(-) delete mode 100644 MdePkg/Library/BaseRngLib/AArch64/ArmReadIdIsar0.S delete mode 100644 MdePkg/Library/BaseRngLib/AArch64/ArmReadIdIsar0.asm diff --git a/MdePkg/Library/BaseRngLib/AArch64/ArmReadIdIsar0.S b/MdePkg/Li= brary/BaseRngLib/AArch64/ArmReadIdIsar0.S deleted file mode 100644 index d30b63fe5c68..000000000000 --- a/MdePkg/Library/BaseRngLib/AArch64/ArmReadIdIsar0.S +++ /dev/null @@ -1,30 +0,0 @@ -#-------------------------------------------------------------------------= ----- -# -# ArmReadIdIsar0() for AArch64 -# -# Copyright (c) 2021, NUVIA Inc. All rights reserved.
-# -# SPDX-License-Identifier: BSD-2-Clause-Patent -# -#-------------------------------------------------------------------------= ----- - -.text -.p2align 2 -GCC_ASM_EXPORT(ArmReadIdIsar0) - -#/** -# Reads the ID_AA64ISAR0 Register. -# -# @return The contents of the ID_AA64ISAR0 register. -# -#**/ -#UINT64 -#EFIAPI -#ArmReadIdIsar0 ( -# VOID -# ); -# -ASM_PFX(ArmReadIdIsar0): - AARCH64_BTI(c) - mrs x0, id_aa64isar0_el1 // Read ID_AA64ISAR0 Register - ret diff --git a/MdePkg/Library/BaseRngLib/AArch64/ArmReadIdIsar0.asm b/MdePkg/= Library/BaseRngLib/AArch64/ArmReadIdIsar0.asm deleted file mode 100644 index 1d9f9a808c0c..000000000000 --- a/MdePkg/Library/BaseRngLib/AArch64/ArmReadIdIsar0.asm +++ /dev/null @@ -1,30 +0,0 @@ -;-------------------------------------------------------------------------= ----- -; -; ArmReadIdIsar0() for AArch64 -; -; Copyright (c) 2021, NUVIA Inc. All rights reserved.
-; -; SPDX-License-Identifier: BSD-2-Clause-Patent -; -;-------------------------------------------------------------------------= ----- - - EXPORT ArmReadIdIsar0 - AREA BaseLib_LowLevel, CODE, READONLY - -;/** -; Reads the ID_AA64ISAR0 Register. -; -; @return The contents of the ID_AA64ISAR0 register. -; -;**/ -;UINT64 -;EFIAPI -;ArmReadIdIsar0 ( -; VOID -; ); -; -ArmReadIdIsar0 - mrs x0, id_aa64isar0_el1 // Read ID_AA64ISAR0 Register - ret - - END diff --git a/MdePkg/Library/BaseRngLib/AArch64/ArmRng.h b/MdePkg/Library/Ba= seRngLib/AArch64/ArmRng.h index 2d6ef48ab941..b4b3c97071bb 100644 --- a/MdePkg/Library/BaseRngLib/AArch64/ArmRng.h +++ b/MdePkg/Library/BaseRngLib/AArch64/ArmRng.h @@ -27,16 +27,4 @@ ArmRndr ( OUT UINT64 *Rand ); =20 -/** - Reads the ID_AA64ISAR0 Register. - - @return The contents of the ID_AA64ISAR0 register. - -**/ -UINT64 -EFIAPI -ArmReadIdIsar0 ( - VOID - ); - #endif /* ARM_RNG_H_ */ diff --git a/MdePkg/Library/BaseRngLib/AArch64/Rndr.c b/MdePkg/Library/Base= RngLib/AArch64/Rndr.c index d39db62153ee..684b02f018b6 100644 --- a/MdePkg/Library/BaseRngLib/AArch64/Rndr.c +++ b/MdePkg/Library/BaseRngLib/AArch64/Rndr.c @@ -21,11 +21,6 @@ =20 STATIC BOOLEAN mRndrSupported; =20 -// -// Bit mask used to determine if RNDR instruction is supported. -// -#define RNDR_MASK ((UINT64)MAX_UINT16 << 60U) - /** The constructor function checks whether or not RNDR instruction is suppo= rted by the host hardware. @@ -43,16 +38,13 @@ BaseRngLibConstructor ( VOID ) { - UINT64 Isar0; - // // Determine RNDR support by examining bits 63:60 of the ISAR0 register = returned by // MSR. A non-zero value indicates that the processor supports the RNDR = instruction. // - Isar0 =3D ArmReadIdIsar0 (); - ASSERT ((Isar0 & RNDR_MASK) !=3D 0); - - mRndrSupported =3D ((Isar0 & RNDR_MASK) !=3D 0); + mRndrSupported =3D !((ArmReadIdAA64Isar0Reg () >> ARM_ID_AA64ISAR0_EL1_A= ES_SHIFT) & + ARM_ID_AA64ISAR0_EL1_AES_MASK); + ASSERT (mRndrSupported); =20 return EFI_SUCCESS; } diff --git a/MdePkg/Library/BaseRngLib/BaseRngLib.inf b/MdePkg/Library/Base= RngLib/BaseRngLib.inf index 49503b139be9..bd89cf3a1927 100644 --- a/MdePkg/Library/BaseRngLib/BaseRngLib.inf +++ b/MdePkg/Library/BaseRngLib/BaseRngLib.inf @@ -38,10 +38,8 @@ [Sources.AARCH64] AArch64/Rndr.c AArch64/ArmRng.h =20 - AArch64/ArmReadIdIsar0.S | GCC AArch64/ArmRng.S | GCC =20 - AArch64/ArmReadIdIsar0.asm | MSFT AArch64/ArmRng.asm | MSFT =20 [Guids.AARCH64] --=20 2.25.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 (#110956): https://edk2.groups.io/g/devel/message/110956 Mute This Topic: https://groups.io/mt/102482401/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-