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 455D0AC1BFD for ; Mon, 20 Nov 2023 18:40:02 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=j2GPxRQVuShHRY2x7phnlZyCNyM+9w2AREKyNl/WBgs=; c=relaxed/simple; d=groups.io; h=Date:From:To:CC:Subject:Message-ID:References:MIME-Version:In-Reply-To:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Type:Content-Disposition; s=20140610; t=1700505601; v=1; b=LMH2aHq3aZ+NoVTlzbTKcG4+qa5lJFaYZgltBMwws4pQZxocJx2F8ZxKY3Ww/98xGrXydCBT oDUx5dpKwMO5SB5zAkal82kpINQ7JW6rFh1+50ojtgPbxPuiYqqjCU5N2SDL6TOgsH1b9u9+otW TwTdewbSdyeDJllVZLjuPP+o= X-Received: by 127.0.0.2 with SMTP id MfrAYY7687511xaeAnR9WyrO; Mon, 20 Nov 2023 10:40:01 -0800 X-Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) by mx.groups.io with SMTP id smtpd.web10.9386.1700505600273496557 for ; Mon, 20 Nov 2023 10:40:00 -0800 X-Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 3AKHGgLr003663; Mon, 20 Nov 2023 18:39:57 GMT X-Received: from nasanppmta05.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3ug34u1jny-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 20 Nov 2023 18:39:56 +0000 X-Received: from nasanex01c.na.qualcomm.com (nasanex01c.na.qualcomm.com [10.45.79.139]) by NASANPPMTA05.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 3AKIdts3016035 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 20 Nov 2023 18:39:55 GMT X-Received: from qc-i7.hemma.eciton.net (10.80.80.8) by nasanex01c.na.qualcomm.com (10.45.79.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.40; Mon, 20 Nov 2023 10:39:53 -0800 Date: Mon, 20 Nov 2023 18:39:49 +0000 From: "Leif Lindholm" To: Pierre Gondois CC: , Jiewen Yao , Yi Li , Xiaoyu Lu , Guomin Jiang , Ard Biesheuvel , Sami Mujawar , Gerd Hoffmann Subject: Re: [edk2-devel] [PATCH v4 5/6] CryptoPkg/OpensslLib: Add AArch64Cap for arch specific hooks Message-ID: References: <20231120134826.1288260-1-pierre.gondois@arm.com> <20231120134826.1288260-6-pierre.gondois@arm.com> MIME-Version: 1.0 In-Reply-To: <20231120134826.1288260-6-pierre.gondois@arm.com> X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: nasanex01b.na.qualcomm.com (10.46.141.250) To nasanex01c.na.qualcomm.com (10.45.79.139) X-QCInternal: smtphost X-Proofpoint-ORIG-GUID: FQnfAIy3VPbLGEqgBIQ6dRbL-FBRe1Fe X-Proofpoint-GUID: FQnfAIy3VPbLGEqgBIQ6dRbL-FBRe1Fe 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,quic_llindhol@quicinc.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: zeCPMIeaYHBsuXqqeC50gLWfx7686176AA= Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20140610 header.b=LMH2aHq3; dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=quicinc.com (policy=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 On Mon, Nov 20, 2023 at 14:48:25 +0100, Pierre Gondois wrote: > Add AARCH64 specific implementations of: > - OPENSSL_cpuid_setup(), probing hardware capabilitie > (presence of FEAT_AES, etc.) > - OPENSSL_rdtsc(), returning non-trusted entropy by accessing > system counter. > > Acked-by: Gerd Hoffmann > Signed-off-by: Pierre Gondois > --- > .../Library/OpensslLib/OpensslLibAccel.inf | 7 ++ > .../OpensslLib/OpensslLibFullAccel.inf | 7 ++ > .../OpensslLib/OpensslStub/AArch64Cap.c | 84 +++++++++++++++++++ > 3 files changed, 98 insertions(+) > create mode 100644 CryptoPkg/Library/OpensslLib/OpensslStub/AArch64Cap.c > > diff --git a/CryptoPkg/Library/OpensslLib/OpensslLibAccel.inf b/CryptoPkg/Library/OpensslLib/OpensslLibAccel.inf > index 3d1a9638b1c1..08e8be6ea9e1 100644 > --- a/CryptoPkg/Library/OpensslLib/OpensslLibAccel.inf > +++ b/CryptoPkg/Library/OpensslLib/OpensslLibAccel.inf > @@ -1329,6 +1329,7 @@ [Sources.X64] > # Autogenerated files list ends here > > [Sources.AARCH64] > + OpensslStub/AArch64Cap.c > # Autogenerated files list starts here > $(OPENSSL_PATH)/crypto/aes/aes_cbc.c > $(OPENSSL_PATH)/crypto/aes/aes_cfb.c > @@ -1955,11 +1956,17 @@ [Packages] > MdePkg/MdePkg.dec > CryptoPkg/CryptoPkg.dec > > +[Packages.AARCH64] > + ArmPkg/ArmPkg.dec > + > [LibraryClasses] > BaseLib > DebugLib > RngLib > > +[LibraryClasses.AARCH64] > + ArmLib > + > [BuildOptions] > # > # Disables the following Visual Studio compiler warnings brought by openssl source, > diff --git a/CryptoPkg/Library/OpensslLib/OpensslLibFullAccel.inf b/CryptoPkg/Library/OpensslLib/OpensslLibFullAccel.inf > index e7e83d419f4b..2a01ffe06bd7 100644 > --- a/CryptoPkg/Library/OpensslLib/OpensslLibFullAccel.inf > +++ b/CryptoPkg/Library/OpensslLib/OpensslLibFullAccel.inf > @@ -1432,6 +1432,7 @@ [Sources.X64] > # Autogenerated files list ends here > > [Sources.AARCH64] > + OpensslStub/AArch64Cap.c > # Autogenerated files list starts here > $(OPENSSL_PATH)/crypto/aes/aes_cbc.c > $(OPENSSL_PATH)/crypto/aes/aes_cfb.c > @@ -2107,11 +2108,17 @@ [Packages] > MdePkg/MdePkg.dec > CryptoPkg/CryptoPkg.dec > > +[Packages.AARCH64] > + ArmPkg/ArmPkg.dec > + > [LibraryClasses] > BaseLib > DebugLib > RngLib > > +[LibraryClasses.AARCH64] > + ArmLib > + > [BuildOptions] > # > # Disables the following Visual Studio compiler warnings brought by openssl source, > diff --git a/CryptoPkg/Library/OpensslLib/OpensslStub/AArch64Cap.c b/CryptoPkg/Library/OpensslLib/OpensslStub/AArch64Cap.c > new file mode 100644 > index 000000000000..7468ef3ab54e > --- /dev/null > +++ b/CryptoPkg/Library/OpensslLib/OpensslStub/AArch64Cap.c > @@ -0,0 +1,84 @@ > +/** @file > + Arm capabilities probing. > + > + Copyright (c) 2023, Arm Limited. All rights reserved.
> + > + SPDX-License-Identifier: BSD-2-Clause-Patent > +**/ > + > +#include > +#include "crypto/arm_arch.h" > + > +#include > + > +/** Get bits from a value. > + > + Shift the input value from 'shift' bits and apply 'mask'. > + > + @param value The value to get the bits from. > + @param shift Index of the bits to read. > + @param mask Mask to apply to the value once shifted. > + > + @return The desired bitfield from the value. > +**/ > +#define GET_BITFIELD(value, shift, mask) \ > + ((value >> shift) & mask) (This macro appears unused here now.) > + > +UINT32 OPENSSL_armcap_P = 0; > + > +void > +OPENSSL_cpuid_setup ( > + void > + ) > +{ > + OPENSSL_armcap_P = 0; > + > + /* Access to EL0 registers is possible from higher ELx. */ > + OPENSSL_armcap_P |= ARMV8_CPUID; > + /* Access to Physical timer is possible. */ > + OPENSSL_armcap_P |= ARMV7_TICK; > + > + /* Neon support is not guaranteed, but it is assumed to be present. > + Arm ARM for Armv8, sA1.5 Advanced SIMD and floating-point support > + */ > + OPENSSL_armcap_P |= ARMV7_NEON; > + > + if (ArmHasAes ()) > + { And I think that curly bracket is supposed to be on the previous line (and similarly below), but this may be intional to align with nearby code? Anyway, this is a big readability improvement, thank you very much! Acked-by: Leif Lindholm / Leif > + OPENSSL_armcap_P |= ARMV8_AES; > + } > + > + if (ArmHasSha1 ()) > + { > + OPENSSL_armcap_P |= ARMV8_SHA1; > + } > + > + if (ArmHasSha256 ()) > + { > + OPENSSL_armcap_P |= ARMV8_SHA256; > + } > + > + if (ArmHasPmull ()) > + { > + OPENSSL_armcap_P |= ARMV8_PMULL; > + } > + > + if (ArmHasSha512 ()) > + { > + OPENSSL_armcap_P |= ARMV8_SHA512; > + } > +} > + > +/** Read system counter value. > + > + Used to get some non-trusted entropy. > + > + @return Lower bits of the physical counter. > +**/ > +uint32_t > +OPENSSL_rdtsc ( > + void > + ) > +{ > + return (UINT32)ArmReadCntPct (); > +} > -- > 2.25.1 > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#111486): https://edk2.groups.io/g/devel/message/111486 Mute This Topic: https://groups.io/mt/102707267/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/leave/12367111/7686176/1913456212/xyzzy [rebecca@openfw.io] -=-=-=-=-=-=-=-=-=-=-=-