From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by mx.groups.io with SMTP id smtpd.web08.21848.1644376860950805616 for ; Tue, 08 Feb 2022 19:21:01 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=Si2OpHoI; spf=pass (domain: intel.com, ip: 134.134.136.65, mailfrom: nathaniel.l.desimone@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1644376861; x=1675912861; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=NGOvr4Q2o7/WgWKOpBsRDBK4vT0X7z9S5pRhhSF43Zc=; b=Si2OpHoINW8YUMLynbndKf01WsvMC6hufNMx8Fz3pdVJ53QPHfW2IDDS USm5Dud8YmqMCiiCzgUpKTvD6M1nRHuVu0du3Spg/5OSQyCgNxD7FGkje xNwykSsAP3srg4J0eDVJQ91EVLxGq3kWKUdsN6wRFRJ51i5eE+q/leYPK jgUefvr4YoriIQsLFXTU0IDN9Ek7EfbGFxqbQjO3QqRsivI2DIDCBSEd7 iQS5TjttJtzbPCqtnPsIgOdJ0goymRtOitbsdP/2bhMAjyhQt5IyPJMV+ gTtLXjftCPFe0zHAJPfN+I1Y4bM0FJxY6rSEJXJjlG+w5n1xhPp7Sa/US Q==; X-IronPort-AV: E=McAfee;i="6200,9189,10252"; a="249057069" X-IronPort-AV: E=Sophos;i="5.88,354,1635231600"; d="scan'208";a="249057069" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Feb 2022 19:21:00 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.88,354,1635231600"; d="scan'208";a="633075325" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by orsmga004.jf.intel.com with ESMTP; 08 Feb 2022 19:21:00 -0800 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Tue, 8 Feb 2022 19:20:59 -0800 Received: from fmsmsx604.amr.corp.intel.com (10.18.126.84) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Tue, 8 Feb 2022 19:20:59 -0800 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx604.amr.corp.intel.com (10.18.126.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20 via Frontend Transport; Tue, 8 Feb 2022 19:20:59 -0800 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.170) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.20; Tue, 8 Feb 2022 19:20:59 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Jxas/q8d/2Hy2hMTPz4BrPpzxIeiah5ao79LXyIqybUsL9WuKsZZkEO8JbHHUD2GDUGkPh6pIXTOYgcNq1f7gXuHymQZ9qtS2qGh+JxSKFDK1ocZTQTihPDZ/eOSnXgOSi5ahCc10nOPF6zJjIebxAbdHmssf2FytaoxLc/5sRqmIE8nmJZswL5zj2quGMGzLR9MxYhR5PNhWvnouG3FDp264MSEe2A7jT5PFuZdc6QqQgYLAUOhDG7v0G16Z3Ye/fb9WKKv0GVs3xtYu2haWQGR/2koBsFoAgPdo4JxqGV6d52cYAL7laaAtQPW+llNzTEhNN/V9bmYNpvlRekNfw== 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=t7ssgwbiWx5vrRqwsOntAj5nDkbg6RFjIg1IX/YHobE=; b=b1jArGrKjtmujexeZ1RPMqcJZ0f6ayvXWWiK2PwFFIEVp40aQ4Kcok5UfDza1DSteVvTKUQAWd1sSwXNpoD/ObMYDcYaLjGH52+VDNJ7Ypdt2fxKIo4Xp/QpcyVz2LDktY6SZKz4ZEUmIA1KE74ZJMpCpYO+GBncJd5YmT4YZFauOPRQr0x0Ok9C7KfWoPrl1q7R4nuvTy5ln+y8/4KLB5tMZUTiGZP9ZQTWZvcSVqgamcJmcWB1bv84FDSRTwz+8uVjN8t36+cQudSJ3q/Y9JCgJBX8E1bvB46BfitFD2Ya+8DVVcTm3hDYvH34i+NRAvA1dRbPOZfWqxvdNP4y8g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none Received: from MW4PR11MB5821.namprd11.prod.outlook.com (2603:10b6:303:184::5) by DM6PR11MB2668.namprd11.prod.outlook.com (2603:10b6:5:c7::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4975.11; Wed, 9 Feb 2022 03:20:56 +0000 Received: from MW4PR11MB5821.namprd11.prod.outlook.com ([fe80::6920:39b9:e18c:9dc5]) by MW4PR11MB5821.namprd11.prod.outlook.com ([fe80::6920:39b9:e18c:9dc5%7]) with mapi id 15.20.4930.022; Wed, 9 Feb 2022 03:20:56 +0000 From: "Nate DeSimone" To: "Oram, Isaac W" , "devel@edk2.groups.io" CC: "Chiu, Chasel" Subject: Re: [edk2-devel][edk2-platforms][PATCH V1 2/8] WhitleyOpenBoardPkg/AcpiTables: Add ACPI Table definitions Thread-Topic: [edk2-devel][edk2-platforms][PATCH V1 2/8] WhitleyOpenBoardPkg/AcpiTables: Add ACPI Table definitions Thread-Index: AQHYHFVU3kgloe2WekCivKoKjxsuf6yKj2vA Date: Wed, 9 Feb 2022 03:20:55 +0000 Message-ID: References: <46abc027d4f33cce1da11cff8a8c5269f838cef0.1644259969.git.isaac.w.oram@intel.com> In-Reply-To: <46abc027d4f33cce1da11cff8a8c5269f838cef0.1644259969.git.isaac.w.oram@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-reaction: no-action dlp-version: 11.6.200.16 dlp-product: dlpe-windows authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 0b249654-89a6-4f12-a4aa-08d9eb7b2f8a x-ms-traffictypediagnostic: DM6PR11MB2668:EE_ x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:499; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: s52iMCjxFRyeAXtGpgID/o50PAj5CVKacibZ4rZKyKlgB97Ubnka+Baf2N3blb0gOUJBi9nQdd6gyv256jntkCu0mBSmcMNZmzppN+U6Kp95yCHMH4As8Y08jD+5SlZ3g1TlrsvtMAbzhrzlsHOmrrYOA0fSZLgS8dLB7UditbnFplias5lost3uudEZUWOr6iffuRtEgIObODBG4VrVNEJ/E+P4If2Muq0p2Y7srl34xbgrDMmoiBB91HKn0N9MdoryO8/bRVS26AkE/f4k3qOBmHpwQSdQWbxG9NfjfOD0K1oLpOiEj03tyv+Hd78YVfNDLJkkZS1kwtmoQR7LmCN/p7XWwezw7OY/jHlspnw6FSYc8FqrPU06sEjhQ+fjCLZXcx9hStI0u9BNv42e8BdcSFTC54J5wGRpPlfkQiPwV002yvPQ665x1u1O9S539W+qbzX/IB6/o9fVImYdQf2/t/VVTuoGeMHxFvChfWptcHWkyF5wsU4Gx9iF5VyNuyxZNIVUOsvYxhxSUTkSJqnEvqudafFj0xfETPK1ZehMfrQh0WUe7jC4A0G2We42fokdvh+apNIXQD5iHgcrXa1gV3t54E9bSabPpdn6sc6oD9DSrkYBX/FqSPbTslOLVPq47FrxljDVt/KnAWR9wcvaDCymD1/WuYOTstK4m/Hh0dPzehvuUHME668ntlmSqM+1u1bz9YyKDaoNakE8+omUaRY3+GbXLeGYwFW1prF0FD2y4uBgrXg690ZHNAHpgSDNwvO6OphMQ+fp85V2UH6/0z/vBs5NdUSomK8z7E6jJCYeSFq4MqncHGMU9eZRs506qlTPurZpDRQdiQSkmQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW4PR11MB5821.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(966005)(86362001)(8936002)(76116006)(8676002)(122000001)(64756008)(66946007)(38100700002)(66476007)(66556008)(33656002)(316002)(55016003)(186003)(26005)(4326008)(66446008)(71200400001)(83380400001)(107886003)(9686003)(508600001)(38070700005)(6506007)(45080400002)(7696005)(53546011)(110136005)(82960400001)(52536014)(2906002)(30864003)(5660300002)(559001)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?KYmu/aWeIL7VyVJW+QzyU/yrRqt1thbFCRlqg7pLmIZx7mQa0/2hO4wwqH4p?= =?us-ascii?Q?BJ6WOAOeEA554yjffabsIdOqRIPEPWHsQrtsWD2OAO1+fImMmsivlhyznOlk?= =?us-ascii?Q?wF2KCNjFIAjTddwx4A/rr9BQDAR1H0iCtJnpVHQ3q5p2CdaOLYXi4h4u9mN0?= =?us-ascii?Q?hl2xRHrluD2Q+IcFHdqwVtYyaeIiRpXZGfKyVqD36HNeYiWFrmpHSo9pmwTa?= =?us-ascii?Q?zDP8ian4VIzdM/NDHt/JwhGPa/MW0G9g4Yo4gQXZEUzbwYwfHNONoD7BeGTT?= =?us-ascii?Q?5NJOYb4oQJj5jxUcLbJnYw6Op8ydzxKO8e9cjgOFN5Xzaujq6/wPTtJPYVGD?= =?us-ascii?Q?tQfyBNAJUdYXPOq+F53sQP3JAh99VuDIw4iDYobfTAqYP/pwed2lFcfeQrkt?= =?us-ascii?Q?7dHlOIZ4bMtEO3FT5NsPjJE7/51DRZcxYju/7hlgd9ZEJegP/wKd0Bc0KQB7?= =?us-ascii?Q?w+TK7Agdg9hFIT0fK51v+/TnAu0J7W7k41j3Y9EWOn4qMxNo8yRhrq5qdMRr?= =?us-ascii?Q?BOwWoxeaRYRUUyCb7kmO+XHqj3nSJ8dombVFyAHENARXNqQeI2T92MgvEJHF?= =?us-ascii?Q?V8D0xy3Yy2KgSGMfG3d35AlBgt8mKeg42hE4fSkCUqv9UHZVUwEgU1NTBTrT?= =?us-ascii?Q?YNjZoFbk0l/Vo8L0/ky16OC1WY4vkybuGSPtLyKTOPDzG7ly++t1AZhEbr/1?= =?us-ascii?Q?w4oY4CP8EYxhn1L75iLwLYz0udBQYX+LhpCcaVJta+JGkwyR9ZbgV/CwgLNT?= =?us-ascii?Q?pGFIKmsx1F1lRiyFY0/KuzKyjtrBaquOp1zezbv8TQ8SB8LuVJsZWYedSSVn?= =?us-ascii?Q?hYZ8oqjPio51stie+NA1LkbdLKrPXBTlsW4e5AZ742eSiV0AkZ9WMT1W9SSe?= =?us-ascii?Q?65ze6Hz9TKwDJUa+7Z4h+BvXZUpM8VhOJMMEtTj/9DlFD2OAJO5150z+D/nC?= =?us-ascii?Q?p3pX/ihkog+6bbmocOwEEAcV8t5EJMw/VJ2HA6OW6R7NeTeCoXV/ttWq6Vvr?= =?us-ascii?Q?3rJzckjLGzes2py6WrI2NIhV8cETdxz90WQyf2oLWacLIqjdfrq0YQfGNH3y?= =?us-ascii?Q?hyiRBcyHV+FbxZg6YgeFlGfoHn/a4iCDLzsVrmBGNpd7R+S4NJg0Y8bg3nzd?= =?us-ascii?Q?11AFp8G7fqpfTBG4zjTXrfmCbvqlSYszLg1U2LcN7Ebkw37l8brOoHAyZul6?= =?us-ascii?Q?nngg0V3jxONXMalDIXKMEFkmAY0V9OMVrb+y3BGbB8MZqkMUPZua2l3V8NSy?= =?us-ascii?Q?AOpE95zlHhJLy4HTIK6U9MkoJE4hvioTeF45GMId5wiqLQUxDSqKmJeB4PGX?= =?us-ascii?Q?kKi7ABfWW+6+FlbY8IIhbMVwre1O3Al/bDFAI/kNnWBfxXIB6zlG8OFla2aA?= =?us-ascii?Q?4gDr6XW4e1yjOQtyBw9+bI1VU/RpMGcUxmIA6NmbA3HQH5LSciuR4REdzKf3?= =?us-ascii?Q?PsWTpa08Y3LPjt3wxYU90anl73uBJWNgIAKK9TGaKM09FT7X5uB1UFgHT0oT?= =?us-ascii?Q?dfxPCSadW5H46E5yVaVjiiOsn+4uOOOxZWcu3+9F+HW/D92rdvvnx4ucdDZo?= =?us-ascii?Q?g6GlcsrA7wxtvetOuQSoKa+fBfr8urd2j7ZFZf7gekwgCsReWWyGaKMWVr7K?= =?us-ascii?Q?GvQ1SAKkhT3CoW42Lm2PYDOFN/RdIcxpta6nq+YNOH/QIhCm5XJSDFZr4MY+?= =?us-ascii?Q?monGOw=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MW4PR11MB5821.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0b249654-89a6-4f12-a4aa-08d9eb7b2f8a X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Feb 2022 03:20:55.9649 (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: yNqn9sUjgvLvnu+0kCy77z/fLGBKvta1RHfr3vMaA6r33AGuPpqQawtuaEd3eVw0y+TFj+hLtzfdmqLxes8TIDInqoUfAGh4lenL9VeuS1Q= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB2668 Return-Path: nathaniel.l.desimone@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Reviewed-by: Nate DeSimone > -----Original Message----- > From: Oram, Isaac W > Sent: Monday, February 7, 2022 11:03 AM > To: devel@edk2.groups.io > Cc: Desimone, Nathaniel L ; Chiu, Chasel > > Subject: [edk2-devel][edk2-platforms][PATCH V1 2/8] > WhitleyOpenBoardPkg/AcpiTables: Add ACPI Table definitions >=20 > Header files for C structures used to build ACPI tables >=20 > Cc: Nate DeSimone > Cc: Chasel Chiu > Signed-off-by: Isaac Oram > --- > Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Bdat.h = | 91 > +++++++++ > Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Dbg2.h = | 30 > +++ > Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Facs.h = | 37 > ++++ > Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Fadt.h = | 206 > ++++++++++++++++++++ > Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Hmat.h = | 88 > +++++++++ > Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Hpet.h = | 43 > ++++ > Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Mcfg.h = | 58 > ++++++ > Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Migt.h = | 57 > ++++++ > Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Msars.h = | 56 > ++++++ > Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Mscis.h = | 84 > ++++++++ > Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Msct.h = | 58 > ++++++ > Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Nfit.h = | 50 > +++++ > Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Pcat.h = | 45 > +++++ > Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Pmtt.h = | 120 > ++++++++++++ > Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Sllbis.h = | 87 > +++++++++ > Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Spcr.h = | 48 > +++++ > Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Spmi.h = | 59 > ++++++ >=20 > Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/WatchdogDescriptionTa > ble.h | 82 ++++++++ > Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Wddt.h = | 53 > +++++ > Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Wsmt.h = | 67 > +++++++ > Platform/Intel/WhitleyOpenBoardPkg/PlatformPkg.dec = | 7 +- > Silicon/Intel/WhitleySiliconPkg/Include/UncoreCommonIncludes.h = | > 8 + > 22 files changed, 1430 insertions(+), 4 deletions(-) >=20 > diff --git a/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Bdat.h > b/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Bdat.h > new file mode 100644 > index 0000000000..0fb913a6a8 > --- /dev/null > +++ b/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Bdat.h > @@ -0,0 +1,91 @@ > +/** @file > + This file describes the contents of the BDAT ACPI. > + > + @copyright > + Copyright 1999 - 2019 Intel Corporation.
> + > + SPDX-License-Identifier: BSD-2-Clause-Patent > +**/ > + > +#ifndef _BDAT_H_ > +#define _BDAT_H_ > + > +// > +// Statements that include other files > +// > +#include > + > +// > +// Ensure proper structure formats > +// > +#pragma pack(1) > + > +#define EFI_BDAT_TABLE_SIGNATURE SIGNATURE_32('B','D','A','T') > + > +#define BDAT_PRIMARY_VER 0x0004 > +#define BDAT_SECONDARY_VER 0x0000 > + > +typedef struct { > + UINT8 BiosDataSignature[8]; // "BDATHEAD" > + UINT32 BiosDataStructSize; // sizeof BDAT_STRUCTURE + sizeof > BDAT_MEMORY_DATA_STRUCTURE + sizeof BDAT_RMT_STRUCTURE > + UINT16 Crc16; // 16-bit CRC of BDAT_STRUCTURE (calcula= ted with 0 > in this field) > + UINT16 Reserved; > + UINT16 PrimaryVersion; // Primary version > + UINT16 SecondaryVersion; // Secondary version > + UINT32 OemOffset; // Optional offset to OEM-defined struct= ure > + UINT32 Reserved1; > + UINT32 Reserved2; > +} BDAT_HEADER_STRUCTURE; > + > +typedef struct bdatSchemaList { > + UINT16 SchemaListLength; //Number of Schemas pre= sent > + UINT16 Reserved; > + UINT16 Year; > + UINT8 Month; > + UINT8 Day; > + UINT8 Hour; > + UINT8 Minute; > + UINT8 Second; > + UINT8 Reserved1; > + // > + // This is a dynamic region, where Schema list address is filled out. > + // Each schema location is 32 bits long and complies with BDAT 4.0 ver= sion. > + // > +} BDAT_SCHEMA_LIST_STRUCTURE; > + > +//BDAT Header Struct which contains information all exisitng BDAT Schema= s > +typedef struct bdatStruct { > + BDAT_HEADER_STRUCTURE BdatHeader; > + BDAT_SCHEMA_LIST_STRUCTURE BdatSchemas; > +} BDAT_STRUCTURE; > + > +// > +// BIOS Data ACPI structure > +// > +typedef struct { > + > + EFI_ACPI_DESCRIPTION_HEADER Header; > + EFI_ACPI_6_2_GENERIC_ADDRESS_STRUCTURE BdatGas; > + > +} EFI_BDAT_ACPI_DESCRIPTION_TABLE; > + > +// > +// BIOS Data Parameter Region Generic Address > +// Information > +// > +#define EFI_BDAT_ACPI_POINTER 0x0 > + > +#define ___INTERNAL_CONVERT_TO_STRING___(a) #a > +#define CONVERT_TO_STRING(a) > ___INTERNAL_CONVERT_TO_STRING___(a) > + > +// > +// This is copied from Include\Acpi.h > +// > +#define CREATOR_ID_INTEL 0x4C544E49 //"LTNI""INTL"(Intel) > +#define CREATOR_REV_INTEL 0x20090903 > + > +#define EFI_ACPI_TABLE_VERSION_ALL > (EFI_ACPI_TABLE_VERSION_1_0B|EFI_ACPI_TABLE_VERSION_2_0|EFI_ACPI > _TABLE_VERSION_3_0) > + > +#pragma pack() > + > +#endif > diff --git a/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Dbg2.h > b/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Dbg2.h > new file mode 100644 > index 0000000000..cfaa9247d8 > --- /dev/null > +++ b/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Dbg2.h > @@ -0,0 +1,30 @@ > +/** @file > + > + @copyright > + Copyright 2019 Intel Corporation.
> + > + SPDX-License-Identifier: BSD-2-Clause-Patent > +**/ > + > +#ifndef _DBG2_H_ > +#define _DBG2_H_ > + > +// > +// Statements that include other files > +// > +#include > + > +#pragma pack(1) > +typedef > +struct { > + EFI_ACPI_DEBUG_PORT_2_DESCRIPTION_TABLE Table; > + EFI_ACPI_DBG2_DEBUG_DEVICE_INFORMATION_STRUCT Entry; > + EFI_ACPI_6_2_GENERIC_ADDRESS_STRUCTURE BaseAdressRegister; > + UINT32 AddressSize; > + CHAR8 NamespaceString[2]; > + > +} DBG2_DEBUG_TABLE; > +#pragma pack() > + > + > +#endif //_DBG2_H_ > diff --git a/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Facs.h > b/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Facs.h > new file mode 100644 > index 0000000000..56e32c41f5 > --- /dev/null > +++ b/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Facs.h > @@ -0,0 +1,37 @@ > +/** @file > + This file describes the contents of the ACPI Firmware ACPI Control > + Structure (FACS). Some additional ACPI values are defined in Acpi1_0.= h > and > + Acpi2_0.h > + All changes to the FACS contents should be done in this file. > + > + @copyright > + Copyright 1996 - 2015 Intel Corporation.
> + > + SPDX-License-Identifier: BSD-2-Clause-Patent > +**/ > + > +#ifndef _FACS_H > +#define _FACS_H > + > +// > +// Statements that include other files > +// > +#include > + > +// > +// FACS Definitions > +// > +#define EFI_ACPI_FIRMWARE_WAKING_VECTOR 0x00000000 > +#define EFI_ACPI_GLOBAL_LOCK 0x00000000 > + > +// > +// Firmware Control Structure Feature Flags are defined in AcpiX.0.h > +// > +#define EFI_ACPI_FIRMWARE_CONTROL_STRUCTURE_FLAGS 0x00000000 > + > +#define EFI_ACPI_X_FIRMWARE_WAKING_VECTOR > 0x0000000000000000 > + > +#define EFI_ACPI_OSPM_FLAGS 0x00000000 > + > + > +#endif > diff --git a/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Fadt.h > b/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Fadt.h > new file mode 100644 > index 0000000000..004aac350d > --- /dev/null > +++ b/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Fadt.h > @@ -0,0 +1,206 @@ > +/** @file > + This file describes the contents of the ACPI Fixed ACPI Description Ta= ble > + FADT). Some additional ACPI values are defined in Acpi1_0.h and > Acpi2_0.h. > + All changes to the FADT contents should be done in this file. > + > + @copyright > + Copyright 1996 - 2020 Intel Corporation.
> + > + SPDX-License-Identifier: BSD-2-Clause-Patent > +**/ > + > +#ifndef _FADT_H_ > +#define _FADT_H_ > + > +// > +// Statements that include other files > +// > +#include > +#include "Platform.h" > +#include > + > +// > +// FADT Definitions > +// > +#define EFI_ACPI_OEM_FADT_REVISION 0x00000000 > +// > +// For ACPI 1.0 supprt > +// Harwich sets this to #define EFI_ACPI_INT_MODEL 0x01 > +// > + > +/* > +INT_MODEL Field > +The FADT defines the fixed ACPI information that is needed by the > operating system as > +defined in section 5.2.5 of the ACPI 1.0 specification. Currently, this = table > provides a field > +for INT_MODEL, which was intended to be used to report the interrupt > mode of the machine. > +This field is ignored by the Microsoft?Windows?2000 and later operating > system because the > +Microsoft Windows 98 operating system only supports programmable > interrupt controller (PIC) mode. > +This forces system manufacturers (OEMs) who want to support Windows 98 > to enter a "0" in the INT_MODEL field. > +This would then preclude using multiple processors on Windows 2000 and > later versions. > +Because the INT_MODEL field in the FADT cannot be dynamically updated > while the machine is running, > +it cannot be used to report the interrupt mode, and therefore it is igno= red > by Windows 98, > +and Windows 2000 and later versions. > +http://www.microsoft.com/whdc/system/CEC/ACPI-MP.mspx > +For Watson Creek we set this to 0 and then dynamically update this to 1 = in > the DSDT tables _PIC method and GPIC field. > +*/ > +#define EFI_ACPI_INT_MODEL 0x0 > + > +#define EFI_ACPI_PREFERRED_PM_PROFILE 0x04 > + > +#define EFI_ACPI_SCI_INT 0x0009 > +#define EFI_ACPI_SMI_CMD 0x0 > + > +#define EFI_ACPI_ACPI_ENABLE 0x00 > +#define EFI_ACPI_ACPI_DISABLE 0x00 > +#define EFI_ACPI_S4_BIOS_REQ 0x00 > +#define EFI_ACPI_CST_CNT 0x00 > + > +#define EFI_ACPI_PSTATE_CNT 0x00 > +#define EFI_ACPI_GPE1_BASE (EFI_ACPI_GPE1_BLK_BIT_WIDTH / 2) > +#define EFI_ACPI_P_LVL2_LAT 0x0065 > +#define EFI_ACPI_P_LVL3_LAT 0x03E9 > +// > +// #define EFI_ACPI_FLUSH_SIZE 0x0400 > +// > +#define EFI_ACPI_FLUSH_SIZE 0x0000 > +// > +// #define EFI_ACPI_FLUSH_STRIDE 0x0010 > +// > +#define EFI_ACPI_FLUSH_STRIDE 0x0000 > +#define EFI_ACPI_DUTY_OFFSET 0x01 > +// > +// #define EFI_ACPI_DUTY_OFFSET 0x00 > +// > +#define EFI_ACPI_DUTY_WIDTH 0x00 > + > +#define EFI_ACPI_DAY_ALRM 0x0D > +#define EFI_ACPI_MON_ALRM 0x00 > +#define EFI_ACPI_CENTURY 0x32 > + > +// > +// IA-PC Boot Architecture Flags, see ACPI 2.0 table specification and > Acpi6_2.h > +// No legacy KBC and legcay devices other reported in ASL code > +// > +// #define EFI_ACPI_IAPC_BOOT_ARCH (EFI_ACPI_6_2_LEGACY_DEVICES | > EFI_ACPI_6_2_8042) > +// > +//#define EFI_ACPI_IAPC_BOOT_ARCH EFI_ACPI_6_2_8042 > +#define EFI_ACPI_OS_ASPM_DISABLE (1 << 4) > + > +#define EFI_ACPI_IAPC_BOOT_ARCH EFI_ACPI_6_2_8042 | > EFI_ACPI_OS_ASPM_DISABLE > + > +// > +// Fixed Feature Flags, see ACPI 6.2 table specification and Acpi6_2.h > +// > +#define EFI_ACPI_FIXED_FEATURE_FLAGS > (EFI_ACPI_6_2_RESET_REG_SUP | \ > + EFI_ACPI_6_2_RTC_S4 | \ > + EFI_ACPI_6_2_SLP_BUTTON | \ > + EFI_ACPI_6_2_WBINVD | \ > + EFI_ACPI_6_2_PROC_C1 \ > + ) > + > +// > +// PM1A Event Register Block Generic Address Information > +// > +#define EFI_ACPI_PM1A_EVT_BLK_ADDRESS_SPACE_ID > EFI_ACPI_6_2_SYSTEM_IO > +#define EFI_ACPI_PM1A_EVT_BLK_BIT_WIDTH 0x20 > +#define EFI_ACPI_PM1A_EVT_BLK_BIT_OFFSET 0x00 > +#define EFI_ACPI_PM1A_EVT_BLK_ADDRESS (FixedPcdGet32 > (PcdEfiAcpiPm1aEvtBlkAddress)) > + > +// > +// PM1B Event Register Block Generic Address Information > +// > +#define EFI_ACPI_PM1B_EVT_BLK_ADDRESS_SPACE_ID > EFI_ACPI_6_2_SYSTEM_IO > +#define EFI_ACPI_PM1B_EVT_BLK_BIT_WIDTH 0x00 > +#define EFI_ACPI_PM1B_EVT_BLK_BIT_OFFSET 0x00 > +#define EFI_ACPI_PM1B_EVT_BLK_ADDRESS 0x00000000 > + > +// > +// PM1A Control Register Block Generic Address Information > +// > +#define EFI_ACPI_PM1A_CNT_BLK_ADDRESS_SPACE_ID > EFI_ACPI_6_2_SYSTEM_IO > +#define EFI_ACPI_PM1A_CNT_BLK_BIT_WIDTH 0x10 > +#define EFI_ACPI_PM1A_CNT_BLK_BIT_OFFSET 0x00 > +#define EFI_ACPI_PM1A_CNT_BLK_ADDRESS > (EFI_ACPI_PM1A_EVT_BLK_ADDRESS + 0x04) > + > +// > +// PM1B Control Register Block Generic Address Information > +// > +#define EFI_ACPI_PM1B_CNT_BLK_ADDRESS_SPACE_ID > EFI_ACPI_6_2_SYSTEM_IO > +#define EFI_ACPI_PM1B_CNT_BLK_BIT_WIDTH 0x00 > +#define EFI_ACPI_PM1B_CNT_BLK_BIT_OFFSET 0x00 > +#define EFI_ACPI_PM1B_CNT_BLK_ADDRESS 0x00 > + > +// > +// PM2 Control Register Block Generic Address Information > +// > +#define EFI_ACPI_PM2_CNT_BLK_ADDRESS_SPACE_ID > EFI_ACPI_6_2_SYSTEM_IO > +#define EFI_ACPI_PM2_CNT_BLK_BIT_WIDTH 0x08 > +#define EFI_ACPI_PM2_CNT_BLK_BIT_OFFSET 0x00 > +#define EFI_ACPI_PM2_CNT_BLK_ADDRESS > (EFI_ACPI_PM1A_EVT_BLK_ADDRESS + 0x50) > + > +// > +// Power Management Timer Control Register Block Generic Address > +// Information > +// > +#define EFI_ACPI_PM_TMR_BLK_ADDRESS_SPACE_ID > EFI_ACPI_6_2_SYSTEM_IO > +#define EFI_ACPI_PM_TMR_BLK_BIT_WIDTH 0x20 > +#define EFI_ACPI_PM_TMR_BLK_BIT_OFFSET 0x00 > +#define EFI_ACPI_PM_TMR_BLK_ADDRESS > (EFI_ACPI_PM1A_EVT_BLK_ADDRESS + 0x08) > + > +// > +// General Purpose Event 0 Register Block Generic Address > +// Information > +// > +#define EFI_ACPI_GPE0_BLK_ADDRESS_SPACE_ID > EFI_ACPI_6_2_SYSTEM_IO > +#define EFI_ACPI_GPE0_BLK_BIT_WIDTH 0x100 // size of > R_PCH_ACPI_GPE0_STS_127_96 + R_PCH_ACPI_GPE0_EN_127_96 (2*0x80 =3D > 0x100) > +#define EFI_ACPI_GPE0_BLK_BIT_OFFSET 0x00 > +#define EFI_ACPI_GPE0_BLK_ADDRESS > (EFI_ACPI_PM1A_EVT_BLK_ADDRESS + 0x80) > + > +// > +// General Purpose Event 1 Register Block Generic Address > +// Information > +// > +#define EFI_ACPI_GPE1_BLK_ADDRESS_SPACE_ID > EFI_ACPI_6_2_SYSTEM_IO > +#define EFI_ACPI_GPE1_BLK_BIT_WIDTH 0x0 > +#define EFI_ACPI_GPE1_BLK_BIT_OFFSET 0x0 > +#define EFI_ACPI_GPE1_BLK_ADDRESS 0x0 > +// > +// Reset Register Generic Address Information > +// > +#define EFI_ACPI_RESET_REG_ADDRESS_SPACE_ID > EFI_ACPI_6_2_SYSTEM_IO > +#define EFI_ACPI_RESET_REG_BIT_WIDTH 0x08 > +#define EFI_ACPI_RESET_REG_BIT_OFFSET 0x00 > +#define EFI_ACPI_RESET_REG_ADDRESS 0x00000CF9 > +#define EFI_ACPI_RESET_VALUE 0x06 > + > +// > +// Number of bytes decoded by PM1 event blocks (a and b) > +// > +#define EFI_ACPI_PM1_EVT_LEN ((EFI_ACPI_PM1A_EVT_BLK_BIT_WIDTH > + EFI_ACPI_PM1B_EVT_BLK_BIT_WIDTH) / 8) > + > +// > +// Number of bytes decoded by PM1 control blocks (a and b) > +// > +#define EFI_ACPI_PM1_CNT_LEN ((EFI_ACPI_PM1A_CNT_BLK_BIT_WIDTH > + EFI_ACPI_PM1B_CNT_BLK_BIT_WIDTH) / 8) > + > +// > +// Number of bytes decoded by PM2 control block > +// > +#define EFI_ACPI_PM2_CNT_LEN (EFI_ACPI_PM2_CNT_BLK_BIT_WIDTH / > 8) > + > +// > +// Number of bytes decoded by PM timer block > +// > +#define EFI_ACPI_PM_TMR_LEN (EFI_ACPI_PM_TMR_BLK_BIT_WIDTH / 8) > + > +// > +// Number of bytes decoded by GPE0 block > +// > +#define EFI_ACPI_GPE0_BLK_LEN (EFI_ACPI_GPE0_BLK_BIT_WIDTH / 8) > + > +// > +// Number of bytes decoded by GPE1 block > +// > +#define EFI_ACPI_GPE1_BLK_LEN (EFI_ACPI_GPE1_BLK_BIT_WIDTH / 8) > + > +#endif > diff --git a/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Hmat.h > b/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Hmat.h > new file mode 100644 > index 0000000000..ad6684acce > --- /dev/null > +++ b/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Hmat.h > @@ -0,0 +1,88 @@ > +/** @file > + > + @copyright > + Copyright 2016 - 2020 Intel Corporation.
> + > + SPDX-License-Identifier: BSD-2-Clause-Patent > +**/ > + > +#ifndef _HMAT_HMAT_H_ > +#define _HMAT_HMAT_H_ > + > +#include > +#include > +#include "Platform.h" > +#include "Msars.h" > +#include "Sllbis.h" > +#include "Mscis.h" > + > +#define > EFI_ACPI_HETEROGENEOUS_MEMORY_ATTRIBUTE_TABLE_REVISION 0x01 > +#define EFI_ACPI_OEM_HMAT_REVISION 0x00000001 > + > +#define EFI_HETEROGENEOUS_MEMORY_ATTRIBUTE_TABLE_SIGNATURE > SIGNATURE_32('H', 'M', 'A', 'T') > +#define MEMORY_SUBSYSTEM_ADDRESS_RANGE_STRUCTURE_TYPE 0 > +#define > SYSTEM_LOCALITY_LATENCY_BANDWIDTH_INFORMATION_STRUCTURE_TY > PE 1 > +#define MEMORY_SIDE_CACHE_INFORMATION_STRUCTURE_TYPE 2 > + > +#define EFI_ACPI_HMAT_MSARS_COUNT (MC_MAX_NODE * > MAX_CRS_ENTRIES_PER_NODE) > +#define EFI_ACPI_HMAT_LBIS_COUNT > (EFI_ACPI_HMAT_MAX_SLLBIS_DATA_TYPES * > MAX_HMAT_MEMORY_HIERACHY_LEVELS) > +#define EFI_ACPI_HMAT_MSCIS_COUNT (MC_MAX_NODE * > MAX_CRS_ENTRIES_PER_NODE) > + > + > +#define HMAT_BW_BASE_UNIT 1024 // 1024 MB/S > +#define HMAT_LATENCY_BASE_UNIT 1 // 1ns > + > +#define HBM_4_NODES_CASE 4 > +#define HBM_2_NODES_CASE 2 > +#define HBM_1_NODE_CASE 1 > + > +// > +// In HBM as Cache mode, Cache Flags are only for Last Level of Cache (F= lags > =3D 1), and 1st Level of Cache (Flags =3D 2). > +// So Flag =3D 0 should be skipped. > +// > +#define HMAT_HBM_CACHE_FLAG_OFFSET 1 > + > +#pragma pack(1) > +typedef enum { > + TypeFlatMemoryMode =3D 1, > + TypeCacheMemoryMode =3D 2, > + TypeHybridMemoryMode =3D 3, > +} LBIS_MEMORY_FLAGS_TYPE; > + > +typedef struct { > + UINT8 Valid; > + UINT32 ElementId; > + UINT64 MemMapIndexMap; > + UINT8 Cacheable; > + UINT64 MemorySideCacheSize; > + UINT16 NumSmbiosHandles; > + UINT16 SmbiosHandles[MAX_TYPE17_CACHE_DEVICES]; > + UINT8 PhysicalSocketId; > +} MEMORY_DOMAIN_LIST_INFO; > + > +typedef struct { > + UINT32 ProcessorDomainNumber; > + UINT32 MemoryDomainNumber; > + UINT16 ProcessorDomainList > [EFI_ACPI_HMAT_NUMBER_OF_PROCESSOR_DOMAINS]; > + MEMORY_DOMAIN_LIST_INFO MemoryDomainList > [EFI_ACPI_HMAT_NUMBER_OF_MEMORY_DOMAINS]; > + UINT8 SncEnabled; > + UINT8 SncNumOfCluster; > + UINT8 VirtualNumaEnabled; > + UINT8 VirtualNumOfCluster; > + UINT8 ProcessorDomainSocketIdList > [EFI_ACPI_HMAT_NUMBER_OF_PROCESSOR_DOMAINS]; > +} HMAT_PROXIMITY_DOMAIN_DATA_STRUCTURE; > + > +typedef struct { > + EFI_ACPI_DESCRIPTION_HEADER Header; > + UINT32 Reserved; // To make the structures 8 byte aligned > +} EFI_ACPI_HETEROGENEOUS_MEMORY_ATTRIBUTE_TABLE_HEADER; > + > +typedef struct { > + EFI_ACPI_HETEROGENEOUS_MEMORY_ATTRIBUTE_TABLE_HEADER > HmatHeader; > + MEMORY_SUBSYSTEM_ADDRESS_RANGE_STRUCTURE > Msars[EFI_ACPI_HMAT_MSARS_COUNT]; > + LATENCY_BANDWIDTH_INFO_STRUCTURE > Lbis[EFI_ACPI_HMAT_LBIS_COUNT]; > + MEMORY_SIDE_CACHE_INFORMATION_STRUCTURE > MemSideCache[EFI_ACPI_HMAT_MSCIS_COUNT]; > +} EFI_ACPI_HETEROGENEOUS_MEMORY_ATTRIBUTE_TABLE; > +#pragma pack() > + > +#endif /* _HMAT_H_ */ > diff --git a/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Hpet.h > b/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Hpet.h > new file mode 100644 > index 0000000000..a3b9ef256a > --- /dev/null > +++ b/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Hpet.h > @@ -0,0 +1,43 @@ > +/** @file > + This file describes the contents of the ACPI High Precision Event Time= r > Description Table > + HPET). Some additional ACPI values are defined in Acpi1_0.h, Acpi2_0.= h, > and Acpi3_0.h > + All changes to the HPET contents should be done in this file. > + > + @copyright > + Copyright 1999 - 2019 Intel Corporation.
> + > + SPDX-License-Identifier: BSD-2-Clause-Patent > +**/ > + > +#ifndef _HPET_H_ > +#define _HPET_H_ > + > +// > +// Statements that include other files > +// > +#include > +#include > + > +// > +// HPET Definitions > +// > +#define EFI_ACPI_OEM_HPET_REVISION 0x00000001 > + > +#define EFI_ACPI_EVENT_TIMER_BLOCK_ID 0x8086A701 > + > +// > +// Event Timer Block Base Address Information > +// > +#define EFI_ACPI_EVENT_TIMER_BLOCK_ADDRESS_SPACE_ID > EFI_ACPI_6_2_SYSTEM_MEMORY > +#define EFI_ACPI_EVENT_TIMER_BLOCK_BIT_WIDTH 0x00 > +#define EFI_ACPI_EVENT_TIMER_BLOCK_BIT_OFFSET 0x00 > +#define EFI_ACPI_EVENT_TIMER_ACCESS_SIZE 0x00 > +#define EFI_ACPI_EVENT_TIMER_BLOCK_ADDRESS > 0x00000000FED00000 > + > +#define EFI_ACPI_HPET_NUMBER 0x00 > + > +#define EFI_ACPI_MIN_CLOCK_TICK 0x0080 > + > +#define EFI_ACPI_HPET_ATTRIBUTES 0x00 > + > +#endif > diff --git a/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Mcfg.h > b/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Mcfg.h > new file mode 100644 > index 0000000000..7277961baa > --- /dev/null > +++ b/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Mcfg.h > @@ -0,0 +1,58 @@ > +/** @file > + ACPI Memory mapped configuration space base address Description Table > + implementation, based on PCI Firmware Specification Revision 3.0 final > draft, > + downloadable at http://www.pcisig.com/home > + > + @copyright > + Copyright 1999 - 2019 Intel Corporation.
> + > + SPDX-License-Identifier: BSD-2-Clause-Patent > +**/ > + > +#ifndef _MCFG_H_ > +#define _MCFG_H_ > + > +// > +// Statements that include other files > +// > +#include > +#include > > +#include "Platform.h" > +// > +// "MCFG" Static Resource Affinity Table > +// > +#define > EFI_ACPI_6_2_MEMORY_MAPPED_CONFIGURATION_BASE_ADDRESS_TABL > E_SIGNATURE 0x4746434D > + > +// > +// MCFG Definitions, see specification for details. > +// > +#define EFI_ACPI_OEM_MCFG_REVISION 0x00000001 > + > +// > +// Define the number of each table type. > +// This is where the table layout is modified. > +// > +#define > EFI_ACPI_MEMORY_MAPPED_ENHANCED_CONFIGURATION_BASE_ADDRE > SS_STRUCTURE_COUNT MAX_SOCKET > + > +// > +// MCFG Table definition. The table must be defined in a platform > +// specific manner. > +// > +// > +// Ensure proper structure formats > +// > +#pragma pack(1) > + > +typedef struct { > + > EFI_ACPI_MEMORY_MAPPED_CONFIGURATION_BASE_ADDRESS_TABLE_HE > ADER Header; > + > +#if > EFI_ACPI_MEMORY_MAPPED_ENHANCED_CONFIGURATION_BASE_ADDRE > SS_STRUCTURE_COUNT > 0 > + > EFI_ACPI_MEMORY_MAPPED_ENHANCED_CONFIGURATION_SPACE_BASE_ > ADDRESS_ALLOCATION_STRUCTURE Segment[ > + > EFI_ACPI_MEMORY_MAPPED_ENHANCED_CONFIGURATION_BASE_ADDRE > SS_STRUCTURE_COUNT]; > +#endif > + > +} EFI_ACPI_MEMORY_MAPPED_CONFIGURATION_BASE_ADDRESS_TABLE; > + > +#pragma pack() > + > +#endif // _MCFG_H_ > diff --git a/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Migt.h > b/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Migt.h > new file mode 100644 > index 0000000000..058ae67717 > --- /dev/null > +++ b/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Migt.h > @@ -0,0 +1,57 @@ > +/** @file > + This file describes the contents of the MIGT ACPI table. > + > + @copyright > + Copyright 1999 - 2019 Intel Corporation.
> + > + SPDX-License-Identifier: BSD-2-Clause-Patent > +**/ > + > +#ifndef _MIGT_H_ > +#define _MIGT_H_ > + > +// > +// Statements that include other files > +// > +#include > + > +// > +// MIGT ACPI structure > +// > +typedef struct { > + > + EFI_ACPI_DESCRIPTION_HEADER Header; > + // MIGT Specific Entries > + EFI_ACPI_6_2_GENERIC_ADDRESS_STRUCTURE ControlRegister; > + UINT32 ControlRegisterValue; > + EFI_ACPI_6_2_GENERIC_ADDRESS_STRUCTURE ActionRegion; > + > +} EFI_MIGT_ACPI_DESCRIPTION_TABLE; > + > + > +// > +// MIGT ACPI Definitions > +// > +#define MIGT_SMI_SERVICE_ID 0xFD // Door Be= ll > + > +#define EFI_MIGT_ACPI_TABLE_SIGNATURE > SIGNATURE_32('M','I','G','T') > +#define EFI_MIGT_ACPI_DESCRIPTION_TABLE_REVISION 0x01 > +#define EFI_MIGT_ACPI_OEM_REVISION 0x00000000 > + > +// > +// MIGT Control Register Generic Address Information > +// > +#define EFI_MIGT_CR_ACPI_ADDRESS_SPACE_ID > EFI_ACPI_6_2_SYSTEM_IO > +#define EFI_MIGT_CR_ACPI_REGISTER_BIT_WIDTH 0x8 > +#define EFI_MIGT_CR_ACPI_REGISTER_BIT_OFFSET 0x0 > +#define EFI_MIGT_CR_ACPI_SMI_ADDRESS 0xB2 > + > +// > +// MIGT Action Region Generic Address Information > +// > +#define EFI_MIGT_AR_ACPI_ADDRESS_SPACE_ID > EFI_ACPI_6_2_SYSTEM_MEMORY > +#define EFI_MIGT_AR_ACPI_REGISTER_BIT_WIDTH 64 > +#define EFI_MIGT_AR_ACPI_REGISTER_BIT_OFFSET 0x0 > +#define EFI_MIGT_AR_ACPI_MEMORY_ADDRESS 0x0 > + > +#endif > diff --git a/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Msars.h > b/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Msars.h > new file mode 100644 > index 0000000000..a088d66ea5 > --- /dev/null > +++ b/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Msars.h > @@ -0,0 +1,56 @@ > +/** @file > + > + @copyright > + Copyright 2016 - 2018 Intel Corporation.
> + > + SPDX-License-Identifier: BSD-2-Clause-Patent > +**/ > + > +#ifndef _MSARS_H_ > +#define _MSARS_H_ > + > +#include > + > +#pragma pack(1) > +typedef struct { > + UINT16 ProcessorDomainValid:1; > + UINT16 MemoryDomainValid:1; > + UINT16 ReservationHint:1; > + UINT16 Reserved_15_3:13; > +} MSARS_FLAGS_BITS; > + > +typedef union { > + UINT16 Value; > + MSARS_FLAGS_BITS Bits; > +} MSARS_FLAGS; > + > +typedef struct { > + UINT16 Type; > + UINT16 Reserved_2_4; > + UINT32 Length; > + MSARS_FLAGS Flags; > + UINT16 Reserved_10_12; > + UINT32 ProcessorProximityDomain; > + UINT32 MemoryProximityDomain; > + UINT32 Reserved_20_24; > + UINT64 AddrBase; //System Physical Address Range Base > + UINT64 AddrLength; //System Physical Address Range Length > +} MEMORY_SUBSYSTEM_ADDRESS_RANGE_STRUCTURE; > +#pragma pack() > + > +// MSARS_INIT Macro > +// Used to initialize MEMORY_SUBSYSTEM_ADDRESS_RANGE_STRUCTURE > +#define MSARS_INIT() { \ > + (UINT16) MEMORY_SUBSYSTEM_ADDRESS_RANGE_STRUCTURE_TYPE, \ > + (UINT16) 0, \ > + (UINT32) sizeof(MEMORY_SUBSYSTEM_ADDRESS_RANGE_STRUCTURE), \ > + {(UINT16) 0}, \ > + (UINT16) 0, \ > + (UINT32) 0, \ > + (UINT32) 0, \ > + (UINT32) 0, \ > + (UINT64) 0, \ > + (UINT64) 0, \ > + }, > + > +#endif /* _MSARS_H_ */ > diff --git a/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Mscis.h > b/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Mscis.h > new file mode 100644 > index 0000000000..44d80910e2 > --- /dev/null > +++ b/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Mscis.h > @@ -0,0 +1,84 @@ > +/** @file > + > + @copyright > + Copyright 2016 - 2018 Intel Corporation.
> + > + SPDX-License-Identifier: BSD-2-Clause-Patent > +**/ > + > +#ifndef _MSCIS_H_ > +#define _MSCIS_H_ > + > +#include > + > +#define EFI_ACPI_HMAT_CACHE_LEVEL_NONE 0 > +#define EFI_ACPI_HMAT_ONE_LEVEL_CACHE 1 > +#define EFI_ACPI_HMAT_TWO_LEVEL_CACHE 2 > +#define EFI_ACPI_HMAT_THREE_LEVEL_CACHE 3 > + > +#define EFI_ACPI_HMAT_CACHE_ASSOCIATIVITY_NONE 0 > +#define EFI_ACPI_HMAT_CACHE_ASSOCIATIVITY_DIRECT_MAPPED 1 > +#define > EFI_ACPI_HMAT_CACHE_ASSOCIATIVITY_COIMPLEX_CACHE_INDEXING 2 > + > +#define EFI_ACPI_HMAT_WRITE_POLICY_NONE 0 > +#define EFI_ACPI_HMAT_WRITE_POLICY_WB 1 > +#define EFI_ACPI_HMAT_WRITE_POLICY_WT 2 > + > +#define HBM_CACHE_LINE_SIZE 72 > +#define DDR4_CACHE_LINE_SIZE 64 > + > +// > +// MAX_CH =3D MAX_IMC * MAX_MC_CH > +// MAX_IMC =3D Maximum memory controllers per socket > +// MAX_MC_CH =3D Max number of channels per MC > +// For each channel, 1 DDR can act as 2LM cache. This is the maximum > number of cache devices per memory domain > +// > +#define MAX_TYPE17_CACHE_DEVICES MAX_CH > + > +#pragma pack(1) > +typedef struct { > + UINT32 TotalCacheLevels:4; > + UINT32 CacheLevel:4; > + UINT32 CacheAssociativity:4; > + UINT32 WritePolicy:4; > + UINT32 CacheLineSize:16; > +} CACHE_ATTRIBUTES_BITS; > + > +typedef union { > + UINT32 Data; > + CACHE_ATTRIBUTES_BITS Bits; > +} CACHE_ATTRIBUTES; > + > +typedef struct { > + UINT16 Type; > + UINT16 Reserved_2_4; > + UINT32 Length; > + UINT32 MemoryProximityDomain; > + UINT32 Reserved_12_16; > + UINT64 MemorySideCacheSize; > + CACHE_ATTRIBUTES CacheAttributes; > + UINT16 Reserved_28_30; > + UINT16 NumSmbiosHandles; > + UINT16 SmbiosHandles [MAX_TYPE17_CACHE_DEVICES]; > +} MEMORY_SIDE_CACHE_INFORMATION_STRUCTURE; > +#pragma pack() > + > +// MSCIS_INIT Macro > +// Used to initialize MEMORY_SIDE_CACHE_INFORMATION_STRUCTURE > +#define MSCIS_INIT() { \ > + (UINT16) MEMORY_SIDE_CACHE_INFORMATION_STRUCTURE_TYPE, \ > + (UINT16) 0, \ > + (UINT32) sizeof(MEMORY_SIDE_CACHE_INFORMATION_STRUCTURE), \ > + (UINT32) 0, \ > + (UINT32) 0, \ > + (UINT64) 0, \ > + {(UINT32) 0}, \ > + (UINT16) 0, \ > + (UINT16) 0, \ > + }, > +/* > + SMBIOS handles not used for 2LM. Will be added for HBM > + {(UINT16) 0}, \ > + }, > +*/ > +#endif /* _MSCIS_H_ */ > diff --git a/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Msct.h > b/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Msct.h > new file mode 100644 > index 0000000000..31c6e0f580 > --- /dev/null > +++ b/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Msct.h > @@ -0,0 +1,58 @@ > +/** @file > + This file describes the contents of the ACPI Maximum System > Characteristics Table (MSCT). > + Some additional ACPI values are defined in Acpi1_0.h, Acpi2_0.h, and > Acpi3_0.h. > + All changes to the MSCT contents should be done in this file. > + > + @copyright > + Copyright 2019 Intel Corporation.
> + > + SPDX-License-Identifier: BSD-2-Clause-Patent > +**/ > + > +#ifndef _MSCT_H_ > +#define _MSCT_H_ > + > +// > +// Statements that include other files > +// > +#include > +#include > +#include > + > +// > +// MSCT Definitions, see specification for details. > +// > +#ifndef > EFI_ACPI_6_2_MAXIMUM_SYSTEM_CHARACTERISTICS_TABLE_SIGNATURE > +#define > EFI_ACPI_6_2_MAXIMUM_SYSTEM_CHARACTERISTICS_TABLE_SIGNATURE > 0x5443534D > +#endif > +#define > EFI_ACPI_MAXIMUM_SYSTEM_CHARACTERISTICS_TABLE_REVISION > 0x01 > +#define EFI_ACPI_OEM_MSCT_REVISION = 0x00000001 > +#define > EFI_ACPI_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE_R > EVISION 0x01 > + > + > +// > +// MSCT Table definition > +// > +#pragma pack(1) > + > +typedef struct { > + UINT8 Revision; > + UINT8 Length; > + UINT32 ProxDomRangeLow; > + UINT32 ProxDomRangeHigh; > + UINT32 MaxProcessorCapacity; > + UINT64 MaxMemoryCapacity; > +} > EFI_ACPI_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE; > + > +typedef struct { > + EFI_ACPI_DESCRIPTION_HEADER Header; > + UINT32 OffsetProxDom= Info; > + UINT32 MaxNumProxDom= ; > + UINT32 MaxNumClockDo= m; > + UINT64 MaxPhysicalAd= dress; > + EFI_ACPI_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE > ProxDomInfoStructure[MAX_SOCKET]; > +} EFI_ACPI_MAXIMUM_SYSTEM_CHARACTERISTICS_TABLE; > + > +#pragma pack() > + > +#endif //_MSCT_H_ > diff --git a/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Nfit.h > b/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Nfit.h > new file mode 100644 > index 0000000000..5ea51b6d59 > --- /dev/null > +++ b/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Nfit.h > @@ -0,0 +1,50 @@ > +/** @file > + > + @copyright > + Copyright 1999 - 2019 Intel Corporation.
> + > + SPDX-License-Identifier: BSD-2-Clause-Patent > +**/ > + > +// > +// The version of NvDimm F/W Interface Table (Nfit) supported has been > updated to ASWG-ECR-Draft4-RC6_93.doc > +// This file contains definitions for Acpi side for the Nfit creation an= d > publication of Nfit tables. > +// A BIG NOTE: When ever the NVDIMM_FW_INTERFACE_TABLE defined > either here or what is in Nfit.h of CrystalRidge Protocol driver > +// changes, the same changes need to relect in both the files. > + > +#ifndef _NFIT_DEFS_H_ > +#define _NFIT_DEFS_H_ > + > +#include > + > +#define NVDIMM_FW_INTERFACE_TABLE_SIGNATURE > EFI_ACPI_6_2_NVDIMM_FIRMWARE_INTERFACE_TABLE_STRUCTURE_SIGN > ATURE > +#define NVDIMM_FW_INTERFACE_TABLE_REVISION > EFI_ACPI_6_2_NVDIMM_FIRMWARE_INTERFACE_TABLE_REVISION > + > +#define MAX_NFIT_SIZE 0x18000 > + > + > +// > +// NVDIMM Firmware Interface Table struct > +// IMPORTANT NOTE: Num of various sub-table fields of the Nfit has been > eliminated in the latest Nfit Spec (0.8k) > +// And also since there is NO memory allocation scheme for Nfit (all glo= bals), > Adding a buffer NfitTables with the, > +// max nfit size currently set to 4k. Will need to watch if we will ever > overrun this buffer. It is expected that > +// Nfit parser will need to parse the NfitTables field to understand the > various other Nfit Tables in this buffer > +// based on the Type and Length field of these tables. > +// > +#pragma pack(1) > +typedef struct _NVDIMM_FW_INT_TBL { > + UINT32 Signature; // 'NFIT' should be the sig= nature for this > table > + UINT32 Length; // Length in bytes fir the = entire table > + UINT8 Revision; // Revision # of this table= , initial is '1' > + UINT8 Checksum; // Entire Table Checksum mu= st sum to 0 > + UINT8 OemID[6]; // OemID > + UINT8 OemTblID[8]; // Should be Manufacturer's= Model # > + UINT32 OemRevision; // Oem Revision of for Supp= lied OEM > Table ID > + UINT32 CreatorID; // Vendor ID of the utility= that is creating > this table > + UINT32 CreatorRev; // Revision of utility that= is creating this > table > + UINT32 Reserved; > + UINT8 NfitTables[MAX_NFIT_SIZE]; // See Description above > (IMPORTANT). > +} NVDIMM_FW_INTERFACE_TABLE; > +#pragma pack() > + > +#endif // _NFIT_DEFS_H_ > diff --git a/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Pcat.h > b/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Pcat.h > new file mode 100644 > index 0000000000..ceb0684f17 > --- /dev/null > +++ b/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Pcat.h > @@ -0,0 +1,45 @@ > +/** @file > + Pcat.h > + > + @copyright > + Copyright 2014 Intel Corporation.
> + > + SPDX-License-Identifier: BSD-2-Clause-Patent > +**/ > + > +#ifndef _PCAT_DEFS_H_ > +#define _PCAT_DEFS_H_ > + > +#include > + > +/// @brief PCAT Signature to put in table header > +#define NVDIMM_PLATFORM_CONFIG_ATTRIBUTE_TABLE_SIGNATURE > SIGNATURE_32('P', 'C', 'A', 'T') > + > +#define NVDIMM_PLATFORM_CONFIG_ATTRIBUTE_TABLE_REVISION > 0x11 > + > +#define MAX_PCAT_SIZE 0x200 > + > +typedef struct { > + UINT32 Signature; // 'PCAT' should be the si= gnature for this > table > + UINT32 Length; // Length in bytes for the= entire table > + UINT8 Revision; // Revision # of this tabl= e, initial is '1' > + UINT8 Checksum; // Entire Table Checksum m= ust sum to 0 > + UINT8 OemID[6]; // OemID > + UINT8 OemTblID[8]; // Should be Manufacturer'= s Model # > + UINT32 OemRevision; // Oem Revision of for Sup= plied OEM > Table ID > + UINT32 CreatorID; // Vendor ID of the utilit= y that is creating > this table > + UINT32 CreatorRev; // Revision of utility tha= t is creating this > table > + UINT32 Reserved; // Alignement for size mod= ulo 8 =3D 0 > + UINT8 PCATTables[MAX_PCAT_SIZE]; > +} NVDIMM_PLATFORM_CONFIG_ATTRIBUTE_TABLE, > *PNVDIMM_PLATFORM_CONFIG_ATTRIBUTE_TABLE; > + > +/// @brief Layout of SSKU Attribute Extension Table header > +typedef struct { > + UINT16 Type; // Type for Mgmt Info Stru= ct, type should be > 3 > + UINT16 Length; // Length in Bytes for Ent= ire SSKU Attribute > Extension Table size. > + UINT16 Rsvd; > + UINT16 VendorID; // Vendor ID > + EFI_GUID Guid; // Intel defined SSKU Attr= ibute Extension > Table. guid: F93032E5-B045-40ef-91C8-F02B06AD948D > +} NVDIMM_SSKU_ATTR_EXT_TABLE, *PNVDIMM_SSKU_ATTR_EXT_TABLE; > + > +#endif //_PCAT_DEFS_H_ > diff --git a/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Pmtt.h > b/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Pmtt.h > new file mode 100644 > index 0000000000..923483f2da > --- /dev/null > +++ b/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Pmtt.h > @@ -0,0 +1,120 @@ > +/** @file > + > + @copyright > + Copyright 2016 - 2018 Intel Corporation.
> + > + SPDX-License-Identifier: BSD-2-Clause-Patent > +**/ > + > +#ifndef _ACPI_PMTT_H_ > +#define _ACPI_PMTT_H_ > + > +// > +// Includes > +// > +#include > +#include > +#include > +#include > + > +// > +// PMTT Definitions > +// > +#define ACPI_PMTT_TABLE_SIGNATURE 0x54544D50 > +#define ACPI_PMTT_TABLE_REVISION 0x02 > +#define ACPI_PMTT_OEM_REVISION 1 > + > +#define PMTT_TOP_LEVEL_AGGREGATOR_DEVICE 0x0001 > +#define PMTT_PHYSICAL_ELEMENT_OF_TOPOLOGY 0x0002 > +#define PMTT_AEP_DIMM 0x0004 > + > +#define ACPI_TOP_LEVEL_SOCKET 0x00 > +#define ACPI_TOP_LEVEL_IMC 0x01 > +#define PHYSICAL_COMPONENT_IDENTIFIER_TYPE_DIMM 0x02 > +#define ACPI_TOP_LEVEL_VENDOR_SPECIFIC_DEVICE 0xFF > + > +// PMTT GUID variables > +#define PMTT_TYPE_DIE_GUID { 0xA2555053, 0xCDE4, 0x40A5, {0x80, 0x76, > 0x00, 0xE3, 0xAB, 0xA6, 0xCA, 0xA7} } > +#define PMTT_TYPE_CHANNEL_GUID { 0x23BF9281, 0xE69c, 0x471F, {0xB2, > 0x99, 0xB0, 0x98, 0x2B, 0x2F, 0x55, 0xF9} } > +#define PMTT_TYPE_SLOT_GUID { 0xFDCB2a68, 0xC203, 0x4312, {0xB2, > 0x91, 0xB8, 0xE8, 0x62, 0x86, 0xC2, 0xC1} } > + > +typedef struct { > + UINT8 Type; > + UINT8 Rsvd; > + UINT16 Length; > + UINT16 Flag; > + UINT16 Rsvd1; > + UINT32 NumOfMemoryDevices; > + UINT32 SmbiosHandle; > +} ACPI_PMTT_DIMM_DEVICE; > + > +typedef struct { > + UINT8 Type; > + UINT8 Rsvd; > + UINT16 Length; > + UINT16 Flag; > + UINT16 Rsvd1; > + UINT32 NumOfMemoryDevices; > + GUID TypeUuid; > + UINT16 SlotId; > + UINT16 Rsvd2; > + ACPI_PMTT_DIMM_DEVICE Dimm; > +} ACPI_PMTT_SLOT_DEVICE; > + > +typedef struct { > + UINT8 Type; > + UINT8 Rsvd; > + UINT16 Length; > + UINT16 Flag; > + UINT16 Rsvd1; > + UINT32 NumOfMemoryDevices; > + GUID TypeUuid; > + UINT16 ChannelId; > + UINT16 Rsvd2; > + ACPI_PMTT_SLOT_DEVICE Slot[MAX_DIMM]; > +} ACPI_PMTT_CHANNEL_DEVICE; > + > +typedef struct { > + UINT8 Type; > + UINT8 Rsvd; > + UINT16 Length; > + UINT16 Flag; > + UINT16 Rsvd1; > + UINT32 NumOfMemoryDevices; > + UINT16 ImcId; > + UINT16 Rsvd2; > + ACPI_PMTT_CHANNEL_DEVICE Channel[MAX_MC_CH]; > +} ACPI_PMTT_IMC_DEVICE; > + > +typedef struct { > + UINT8 Type; > + UINT8 Rsvd; > + UINT16 Length; > + UINT16 Flag; > + UINT16 Rsvd1; > + UINT32 NumOfMemoryDevices; > + GUID TypeUuid; > + UINT16 DieId; > + UINT16 Rsvd2; > + ACPI_PMTT_IMC_DEVICE Imc[MAX_IMC]; > +} ACPI_PMTT_DIE_DEVICE; > + > +typedef struct { > + UINT8 Type; > + UINT8 Rsvd; > + UINT16 Length; > + UINT16 Flag; > + UINT16 Rsvd1; > + UINT32 NumOfMemoryDevices; > + UINT16 SckIdent; > + UINT16 Rsvd2; > + ACPI_PMTT_DIE_DEVICE Die[MAX_DIE]; > +} ACPI_PMTT_SOCKET_DEVICE; > + > +typedef struct { > + EFI_ACPI_DESCRIPTION_HEADER Header; > + UINT32 NumOfMemoryDevices; > + ACPI_PMTT_SOCKET_DEVICE Socket[MAX_SOCKET]; > +} ACPI_PLATFORM_MEMORY_TOPOLOGY_TABLE; > + > +#endif // _ACPI_PMTT_H_ > diff --git a/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Sllbis.h > b/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Sllbis.h > new file mode 100644 > index 0000000000..c119a0f712 > --- /dev/null > +++ b/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Sllbis.h > @@ -0,0 +1,87 @@ > +/** @file > + > + @copyright > + Copyright 2016 - 2017 Intel Corporation.
> + > + SPDX-License-Identifier: BSD-2-Clause-Patent > +**/ > + > +#ifndef _SLLBIS_H_ > +#define _SLLBIS_H_ > + > +#include > + > +#define EFI_ACPI_HMAT_NUMBER_OF_PROCESSOR_DOMAINS > MC_MAX_NODE > +#define EFI_ACPI_HMAT_NUMBER_OF_MEMORY_DOMAINS > (MC_MAX_NODE * MAX_CRS_ENTRIES_PER_NODE) > + > +#define EFI_ACPI_HMAT_MEMORY_HIERACHY_MEMORY 0 > +#define EFI_ACPI_HMAT_MEMORY_HIERACHY_LAST_LEVEL_MEMORY 1 > +#define EFI_ACPI_HMAT_MEMORY_HIERACHY_FIRST_LEVEL_MEMORY 2 > +#define EFI_ACPI_HMAT_MEMORY_HIERACHY_SECOND_LEVEL_MEMORY > 3 > +#define EFI_ACPI_HMAT_MEMORY_HIERACHY_THIRD_LEVEL_MEMORY 4 > + > + > +#define EFI_ACPI_HMAT_ACCESS_LATENCY 0 > +#define EFI_ACPI_HMAT_READ_LATENCY 1 > +#define EFI_ACPI_HMAT_WRITE_LATENCY 2 > +#define EFI_ACPI_HMAT_ACCESS_BANDWIDTH 3 > +#define EFI_ACPI_HMAT_READ_BANDWIDTH 4 > +#define EFI_ACPI_HMAT_WRITE_BANDWIDTH 5 > + > +#define EFI_ACPI_HMAT_MAX_SLLBIS_DATA_TYPES 4 > +#define EFI_ACPI_HMAT_NUMBER_SLLBIS_DATA_TYPES 6 > + > +#define EFI_ACPI_HMAT_ELEMENT_BASE_UNIT_VALUE 10 > + > +#define MAX_HMAT_MEMORY_HIERACHY_LEVELS 3 // Flat, Cache, and > Hybrid > +#define HMAT_PERFORMANCE_UNIFORM_ACCESS 1 > +#define HMAT_PERFORMANCE_NONUNIFORM_ACCESS 0 > + > +#define EFI_ACPI_HMAT_MEMORY_BW_LATENCY_ATTRIBUTE_LENGTH 4 > +#define EFI_ACPI_HMAT_MEMORY_BW_LATENCY_ATTRIBUTE_START_BIT > 4 > + > + > +#pragma pack(1) > + > +typedef struct { > + UINT16 Type; > + UINT16 Reserved_2_4; > + UINT32 Length; > + UINT8 Flags; > + UINT8 DataType; > + UINT16 Reserved_10_12; > + UINT32 InitiatorProximityDomainsNumber; > + UINT32 TargetProximityDomainsNumber; > + UINT32 Reserved_20_24; > + UINT64 EntryBaseUnit; > + UINT32 > InitiatorProximityDomainList[EFI_ACPI_HMAT_NUMBER_OF_PROCESSOR_D > OMAINS]; > + UINT32 > TargetProximityDomainList[EFI_ACPI_HMAT_NUMBER_OF_MEMORY_DOM > AINS]; > + UINT16 > RelativeDistanceEntry[EFI_ACPI_HMAT_NUMBER_OF_PROCESSOR_DOMAI > NS][EFI_ACPI_HMAT_NUMBER_OF_MEMORY_DOMAINS]; > +} LATENCY_BANDWIDTH_INFO_STRUCTURE; > +#pragma pack() > + > +// LBIS Macros > +// Used to initialize LATENCY_BANDWIDTH_INFO_STRUCTURE > +#define LBIS_START() { \ > + (UINT16) > SYSTEM_LOCALITY_LATENCY_BANDWIDTH_INFORMATION_STRUCTURE_TY > PE, \ > + (UINT16) 0, \ > + (UINT32) sizeof(LATENCY_BANDWIDTH_INFO_STRUCTURE), \ > + (UINT8) 0, \ > + (UINT8) 0, \ > + (UINT16) 0, \ > + (UINT32) 0, \ > + (UINT32) 0, \ > + (UINT32) 0, \ > + (UINT64) 0, \ > + {(UINT32) 0}, \ > + {(UINT32) 0}, \ > + { > + > +#define RELATIVE_DISTANCE() \ > + {(UINT16) 0}, > + > +#define LBIS_END() \ > + }, \ > +}, > + > +#endif /* _SLLBIS_H_ */ > diff --git a/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Spcr.h > b/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Spcr.h > new file mode 100644 > index 0000000000..90ea2c24cb > --- /dev/null > +++ b/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Spcr.h > @@ -0,0 +1,48 @@ > +/** @file > + This file describes the contents of the ACPI Serial Port Console Redir= ection > + Table (SPCR). Some additional ACPI 2.0 values are defined in Acpi2_0.= h. > + All changes to the Spcr contents should be done in this file. > + > + @copyright > + Copyright 1999 - 2002 Intel Corporation.
> + > + SPDX-License-Identifier: BSD-2-Clause-Patent > +**/ > + > +#ifndef _SPCR_H_ > +#define _SPCR_H_ > + > +// > +// SPCR Definitions, see TBD specification for details. > +// > + > +#define EFI_ACPI_OEM_SPCR_REVISION 0x00000000 // TBD > + > +#define EFI_ACPI_INTERFACE_TYPE 0x00 // full 16550 i= nterface. > + > +// > +// Base Address > +// > +#define EFI_ACPI_BASE_ADDRESS_ADDRESS_SPACE_ID > EFI_ACPI_6_2_SYSTEM_IO > +#define EFI_ACPI_BASE_ADDRESS_BIT_WIDTH 0x08 > +#define EFI_ACPI_BASE_ADDRESS_BIT_OFFSET 0x00 > +#define EFI_ACPI_BASE_ADDRESS_ADDRESS 0x0000000000000000 /= / > Updated at run time > + > +#define EFI_ACPI_INTERRUPT_TYPE 0x03 // Dual-8259 an= d IOAPIC > +#define EFI_ACPI_IRQ 0x04 // Updated at r= un time > +#define EFI_ACPI_GLOBAL_SYSTEM_INTERRUPT 0x04 // Updated at > run time > +#define EFI_ACPI_BAUD_RATE 0x07 // 115200 > +#define EFI_ACPI_PARITY 0x00 // No parity > +#define EFI_ACPI_STOP_BITS 0x00 // 0 stop bit > +#define EFI_ACPI_FLOW_CONTROL 0x00 // No flow cont= rol > +#define EFI_ACPI_TERMINAL_TYPE 0x03 // ANSI > +#define EFI_ACPI_LANGUAGE 0x00 // Reserved > +#define EFI_ACPI_PCI_DEVICE_ID 0xFFFF > +#define EFI_ACPI_PCI_VENDOR_ID 0xFFFF > +#define EFI_ACPI_PCI_BUS_NUMBER 0x00 > +#define EFI_ACPI_PCI_DEVICE_NUMBER 0x00 > +#define EFI_ACPI_PCI_FUNCTION_NUMBER 0x00 > +#define EFI_ACPI_PCI_FLAGS 0x00000000 > +#define EFI_ACPI_PCI_SEGMENT 0x00 > + > +#endif > diff --git a/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Spmi.h > b/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Spmi.h > new file mode 100644 > index 0000000000..576c390bd6 > --- /dev/null > +++ b/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Spmi.h > @@ -0,0 +1,59 @@ > +/** @file > + > + @copyright > + Copyright 2019 Intel Corporation.
> + > + SPDX-License-Identifier: BSD-2-Clause-Patent > +**/ > + > +#ifndef _SPMI_H_ > +#define _SPMI_H_ > + > +// > +// Statements that include other files > +// > +#include > + > +// > +// Spmi Definitions, see specification for details. > +// > +#ifndef > EFI_ACPI_6_2_SERVER_PLATFORM_MANAGEMENT_INTERFACE_TABLE_SIG > NATURE > +#define > EFI_ACPI_6_2_SERVER_PLATFORM_MANAGEMENT_INTERFACE_TABLE_SIG > NATURE 0x494D5053 > +#endif > + > +#define > EFI_ACPI_SERVER_PROCESSOR_MANAGEMENT_INTERFACE_TABLE_REVISIO > N 0x05 > +#define EFI_ACPI_OEM_SPMI_REVISION > 0x00000001 > +#define EFI_ACPI_SPMI_SPECIFICATION_REVISION > 0x0200 > + > + > +// > +// SPMI Table definition > +// > +#pragma pack(1) > + > +#define KEYBOARD_CONTROLLER_STYLE 0x01 > +#define SYSTEM_IO 0x01 > +#define IPMI_DEFAULT_IO_BASE 0xCA2 > + > +typedef struct { > + EFI_ACPI_DESCRIPTION_HEADER Header; > + UINT8 InterfaceType= ; // 36 > + UINT8 Reserved37; = // 37 > + UINT16 Specification= Revision; // 38 - 39 > + UINT8 InterruptType= ; // 40 > + UINT8 GPE; = // 41 > + UINT8 Reserved42; = // 42 > + UINT8 PciDeviceFlag= ; // 43 > + UINT32 GlobalSystemI= nterrupt; // 44 - 47 > + EFI_ACPI_6_2_GENERIC_ADDRESS_STRUCTURE BaseAddress; > // 48 - 59 > + UINT8 UidByte1; = // 60 LSB > + UINT8 UidByte2; = // 61 > + UINT8 UidByte3; = // 62 > + UINT8 UidByte4; = // 63 MSB > + UINT8 Reserved64; = // 64 > +} EFI_ACPI_SERVER_PROCESSOR_MANAGEMENT_INTERFACE_TABLE; > + > + > +#pragma pack() > + > +#endif //_SPMI_H_ > diff --git > a/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/WatchdogDescription > Table.h > b/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/WatchdogDescription > Table.h > new file mode 100644 > index 0000000000..fe25f5b4e3 > --- /dev/null > +++ > b/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/WatchdogDescription > Table.h > @@ -0,0 +1,82 @@ > +/** @file > + ACPI Watchdog Description Table as defined in Intel > + ICH Family Watchdog Timer (WDT) Application Note (AP-725) > + > + @copyright > + Copyright 2019 Intel Corporation.
> + > + SPDX-License-Identifier: BSD-2-Clause-Patent > +**/ > + > +#ifndef _WATCH_DOG_DESCRIPTION_TABLE_H_ > +#define _WATCH_DOG_DESCRIPTION_TABLE_H_ > + > +// > +// Include files > +// > +#include > + > +// > +// Ensure proper structure formats > +// > +#pragma pack(1) > +// > +// WDDT structure ACPI 6.2 compliant > +// > +typedef struct { > + EFI_ACPI_DESCRIPTION_HEADER Header; > + UINT16 SpecVersion; > + UINT16 TableVersion; > + UINT16 Vid; > + EFI_ACPI_6_2_GENERIC_ADDRESS_STRUCTURE BaseAddress; > + UINT16 TimerMaxCount; > + UINT16 TimerMinCount; > + UINT16 TimerCountPeriod; > + UINT16 Status; > + UINT16 Capability; > +} EFI_ACPI_WATCH_DOG_DESCRIPTION_TABLE; > + > +// > +// "WDDT" Watchdog Description Table signatures > +// > +#define EFI_ACPI_WDDT_SIGNATURE 0x54444457 > + > +#pragma pack() > + > +// > +// WDDT Revision > +// > +#define EFI_ACPI_WATCHDOG_DESCRIPTION_1_0_TABLE_REVISION 0x01 > + > +// > +// WDDT Spec Version > +// > +#define EFI_ACPI_WDDT_SPEC_1_0_VERSION 0x01 > + > +// > +// WDDT Description Table Version > +// > +#define EFI_ACPI_WDDT_TABLE_1_0_VERSION 0x01 > + > +// > +// WDT Status > +// > +#define EFI_ACPI_WDDT_STATUS_AVAILABLE 0x0001 > +#define EFI_ACPI_WDDT_STATUS_ACTIVE 0x0002 > +#define EFI_ACPI_WDDT_STATUS_OWNED_BY_BIOS 0x0000 > +#define EFI_ACPI_WDDT_STATUS_OWNED_BY_OS 0x0004 > +#define EFI_ACPI_WDDT_STATUS_USER_RESET_EVENT 0x0800 > +#define EFI_ACPI_WDDT_STATUS_WDT_EVENT 0x1000 > +#define EFI_ACPI_WDDT_STATUS_POWER_FAIL_EVENT 0x2000 > +#define EFI_ACPI_WDDT_STATUS_UNKNOWN_RESET_EVENT 0x4000 > + > +// > +// WDT Capability > +// > +#define EFI_ACPI_WDDT_CAPABILITY_AUTO_RESET 0x0001 > +#define EFI_ACPI_WDDT_CAPABILITY_ALERT_SUPPORT 0x0002 > +#define EFI_ACPI_WDDT_CAPABILITY_PLATFORM_SHUTDOWN 0x0004 > +#define EFI_ACPI_WDDT_CAPABILITY_IMMEDIATE_SHUTDOWN 0x0008 > +#define EFI_ACPI_WDDT_CAPABILITY_BIOS_HANDOFF_SUPPORT 0x0010 > + > +#endif > diff --git a/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Wddt.h > b/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Wddt.h > new file mode 100644 > index 0000000000..9ffe2c6e89 > --- /dev/null > +++ b/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Wddt.h > @@ -0,0 +1,53 @@ > +/** @file > + This file describes the contents of the ACPI Watchdog Description > + Table (WDDT). Some additional ACPI values are defined in Acpi1_0.h an= d > + Acpi2_0.h. > + > + @copyright > + Copyright 1999 - 2019 Intel Corporation.
> + > + SPDX-License-Identifier: BSD-2-Clause-Patent > +**/ > + > +#ifndef _WDDT_H > +#define _WDDT_H > + > +// > +// Statements that include other files > +// > +#include > + > +// > +// WDDT Definitions, ACPI 6.2 > +// > +#define EFI_ACPI_WDDT_DESCRIPTION_TABLE_REVISION 1 > +#define EFI_ACPI_OEM_WDDT_REVISION 0x00000001 > +#define EFI_ACPI_WDDT_SPEC_VERSION 0x0100 > +#define EFI_ACPI_WDDT_TABLE_VERSION 0x0100 > +#define EFI_ACPI_WDDT_TIMER_MAX_COUNT 0x003f > +#define EFI_ACPI_WDDT_TIMER_MIN_VALUE 0x0004 > +#define EFI_ACPI_WDDT_TIMER_PERIOD_COUNT 600 > +// > +// WDDT_STATUS bits > +// > +#define EFI_ACPI_WDDT_STATUS_AVAILABLE 0x0001 > +#define EFI_ACPI_WDDT_STATUS_ACTIVE 0x0002 > +#define EFI_ACPI_WDDT_STATUS_OWNED_BY_BIOS 0x0000 > +#define EFI_ACPI_WDDT_STATUS_OWNED_BY_OS 0x0004 > +#define EFI_ACPI_WDDT_STATUS_USER_RESET_EVENT 0x0800 > +#define EFI_ACPI_WDDT_STATUS_WDT_EVENT 0x1000 > +#define EFI_ACPI_WDDT_STATUS_POWER_FAIL_EVENT 0x2000 > +#define EFI_ACPI_WDDT_STATUS_UNKNOWN_RESET_EVENT 0x4000 > + > +// > +// WDDT Capability bits > +// > +#define EFI_ACPI_WDDT_CAPABILITY_AUTO_RESET 0x0001 > +#define EFI_ACPI_WDDT_CAPABILITY_ALERT_SUPPORT 0x0002 > +#define EFI_ACPI_WDDT_CAPABILITY_PLATFORM_SHUTDOWN 0x0004 > +#define EFI_ACPI_WDDT_CAPABILITY_IMMEDIATE_SHUTDOWN 0x0008 > +#define EFI_ACPI_WDDT_CAPABILITY_BIOS_HANDOFF_SUPPORT 0x0010 > + > +#pragma pack() > + > +#endif > diff --git a/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Wsmt.h > b/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Wsmt.h > new file mode 100644 > index 0000000000..112e162931 > --- /dev/null > +++ b/Platform/Intel/WhitleyOpenBoardPkg/Include/Acpi/Wsmt.h > @@ -0,0 +1,67 @@ > +/** @file > + > + @copyright > + Copyright 2017 - 2020 Intel Corporation. > + > + SPDX-License-Identifier: BSD-2-Clause-Patent > +**/ > + > + > +#ifndef _WSMT_H_ > +#define _WSMT_H_ > + > +// > +// Statements that include other files > +// > + > +#include > + > +// > +// signature "WSMT" > +// > + > +#define ACPI_WSMT_SIGNATURE 0x544D5357 > +#define ACPI_WSMT_LENGTH 40 > +#define ACPI_OEM_WSMT_REVISION 0x00000000 > +#define EFI_ACPI_WSMT_REVISION 0x00000001 > +#define WSMT_PROTECTION_FLAG (BIT0 | BIT1 | BIT2 ) > + > + > +#pragma pack(1) > + > +typedef union { > + struct { > + // > + //BIT0: > + //If set, expresses that for all synchronous SMM entries, > + //SMM will validate that input and output buffers lie entirely withi= n the > expected fixed memory regions. > + // > + UINT32 FixedCommBuffers:1; > + // > + //BIT1: COMM_BUFFER_NESTED_PTR_PROTECTION > + //If set, expresses that for all synchronous SMM entries, SMM will > validate that input and > + //output pointers embedded within the fixed communication buffer onl= y > refer to address ranges > + //that lie entirely within the expected fixed memory regions. > + // > + UINT32 CommBufferNestedPointerProtection:1; > + // > + //BIT2: SYSTEM_RESOURCE_PROTECTION > + //Firmware setting this bit is an indication that it will not allow > reconfiguration of system resources via non-architectural mechanisms. > + // > + UINT32 SystemResourceProtection:1; > + UINT32 Reserved:29; > + } Bits; > + UINT32 Flags; > +} EFI_ACPI_WSMT_PROTECTION_FLAGS; > + > +// > +// WSMT ACPI table > +// > +typedef struct _ACPI_WINDOWS_SMM_SECURITY_MITIGATIONS_TABLE { > + EFI_ACPI_DESCRIPTION_HEADER Header; > + EFI_ACPI_WSMT_PROTECTION_FLAGS ProtectionFlags; > +} ACPI_WINDOWS_SMM_SECURITY_MITIGATIONS_TABLE; > + > +#pragma pack() > + > +#endif //_WSMT_H_ > diff --git a/Platform/Intel/WhitleyOpenBoardPkg/PlatformPkg.dec > b/Platform/Intel/WhitleyOpenBoardPkg/PlatformPkg.dec > index 5e27d9beb4..4d416325ae 100644 > --- a/Platform/Intel/WhitleyOpenBoardPkg/PlatformPkg.dec > +++ b/Platform/Intel/WhitleyOpenBoardPkg/PlatformPkg.dec > @@ -16,8 +16,8 @@ > PACKAGE_VERSION =3D 0.91 >=20 > [Includes] > - Include > - Include/Protocol > + Include > + Include/Protocol >=20 > #TODO: Move these generated temp files into include. > Uba/BoardInit/Dxe > @@ -159,8 +159,7 @@ >=20 > [PcdsFixedAtBuild] >=20 > -#SKX_TODO: add a new GUID, and replace the 'gPlatformTokenSpaceGuid' > used here to it, or move these values to the SocketPkg where the GUID is > defined > -# Using a GUID defined in another .DEC file is a violation of t= he UEFI > packaging standards. > + > gPlatformTokenSpaceGuid.PcdEfiAcpiPm1aEvtBlkAddress|0x00000500|UINT > 32|0x00000031 >=20 > gCpPlatFlashTokenSpaceGuid.PcdFlashBase|0x00000000 > |UINT32|0x3000000E > gCpPlatFlashTokenSpaceGuid.PcdFlashSize|0x00000000 > |UINT32|0x3000000F > diff --git > a/Silicon/Intel/WhitleySiliconPkg/Include/UncoreCommonIncludes.h > b/Silicon/Intel/WhitleySiliconPkg/Include/UncoreCommonIncludes.h > index 0ea93e9a78..7af4eb72f6 100644 > --- a/Silicon/Intel/WhitleySiliconPkg/Include/UncoreCommonIncludes.h > +++ b/Silicon/Intel/WhitleySiliconPkg/Include/UncoreCommonIncludes.h > @@ -80,6 +80,8 @@ > #define MC_MAX_NODE (MAX_SOCKET * MAX_IMC) // Max > number of memory nodes > #endif >=20 > +#define MAX_CRS_ENTRIES_PER_NODE 8 // Max num= ber of > ranges allowed on a memory node > + > #ifndef TOTAL_CB3_DEVICES > #define TOTAL_CB3_DEVICES 64 // IOAT_TOTAL_FUNCS * > MAX_SOCKET. Note: this covers up to 8S. > #endif > @@ -108,4 +110,10 @@ > #define MAX_B2P_MAILBOX_GROUPS 32 > #endif // !MAX_B2P_MAILBOX_GROUPS >=20 > +// > +// ACPI table information used to initialize tables. > +// > +#define EFI_ACPI_CREATOR_ID 0x4C544E49 // "INTL" > +#define EFI_ACPI_CREATOR_REVISION 0x20091013 // Oct 13 2009 > + > #endif > -- > 2.27.0.windows.1