From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mx.groups.io with SMTP id smtpd.web08.718.1612916851918851298 for ; Tue, 09 Feb 2021 16:27:32 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=GDSEgdRY; spf=pass (domain: intel.com, ip: 134.134.136.24, mailfrom: rangasai.v.chaganty@intel.com) IronPort-SDR: 2ObqmAH+O9X+B82cbN7jDkILIPM3hZ8s++/QWuOscMY+CFvOHQNCLQWUF/9qWVwV30zTSAf1Bs /aG7yV+OypfA== X-IronPort-AV: E=McAfee;i="6000,8403,9890"; a="182130058" X-IronPort-AV: E=Sophos;i="5.81,166,1610438400"; d="scan'208";a="182130058" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Feb 2021 16:27:31 -0800 IronPort-SDR: TsF7C5v6SA+toTyNNxegECjDyW0xTYx0ncJ6n1j9yj6MPFm3dAk9hwCjArRm4O9bWAVAwZFCPI lTG+9U1PoGMg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.81,166,1610438400"; d="scan'208";a="396459479" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by orsmga008.jf.intel.com with ESMTP; 09 Feb 2021 16:27:31 -0800 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Tue, 9 Feb 2021 16:27:30 -0800 Received: from fmsmsx601.amr.corp.intel.com (10.18.126.81) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Tue, 9 Feb 2021 16:27:30 -0800 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2 via Frontend Transport; Tue, 9 Feb 2021 16:27:30 -0800 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.101) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Tue, 9 Feb 2021 16:27:29 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DYhjMxKVBP0fbDKo//B2nTe/9SyOUZ85dNaC+DgRCeqqZTEZWFH6jjJobGnx1+fvDBTmjT7Y6XNPoYNm63/tMmXF+Nf1uRj9wju74kpK0AC6BGR3gvPDer9V2LS0LBwqFg5LDbDWIiFc0luuHtkr16qzsI+ZB/s3uCEwbUs4za2y6jiN4Stb5QPQS2jsugHLq1MVpNkCpqNd/ccTllkxjH/wD0s/6f2vnCNGdIK66i0rKv0mpM7l5Pf0ZohH8/go9tG2P7qQ4hTFtmVhdiGVjoe16t/7+WxDgyVJcf4izskz2+u+1dq7mgmZic/1iRlLUfj1JPN7wsYqzbBi8/oZ1Q== 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=WWx8xAVUxPmZMuAqfpiZNdnBdI0RTQgC1eeaIwoecLI=; b=KMUh+AIysHn6CF1pRrCKUXRsPxRJXQQVxj1YLc8drahfAOmvHbhTKSfDnrPUdkvdWt8m0Nsvg13ZbT9HQ3A2w6T78VYtHZXKkLEZ0b1yu9quVVX14OmBVgUprDf0w2GgQGPVMfZLuuLYoNaau993GUwNZmVXoOJmlhk8Bk233GR3ctUrc6iCLzTx+3/EgG8rFW5okPWJyhp5TMveFGclPp/pf2CrKcKBq8yP/Jl20vj7by13GLZisjB554Or3gB9gLaQu9bO4iGlC/SLkOj4s6JAMxvsISuYG4glKjw1QPXvxcaxjdQltelALma4XWyHfTME6p37Tf6ywd3TYenuSA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=WWx8xAVUxPmZMuAqfpiZNdnBdI0RTQgC1eeaIwoecLI=; b=GDSEgdRYMU1m27/LwH6fTs1CgepKYRzx4tBmKGzO3S+WwluRyDhp47JKTxdw5dj0lwyOCG5SSe1egQvo7eu6CDuh8BQ0U4QGJJ0EK9E7AQ25iWbOjwP5KRRcvVieBFZsWnTYb4BWxRpGisYE7j8klO0Mwf7f2lK59Ic/XC6qBFA= Received: from DM6PR11MB4476.namprd11.prod.outlook.com (2603:10b6:5:201::24) by DM5PR1101MB2313.namprd11.prod.outlook.com (2603:10b6:4:51::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3825.24; Wed, 10 Feb 2021 00:27:28 +0000 Received: from DM6PR11MB4476.namprd11.prod.outlook.com ([fe80::ccd3:477b:8451:b17d]) by DM6PR11MB4476.namprd11.prod.outlook.com ([fe80::ccd3:477b:8451:b17d%7]) with mapi id 15.20.3846.027; Wed, 10 Feb 2021 00:27:28 +0000 From: "Chaganty, Rangasai V" To: "Luo, Heng" , "devel@edk2.groups.io" CC: "Desimone, Nathaniel L" Subject: Re: [Patch V2 5/8] TigerlakeOpenBoardPkg: Add modules Thread-Topic: [Patch V2 5/8] TigerlakeOpenBoardPkg: Add modules Thread-Index: AQHW/sAEUxDwNlThUkuyhCOwL12S+KpQiJPg Date: Wed, 10 Feb 2021 00:27:28 +0000 Message-ID: References: <20210209084549.4417-1-heng.luo@intel.com> <20210209084549.4417-5-heng.luo@intel.com> In-Reply-To: <20210209084549.4417-5-heng.luo@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-reaction: no-action dlp-version: 11.5.1.3 dlp-product: dlpe-windows authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [50.45.159.74] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 4b4da106-94fd-44b3-35cd-08d8cd5aa5c9 x-ms-traffictypediagnostic: DM5PR1101MB2313: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8882; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: KO0Y+vj+6Fup/Z1jY0gsdGnnLhGBwTfCOJ/tduGgSkTPOa87qdV9PUKBK9jFUeABjw1k7jtoF9q46QR4MoeVeFGVAZsOxCQFPw4nlg8bzL+ozfX8isDrXAJY1JRYtVn6BlQkpd9aGjXvbzLguJDN81OS71oqNJXNj+AP+Q3YVjbOUeRuSdjwIMkPxvr3DQo9Pwx6xWl0m+uJEZyG+fDrRa7ZGeUjlZNn7e3b+Xxsc35Ev8NRE2ishoS6dfxefksN1xTkJRMvyvcdEPREeaJahMY9z/BafZ5HzTBEOYALJwBMsylNldD2xEJWCFWVbJhW9iB0Y8rcwIRHVK3954HGqqwsu61yBsSGjFZK3BHnX66S/PdGcgg4AarJatsBEqrLFiDGt7hp/OVuFFDxosEWW1QHxIBsIhG/+G4+iqUrbWEXFOq02u47o6NW1du4l/0C5ovWnP847HcvL2v7SGXR2HWYyixnIwiccao6XfjIbG61DFATvgpxBi+1lcXX46+zavrZ25bT77k9DAgTtNH9ROfvNbOmFAf0sFJSZSdl6uhtrjomWgOTwd8rpgcLDI0fOMLPZXGhwxE3SQ4RxVrlz1Jxt40DATZi34aeB+5kGHg= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR11MB4476.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(376002)(346002)(396003)(136003)(366004)(39860400002)(9686003)(71200400001)(76116006)(8676002)(7696005)(86362001)(478600001)(55016002)(8936002)(4326008)(966005)(33656002)(110136005)(66446008)(26005)(107886003)(186003)(52536014)(83380400001)(5660300002)(316002)(6506007)(53546011)(2906002)(66556008)(66476007)(66946007)(64756008);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: =?us-ascii?Q?nRKmGYqzWhFraCGWbUAyEIlWQXWONCMv2OMDsMOMdsRlwb9XiIsFKhq3MyZ7?= =?us-ascii?Q?1WNnTVnHWPy6FSGaeWl/uRoKG8RyVviY3qx42aqwgIjRbAz56NuEjdYXsL+O?= =?us-ascii?Q?RkajDmWcSaOoXKTlnuWhXvrfrZez+T3Y8VAN7dmQWJiYuZC63aEur4NmIAfA?= =?us-ascii?Q?0++7geP2/04drk2XxePhLSF9usW0M+6/AGckOnHly1ei/yd4DULD0NW5zw2p?= =?us-ascii?Q?NMoXGrNpHVv1vEDbSsuo0NfwqYCU4T4kXWUS7K4upuhG1FFrXqhsIpE7rG0l?= =?us-ascii?Q?/r2t1q/aPxPPI9eQlymwA7geFJiOdt1czCJet5kC++qAHaIgls5wG6D2I0LN?= =?us-ascii?Q?M6ePr6ebd6AHcEbvPTorIoUiACx2vToXtyp75BFc9vzxhp/lW3z3cgQEHT8W?= =?us-ascii?Q?+L4Bi2NSmOG7WF4ElhUW0m8VzF10rYyp+bASEHbCo+Z58jc9xHXiEgfvW9XX?= =?us-ascii?Q?YJ6ZzxLaPIqNy+ssVpSzGeIZULh0fTip4p//YNpmXcAA6MJMGUcm8AUfR9UP?= =?us-ascii?Q?kUI8970URzIE96OAtOnUtwcdKaZ9oUIhlFjbK6Z9pedaoI0JINjEp0Fk5lY5?= =?us-ascii?Q?V8YRVBbZglMLpHpp5eEHmvczZZODQHuKwsAo3RO1/LJbg9nM693rPoAzrLl2?= =?us-ascii?Q?jXDN4CWifhh4t4qpnO1Q4MJQ8mwntVacQNkQK/VUoO82Gk1B58FBsDffOPXL?= =?us-ascii?Q?ie2wO9VZhQBj8sdKoQGHU6tKjqaqNV4SFEOfN6DgUf4Gz2OfSTGe4SL8oZfP?= =?us-ascii?Q?uBp9WeZv80+RwYGEtO93FRhweZP2skUMfwMJmtlJkQazJabesA9jpFinF0ah?= =?us-ascii?Q?tgFSnkCjBw48yLfJkOQV3iO3TJTod/J5QHkaqTDpQYMxQPNqbixloX6jBeog?= =?us-ascii?Q?WH5COigSVWu2S674scYWZx1flgvMbRKAMOl5R+mfjwL9fQ4a9mBAq7N7LkKp?= =?us-ascii?Q?dQ6/uxD3YzpxhPS9uLcxHaNuH6rPZeKSk41WLrtZzRduDgY+cNc30siO/lF4?= =?us-ascii?Q?0fqsUj6IACnTTX/cKb5L/wyYAUHrc7qTmxzTkfThGYZ9cJJJxduRvttgTfvE?= =?us-ascii?Q?OvF5TSXWvsx/Qc0jH1ctvEN1yDOlO2q3n4fOIc5pWQMKaOmBNPLCul9dk30r?= =?us-ascii?Q?TF8gvQcQ77sZJjG7ispzXjSh1ZVWqFLZrW9mH7iTdnNsM3b5j7SAhvAcVYfr?= =?us-ascii?Q?Tbd2EhA4CJT7splMWtJao3R9b/rm18SC0xh6Vk+kf4nSGhwHZ6muTnXXTuhs?= =?us-ascii?Q?sacStIpEkblSYojjAW3uXAey2aSJksFtwU8y1Mt97KAUJZKTN7alKCpGeHpE?= =?us-ascii?Q?3Pmv1kPlOeOBt8r0WxSKXrQ5?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB4476.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4b4da106-94fd-44b3-35cd-08d8cd5aa5c9 X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Feb 2021 00:27:28.3833 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 0RZCv71oQaNUMBbXUh4xBVGaITYBgQJ2Oa0Tyd8q+XTi3xcy75zivIiVQSsjHe9pWnOuYnNl7HsZVb28HHmh/X0mHHxD3SYiM90mRJQYNug= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR1101MB2313 Return-Path: rangasai.v.chaganty@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Reviewed-by: Sai Chaganty =20 =20 -----Original Message----- From: Luo, Heng =20 Sent: Tuesday, February 09, 2021 12:46 AM To: devel@edk2.groups.io Cc: Chaganty, Rangasai V ; Desimone, Nathani= el L Subject: [Patch V2 5/8] TigerlakeOpenBoardPkg: Add modules REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D3175 Adds the following modules: * BiosInfo Cc: Sai Chaganty Cc: Nate DeSimone Signed-off-by: Heng Luo --- Platform/Intel/TigerlakeOpenBoardPkg/BiosInfo/BiosInfo.c | 200 +++++++++= +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++= +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++= +++++++++++++++++++++++++++++++++++++++++ Platform/Intel/TigerlakeOpenBoardPkg/BiosInfo/BiosInfo.inf | 83 +++++++++= ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 283 insertions(+) diff --git a/Platform/Intel/TigerlakeOpenBoardPkg/BiosInfo/BiosInfo.c b/Pla= tform/Intel/TigerlakeOpenBoardPkg/BiosInfo/BiosInfo.c new file mode 100644 index 0000000000..46c3d439c2 --- /dev/null +++ b/Platform/Intel/TigerlakeOpenBoardPkg/BiosInfo/BiosInfo.c @@ -0,0 +1,200 @@ +/** @file + Driver for BIOS Info support. + + Copyright (c) 2021, Intel Corporation. All rights reserved.
+ SPDX-License-Identifier: BSD-2-Clause-Patent +**/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define BASE_FV_SIZE 10 + +#define FSP_WRAPPER_FV_SIZE 3 + +#define TSN_MAC_ADDRESS_FV_SIZE 0 + +#define BIOS_INFO_STRUCT_SIZE (BASE_FV_SIZE + FSP_WRAPPER_FV_SIZE + TSN_MA= C_ADDRESS_FV_SIZE) + + +/* + BIOS_INFO structure is the base of the firmware volume layout for Intel = platform BIOS implementation + so security checker module can run based on the structure and throw warn= ings, error or deadloop + when any unexpected firmware volumes are detected. + + BIOS_INFO is recommended to support full entries of firmware volumes pre= sent in a flash + with right type, attribute, version, flash map base address and size, + all associated information which is defined by BIOS_INFO_STRUCT structur= e. + - IBB firmware volumes, which are expected to be measured or/and verifie= d + by hardware base security solution to meet SecureBoot chain of trust + (Intel BootGuard for example), have attribute 0x0. + - Post IBB firmware volumes, which are expected to be measured or/and ve= rified + by BIOS (TCG code for measurement, RSA2048SHA256Sign algorithm for ver= ification for example), + have attribute BIOS_INFO_STRUCT_ATTRIBUTE_BIOS_POST_IBB. + - Else, follows Firmware Interface Table specification. +*/ +#pragma pack (1) +typedef struct { + BIOS_INFO_HEADER Header; + BIOS_INFO_STRUCT Entry[BIOS_INFO_STRUCT_SIZE]; +} BIOS_INFO; +#pragma pack () + +GLOBAL_REMOVE_IF_UNREFERENCED BIOS_INFO mBiosInfo =3D { + { + BIOS_INFO_SIGNATURE, + BIOS_INFO_STRUCT_SIZE, + 0, + }, + { + { + FIT_TYPE_07_BIOS_STARTUP_MODULE, + BIOS_INFO_STRUCT_ATTRIBUTE_GENERAL_EXCLUDE_FROM_FIT, + 0x0100, + FixedPcdGet32 (PcdFlashNvStorageVariableSize) + FixedPcdGet32 (PcdFl= ashNvStorageFtwWorkingSize) + FixedPcdGet32 (PcdFlashNvStorageFtwSpareSize)= , + FixedPcdGet32 (PcdFlashNvStorageVariableBase) + }, + { + FIT_TYPE_07_BIOS_STARTUP_MODULE, + BIOS_INFO_STRUCT_ATTRIBUTE_BIOS_POST_IBB, + 0x0100, + FixedPcdGet32 (PcdFlashFvAdvancedSize), + FixedPcdGet32 (PcdFlashFvAdvancedBase) + }, + { + FIT_TYPE_07_BIOS_STARTUP_MODULE, + BIOS_INFO_STRUCT_ATTRIBUTE_BIOS_POST_IBB, + 0x0100, + FixedPcdGet32 (PcdFlashFvOptionalSize), + FixedPcdGet32 (PcdFlashFvOptionalBase) + }, + { + FIT_TYPE_07_BIOS_STARTUP_MODULE, + BIOS_INFO_STRUCT_ATTRIBUTE_BIOS_POST_IBB, + 0x0100, + FixedPcdGet32 (PcdFlashFvOsBootSize), + FixedPcdGet32 (PcdFlashFvOsBootBase) + }, + { + FIT_TYPE_07_BIOS_STARTUP_MODULE, + BIOS_INFO_STRUCT_ATTRIBUTE_BIOS_POST_IBB, + 0x0100, + FixedPcdGet32 (PcdFlashFvUefiBootSize), + FixedPcdGet32 (PcdFlashFvUefiBootBase) + }, + { + FIT_TYPE_07_BIOS_STARTUP_MODULE, + BIOS_INFO_STRUCT_ATTRIBUTE_BIOS_POST_IBB, + 0x0100, + FixedPcdGet32 (PcdFlashFvPostMemorySize), + FixedPcdGet32 (PcdFlashFvPostMemoryBase) + }, + { + /* + Note : + Startup ACM is one of the binaries in FvFirmwareBinaries, + so put type 07 but not type 02. + FIT table will contain a type 02 entry with actual address + of ACM binary (it is passed as an input to FitGen tool). + */ + FIT_TYPE_07_BIOS_STARTUP_MODULE, + BIOS_INFO_STRUCT_ATTRIBUTE_GENERAL_EXCLUDE_FROM_FIT, + 0x0100, + FixedPcdGet32 (PcdFlashFvFirmwareBinariesSize), + FixedPcdGet32 (PcdFlashFvFirmwareBinariesBase) + }, + { + FIT_TYPE_07_BIOS_STARTUP_MODULE, + BIOS_INFO_STRUCT_ATTRIBUTE_BIOS_POST_IBB, + 0x0100, + FixedPcdGet32 (PcdFlashFvFspSSize), + FixedPcdGet32 (PcdFlashFvFspSBase) + }, + { + FIT_TYPE_07_BIOS_STARTUP_MODULE, + 0x00, // IBB FV + 0x0100, + FixedPcdGet32 (PcdFlashFvFspMSize), + FixedPcdGet32 (PcdFlashFvFspMBase) + }, + { + FIT_TYPE_07_BIOS_STARTUP_MODULE, + 0x00, // IBB FV + 0x0100, + FixedPcdGet32 (PcdFlashFvFspTSize), + FixedPcdGet32 (PcdFlashFvFspTBase) + }, + { + FIT_TYPE_07_BIOS_STARTUP_MODULE, + 0x00, // IBB FV + 0x0100, + FixedPcdGet32 (PcdFlashFvSecuritySize), + FixedPcdGet32 (PcdFlashFvSecurityBase) + }, + { + FIT_TYPE_07_BIOS_STARTUP_MODULE, + 0x00, // IBB FV + 0x0100, + FixedPcdGet32 (PcdFlashFvPreMemorySize), + FixedPcdGet32 (PcdFlashFvPreMemoryBase) + }, + { + FIT_TYPE_01_MICROCODE, + BIOS_INFO_STRUCT_ATTRIBUTE_MICROCODE_WHOLE_REGION, + 0x0100, + FixedPcdGet32 (PcdFlashMicrocodeFvSize), + FixedPcdGet32 (PcdFlashMicrocodeFvBase) + }, + } +}; + +GLOBAL_REMOVE_IF_UNREFERENCED EFI_PEI_PPI_DESCRIPTOR mBiosInfoPpiList =3D= { + EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST, + &gBiosInfoGuid, + &mBiosInfo +}; + +/** + Installs BiosInfo Ppi. + + @param FileHandle Handle of the file being invoked. + @param PeiServices Describes the list of possible PEI Services. + + @retval EFI_SUCCESS Install the BiosInfo Ppi successfully. + +**/ +EFI_STATUS +EFIAPI +BiosInfoEntryPoint ( + IN EFI_PEI_FILE_HANDLE FileHandle, + IN CONST EFI_PEI_SERVICES **PeiServices + ) +{ + EFI_STATUS Status; + VOID *HobData; + + // + // Install PPI, so that other PEI module can add dependency. + // + Status =3D PeiServicesInstallPpi (&mBiosInfoPpiList); + ASSERT_EFI_ERROR (Status); + + // + // Build hob, so that DXE module can also get the data. + // + HobData =3D BuildGuidHob (&gBiosInfoGuid, sizeof (mBiosInfo)); + ASSERT (HobData !=3D NULL); + if (HobData =3D=3D NULL) { + return EFI_OUT_OF_RESOURCES; + } + CopyMem (HobData, &mBiosInfo, sizeof (mBiosInfo)); + return EFI_SUCCESS; +} diff --git a/Platform/Intel/TigerlakeOpenBoardPkg/BiosInfo/BiosInfo.inf b/P= latform/Intel/TigerlakeOpenBoardPkg/BiosInfo/BiosInfo.inf new file mode 100644 index 0000000000..66c8814c97 --- /dev/null +++ b/Platform/Intel/TigerlakeOpenBoardPkg/BiosInfo/BiosInfo.inf @@ -0,0 +1,83 @@ +## @file +# Module Information description file for BIOS Info Driver +# +# Copyright (c) 2021, Intel Corporation. All rights reserved.
+# SPDX-License-Identifier: BSD-2-Clause-Patent +# +## + +[Defines] + INF_VERSION =3D 0x00010017 + BASE_NAME =3D BiosInfo + FILE_GUID =3D 4A4CA1C6-871C-45BB-8801-6910A7AA5807 + VERSION_STRING =3D 1.0 + MODULE_TYPE =3D PEIM + ENTRY_POINT =3D BiosInfoEntryPoint +# +# The following information is for reference only and not required by the = build tools. +# +# VALID_ARCHITECTURES IA32 X64 +# + +[LibraryClasses] + PeimEntryPoint + PeiServicesLib + PeiServicesTablePointerLib + HobLib + BaseMemoryLib + MemoryAllocationLib + DebugLib + +[Packages] + MdePkg/MdePkg.dec + MdeModulePkg/MdeModulePkg.dec + TigerlakeSiliconPkg/SiPkg.dec + IntelSiliconPkg/IntelSiliconPkg.dec + MinPlatformPkg/MinPlatformPkg.dec + TigerlakeOpenBoardPkg/OpenBoardPkg.dec + SecurityPkg/SecurityPkg.dec + BoardModulePkg/BoardModulePkg.dec + +[Pcd] + gSiPkgTokenSpaceGuid.PcdBiosAreaBaseAddress ## CONSU= MES + gSiPkgTokenSpaceGuid.PcdBiosSize ## CONSU= MES + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase ## CONSU= MES + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize ## CONSU= MES + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase ## CONSU= MES + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize ## CONSU= MES + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase ## CONSU= MES + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize ## CONSU= MES + gBoardModuleTokenSpaceGuid.PcdFlashFvFirmwareBinariesBase ## CONSU= MES + gBoardModuleTokenSpaceGuid.PcdFlashFvFirmwareBinariesSize ## CONSU= MES + gMinPlatformPkgTokenSpaceGuid.PcdFlashFvAdvancedBase ## CONSU= MES + gMinPlatformPkgTokenSpaceGuid.PcdFlashFvAdvancedSize ## CONSU= MES + gBoardModuleTokenSpaceGuid.PcdFlashFvOptionalBase ## CONSU= MES + gBoardModuleTokenSpaceGuid.PcdFlashFvOptionalSize ## CONSU= MES + gMinPlatformPkgTokenSpaceGuid.PcdFlashFvSecurityBase ## CONSU= MES + gMinPlatformPkgTokenSpaceGuid.PcdFlashFvSecuritySize ## CONSU= MES + gMinPlatformPkgTokenSpaceGuid.PcdFlashFvOsBootBase ## CONSU= MES + gMinPlatformPkgTokenSpaceGuid.PcdFlashFvOsBootSize ## CONSU= MES + gMinPlatformPkgTokenSpaceGuid.PcdFlashFvUefiBootBase ## CONSU= MES + gMinPlatformPkgTokenSpaceGuid.PcdFlashFvUefiBootSize ## CONSU= MES + gMinPlatformPkgTokenSpaceGuid.PcdFlashFvPostMemoryBase ## CONSU= MES + gMinPlatformPkgTokenSpaceGuid.PcdFlashFvPostMemorySize ## CONSU= MES + gSiPkgTokenSpaceGuid.PcdFlashMicrocodeFvBase ## CONSU= MES + gSiPkgTokenSpaceGuid.PcdFlashMicrocodeFvSize ## CONSU= MES + gMinPlatformPkgTokenSpaceGuid.PcdFlashFvFspSBase ## CONSU= MES + gMinPlatformPkgTokenSpaceGuid.PcdFlashFvFspSSize ## CONSU= MES + gMinPlatformPkgTokenSpaceGuid.PcdFlashFvFspMBase ## CONSU= MES + gMinPlatformPkgTokenSpaceGuid.PcdFlashFvFspMSize ## CONSU= MES + gMinPlatformPkgTokenSpaceGuid.PcdFlashFvFspTBase ## CONSU= MES + gMinPlatformPkgTokenSpaceGuid.PcdFlashFvFspTSize ## CONSU= MES + gMinPlatformPkgTokenSpaceGuid.PcdFlashFvPreMemoryBase ## CONSU= MES + gMinPlatformPkgTokenSpaceGuid.PcdFlashFvPreMemorySize ## CONSU= MES + + +[Sources] + BiosInfo.c + +[Guids] + gBiosInfoGuid ## PRODUCES + +[Depex] + gEfiPeiMasterBootModePpiGuid --=20 2.24.0.windows.2