From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail05.groups.io (mail05.groups.io [45.79.224.7]) by spool.mail.gandi.net (Postfix) with ESMTPS id A1F1AAC1329 for ; Tue, 28 May 2024 14:08:23 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=CLXTjDAbIGiXtGU3z8n4OWF5Xa/O/kRd0BzrVdz+2Js=; c=relaxed/simple; d=groups.io; h=Received-SPF:From:To:CC:Subject:Date:Message-ID:In-Reply-To:References:MIME-Version:Received-SPF:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Resent-Date:Resent-From:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Transfer-Encoding:Content-Type; s=20240206; t=1716905303; v=1; b=fwPJen5WsfLV7tw1k/yS659wqzljewRLy4o6vkajJg8gCIbWrM6I6k+NWILtNruQlGV1YdIQ 7OYs+NFaSTkv5ZYaXZHgMN7gDZG9g0AiovVXqeA7WL943pADLFzIv/yLLYt26mMowHwZ1x1E/TJ O0aL3DoQrKR39dcyb8m97XLPeVmkFAWuCKb8KWR45oWjDaQUU9WY+W5ObFMofcCmQAGC1E1TTkq rJl49Xn/IGJZy4avZQa5naMWu6GB74qLJgtfWSJ8f25f2SS3x/GtveOKOLbNOJ+Yj1GE/S9sXvv 4A5v8h0t4x24MqofVPpaRRAX6I+LSi7zrVX9o0YUBYOEQ== X-Received: by 127.0.0.2 with SMTP id PZSrYY7687511x95lvLcu8xg; Tue, 28 May 2024 07:08:22 -0700 X-Received: from NAM12-DM6-obe.outbound.protection.outlook.com (NAM12-DM6-obe.outbound.protection.outlook.com [40.107.243.76]) by mx.groups.io with SMTP id smtpd.web10.22892.1716905301641039444 for ; Tue, 28 May 2024 07:08:21 -0700 X-Received: from BN0PR04CA0149.namprd04.prod.outlook.com (2603:10b6:408:ed::34) by DM6PR12MB4369.namprd12.prod.outlook.com (2603:10b6:5:2a1::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7611.31; Tue, 28 May 2024 14:08:19 +0000 X-Received: from BL6PEPF0001AB4D.namprd04.prod.outlook.com (2603:10b6:408:ed:cafe::f0) by BN0PR04CA0149.outlook.office365.com (2603:10b6:408:ed::34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7611.29 via Frontend Transport; Tue, 28 May 2024 14:08:19 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB03.amd.com; pr=C X-Received: from SATLEXMB03.amd.com (165.204.84.17) by BL6PEPF0001AB4D.mail.protection.outlook.com (10.167.242.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7633.15 via Frontend Transport; Tue, 28 May 2024 14:08:19 +0000 X-Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Tue, 28 May 2024 09:08:05 -0500 X-Received: from BLR-LAB-SFW01.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35 via Frontend Transport; Tue, 28 May 2024 09:08:04 -0500 From: "Abdul Lateef Attar via groups.io" To: CC: Abdul Lateef Attar , Abner Chang , Paul Grimes Subject: [edk2-devel] [edk2-platforms 2/3] AmdPlatformPkg: Implements SmmCorePlatformHookLib library Date: Tue, 28 May 2024 19:37:51 +0530 Message-ID: In-Reply-To: References: MIME-Version: 1.0 Received-SPF: None (SATLEXMB03.amd.com: AbdulLateef.Attar@amd.com does not designate permitted sender hosts) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF0001AB4D:EE_|DM6PR12MB4369:EE_ X-MS-Office365-Filtering-Correlation-Id: 804e9d6f-6ed0-4827-d44f-08dc7f1fa07d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?Wd8U43pLfs8DyZqmzfhJm4gcy+5PH4k7aoHWIGBHR8kIvLi8QZqeomn8YWXj?= =?us-ascii?Q?1YJcNs4R+ns4njkxCtMk9UcOyaJ+MK4PNflUBL3YzbG2qeeQp5zGz7rm6asU?= =?us-ascii?Q?zPkdIWkCWsy+AOMfCQkBkcW75fpW5RykDx30DasfGraKRFyQl3jdzZ+hgGoE?= =?us-ascii?Q?bq/pVt3q1aDdC3ty9xAl7Xy8l/Vpw64O/N2cWrsNLOQo8+Y21rBwiiwXGcWG?= =?us-ascii?Q?J4kIpe88k5nQEMa5RSsXAK8yGKJS9RksIabyUAF9AtNi8vLQCw3hywLP5SKG?= =?us-ascii?Q?IJ+1UYDBpZItPDg7UTIMWzhwirKDDJq+dWxivbMcemRM+ImrrJ24wXNOhAJm?= =?us-ascii?Q?fkW6uRTiube8LZOCIHt1zhOVrFkvGdip/Z8oCnPydXzKc9ZwLd63U8/H4teE?= =?us-ascii?Q?+9ehS9NM1NtwbaQ+e5lF3t9AGLRf40iDHmCLqpAQ5WHoJu/60EtAov+w9whQ?= =?us-ascii?Q?nDmTkPuZbpnsFKsM3TR3V1JdN71Ujkgwg1bkpDx0U0Qks6B9UrX7ja4otqPc?= =?us-ascii?Q?Ley/YhHFCsj2yiF8rnZBrF2+J9hRGCzyStI+U3+XgHQizzCHCXQoBymlyLrl?= =?us-ascii?Q?8SrX9oJa5mAhZWBjPcxLF85w3FQmTppO5t8/UPNqJlb528jIKeFLiPOUngwc?= =?us-ascii?Q?g7pwKzuEynypo6HAS+uXw+Z03cQJ5GE53h5EAZ3Eqlv3oDzxBU6fJULqbY/K?= =?us-ascii?Q?DjcHLC6T9HO1BqxGNwbXlhcMvtVvYR8wJ/5hL0KBq+yvjph+2xuSSoR+OtAj?= =?us-ascii?Q?6z58fXeJmtfzZrlt0qwbzUjpjRwVVrtq4GSCftcF2+u1fkiR5j9nLAQs7L9C?= =?us-ascii?Q?8k7YISEXhth8jIfihguJgN799upMVYNhPqRPYNT7Uu8328QaZQQWv4Z/a9dr?= =?us-ascii?Q?teCFj1qjuC9nPD0ldxTyzzYpgpmcxvqcZ2yxyP//IHaXUs1XP0r++7669R8F?= =?us-ascii?Q?4mu64DF1n7nEltcysjP86/+AIsGpwxOoC5ITgb3tg3g+OGPOTieyyDWcj+Gz?= =?us-ascii?Q?74m1Q+pEzTTuDHZJHxQUn4aF0a7RktyX+U42BjZPkks+uoyYonietXIVfo72?= =?us-ascii?Q?alqpgcDuPmi741vi2HrNc4/fdUk6kZY4qzgWOWSJdBuMfdtBy/rwMfTIljM9?= =?us-ascii?Q?lMX9VRYE0C4qq3CA/D6y6mJdzcavFT4Czukz0Zh6OBPnSHvA2GtOsjhp3m0d?= =?us-ascii?Q?SgvsGKU1UCOaSQg+XrjBnZUKCbB/Ju4LcrdnwHwEWVGbuOxIGbSZZm9aoa2S?= =?us-ascii?Q?vIgUMUGzWIQAEpcleBBEdf3CzX+R202u40tP0oaBOLBnkyDFbnG6+8thWwZS?= =?us-ascii?Q?jqoZ3w14KgHwsD9o5Gd2YQVEOWTQf0asiMYZM2CnIM2vG5bP2cKxKti2zQbw?= =?us-ascii?Q?uDLHrrA7h6CZmdwLcTKTLl+GEWjA?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 May 2024 14:08:19.2613 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 804e9d6f-6ed0-4827-d44f-08dc7f1fa07d X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB03.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF0001AB4D.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4369 Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Resent-Date: Tue, 28 May 2024 07:08:21 -0700 Resent-From: AbdulLateef.Attar@amd.com Reply-To: devel@edk2.groups.io,AbdulLateef.Attar@amd.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: Guo3Ut4wFXTz8XdPiWGNfMP3x7686176AA= Content-Transfer-Encoding: quoted-printable Content-Type: text/plain X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20240206 header.b=fwPJen5W; dmarc=pass (policy=none) header.from=groups.io; spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 45.79.224.7 as permitted sender) smtp.mailfrom=bounce@groups.io Implements SmmCorePlatformHookLib library for AMD platform. Cc: Abner Chang Cc: Paul Grimes Signed-off-by: Abdul Lateef Attar --- .../AMD/AmdPlatformPkg/AmdPlatformPkg.dec | 5 + .../AMD/AmdPlatformPkg/AmdPlatformPkg.dsc | 6 + .../Library/AmdSmmCorePlatformHookLib.h | 68 +++++++ .../SmmCorePlatformHookLib.c | 169 ++++++++++++++++++ .../SmmCorePlatformHookLib.inf | 39 ++++ .../SmmCorePlatformHookLib.uni | 11 ++ 6 files changed, 298 insertions(+) create mode 100644 Platform/AMD/AmdPlatformPkg/Include/Library/AmdSmmCoreP= latformHookLib.h create mode 100644 Platform/AMD/AmdPlatformPkg/Library/SmmCorePlatformHook= Lib/SmmCorePlatformHookLib.c create mode 100644 Platform/AMD/AmdPlatformPkg/Library/SmmCorePlatformHook= Lib/SmmCorePlatformHookLib.inf create mode 100644 Platform/AMD/AmdPlatformPkg/Library/SmmCorePlatformHook= Lib/SmmCorePlatformHookLib.uni diff --git a/Platform/AMD/AmdPlatformPkg/AmdPlatformPkg.dec b/Platform/AMD/= AmdPlatformPkg/AmdPlatformPkg.dec index 106820dc85..3020e628a3 100644 --- a/Platform/AMD/AmdPlatformPkg/AmdPlatformPkg.dec +++ b/Platform/AMD/AmdPlatformPkg/AmdPlatformPkg.dec @@ -21,6 +21,11 @@ ## @libraryclass Defines a get/set interface for platform specific dat= a. PlatformSocLib|Include/Library/AmdPlatformSocLib.h =20 + ## @libraryclass AMD SMM core platform hook library + # Provide the functions to register hook before and + # after SMM dispatcher. + SmmCorePlatformHookLib|Include/Library/AmdSmmCorePlatformHookLib.h + [Guids] gAmdPlatformPkgTokenSpaceGuid =3D { 0x663DE733, 0x70E0, 0x4D37, { 0xBB= , 0x30, 0x7D, 0x9E, 0xAF, 0x9B, 0xDA, 0xE9 }} =20 diff --git a/Platform/AMD/AmdPlatformPkg/AmdPlatformPkg.dsc b/Platform/AMD/= AmdPlatformPkg/AmdPlatformPkg.dsc index d11d3594e3..482e6f2f30 100644 --- a/Platform/AMD/AmdPlatformPkg/AmdPlatformPkg.dsc +++ b/Platform/AMD/AmdPlatformPkg/AmdPlatformPkg.dsc @@ -62,6 +62,9 @@ MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAll= ocationLib.inf PlatformSocLib|AmdPlatformPkg/Library/DxePlatformSocLib/DxePlatformSocLi= bNull.inf =20 +[LibraryClasses.common.SMM_CORE] + SmmCorePlatformHookLib|AmdPlatformPkg/Library/SmmCorePlatformHookLib/Smm= CorePlatformHookLib.inf + [Components] AmdPlatformPkg/Library/BaseAlwaysFalseDepexLib/BaseAlwaysFalseDepexLib.i= nf AmdPlatformPkg/Library/DxePlatformSocLib/DxePlatformSocLibNull.inf @@ -73,3 +76,6 @@ AmdPlatformPkg/Universal/LogoDxe/LogoDxe.inf = # Server platfrom Bitmap logo driver AmdPlatformPkg/Universal/LogoDxe/S3LogoDxe.inf AmdPlatformPkg/Universal/SmbiosCommonDxe/SmbiosCommonDxe.inf + +[Components.common.SMM_CORE] + AmdPlatformPkg/Library/SmmCorePlatformHookLib/SmmCorePlatformHookLib.inf diff --git a/Platform/AMD/AmdPlatformPkg/Include/Library/AmdSmmCorePlatform= HookLib.h b/Platform/AMD/AmdPlatformPkg/Include/Library/AmdSmmCorePlatformH= ookLib.h new file mode 100644 index 0000000000..6ae76920b4 --- /dev/null +++ b/Platform/AMD/AmdPlatformPkg/Include/Library/AmdSmmCorePlatformHookLib= .h @@ -0,0 +1,68 @@ +/** @file + AMD Smm Core Platform Hook Library + + Copyright (C) 2023 - 2024 Advanced Micro Devices, Inc. All rights reserv= ed. + + SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#ifndef AMD_SMM_CORE_PLATFORM_HOOK_LIB_ +#define AMD_SMM_CORE_PLATFORM_HOOK_LIB_ + +/** + This is the prototype of SMM Dispatcher hook before. + + @retval EFI_STATUS + +**/ +typedef +EFI_STATUS +(EFIAPI *AMD_SMM_DISPATCH_HOOK_BEFORE)( + VOID + ); + +/** + This is the prototype of SMM Dispatcher after before. + + @retval EFI_STATUS + +**/ +typedef +EFI_STATUS +(EFIAPI *AMD_SMM_DISPATCH_HOOK_AFTER)( + VOID + ); + +typedef UINT32 AMD_SMM_DISPATCH_HOOK_PRIORITY; + +/// +/// This is the structure of the SMM Dispatcher hook record +/// +typedef struct { + LIST_ENTRY NextList; ///< Point t= o next AMD_SMM_DISPATCH_HOOK. + AMD_SMM_DISPATCH_HOOK_BEFORE AmdSmmDispatchHookBefore; ///< The hoo= k before function. + AMD_SMM_DISPATCH_HOOK_AFTER AmdSmmDispatchHookAfter; ///< The hoo= k after function. + AMD_SMM_DISPATCH_HOOK_PRIORITY Priority; ///< The pri= ority of this hook instance. + ///< Priorit= y could be implemented for + ///< future = usage. +} AMD_SMM_DISPATCH_HOOK; + +/** + Register a SMM dispatcher hook. + + @param[in] SmmDispatchHookBefore Function hook to SMM Dispatch before. + @param[in] SmmDispatchHookAfter Function hook to SMM Dispatch after. + @param[in] Priority The priority to execute the hook. + + @retval EFI_SUCCESS The hook is registered successfully. + +**/ +EFI_STATUS +RegisterSmmDispatcherHook ( + IN AMD_SMM_DISPATCH_HOOK_BEFORE SmmDispatchHookBefore OPTIONAL, + IN AMD_SMM_DISPATCH_HOOK_AFTER SmmDispatchHookAfter OPTIONAL, + IN AMD_SMM_DISPATCH_HOOK_PRIORITY Priority + ); + +#endif // AMD_SMM_CORE_PLATFORM_HOOK_LIB_ diff --git a/Platform/AMD/AmdPlatformPkg/Library/SmmCorePlatformHookLib/Smm= CorePlatformHookLib.c b/Platform/AMD/AmdPlatformPkg/Library/SmmCorePlatform= HookLib/SmmCorePlatformHookLib.c new file mode 100644 index 0000000000..ad6a40749f --- /dev/null +++ b/Platform/AMD/AmdPlatformPkg/Library/SmmCorePlatformHookLib/SmmCorePla= tformHookLib.c @@ -0,0 +1,169 @@ +/** @file + AMD SMM core hook library + + Copyright (C) 2023 - 2024 Advanced Micro Devices, Inc. All rights reserv= ed. + + SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#include +#include +#include +#include +#include +#include +#include +#include + +LIST_ENTRY *RegisteredHookPtr =3D NULL; +LIST_ENTRY RegisteredHook; + +/** + Register a SMM dispatcher hook. + + @param[in] SmmDispatchHookBefore Function hook to SMM Dispatch before. + @param[in] SmmDispatchHookAfter Function hook to SMM Dispatch after. + @param[in] Priority The priority to execute the hook. + + @retval EFI_SUCCESS The hook is registered successfully. + +**/ +EFI_STATUS +RegisterSmmDispatcherHook ( + IN AMD_SMM_DISPATCH_HOOK_BEFORE SmmDispatchHookBefore OPTIONAL, + IN AMD_SMM_DISPATCH_HOOK_AFTER SmmDispatchHookAfter OPTIONAL, + IN AMD_SMM_DISPATCH_HOOK_PRIORITY Priority + ) +{ + AMD_SMM_DISPATCH_HOOK *ThisHook; + + if ((SmmDispatchHookBefore =3D=3D NULL) && (SmmDispatchHookAfter =3D=3D = NULL)) { + DEBUG ((DEBUG_ERROR, "%a: Both SmmDispatchHookBefore and SmmDispatchHo= okAfter are NULL.\n", __func__)); + return EFI_INVALID_PARAMETER; + } + + if (RegisteredHookPtr =3D=3D NULL) { + InitializeListHead (&RegisteredHook); + RegisteredHookPtr =3D &RegisteredHook; + } + + ThisHook =3D (AMD_SMM_DISPATCH_HOOK *)AllocateZeroPool (sizeof (AMD_SMM_= DISPATCH_HOOK)); + if (ThisHook =3D=3D NULL) { + DEBUG ((DEBUG_ERROR, "%a: Insufficient memory for AMD_SMM_DISPATCH_HOO= K.\n", __func__)); + return EFI_OUT_OF_RESOURCES; + } + + InitializeListHead (&ThisHook->NextList); + ThisHook->AmdSmmDispatchHookBefore =3D SmmDispatchHookBefore; + ThisHook->AmdSmmDispatchHookAfter =3D SmmDispatchHookAfter; + ThisHook->Priority =3D Priority; + InsertHeadList (&RegisteredHook, &ThisHook->NextList); + DEBUG ((DEBUG_VERBOSE, "%a: New AMD_SMM_DISPATCH_HOOK is inserted.\n", _= _func__)); + return EFI_SUCCESS; +} + +/** + Performs platform specific tasks before invoking registered SMI handlers= . + + This function performs platform specific tasks before invoking registere= d SMI handlers. + + @retval EFI_SUCCESS The platform hook completes successfully. + @retval Other values The platform hook cannot complete due to some = error. + +**/ +EFI_STATUS +EFIAPI +PlatformHookBeforeSmmDispatch ( + VOID + ) +{ + AMD_SMM_DISPATCH_HOOK *ThisHook; + + if (IsListEmpty (&RegisteredHook)) { + return EFI_NOT_FOUND; + } + + ThisHook =3D (AMD_SMM_DISPATCH_HOOK *)GetFirstNode (&RegisteredHook); + while (TRUE) { + // + // We can handle priority in the future when needed. + // + if (ThisHook->AmdSmmDispatchHookBefore !=3D NULL) { + ThisHook->AmdSmmDispatchHookBefore (); + } + + if (IsNodeAtEnd (&RegisteredHook, &ThisHook->NextList)) { + break; + } + + ThisHook =3D (AMD_SMM_DISPATCH_HOOK *)GetNextNode (&RegisteredHook, &T= hisHook->NextList); + } + + return EFI_SUCCESS; +} + +/** + Performs platform specific tasks after invoking registered SMI handlers. + + This function performs platform specific tasks after invoking registered= SMI handlers. + + @retval EFI_SUCCESS The platform hook completes successfully. + @retval Other values The platform hook cannot complete due to some = error. + +**/ +EFI_STATUS +EFIAPI +PlatformHookAfterSmmDispatch ( + VOID + ) +{ + AMD_SMM_DISPATCH_HOOK *ThisHook; + + if (IsListEmpty (&RegisteredHook)) { + return EFI_NOT_FOUND; + } + + ThisHook =3D (AMD_SMM_DISPATCH_HOOK *)GetFirstNode (&RegisteredHook); + while (TRUE) { + // + // We can handle priority in the future when needed. + // + if (ThisHook->AmdSmmDispatchHookAfter !=3D NULL) { + ThisHook->AmdSmmDispatchHookAfter (); + } + + if (IsNodeAtEnd (&RegisteredHook, &ThisHook->NextList)) { + break; + } + + ThisHook =3D (AMD_SMM_DISPATCH_HOOK *)GetNextNode (&RegisteredHook, &T= hisHook->NextList); + } + + return EFI_SUCCESS; +} + +/** + Constructor for SmmLockBox library. + This is used to set SmmLockBox context, which will be used in PEI phase = in S3 boot path later. + + @param[in] ImageHandle Image handle of this driver. + @param[in] SystemTable A Pointer to the EFI System Table. + + @retval EFI_SUCCESS + @return Others Some error occurs. +**/ +EFI_STATUS +EFIAPI +SmmCorePlatformHookConstructor ( + IN EFI_HANDLE ImageHandle, + IN EFI_SYSTEM_TABLE *SystemTable + ) +{ + if (RegisteredHookPtr =3D=3D NULL) { + InitializeListHead (&RegisteredHook); + RegisteredHookPtr =3D &RegisteredHook; + } + + return EFI_SUCCESS; +} diff --git a/Platform/AMD/AmdPlatformPkg/Library/SmmCorePlatformHookLib/Smm= CorePlatformHookLib.inf b/Platform/AMD/AmdPlatformPkg/Library/SmmCorePlatfo= rmHookLib/SmmCorePlatformHookLib.inf new file mode 100644 index 0000000000..a79fc56077 --- /dev/null +++ b/Platform/AMD/AmdPlatformPkg/Library/SmmCorePlatformHookLib/SmmCorePla= tformHookLib.inf @@ -0,0 +1,39 @@ +## @file +# INF of SMM Core hook library INF file. +# +# Copyright (C) 2023 - 2024 Advanced Micro Devices, Inc. All rights reser= ved. +# +# SPDX-License-Identifier: BSD-2-Clause-Patent +## +[Defines] + INF_VERSION =3D 0x00010005 + BASE_NAME =3D SmmCorePlatformHookLib + MODULE_UNI_FILE =3D SmmCorePlatformHookLib.uni + FILE_GUID =3D 70ACB6CA-80D2-46a9-A0EB-0C83DFC476C9 + MODULE_TYPE =3D SMM_CORE + VERSION_STRING =3D 1.0 + PI_SPECIFICATION_VERSION =3D 0x0001000A + LIBRARY_CLASS =3D SmmCorePlatformHookLib|SMM_CORE + CONSTRUCTOR =3D SmmCorePlatformHookConstructor + +# +# The following information is for reference only and not required by the = build tools. +# +# VALID_ARCHITECTURES =3D IA32 X64 +# + +[Sources] + SmmCorePlatformHookLib.c + +[Packages] + AmdPlatformPkg/AmdPlatformPkg.dec + MdePkg/MdePkg.dec + MdeModulePkg/MdeModulePkg.dec + +[LibraryClasses] + BaseLib + BaseMemoryLib + DebugLib + MemoryAllocationLib + SmmServicesTableLib + diff --git a/Platform/AMD/AmdPlatformPkg/Library/SmmCorePlatformHookLib/Smm= CorePlatformHookLib.uni b/Platform/AMD/AmdPlatformPkg/Library/SmmCorePlatfo= rmHookLib/SmmCorePlatformHookLib.uni new file mode 100644 index 0000000000..0b326c159b --- /dev/null +++ b/Platform/AMD/AmdPlatformPkg/Library/SmmCorePlatformHookLib/SmmCorePla= tformHookLib.uni @@ -0,0 +1,11 @@ +## @file +# UNI file of SMM Core hook library module +# +# Copyright (C) 2023 - 2024 Advanced Micro Devices, Inc. All rights reser= ved. +# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +## +#string STR_MODULE_ABSTRACT #language en-US "SMM Core Platform= Hook Library instance" + +#string STR_MODULE_DESCRIPTION #language en-US "SMM Core Platform= Hook Library instance" --=20 2.34.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#119307): https://edk2.groups.io/g/devel/message/119307 Mute This Topic: https://groups.io/mt/106349081/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-