From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from EUR05-AM6-obe.outbound.protection.outlook.com (EUR05-AM6-obe.outbound.protection.outlook.com [40.107.22.74]) by mx.groups.io with SMTP id smtpd.web11.83458.1682438703700974597 for ; Tue, 25 Apr 2023 09:05:04 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@armh.onmicrosoft.com header.s=selector2-armh-onmicrosoft-com header.b=CbV/L5LI; spf=pass (domain: arm.com, ip: 40.107.22.74, mailfrom: sami.mujawar@arm.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=oTaRcYhnnuqSr3u1y9YeVNEw403lPfy3Q3ACiN+tsOY=; b=CbV/L5LIPD4ERKdp5ePArLAkEbk4g0pFx371ghLt+9d0fruHsmxxdwG62++o1VW328eOp30XlD4hM8HV6VKj47Jrz2WeKas9gy8HAllYOZdQ2h1UYPdzljTj4cJgRYIeq8HmVS6gI9mjLCSAOTrOpx5bC2yp52oiObOOlpubPO4= Received: from AS9PR07CA0002.eurprd07.prod.outlook.com (2603:10a6:20b:46c::20) by DBBPR08MB6204.eurprd08.prod.outlook.com (2603:10a6:10:1f5::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6319.33; Tue, 25 Apr 2023 16:04:59 +0000 Received: from AM7EUR03FT049.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:46c:cafe::37) by AS9PR07CA0002.outlook.office365.com (2603:10a6:20b:46c::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6340.20 via Frontend Transport; Tue, 25 Apr 2023 16:04:59 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM7EUR03FT049.mail.protection.outlook.com (100.127.140.234) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6340.20 via Frontend Transport; Tue, 25 Apr 2023 16:04:59 +0000 Received: ("Tessian outbound 8b05220b4215:v136"); Tue, 25 Apr 2023 16:04:59 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 0aab8001de07577a X-CR-MTA-TID: 64aa7808 Received: from a748b70d80e7.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 7C71EF1F-6EAD-4633-9440-9926C055D3FB.1; Tue, 25 Apr 2023 16:04:53 +0000 Received: from EUR05-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id a748b70d80e7.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 25 Apr 2023 16:04:53 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=R1OtOXdBVd4YIjam/qv18KYeDoaOJ85QrOQNTKfVFvBs+8RT2IHe/U/gC1b9iWRrdC7Md7OKI6MXTu4OAOpfUf0SKTc5F15R1gDWhCcTbkPtBlV0Y2SKkhtbF6XRJ1kC1QbrmzDx081/QHEbMkhtKxPi4ZOoaWx4DggpJC2YAqhKN6o0oDiThzyEfPxlKttSvyN8RTTzVJH/NWyqvy7fuls+dYC2LEzop8CqEuO/Pa74vWIASm38uCr0kIKm/2bvvkGkyf+Pm5B+joYOnuT2/YW1EvcAU8SK+1hL/oo8HZ0xvlgXgqm7BBXDsjPnXq3A2jevPNt8lqthqRwuDY30Bw== 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=oTaRcYhnnuqSr3u1y9YeVNEw403lPfy3Q3ACiN+tsOY=; b=Fpc51WGUhFxunZreORh70efh0GrP3mDC5hKe5zDirIGpWiJSmUDeP7gz0e1ogwy51JqsvH/d33K3GBSvbmNhr5YbZmJeOmlL1amoM+LLcz3m7bjlHwJYUaT/eZgLnxkSAfKi2nNRocmCfTmQj9rJwA4eoXjgsxcpuOzZD4DcMKVR7OCEsFvIEj+rtYgyy3T7YbM1cks2mQ1nOefhZYnSKAh55VeD2+fxluFVYeZC+TBkI75Z0sCobUicJTFPToLe+vXMdgJv+8luq3KQkSHIyiaWtT/0U5MuYEPc0UIyiN3GOevbtQ0UFdrCJjyfN3fTvXJ+qOuGcVHC34hQIES6PQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 40.67.248.234) smtp.rcpttodomain=edk2.groups.io smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=oTaRcYhnnuqSr3u1y9YeVNEw403lPfy3Q3ACiN+tsOY=; b=CbV/L5LIPD4ERKdp5ePArLAkEbk4g0pFx371ghLt+9d0fruHsmxxdwG62++o1VW328eOp30XlD4hM8HV6VKj47Jrz2WeKas9gy8HAllYOZdQ2h1UYPdzljTj4cJgRYIeq8HmVS6gI9mjLCSAOTrOpx5bC2yp52oiObOOlpubPO4= Received: from DUZPR01CA0050.eurprd01.prod.exchangelabs.com (2603:10a6:10:469::20) by AS8PR08MB9816.eurprd08.prod.outlook.com (2603:10a6:20b:613::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6319.33; Tue, 25 Apr 2023 16:04:47 +0000 Received: from DBAEUR03FT011.eop-EUR03.prod.protection.outlook.com (2603:10a6:10:469:cafe::c1) by DUZPR01CA0050.outlook.office365.com (2603:10a6:10:469::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6319.33 via Frontend Transport; Tue, 25 Apr 2023 16:04:47 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 40.67.248.234) smtp.mailfrom=arm.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 40.67.248.234 as permitted sender) receiver=protection.outlook.com; client-ip=40.67.248.234; helo=nebula.arm.com; pr=C Received: from nebula.arm.com (40.67.248.234) by DBAEUR03FT011.mail.protection.outlook.com (100.127.142.132) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.6340.20 via Frontend Transport; Tue, 25 Apr 2023 16:04:47 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX03.Arm.com (10.251.24.31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Tue, 25 Apr 2023 16:04:45 +0000 Received: from E114225.Arm.com (10.1.196.36) by mail.arm.com (10.251.24.32) with Microsoft SMTP Server id 15.1.2507.23 via Frontend Transport; Tue, 25 Apr 2023 16:04:45 +0000 From: "Sami Mujawar" To: CC: Sami Mujawar , , , , , , , , , , Subject: [RFC PATCH v1 15/30] ArmVirtPkg: Add Null instance of ArmCcaLib Date: Tue, 25 Apr 2023 17:04:13 +0100 Message-ID: <20230425160428.27980-16-sami.mujawar@arm.com> X-Mailer: git-send-email 2.16.2.windows.1 In-Reply-To: <20230425160428.27980-1-sami.mujawar@arm.com> References: <20230425160428.27980-1-sami.mujawar@arm.com> MIME-Version: 1.0 X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: DBAEUR03FT011:EE_|AS8PR08MB9816:EE_|AM7EUR03FT049:EE_|DBBPR08MB6204:EE_ X-MS-Office365-Filtering-Correlation-Id: 275d1a5e-6109-4196-8360-08db45a6d209 x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: 22AEdU7r+KYfmrpDfSx//VOXAJeGGqjaO0rbE3K6/ocoAV8Nn8JwH5KRlKURJwmjgH4KDjalF3aBJEreZ3w0VY48o1RtJjiYa2EuvE8igDVu/q2fdBEgne0vLTQloyDpxB8PS3elcnkfhAh9LcPNsR9VMq7GgNXXstsyFKXZpySs5TZzqfT+2TE6o3zPD3dgAoT16JdRUCzUL2snxXenc6k1sq6m9ub2sLN4vYaXIrWWGYbOnqLaQF8D7YQCaTJQoN0PTPny9DgXuwdvA9qiOZMdipDFr1+ZlkFOoQIgivJ1DwAKbqw7qs5X1JMaEH09gf6Rilm/7jHF6LRPDVCO+BuJLo+wPrS8Xscg2lC8+8TscCol6JRNhpkeIH4yoZbGhHDGB1eSU5wmOUoNJZmyGKeQLSkUWuO9ewCRY9Q3Xi9sn2Ek9oRRQ5IuKYrXOZMvNo7FteuEDaOVweQas3iDwjaipSoJMNOfejl8Fa3UEI6xHVvUMgGTbSIMcWOZLZOf78XVZp0bBgU3c0fhDmTeEAPlqoJ/OzERLNPL4scm+fprAbxE3WSNpCvVNDR1GoeIp5jKVYqQyjckDjvOQcakgX4PTCCmm3yXzQrkJg6aG9U+1wmk5WbzwD1KVxLIFTf8b0GK2u0KgOP1OcFkh4DMLXGKm5RX+aN2Uz/DKQfVCu+GhOA2EGonER3CcC/90yqWT2YkTQYV9JM/1r1iEabt7CvIPX/EPsQQmkOS1WR3AOc= X-Forefront-Antispam-Report-Untrusted: CIP:40.67.248.234;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:nebula.arm.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230028)(4636009)(396003)(39860400002)(376002)(136003)(346002)(451199021)(36840700001)(46966006)(1076003)(26005)(40480700001)(426003)(336012)(2616005)(36756003)(34070700002)(83380400001)(36860700001)(47076005)(186003)(82740400003)(356005)(81166007)(70206006)(45080400002)(86362001)(70586007)(478600001)(6916009)(8676002)(8936002)(54906003)(44832011)(5660300002)(7696005)(41300700001)(2906002)(82310400005)(4326008)(6666004)(316002)(36900700001);DIR:OUT;SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB9816 Return-Path: Sami.Mujawar@arm.com X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM7EUR03FT049.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 1a3ca798-f206-4ee8-f093-08db45a6caae X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: SKESkmvWDmYMmF+fNmw+0gInE0FQj+TwbNaZKi8iw2dxaNaru1RRdFHAN59kA1Q1qMcB1ZhZCpi73IEOVzO3H+++fd9BfhXzIT8cc1kttNW6nwpkR0wgBZ5b5tjHJEFqQx+Xt/1SC0ZPfzgv/KbNuH7/nXOQesFwK7sXdEQo3Cbs/BavKeNSNgpwAL/I6JfmYBh/ztCxIrJYgSSuA0ihXddTK8QZWd6Uyr6Ua3gUymmxWHZxw7mRi46oCy0wmqvKFc1eLVXxFS8FuCFzvSJA0Uww6jupnlbfuQseY65G9XWnjFhphDJULWB/UGQkMkrQa5e0QZUY0aJGIAvi+sB6DncVpBgvvE4UnIa+jKOrezAyWEAWR/sS0Wg/5FaF6GvWJvVnghJ9Hm7Vmk4WePlQRDmnrzbsUHjC2SGe5sLyrmepag4lR4epC0TLMWpof7LeG+N30MMx9Rf60YbFb2tRWMKwHx9h6vzes9iONF/7rIXWT9dFKqvTSWn6Ausqv9DDM0YuTOuUh0IkrG7gCYVPGfKlz6NAZ+NLcFil97+XV085TUaiZazmoGwm0rRXZBd4XJT6dfYbqrsy9j4VyBgWBb54DnVGQm3HLTL+lN9/O/cS9blrJOSEZnJ+SgPh/Y4lSc1zvXVObgD6TFCUsdCT/r/XRYNkS9w+hKIK51P+7Qc0pPYimIiJkOcjmVb8/Gk1ib+Elv/zsFlMBJwSYLQ3n8d3UNJmM7xQypsCOgu1qO4= X-Forefront-Antispam-Report: CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(13230028)(4636009)(39860400002)(346002)(136003)(396003)(376002)(451199021)(40470700004)(36840700001)(46966006)(5660300002)(44832011)(82310400005)(336012)(2616005)(426003)(86362001)(47076005)(83380400001)(82740400003)(186003)(26005)(81166007)(1076003)(36860700001)(34070700002)(8936002)(8676002)(54906003)(316002)(40480700001)(6666004)(478600001)(45080400002)(7696005)(41300700001)(40460700003)(70586007)(70206006)(4326008)(6916009)(36756003)(2906002);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Apr 2023 16:04:59.3002 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 275d1a5e-6109-4196-8360-08db45a6d209 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: AM7EUR03FT049.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB6204 Content-Type: text/plain Add a Null instance of ArmCcaLib so that guest firmware that does not support Arm CCA can link to this Null version of the library. Also include it in ArmVirt.dsc.inc so that it is linked for the non-Arm CCA firmware builds. Signed-off-by: Sami Mujawar --- ArmVirtPkg/ArmVirt.dsc.inc | 4 +- ArmVirtPkg/Library/ArmCcaLibNull/ArmCcaLibNull.c | 117 ++++++++++++++++++++ ArmVirtPkg/Library/ArmCcaLibNull/ArmCcaLibNull.inf | 28 +++++ 3 files changed, 148 insertions(+), 1 deletion(-) diff --git a/ArmVirtPkg/ArmVirt.dsc.inc b/ArmVirtPkg/ArmVirt.dsc.inc index 409749297263a13696885d17c6d5554d07c195e4..88dd74e7bb0e1352a8867727a33ae80498a9ea98 100644 --- a/ArmVirtPkg/ArmVirt.dsc.inc +++ b/ArmVirtPkg/ArmVirt.dsc.inc @@ -1,5 +1,5 @@ # -# Copyright (c) 2011 - 2022, ARM Limited. All rights reserved. +# Copyright (c) 2011 - 2023, ARM Limited. All rights reserved. # Copyright (c) 2014, Linaro Limited. All rights reserved. # Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved. # Copyright (c) Microsoft Corporation. @@ -178,6 +178,8 @@ [LibraryClasses.common] ReportStatusCodeLib|MdePkg/Library/BaseReportStatusCodeLibNull/BaseReportStatusCodeLibNull.inf + ArmCcaLib|ArmVirtPkg/Library/ArmCcaLibNull/ArmCcaLibNull.inf + [LibraryClasses.common.SEC] PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf diff --git a/ArmVirtPkg/Library/ArmCcaLibNull/ArmCcaLibNull.c b/ArmVirtPkg/Library/ArmCcaLibNull/ArmCcaLibNull.c new file mode 100644 index 0000000000000000000000000000000000000000..e5e645e148d485fc324e060ec27fbc3607fe8aae --- /dev/null +++ b/ArmVirtPkg/Library/ArmCcaLibNull/ArmCcaLibNull.c @@ -0,0 +1,117 @@ +/** @file + Null implemmentation of the ArmCcaLib library. + + Copyright (c) 2022 - 2023, Arm Limited. All rights reserved.
+ SPDX-License-Identifier: BSD-2-Clause-Patent + + @par Glossary: + - Rsi or RSI - Realm Service Interface + - IPA - Intermediate Physical Address + - RIPAS - Realm IPA state +**/ +#include + +/** + Check if running in a Realm. + + @retval TRUE The execution is within the context of a Realm. + @retval FALSE The execution is not within the context of a Realm. +**/ +BOOLEAN +EFIAPI +IsRealm ( + VOID + ) +{ + return FALSE; +} + +/** + Configure the protection attribute for the page tables + describing the memory region. + + The IPA space of a Realm is divided into two halves: + - Protected IPA space and + - Unprotected IPA space. + + Software in a Realm should treat the most significant bit of an + IPA as a protection attribute. + + A Protected IPA is an address in the lower half of a Realms IPA + space. The most significant bit of a Protected IPA is 0. + + An Unprotected IPA is an address in the upper half of a Realms + IPA space. The most significant bit of an Unprotected IPA is 1. + + Note: + - Configuring the memory region as Unprotected IPA enables the + Realm to share the memory region with the Host. + - This function updates the page table entries to reflect the + protection attribute. + - A separate call to transition the memory range using the Realm + Service Interface (RSI) RSI_IPA_STATE_SET command is additionally + required and is expected to be done outside this function. + + @param [in] BaseAddress Base address of the memory region. + @param [in] Length Length of the memory region. + @param [in] IpaWidth IPA width of the Realm. + @param [in] Share If TRUE, set the most significant + bit of the IPA to configure the memory + region as Unprotected IPA. + If FALSE, clear the most significant + bit of the IPA to configure the memory + region as Protected IPA. + + @retval RETURN_SUCCESS IPA protection attribute updated. + @retval RETURN_INVALID_PARAMETER A parameter is invalid. + @retval RETURN_UNSUPPORTED The request is not initiated in a + Realm. +**/ +RETURN_STATUS +EFIAPI +ArmCcaSetMemoryProtectAttribute ( + IN EFI_PHYSICAL_ADDRESS BaseAddress, + IN UINT64 Length, + IN UINT64 IpaWidth, + IN BOOLEAN Share + ) +{ + return RETURN_UNSUPPORTED; +} + +/** + Return the IPA width of the Realm. + + The IPA width of the Realm is used to configure the protection attribute + for memory regions, see ArmCcaSetMemoryProtectAttribute(). + + The IPA width of the Realm is present in the Realm config which is read + when the ArmCcaInitPeiLib library hook function ArmCcaInitialize () is + called in the PrePi phase. ArmCcaInitialize () stores the IPA width of + the Realm in a GUID HOB gArmCcaIpaWidthGuid. + + This function searches the GUID HOB gArmCcaIpaWidthGuid and returns the + IPA width value stored therein. + + Note: + - This function must only be called after ArmCcaInitialize () has setup + the GUID HOB gArmCcaIpaWidthGuid. + + @param [out] IpaWidth IPA width of the Realm. + + @retval RETURN_SUCCESS Success. + @retval RETURN_INVALID_PARAMETER A parameter is invalid. + @retval RETURN_NOT_FOUND The GUID HOB gArmCcaIpaWidthGuid is not + found and could mean that this function + was called before ArmCcaInitialize () + has created and initialised the GUID + HOB gArmCcaIpaWidthGuid. +**/ +RETURN_STATUS +EFIAPI +GetIpaWidth ( + OUT UINT64 *IpaWidth + ) +{ + return RETURN_UNSUPPORTED; +} diff --git a/ArmVirtPkg/Library/ArmCcaLibNull/ArmCcaLibNull.inf b/ArmVirtPkg/Library/ArmCcaLibNull/ArmCcaLibNull.inf new file mode 100644 index 0000000000000000000000000000000000000000..8f6c251afb14da48db45ba78d96d1d497e3fe8eb --- /dev/null +++ b/ArmVirtPkg/Library/ArmCcaLibNull/ArmCcaLibNull.inf @@ -0,0 +1,28 @@ +## @file +# Null implemmentation of the ArmCcaLib library. +# +# Copyright (c) 2022 - 2023, Arm Limited. All rights reserved.
+# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +## + +[Defines] + INF_VERSION = 0x0001001B + BASE_NAME = ArmCcaLib + FILE_GUID = 9E3F7AAA-10A6-4513-A960-B87F4D7DCFC5 + MODULE_TYPE = BASE + VERSION_STRING = 1.0 + LIBRARY_CLASS = ArmCcaLib + +[Sources] + ArmCcaLibNull.c + + +[Packages] + ArmVirtPkg/ArmVirtPkg.dec + MdePkg/MdePkg.dec + +[LibraryClasses] + BaseLib + -- 'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)'