From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (NAM10-MW2-obe.outbound.protection.outlook.com []) by mx.groups.io with SMTP id smtpd.web08.5493.1622023932113655945 for ; Wed, 26 May 2021 03:12:13 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="body hash did not verify" header.i=@os.amperecomputing.com header.s=selector2 header.b=tmJb7mE7; spf=fail (domain: os.amperecomputing.com, ip: , mailfrom: nhi@os.amperecomputing.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WaL6ph18kkweJGPZFoOcM01wDkCFb30ZnymImOza6MTekpIOab7isVrfPYgJoUd/jjX1J1Qmw4YWmciP+pwgF3SmTDhmXLyzF40ttGEW3Ba6wKC1HpCuKhLg9llobD8Ydi75rmIZI2dbNUGDZvIkR6MC7ekQmZevFxMh5FmG+U6baX6FYIzXcNsO+6CNNxQFo8025lwhaKWwA5bQU2IWKmrweEKOmCwdF68c/zZIQAyeUi0dbvCUbulDoq1bDs6SnO4XhVAnYmuPPh3HYOfnQn8OzFVKvY5Ssy4B0bPO9kV1bZJKbJ8z07Och+VKTPzDqMymSw8rtC5v3HOXqX421g== 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-SenderADCheck; bh=yuZYublAu5WGwKeVW40WOP/FqpfAp+ToZZNVTeTw6ps=; b=KVcZZVd1h5lwaPfufyN0QiHzGzCO3mC2ZqGO5VC0jjdm/Ae6w8hxgmdiZi/lgp6R4ymlcPt8/nXaQs8BZZZ4jWjEPcXvK0EZxiM2Vnhm7E1kSPsqbn/8avQLXtTx8ZYZdh+ZrLhmri0448ltp/q5Zyhk9hLZPPxu2Yyl3Dzcz0par03+JBlwmYLfEXKEJkdVnSTeBm8F9rJmcvXe+szlvw/0UWbWTxAVmopWswvFJCt6oSuWHVlm/iKyCxt++4K9xU/uHEu8tj0r4PB0OTM30kHoRDW+YeHc+Pp9Sr9N40l8o7mpBqq3Yparej1y6FY0FMB0TZxF6qdiyZr5CJLlmw== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=os.amperecomputing.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=yuZYublAu5WGwKeVW40WOP/FqpfAp+ToZZNVTeTw6ps=; b=tmJb7mE7/YSOvupOh4lRrNwaL4ivWRvZqq7CGkaWDVpWNMObpDbSRY82oGz6l+aOrHlL8TNlQ2Tw4Vj/xAluQ86LlAi264ofuOfHz1KgHE7LYk5rpjRm6o37tN1uUza1oZF9NRmkd/UMrxp5m7XCulzNgEzZRAM0WECeOVtY7+I= Authentication-Results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=os.amperecomputing.com; Received: from DM6PR01MB5849.prod.exchangelabs.com (2603:10b6:5:205::20) by DM5PR01MB2426.prod.exchangelabs.com (2603:10b6:3:3b::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4150.27; Wed, 26 May 2021 10:12:12 +0000 Received: from DM6PR01MB5849.prod.exchangelabs.com ([fe80::60d2:86dd:1f1c:51dd]) by DM6PR01MB5849.prod.exchangelabs.com ([fe80::60d2:86dd:1f1c:51dd%7]) with mapi id 15.20.4173.020; Wed, 26 May 2021 10:12:12 +0000 From: "Nhi Pham" To: devel@edk2.groups.io CC: Vu Nguyen , Thang Nguyen , Chuong Tran , Phong Vo , Leif Lindholm , Michael D Kinney , Ard Biesheuvel , Nate DeSimone Subject: [edk2-platforms][PATCH v2 19/32] AmpereAltraPkg: Add Random Number Generator Support Date: Wed, 26 May 2021 17:07:11 +0700 Message-ID: <20210526100724.5359-21-nhi@os.amperecomputing.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210526100724.5359-1-nhi@os.amperecomputing.com> References: <20210526100724.5359-1-nhi@os.amperecomputing.com> X-Originating-IP: [118.69.219.201] X-ClientProxiedBy: HKAPR04CA0008.apcprd04.prod.outlook.com (2603:1096:203:d0::18) To DM6PR01MB5849.prod.exchangelabs.com (2603:10b6:5:205::20) Return-Path: nhi@os.amperecomputing.com MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (118.69.219.201) by HKAPR04CA0008.apcprd04.prod.outlook.com (2603:1096:203:d0::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4173.20 via Frontend Transport; Wed, 26 May 2021 10:12:09 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f0e0c8b0-888d-4e45-ad66-08d9202eba7d X-MS-TrafficTypeDiagnostic: DM5PR01MB2426: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:8273; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Yh3XQ8ukTA6gGWipIWR+CkLiT7VWZWTnzpEJdM62YCgIB+RlDTYlACbJXD2zDt+LUOIdKHox4EymblY8OGgfotl1H1gX2XOloh+iF/8INZ58NIhYz4ZaoWLZiEZXKgS5C6MkY2xviwRt5cbiKaeDJH+rCNYvjtG17BdapS+8FOaryg43RkfHocWRDRD2aXU7q4633LU93SsXQ2n7blsOBBDf0xpicvZfO2f/AQu/3od1AsYWoJX+/ybfbPkIsShl8vj0HQP/i+b2WmCiGHGJ2/mtCBe+e1MMLb5h2xPxxj++l0Or9h/YZ/5SdvERmbS0AihcyEtoERKxr6Njhzzw+wypc+DKFdn2tVFd20WTg2RB7sR6QfjpYEtXp11Bo5EzIPp/OQiWI9FXJxxv2hagTAKM/pcmQj66nh4fiw6Y1k8iucWOqj8jvnkryiAY902sj5pOZ6l+ffsz6PFju7DX2Zn2fR2sAMxvXVFaoSXstvc7y8LXz/xXHHhzRr0uZIEHVDX6+LSWsHEpWpq9fBlk5OOZYzazCWtnyLf+QDiVCUHWyDJMMOqNDuoAy8bKmENlvsrIquKuewiDCX9JwiMVJD1O8qU9sp3gNLnvho3EqQ1OXI8KdlbIGdnR+nFpLPFZp9QE6QaU+A82Clx4Ap8ZarOfCTt3RZ/cEI7X6CB6FaTYrMXwzpdKfIpBqLwkq9qxAvkW25j7hLZljukFgnlEBbz59z0cAxcrPGXwRqMQTyTVX1yBlGZPGPArhTs10PpE X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR01MB5849.prod.exchangelabs.com;PTR:;CAT:NONE;SFS:(4636009)(396003)(39850400004)(136003)(346002)(366004)(376002)(186003)(66476007)(6506007)(2616005)(6486002)(66946007)(52116002)(6916009)(16526019)(38100700002)(38350700002)(1076003)(83380400001)(66556008)(6512007)(956004)(316002)(478600001)(6666004)(4326008)(8676002)(5660300002)(26005)(86362001)(2906002)(8936002)(54906003)(69590400013)(44824005)(14943795004);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData: =?us-ascii?Q?v/d+Rt3NW54zy790yAlK5T67SIkYLRIynDGEUbCup5aY6C6xRxdT6EJighjv?= =?us-ascii?Q?boWgnhvdcNxmOsYzZwYrMHQIl4O7lI429KCmZByYs++1bST7NB88bzPk/t21?= =?us-ascii?Q?i0R1OhQ7B5N3xRXmqinQhWvtmzgZeeh7o/DAgioxj2WS/NkT+pPHz3noPQM0?= =?us-ascii?Q?ripf7TlYm9c4Y3OSQAVnDsatv6iGqbRtfesNx/Ux07eOeRDpPjxImhAHf5jo?= =?us-ascii?Q?m62Wol11pcGzESAZNqntxcjy54ynhOYSIE9uYdDmm8u47Wo4GXE7C4sZnvvD?= =?us-ascii?Q?1YaU11HbUVUaN0kwy0ygQB11dfkoMHifawlwbDRjipx6VfMTqp51y4djFg4X?= =?us-ascii?Q?5Iaikz+HItUBsS3Za3WpzdvIZq0Zas/MUNt71ZbFlMm4kpckla2Zw525uy1h?= =?us-ascii?Q?5WRkOZw8uqdwpgiJrQNJhFt03hMZ1yiashoBMpTE3qE2IUKlqm/QLQG2kmgf?= =?us-ascii?Q?gcLIsBWQO18R9n9US6MOKjv7drhT01b6ypMktH9H4VJtcIZieWvcqk1F5p/K?= =?us-ascii?Q?TP9L6ouo6pNgMpL/G3/aBHDFEl9EhuJmatHM0K110oFSC2LectFJvGtcaQyM?= =?us-ascii?Q?YA/vkqMU4DlqJD1sRhIkESAOH4ktIroALrWyzT7sIsi4VAHTN6/Mv0+ZkdXz?= =?us-ascii?Q?Wi29VIT4676cCZQXXbPHTwE1XHtOl5vbEmcTjYoN1TTeL2N0vjDuySPXdW6r?= =?us-ascii?Q?jFj6dsvOq/N0J00j5Bh7ACZrmCuzolo/ymfLy2m5wMuQketCMQmQSkOicGRL?= =?us-ascii?Q?LcbnTIm0gKljU7HpA/41z/vJ/MCva52YcosZshpb382NTSfVhF0xx1jsfLDA?= =?us-ascii?Q?Sx3gcEk2ezRFyLSkrXAkd+r2BnDWa/R0sK2spdaAiKeBXjhZEU3yPQZ23Mjm?= =?us-ascii?Q?YT90gf0HnnbFHzxdr7rxjNYpHJsjP1qDtCgJJ2AFTIBJJSVGwzILwuZ/nPd8?= =?us-ascii?Q?1aAw80nSafgv1lnQLkjqvqeMnaAx71ZgXSSBLiCGDUvDgV8wYq2ZJl5xMwIn?= =?us-ascii?Q?H3LeRifZQR4EveyPoXB3jZDcURX4k8Ig6OmB4mm1VOTw7hJUod/RUjMDreI0?= =?us-ascii?Q?f5ODhszxilhjoEu0RECJFovxh+FZOMj+7WUw44lOmOQAcaeoRvTh/cBUQ2DI?= =?us-ascii?Q?e8WjHoxnB11N15eJTiVKRVWWYvsodSjuQV36mU1Y4JDZ+52kX4xi2mp9Byea?= =?us-ascii?Q?zuF7427SY0EU4bkiLtL0QnZTMrO987vM/z2m+j3lzjpf+6FUnZLI7s6mzGvY?= =?us-ascii?Q?33DrBlXCYzPvUJvtFj4cnm7L6A357lQ0oivBVSRNL7BIk/4FgPmt+CatYulk?= =?us-ascii?Q?tqTOTQ76MtpO6G/TKLLdY9+Y?= X-OriginatorOrg: os.amperecomputing.com X-MS-Exchange-CrossTenant-Network-Message-Id: f0e0c8b0-888d-4e45-ad66-08d9202eba7d X-MS-Exchange-CrossTenant-AuthSource: DM6PR01MB5849.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2021 10:12:12.0388 (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: IOzkiftTntKxhedHT//YYiKtYj5K5UEDh3r8SD1vBAQrDiWDRryVQwDOhXwE5wOFQnJjTMAHVl8aZjey4AI3nDp//Vgc70C1wRIx9Y7ont8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR01MB2426 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain From: Vu Nguyen This change is to produce RNG protocol which is required by several modules. Cc: Thang Nguyen Cc: Chuong Tran Cc: Phong Vo Cc: Leif Lindholm Cc: Michael D Kinney Cc: Ard Biesheuvel Cc: Nate DeSimone Signed-off-by: Vu Nguyen --- Silicon/Ampere/AmpereAltraPkg/AmpereAltraPkg.dsc.inc | 5 + Platform/Ampere/JadePkg/Jade.fdf | 5 + Silicon/Ampere/AmpereAltraPkg/Drivers/RngDxe/RngDxe.inf | 43 +++++ Silicon/Ampere/AmpereAltraPkg/Drivers/RngDxe/RngDxe.c | 164 +++++++= +++++++++++++ Silicon/Ampere/AmpereAltraPkg/Drivers/RngDxe/RngDxe.uni | 10 ++ Silicon/Ampere/AmpereAltraPkg/Drivers/RngDxe/RngDxeExtra.uni | 9 ++ 6 files changed, 236 insertions(+) diff --git a/Silicon/Ampere/AmpereAltraPkg/AmpereAltraPkg.dsc.inc b/Silicon= /Ampere/AmpereAltraPkg/AmpereAltraPkg.dsc.inc index 33f5fe7af544..930bbb5d385b 100755 --- a/Silicon/Ampere/AmpereAltraPkg/AmpereAltraPkg.dsc.inc +++ b/Silicon/Ampere/AmpereAltraPkg/AmpereAltraPkg.dsc.inc @@ -682,6 +682,11 @@ [Components.common] MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf Silicon/Ampere/AmpereAltraPkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.= inf =20 + # + # Random Number Generator Support + # + Silicon/Ampere/AmpereAltraPkg/Drivers/RngDxe/RngDxe.inf + # # Bds # diff --git a/Platform/Ampere/JadePkg/Jade.fdf b/Platform/Ampere/JadePkg/Jad= e.fdf index 6820a197568b..ef24e6f1f8e0 100755 --- a/Platform/Ampere/JadePkg/Jade.fdf +++ b/Platform/Ampere/JadePkg/Jade.fdf @@ -304,6 +304,11 @@ [FV.FvMain] # INF Drivers/ASpeed/ASpeedGopBinPkg/ASpeedAst2500GopDxe.inf =20 + # + # Random Number Generator Support + # + INF Silicon/Ampere/AmpereAltraPkg/Drivers/RngDxe/RngDxe.inf + # # UEFI application (Shell Embedded Boot Loader) # diff --git a/Silicon/Ampere/AmpereAltraPkg/Drivers/RngDxe/RngDxe.inf b/Sili= con/Ampere/AmpereAltraPkg/Drivers/RngDxe/RngDxe.inf new file mode 100644 index 000000000000..d3d2c20436a0 --- /dev/null +++ b/Silicon/Ampere/AmpereAltraPkg/Drivers/RngDxe/RngDxe.inf @@ -0,0 +1,43 @@ +## @file +# +# Copyright (c) 2021, Ampere Computing LLC. All rights reserved.
+# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +## + +[Defines] + INF_VERSION =3D 0x0001001B + BASE_NAME =3D RngDxe + FILE_GUID =3D 4FCC006E-C740-4027-BC97-787907C8D286 + MODULE_TYPE =3D DXE_DRIVER + VERSION_STRING =3D 1.0 + ENTRY_POINT =3D RngDriverEntry + MODULE_UNI_FILE =3D RngDxe.uni + +[Sources.common] + RngDxe.c + +[Packages] + MdePkg/MdePkg.dec + Silicon/Ampere/AmpereAltraPkg/AmpereAltraPkg.dec + +[LibraryClasses] + BaseLib + DebugLib + TrngLib + UefiBootServicesTableLib + UefiDriverEntryPoint + UefiLib + +[Guids] + gEfiRngAlgorithmRaw ## SOMETIMES_PRODUCES ## GUID = # Unique ID of the algorithm for RNG + +[Protocols] + gEfiRngProtocolGuid ## PRODUCES + +[UserExtensions.TianoCore."ExtraFiles"] + RngDxeExtra.uni + +[Depex] + TRUE diff --git a/Silicon/Ampere/AmpereAltraPkg/Drivers/RngDxe/RngDxe.c b/Silico= n/Ampere/AmpereAltraPkg/Drivers/RngDxe/RngDxe.c new file mode 100644 index 000000000000..bb8140cfeb2f --- /dev/null +++ b/Silicon/Ampere/AmpereAltraPkg/Drivers/RngDxe/RngDxe.c @@ -0,0 +1,164 @@ +/** @file + + Copyright (c) 2021, Ampere Computing LLC. All rights reserved.
+ + SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#include + +#include +#include +#include +#include +#include +#include + +/** + Returns information about the random number generation implementation. + + @param[in] This A pointer to the EFI_RNG_PROTOCOL in= stance. + @param[in,out] RNGAlgorithmListSize On input, the size in bytes of RNGAl= gorithmList. + On output with a return code of EFI_= SUCCESS, the size + in bytes of the data returned in RNG= AlgorithmList. On output + with a return code of EFI_BUFFER_TOO= _SMALL, + the size of RNGAlgorithmList require= d to obtain the list. + @param[out] RNGAlgorithmList A caller-allocated memory buffer fil= led by the driver + with one EFI_RNG_ALGORITHM element f= or each supported + RNG algorithm. The list must not cha= nge across multiple + calls to the same driver. The first = algorithm in the list + is the default algorithm for the dri= ver. + + @retval EFI_SUCCESS The RNG algorithm list was returned = successfully. + @retval EFI_INVALID_PARAMETER One or more of the parameters are in= correct. + @retval EFI_BUFFER_TOO_SMALL The buffer RNGAlgorithmList is too s= mall to hold the result. + +**/ +EFI_STATUS +EFIAPI +RngGetInfo ( + IN EFI_RNG_PROTOCOL *This, + IN OUT UINTN *RNGAlgorithmListSize, + OUT EFI_RNG_ALGORITHM *RNGAlgorithmList + ) +{ + if (This =3D=3D NULL || RNGAlgorithmListSize =3D=3D NULL) { + return EFI_INVALID_PARAMETER; + } + + if (*RNGAlgorithmListSize < sizeof (EFI_RNG_ALGORITHM)) { + *RNGAlgorithmListSize =3D sizeof (EFI_RNG_ALGORITHM); + return EFI_BUFFER_TOO_SMALL; + } + + if (RNGAlgorithmList =3D=3D NULL) { + return EFI_INVALID_PARAMETER; + } + + *RNGAlgorithmListSize =3D sizeof (EFI_RNG_ALGORITHM); + CopyGuid (RNGAlgorithmList, &gEfiRngAlgorithmRaw); + + return EFI_SUCCESS; +} + +/** + Produces and returns an RNG value using either the default or specified = RNG algorithm. + + @param[in] This A pointer to the EFI_RNG_PROTOCOL in= stance. + @param[in] RNGAlgorithm A pointer to the EFI_RNG_ALGORITHM t= hat identifies the RNG + algorithm to use. May be NULL in whi= ch case the function will + use its default RNG algorithm. + @param[in] RNGValueLength The length in bytes of the memory bu= ffer pointed to by + RNGValue. The driver shall return ex= actly this numbers of bytes. + @param[out] RNGValue A caller-allocated memory buffer fil= led by the driver with the + resulting RNG value. + + @retval EFI_SUCCESS The RNG value was returned successfu= lly. + @retval EFI_UNSUPPORTED The algorithm specified by RNGAlgori= thm is not supported by + this driver. + @retval EFI_DEVICE_ERROR An RNG value could not be retrieved = due to a hardware or + firmware error. + @retval EFI_INVALID_PARAMETER RNGValue is NULL or RNGValueLength i= s zero. + +**/ +EFI_STATUS +EFIAPI +RngGetRNG ( + IN EFI_RNG_PROTOCOL *This, + IN EFI_RNG_ALGORITHM *RNGAlgorithm, OPTIONAL + IN UINTN RNGValueLength, + OUT UINT8 *RNGValue + ) +{ + EFI_STATUS Status; + + if (This =3D=3D NULL || RNGValueLength =3D=3D 0 || RNGValue =3D=3D NULL)= { + return EFI_INVALID_PARAMETER; + } + + // + // We only support the raw algorithm, so reject requests for anything el= se + // + if (RNGAlgorithm !=3D NULL && + !CompareGuid (RNGAlgorithm, &gEfiRngAlgorithmRaw)) + { + return EFI_UNSUPPORTED; + } + + Status =3D GenerateRandomNumbers (RNGValue, RNGValueLength); + if (EFI_ERROR (Status)) { + DEBUG (( + DEBUG_ERROR, + "%a:%d Failed to generate a random number. \n", + __FUNCTION__, + __LINE__ + )); + return Status; + } + + return EFI_SUCCESS; +} + +/* + * The Random Number Generator (RNG) protocol + */ +EFI_RNG_PROTOCOL mRng =3D { + RngGetInfo, + RngGetRNG +}; + +/** + The user Entry Point for the Random Number Generator (RNG) driver. + + @param[in] ImageHandle The firmware allocated handle for the EFI imag= e. + @param[in] SystemTable A pointer to the EFI System Table. + + @retval EFI_SUCCESS The entry point is executed successfully. + @retval EFI_NOT_SUPPORTED Platform does not support RNG. + @retval Other Some error occurs when executing this entry po= int. + +**/ +EFI_STATUS +EFIAPI +RngDriverEntry ( + IN EFI_HANDLE ImageHandle, + IN EFI_SYSTEM_TABLE *SystemTable + ) +{ + EFI_STATUS Status; + EFI_HANDLE Handle; + + // + // Install UEFI RNG (Random Number Generator) Protocol + // + Handle =3D NULL; + Status =3D gBS->InstallMultipleProtocolInterfaces ( + &Handle, + &gEfiRngProtocolGuid, + &mRng, + NULL + ); + + return Status; +} diff --git a/Silicon/Ampere/AmpereAltraPkg/Drivers/RngDxe/RngDxe.uni b/Sili= con/Ampere/AmpereAltraPkg/Drivers/RngDxe/RngDxe.uni new file mode 100644 index 000000000000..cd9dde97a236 --- /dev/null +++ b/Silicon/Ampere/AmpereAltraPkg/Drivers/RngDxe/RngDxe.uni @@ -0,0 +1,10 @@ +// +// Copyright (c) 2021, Ampere Computing LLC. All rights reserved.
+// +// SPDX-License-Identifier: BSD-2-Clause-Patent +// + + +#string STR_MODULE_ABSTRACT #language en-US "Produces UEFI Ran= dom Number Generator protocol" + +#string STR_MODULE_DESCRIPTION #language en-US "This module will = produce UEFI Random Number Generator protocol." diff --git a/Silicon/Ampere/AmpereAltraPkg/Drivers/RngDxe/RngDxeExtra.uni b= /Silicon/Ampere/AmpereAltraPkg/Drivers/RngDxe/RngDxeExtra.uni new file mode 100644 index 000000000000..9a3696b25442 --- /dev/null +++ b/Silicon/Ampere/AmpereAltraPkg/Drivers/RngDxe/RngDxeExtra.uni @@ -0,0 +1,9 @@ +// +// Copyright (c) 2021, Ampere Computing LLC. All rights reserved.
+// +// SPDX-License-Identifier: BSD-2-Clause-Patent +// + +#string STR_PROPERTIES_MODULE_NAME +#language en-US +"Ampere UEFI Random Number Generator DXE" --=20 2.17.1