From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (NAM11-CO1-obe.outbound.protection.outlook.com [40.107.220.49]) by mx.groups.io with SMTP id smtpd.web09.4139.1666422971248121760 for ; Sat, 22 Oct 2022 00:16:11 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@amd.com header.s=selector1 header.b=RTpvvDah; spf=permerror, err=parse error for token &{10 18 %{i}._ip.%{h}._ehlo.%{d}._spf.vali.email}: invalid domain name (domain: amd.com, ip: 40.107.220.49, mailfrom: abner.chang@amd.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YK/YPGERMVnHI5FWKuD8LCWDAKHKEV2ykfoBUo8BFXhOHoVQRQQsjVtQLV1yJ6h5uTl0D9ikd+Gerj7RckK3S0HzbI3DxMLOROccwbddUfpboUHoUXFkZj/WYHM+Q0qfuHkYnpPivqNc/hIGAzy+I6zowxb9aV26cKkZRwgMcB4QDQITQgzGcAnLzwKbiEq4mwa09D2v9RkJLN9x5JY0q8wGhF+Vg1b6zwiX1Nhhn0zHlE4K3o6JIYoCF3I/bOoO4TsmXYB+Mggxfl4Qvf+KCwoiAX5bDXIWBw9565h4uEozQr6ra2LW/8sSVQrwn4zvBvA15aB/YbKwYAx0WTCnBA== 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=jAgxfp2pLCZUHnXR92Q4gT+AqS0HWmqtLQvchwZ04C8=; b=XU1v/nApCG6uJd20PuaLhtDpqM++OTlNBDAAoezl2xesfD/0is6XwIckIdGI1p4Df8hUiUgNDMfOLC9/ur1aWTH8lbDudcI0oEkaWKyq0An6PlhLt6gcdH3ACgoKNynWf46bxVf/6KXJJaklVPf+uEQ+Z4Dy6w/euh37TtR/ViKPUEagoK1IlrpuouB0ROT3BMOy4jTe5QWbkHXnaq/UvFADfYAgfMgr51pRr+4NR53kgaeUfdfmAtFqnj0rbnG8ym3oDpbyjhFjqMEhs3trUHirx5YFoE2N17Z1M46T3N2fDVrJHQimuF/esqc/iE9mCiIRBoU6hgTIZPO0YUy9PA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=jAgxfp2pLCZUHnXR92Q4gT+AqS0HWmqtLQvchwZ04C8=; b=RTpvvDah+7lwcVtmB+L/lqgGRmx1fHO3dk7QxbpjTckCUltzgm+Gk9kU1k1eaYwYfi9/o+7vBbIiBym0xR8CWNBLj+R8tvaWHziUDQSh7+5LFIJ7ct/U8LT2Q+iBmW2KZtgWHpd1QJNbVMU8nvCTN59zbEHOIfbmmcoeP9Efy5Y= Received: from MN2PR12MB3966.namprd12.prod.outlook.com (2603:10b6:208:165::18) by LV2PR12MB5966.namprd12.prod.outlook.com (2603:10b6:408:171::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5723.26; Sat, 22 Oct 2022 07:16:08 +0000 Received: from MN2PR12MB3966.namprd12.prod.outlook.com ([fe80::2eab:b851:827c:1d88]) by MN2PR12MB3966.namprd12.prod.outlook.com ([fe80::2eab:b851:827c:1d88%3]) with mapi id 15.20.5746.021; Sat, 22 Oct 2022 07:16:08 +0000 From: "Chang, Abner" To: "devel@edk2.groups.io" , "sunilvl@ventanamicro.com" CC: Ard Biesheuvel , Jiewen Yao , Jordan Justen , Gerd Hoffmann Subject: Re: [edk2-devel] [edk2-staging/RiscV64QemuVirt PATCH V4 32/34] OvmfPkg: RiscVVirt: Add Qemu Virt platform support Thread-Topic: [edk2-devel] [edk2-staging/RiscV64QemuVirt PATCH V4 32/34] OvmfPkg: RiscVVirt: Add Qemu Virt platform support Thread-Index: AQHY3+1vGb7sHfH2BkiHji312672Na4aDAAQ Date: Sat, 22 Oct 2022 07:16:07 +0000 Message-ID: References: <20221014164836.1513036-1-sunilvl@ventanamicro.com> <20221014164836.1513036-33-sunilvl@ventanamicro.com> In-Reply-To: <20221014164836.1513036-33-sunilvl@ventanamicro.com> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Enabled=true; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SetDate=2022-10-22T07:16:05Z; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Method=Standard; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Name=General; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ActionId=a6a460c2-1e16-4edc-8557-2cd7aee88199; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ContentBits=1 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MN2PR12MB3966:EE_|LV2PR12MB5966:EE_ x-ms-office365-filtering-correlation-id: 02d57b00-5182-48e1-0274-08dab3fd4a41 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 0UAuzM0HKr4gbM6P0fTvB2U+dzQ7s6tRSVGh5PDb5sC6Ain8fEIQvI6Dtm8DDwpuQvax3Q2DkDYxfD0cXVPwj4dVLkcwzYTI8mJwApUOYsakqT6gpKZfzMmBowv9KBNVv1w+7UC9D9X41IuJCq1umvwdRaWlN6oJ+xOvDB0n2PzL2lhVFhD2XjhCqNwv7gxv6cALP6iI9wAGn9yo5ESPOh3tv0Gm+NS6jwPvUQUrqhWEr78F4EaBsftBpxR3QWol6Qo1BeTrea9/g6b1cqRgCta1zYGpZQ2a0UxSf9XmCwpgik1/7HbSN2eqY4gxUD5myJK4Lyhvt+b0mlTO3TnYECT+sruN0HZMKDQqHUkNuDjVIZX3WP6xUrb02JJUue9Ok1jZ9YLFDGgrg6Hz9b1gjtn4BZJKDIhxPUpLzXdNtbRTZq/S/InjuJD5BgxtPdkayYtSkjULGpcePAuz3whCtLrG/bi1+gdVWI29JZGu88Z4UDM7YajatB+AYv4Wvbx8eQwU3rhYeg9IfCua2GfrvKeSXajWzqfcma3jFFqaeOs74S+fsdipAGIgHOgstAKa6gXZfUyuXtLbyG6+p5Px4cFMAd/PTakjzYzXdEsIaxJOx3T0K4hsZxFFPhzxPk7UsS/R9X5aIxPl7R6EN6mPbNf/9fV9eTjnyP3fNcpxB1gMz1mY/g69l5REypA+jCD18g3zTw4wJIR50QJZFycSN0XqKTrMsrMVfl0zkvuBk+tcCAmXmkydUKfT7dewKyh0KTfxj8jFUdNri1Igx/Lez2AArFcnba3YXyzEZQUOAm1+biZWis60XesEwVIgfO666UDkpWj01+jTh3j4me2X6Q== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN2PR12MB3966.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(366004)(376002)(39860400002)(396003)(136003)(346002)(451199015)(30864003)(33656002)(7696005)(6506007)(53546011)(186003)(38070700005)(8676002)(66946007)(4326008)(966005)(38100700002)(64756008)(76116006)(66446008)(66476007)(66556008)(5660300002)(8936002)(52536014)(110136005)(478600001)(122000001)(55016003)(26005)(19627235002)(83380400001)(2906002)(9686003)(316002)(41300700001)(66899015)(86362001)(45080400002)(71200400001)(54906003)(579004)(559001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?tmLLWyMxjc0Gf1ia5lYnnhfIFRRh/JOXQCLQwGIPYn4RRXPZ1iKig7v7N35o?= =?us-ascii?Q?tgqFhRsM/X6oxLkihRtX61KfRSWHcH6tR5xsUqHaiMISGr4YKIqxImTj9vmU?= =?us-ascii?Q?dBmzCXWaW+UO5Rz7oQ2RhHonLJqF1n/iyvW8c055R6X5lDZy2j3gd0KhTTef?= =?us-ascii?Q?51XPBzwF/dCL02RU8zUbvUoATtkzwNeO+jP3uxhNg9n2aLHn8qjoOjbhkiwQ?= =?us-ascii?Q?+25u7yzPXqb0ue7t0P2e7jxL0vCiAObgTme799UEKslfUCjmw2M4ujEUUUOQ?= =?us-ascii?Q?MkMpbDjKGfeG2T1KNSKrzXIJG9lNCho7FfI1zAy6PlHg8bzsRUdCYvoyleME?= =?us-ascii?Q?YDNTcy4rp1sZpZkKjyYnpbgF+ZXgUa2vZ+WHbPcv9GW+T7w5+rzo6eR0yM9t?= =?us-ascii?Q?S/oYSApKQaZnsigrsC+wb4RZKUnp35urNqQDVLEcMVgI9fcvp/+S/fTfcdbM?= =?us-ascii?Q?1UYdls+8W08zYgsiyS1nJyld1VAUcK7eq/zjYeeofURE/3SXTYzn1qYMVQNd?= =?us-ascii?Q?Gsg3O+NmAa69MJdrayAxODUDx7rdgmsEOMm/CXqw/1krdJ405FF76jaFDWfn?= =?us-ascii?Q?JxPpXD3t8ruXG0k2tgbL0hU9V+qFblQU2yodSUCWkKNC1x9ZcRWUWG9z40Vt?= =?us-ascii?Q?yg8heTbVfpAbiy+QRNN7VwIp9aULSOLQuEEw7FTD8UE0DuMbXHM6OIe/KC2T?= =?us-ascii?Q?A8ZM/v8ybkd0ehWNLkz4tRqIXy3hyTF5SZbTgzemVukecGGuX6kvp/F24Ci5?= =?us-ascii?Q?i4BFMi/9v7TYSpyPjBatgSwjk/m5HbUb3ahNGL0UfDGOtSVmEXbYQ1Vsm8zD?= =?us-ascii?Q?M+B9ycrY7ekmBfAJpuD5pz0ZvNyC/wiAjcpiVCtkYxKxuBDAA2OKjdSQTnI1?= =?us-ascii?Q?/gAIvdMjNXuB35TMhh2drwCCgLQ0stYfu5LiK1giwvvLx5sFqJEclBHnjoDf?= =?us-ascii?Q?sSQ0+RPfAg4Y0ahv3vumHIkSkK2gMatdKYvyuy2R4MoVpUE97GFLZulH/I8f?= =?us-ascii?Q?rXLl/g9XxBkIZ+JJ0QfKjFhZtUqoa1jWvL27JXMLwfojbkTyXDFqnZJ+OYG4?= =?us-ascii?Q?kWVCC87VbHmkJ6JImPxw4fT+5cCBi+5WFogVKGhKVH5+JqAy4jeRFnXesw2B?= =?us-ascii?Q?3ZW0PQ2jZ9xxX39zE7xAOmKviHbqeLCmFgCA3Njo2H3B/aIbg0ryMPKpmP6F?= =?us-ascii?Q?g7qrW9gyH/xP0paOSCVIOIyDXv67SqVoBAl9bN/HspZuQPZHYOxBCGZ7uzIU?= =?us-ascii?Q?I+huV9tFg/z5Hy1iFvs1dRFHAcKb0Zb3XD4zJ4MspVaEa8yCQfWyYXwROcpQ?= =?us-ascii?Q?Mpf6wpLZlHPfn7hfrimJ5+DUUySpBn62wxGkklEvIzEj3yHEFZFdfL+Na8Xq?= =?us-ascii?Q?V2sQCrdVI4BvfXLC5f+hyBincQLcHObrMAZ1lbB+bhzgHGhZAZ0Rlpbg7XOx?= =?us-ascii?Q?qNM+MJh0setkUSnber4u5uYPeMRuB8/RGQa0weGOKUpaRdDIbTwACoAS5bsb?= =?us-ascii?Q?UQ+4sQFP+u1NWMkGsQEtvePigzyq7N8Gn/+1cFyyxXHm936sThWUbjVvR1sK?= =?us-ascii?Q?y4DHo+V4RhB0irGiECc=3D?= MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN2PR12MB3966.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 02d57b00-5182-48e1-0274-08dab3fd4a41 X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Oct 2022 07:16:07.9906 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: TinsSEU2O3F0gV69x9HLq3kocirXekfQOnZQQh1/SLbHuEWx1vwHMkYFZ1pZTG3TQpA0+2uf/L/Q2eZf4Rzd/g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV2PR12MB5966 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable [AMD Official Use Only - General] Acked-by: Abner Chang Thanks for making RiscVVirt happened. Abner > -----Original Message----- > From: devel@edk2.groups.io On Behalf Of Sunil V L > via groups.io > Sent: Saturday, October 15, 2022 12:49 AM > To: devel@edk2.groups.io > Cc: Ard Biesheuvel ; Jiewen Yao > ; Jordan Justen ; Gerd > Hoffmann > Subject: [edk2-devel] [edk2-staging/RiscV64QemuVirt PATCH V4 32/34] > OvmfPkg: RiscVVirt: Add Qemu Virt platform support >=20 > Caution: This message originated from an External Source. Use proper > caution when opening attachments, clicking links, or responding. >=20 >=20 > REF: > https://nam11.safelinks.protection.outlook.com/?url=3Dhttps%3A%2F%2Fbugz > illa.tianocore.org%2Fshow_bug.cgi%3Fid%3D4076&data=3D05%7C01%7Ca > bner.chang%40amd.com%7Cfa8ce163113f40a674b108daae048fd5%7C3dd896 > 1fe4884e608e11a82d994e183d%7C0%7C0%7C638013631882315450%7CUnkn > own%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik > 1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=3DtS3kG3rGf%2BR > qH%2F4stn4SyeBXDPpROcbdpcxGWHkx%2BGQ%3D&reserved=3D0 >=20 > Add infrastructure files to build edk2 for RISC-V qemu virt machine. >=20 > - EDK2 will boot as S-mode payload of opensbi. > - It supports building > either code and variables in unified flash or in two separate drives > via build time option UNIFIED_NVVARS. >=20 > Cc: Ard Biesheuvel > Cc: Jiewen Yao > Cc: Jordan Justen > Cc: Gerd Hoffmann > Signed-off-by: Sunil V L > --- > OvmfPkg/Platforms/RiscVVirt/RiscVVirt.dsc | 726 > ++++++++++++++++++++ > OvmfPkg/Platforms/RiscVVirt/RiscVVirt.fdf | 406 +++++++++++ > OvmfPkg/Platforms/RiscVVirt/RiscVVirt.fdf.inc | 66 ++ > OvmfPkg/Platforms/RiscVVirt/VarStore.fdf.inc | 79 +++ > 4 files changed, 1277 insertions(+) >=20 > diff --git a/OvmfPkg/Platforms/RiscVVirt/RiscVVirt.dsc > b/OvmfPkg/Platforms/RiscVVirt/RiscVVirt.dsc > new file mode 100644 > index 000000000000..63d95e91abe2 > --- /dev/null > +++ b/OvmfPkg/Platforms/RiscVVirt/RiscVVirt.dsc > @@ -0,0 +1,726 @@ > +## @file > +# RISC-V EFI on RiscVVirt RISC-V platform > +# > +# Copyright (c) 2021, Hewlett Packard Enterprise Development LP. All ri= ghts > reserved.
> +# Copyright (c) 2022, Ventana Micro Systems Inc. All rights reserved. > +# > +# SPDX-License-Identifier: BSD-2-Clause-Patent > +# > +## > + > +######################################################### > ####################### > +# > +# Defines Section - statements that will be processed to create a Makefi= le. > +# > +######################################################### > ####################### > +[Defines] > + PLATFORM_NAME =3D RiscVVirt > + PLATFORM_GUID =3D 39DADB39-1B21-4867-838E-830B6149B9E= 0 > + PLATFORM_VERSION =3D 0.1 > + DSC_SPECIFICATION =3D 0x0001001c > + OUTPUT_DIRECTORY =3D Build/$(PLATFORM_NAME) > + SUPPORTED_ARCHITECTURES =3D RISCV64 > + BUILD_TARGETS =3D DEBUG|RELEASE|NOOPT > + SKUID_IDENTIFIER =3D DEFAULT > + FLASH_DEFINITION =3D OvmfPkg/Platforms/RiscVVirt/RiscVVi= rt.fdf > + > + # > + # Enable below options may cause build error or may not work on > + # the initial version of RISC-V package > + # Defines for default states. These can be changed on the command lin= e. > + # -D FLAG=3DVALUE > + # > + DEFINE SECURE_BOOT_ENABLE =3D FALSE > + DEFINE DEBUG_ON_SERIAL_PORT =3D TRUE > + > + # > + # Network definition > + # > + DEFINE NETWORK_SNP_ENABLE =3D FALSE > + DEFINE NETWORK_IP6_ENABLE =3D FALSE > + DEFINE NETWORK_TLS_ENABLE =3D TRUE > + DEFINE NETWORK_HTTP_BOOT_ENABLE =3D TRUE > + DEFINE NETWORK_ISCSI_ENABLE =3D FALSE > + DEFINE NETWORK_ALLOW_HTTP_CONNECTIONS =3D TRUE > + > +[BuildOptions] > + GCC:RELEASE_*_*_CC_FLAGS =3D -DMDEPKG_NDEBUG > +!ifdef $(SOURCE_DEBUG_ENABLE) > + GCC:*_*_RISCV64_GENFW_FLAGS =3D --keepexceptiontable > +!endif > + > +[BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER] > + GCC: *_*_*_DLINK_FLAGS =3D -z common-page-size=3D0x1000 > + MSFT: *_*_*_DLINK_FLAGS =3D /ALIGN:4096 > + > +######################################################### > ####################### > +# > +# SKU Identification section - list of all SKU IDs supported by this Pla= tform. > +# > +######################################################### > ####################### > +[SkuIds] > + 0|DEFAULT > + > +######################################################### > ####################### > +# > +# Library Class section - list of all Library Classes needed by this Pla= tform. > +# > +######################################################### > ####################### > + > +!include MdePkg/MdeLibs.dsc.inc > + > +[LibraryClasses] > + PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf > + PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf > + BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf > + BaseLib|MdePkg/Library/BaseLib/BaseLib.inf > + SafeIntLib|MdePkg/Library/BaseSafeIntLib/BaseSafeIntLib.inf > + > SynchronizationLib|MdePkg/Library/BaseSynchronizationLib/BaseSynchroniz > ationLib.inf > + CpuLib|MdePkg/Library/BaseCpuLib/BaseCpuLib.inf > + > PerformanceLib|MdePkg/Library/BasePerformanceLibNull/BasePerformanc > eLibNull.inf > + PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf > + > CacheMaintenanceLib|MdePkg/Library/BaseCacheMaintenanceLib/BaseCac > heMaintenanceLib.inf > + > UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDeco > mpressLib.inf > + > UefiHiiServicesLib|MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiService > sLib.inf > + HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf > + > CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.i > nf > + DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf > + > DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTabl > eLib.inf > + > PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/Base > PeCoffGetEntryPointLib.inf > + IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf > + > OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibN > ull/OemHookStatusCodeLibNull.inf > + > SerialPortLib|MdeModulePkg/Library/BaseSerialPortLib16550/BaseSerialPort > Lib16550.inf > + > PlatformHookLib|MdeModulePkg/Library/BasePlatformHookLibNull/BasePla > tformHookLibNull.inf > + UefiLib|MdePkg/Library/UefiLib/UefiLib.inf > + > UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBo > otServicesTableLib.inf > + > UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib > /UefiRuntimeServicesTableLib.inf > + > UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntry > Point.inf > + > UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiA > pplicationEntryPoint.inf > + > DevicePathLib|MdePkg/Library/UefiDevicePathLibDevicePathProtocol/UefiD > evicePathLibDevicePathProtocol.inf > + FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf > + > SecurityManagementLib|MdeModulePkg/Library/DxeSecurityManagementL > ib/DxeSecurityManagementLib.inf > + UefiUsbLib|MdePkg/Library/UefiUsbLib/UefiUsbLib.inf > + > CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/Custo > mizedDisplayLib.inf > + SortLib|MdeModulePkg/Library/BaseSortLib/BaseSortLib.inf > + > VariableFlashInfoLib|MdeModulePkg/Library/BaseVariableFlashInfoLib/Base > VariableFlashInfoLib.inf > + > UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBoo > tManagerLib.inf > + > VariablePolicyLib|MdeModulePkg/Library/VariablePolicyLib/VariablePolicyLi > bRuntimeDxe.inf > + FdtLib|EmbeddedPkg/Library/FdtLib/FdtLib.inf > + > VariablePolicyHelperLib|MdeModulePkg/Library/VariablePolicyHelperLib/Va > riablePolicyHelperLib.inf > + TimerLib|UefiCpuPkg/Library/CpuTimerLib/BaseCpuTimerLib.inf > + TimeBaseLib|EmbeddedPkg//Library/TimeBaseLib/TimeBaseLib.inf > + > RealTimeClockLib|EmbeddedPkg//Library/VirtualRealTimeClockLib/VirtualRe > alTimeClockLib.inf > +!ifdef $(UNIFIED_VARSTORE) > + > NorFlashPlatformLib|OvmfPkg/Library/NorFlashQemuLib/NorFlashQemuUni > fiedLib.inf > +!else > + > NorFlashPlatformLib|OvmfPkg/Library/NorFlashQemuLib/NorFlashQemuLib. > inf > +!endif > + > QemuFwCfgLib|OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgLibMmio.inf > + > ResetSystemLib|OvmfPkg/Library/ResetSystemLib/BaseResetSystemLib.inf > + > +!ifdef $(SOURCE_DEBUG_ENABLE) > + > PeCoffExtraActionLib|SourceLevelDebugPkg/Library/PeCoffExtraActionLibD > ebug/PeCoffExtraActionLibDebug.inf > + > DebugCommunicationLib|SourceLevelDebugPkg/Library/DebugCommunicati > onLibSerialPort/DebugCommunicationLibSerialPort.inf > +!else > + > PeCoffExtraActionLib|MdePkg/Library/BasePeCoffExtraActionLibNull/BaseP > eCoffExtraActionLibNull.inf > + > DebugAgentLib|MdeModulePkg/Library/DebugAgentLibNull/DebugAgentLi > bNull.inf > +!endif > + > + > DebugPrintErrorLevelLib|MdePkg/Library/BaseDebugPrintErrorLevelLib/Bas > eDebugPrintErrorLevelLib.inf > + > +!if $(SECURE_BOOT_ENABLE) =3D=3D TRUE > + IntrinsicLib|CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf > + OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLib.inf > + > TpmMeasurementLib|SecurityPkg/Library/DxeTpmMeasurementLib/DxeTp > mMeasurementLib.inf > + AuthVariableLib|SecurityPkg/Library/AuthVariableLib/AuthVariableLib.in= f > +!else > + > TpmMeasurementLib|MdeModulePkg/Library/TpmMeasurementLibNull/Tp > mMeasurementLibNull.inf > + > AuthVariableLib|MdeModulePkg/Library/AuthVariableLibNull/AuthVariableL > ibNull.inf > +!endif > + VarCheckLib|MdeModulePkg/Library/VarCheckLib/VarCheckLib.inf > + > +!if $(HTTP_BOOT_ENABLE) =3D=3D TRUE > + HttpLib|MdeModulePkg/Library/DxeHttpLib/DxeHttpLib.inf > +!endif > + > + SmbusLib|MdePkg/Library/BaseSmbusLibNull/BaseSmbusLibNull.inf > + > OrderedCollectionLib|MdePkg/Library/BaseOrderedCollectionRedBlackTreeL > ib/BaseOrderedCollectionRedBlackTreeLib.inf > + > +[LibraryClasses.common] > +!if $(SECURE_BOOT_ENABLE) =3D=3D TRUE > + BaseCryptLib|CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf > +!endif > + > + RiscVSbiLib|MdePkg/Library/BaseRiscVSbiLib/BaseRiscVSbiLib.inf > + > + # PCI Libraries > + PciLib|MdePkg/Library/BasePciLibPciExpress/BasePciLibPciExpress.inf > + PciExpressLib|MdePkg/Library/BasePciExpressLib/BasePciExpressLib.inf > + PciCapLib|OvmfPkg/Library/BasePciCapLib/BasePciCapLib.inf > + > PciCapPciSegmentLib|OvmfPkg/Library/BasePciCapPciSegmentLib/BasePciCa > pPciSegmentLib.inf > + PciCapPciIoLib|OvmfPkg/Library/UefiPciCapPciIoLib/UefiPciCapPciIoLib.i= nf > + > DxeHardwareInfoLib|OvmfPkg/Library/HardwareInfoLib/DxeHardwareInfoLi > b.inf > + > + # Virtio Support > + VirtioLib|OvmfPkg/Library/VirtioLib/VirtioLib.inf > + > VirtioMmioDeviceLib|OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDev > iceLib.inf > + > QemuFwCfgS3Lib|OvmfPkg/Library/QemuFwCfgS3Lib/BaseQemuFwCfgS3Li > bNull.inf > + > QemuFwCfgSimpleParserLib|OvmfPkg/Library/QemuFwCfgSimpleParserLib/ > QemuFwCfgSimpleParserLib.inf > + > QemuLoadImageLib|OvmfPkg/Library/GenericQemuLoadImageLib/Generic > QemuLoadImageLib.inf > + > + # PCI support > + > PciSegmentLib|MdePkg/Library/BasePciSegmentLibPci/BasePciSegmentLibP > ci.inf > + > PciHostBridgeLib|MdeModulePkg/Library/PciHostBridgeLibNull/PciHostBridg > eLibNull.inf > + > + # Boot Manager > +!if $(TPM2_ENABLE) =3D=3D TRUE > + > Tpm2CommandLib|SecurityPkg/Library/Tpm2CommandLib/Tpm2CommandL > ib.inf > + > Tcg2PhysicalPresenceLib|OvmfPkg/Library/Tcg2PhysicalPresenceLibQemu/D > xeTcg2PhysicalPresenceLib.inf > + > TpmMeasurementLib|SecurityPkg/Library/DxeTpmMeasurementLib/DxeTp > mMeasurementLib.inf > + > TpmPlatformHierarchyLib|SecurityPkg/Library/PeiDxeTpmPlatformHierarchy > Lib/PeiDxeTpmPlatformHierarchyLib.inf > +!else > + > TpmMeasurementLib|MdeModulePkg/Library/TpmMeasurementLibNull/Tp > mMeasurementLibNull.inf > + > TpmPlatformHierarchyLib|SecurityPkg/Library/PeiDxeTpmPlatformHierarchy > LibNull/PeiDxeTpmPlatformHierarchyLib.inf > +!endif > + > + BootLogoLib|MdeModulePkg/Library/BootLogoLib/BootLogoLib.inf > + > PlatformBmPrintScLib|OvmfPkg/Library/PlatformBmPrintScLib/PlatformBmP > rintScLib.inf > + > + > PlatformBootManagerLib|OvmfPkg/Library/PlatformBootManagerLibVirt/Pla > tformBootManagerLib.inf > + > + > FrameBufferBltLib|MdeModulePkg/Library/FrameBufferBltLib/FrameBuffer > BltLib.inf > + > QemuBootOrderLib|OvmfPkg/Library/QemuBootOrderLib/QemuBootOrder > Lib.inf > + FileExplorerLib|MdeModulePkg/Library/FileExplorerLib/FileExplorerLib.i= nf > + > +[LibraryClasses.common.SEC] > +!ifdef $(DEBUG_ON_SERIAL_PORT) > + > DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort. > inf > +!else > + DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf > +!endif > + > + > CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/SecP > eiCpuExceptionHandlerLib.inf > + > ReportStatusCodeLib|MdeModulePkg/Library/PeiReportStatusCodeLib/PeiR > eportStatusCodeLib.inf > + > ExtractGuidedSectionLib|MdePkg/Library/BaseExtractGuidedSectionLib/Bas > eExtractGuidedSectionLib.inf > + > +!ifdef $(SOURCE_DEBUG_ENABLE) > + > DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/SecPeiDebugAg > entLib.inf > +!endif > + > + > MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemory > AllocationLib.inf > + > PlatformSecLib|UefiCpuPkg/Library/PlatformSecLibNull/PlatformSecLibNull.i > nf > + HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf > + > +[LibraryClasses.common.PEI_CORE] > + > CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/SecP > eiCpuExceptionHandlerLib.inf > + HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf > + > PeiServicesTablePointerLib|MdePkg/Library/PeiServicesTablePointerLib/Pei > ServicesTablePointerLib.inf > + PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf > + > MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemory > AllocationLib.inf > + > ReportStatusCodeLib|MdeModulePkg/Library/PeiReportStatusCodeLib/PeiR > eportStatusCodeLib.inf > + > OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibN > ull/OemHookStatusCodeLibNull.inf > + > PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/Base > PeCoffGetEntryPointLib.inf > +!ifdef $(DEBUG_ON_SERIAL_PORT) > + > DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort. > inf > +!else > + DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf > +!endif > + PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf > + > PeiCoreEntryPoint|MdePkg/Library/PeiCoreEntryPoint/PeiCoreEntryPoint.in > f > + > +[LibraryClasses.common.PEIM] > + > CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/SecP > eiCpuExceptionHandlerLib.inf > + HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf > + > PeiServicesTablePointerLib|MdePkg/Library/PeiServicesTablePointerLib/Pei > ServicesTablePointerLib.inf > + PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf > + > MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemory > AllocationLib.inf > + PeimEntryPoint|MdePkg/Library/PeimEntryPoint/PeimEntryPoint.inf > + > ReportStatusCodeLib|MdeModulePkg/Library/PeiReportStatusCodeLib/PeiR > eportStatusCodeLib.inf > + > OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibN > ull/OemHookStatusCodeLibNull.inf > + > PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/Base > PeCoffGetEntryPointLib.inf > +!ifdef $(DEBUG_ON_SERIAL_PORT) > + > DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort. > inf > +!else > + DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf > +!endif > + PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf > + > PeiResourcePublicationLib|MdePkg/Library/PeiResourcePublicationLib/PeiR > esourcePublicationLib.inf > + > ExtractGuidedSectionLib|MdePkg/Library/PeiExtractGuidedSectionLib/PeiEx > tractGuidedSectionLib.inf > +!ifdef $(SOURCE_DEBUG_ENABLE) > + > DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/SecPeiDebugAg > entLib.inf > +!endif > + > ResourcePublicationLib|MdePkg/Library/PeiResourcePublicationLib/PeiReso > urcePublicationLib.inf > + > +[LibraryClasses.common.DXE_CORE] > + > CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeC > puExceptionHandlerLib.inf > + VmgExitLib|UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.inf > + HobLib|MdePkg/Library/DxeCoreHobLib/DxeCoreHobLib.inf > + > DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint > .inf > + > MemoryAllocationLib|MdeModulePkg/Library/DxeCoreMemoryAllocationLi > b/DxeCoreMemoryAllocationLib.inf > + > ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/Dx > eReportStatusCodeLib.inf > +!ifdef $(DEBUG_ON_SERIAL_PORT) > + > DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort. > inf > +!else > + DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf > +!endif > + > ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeE > xtractGuidedSectionLib.inf > +!ifdef $(SOURCE_DEBUG_ENABLE) > + > DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/DxeDebugAgen > tLib.inf > +!endif > + > ResetSystemLib|OvmfPkg/Library/ResetSystemLib/DxeResetSystemLib.inf > + > +[LibraryClasses.common.DXE_RUNTIME_DRIVER] > + > CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeC > puExceptionHandlerLib.inf > + PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf > + HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf > + VmgExitLib|UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.inf > + > DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint > .inf > + > MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemo > ryAllocationLib.inf > + > ReportStatusCodeLib|MdeModulePkg/Library/RuntimeDxeReportStatusCod > eLib/RuntimeDxeReportStatusCodeLib.inf > + > ResetSystemLib|OvmfPkg/Library/ResetSystemLib/DxeResetSystemLib.inf > + UefiRuntimeLib|MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf > +!ifdef $(DEBUG_ON_SERIAL_PORT) > + > DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort. > inf > +!else > + DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf > +!endif > +!if $(SECURE_BOOT_ENABLE) =3D=3D TRUE > + BaseCryptLib|CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.inf > +!endif > + > UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBoo > tManagerLib.inf > + > ResetSystemLib|OvmfPkg/Library/ResetSystemLib/DxeResetSystemLib.inf > + > +[LibraryClasses.common.UEFI_DRIVER] > + > CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeC > puExceptionHandlerLib.inf > + PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf > + VmgExitLib|UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.inf > + HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf > + > DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint > .inf > + > MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemo > ryAllocationLib.inf > + > ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/Dx > eReportStatusCodeLib.inf > +!ifdef $(DEBUG_ON_SERIAL_PORT) > + > DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort. > inf > +!else > + DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf > +!endif > + UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf > + > VariablePolicyLib|MdeModulePkg/Library/VariablePolicyLib/VariablePolicyLi > b.inf > + > PciExpressLib|OvmfPkg/Library/BaseCachingPciExpressLib/BaseCachingPciEx > pressLib.inf > + > PciPcdProducerLib|OvmfPkg/Fdt/FdtPciPcdProducerLib/FdtPciPcdProducerLi > b.inf > + > PciHostBridgeLib|OvmfPkg/Fdt/FdtPciHostBridgeLib/FdtPciHostBridgeLib.inf > + > PciHostBridgeUtilityLib|OvmfPkg/Library/PciHostBridgeUtilityLib/PciHostBr= id > geUtilityLib.inf > + > ResetSystemLib|OvmfPkg/Library/ResetSystemLib/DxeResetSystemLib.inf > + > +[LibraryClasses.common.DXE_DRIVER] > + > CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeC > puExceptionHandlerLib.inf > + PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf > + VmgExitLib|UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.inf > + HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf > + > MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemo > ryAllocationLib.inf > + > ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/Dx > eReportStatusCodeLib.inf > + UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf > +!ifdef $(DEBUG_ON_SERIAL_PORT) > + > DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort. > inf > +!else > + DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf > +!endif > +!ifdef $(SOURCE_DEBUG_ENABLE) > + > DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/DxeDebugAgen > tLib.inf > +!endif > + > UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBoo > tManagerLib.inf > + > PlatformUpdateProgressLib|MdeModulePkg/Library/PlatformBootManager > LibNull/PlatformBootManagerLibNull.inf > + > ResetSystemLib|OvmfPkg/Library/ResetSystemLib/DxeResetSystemLib.inf > + > +[LibraryClasses.common.UEFI_APPLICATION] > + > CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeC > puExceptionHandlerLib.inf > + PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf > + HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf > + > MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemo > ryAllocationLib.inf > +!ifdef $(DEBUG_ON_SERIAL_PORT) > + > DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort. > inf > +!else > + DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf > +!endif > + > ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/Dx > eReportStatusCodeLib.inf > + > ResetSystemLib|OvmfPkg/Library/ResetSystemLib/DxeResetSystemLib.inf > + > +######################################################### > ####################### > +# > +# Pcd Section - list of all EDK II PCD Entries defined by this Platform. > +# > +######################################################### > ####################### > +[PcdsFeatureFlag] > + > gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSupportUefiDecompress|FAL > SE > + gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE > + gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport|FALSE > + > +[PcdsFixedAtBuild] > + gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory|FALSE > + gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial|TRUE > + gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeMemorySize|1 > + > gEfiMdeModulePkgTokenSpaceGuid.PcdResetOnMemoryTypeInformationC > hange|FALSE > + gEfiMdePkgTokenSpaceGuid.PcdMaximumGuidedExtractHandler|0x10 > + gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize|0x2000 > + > gEfiMdeModulePkgTokenSpaceGuid.PcdMaxHardwareErrorVariableSize|0x8 > 000 > + gEfiMdeModulePkgTokenSpaceGuid.PcdVariableStoreSize|0xe000 > + gEfiMdeModulePkgTokenSpaceGuid.PcdCpuStackGuard|FALSE > + > + gEfiMdeModulePkgTokenSpaceGuid.PcdVpdBaseAddress|0x0 > + > + gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|0x02 > + gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F > +!ifdef $(SOURCE_DEBUG_ENABLE) > + gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x17 > +!else > + gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x2F > +!endif > + > +!ifdef $(SOURCE_DEBUG_ENABLE) > + > gEfiSourceLevelDebugPkgTokenSpaceGuid.PcdDebugLoadImageMethod|0x > 2 > +!endif > + > +!if $(SECURE_BOOT_ENABLE) =3D=3D TRUE > + # override the default values from SecurityPkg to ensure images from a= ll > sources are verified in secure boot > + > gEfiSecurityPkgTokenSpaceGuid.PcdOptionRomImageVerificationPolicy|0x04 > + > gEfiSecurityPkgTokenSpaceGuid.PcdFixedMediaImageVerificationPolicy|0x0 > 4 > + > gEfiSecurityPkgTokenSpaceGuid.PcdRemovableMediaImageVerificationPolic > y|0x04 > +!endif > + > + # > + # F2 for UI APP > + # > + gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerMenuFile|{ 0x21, > 0xaa, 0x2c, 0x46, 0x14, 0x76, 0x03, 0x45, 0x83, 0x6e, 0x8a, 0xb6, 0xf4, 0= x66, > 0x23, 0x31 } > + > + gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVersionString|L"2.7" > + > + # Serial Port > + gEfiMdeModulePkgTokenSpaceGuid.PcdSerialUseMmio|TRUE > + gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase|0x10000000 > + gEfiMdeModulePkgTokenSpaceGuid.PcdSerialBaudRate|9600 > + > gEfiMdeModulePkgTokenSpaceGuid.PcdSerialUseHardwareFlowControl|FAL > SE > + gEfiMdeModulePkgTokenSpaceGuid.PcdSerialClockRate|3686400 > + gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterStride|1 > + > +######################################################### > ####################### > +# > +# Pcd Dynamic Section - list of all EDK II PCD Entries defined by this P= latform > +# > +######################################################### > ####################### > + > +[PcdsDynamicDefault] > + gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved|0 > + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64|0 > + > gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|0 > + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|0 > + gEfiMdeModulePkgTokenSpaceGuid.PcdPciDisableBusEnumeration|FALSE > + gEfiMdeModulePkgTokenSpaceGuid.PcdVideoHorizontalResolution|800 > + gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution|600 > + > + gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|10 > + > + # Set video resolution for text setup. > + > gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoHorizontalResolution|64 > 0 > + > gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoVerticalResolution|480 > + > + gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosVersion|0x0208 > + gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosDocRev|0x0 > + > +######################################################### > ####################### > +# > +# Components Section - list of all EDK II Modules needed by this Platfor= m. > +# > +######################################################### > ####################### > +[Components] > + > + # > + # SEC Phase modules > + # > + OvmfPkg/Sec/SecMain.inf { > + > + > NULL|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDec > ompressLib.inf > + } > + > + # > + # PEI Phase modules > + # > + MdeModulePkg/Core/Pei/PeiMain.inf > + MdeModulePkg/Universal/PCD/Pei/Pcd.inf { > + > + PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf > + } > + > MdeModulePkg/Universal/ReportStatusCodeRouter/Pei/ReportStatusCode > RouterPei.inf > + > MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.in > f > + MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf { > + > + > NULL|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDec > ompressLib.inf > + } > + > + OvmfPkg/PlatformPei/PlatformPei.inf { > + > + PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf > + PlatformInitLib|OvmfPkg/Library/PlatformInitLib/PlatformInitLib.in= f > + } > + > + # > + # DXE Phase modules > + # > + MdeModulePkg/Core/Dxe/DxeMain.inf { > + > + > NULL|MdeModulePkg//Library/LzmaCustomDecompressLib/LzmaCustomDe > compressLib.inf > + > DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf > + } > + > + > MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportSt > atusCodeRouterRuntimeDxe.inf > + > MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHan > dlerRuntimeDxe.inf > + > + MdeModulePkg/Universal/PCD/Dxe/Pcd.inf { > + > + PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf > + } > + > + MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf > + > +!if $(SECURE_BOOT_ENABLE) =3D=3D TRUE > + MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf { > + > + > NULL|SecurityPkg/Library/DxeImageVerificationLib/DxeImageVerificationLib > .inf > + } > +!else > + MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf > +!endif > + > + MdeModulePkg/Universal/Metronome/Metronome.inf > + EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf > + > + # > + # RISC-V Platform module > + # > + UefiCpuPkg/CpuTimerDxe/CpuTimerDxe.inf > + > + OvmfPkg/Drivers/NorFlashDxe/NorFlashDxe.inf > + > + # > + # RISC-V Core module > + # > + UefiCpuPkg/CpuDxe/CpuDxe.inf > + > MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntime > Dxe.inf > + > + > MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.in > f > + MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf > { > + > + NULL|MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLib.inf > + } > + MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf > + > MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCoun > terRuntimeDxe.inf > + MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf > + MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf > + MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf > + > +# Graphic console > + > MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleD > xe.inf > + > + MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf > + MdeModulePkg/Universal/PrintDxe/PrintDxe.inf > + MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf > + MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf > + > MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf > + MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf > + MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf > + MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf > + MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf > + MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf > + > MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryT > estDxe.inf > + MdeModulePkg/Universal/SerialDxe/SerialDxe.inf > + > + # > + # Network Support > + # > + !include NetworkPkg/Network.dsc.inc > + > + # > + # Usb Support > + # > + MdeModulePkg/Bus/Pci/UhciDxe/UhciDxe.inf > + MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf > + MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf > + MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf > + MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf > + MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf > + > + # > + # PCI support > + # > + UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.inf { > + > + NULL|OvmfPkg/Fdt/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf > + } > + MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf > + MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf { > + > + NULL|OvmfPkg/Fdt/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf > + } > + OvmfPkg/VirtioPciDeviceDxe/VirtioPciDeviceDxe.inf > + OvmfPkg/Virtio10Dxe/Virtio10.inf > + > + # > + # Video support > + # > + OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf > + OvmfPkg/VirtioGpuDxe/VirtioGpu.inf > + OvmfPkg/PlatformDxe/Platform.inf > + > + # > + # Platform Driver > + # > + OvmfPkg/Fdt/VirtioFdtDxe/VirtioFdtDxe.inf > + EmbeddedPkg/Drivers/FdtClientDxe/FdtClientDxe.inf > + OvmfPkg/Fdt/HighMemDxe/HighMemDxe.inf > + OvmfPkg/VirtioBlkDxe/VirtioBlk.inf > + OvmfPkg/VirtioScsiDxe/VirtioScsi.inf > + OvmfPkg/VirtioNetDxe/VirtioNet.inf > + OvmfPkg/VirtioRngDxe/VirtioRng.inf > + > + MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf > + OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf > + OvmfPkg/PlatformHasAcpiDtDxe/PlatformHasAcpiDtDxe.inf > + > + # > + # FAT filesystem + GPT/MBR partitioning + UDF filesystem > + # > + FatPkg/EnhancedFatDxe/Fat.inf > + MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf > + > + > OvmfPkg/LinuxInitrdDynamicShellCommand/LinuxInitrdDynamicShellComma > nd.inf { > + > + gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE > + > + ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf > + SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf > + } > + > + ShellPkg/Application/Shell/Shell.inf { > + > + > ShellCommandLib|ShellPkg/Library/UefiShellCommandLib/UefiShellComma > ndLib.inf > + > NULL|ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2Comma > ndsLib.inf > + > NULL|ShellPkg/Library/UefiShellLevel1CommandsLib/UefiShellLevel1Comma > ndsLib.inf > + > NULL|ShellPkg/Library/UefiShellLevel3CommandsLib/UefiShellLevel3Comma > ndsLib.inf > + > NULL|ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1Com > mandsLib.inf > + > NULL|ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCo > mmandLib.inf > + > NULL|ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1Com > mandsLib.inf > + > NULL|ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1Com > mandsLib.inf > + > NULL|ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1 > CommandsLib.inf > + > HandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingL > ib.inf > + ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf > + FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.i= nf > + SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf > + PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf > + > BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfg > CommandLib.inf > + > + > + gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0xFF > + gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE > + gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|8000 > + } > + > +!if $(SECURE_BOOT_ENABLE) =3D=3D TRUE > + > SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfi > gDxe.inf > +!endif > + > + # > + # Bds > + # > + MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf { > + > + > DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf > + PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf > + } > + MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf > + MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf > + > MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManager > Dxe.inf > + MdeModulePkg/Universal/BdsDxe/BdsDxe.inf > + MdeModulePkg/Logo/LogoDxe.inf > + MdeModulePkg/Application/UiApp/UiApp.inf { > + > + > NULL|MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerUiLib.inf > + > NULL|MdeModulePkg/Library/BootManagerUiLib/BootManagerUiLib.inf > + > NULL|MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMainte > nanceManagerUiLib.inf > + } > + OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.inf { > + > + NULL|OvmfPkg/Library/BlobVerifierLibNull/BlobVerifierLibNull.inf > + } > + > +# HTTPS(secure) support in GUI for updating ssl keys for PXE boot > + MdeModulePkg/Application/UiApp/UiApp.inf { > + > + > NULL|MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerUiLib.inf > + > NULL|MdeModulePkg/Library/BootManagerUiLib/BootManagerUiLib.inf > + > NULL|MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMainte > nanceManagerUiLib.inf > + > FileExplorerLib|MdeModulePkg/Library/FileExplorerLib/FileExplorerLib.inf > + } > + > +# TFTP support for PXE boot > + > ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand. > inf { > + > + gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE > + > + ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf > + SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf > + } > + ShellPkg/DynamicCommand/TftpDynamicCommand/TftpApp.inf { > + > + gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE > + > + ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf > + SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf > + } > + > + # HTTP support for PXE boot > + > ShellPkg/DynamicCommand/HttpDynamicCommand/HttpDynamicCommand > .inf { > + > + gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE > + > + ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf > + SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf > + HttpLib|NetworkPkg/Library/DxeHttpLib/DxeHttpLib.inf > + } > + ShellPkg/DynamicCommand/HttpDynamicCommand/HttpApp.inf { > + > + gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE > + > + ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf > + SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf > + HttpLib|NetworkPkg/Library/DxeHttpLib/DxeHttpLib.inf > + } > + > +# HTTPS (secure) support for PXE boot > + NetworkPkg/TlsDxe/TlsDxe.inf { > + > + BaseCryptLib|CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf > + TlsLib|CryptoPkg/Library/TlsLib/TlsLib.inf > + IntrinsicLib|CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf > + OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLib.inf > + RngLib|MdePkg/Library/DxeRngLib/DxeRngLib.inf > + > FileExplorerLib|MdeModulePkg/Library/FileExplorerLib/FileExplorerLib.inf > + } > + NetworkPkg/TlsAuthConfigDxe/TlsAuthConfigDxe.inf { > + > + > FileExplorerLib|MdeModulePkg/Library/FileExplorerLib/FileExplorerLib.inf > + NULL|OvmfPkg/Library/TlsAuthConfigLib/TlsAuthConfigLib.inf > + } > + > +[PcdsDynamicDefault.common] > + # set PcdPciExpressBaseAddress to MAX_UINT64, which signifies that thi= s > + # PCD and PcdPciDisableBusEnumeration above have not been assigned > yet > + > gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress|0xFFFFFFFFFFFFFF > FF > + > + gEfiMdePkgTokenSpaceGuid.PcdPciIoTranslation|0x0 > + > +[PcdsFeatureFlag.common] > + gUefiOvmfPkgTokenSpaceGuid.PcdQemuBootOrderPciTranslation|TRUE > + > gUefiOvmfPkgTokenSpaceGuid.PcdQemuBootOrderMmioTranslation|TRUE > + > + ## If TRUE, Graphics Output Protocol will be installed on virtual hand= le > created by ConsplitterDxe. > + # It could be set FALSE to save size. > + gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE > + gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport|FALSE > diff --git a/OvmfPkg/Platforms/RiscVVirt/RiscVVirt.fdf > b/OvmfPkg/Platforms/RiscVVirt/RiscVVirt.fdf > new file mode 100644 > index 000000000000..3e0e0eb9ae77 > --- /dev/null > +++ b/OvmfPkg/Platforms/RiscVVirt/RiscVVirt.fdf > @@ -0,0 +1,406 @@ > +# @file > +# Flash definition file on RiscVVirt RISC-V platform > +# > +# Copyright (c) 2021, Hewlett Packard Enterprise Development LP. All ri= ghts > reserved.
> +# Copyright (c) 2022, Ventana Micro Systems Inc. All rights reserved. > +# > +# SPDX-License-Identifier: BSD-2-Clause-Patent > +# > +# Platform definitions > +# > + > +!include RiscVVirt.fdf.inc > + > +######################################################### > ####################### > +!ifdef UNIFIED_VARSTORE > +[FD.RISCV_VIRT] > +BaseAddress =3D > $(FW_BASE_ADDRESS)|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFdBaseAdd > ress > +Size =3D > $(FW_SIZE)|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFirmwareFdSize > +ErasePolarity =3D 1 > +BlockSize =3D $(BLOCK_SIZE) > +NumBlocks =3D $(FW_BLOCKS) > + > +$(SECFV_OFFSET)|$(SECFV_SIZE) > +FV =3D SECFV > + > +$(FVMAIN_OFFSET)|$(FVMAIN_SIZE) > +gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFvBaseAddress|gUefiOvmfPkgTo > kenSpaceGuid.PcdOvmfFvSize > +FV =3D FVMAIN_COMPACT > + > +!include VarStore.fdf.inc > + > +!else > +[FD.RISCV_CODE] > +BaseAddress =3D > $(FW_BASE_ADDRESS)|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFdBaseAdd > ress > +Size =3D $(CODE_SIZE) > +ErasePolarity =3D 1 > +BlockSize =3D $(BLOCK_SIZE) > +NumBlocks =3D $(CODE_BLOCKS) > + > +$(SECFV_OFFSET)|$(SECFV_SIZE) > +FV =3D SECFV > + > +$(FVMAIN_OFFSET)|$(FVMAIN_SIZE) > +gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFvBaseAddress|gUefiOvmfPkgTo > kenSpaceGuid.PcdOvmfFvSize > +FV =3D FVMAIN_COMPACT > + > +######################################################### > ####################### > +[FD.RISCV_NVVARS] > +BaseAddress =3D $(VARS_BASE_ADDRESS) > +Size =3D $(VARS_SIZE) > +ErasePolarity =3D 1 > +BlockSize =3D $(VARS_BLOCK_SIZE) > +NumBlocks =3D $(VARS_BLOCKS) > + > +!include VarStore.fdf.inc > +!endif > +######################################################### > ####################### > + > +[FD.RISCV_MEMFD] > +BaseAddress =3D $(MEMFD_BASE_ADDRESS) > +Size =3D 0x00a00000 > +ErasePolarity =3D 1 > +BlockSize =3D $(BLOCK_SIZE) > +NumBlocks =3D 0xa00 > + > +0x00000000|0x00010000 > +gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPeiTempRamBase|gUefiOvmf > PkgTokenSpaceGuid.PcdOvmfSecPeiTempRamSize > + > +0x00010000|0x001000 > +gEfiMdePkgTokenSpaceGuid.PcdGuidedExtractHandlerTableAddress|gUefi > OvmfPkgTokenSpaceGuid.PcdGuidedExtractHandlerTableSize > + > +0x00040000|0x00080000 > +gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvBase|gUefiOvmfPkgTo > kenSpaceGuid.PcdOvmfPeiMemFvSize > +FV =3D PEIFV > + > +0x00100000|0x00900000 > +gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvBase|gUefiOvmfPkgT > okenSpaceGuid.PcdOvmfDxeMemFvSize > +FV =3D DXEFV > + > +######################################################### > ################################# > + > +[FV.SECFV] > +BlockSize =3D 0x1000 > +FvAlignment =3D 16 > +ERASE_POLARITY =3D 1 > +MEMORY_MAPPED =3D TRUE > +STICKY_WRITE =3D TRUE > +LOCK_CAP =3D TRUE > +LOCK_STATUS =3D TRUE > +WRITE_DISABLED_CAP =3D TRUE > +WRITE_ENABLED_CAP =3D TRUE > +WRITE_STATUS =3D TRUE > +WRITE_LOCK_CAP =3D TRUE > +WRITE_LOCK_STATUS =3D TRUE > +READ_DISABLED_CAP =3D TRUE > +READ_ENABLED_CAP =3D TRUE > +READ_STATUS =3D TRUE > +READ_LOCK_CAP =3D TRUE > +READ_LOCK_STATUS =3D TRUE > + > +# > +# SEC Phase modules > +# > +# The code in this FV handles the initial firmware startup, and > +# decompresses the PEI and DXE FVs which handles the rest of the boot > sequence. > +# > +INF OvmfPkg/Sec/SecMain.inf > + > +######################################################### > ####################### > +[FV.PEIFV] > +BlockSize =3D 0x10000 > +FvAlignment =3D 16 > +ERASE_POLARITY =3D 1 > +MEMORY_MAPPED =3D TRUE > +STICKY_WRITE =3D TRUE > +LOCK_CAP =3D TRUE > +LOCK_STATUS =3D TRUE > +WRITE_DISABLED_CAP =3D TRUE > +WRITE_ENABLED_CAP =3D TRUE > +WRITE_STATUS =3D TRUE > +WRITE_LOCK_CAP =3D TRUE > +WRITE_LOCK_STATUS =3D TRUE > +READ_DISABLED_CAP =3D TRUE > +READ_ENABLED_CAP =3D TRUE > +READ_STATUS =3D TRUE > +READ_LOCK_CAP =3D TRUE > +READ_LOCK_STATUS =3D TRUE > + > +APRIORI PEI { > + INF > MdeModulePkg/Universal/ReportStatusCodeRouter/Pei/ReportStatusCode > RouterPei.inf > + INF > MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.in > f > + INF MdeModulePkg/Universal/PCD/Pei/Pcd.inf > +} > + > +# > +# PEI Phase modules > +# > +INF MdeModulePkg/Core/Pei/PeiMain.inf > +INF MdeModulePkg/Universal/PCD/Pei/Pcd.inf > +INF > MdeModulePkg/Universal/ReportStatusCodeRouter/Pei/ReportStatusCode > RouterPei.inf > +INF > MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.in > f > +INF MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf > + > +# RISC-V Platform PEI Driver > +INF OvmfPkg/PlatformPei/PlatformPei.inf > + > +######################################################### > ####################### > + > +[FV.DXEFV] > +BlockSize =3D 0x10000 > +FvAlignment =3D 16 > +ERASE_POLARITY =3D 1 > +MEMORY_MAPPED =3D TRUE > +STICKY_WRITE =3D TRUE > +LOCK_CAP =3D TRUE > +LOCK_STATUS =3D TRUE > +WRITE_DISABLED_CAP =3D TRUE > +WRITE_ENABLED_CAP =3D TRUE > +WRITE_STATUS =3D TRUE > +WRITE_LOCK_CAP =3D TRUE > +WRITE_LOCK_STATUS =3D TRUE > +READ_DISABLED_CAP =3D TRUE > +READ_ENABLED_CAP =3D TRUE > +READ_STATUS =3D TRUE > +READ_LOCK_CAP =3D TRUE > +READ_LOCK_STATUS =3D TRUE > + > +APRIORI DXE { > + INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf > + INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf > +} > + > +# > +# DXE Phase modules > +# > +INF MdeModulePkg/Core/Dxe/DxeMain.inf > + > +INF > MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportSt > atusCodeRouterRuntimeDxe.inf > +INF > MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHan > dlerRuntimeDxe.inf > +INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf > + > +# > +# PCI support > +# > +INF UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.inf > +INF MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf > +INF MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf > +INF OvmfPkg/VirtioPciDeviceDxe/VirtioPciDeviceDxe.inf > +INF OvmfPkg/Virtio10Dxe/Virtio10.inf > + > +# > +# Video support > +# > +INF OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf > +INF OvmfPkg/VirtioGpuDxe/VirtioGpu.inf > +INF OvmfPkg/PlatformDxe/Platform.inf > + > +# > +# Platform Driver > +# > +INF OvmfPkg/Fdt/VirtioFdtDxe/VirtioFdtDxe.inf > +INF EmbeddedPkg/Drivers/FdtClientDxe/FdtClientDxe.inf > +INF OvmfPkg/Fdt/HighMemDxe/HighMemDxe.inf > +INF OvmfPkg/VirtioBlkDxe/VirtioBlk.inf > +INF OvmfPkg/VirtioScsiDxe/VirtioScsi.inf > +INF OvmfPkg/VirtioNetDxe/VirtioNet.inf > +INF OvmfPkg/VirtioRngDxe/VirtioRng.inf > +INF MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf > +INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf > + > +INF MdeModulePkg/Universal/Metronome/Metronome.inf > +INF > EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf > + > +INF MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf > +INF OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf > +INF OvmfPkg/PlatformHasAcpiDtDxe/PlatformHasAcpiDtDxe.inf > + > +# RISC-V Platform Drivers > +INF OvmfPkg/Drivers/NorFlashDxe/NorFlashDxe.inf > + > +# RISC-V Core Drivers > +INF UefiCpuPkg/CpuTimerDxe/CpuTimerDxe.inf > +INF UefiCpuPkg/CpuDxe/CpuDxe.inf > + > +INF > MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.in > f > + > +INF > MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf > +!if $(SECURE_BOOT_ENABLE) =3D=3D TRUE > + INF > SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfi > gDxe.inf > +!endif > + > +INF > MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntime > Dxe.inf > +INF MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf > +INF > MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCoun > terRuntimeDxe.inf > +INF > MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf > +INF > MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf > +INF MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf > +INF > MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleD > xe.inf > +INF MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf > +INF MdeModulePkg/Universal/BdsDxe/BdsDxe.inf > +INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf > +INF MdeModulePkg/Universal/PrintDxe/PrintDxe.inf > +INF MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf > +INF MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf > +INF > MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf > +INF MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf > +INF MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf > +INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf > +INF MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf > +INF MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf > +INF > MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryT > estDxe.inf > +INF FatPkg/EnhancedFatDxe/Fat.inf > +INF MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf > + > +!ifndef $(SOURCE_DEBUG_ENABLE) > +INF MdeModulePkg/Universal/SerialDxe/SerialDxe.inf > +!endif > + > +INF > OvmfPkg/LinuxInitrdDynamicShellCommand/LinuxInitrdDynamicShellComma > nd.inf > +INF ShellPkg/Application/Shell/Shell.inf > + > +# TFTP support for PXE boot > +INF > ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand. > inf > +INF ShellPkg/DynamicCommand/TftpDynamicCommand/TftpApp.inf > + > +# HTTP support for PXE boot > +INF > ShellPkg/DynamicCommand/HttpDynamicCommand/HttpDynamicCommand > .inf > +INF ShellPkg/DynamicCommand/HttpDynamicCommand/HttpApp.inf > + > +# > +# Network modules > +# > +!if $(E1000_ENABLE) > + FILE DRIVER =3D 5D695E11-9B3F-4b83-B25F-4A8D5D69BE07 { > + SECTION PE32 =3D Intel3.5/EFIX64/E3507X2.EFI > + } > +!endif > + > +!include NetworkPkg/Network.fdf.inc > + > +# > +# Usb Support > +# > +INF MdeModulePkg/Bus/Pci/UhciDxe/UhciDxe.inf > +INF MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf > +INF MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf > +INF MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf > +INF MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf > +INF > MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf > + > +INF MdeModulePkg/Application/UiApp/UiApp.inf > +INF OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.inf > + > +######################################################### > ####################### > + > +[FV.FVMAIN_COMPACT] > +FvAlignment =3D 16 > +ERASE_POLARITY =3D 1 > +MEMORY_MAPPED =3D TRUE > +STICKY_WRITE =3D TRUE > +LOCK_CAP =3D TRUE > +LOCK_STATUS =3D TRUE > +WRITE_DISABLED_CAP =3D TRUE > +WRITE_ENABLED_CAP =3D TRUE > +WRITE_STATUS =3D TRUE > +WRITE_LOCK_CAP =3D TRUE > +WRITE_LOCK_STATUS =3D TRUE > +READ_DISABLED_CAP =3D TRUE > +READ_ENABLED_CAP =3D TRUE > +READ_STATUS =3D TRUE > +READ_LOCK_CAP =3D TRUE > +READ_LOCK_STATUS =3D TRUE > +FvNameGuid =3D 27A72E80-3118-4c0c-8673-AA5B4EFA9613 > + > +FILE FV_IMAGE =3D 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 { > + SECTION GUIDED EE4E5898-3914-4259-9D6E-DC7BD79403CF > PROCESSING_REQUIRED =3D TRUE { > + # > + # These firmware volumes will have files placed in them uncompresse= d, > + # and then both firmware volumes will be compressed in a single > + # compression operation in order to achieve better overall compress= ion. > + # > + SECTION FV_IMAGE =3D PEIFV > + SECTION FV_IMAGE =3D DXEFV > + } > + } > + > +[Rule.Common.SEC] > + FILE SEC =3D $(NAMED_GUID) RELOCS_STRIPPED { > + PE32 PE32 Align=3D4K $(INF_OUTPUT)/$(MODULE_NAME).efi > + UI STRING =3D"$(MODULE_NAME)" Optional > + VERSION STRING =3D"$(INF_VERSION)" Optional > BUILD_NUM=3D$(BUILD_NUMBER) > + } > + > +[Rule.Common.PEI_CORE] > + FILE PEI_CORE =3D $(NAMED_GUID) { > + PE32 PE32 Align=3D4K $(INF_OUTPUT)/$(MODULE_NAME).efi > + UI STRING =3D"$(MODULE_NAME)" Optional > + VERSION STRING =3D"$(INF_VERSION)" Optional > BUILD_NUM=3D$(BUILD_NUMBER) > + } > + > +[Rule.Common.PEIM] > + FILE PEIM =3D $(NAMED_GUID) { > + PEI_DEPEX PEI_DEPEX Optional > $(INF_OUTPUT)/$(MODULE_NAME).depex > + PE32 PE32 Align=3D4K $(INF_OUTPUT)/$(MODULE_NAME).efi > + UI STRING=3D"$(MODULE_NAME)" Optional > + VERSION STRING=3D"$(INF_VERSION)" Optional > BUILD_NUM=3D$(BUILD_NUMBER) > + } > + > +[Rule.Common.DXE_CORE] > + FILE DXE_CORE =3D $(NAMED_GUID) { > + PE32 PE32 Align=3D4K $(INF_OUTPUT)/$(MODULE_NAME).efi > + UI STRING=3D"$(MODULE_NAME)" Optional > + VERSION STRING=3D"$(INF_VERSION)" Optional > BUILD_NUM=3D$(BUILD_NUMBER) > + } > + > +[Rule.Common.DXE_DRIVER] > + FILE DRIVER =3D $(NAMED_GUID) { > + DXE_DEPEX DXE_DEPEX Optional > $(INF_OUTPUT)/$(MODULE_NAME).depex > + PE32 PE32 Align=3D4K $(INF_OUTPUT)/$(MODULE_NAME).efi > + UI STRING=3D"$(MODULE_NAME)" Optional > + VERSION STRING=3D"$(INF_VERSION)" Optional > BUILD_NUM=3D$(BUILD_NUMBER) > + } > + > +[Rule.Common.DXE_RUNTIME_DRIVER] > + FILE DRIVER =3D $(NAMED_GUID) { > + DXE_DEPEX DXE_DEPEX Optional > $(INF_OUTPUT)/$(MODULE_NAME).depex > + PE32 PE32 Align =3D 4K $(INF_OUTPUT)/$(MODULE_NAME).efi > + UI STRING=3D"$(MODULE_NAME)" Optional > + VERSION STRING=3D"$(INF_VERSION)" Optional > BUILD_NUM=3D$(BUILD_NUMBER) > + } > + > +[Rule.Common.UEFI_DRIVER] > + FILE DRIVER =3D $(NAMED_GUID) { > + DXE_DEPEX DXE_DEPEX Optional > $(INF_OUTPUT)/$(MODULE_NAME).depex > + PE32 PE32 Align=3D4K $(INF_OUTPUT)/$(MODULE_NAME).efi > + UI STRING=3D"$(MODULE_NAME)" Optional > + VERSION STRING=3D"$(INF_VERSION)" Optional > BUILD_NUM=3D$(BUILD_NUMBER) > + } > + > +[Rule.Common.UEFI_DRIVER.BINARY] > + FILE DRIVER =3D $(NAMED_GUID) { > + DXE_DEPEX DXE_DEPEX Optional |.depex > + PE32 PE32 Align=3D4K |.efi > + UI STRING=3D"$(MODULE_NAME)" Optional > + VERSION STRING=3D"$(INF_VERSION)" Optional > BUILD_NUM=3D$(BUILD_NUMBER) > + } > + > +[Rule.Common.UEFI_APPLICATION] > + FILE APPLICATION =3D $(NAMED_GUID) { > + PE32 PE32 Align=3D4K $(INF_OUTPUT)/$(MODULE_NAME).efi > + UI STRING=3D"$(MODULE_NAME)" Optional > + VERSION STRING=3D"$(INF_VERSION)" Optional > BUILD_NUM=3D$(BUILD_NUMBER) > + } > + > +[Rule.Common.UEFI_APPLICATION.BINARY] > + FILE APPLICATION =3D $(NAMED_GUID) { > + PE32 PE32 Align=3D4K |.efi > + UI STRING=3D"$(MODULE_NAME)" Optional > + VERSION STRING=3D"$(INF_VERSION)" Optional > BUILD_NUM=3D$(BUILD_NUMBER) > + } > + > +[Rule.Common.USER_DEFINED.ACPITABLE] > + FILE FREEFORM =3D $(NAMED_GUID) { > + RAW ACPI |.acpi > + RAW ASL |.aml > + } > diff --git a/OvmfPkg/Platforms/RiscVVirt/RiscVVirt.fdf.inc > b/OvmfPkg/Platforms/RiscVVirt/RiscVVirt.fdf.inc > new file mode 100644 > index 000000000000..5a2d96d53c8e > --- /dev/null > +++ b/OvmfPkg/Platforms/RiscVVirt/RiscVVirt.fdf.inc > @@ -0,0 +1,66 @@ > +## @file > +# Definitions of Flash definition file on RiscVVirt RISC-V platform > +# > +# Copyright (c) 2021, Hewlett Packard Enterprise Development LP. All ri= ghts > reserved.
> +# Copyright (c) 2022, Ventana Micro Systems Inc. All rights reserved. > +# > +# SPDX-License-Identifier: BSD-2-Clause-Patent > +# > +## > +[Defines] > +DEFINE BLOCK_SIZE =3D 0x1000 > + > +DEFINE PFLASH1_BASE =3D 0x22000000 > +DEFINE PFLASH2_BASE =3D 0x23000000 > + > +DEFINE FW_BASE_ADDRESS =3D $(PFLASH1_BASE) > +DEFINE FW_SIZE =3D 0x00300000 > +DEFINE FW_BLOCKS =3D 0x300 > + > +DEFINE CODE_BASE_ADDRESS =3D $(FW_BASE_ADDRESS) > +DEFINE CODE_SIZE =3D 0x00240000 > +DEFINE CODE_BLOCKS =3D 0x240 > + > +# > +# Separate varstore will start at 3rd pflash address > +# > +DEFINE VARS_BASE_ADDRESS =3D $(PFLASH2_BASE) > + > +DEFINE VARS_SIZE =3D 0x000C0000 > +DEFINE VARS_BLOCK_SIZE =3D 0x40000 > +DEFINE VARS_BLOCKS =3D 0x3 > + > +# > +# The size of memory region must be power of 2. > +# The base address must be aligned with the size. > +# > +# FW memory region > +# > +DEFINE SECFV_OFFSET =3D 0x00000000 > +DEFINE SECFV_SIZE =3D 0x00040000 > +DEFINE FVMAIN_OFFSET =3D 0x00040000 > +DEFINE FVMAIN_SIZE =3D 0x00200000 > + > +# > +# EFI Variable memory region. > +# The total size of EFI Variable FD must include > +# all of sub regions of EFI Variable > +# > +!ifdef $(UNIFIED_VARSTORE) > +DEFINE VARS_OFFSET =3D $(CODE_SIZE) > +!else > +DEFINE VARS_OFFSET =3D 0x00000000 > +!endif > +DEFINE VARS_LIVE_SIZE =3D 0x00040000 > +DEFINE VARS_FTW_WORKING_OFFSET =3D $(VARS_OFFSET) + > $(VARS_LIVE_SIZE) > +DEFINE VARS_FTW_WORKING_SIZE =3D 0x00040000 > +DEFINE VARS_FTW_SPARE_OFFSET =3D $(VARS_FTW_WORKING_OFFSET) > + $(VARS_FTW_WORKING_SIZE) > +DEFINE VARS_FTW_SPARE_SIZE =3D 0x00040000 > + > +# > +# Base Address where SEC phase will decompress and load > +# the PEI and DXE FVs > +# > +DEFINE MEMFD_BASE_ADDRESS =3D 0x80200000 > + > +SET gUefiCpuPkgTokenSpaceGuid.PcdCpuCoreCrystalClockFrequency =3D > 10000000 > diff --git a/OvmfPkg/Platforms/RiscVVirt/VarStore.fdf.inc > b/OvmfPkg/Platforms/RiscVVirt/VarStore.fdf.inc > new file mode 100644 > index 000000000000..30b170d77997 > --- /dev/null > +++ b/OvmfPkg/Platforms/RiscVVirt/VarStore.fdf.inc > @@ -0,0 +1,79 @@ > +## @file > +# FDF include file with Layout Regions that define an empty variable st= ore. > +# > +# Copyright (c) 2022, Ventana Micro Systems Inc. All rights reserved. > +# Copyright (c) 2021, Hewlett Packard Enterprise Development LP. All ri= ghts > reserved.
> +# Copyright (C) 2014, Red Hat, Inc. > +# Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved. > +# > +# SPDX-License-Identifier: BSD-2-Clause-Patent > +# > +## > + > +$(VARS_OFFSET)|$(VARS_LIVE_SIZE) > +gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase|gEfi > MdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize > +# > +# NV_VARIABLE_STORE > +# > +DATA =3D { > + ## This is the EFI_FIRMWARE_VOLUME_HEADER > + # ZeroVector [] > + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, > + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, > + # FileSystemGuid: gEfiSystemNvDataFvGuid =3D > + # { 0xFFF12B8D, 0x7696, 0x4C8B, > + # { 0xA9, 0x85, 0x27, 0x47, 0x07, 0x5B, 0x4F, 0x50 }} > + 0x8D, 0x2B, 0xF1, 0xFF, 0x96, 0x76, 0x8B, 0x4C, > + 0xA9, 0x85, 0x27, 0x47, 0x07, 0x5B, 0x4F, 0x50, > + # FvLength: 0x20000 > + 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, > + # Signature "_FVH" # Attributes > + 0x5f, 0x46, 0x56, 0x48, 0xff, 0xfe, 0x04, 0x00, > + # HeaderLength # CheckSum # ExtHeaderOffset #Reserved #Revision > + 0x48, 0x00, 0x39, 0xF1, 0x00, 0x00, 0x00, 0x02, > + # Blockmap[0]: 0x20 Blocks * 0x1000 Bytes / Block > + 0x00, 0x08, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, > + # Blockmap[1]: End > + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, > + ## This is the VARIABLE_STORE_HEADER > +!if $(SECURE_BOOT_ENABLE) =3D=3D TRUE > + # Signature: gEfiAuthenticatedVariableGuid =3D > + # { 0xaaf32c78, 0x947b, 0x439a, > + # { 0xa1, 0x80, 0x2e, 0x14, 0x4e, 0xc3, 0x77, 0x92 }} > + 0x78, 0x2c, 0xf3, 0xaa, 0x7b, 0x94, 0x9a, 0x43, > + 0xa1, 0x80, 0x2e, 0x14, 0x4e, 0xc3, 0x77, 0x92, > +!else > + # Signature: gEfiVariableGuid =3D > + # { 0xddcf3616, 0x3275, 0x4164, > + # { 0x98, 0xb6, 0xfe, 0x85, 0x70, 0x7f, 0xfe, 0x7d }} > + 0x16, 0x36, 0xcf, 0xdd, 0x75, 0x32, 0x64, 0x41, > + 0x98, 0xb6, 0xfe, 0x85, 0x70, 0x7f, 0xfe, 0x7d, > +!endif > + # Size: 0x40000 > (gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize) - > + # 0x48 (size of EFI_FIRMWARE_VOLUME_HEADER) =3D 0x3FFB8 > + # This can speed up the Variable Dispatch a bit. > + 0xB8, 0xFF, 0x03, 0x00, > + # FORMATTED: 0x5A #HEALTHY: 0xFE #Reserved: UINT16 #Reserved1: > UINT32 > + 0x5A, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 > +} > + > +$(VARS_FTW_WORKING_OFFSET)|$(VARS_FTW_WORKING_SIZE) > +gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|g > EfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize > +# > +#NV_FTW_WROK > +# > +DATA =3D { > + # EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER->Signature =3D > gEdkiiWorkingBlockSignatureGuid =3D > + # { 0x9e58292b, 0x7c68, 0x497d, { 0xa0, 0xce, 0x65, 0x0, 0xfd, 0x9f,= 0x1b, > 0x95 }} > + 0x2b, 0x29, 0x58, 0x9e, 0x68, 0x7c, 0x7d, 0x49, > + 0xa0, 0xce, 0x65, 0x0, 0xfd, 0x9f, 0x1b, 0x95, > + # Crc:UINT32 #WorkingBlockValid:1, WorkingBlockInvalid:1, R= eserved > + 0x2c, 0xaf, 0x2c, 0x64, 0xFE, 0xFF, 0xFF, 0xFF, > + # WriteQueueSize: UINT64 > + 0xE0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 > +} > + > +$(VARS_FTW_SPARE_OFFSET)|$(VARS_FTW_SPARE_SIZE) > +gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|gEfi > MdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize > +# > +#NV_FTW_SPARE > -- > 2.38.0 >=20 >=20 >=20 >=20 >=20