From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from EUR04-DB3-obe.outbound.protection.outlook.com (EUR04-DB3-obe.outbound.protection.outlook.com [40.107.6.72]) by mx.groups.io with SMTP id smtpd.web08.10576.1624884330708024899 for ; Mon, 28 Jun 2021 05:45:31 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@armh.onmicrosoft.com header.s=selector2-armh-onmicrosoft-com header.b=QSDEA/QR; spf=pass (domain: arm.com, ip: 40.107.6.72, 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=FGDSyLHRE7GB/+mZ3j+qdc3jxw61SOfEy9Gc++muYco=; b=QSDEA/QRUUK97c7xBj/fgllusM6w1zZ4jYmjgiycDhzNjxNQO1XTw8hkpbfWDIwBBhBMYX1VdIfOn16X62f0wwaPasW6sjUrU+tPnMxsb978L+Qy36MyxY/c7fS9rt74V8ctXaoP9G3o3L83YtdjK7hDp4so8fub8wHWrWceghg= Received: from AM7PR03CA0012.eurprd03.prod.outlook.com (2603:10a6:20b:130::22) by DB6PR0802MB2503.eurprd08.prod.outlook.com (2603:10a6:4:97::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4264.23; Mon, 28 Jun 2021 12:45:26 +0000 Received: from AM5EUR03FT024.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:130:cafe::e1) by AM7PR03CA0012.outlook.office365.com (2603:10a6:20b:130::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4264.19 via Frontend Transport; Mon, 28 Jun 2021 12:45:26 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; edk2.groups.io; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;edk2.groups.io; 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; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM5EUR03FT024.mail.protection.outlook.com (10.152.16.175) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4264.18 via Frontend Transport; Mon, 28 Jun 2021 12:45:26 +0000 Received: ("Tessian outbound 40f076a73fdc:v97"); Mon, 28 Jun 2021 12:45:25 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 26707832919b1c23 X-CR-MTA-TID: 64aa7808 Received: from 9c8d1aa6938a.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id E8377286-FBC6-4455-BCF9-E1F3AE1073F4.1; Mon, 28 Jun 2021 12:45:19 +0000 Received: from EUR01-HE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 9c8d1aa6938a.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Mon, 28 Jun 2021 12:45:19 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IBZlPjUi57enMT+ss80Tnf3Pil8XvPY9yFazTdy0k57z2f0TEhn9aC47Z1o2lSN4VSDW4ruofbT/DUNQkPBgPVd8wla97ZAqa2wNKdAbRQ0jxM7Y8DQpq0dZ6St3phb7ua+RflUz4GaortTVfNlfOnLi8t73wTFWo2kmeakA0TtBdnrbRneJgjQkNxcvxn60ynr76L5vNt2zj+NyXggrkImgYMOIj+cxutm6Mto89oxqVKKJwfv7NswcHJaH0LbJEQvsHv5B+OJGJCFGeR9hnMrYatXhz+AsxOxyzuzdX268rNPISll7whBjnHViJppbQ02EKg5aVllvFSV2EZ7ZXQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=FGDSyLHRE7GB/+mZ3j+qdc3jxw61SOfEy9Gc++muYco=; b=GR/oNrkS0wQiJzFYIiiih0s6XZbvZFYqoVu1SC1vO8Zf0F/h8TM10zR+lFu2vHbe2ZnOO6AtTa91cHoLPiiNjhxIBl6/VgF7g1Ndpuehif89KJNJZh5dyGo5qgEVRAU4zf9g09+rSgd+CRPRrtiskTPnZ1mNVWF4QQ780ddCH80QCell1ZU0IQ+Aco+7IPQ2DxhtjLs6GAK+dtwc4jhB1SNE5HqeijmbHN7L+B7gio7Lahp22b7Ri4LbJ4u9sg1RiY2+g2nofD86YMsMV3ZnDw8Jg/lTxMhMc+unMKBIO5q2P5V6VUxJS0ZQ9yNjVyRNO4MTyNrP1/W3Z24Axi06NA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; 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=FGDSyLHRE7GB/+mZ3j+qdc3jxw61SOfEy9Gc++muYco=; b=QSDEA/QRUUK97c7xBj/fgllusM6w1zZ4jYmjgiycDhzNjxNQO1XTw8hkpbfWDIwBBhBMYX1VdIfOn16X62f0wwaPasW6sjUrU+tPnMxsb978L+Qy36MyxY/c7fS9rt74V8ctXaoP9G3o3L83YtdjK7hDp4so8fub8wHWrWceghg= Authentication-Results-Original: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=arm.com; Received: from AS8PR08MB6806.eurprd08.prod.outlook.com (2603:10a6:20b:39b::12) by AS8PR08MB6280.eurprd08.prod.outlook.com (2603:10a6:20b:29b::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4242.21; Mon, 28 Jun 2021 12:45:17 +0000 Received: from AS8PR08MB6806.eurprd08.prod.outlook.com ([fe80::5c0d:142c:27df:c52b]) by AS8PR08MB6806.eurprd08.prod.outlook.com ([fe80::5c0d:142c:27df:c52b%7]) with mapi id 15.20.4264.026; Mon, 28 Jun 2021 12:45:17 +0000 Subject: Re: [PATCH v3 1/3] Acpi: reimplement PlatformHasAcpi for Cloud Hypervisor To: Jianyong Wu , devel@edk2.groups.io Cc: lersek@redhat.com, ardb+tianocore@kernel.org, justin.he@arm.com, nd References: <20210628095506.36076-1-jianyong.wu@arm.com> <20210628095506.36076-2-jianyong.wu@arm.com> From: "Sami Mujawar" Message-ID: Date: Mon, 28 Jun 2021 13:45:15 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.0.1 In-Reply-To: <20210628095506.36076-2-jianyong.wu@arm.com> X-Originating-IP: [217.140.106.54] X-ClientProxiedBy: LO4P123CA0493.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:1ab::12) To AS8PR08MB6806.eurprd08.prod.outlook.com (2603:10a6:20b:39b::12) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [10.1.196.43] (217.140.106.54) by LO4P123CA0493.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:1ab::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4264.19 via Frontend Transport; Mon, 28 Jun 2021 12:45:16 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 7aff9078-722d-454a-b277-08d93a329a59 X-MS-TrafficTypeDiagnostic: AS8PR08MB6280:|DB6PR0802MB2503: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true NoDisclaimer: true X-MS-Oob-TLC-OOBClassifiers: OLM:8273;OLM:8273; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: EifjdmQPTGRJrmj+WkqFPa4cNceeGxQ984aiFMZofXNjoSDSzasJQXrQBmddD3qBeg+xUzM2W7rQP82MfS8p0zfSksY/t5njHbTptSp9EGxtXIrzB7VfQmqWCa5jclIZwC+VGv+f1OZ49nxnnsgGB216Y1szdQCVl3GcPcGjM1eI24JJgdzZSVEnZKZr5fe4eDl0v7mh8QVdpDHdmJIKjCc/STXyovT1TM4KKVdLM7ecXeui/euTHRO1UUNdfC42KUcyVASnmwSvt1NQhp8DFrb33szKrGn/92O/gIMPG0pNwLKBlVaq/2DkKCXZluZgb/GbHspsCiMTw5xoIBa8I6zTwpSp/PpMQ79OW7m5G7Pu8qz6pJGhxooF/ddAfaStG1tS0bNQ8fjown4YI1vOaZ++4M+bazGssBHKf6fpeunpk5VvLrTt+oCtegTls+m4aOFZc4xMmGS8tx8gCklYuNKnlCJtiSmJlY9sr7f/ZMFxwz1aIN6LH3ptqGgbpC00FLyHJiwSREBXF+YiVRNmFqGLhQW/KtxzkhpdULOKstPqsXYEyftA/aMJdSrFefkv9oKJ5nr2df7NVY0oZ2uFj3HrCFWrLJpj91YGST8ZS9d1YNFT3gyZDjMxLjHPHuwsWYG/jmH4hZ50AJF09DPIaK5zNcPyqCWp1XB/jjafNbWsUQVx0I+uUKuFdar1qTiB9KhxriCFTSsrcIuPXi5TTdHybncRXUDZF2b/5U9LOiqpB62tKKlsbILW33zr3Mzpb6FmiEvSXF+S8rY5+aupdg== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR08MB6806.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(136003)(376002)(366004)(39840400004)(346002)(396003)(66556008)(66476007)(956004)(66946007)(2616005)(44832011)(5660300002)(6486002)(8936002)(8676002)(478600001)(4326008)(86362001)(16526019)(16576012)(316002)(38100700002)(53546011)(36756003)(83380400001)(31686004)(186003)(38350700002)(2906002)(26005)(52116002)(31696002)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?bG03bHZZQU1jY3FKbE05aUJZUGk3d252eTBNR2dTUXhYNkNBZndFZkNjQUFL?= =?utf-8?B?cHlQS1lrdlZYYWdCbEJyVGRSRFJGVGM4bEpGTmNWKzJycWRYbWVOL1lzT3Zl?= =?utf-8?B?ZUp4TmFXcnN4Y29EOHFKNlhKclNKMlk0Q3RyYU1aWld1ZGlxeHRkYUhUaWh0?= =?utf-8?B?c3M1R2xIV0ZVRXVpTWpCUHNxTXFmR2ExYUZCRWo3NW43YVVzM1BkZjBKV3J3?= =?utf-8?B?UVpHTTVlWFpwaXN1Y1BxLzNoSFpRcHhkTzlHRjVJWWR1Zm1COWJFKzBYMytO?= =?utf-8?B?cHYyajVMVDMvRTBmVjhpU3h1MFdlRUUyZTZ0d012eE0reTBKbGk0UzAwMCs4?= =?utf-8?B?UDlXYld3MnhRLzZsSkcwZ0lNcDhoMWJJcld2UHVCZGd0c0tHYXVnaFd1SUcv?= =?utf-8?B?cGk4SDF6WU9PZEpzMU5JNCtyUzJiVW5VTG1OdUJDbVdRR1hNZGEvcmljVXdp?= =?utf-8?B?RGpDOHV2aGtrQlFCMnB6R292azcwKzVUYXgvWXlnYjVxc3p4Vkl3OXJxSGxT?= =?utf-8?B?MGt6d0VIMi9EeTFyemNCaStJVzN5TVBpVHhTQmVMTUtWMkNoNXZIMGk1c0Vm?= =?utf-8?B?VzYyQnF5QzYzMW82MnhvWkNQQVhqVS9XK1kvdVpDYlpnUVN6dEUvWU9WMCtu?= =?utf-8?B?OVhMT1N4c3VJVGZXY1dkcldneDZQUVd5NjhVMFR6TnpucjZ5ZjBrTVUrWUxE?= =?utf-8?B?UDduYWdlbVRRNWVRU2U3K3RLV1Z5cEpQY09mbGZhYjhYUFM3cGtLVFUwSHo3?= =?utf-8?B?bjROVlNYZ291TFRBbDFqMUxKaVVQVnhuRW52S2tSNitiWUF0RUdPcmNWQWxr?= =?utf-8?B?TEU5ZGhKQW1vbGVsc0pLMHNZVG9GaHkybDZZOXAxc055WUNpbzhpb0syaUlW?= =?utf-8?B?ZGZiU2Nvczlwb3VpTWVJQ2o0ZGtXTSszamNZeXRjWWdMZnJVUWdjemszTGVD?= =?utf-8?B?d0dPQjMzcktSK3oxTERQbzF6cUI2Um5qR2F5UGlKUWVDUllGMHBlRlVraG9z?= =?utf-8?B?L3plZ3JscUJwanhaQnlqRjdtNjNTQVBDRzJvUlRhVy8ydzVjM3lVaEVjUUxP?= =?utf-8?B?QnhORjJhbU9iblN4eUtNaDlkZGVZRmNiSDRFTks3RWcwdERrVWduUjgrVHNs?= =?utf-8?B?elZ4UXEyTHRNOEhzZ25VN2RPNFdPdEZEdXBNMERBU2xMT1FkK0dVNmlpNlJa?= =?utf-8?B?Nmk3VWhSQ3d0dDIxN2VwVkRrV0VWalg5aFhGTVJGUk5vK0tlT0w2RUpJWGFp?= =?utf-8?B?K2VNeHlCbzZ4U2xoeHRVQnJxQlViaTA1MXJleFNmNkY2TWcxeFA2elowRU5C?= =?utf-8?B?NUZFd2tCczdJa0F1RW9WbllUalNRSXdobko4M0tKSTRHcG9KNmlWdWpDd09D?= =?utf-8?B?MG9Wc0RlbVZ4UmYxNXhBSzV6TjNtanBYRUNoMlF4YS9jTTd6Ym43bldLQUx4?= =?utf-8?B?NFN2RXVWSHhueXArUW5vYVQyTlpkTmkxWjNSelpPL2ZLUGtpWlN2bGwwWG1o?= =?utf-8?B?MnRmSWc5d2dYWSt3cjgzKzhpeDFEWHZMRm9MQjZQSVNBenhZRVVBQnp2TFps?= =?utf-8?B?UFRRdm00OWxVTDBmREZRNWllNndHWldTL2IvT2lST1hHWWxJZEQ5L0pQNWRn?= =?utf-8?B?U1ZVRmJUL01QZjk2SDZkd09BalZoVXA5TGw0anBrTXFBUTlRZVAxNVZDNlJl?= =?utf-8?B?dTBBQ0VYQkZLK0U5M00vVTFqb1Q0Zm9Lc3RCZllIbFdrbGxXei9Jb1ZNK3hC?= =?utf-8?Q?bDLt5/PZIdEOmgyHpzpQruiTVF26aydzH5axnU6?= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6280 Original-Authentication-Results: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=arm.com; Return-Path: Sami.Mujawar@arm.com X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT024.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 4b6cb4d0-5923-4824-23b9-08d93a3294cd X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: O6gSqrsMw43f9xUc1I+R79O7dfAOZcx+Y7+LAASw5k2axn9aL8toPVn5kqgeCG5cEsxCAZLyqes5FkKvCyq9pA1vPN2CUY3CvSG/f0p53AtvKUyzwYB5XO2Du3dltr7A++R+InsgsVG46G8WFBRQi0Ujgv51ajS7tbCVu7qj0FacJCatJo2qMAA9tHqteemDQ1JOe1fbBbCmqp/GsYhHJo86d5ZvQdOTd4uhbHRV7CVlZMoSpNQEHrg/3pKMV/+YuJ/Kx4Uo4ffqnwUlSKvTaBjGpLEyT8vh+FQhgj/QEgUsKcQou41usIe/ww+0n3Z8Nm7bzT4jHHuXmJwuNYsRvmKjkB0CmJ1yoCkvC2thOJUwSNQGA75N03fh1HAOk7kcodZBc9ZRq+bRbyghiF2KH+BZ6QYOnD/eutnjJSQDN61qb5SVNlOxd2L4cxzBNp2mUCyMnmELfwG1hdo5HaBQKLbXhQN9xaKaM5wr4EYJQfsbvGDTfLX6jcDMajhJxh+Uv0HL/EpmXbSUtfg6dG0y2bMlrlew8QjB1o1/AT41NDTNjGNaFjyVIW9+JhlqCtj8mUNwNiAdYzC9Sl5cfTJ8EBlsoKirC+6EOg+PMwLrPU6ps1yiFd36JeTl/+rC4CKQlPnAbj61Z+Mcg/SIsdjftkxgcpxnMQf0QLxzQD3eWqmTRwktWP2C4YA53swpGIxOm9LirhcX96vlZvEGS9MowpYGQEGtUog5owCau6o0nFw= 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:(4636009)(376002)(346002)(136003)(39840400004)(396003)(36840700001)(46966006)(36860700001)(31696002)(336012)(8936002)(5660300002)(82310400003)(478600001)(53546011)(47076005)(86362001)(2616005)(44832011)(8676002)(83380400001)(6486002)(2906002)(26005)(81166007)(70206006)(316002)(70586007)(356005)(4326008)(36756003)(31686004)(16526019)(956004)(16576012)(186003)(43740500002);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Jun 2021 12:45:26.1221 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7aff9078-722d-454a-b277-08d93a329a59 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: AM5EUR03FT024.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0802MB2503 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-GB Hi Jianyong, Thank you for this patch. This patch looks good to me. Reviewed-by: Sami Mujawar Regards, Sami Mujawar On 28/06/2021 10:55 AM, Jianyong Wu wrote: > The current implementation of PlatformHasAcpiDt is not a common > library and is on behalf of qemu. So give a specific version for > Cloud Hypervisor here. > > Signed-off-by: Jianyong Wu > --- > .../CloudHvHasAcpiDtDxe.inf | 43 ++++++++++++ > .../CloudHvHasAcpiDtDxe.c | 69 +++++++++++++++++++ > 2 files changed, 112 insertions(+) > create mode 100644 ArmVirtPkg/CloudHvPlatformHasAcpiDtDxe/CloudHvHasAcpiDtDxe.inf > create mode 100644 ArmVirtPkg/CloudHvPlatformHasAcpiDtDxe/CloudHvHasAcpiDtDxe.c > > diff --git a/ArmVirtPkg/CloudHvPlatformHasAcpiDtDxe/CloudHvHasAcpiDtDxe.inf b/ArmVirtPkg/CloudHvPlatformHasAcpiDtDxe/CloudHvHasAcpiDtDxe.inf > new file mode 100644 > index 000000000000..eb63a4136545 > --- /dev/null > +++ b/ArmVirtPkg/CloudHvPlatformHasAcpiDtDxe/CloudHvHasAcpiDtDxe.inf > @@ -0,0 +1,43 @@ > +## @file > +# Decide whether the firmware should expose an ACPI- and/or a Device Tree-based > +# hardware description to the operating system. > +# > +# Copyright (c) 2021, Arm Limited. All rights reserved.
> +# > +# SPDX-License-Identifier: BSD-2-Clause-Patent > +## > + > +[Defines] > + INF_VERSION = 1.25 > + BASE_NAME = CloudHvPlatformHasAcpiDtDxe > + FILE_GUID = 71fe72f9-6dc1-199d-5054-13b4200ee88d > + MODULE_TYPE = DXE_DRIVER > + VERSION_STRING = 1.0 > + ENTRY_POINT = PlatformHasAcpiDt > + > +[Sources] > + CloudHvHasAcpiDtDxe.c > + > +[Packages] > + ArmVirtPkg/ArmVirtPkg.dec > + EmbeddedPkg/EmbeddedPkg.dec > + MdeModulePkg/MdeModulePkg.dec > + MdePkg/MdePkg.dec > + OvmfPkg/OvmfPkg.dec > + > +[LibraryClasses] > + BaseLib > + DebugLib > + PcdLib > + UefiBootServicesTableLib > + UefiDriverEntryPoint > + > +[Guids] > + gEdkiiPlatformHasAcpiGuid ## SOMETIMES_PRODUCES ## PROTOCOL > + gEdkiiPlatformHasDeviceTreeGuid ## SOMETIMES_PRODUCES ## PROTOCOL > + > +[Pcd] > + gArmVirtTokenSpaceGuid.PcdForceNoAcpi > + > +[Depex] > + gEfiVariableArchProtocolGuid > diff --git a/ArmVirtPkg/CloudHvPlatformHasAcpiDtDxe/CloudHvHasAcpiDtDxe.c b/ArmVirtPkg/CloudHvPlatformHasAcpiDtDxe/CloudHvHasAcpiDtDxe.c > new file mode 100644 > index 000000000000..48a446c68a45 > --- /dev/null > +++ b/ArmVirtPkg/CloudHvPlatformHasAcpiDtDxe/CloudHvHasAcpiDtDxe.c > @@ -0,0 +1,69 @@ > +/** @file > + Decide whether the firmware should expose an ACPI- and/or a Device Tree-based > + hardware description to the operating system. > + > + Copyright (c) 2021, Arm Limited. All rights reserved.
> + > + SPDX-License-Identifier: BSD-2-Clause-Patent > +**/ > + > +#include > +#include > +#include > +#include > +#include > +#include > + > +EFI_STATUS > +EFIAPI > +PlatformHasAcpiDt ( > + IN EFI_HANDLE ImageHandle, > + IN EFI_SYSTEM_TABLE *SystemTable > + ) > +{ > + EFI_STATUS Status; > + > + // > + // If we fail to install any of the necessary protocols below, the OS will be > + // unbootable anyway (due to lacking hardware description), so tolerate no > + // errors here. > + // > + if (MAX_UINTN == MAX_UINT64 && > + !PcdGetBool (PcdForceNoAcpi)) > + { > + Status = gBS->InstallProtocolInterface ( > + &ImageHandle, > + &gEdkiiPlatformHasAcpiGuid, > + EFI_NATIVE_INTERFACE, > + NULL > + ); > + if (EFI_ERROR (Status)) { > + goto Failed; > + } > + > + return Status; > + } > + > + // > + // Expose the Device Tree otherwise. > + // > + Status = gBS->InstallProtocolInterface ( > + &ImageHandle, > + &gEdkiiPlatformHasDeviceTreeGuid, > + EFI_NATIVE_INTERFACE, > + NULL > + ); > + if (EFI_ERROR (Status)) { > + goto Failed; > + } > + > + return Status; > + > +Failed: > + ASSERT_EFI_ERROR (Status); > + CpuDeadLoop (); > + // > + // Keep compilers happy. > + // > + return Status; > +}