From: "Leif Lindholm" <quic_llindhol@quicinc.com>
To: <Pierre.Gondois@arm.com>, <devel@edk2.groups.io>
Cc: Sami Mujawar <sami.mujawar@arm.com>,
Ard Biesheuvel <ardb+tianocore@kernel.org>,
Rebecca Cran <rebecca@bsdio.com>,
Michael D Kinney <michael.d.kinney@intel.com>,
Liming Gao <gaoliming@byosoft.com.cn>,
Jiewen Yao <jiewen.yao@intel.com>,
Jian J Wang <jian.j.wang@intel.com>
Subject: Re: [PATCH v5 07/21] ArmPkg: Add FID definitions for Firmware TRNG
Date: Tue, 27 Sep 2022 12:04:17 -0700 [thread overview]
Message-ID: <d8f1b150-e4b6-61d7-8d82-b741c7496e84@quicinc.com> (raw)
In-Reply-To: <20220919192207.637786-8-Pierre.Gondois@arm.com>
On 2022-09-19 12:21, Pierre.Gondois@arm.com wrote:
> From: Sami Mujawar <sami.mujawar@arm.com>
>
> Bugzilla: 3668 (https://bugzilla.tianocore.org/show_bug.cgi?id=3668)
>
> The Arm True Random Number Generator Firmware, Interface 1.0,
> Platform Design Document
> (https://developer.arm.com/documentation/den0098/latest/)
> defines an interface between an Operating System (OS) executing
> at EL1 and Firmware (FW) exposing a conditioned entropy source
> that is provided by a TRNG back end.
>
> New function IDs have been defined by the specification for
> accessing the TRNG services. Therefore, add these definitions
> to the Arm standard SMC header.
>
> Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
The patch needs to be signed off by the contributor (you), and no one
else. You cannot make legal statements on their behalf, and you must
make the statement on your own behalf.
/
Leif
> ---
> ArmPkg/Include/IndustryStandard/ArmStdSmc.h | 109 +++++++++++++++++++-
> 1 file changed, 107 insertions(+), 2 deletions(-)
>
> diff --git a/ArmPkg/Include/IndustryStandard/ArmStdSmc.h b/ArmPkg/Include/IndustryStandard/ArmStdSmc.h
> index 78ce77cd734d..fa977a03a7ab 100644
> --- a/ArmPkg/Include/IndustryStandard/ArmStdSmc.h
> +++ b/ArmPkg/Include/IndustryStandard/ArmStdSmc.h
> @@ -1,13 +1,20 @@
> /** @file
> *
> * Copyright (c) 2020, NUVIA Inc. All rights reserved.<BR>
> -* Copyright (c) 2012-2017, ARM Limited. All rights reserved.
> +* Copyright (c) 2012 - 2022, Arm Limited. All rights reserved.
> *
> * SPDX-License-Identifier: BSD-2-Clause-Patent
> *
> * @par Revision Reference:
> -* - SMC Calling Convention version 1.2
> +* - [1] SMC Calling Convention version 1.2
> * (https://developer.arm.com/documentation/den0028/c/?lang=en)
> +* - [2] Arm True Random Number Generator Firmware, Interface 1.0,
> +* Platform Design Document.
> +* (https://developer.arm.com/documentation/den0098/latest/)
> +*
> +* @par Glossary:
> +* - TRNG - True Random Number Generator
> +*
> **/
>
> #ifndef ARM_STD_SMC_H_
> @@ -139,4 +146,102 @@
> /* 0xbf00ff02 is reserved */
> #define ARM_SMC_ID_TOS_REVISION 0xbf00ff03
>
> +// Firmware TRNG interface Function IDs
> +
> +/*
> + SMC/HVC call to get the version of the TRNG backend,
> + Cf. [2], 2.1 TRNG_VERSION
> + Input values:
> + W0 0x8400_0050
> + W1-W7 Reserved (MBZ)
> + Return values:
> + Success (W0 > 0) W0[31] MBZ
> + W0[30:16] Major revision
> + W0[15:0] Minor revision
> + W1 - W3 Reserved (MBZ)
> + Error (W0 < 0)
> + NOT_SUPPORTED Function not implemented
> +*/
> +#define FID_TRNG_VERSION 0x84000050
> +
> +/*
> + SMC/HVC call to check if a TRNG function ID is implemented by the backend,
> + Cf. [2], Section 2.2 TRNG_FEATURES
> + Input Values
> + W0 0x8400_0051
> + W1 trng_func_id
> + W2-W7 Reserved (MBZ)
> + Return values:
> + Success (W0 >= 0):
> + SUCCESS Function is implemented.
> + > 0 Function is implemented and
> + has specific capabilities,
> + see function definition.
> + Error (W0 < 0)
> + NOT_SUPPORTED Function with FID=trng_func_id
> + is not implemented
> +*/
> +#define FID_TRNG_FEATURES 0x84000051
> +
> +/*
> + SMC/HVC call to get the UUID of the TRNG backend,
> + Cf. [2], Section 2.3 TRNG_GET_UUID
> + Input Values:
> + W0 0x8400_0052
> + W1-W7 Reserved (MBZ)
> + Return Values:
> + Success (W0 != -1)
> + W0 UUID[31:0]
> + W1 UUID[63:32]
> + W2 UUID[95:64]
> + W3 UUID[127:96]
> + Error (W0 = -1)
> + W0 NOT_SUPPORTED
> +*/
> +#define FID_TRNG_GET_UUID 0x84000052
> +
> +/*
> + AARCH32 SMC/HVC call to get entropy bits, Cf. [2], Section 2.4 TRNG_RND.
> + Input values:
> + W0 0x8400_0053
> + W2-W7 Reserved (MBZ)
> + Return values:
> + Success (W0 = 0):
> + W0 MBZ
> + W1 Entropy[95:64]
> + W2 Entropy[63:32]
> + W3 Entropy[31:0]
> + Error (W0 < 0)
> + W0 NOT_SUPPORTED
> + NO_ENTROPY
> + INVALID_PARAMETERS
> + W1 - W3 Reserved (MBZ)
> +*/
> +#define FID_TRNG_RND_AARCH32 0x84000053
> +
> +/*
> + AARCH64 SMC/HVC call to get entropy bits, Cf. [2], Section 2.4 TRNG_RND.
> + Input values:
> + X0 0xC400_0053
> + X2-X7 Reserved (MBZ)
> + Return values:
> + Success (X0 = 0):
> + X0 MBZ
> + X1 Entropy[191:128]
> + X2 Entropy[127:64]
> + X3 Entropy[63:0]
> + Error (X0 < 0)
> + X0 NOT_SUPPORTED
> + NO_ENTROPY
> + INVALID_PARAMETERS
> + X1 - X3 Reserved (MBZ)
> +*/
> +#define FID_TRNG_RND_AARCH64 0xC4000053
> +
> +// Firmware TRNG status codes
> +#define TRNG_STATUS_SUCCESS (INT32)(0)
> +#define TRNG_STATUS_NOT_SUPPORTED (INT32)(-1)
> +#define TRNG_STATUS_INVALID_PARAMETER (INT32)(-2)
> +#define TRNG_STATUS_NO_ENTROPY (INT32)(-3)
> +
> #endif // ARM_STD_SMC_H_
next prev parent reply other threads:[~2022-09-27 19:24 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-19 19:21 [PATCH v5 00/21] Add Raw algorithm support using Arm FW-TRNG interface PierreGondois
2022-09-19 19:21 ` [PATCH v5 01/21] ArmPkg: PCD to select conduit for monitor calls PierreGondois
2022-09-27 18:59 ` Leif Lindholm
2022-09-19 19:21 ` [PATCH v5 02/21] ArmPkg/ArmMonitorLib: Definition for ArmMonitorLib library class PierreGondois
2022-09-19 19:21 ` [PATCH v5 03/21] ArmPkg/ArmMonitorLib: Add ArmMonitorLib PierreGondois
2022-09-27 18:51 ` Leif Lindholm
2022-09-27 19:00 ` [edk2-devel] " Rebecca Cran
2022-09-27 19:10 ` Rebecca Cran
2022-09-19 19:21 ` [PATCH v5 04/21] ArmPkg/ArmHvcNullLib: Add NULL instance of ArmHvcLib PierreGondois
2022-09-27 18:55 ` Leif Lindholm
2022-09-19 19:21 ` [PATCH v5 05/21] MdePkg/TrngLib: Definition for TRNG library class interface PierreGondois
2022-09-27 19:00 ` Leif Lindholm
2022-09-19 19:21 ` [PATCH v5 06/21] MdePkg/TrngLib: Add NULL instance of TRNG Library PierreGondois
2022-09-27 19:02 ` Leif Lindholm
2022-09-19 19:21 ` [PATCH v5 07/21] ArmPkg: Add FID definitions for Firmware TRNG PierreGondois
2022-09-27 19:04 ` Leif Lindholm [this message]
2022-09-19 19:21 ` [PATCH v5 08/21] ArmPkg/TrngLib: Add Arm Firmware TRNG library PierreGondois
2022-09-19 19:21 ` [PATCH v5 09/21] MdePkg/BaseRngLib: Rename ArmReadIdIsar0() to ArmGetFeatRng() PierreGondois
2022-09-27 21:44 ` [edk2-devel] " Rebecca Cran
2022-09-28 17:10 ` Leif Lindholm
2022-09-29 16:21 ` PierreGondois
2022-09-29 17:09 ` Leif Lindholm
2022-09-19 19:21 ` [PATCH v5 10/21] ArmPkg/ArmLib: Add ArmReadIdIsar0() helper PierreGondois
2022-09-19 19:21 ` [PATCH v5 11/21] ArmPkg/ArmLib: Add ArmHasRngExt() PierreGondois
2022-09-19 19:21 ` [PATCH v5 12/21] SecurityPkg/RngDxe: Rename RdRandGenerateEntropy to generic name PierreGondois
2022-09-19 19:21 ` [PATCH v5 13/21] SecurityPkg/RngDxe: Replace Pcd with Sp80090Ctr256Guid PierreGondois
2022-09-19 19:22 ` [PATCH v5 14/21] SecurityPkg/RngDxe: Remove ArchGetSupportedRngAlgorithms() PierreGondois
2022-09-19 19:22 ` [PATCH v5 15/21] SecurityPkg/RngDxe: Documentation/include/parameter cleanup PierreGondois
2022-09-19 19:22 ` [PATCH v5 16/21] SecurityPkg/RngDxe: Check before advertising Cpu Rng algo PierreGondois
2022-09-19 19:22 ` [PATCH v5 17/21] SecurityPkg/RngDxe: Add AArch64 RawAlgorithm support through TrngLib PierreGondois
2022-09-19 19:22 ` [PATCH v5 18/21] SecurityPkg/RngDxe: Add debug warning for NULL PcdCpuRngSupportedAlgorithm PierreGondois
2022-09-19 19:22 ` [PATCH v5 19/21] SecurityPkg/RngDxe: Rename AArch64/RngDxe.c PierreGondois
2022-09-19 19:22 ` [PATCH v5 20/21] SecurityPkg/RngDxe: Add Arm support of RngDxe PierreGondois
2022-09-19 19:22 ` [PATCH v5 21/21] ArmVirtPkg: Kvmtool: Add RNG support using FW-TRNG interface PierreGondois
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=d8f1b150-e4b6-61d7-8d82-b741c7496e84@quicinc.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox