From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (EUR05-VI1-obe.outbound.protection.outlook.com [40.107.21.76]) by mx.groups.io with SMTP id smtpd.web12.18620.1622274248327531673 for ; Sat, 29 May 2021 00:44:09 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@armh.onmicrosoft.com header.s=selector2-armh-onmicrosoft-com header.b=us3skKdw; spf=pass (domain: arm.com, ip: 40.107.21.76, 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=UynbNs0lqIAC8s8CVGqXZqxQRCecxnZyCDapcyeQpE4=; b=us3skKdwUbExrjq3IAecxfLtOoWC84iNGFgoOcRD/zmWgV3OZpDmbTyDXOp8KrAFYWLUGnIuU7yC2iCgvfcZZS5SHx577MRWS+pwGatsm7yweYBCCQed2xRd2SUsi8EGLkWksWz++x5R3uQ4GHVTGkFjeNPAxQ6o5fPjuQAJIFo= Received: from AS8P251CA0016.EURP251.PROD.OUTLOOK.COM (2603:10a6:20b:2f2::11) by VI1PR08MB3805.eurprd08.prod.outlook.com (2603:10a6:803:ba::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4173.20; Sat, 29 May 2021 07:44:04 +0000 Received: from VE1EUR03FT024.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:2f2:cafe::3d) by AS8P251CA0016.outlook.office365.com (2603:10a6:20b:2f2::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4173.20 via Frontend Transport; Sat, 29 May 2021 07:44:04 +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 VE1EUR03FT024.mail.protection.outlook.com (10.152.18.87) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4150.30 via Frontend Transport; Sat, 29 May 2021 07:44:03 +0000 Received: ("Tessian outbound 6d1d235c0b46:v93"); Sat, 29 May 2021 07:44:03 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 305981e79c5d0de8 X-CR-MTA-TID: 64aa7808 Received: from 877152d59548.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 628E815A-0720-49A2-8AFC-F2DCD93093FF.1; Sat, 29 May 2021 07:43:57 +0000 Received: from EUR05-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 877152d59548.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Sat, 29 May 2021 07:43:57 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OgMOPf0wmCQ4G2YtQ02xgt2waYg1WNKtgl8cIz3UUSydqYklEtbh5MK64sIgZw+o/trY6GPpM3HvfvIcLJdBKA50WeV0f7k/3aIhDy758IgKuFx1kc/GArEROv0AJCIpiP0yPpp4+YtowiNlq7GwDqTiTJlTP21bu9L3FfQ6ig/216IF2CP2TPsDEmvZYDla0r4d9VNy8Nh1hEgEyEXLD3ojRWM87PhEShkG52RdOBiUiZNMy0qbUe8HYMh0EN31XXdcPnPVn8XC+vyJh2BcHAmHuVYMawREWCLa7WzXZnyiOgZq4OwMeUOMZvON2Pux1RwERVRt60KuWTcQmtR4Lg== 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=UynbNs0lqIAC8s8CVGqXZqxQRCecxnZyCDapcyeQpE4=; b=lpqd2vHkZfH5nX0kCFGGdmNHUCEZ15QRzbSUEK02mYJSIP7jaqruEWt3segCOaMPqdIBDPJgBbocC9r4c+sa+1CO3GkQKeK7QiIFHTehxpFGaNZulLyw0PIkJlbvJiyKs7Vw6lI621F+X8btvgQ+2v4Abo19b1e6UeOoY/aUgPPSGPHOzcYjpgCqRRDgSFV/6243KlgaXSt8sF8qew9zoz82xnflaey8pLCrJyFQ6YlOBAPej0goHh3dpIND1ANbC9TbKq9rCgHRU3fxVvIMCW81S/ZqxA5Bi1tUUjvQktFgwJejh0BNDl0zz3TewOAaEdPS/qTgxptk+jziGoYgSA== 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=UynbNs0lqIAC8s8CVGqXZqxQRCecxnZyCDapcyeQpE4=; b=us3skKdwUbExrjq3IAecxfLtOoWC84iNGFgoOcRD/zmWgV3OZpDmbTyDXOp8KrAFYWLUGnIuU7yC2iCgvfcZZS5SHx577MRWS+pwGatsm7yweYBCCQed2xRd2SUsi8EGLkWksWz++x5R3uQ4GHVTGkFjeNPAxQ6o5fPjuQAJIFo= 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 AM6PR08MB5205.eurprd08.prod.outlook.com (2603:10a6:20b:ee::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4173.21; Sat, 29 May 2021 07:43:54 +0000 Received: from AS8PR08MB6806.eurprd08.prod.outlook.com ([fe80::80cb:878d:c8f1:2688]) by AS8PR08MB6806.eurprd08.prod.outlook.com ([fe80::80cb:878d:c8f1:2688%7]) with mapi id 15.20.4173.024; Sat, 29 May 2021 07:43:54 +0000 Subject: Re: [PATCH v2 4/5] ArmVirtPkg: Introduce Cloud Hypervisor to edk2 family To: Jianyong Wu , "devel@edk2.groups.io" , "lersek@redhat.com" , "ardb+tianocore@kernel.org" Cc: "hao.a.wu@intel.com" , Justin He , Leif Lindholm , nd References: <20210517065032.82423-1-jianyong.wu@arm.com> <20210517065032.82423-5-jianyong.wu@arm.com> <9ab1ed82-80a9-7dbd-d112-e984871af8c0@arm.com> From: "Sami Mujawar" Message-ID: <31935dd3-3028-b236-56e8-e05813d9a205@arm.com> Date: Sat, 29 May 2021 08:43:52 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.0.1 In-Reply-To: X-Originating-IP: [217.140.106.52] X-ClientProxiedBy: LO2P265CA0410.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:a0::14) 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.52) by LO2P265CA0410.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:a0::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4173.20 via Frontend Transport; Sat, 29 May 2021 07:43:53 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: eed20718-a5cd-41a9-5617-08d92275882e X-MS-TrafficTypeDiagnostic: AM6PR08MB5205:|VI1PR08MB3805: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true NoDisclaimer: true X-MS-Oob-TLC-OOBClassifiers: OLM:419;OLM:419; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: ACvdnUOjK22vW+SLELCXGwpgCWUK1Db/zef18Ue8wP8Xqg8tq2j0Sk6U1QWX5bfwQZb0TGuGePesuOb5r31030RP+weVzWq0I4M/47NBgUHAFYXUPc2TaWzXonShbz48pGUTMLr1P2E1ns061yADcPXMqqI4Ko+x3Dr4g6mC4PUEfH36/G5YoKsdYuZ0FKgKN9y87s5GOw5LbCE7STsrdQUX92lHyfozTcnofbuyoLSf9pzuCkW4iJ1Tbu5gerp4g0uNoefFCYa4OFacQdBjs0J+vxWjBQ/wavxX4KH1ihFkneBuSXEU9lamlnrdYyopZKolSAzY5QXNVoVF3fBl2F3o6nDycCSsGooKJqPI29Dsj64InX+8gOG5h4K7Qsb6MoEQ8kqoqfB2N/RJXHcZMtr/O/3ZQam/06DSDH9kZlcnJIlkn8y6s0K/gS9nHL2KjJjvnOV8rpZ/nbf/uohoFCisBJZ2t1GyA8WerjLWCJrmZsse4R2Rg7x1P9y3G3NvNWRAJmpZAqu8rYmk+h+NiNnHS2j/0UmZB971DOSA4rSI7s1Igb4uq1YXvQfy6DH3Lp7zPdHMicAZv6wbEy2NxA/u7mgW+Uaz5TTie3zUfeU/Hf890yo6Fssp6WABye0V5v64wx3Mm3BlHEC7oa+AjmI6WHx4DZxSzp7svzCiAxthB2rC0112y/XicvWEmGWsvF6Wb2AHU/ba8WEZOWRITQ== 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)(39860400002)(346002)(376002)(366004)(136003)(396003)(478600001)(16526019)(8676002)(5660300002)(8936002)(66616009)(44832011)(66476007)(186003)(235185007)(4326008)(19627235002)(66556008)(956004)(2616005)(31696002)(84040400003)(52116002)(83380400001)(6486002)(31686004)(53546011)(33964004)(316002)(16576012)(38100700002)(30864003)(110136005)(54906003)(36756003)(26005)(66946007)(86362001)(38350700002)(2906002)(43740500002)(45980500001)(579004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?B?Tmo3Y2hhVDBuSFNPeUQ0K2FSOEhrQm54TFpJVUlSbEhGVEErY2xadGtRdTMw?= =?utf-8?B?ZDV3ZGhpUEdIaEVuTzdreTRZa2ZnaFdPTUtYdWE5VncxcHhTK2xVcDFncHpm?= =?utf-8?B?cjE1dnBPaU1KUTMvbUtFRCttbnJBcmpRVC9iVitnNzZIeWZkSkozbk5SYkRV?= =?utf-8?B?Y1BWRFF6RFZKampWTHRiYUxxdUY0dCsrNmpNL1g3eTF0MzJvL25VbW9UU2k5?= =?utf-8?B?VHZHalhiNUhSdGIxTktRRFl6dDR6RVdCcThEZmlFVkg4d01NYlZZS2VIRUI2?= =?utf-8?B?bmlEamlVMDZlM09TR3NxdmhqOStacEFOdDlFMnJPSUQ0T0hrR2FBSnBzV3dj?= =?utf-8?B?c3VBL2liS2JCUmFHRElURG9sazk5V1h0VmkzdzhnUHdHY1hhcWhyRzR3YmpR?= =?utf-8?B?eUVQSFBaZDk5cFk3WEowMmlMcitZK3J1aThJVm9LbTBaL09HSnZRcDVzTzR3?= =?utf-8?B?emhTQlcrTDdUZ2d4M0Vzbm5RaEhvRVJ1YkxmajZIQktPaXZHanVWQ1cvYksw?= =?utf-8?B?eWN5QVZldVZuUVZWaUR2a1o4Y2Fmc0ZvQmlaZkhpalVndmUrZE9jOFdNM3RL?= =?utf-8?B?cVdVMGYycjl4NnRNbWZ2K0Q2Z0ZJWVEzcnJmU2Z5OU9tTHZtVUZsQnlKK2Nx?= =?utf-8?B?WC80WE5lZmFvLzlIV2RYVXZpZ1ZOV3Juc2pxdzd0UytraTMxNFZVVlp0QjVY?= =?utf-8?B?QzZGMWRzdFlWVGVJeCtZSmdqblFVSkZWY0d3YUNSc2lrOWhmZTRPS0RiNzli?= =?utf-8?B?OU1XbG9iQ3JRWnBZUzBtOXI2R0IxTThGWEpwWFBud3BQaCt6Q0xWZ2pxa1Yr?= =?utf-8?B?OCt1L29oa1JnUGl4M3lVZUQ1aWJzTGNOenFjNGcxNlBlZGtiUUNXL2ovZ1No?= =?utf-8?B?VTI0cHBXMVR3aGlBcTAvWFc3ZkY0MTFJZUMvRE9PeXFzdWNQNi9rV2E1Qksw?= =?utf-8?B?YS9YL2VSMjM5RERjdUZNTGtNbmtZMmZyU1ZSQXdFRXFjNGoxYU93L0YyRVFm?= =?utf-8?B?dVJVUzIwYnphdVNxN1RzUU1UbE9TdjVFSy9WUmhHRE4zU2tLMVJ3M2EwQ3Ry?= =?utf-8?B?L2hoZTFiMDJ4NFp3bGlQNHlZU0lTOU8ycXNoSDkwTEU5ampySFU0K0RxNERK?= =?utf-8?B?eDhCSVpUUmZ3ellkOGcyQ1hyRG5oNVRiZTlqRk54QTlXa29YaGVtWUs1YldL?= =?utf-8?B?TzlVQXFOSmprUGdxejBCeENHM2xLU1IxcVB0WHVVTUQrUGhXWlJwUGFuaWh1?= =?utf-8?B?OHpTVVFkSjZIUHg2b2V5dGxWdmMwcW80Z0dBL3JidUQ3d3RVUDJTS0gvNXVq?= =?utf-8?B?N2FvTncrQTI0T0hGUWk1VW9nTkxPT09rZVdkeENPYUFCT2ZycFIzV3VKQkNY?= =?utf-8?B?WHJvaldlSTBhQkQ3NHFYempqZUdrUjAwdGFuY05HbnZBbDFnd0RTNjRsMVFK?= =?utf-8?B?bEJxekU0NlcxbHpTdUlSNHpyRldvc2lvb2VRcS9oT2Fnbk91WDg3UVZacXBx?= =?utf-8?B?ZUxQUjBjeGNVaDNjcHJveVI0SzkrWUtHVVRKbFAvZFp4STY0K3NaMFVXYnkx?= =?utf-8?B?RzVQdEcyWHpYdVJPYy9uZiswMkF2bDNleDk2QnZXUlZGQ2lnekZkbVg4cG5a?= =?utf-8?B?TFJNNS82ZVBrNFdmdHZJaG5rMnQyNTFSU0QxYXlmWDlNTExqdlVOR25oYkFC?= =?utf-8?B?NkhaYkFodm1XcmRoNHgyWjBqaEhyNlFFNmNXVmYxeUxOdHp3VXh5TGpmRUpC?= =?utf-8?Q?KKcB0pgNRlqFuZOxprUZ5oP/vMzZSpu5E+zCjsc?= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB5205 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: VE1EUR03FT024.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 61eea2ee-eedd-49ac-9d43-08d92275820b X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: qzgSsmsBlBv/coYU9MM04azP9hFxgQbDbsx+S9SnK4hPwLTF34JGQRvxNVhg1ELQIwhp+lJ2y6zIRmcJns23/QzF/wY2kpra1a4Pi6IalAgRgGIg95TSGBzEZXLbHUqhTVrpMVbyBWt7zkjsrtkxSxjPeY3OjdW3foTpfm4h0OYKsI1Y8ychejKlFJRDRgo7MPfpkotAFDaoHXAo4oh3bUa4M6dLZYleIoReSLymN00geBJsfrvtpUDI5/H3c2fmGwUrK6Vp/4HscQQ/RHTm0uP0hwfaKO7hkt/1X9uyxElLBFJ9kocHZOtB/2qpzMIW9Bh0VXCnp7cIucEQ2NnOt/0h55VcqgqlM+2y4M9nhHz8Czwb2o6C/xZ4msLp0jwAJ3mf96z6ztxN0U8uRU3vQyVzq6m91G9REjFHSN9DRnE4jcH8FViZvrZp89B5ikG/txyI9km9Afk3z4ejYrHSW1Of7gZhVYC2Oza97g3M5V4r2dKtN2HeooyqK+kE0XuquzA1VrnUANzwRNtaj7wcOJDpe+DZfWOwq7kWZ+OzIJ+HYLpf7IsxTwGPS1kfvw8AQ8zMWVHVgxWcvh7G9tzYOVh+lpvbWV2/oY2jwy2UFOPNBlITmJDSia+UWPRfEIsB0UTxTuqZJaehplqN+Xo5LwCT1UVZzTRpkWemZuUvHiA779he8IrJbJkh8TRAtAfo 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)(39860400002)(136003)(376002)(346002)(396003)(46966006)(36840700001)(356005)(54906003)(47076005)(478600001)(316002)(16576012)(81166007)(235185007)(110136005)(83380400001)(31686004)(82740400003)(5660300002)(8936002)(70586007)(19627235002)(70206006)(66616009)(8676002)(26005)(336012)(33964004)(53546011)(6486002)(2616005)(2906002)(956004)(36860700001)(84040400003)(4326008)(36756003)(82310400003)(31696002)(16526019)(186003)(44832011)(86362001)(30864003)(43740500002)(579004);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 May 2021 07:44:03.9122 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: eed20718-a5cd-41a9-5617-08d92275882e 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: VE1EUR03FT024.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB3805 X-Groupsio-MsgNum: 75846 Content-Type: multipart/mixed; boundary="------------315F7193C12958CD56375E0E" Content-Language: en-GB --------------315F7193C12958CD56375E0E Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Hi Jianyon, Please find my response inline marked [SAMI]. Regards, Sami Mujawar On 27/05/2021 07:19 AM, Jianyong Wu wrote: > Hi Sami, > >> -----Original Message----- >> From: Sami Mujawar >> Sent: Wednesday, May 19, 2021 4:27 AM >> To: Jianyong Wu ; devel@edk2.groups.io; >> lersek@redhat.com; ardb+tianocore@kernel.org >> Cc: hao.a.wu@intel.com; Justin He ; Leif Lindholm >> ; nd >> Subject: Re: [PATCH v2 4/5] ArmVirtPkg: Introduce Cloud Hypervisor to edk2 >> family >> >> Hi Jianyon, >> >> Thank you for this patch. >> >> Please find my response inline marked [SAMI]. >> >> Regards, >> >> Sami Mujawar >> >> >> On 17/05/2021 07:50 AM, Jianyong Wu wrote: >>> Cloud Hypervisor is kvm based VMM and is implemented in rust. Just >>> like other VMMs it need UEFI support to let ACPI work. That's why >>> Cloud Hypervisor is introduced here. >>> >>> Cc: Laszlo Ersek >>> Cc: Leif Lindholm >>> Cc: >>> Signed-off-by: Jianyong Wu >>> --- >>> ArmVirtPkg/ArmVirtCloudHv.dsc | 455 >> ++++++++++++++++++++++++ >>> ArmVirtPkg/ArmVirtCloudHv.fdf | 292 +++++++++++++++ >>> ArmVirtPkg/ArmVirtCloudHvFvMain.fdf.inc | 169 +++++++++ >>> 3 files changed, 916 insertions(+) >>> create mode 100644 ArmVirtPkg/ArmVirtCloudHv.dsc >>> create mode 100644 ArmVirtPkg/ArmVirtCloudHv.fdf >>> create mode 100644 ArmVirtPkg/ArmVirtCloudHvFvMain.fdf.inc >>> >>> diff --git a/ArmVirtPkg/ArmVirtCloudHv.dsc >>> b/ArmVirtPkg/ArmVirtCloudHv.dsc new file mode 100644 index >>> 000000000000..bf1f8c5a75ae >>> --- /dev/null >>> +++ b/ArmVirtPkg/ArmVirtCloudHv.dsc >>> @@ -0,0 +1,455 @@ >>> +# >>> +# Copyright (c) 2011-2015, ARM Limited. All rights reserved. >>> +# Copyright (c) 2014, Linaro Limited. All rights reserved. >>> +# Copyright (c) 2015 - 2020, Intel Corporation. All rights reserved. >>> +# >>> +# SPDX-License-Identifier: BSD-2-Clause-Patent # # >>> + >>> >> +######################################################### >> ############ >>> +########### >>> +# >>> +# Defines Section - statements that will be processed to create a Makefile. >>> +# >>> >> +######################################################### >> ############ >>> +########### >>> +[Defines] >>> + PLATFORM_NAME = ArmVirtCloudHv >>> + PLATFORM_GUID = DFFED32B-DFFE-D32B-DFFE-D32BDFFED32B >>> + PLATFORM_VERSION = 0.1 >>> + DSC_SPECIFICATION = 0x00010005 >>> + OUTPUT_DIRECTORY = Build/ArmVirtCloudHv-$(ARCH) >>> + SUPPORTED_ARCHITECTURES = AARCH64|ARM >>> + BUILD_TARGETS = DEBUG|RELEASE|NOOPT >>> + SKUID_IDENTIFIER = DEFAULT >>> + FLASH_DEFINITION = ArmVirtPkg/ArmVirtCloudHv.fdf >>> + >>> + # >>> + # Defines for default states. These can be changed on the command line. >>> + # -D FLAG=VALUE >>> + # >>> + DEFINE TTY_TERMINAL = FALSE >>> + DEFINE SECURE_BOOT_ENABLE = FALSE >>> + DEFINE TPM2_ENABLE = FALSE >>> + DEFINE TPM2_CONFIG_ENABLE = FALSE >>> + >>> +!include ArmVirtPkg/ArmVirt.dsc.inc >>> + >>> +[LibraryClasses.common] >>> + ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf >>> + ArmMmuLib|ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf >>> + >>> + # Virtio Support >>> + VirtioLib|OvmfPkg/Library/VirtioLib/VirtioLib.inf >>> + >>> + >> VirtioMmioDeviceLib|OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDe >>> + viceLib.inf >>> + QemuFwCfgLib|ArmVirtPkg/Library/QemuFwCfgLib/QemuFwCfgLib.inf >>> + >>> + >> QemuFwCfgS3Lib|OvmfPkg/Library/QemuFwCfgS3Lib/BaseQemuFwCfgS3Li >> bNull >>> + .inf >>> + >> QemuFwCfgSimpleParserLib|OvmfPkg/Library/QemuFwCfgSimpleParserLib/ >> Qe >>> + muFwCfgSimpleParserLib.inf >>> + >> QemuLoadImageLib|OvmfPkg/Library/GenericQemuLoadImageLib/Generic >> Qemu >>> + LoadImageLib.inf >> [SAMI] Does Cloud Hypervisor support Qemu-FwCfg? If not, then are the >> above 4 libraries needed? > Hi Sami, I think CloudHv doesn't dependent on qemu-fwcfg, so I have tried to remove the dependencies. But I find it difficult to do that. > Some implicit codes depend on qemu-cfg that I can't do workaround. E.g. > > In OvmfPkg/Library/PciHostBridgeUtilityLib/PciHostBridgeUtilityLib.c > " > Status = QemuFwCfgFindFile ("etc/extra-pci-roots", &FwCfgItem, &FwCfgSize); > if (EFI_ERROR (Status) || FwCfgSize != sizeof ExtraRootBridges) { > ExtraRootBridges = 0; > } else { > QemuFwCfgSelectItem (FwCfgItem); > QemuFwCfgReadBytes (FwCfgSize, &ExtraRootBridges); > " > I don't know how to do with it. So, I keep it here. > Maybe I need your help if these dependencies should be removed. [SAMI] I am working on a patch series that adds ACPI and PCI support for Kvmtool firmware. So, I may just have the patch you need. The patch is an instance of PciHostBridgeUtilityLib without the FwCfg and I think it should work for Choud Hypervisor too. If you can try the attached patch and let me know if it works; I will reword the patch so that it is common for both Kvmtool and Cloud Hypervisor and post it to the mailing list. Please let me know if you face any issues. [/SAMI] >>> + >>> + >>> + >> ArmPlatformLib|ArmPlatformPkg/Library/ArmPlatformLibNull/ArmPlatform >>> + LibNull.inf >>> + >>> + TimerLib|ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.inf >>> + >>> + >> CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull. >>> + inf BootLogoLib|MdeModulePkg/Library/BootLogoLib/BootLogoLib.inf >>> + >>> + >> PlatformBootManagerLib|ArmVirtPkg/Library/PlatformBootManagerLib/Pla >>> + tformBootManagerLib.inf >> [SAMI] The above instance of PlatformBootManagerLibhas a dependency on >> Qemu-FwCfg, right? >>> + >>> + >> PlatformBmPrintScLib|OvmfPkg/Library/PlatformBmPrintScLib/PlatformBm >>> + PrintScLib.inf >>> + >> CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/Custo >>> + mizedDisplayLib.inf >>> + >> FrameBufferBltLib|MdeModulePkg/Library/FrameBufferBltLib/FrameBuffer >>> + BltLib.inf >>> + >> QemuBootOrderLib|OvmfPkg/Library/QemuBootOrderLib/QemuBootOrder >> Lib.i >>> + nf >> [SAMI] Qemu-FwCfg dependency? > Sure > >>> + >>> + FileExplorerLib|MdeModulePkg/Library/FileExplorerLib/FileExplorerLib >>> + .inf >>> + PciPcdProducerLib|ArmVirtPkg/Library/FdtPciPcdProducerLib/FdtPciPcdP >>> + roducerLib.inf >>> + >> PciSegmentLib|MdePkg/Library/BasePciSegmentLibPci/BasePciSegmentLibP >>> + ci.inf >>> + PciHostBridgeLib|ArmVirtPkg/Library/FdtPciHostBridgeLib/FdtPciHostBr >>> + idgeLib.inf >>> + PciHostBridgeUtilityLib|OvmfPkg/Library/PciHostBridgeUtilityLib/PciH >>> + ostBridgeUtilityLib.inf >>> + >>> +!if $(TPM2_ENABLE) == TRUE >>> + >>> >> +Tpm2CommandLib|SecurityPkg/Library/Tpm2CommandLib/Tpm2Command >> Lib.inf >>> + >>> >> +Tcg2PhysicalPresenceLib|OvmfPkg/Library/Tcg2PhysicalPresenceLibQemu/ >> D >>> +xeTcg2PhysicalPresenceLib.inf >> [SAMI] Is this supported by Cloud Hypervisor? > No, should be removed. > >>> + >>> >> +TpmMeasurementLib|SecurityPkg/Library/DxeTpmMeasurementLib/DxeT >> pmMeas >>> +urementLib.inf >>> +!else >>> + >>> >> +TpmMeasurementLib|MdeModulePkg/Library/TpmMeasurementLibNull/T >> pmMeasu >>> +rementLibNull.inf >>> +!endif >>> + >>> +!include MdePkg/MdeLibs.dsc.inc >>> + >>> +[LibraryClasses.common.PEIM] >>> + >>> >> +ArmVirtMemInfoLib|ArmVirtPkg/Library/CloudHvVirtMemInfoLib/CloudHv >> Vir >>> +tMemInfoPeiLib.inf >>> + >>> +!if $(TPM2_ENABLE) == TRUE >>> + BaseCryptLib|CryptoPkg/Library/BaseCryptLib/PeiCryptLib.inf >>> + >>> >> +ResetSystemLib|MdeModulePkg/Library/PeiResetSystemLib/PeiResetSyst >> emL >>> +ib.inf >>> + >>> >> +Tpm2DeviceLib|SecurityPkg/Library/Tpm2DeviceLibDTpm/Tpm2DeviceLibD >> Tpm >>> +.inf >>> +!endif >>> + >>> +[LibraryClasses.common.DXE_DRIVER] >>> + >>> >> +ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/D >> xeRe >>> +portStatusCodeLib.inf >>> + >>> +!if $(TPM2_ENABLE) == TRUE >>> + >>> >> +Tpm2DeviceLib|SecurityPkg/Library/Tpm2DeviceLibTcg2/Tpm2DeviceLibTcg >> 2 >>> +.inf >>> +!endif >>> + >>> +[LibraryClasses.common.UEFI_DRIVER] >>> + UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf >>> + >>> +[BuildOptions] >>> +!include NetworkPkg/NetworkBuildOptions.dsc.inc >>> + >>> >> +######################################################### >> ############ >>> +########### >>> +# >>> +# Pcd Section - list of all EDK II PCD Entries defined by this >>> +Platform # >>> >> +######################################################### >> ############ >>> +########### >>> + >>> +[PcdsFeatureFlag.common] >>> + gUefiOvmfPkgTokenSpaceGuid.PcdQemuBootOrderPciTranslation|TRUE >>> + >> gUefiOvmfPkgTokenSpaceGuid.PcdQemuBootOrderMmioTranslation|TRUE >>> + >>> + ## If TRUE, Graphics Output Protocol will be installed on virtual handle >> created by ConsplitterDxe. >>> + # It could be set FALSE to save size. >>> + gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE >>> + gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport|FALSE >>> + >>> + >> gEfiMdeModulePkgTokenSpaceGuid.PcdTurnOffUsbLegacySupport|TRUE >>> + >>> + gArmVirtTokenSpaceGuid.PcdTpm2SupportEnabled|$(TPM2_ENABLE) >>> + >>> +[PcdsFixedAtBuild.common] >>> +!if $(ARCH) == AARCH64 >>> + gArmTokenSpaceGuid.PcdVFPEnabled|1 >>> +!endif >>> + >>> + gArmPlatformTokenSpaceGuid.PcdCPUCoresStackBase|0x4007c000 >>> + >> gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved|0 >>> + gArmPlatformTokenSpaceGuid.PcdCPUCorePrimaryStackSize|0x4000 >>> + gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize|0x2000 >>> + gEfiMdeModulePkgTokenSpaceGuid.PcdMaxAuthVariableSize|0x2800 >>> + >>> + # Rsdp base address in Cloud Hypervisor >>> + >> gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiRsdpBaseAddress|0x40200000 >>> + >>> + >>> >> +gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase|0x40 >> 0000 >>> +0 >>> + >>> >> +gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize|0x400 >> 00 >>> +!if $(NETWORK_TLS_ENABLE) == TRUE >>> + # >>> + # The cumulative and individual VOLATILE variable size limits >>> +should be set >>> + # high enough for accommodating several and/or large CA certificates. >>> + # >>> + gEfiMdeModulePkgTokenSpaceGuid.PcdVariableStoreSize|0x80000 >>> + >> gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVolatileVariableSize|0x40000 >>> +!endif >>> + >>> + # Size of the region used by UEFI in permanent memory (Reserved >>> + 64MB) >>> + >> gArmPlatformTokenSpaceGuid.PcdSystemMemoryUefiRegionSize|0x040000 >> 00 >>> + >>> + # >>> + # ARM PrimeCell >>> + # >>> + >>> + ## PL011 - Serial Terminal >>> + gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate|38400 >>> + >>> + ## Default Terminal Type >>> + ## 0-PCANSI, 1-VT100, 2-VT00+, 3-UTF8, 4-TTYTERM !if >>> +$(TTY_TERMINAL) == TRUE >>> + gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType|4 >>> + # Set terminal type to TtyTerm, the value encoded is >>> +EFI_TTY_TERM_GUID >>> + gArmVirtTokenSpaceGuid.PcdTerminalTypeGuidBuffer|{0x80, 0x6d, >> 0x91, >>> +0x7d, 0xb1, 0x5b, 0x8c, 0x45, 0xa4, 0x8f, 0xe2, 0x5f, 0xdd, 0x51, >>> +0xef, 0x94} !else >>> + gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType|1 >>> +!endif >>> + >>> + # System Memory Base -- fixed at 0x4000_0000 >>> + gArmTokenSpaceGuid.PcdSystemMemoryBase|0x40000000 >>> + >>> + # initial location of the device tree blob passed by Cloud >>> + Hypervisor -- base of DRAM >>> + gArmVirtTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress|0x40000000 >>> + >>> + >>> + >>> + >> gEfiMdeModulePkgTokenSpaceGuid.PcdResetOnMemoryTypeInformationC >> hange >>> + |FALSE >> gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerMenuFile|{ >>> + 0x21, 0xaa, 0x2c, 0x46, 0x14, 0x76, 0x03, 0x45, 0x83, 0x6e, 0x8a, >>> + 0xb6, 0xf4, 0x66, 0x23, 0x31 } >>> + >>> + # >>> + # The maximum physical I/O addressability of the processor, set >>> + with # BuildCpuHob(). >>> + # >>> + gEmbeddedTokenSpaceGuid.PcdPrePiCpuIoSize|16 >>> + >>> + # >>> + # Enable the non-executable DXE stack. (This gets set up by DxeIpl) >>> + # gEfiMdeModulePkgTokenSpaceGuid.PcdSetNxForStack|TRUE >>> + >>> +!if $(SECURE_BOOT_ENABLE) == TRUE >>> + # override the default values from SecurityPkg to ensure images >>> +from all sources are verified in secure boot >>> + >>> >> +gEfiSecurityPkgTokenSpaceGuid.PcdOptionRomImageVerificationPolicy|0x >> 0 >>> +4 >>> + >>> >> +gEfiSecurityPkgTokenSpaceGuid.PcdFixedMediaImageVerificationPolicy|0x >>> +04 >>> + >>> >> +gEfiSecurityPkgTokenSpaceGuid.PcdRemovableMediaImageVerificationPoli >> c >>> +y|0x04 >>> +!endif >>> + >>> + gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|3 >>> + gEfiShellPkgTokenSpaceGuid.PcdShellFileOperationSize|0x20000 >>> + >>> +[PcdsFixedAtBuild.AARCH64] >>> + # Clearing BIT0 in this PCD prevents installing a 32-bit SMBIOS >>> +entry point, >>> + # if the entry point version is >= 3.0. AARCH64 OSes cannot assume >>> +the >>> + # presence of the 32-bit entry point anyway (because many AARCH64 >>> +systems >>> + # don't have 32-bit addressable physical RAM), and the additional >>> +allocations >>> + # below 4 GB needlessly fragment the memory map. So expose the >>> +64-bit entry >>> + # point only, for entry point versions >= 3.0. >>> + >> gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosEntryPointProvideMethod|0 >> x2 >>> + >>> +[PcdsDynamicDefault.common] >>> + gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|3 >>> + >>> + ## If TRUE, OvmfPkg/AcpiPlatformDxe will not wait for PCI # >>> + enumeration to complete before installing ACPI tables. >>> + >> gEfiMdeModulePkgTokenSpaceGuid.PcdPciDisableBusEnumeration|TRUE >>> + >>> + # System Memory Size -- 1 MB initially, actual size will be fetched >>> + from DT >>> + gArmTokenSpaceGuid.PcdSystemMemorySize|0x00100000 >>> + >>> + >> gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvModeEnable|TRUE >>> + >>> + gArmTokenSpaceGuid.PcdArmArchTimerSecIntrNum|0x0 >>> + gArmTokenSpaceGuid.PcdArmArchTimerIntrNum|0x0 >>> + gArmTokenSpaceGuid.PcdArmArchTimerVirtIntrNum|0x0 >>> + gArmTokenSpaceGuid.PcdArmArchTimerHypIntrNum|0x0 >>> + >>> + # >>> + # ARM General Interrupt Controller >>> + # >>> + gArmTokenSpaceGuid.PcdGicDistributorBase|0x0 >>> + gArmTokenSpaceGuid.PcdGicRedistributorsBase|0x0 >>> + gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase|0x0 >>> + >>> + ## PL031 RealTimeClock >>> + gArmPlatformTokenSpaceGuid.PcdPL031RtcBase|0x0 >>> + >>> + # set PcdPciExpressBaseAddress to MAX_UINT64, which signifies that >>> + this # PCD and PcdPciDisableBusEnumeration above have not been >>> + assigned yet >>> + >> gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress|0xFFFFFFFFFFFFFF >> FF >>> + >>> + gArmTokenSpaceGuid.PcdPciIoTranslation|0 >>> +# gArmTokenSpaceGuid.PcdPciIoTranslation|0x50000000 >> [SAMI] Remove commented code. > Yeah > >>> + >>> + # >>> + # TPM2 support >>> + # >>> + gEfiSecurityPkgTokenSpaceGuid.PcdTpmBaseAddress|0x0 >>> +!if $(TPM2_ENABLE) == TRUE >>> + gEfiSecurityPkgTokenSpaceGuid.PcdTpmInstanceGuid|{0x00, 0x00, 0x00, >>> +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, >>> +0x00, 0x00} >>> + gEfiSecurityPkgTokenSpaceGuid.PcdTpm2HashMask|0 >>> +!endif >>> + >>> +[PcdsDynamicHii] >>> + >>> >> +gArmVirtTokenSpaceGuid.PcdForceNoAcpi|L"ForceNoAcpi"|gArmVirtVaria >> ble >>> +Guid|0x0|FALSE|NV,BS >>> + >>> +!if $(TPM2_CONFIG_ENABLE) == TRUE >>> + >>> >> +gEfiSecurityPkgTokenSpaceGuid.PcdTcgPhysicalPresenceInterfaceVer|L"TC >>> +G2_VERSION"|gTcg2ConfigFormSetGuid|0x0|"1.3"|NV,BS >>> + >>> >> +gEfiSecurityPkgTokenSpaceGuid.PcdTpm2AcpiTableRev|L"TCG2_VERSION" >> |gTc >>> +g2ConfigFormSetGuid|0x8|3|NV,BS >>> +!endif >>> + >>> >> +######################################################### >> ############ >>> +########### >>> +# >>> +# Components Section - list of all EDK II Modules needed by this >>> +Platform # >>> >> +######################################################### >> ############ >>> +########### >>> +[Components.common] >>> + # >>> + # PEI Phase modules >>> + # >>> + ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf >>> + MdeModulePkg/Core/Pei/PeiMain.inf >>> + MdeModulePkg/Universal/PCD/Pei/Pcd.inf { >>> + >>> + PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf >>> + } >>> + ArmPlatformPkg/PlatformPei/PlatformPeim.inf >>> + ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.inf >>> + ArmPkg/Drivers/CpuPei/CpuPei.inf >>> + >>> + MdeModulePkg/Universal/Variable/Pei/VariablePei.inf >>> + >>> +!if $(TPM2_ENABLE) == TRUE >>> + MdeModulePkg/Universal/ResetSystemPei/ResetSystemPei.inf { >>> + >>> + >>> >> +ResetSystemLib|ArmVirtPkg/Library/ArmVirtPsciResetSystemPeiLib/ArmVi >> r >>> +tPsciResetSystemPeiLib.inf >>> + } >>> + OvmfPkg/Tcg/Tcg2Config/Tcg2ConfigPei.inf >>> + SecurityPkg/Tcg/Tcg2Pei/Tcg2Pei.inf { >>> + >>> + >> HashLib|SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoR >> outerPei.inf >>> + >> NULL|SecurityPkg/Library/HashInstanceLibSha1/HashInstanceLibSha1.inf >>> + >> NULL|SecurityPkg/Library/HashInstanceLibSha256/HashInstanceLibSha256.in >> f >>> + >> NULL|SecurityPkg/Library/HashInstanceLibSha384/HashInstanceLibSha384.in >> f >>> + >> NULL|SecurityPkg/Library/HashInstanceLibSha512/HashInstanceLibSha512.in >> f >>> + >>> +NULL|SecurityPkg/Library/HashInstanceLibSm3/HashInstanceLibSm3.inf >>> + } >>> +!endif >>> + >>> + MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf { >>> + >>> + >>> + >> NULL|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDec >> ompre >>> + ssLib.inf >>> + } >>> + >>> + # >>> + # DXE >>> + # >>> + MdeModulePkg/Core/Dxe/DxeMain.inf { >>> + >>> + >> NULL|MdeModulePkg/Library/DxeCrc32GuidedSectionExtractLib/DxeCrc32G >> uidedSectionExtractLib.inf >>> + >>> + DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf >>> + } >>> + MdeModulePkg/Universal/PCD/Dxe/Pcd.inf { >>> + >>> + PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf >>> + } >>> + >>> + # >>> + # Architectural Protocols >>> + # >>> + ArmPkg/Drivers/CpuDxe/CpuDxe.inf >>> + MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf >>> + >> MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf { >>> + >>> + NULL|MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLib.inf >>> + # don't use unaligned CopyMem () on the UEFI varstore NOR flash >> region >>> + >> BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf >>> + } >>> +!if $(SECURE_BOOT_ENABLE) == TRUE >>> + MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf { >>> + >>> + >>> +NULL|SecurityPkg/Library/DxeImageVerificationLib/DxeImageVerification >>> +Lib.inf >>> +!if $(TPM2_ENABLE) == TRUE >>> + >>> >> +NULL|SecurityPkg/Library/DxeTpm2MeasureBootLib/DxeTpm2MeasureBo >> otLib. >>> +inf >>> +!endif >>> + } >>> + >>> >> +SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConf >> i >>> +gDxe.inf >>> + OvmfPkg/EnrollDefaultKeys/EnrollDefaultKeys.inf >>> +!else >>> + MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf >>> +!endif >>> + MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf >>> + >>> >> +MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.i >> n >>> +f >>> + >>> >> +MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCou >> nterRun >>> +timeDxe.inf >>> + >>> >> +MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntime >> Dxe.in >>> +f >>> + >> EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf { >>> + >>> + >>> >> +NULL|ArmVirtPkg/Library/ArmVirtPL031FdtClientLib/ArmVirtPL031FdtClien >>> +tLib.inf >>> + } >>> + EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf >>> + >>> + >> MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf >>> + MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf >>> + >>> + >> MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleD >> xe >>> + .inf MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf >>> + MdeModulePkg/Universal/SerialDxe/SerialDxe.inf >>> + >>> + MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf >>> + >>> + ArmPkg/Drivers/ArmGic/ArmGicDxe.inf >>> + ArmPkg/Drivers/TimerDxe/TimerDxe.inf { >>> + >>> + >>> + NULL|ArmVirtPkg/Library/ArmVirtTimerFdtClientLib/ArmVirtTimerFdtClie >>> + ntLib.inf >>> + } >>> + MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf >>> + >>> + # >>> + # Status Code Routing >>> + # >>> + >>> + >> MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportSt >> atu >>> + sCodeRouterRuntimeDxe.inf >>> + >>> + # >>> + # Platform Driver >>> + # >>> + ArmVirtPkg/VirtioFdtDxe/VirtioFdtDxe.inf >>> + ArmVirtPkg/FdtClientDxe/FdtClientDxe.inf >>> + ArmVirtPkg/HighMemDxe/HighMemDxe.inf >>> + OvmfPkg/VirtioBlkDxe/VirtioBlk.inf >>> + OvmfPkg/VirtioScsiDxe/VirtioScsi.inf >>> + OvmfPkg/VirtioNetDxe/VirtioNet.inf >>> + OvmfPkg/VirtioRngDxe/VirtioRng.inf >>> + >>> + # >>> + # FAT filesystem + GPT/MBR partitioning + UDF filesystem + >>> + virtio-fs # MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf >>> + MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf >>> + >>> + >> MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.i >>> + nf >>> + FatPkg/EnhancedFatDxe/Fat.inf >>> + MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf >>> + OvmfPkg/VirtioFsDxe/VirtioFsDxe.inf >>> + >>> + # >>> + # Bds >>> + # >>> + MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf { >>> + >>> + >> DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf >>> + PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf >>> + } >>> + MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf >>> + MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf >>> + >>> + >> MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManager >> Dxe >>> + .inf MdeModulePkg/Universal/BdsDxe/BdsDxe.inf >>> + MdeModulePkg/Logo/LogoDxe.inf >>> + MdeModulePkg/Application/UiApp/UiApp.inf { >>> + >>> + >> NULL|MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerUiLib.inf >>> + >> NULL|MdeModulePkg/Library/BootManagerUiLib/BootManagerUiLib.inf >>> + >>> + >> NULL|MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMainte >> nanc >>> + eManagerUiLib.inf >>> + } >>> + OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.inf >> [SAMI] Qemu-FwCfg dependency? > Yeah > >>> + >>> + # >>> + # SCSI Bus and Disk Driver >>> + # >>> + MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf >>> + MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf >>> + >>> + # >>> + # PCI support >>> + # >>> + ArmPkg/Drivers/ArmPciCpuIo2Dxe/ArmPciCpuIo2Dxe.inf { >>> + >>> + >>> + NULL|ArmVirtPkg/Library/FdtPciPcdProducerLib/FdtPciPcdProducerLib.in >>> + f >>> + } >>> + MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf >>> + MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf { >>> + >>> + >>> + NULL|ArmVirtPkg/Library/FdtPciPcdProducerLib/FdtPciPcdProducerLib.in >>> + f >>> + } >>> + OvmfPkg/PciHotPlugInitDxe/PciHotPlugInit.inf >>> + OvmfPkg/VirtioPciDeviceDxe/VirtioPciDeviceDxe.inf >>> + OvmfPkg/Virtio10Dxe/Virtio10.inf >>> + >>> + # >>> + # TPM2 support >>> + # >>> +!if $(TPM2_ENABLE) == TRUE >>> + SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.inf { >>> + >>> + >> HashLib|SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoR >> outerDxe.inf >>> + >> Tpm2DeviceLib|SecurityPkg/Library/Tpm2DeviceLibRouter/Tpm2DeviceLibR >> outerDxe.inf >>> + >> NULL|SecurityPkg/Library/Tpm2DeviceLibDTpm/Tpm2InstanceLibDTpm.inf >>> + >> NULL|SecurityPkg/Library/HashInstanceLibSha1/HashInstanceLibSha1.inf >>> + >> NULL|SecurityPkg/Library/HashInstanceLibSha256/HashInstanceLibSha256.in >> f >>> + >> NULL|SecurityPkg/Library/HashInstanceLibSha384/HashInstanceLibSha384.in >> f >>> + >> NULL|SecurityPkg/Library/HashInstanceLibSha512/HashInstanceLibSha512.in >> f >>> + >>> +NULL|SecurityPkg/Library/HashInstanceLibSm3/HashInstanceLibSm3.inf >>> + } >>> +!if $(TPM2_CONFIG_ENABLE) == TRUE >>> + SecurityPkg/Tcg/Tcg2Config/Tcg2ConfigDxe.inf >>> +!endif >>> +!endif >>> + >>> + # >>> + # ACPI Support >>> + # >>> + ArmVirtPkg/CloudHvPlatformHasAcpiDtDxe/CloudHvHasAcpiDtDxe.inf >>> +[Components.AARCH64] >>> + >>> >> +MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGrap >> hics >>> +ResourceTableDxe.inf >>> + ArmVirtPkg/CloudHvAcpiPlatformDxe/CloudHvAcpiPlatformDxe.inf { >>> + >>> + >>> >> +NULL|ArmVirtPkg/Library/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf >>> + } >>> diff --git a/ArmVirtPkg/ArmVirtCloudHv.fdf >>> b/ArmVirtPkg/ArmVirtCloudHv.fdf new file mode 100644 index >>> 000000000000..3619a09ba8c5 >>> --- /dev/null >>> +++ b/ArmVirtPkg/ArmVirtCloudHv.fdf >>> @@ -0,0 +1,292 @@ >>> +# >>> +# Copyright (c) 2011-2015, ARM Limited. All rights reserved. >>> +# Copyright (c) 2014, Linaro Limited. All rights reserved. >>> +# Copyright (c) 2015 - 2016, Intel Corporation. All rights reserved. >>> +# >>> +# SPDX-License-Identifier: BSD-2-Clause-Patent # >>> + >>> >> +######################################################### >> ############ >>> +########### >>> +# >>> +# FD Section >>> +# The [FD] Section is made up of the definition statements and a # >>> +description of what goes into the Flash Device Image. Each FD >>> +section # defines one flash "device" image. A flash device image may >>> +be one of # the following: Removable media bootable image (like a >>> +boot floppy # image,) an Option ROM image (that would be "flashed" >>> +into an add-in # card,) a System "Flash" image (that would be burned >>> +into a system's # flash) or an Update ("Capsule") image that will be >>> +used to update and # existing system flash. >>> +# >>> >> +######################################################### >> ############ >>> +########### >>> + >>> +[Defines] >>> +!if $(FD_SIZE_IN_MB) == 2 >>> + DEFINE FVMAIN_COMPACT_SIZE = 0x1ff000 !endif !if $(FD_SIZE_IN_MB) >>> +== 3 >>> + DEFINE FVMAIN_COMPACT_SIZE = 0x2ff000 !endif >>> + >>> +[FD.CLOUDHV_EFI] >>> +BaseAddress = 0x00000000|gArmTokenSpaceGuid.PcdFdBaseAddress # >> cloud-hypervisor assigns 0 - 0x8000000 for a BootROM >>> +Size = $(FD_SIZE)|gArmTokenSpaceGuid.PcdFdSize # The size in >> bytes of the FLASH Device >>> +ErasePolarity = 1 >>> + >>> +# This one is tricky, it must be: BlockSize * NumBlocks = Size >>> +BlockSize = 0x00001000 >>> +NumBlocks = $(FD_NUM_BLOCKS) >>> + >>> >> +######################################################### >> ############ >>> +########### >>> +# >>> +# Following are lists of FD Region layout which correspond to the >>> +locations of different # images within the flash device. >>> +# >>> +# Regions must be defined in ascending order and may not overlap. >>> +# >>> +# A Layout Region start with a eight digit hex offset (leading "0x" >>> +required) followed by # the pipe "|" character, followed by the size >>> +of the region, also in hex with the leading # "0x" characters. Like: >>> +# Offset|Size >>> +# PcdOffsetCName|PcdSizeCName >>> +# RegionType >>> +# >>> >> +######################################################### >> ############ >>> +########### >>> + >>> +# >>> +# UEFI has trouble dealing with FVs that reside at physical address 0x0. >>> +# So instead, put a hardcoded 'jump to 0x1000' at offset 0x0, and put >>> +the # real FV at offset 0x1000 # >>> +0x00000000|0x00001000 >>> +DATA = { >>> +!if $(ARCH) == AARCH64 >>> + 0x00, 0x04, 0x00, 0x14 # 'b 0x1000' in AArch64 ASM >>> +!else >>> + 0xfe, 0x03, 0x00, 0xea # 'b 0x1000' in AArch32 ASM >>> +!endif >>> +} >>> + >>> +0x00001000|$(FVMAIN_COMPACT_SIZE) >>> >> +gArmTokenSpaceGuid.PcdFvBaseAddress|gArmTokenSpaceGuid.PcdFvSize >>> +FV = FVMAIN_COMPACT >>> + >>> +!include VarStore.fdf.inc >>> + >>> >> +######################################################### >> ############ >>> +########### >>> +# >>> +# FV Section >>> +# >>> +# [FV] section is used to define what components or modules are >>> +placed within a flash # device file. This section also defines order >>> +the components and modules are positioned # within the image. The >>> +[FV] section consists of define statements, set statements and # module >> statements. >>> +# >>> >> +######################################################### >> ############ >>> +########### >>> + >>> +#!include ArmVirtCloudHvFvMain.fdf.inc >>> + >>> + >>> + >>> +[FV.FvMain] >>> +FvNameGuid = 2A88A00E-E267-C8BF-0E80-AE1BD504ED90 >>> +BlockSize = 0x40 >>> +NumBlocks = 0 # This FV gets compressed so make it just big >> enough >>> +FvAlignment = 16 # FV alignment and FV attributes setting. >>> +ERASE_POLARITY = 1 >>> +MEMORY_MAPPED = TRUE >>> +STICKY_WRITE = TRUE >>> +LOCK_CAP = TRUE >>> +LOCK_STATUS = TRUE >>> +WRITE_DISABLED_CAP = TRUE >>> +WRITE_ENABLED_CAP = TRUE >>> +WRITE_STATUS = TRUE >>> +WRITE_LOCK_CAP = TRUE >>> +WRITE_LOCK_STATUS = TRUE >>> +READ_DISABLED_CAP = TRUE >>> +READ_ENABLED_CAP = TRUE >>> +READ_STATUS = TRUE >>> +READ_LOCK_CAP = TRUE >>> +READ_LOCK_STATUS = TRUE >>> + >>> + INF MdeModulePkg/Core/Dxe/DxeMain.inf INF >>> + MdeModulePkg/Universal/PCD/Dxe/Pcd.inf >>> + INF ArmVirtPkg/VirtioFdtDxe/VirtioFdtDxe.inf >>> + INF ArmVirtPkg/FdtClientDxe/FdtClientDxe.inf >>> + INF ArmVirtPkg/HighMemDxe/HighMemDxe.inf >>> + >>> + # >>> + # PI DXE Drivers producing Architectural Protocols (EFI Services) >>> + # >>> + INF ArmPkg/Drivers/CpuDxe/CpuDxe.inf >>> + INF MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf >>> + INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf >>> + INF >> MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf >>> + INF >>> >> +MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.i >> n >>> +f >>> + INF >>> >> +MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf >>> +!if $(SECURE_BOOT_ENABLE) == TRUE >>> + INF >>> >> +SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConf >> i >>> +gDxe.inf >>> +!endif >>> + INF >>> >> +MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCou >> nterRun >>> +timeDxe.inf >>> + INF >>> >> +MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntime >> Dxe.in >>> +f >>> + INF >> EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf >>> + INF EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf >>> + INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf >>> + >>> + # >>> + # Multiple Console IO support >>> + # >>> + INF >>> + >> MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf >>> + INF >>> + MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf >>> + INF >>> + >> MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleD >> xe >>> + .inf INF >> MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf >>> + INF MdeModulePkg/Universal/SerialDxe/SerialDxe.inf >>> + >>> + INF ArmPkg/Drivers/ArmGic/ArmGicDxe.inf >>> + INF ArmPkg/Drivers/TimerDxe/TimerDxe.inf >>> + INF MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf >>> + >>> + # >>> + # FAT filesystem + GPT/MBR partitioning + UDF filesystem + >>> + virtio-fs # INF >>> + MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf >>> + INF MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf >>> + INF FatPkg/EnhancedFatDxe/Fat.inf >>> + INF >>> + >> MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.i >>> + nf INF MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf >>> + INF OvmfPkg/VirtioFsDxe/VirtioFsDxe.inf >>> + >>> + # >>> + # Status Code Routing >>> + # >>> + INF >>> + >> MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportSt >> atu >>> + sCodeRouterRuntimeDxe.inf >>> + >>> + # >>> + # Platform Driver >>> + # >>> + INF OvmfPkg/VirtioBlkDxe/VirtioBlk.inf >>> + INF OvmfPkg/VirtioNetDxe/VirtioNet.inf >>> + INF OvmfPkg/VirtioScsiDxe/VirtioScsi.inf >>> + INF OvmfPkg/VirtioRngDxe/VirtioRng.inf >>> + >>> + # >>> + # UEFI application (Shell Embedded Boot Loader) # INF >>> + ShellPkg/Application/Shell/Shell.inf >>> + INF >>> + >> ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand. >> inf >>> + INF >>> + >> ShellPkg/DynamicCommand/HttpDynamicCommand/HttpDynamicCommand >> .inf >>> + INF >>> + >> OvmfPkg/LinuxInitrdDynamicShellCommand/LinuxInitrdDynamicShellComma >> n >>> + d.inf >>> + >>> + # >>> + # Bds >>> + # >>> + INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf >>> + INF MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf >>> + INF MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf >>> + INF >>> + >> MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManager >> Dxe >>> + .inf INF MdeModulePkg/Universal/BdsDxe/BdsDxe.inf >>> + INF MdeModulePkg/Application/UiApp/UiApp.inf >>> + INF OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.inf >> [SAMI] Qemu-FwCfg dependency? Also check at other places in the fdf and >> fdf.inc file. > Yeah, it's a tough work for me. > >>> + >>> + # >>> + # SCSI Bus and Disk Driver >>> + # >>> + INF MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf >>> + INF MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf >>> + >>> + # >>> + # ACPI Support >>> + # >>> + INF >> ArmVirtPkg/CloudHvPlatformHasAcpiDtDxe/CloudHvHasAcpiDtDxe.inf >>> +!if $(ARCH) == AARCH64 >>> + INF MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf >>> + INF >>> >> +MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGrap >> hics >>> +ResourceTableDxe.inf >>> + INF ArmVirtPkg/CloudHvAcpiPlatformDxe/CloudHvAcpiPlatformDxe.inf >>> + >>> + # >>> + # EBC support >>> + # >>> + INF MdeModulePkg/Universal/EbcDxe/EbcDxe.inf >>> +!endif >>> + >>> + # >>> + # PCI support >>> + # >>> + INF ArmPkg/Drivers/ArmPciCpuIo2Dxe/ArmPciCpuIo2Dxe.inf >>> + INF MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf >>> + INF MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf >>> + INF OvmfPkg/PciHotPlugInitDxe/PciHotPlugInit.inf >>> + INF OvmfPkg/VirtioPciDeviceDxe/VirtioPciDeviceDxe.inf >>> + INF OvmfPkg/Virtio10Dxe/Virtio10.inf >>> + >>> + # >>> + # TPM2 support >>> + # >>> +!if $(TPM2_ENABLE) == TRUE >>> + INF SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.inf >>> +!if $(TPM2_CONFIG_ENABLE) == TRUE >>> + INF SecurityPkg/Tcg/Tcg2Config/Tcg2ConfigDxe.inf >>> +!endif >>> +!endif >>> + >>> + # >>> + # TianoCore logo (splash screen) >>> + # >>> + INF MdeModulePkg/Logo/LogoDxe.inf >>> + >>> + # >>> + # Ramdisk support >>> + # >>> + INF MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskDxe.inf >>> + >>> + >>> + >>> + >>> + >>> + >>> + >>> + >>> + >>> + >>> + >>> + >> [SAMI] Remove empty lines. > Oh, it's my bad. > > Thanks > Jianyong > >>> +[FV.FVMAIN_COMPACT] >>> +FvAlignment = 16 >>> +ERASE_POLARITY = 1 >>> +MEMORY_MAPPED = TRUE >>> +STICKY_WRITE = TRUE >>> +LOCK_CAP = TRUE >>> +LOCK_STATUS = TRUE >>> +WRITE_DISABLED_CAP = TRUE >>> +WRITE_ENABLED_CAP = TRUE >>> +WRITE_STATUS = TRUE >>> +WRITE_LOCK_CAP = TRUE >>> +WRITE_LOCK_STATUS = TRUE >>> +READ_DISABLED_CAP = TRUE >>> +READ_ENABLED_CAP = TRUE >>> +READ_STATUS = TRUE >>> +READ_LOCK_CAP = TRUE >>> +READ_LOCK_STATUS = TRUE >>> + >>> + INF ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf >>> + INF MdeModulePkg/Core/Pei/PeiMain.inf INF >>> + ArmPlatformPkg/PlatformPei/PlatformPeim.inf >>> + INF ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.inf >>> + INF ArmPkg/Drivers/CpuPei/CpuPei.inf INF >>> + MdeModulePkg/Universal/PCD/Pei/Pcd.inf >>> + INF MdeModulePkg/Universal/Variable/Pei/VariablePei.inf >>> + INF MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf >>> + >>> +!if $(TPM2_ENABLE) == TRUE >>> + INF MdeModulePkg/Universal/ResetSystemPei/ResetSystemPei.inf >>> + INF OvmfPkg/Tcg/Tcg2Config/Tcg2ConfigPei.inf >>> + INF SecurityPkg/Tcg/Tcg2Pei/Tcg2Pei.inf >>> +!endif >>> + >>> + FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 { >>> + SECTION GUIDED EE4E5898-3914-4259-9D6E-DC7BD79403CF >> PROCESSING_REQUIRED = TRUE { >>> + SECTION FV_IMAGE = FVMAIN >>> + } >>> + } >>> + >>> +!include ArmVirtRules.fdf.inc >>> diff --git a/ArmVirtPkg/ArmVirtCloudHvFvMain.fdf.inc >>> b/ArmVirtPkg/ArmVirtCloudHvFvMain.fdf.inc >>> new file mode 100644 >>> index 000000000000..51041e889ef4 >>> --- /dev/null >>> +++ b/ArmVirtPkg/ArmVirtCloudHvFvMain.fdf.inc >>> @@ -0,0 +1,169 @@ >>> +# >>> +# Copyright (c) 2011-2015, ARM Limited. All rights reserved. >>> +# Copyright (c) 2014-2016, Linaro Limited. All rights reserved. >>> +# Copyright (c) 2015 - 2017, Intel Corporation. All rights reserved. >>> +# >>> +# SPDX-License-Identifier: BSD-2-Clause-Patent # >>> + >>> >> +######################################################### >> ############ >>> +########### >>> +# >>> +# FV Section >>> +# >>> +# [FV] section is used to define what components or modules are >>> +placed within a flash # device file. This section also defines order >>> +the components and modules are positioned # within the image. The >>> +[FV] section consists of define statements, set statements and # module >> statements. >>> +# >>> >> +######################################################### >> ############ >>> +########### >>> + >>> +[FV.FvMain] >>> +FvNameGuid = 2A88A00E-E267-C8BF-0E80-AE1BD504ED90 >>> +BlockSize = 0x40 >>> +NumBlocks = 0 # This FV gets compressed so make it just big >> enough >>> +FvAlignment = 16 # FV alignment and FV attributes setting. >>> +ERASE_POLARITY = 1 >>> +MEMORY_MAPPED = TRUE >>> +STICKY_WRITE = TRUE >>> +LOCK_CAP = TRUE >>> +LOCK_STATUS = TRUE >>> +WRITE_DISABLED_CAP = TRUE >>> +WRITE_ENABLED_CAP = TRUE >>> +WRITE_STATUS = TRUE >>> +WRITE_LOCK_CAP = TRUE >>> +WRITE_LOCK_STATUS = TRUE >>> +READ_DISABLED_CAP = TRUE >>> +READ_ENABLED_CAP = TRUE >>> +READ_STATUS = TRUE >>> +READ_LOCK_CAP = TRUE >>> +READ_LOCK_STATUS = TRUE >>> + >>> + INF MdeModulePkg/Core/Dxe/DxeMain.inf INF >>> + MdeModulePkg/Universal/PCD/Dxe/Pcd.inf >>> + INF ArmVirtPkg/VirtioFdtDxe/VirtioFdtDxe.inf >>> + INF ArmVirtPkg/FdtClientDxe/FdtClientDxe.inf >>> + INF ArmVirtPkg/HighMemDxe/HighMemDxe.inf >>> + >>> + # >>> + # PI DXE Drivers producing Architectural Protocols (EFI Services) >>> + # >>> + INF ArmPkg/Drivers/CpuDxe/CpuDxe.inf >>> + INF MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf >>> + INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf >>> + INF >> MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf >>> + INF >>> >> +MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.i >> n >>> +f >>> + INF >>> >> +MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf >>> +!if $(SECURE_BOOT_ENABLE) == TRUE >>> + INF >>> >> +SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConf >> i >>> +gDxe.inf >>> +!endif >>> + INF >>> >> +MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCou >> nterRun >>> +timeDxe.inf >>> + INF >>> >> +MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntime >> Dxe.in >>> +f >>> + INF >> EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf >>> + INF EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf >>> + INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf >>> + >>> + # >>> + # Multiple Console IO support >>> + # >>> + INF >>> + >> MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf >>> + INF >>> + MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf >>> + INF >>> + >> MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleD >> xe >>> + .inf INF >> MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf >>> + INF MdeModulePkg/Universal/SerialDxe/SerialDxe.inf >>> + >>> + INF ArmPkg/Drivers/ArmGic/ArmGicDxe.inf >>> + INF ArmPkg/Drivers/TimerDxe/TimerDxe.inf >>> + INF MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf >>> + >>> + # >>> + # FAT filesystem + GPT/MBR partitioning + UDF filesystem + >>> + virtio-fs # INF >>> + MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf >>> + INF MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf >>> + INF FatPkg/EnhancedFatDxe/Fat.inf >>> + INF >>> + >> MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.i >>> + nf INF MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf >>> + INF OvmfPkg/VirtioFsDxe/VirtioFsDxe.inf >>> + >>> + # >>> + # Status Code Routing >>> + # >>> + INF >>> + >> MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportSt >> atu >>> + sCodeRouterRuntimeDxe.inf >>> + >>> + # >>> + # Platform Driver >>> + # >>> + INF OvmfPkg/VirtioBlkDxe/VirtioBlk.inf >>> + INF OvmfPkg/VirtioNetDxe/VirtioNet.inf >>> + INF OvmfPkg/VirtioScsiDxe/VirtioScsi.inf >>> + INF OvmfPkg/VirtioRngDxe/VirtioRng.inf >>> + >>> + # >>> + # UEFI application (Shell Embedded Boot Loader) # INF >>> + ShellPkg/Application/Shell/Shell.inf >>> + INF >>> + >> ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand. >> inf >>> + INF >>> + >> ShellPkg/DynamicCommand/HttpDynamicCommand/HttpDynamicCommand >> .inf >>> + INF >>> + >> OvmfPkg/LinuxInitrdDynamicShellCommand/LinuxInitrdDynamicShellComma >> n >>> + d.inf >>> + >>> + # >>> + # Bds >>> + # >>> + INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf >>> + INF MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf >>> + INF MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf >>> + INF >>> + >> MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManager >> Dxe >>> + .inf INF MdeModulePkg/Universal/BdsDxe/BdsDxe.inf >>> + INF MdeModulePkg/Application/UiApp/UiApp.inf >>> + INF OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.inf >>> + >>> + # >>> + # SCSI Bus and Disk Driver >>> + # >>> + INF MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf >>> + INF MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf >>> + >>> + # >>> + # ACPI Support >>> + # >>> + INF >> ArmVirtPkg/CloudHvPlatformHasAcpiDtDxe/CloudHvHasAcpiDtDxe.inf >>> +!if $(ARCH) == AARCH64 >>> + INF MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf >>> + INF >>> >> +MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGrap >> hics >>> +ResourceTableDxe.inf >>> + INF ArmVirtPkg/CloudHvAcpiPlatformDxe/CloudHvAcpiPlatformDxe.inf >>> + >>> + # >>> + # EBC support >>> + # >>> + INF MdeModulePkg/Universal/EbcDxe/EbcDxe.inf >>> +!endif >>> + >>> + # >>> + # PCI support >>> + # >>> + INF ArmPkg/Drivers/ArmPciCpuIo2Dxe/ArmPciCpuIo2Dxe.inf >>> + INF MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf >>> + INF MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf >>> + INF OvmfPkg/PciHotPlugInitDxe/PciHotPlugInit.inf >>> + INF OvmfPkg/VirtioPciDeviceDxe/VirtioPciDeviceDxe.inf >>> + INF OvmfPkg/Virtio10Dxe/Virtio10.inf >>> + >>> + # >>> + # TPM2 support >>> + # >>> +!if $(TPM2_ENABLE) == TRUE >>> + INF SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.inf >>> +!if $(TPM2_CONFIG_ENABLE) == TRUE >>> + INF SecurityPkg/Tcg/Tcg2Config/Tcg2ConfigDxe.inf >>> +!endif >>> +!endif >>> + >>> + # >>> + # TianoCore logo (splash screen) >>> + # >>> + INF MdeModulePkg/Logo/LogoDxe.inf >>> + >>> + # >>> + # Ramdisk support >>> + # >>> + INF MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskDxe.inf --------------315F7193C12958CD56375E0E Content-Type: text/plain; charset=UTF-8; name="0001-ArmVirtPkg-Add-PCI-host-bridge-utility-lib-for-Kvmto.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0001-ArmVirtPkg-Add-PCI-host-bridge-utility-lib-for-Kvmto.pa"; filename*1="tch" RnJvbSBjYzMzMjE3YWU3ODNiYTg4YWI2NDY3Mjc3NGQ5MGE5OThjZDVjZWE0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTYW1pIE11amF3YXIgPHNhbWkubXVqYXdhckBhcm0uY29tPgpE YXRlOiBUdWUsIDIwIEFwciAyMDIxIDEzOjU5OjA2ICswMTAwClN1YmplY3Q6IFtQQVRDSCAxLzFd IEFybVZpcnRQa2c6IEFkZCBQQ0kgaG9zdCBicmlkZ2UgdXRpbGl0eSBsaWIgZm9yIEt2bXRvb2wK ClRoZSBQQ0kgaG9zdCBicmlkZ2UgdXRpbGl0eSBsaWIgaXMgdXNlZCB0byByZXRyaWV2ZSBpbmZv cm1hdGlvbgphYm91dCB0aGUgUm9vdCBCcmlkZ2VzIGluIGEgcGxhdGZvcm0uClRoZXJlZm9yZSwg YWRkIGFuIGluc3RhbmNlIG9mIFBjaUhvc3RCcmlkZ2VVdGlsaXR5TGliIGFzIHRoaXMgaXMKcmVx dWlyZWQgdG8gZW5hYmxlIFBDSSBzdXBwb3J0IGZvciBLdm10b29sIGZpcm13YXJlLgoKU2lnbmVk LW9mZi1ieTogU2FtaSBNdWphd2FyIDxzYW1pLm11amF3YXJAYXJtLmNvbT4KLS0tCiAuLi4vS3Zt dG9vbFBjaUhvc3RCcmlkZ2VVdGlsaXR5TGliLmMgICAgICAgICAgICAgICB8IDIyMCArKysrKysr KysrKysrKysrKysrKysKIC4uLi9Ldm10b29sUGNpSG9zdEJyaWRnZVV0aWxpdHlMaWIuaW5mICAg ICAgICAgICAgIHwgIDM5ICsrKysKIDIgZmlsZXMgY2hhbmdlZCwgMjU5IGluc2VydGlvbnMoKykK IGNyZWF0ZSBtb2RlIDEwMDY0NCBBcm1WaXJ0UGtnL0xpYnJhcnkvS3ZtdG9vbFBjaUhvc3RCcmlk Z2VVdGlsaXR5TGliL0t2bXRvb2xQY2lIb3N0QnJpZGdlVXRpbGl0eUxpYi5jCiBjcmVhdGUgbW9k ZSAxMDA2NDQgQXJtVmlydFBrZy9MaWJyYXJ5L0t2bXRvb2xQY2lIb3N0QnJpZGdlVXRpbGl0eUxp Yi9Ldm10b29sUGNpSG9zdEJyaWRnZVV0aWxpdHlMaWIuaW5mCgpkaWZmIC0tZ2l0IGEvQXJtVmly dFBrZy9MaWJyYXJ5L0t2bXRvb2xQY2lIb3N0QnJpZGdlVXRpbGl0eUxpYi9Ldm10b29sUGNpSG9z dEJyaWRnZVV0aWxpdHlMaWIuYyBiL0FybVZpcnRQa2cvTGlicmFyeS9Ldm10b29sUGNpSG9zdEJy aWRnZVV0aWxpdHlMaWIvS3ZtdG9vbFBjaUhvc3RCcmlkZ2VVdGlsaXR5TGliLmMKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5lZTNhZjA3MzQwZmMKLS0tIC9kZXYvbnVs bAorKysgYi9Bcm1WaXJ0UGtnL0xpYnJhcnkvS3ZtdG9vbFBjaUhvc3RCcmlkZ2VVdGlsaXR5TGli L0t2bXRvb2xQY2lIb3N0QnJpZGdlVXRpbGl0eUxpYi5jCkBAIC0wLDAgKzEsMjIwIEBACisvKiog QGZpbGUNCisgIFBDSSBIb3N0IEJyaWRnZSB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgS3ZtdG9vbC4N CisNCisgIENvcHlyaWdodCAoYykgMjAyMSwgQXJtIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2 ZWQuPEJSPg0KKw0KKyAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRl bnQNCisNCisqKi8NCisNCisjaW5jbHVkZSA8SW5kdXN0cnlTdGFuZGFyZC9BY3BpMTAuaD4NCisj aW5jbHVkZSA8SW5kdXN0cnlTdGFuZGFyZC9QY2kuaD4NCisjaW5jbHVkZSA8TGlicmFyeS9CYXNl TWVtb3J5TGliLmg+DQorI2luY2x1ZGUgPExpYnJhcnkvRGVidWdMaWIuaD4NCisjaW5jbHVkZSA8 TGlicmFyeS9EZXZpY2VQYXRoTGliLmg+DQorI2luY2x1ZGUgPExpYnJhcnkvTWVtb3J5QWxsb2Nh dGlvbkxpYi5oPg0KKyNpbmNsdWRlIDxMaWJyYXJ5L1BjaUhvc3RCcmlkZ2VMaWIuaD4NCisjaW5j bHVkZSA8TGlicmFyeS9QY2lIb3N0QnJpZGdlVXRpbGl0eUxpYi5oPg0KKyNpbmNsdWRlIDxMaWJy YXJ5L1BjaUxpYi5oPg0KKw0KKyNwcmFnbWEgcGFjaygxKQ0KKw0KKy8qKiBBIHN0cnVjdHVyZSBk ZXNjcmliaW5nIHRoZSBBQ1BJIGFuZCBFRkkgZGV2aWNlIHBhdGggZm9yDQorICAgIHRoZSBQQ0kg Um9vdCBCcmlkZ2UgZGV2aWNlLg0KKyoqLw0KK3R5cGVkZWYgc3RydWN0IHsNCisgIEFDUElfSElE X0RFVklDRV9QQVRIICAgICBBY3BpRGV2aWNlUGF0aDsNCisgIEVGSV9ERVZJQ0VfUEFUSF9QUk9U T0NPTCBFbmREZXZpY2VQYXRoOw0KK30gRUZJX1BDSV9ST09UX0JSSURHRV9ERVZJQ0VfUEFUSDsN CisNCisjcHJhZ21hIHBhY2sgKCkNCisNCisvKiogQW4gYXJyYXkgb2Ygc3RyaW5ncyBkZXNjcmli aW5nIHRoZSBBQ1BJIGFkZHJlc3Mgc3BhY2UgdHlwZS4NCisqKi8NCitHTE9CQUxfUkVNT1ZFX0lG X1VOUkVGRVJFTkNFRA0KK1NUQVRJQyBDT05TVCBDSEFSMTYgKm1QY2lIb3N0QnJpZGdlQWNwaUFk ZHJlc3NTcGFjZVR5cGVTdHJbXSA9IHsNCisgIEwiTWVtIiwNCisgIEwiSS9PIiwNCisgIEwiQnVz Ig0KK307DQorDQorU1RBVElDIENPTlNUIEVGSV9QQ0lfUk9PVF9CUklER0VfREVWSUNFX1BBVEgg bUVmaVBjaVJvb3RCcmlkZ2VEZXZpY2VQYXRoID0gew0KKyAgew0KKyAgICAvLyBBQ1BJIGRldmlj ZSBwYXRoLg0KKyAgICB7DQorICAgICAgQUNQSV9ERVZJQ0VfUEFUSCwNCisgICAgICBBQ1BJX0RQ LA0KKyAgICAgIHsNCisgICAgICAgIChVSU5UOCkgKHNpemVvZiAoQUNQSV9ISURfREVWSUNFX1BB VEgpKSwNCisgICAgICAgIChVSU5UOCkgKChzaXplb2YgKEFDUElfSElEX0RFVklDRV9QQVRIKSkg Pj4gOCkNCisgICAgICB9DQorICAgIH0sDQorICAgIEVJU0FfUE5QX0lEICgweDBBMDMpLCAvLyBI SUQNCisgICAgMCAgICAgICAgICAgICAgICAgICAgIC8vIFVJRA0KKyAgfSwNCisNCisgIC8vIEVu ZCBkZXZpY2UgcGF0aC4NCisgIHsNCisgICAgRU5EX0RFVklDRV9QQVRIX1RZUEUsDQorICAgIEVO RF9FTlRJUkVfREVWSUNFX1BBVEhfU1VCVFlQRSwNCisgICAgew0KKyAgICAgIEVORF9ERVZJQ0Vf UEFUSF9MRU5HVEgsDQorICAgICAgMA0KKyAgICB9DQorICB9DQorfTsNCisNCitTVEFUSUMgUENJ X1JPT1RfQlJJREdFIG1Sb290QnJpZGdlOw0KKw0KKy8qKg0KKyAgVXRpbGl0eSBmdW5jdGlvbiB0 byByZXR1cm4gYWxsIHRoZSByb290IGJyaWRnZSBpbnN0YW5jZXMgaW4gYW4gYXJyYXkuDQorDQor ICBAcGFyYW0gW291dF0gQ291bnQgICAgICAgICAgICAgICAgICBUaGUgbnVtYmVyIG9mIHJvb3Qg YnJpZGdlIGluc3RhbmNlcy4NCisgIEBwYXJhbSBbaW5dICBBdHRyaWJ1dGVzICAgICAgICAgICAg IEluaXRpYWwgYXR0cmlidXRlcy4NCisgIEBwYXJhbSBbaW5dICBBbGxvY0F0dHJpYnV0ZXMgICAg ICAgIEFsbG9jYXRpb24gYXR0cmlidXRlcy4NCisgIEBwYXJhbSBbaW5dICBEbWFBYm92ZTRHICAg ICAgICAgICAgIERNQSBhYm92ZSA0R0IgbWVtb3J5Lg0KKyAgQHBhcmFtIFtpbl0gIE5vRXh0ZW5k ZWRDb25maWdTcGFjZSAgTm8gRXh0ZW5kZWQgQ29uZmlnIFNwYWNlLg0KKyAgQHBhcmFtIFtpbl0g IEJ1c01pbiAgICAgICAgICAgICAgICAgTWluaW11bSBCdXMgbnVtYmVyLCBpbmNsdXNpdmUuDQor ICBAcGFyYW0gW2luXSAgQnVzTWF4ICAgICAgICAgICAgICAgICBNYXhpbXVtIEJ1cyBudW1iZXIs IGluY2x1c2l2ZS4NCisgIEBwYXJhbSBbaW5dICBJbyAgICAgICAgICAgICAgICAgICAgIElPIGFw ZXJ0dXJlLg0KKyAgQHBhcmFtIFtpbl0gIE1lbSAgICAgICAgICAgICAgICAgICAgTU1JTyBhcGVy dHVyZS4NCisgIEBwYXJhbSBbaW5dICBNZW1BYm92ZTRHICAgICAgICAgICAgIE1NSU8gYXBlcnR1 cmUgYWJvdmUgNEcuDQorICBAcGFyYW0gW2luXSAgUE1lbSAgICAgICAgICAgICAgICAgICBQcmVm ZXRjaGFibGUgTU1JTyBhcGVydHVyZS4NCisgIEBwYXJhbSBbaW5dICBQTWVtQWJvdmU0RyAgICAg ICAgICAgIFByZWZldGNoYWJsZSBNTUlPIGFwZXJ0dXJlIGFib3ZlIDRHLg0KKw0KKyAgQHJldHVy biAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbGwgdGhlIHJvb3QgYnJpZGdlIGluc3RhbmNl cyBpbiBhbiBhcnJheS4NCisqKi8NCitQQ0lfUk9PVF9CUklER0UgKg0KK0VGSUFQSQ0KK1BjaUhv c3RCcmlkZ2VVdGlsaXR5R2V0Um9vdEJyaWRnZXMgKA0KKyAgT1VUIFVJTlROICAgICAgICAgICAg ICAgICAgICAqQ291bnQsDQorICBJTiAgVUlOVDY0ICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0 ZXMsDQorICBJTiAgVUlOVDY0ICAgICAgICAgICAgICAgICAgIEFsbG9jYXRpb25BdHRyaWJ1dGVz LA0KKyAgSU4gIEJPT0xFQU4gICAgICAgICAgICAgICAgICBEbWFBYm92ZTRHLA0KKyAgSU4gIEJP T0xFQU4gICAgICAgICAgICAgICAgICBOb0V4dGVuZGVkQ29uZmlnU3BhY2UsDQorICBJTiAgVUlO VE4gICAgICAgICAgICAgICAgICAgIEJ1c01pbiwNCisgIElOICBVSU5UTiAgICAgICAgICAgICAg ICAgICAgQnVzTWF4LA0KKyAgSU4gIFBDSV9ST09UX0JSSURHRV9BUEVSVFVSRSAqSW8sDQorICBJ TiAgUENJX1JPT1RfQlJJREdFX0FQRVJUVVJFICpNZW0sDQorICBJTiAgUENJX1JPT1RfQlJJREdF X0FQRVJUVVJFICpNZW1BYm92ZTRHLA0KKyAgSU4gIFBDSV9ST09UX0JSSURHRV9BUEVSVFVSRSAq UE1lbSwNCisgIElOICBQQ0lfUk9PVF9CUklER0VfQVBFUlRVUkUgKlBNZW1BYm92ZTRHDQorICAp DQorew0KKyAgaWYgKChDb3VudCA9PSBOVUxMKSAgICAgICB8fA0KKyAgICAgIChJbyA9PSBOVUxM KSAgICAgICAgICB8fA0KKyAgICAgIChNZW0gPT0gTlVMTCkgICAgICAgICB8fA0KKyAgICAgIChN ZW1BYm92ZTRHID09IE5VTEwpICB8fA0KKyAgICAgIChQTWVtID09IE5VTEwpICAgICAgICB8fA0K KyAgICAgIChQTWVtQWJvdmU0RyA9PSBOVUxMKSkgew0KKyAgICByZXR1cm4gTlVMTDsNCisgIH0N CisNCisgICpDb3VudCA9IDE7DQorDQorICBtUm9vdEJyaWRnZS5TZWdtZW50ICAgICAgICAgICAg ICAgPSAwOw0KKyAgbVJvb3RCcmlkZ2UuU3VwcG9ydHMgICAgICAgICAgICAgID0gQXR0cmlidXRl czsNCisgIG1Sb290QnJpZGdlLkF0dHJpYnV0ZXMgICAgICAgICAgICA9IEF0dHJpYnV0ZXM7DQor DQorICBtUm9vdEJyaWRnZS5EbWFBYm92ZTRHICAgICAgICAgICAgPSBEbWFBYm92ZTRHOw0KKyAg bVJvb3RCcmlkZ2UuTm9FeHRlbmRlZENvbmZpZ1NwYWNlID0gTm9FeHRlbmRlZENvbmZpZ1NwYWNl Ow0KKyAgbVJvb3RCcmlkZ2UuUmVzb3VyY2VBc3NpZ25lZCAgICAgID0gRkFMU0U7DQorDQorICBt Um9vdEJyaWRnZS5BbGxvY2F0aW9uQXR0cmlidXRlcyAgPSBBbGxvY2F0aW9uQXR0cmlidXRlczsN CisNCisgIG1Sb290QnJpZGdlLkJ1cy5CYXNlICAgICAgICAgICAgICA9IEJ1c01pbjsNCisgIG1S b290QnJpZGdlLkJ1cy5MaW1pdCAgICAgICAgICAgICA9IEJ1c01heDsNCisgIG1Sb290QnJpZGdl LklvLkJhc2UgICAgICAgICAgICAgICA9IElvLT5CYXNlOw0KKyAgbVJvb3RCcmlkZ2UuSW8uTGlt aXQgICAgICAgICAgICAgID0gSW8tPkxpbWl0Ow0KKyAgbVJvb3RCcmlkZ2UuTWVtLkJhc2UgICAg ICAgICAgICAgID0gTWVtLT5CYXNlOw0KKyAgbVJvb3RCcmlkZ2UuTWVtLkxpbWl0ICAgICAgICAg ICAgID0gTWVtLT5MaW1pdDsNCisgIG1Sb290QnJpZGdlLk1lbUFib3ZlNEcuQmFzZSAgICAgICA9 IE1lbUFib3ZlNEctPkJhc2U7DQorICBtUm9vdEJyaWRnZS5NZW1BYm92ZTRHLkxpbWl0ICAgICAg PSBNZW1BYm92ZTRHLT5MaW1pdDsNCisgIG1Sb290QnJpZGdlLlBNZW0uQmFzZSAgICAgICAgICAg ICA9IFBNZW0tPkJhc2U7DQorICBtUm9vdEJyaWRnZS5QTWVtLkxpbWl0ICAgICAgICAgICAgPSBQ TWVtLT5MaW1pdDsNCisgIG1Sb290QnJpZGdlLlBNZW1BYm92ZTRHLkJhc2UgICAgICA9IFBNZW1B Ym92ZTRHLT5CYXNlOw0KKyAgbVJvb3RCcmlkZ2UuUE1lbUFib3ZlNEcuTGltaXQgICAgID0gUE1l bUFib3ZlNEctPkxpbWl0Ow0KKw0KKyAgbVJvb3RCcmlkZ2UuRGV2aWNlUGF0aCA9DQorICAgIChF RklfREVWSUNFX1BBVEhfUFJPVE9DT0wqKSZtRWZpUGNpUm9vdEJyaWRnZURldmljZVBhdGg7DQor DQorICByZXR1cm4gJm1Sb290QnJpZGdlOw0KK30NCisNCisvKioNCisgIFV0aWxpdHkgZnVuY3Rp b24gdG8gZnJlZSByb290IGJyaWRnZSBpbnN0YW5jZXMgYXJyYXkgZnJvbQ0KKyAgUGNpSG9zdEJy aWRnZVV0aWxpdHlHZXRSb290QnJpZGdlcygpLg0KKw0KKyAgQHBhcmFtW2luXSBCcmlkZ2VzICBU aGUgcm9vdCBicmlkZ2UgaW5zdGFuY2VzIGFycmF5Lg0KKyAgQHBhcmFtW2luXSBDb3VudCAgICBU aGUgY291bnQgb2YgdGhlIGFycmF5Lg0KKyoqLw0KK1ZPSUQNCitFRklBUEkNCitQY2lIb3N0QnJp ZGdlVXRpbGl0eUZyZWVSb290QnJpZGdlcyAoDQorICBJTiBQQ0lfUk9PVF9CUklER0UgKkJyaWRn ZXMsDQorICBJTiBVSU5UTiAgICAgICAgICAgQ291bnQNCisgICkNCit7DQorICAvLyBOb3RoaW5n IHRvIGRvIGhlcmUuDQorfQ0KKw0KKy8qKg0KKyAgVXRpbGl0eSBmdW5jdGlvbiB0byBpbmZvcm0g dGhlIHBsYXRmb3JtIHRoYXQgdGhlIHJlc291cmNlIGNvbmZsaWN0IGhhcHBlbnMuDQorDQorICBA cGFyYW1baW5dIENvbmZpZ3VyYXRpb24gIFBvaW50ZXIgdG8gUENJIEkvTyBhbmQgUENJIG1lbW9y eSByZXNvdXJjZQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdG9ycy4gVGhl IENvbmZpZ3VyYXRpb24gY29udGFpbnMgdGhlDQorICAgICAgICAgICAgICAgICAgICAgICAgICAg IHJlc291cmNlcyBmb3IgYWxsIHRoZSByb290IGJyaWRnZXMuIFRoZSByZXNvdXJjZQ0KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICBmb3IgZWFjaCByb290IGJyaWRnZSBpcyB0ZXJtaW5hdGVk IHdpdGggRU5EDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0b3IgYW5kIGFu IGFkZGl0aW9uYWwgRU5EIGlzIGFwcGVuZGVkDQorICAgICAgICAgICAgICAgICAgICAgICAgICAg IGluZGljYXRpbmcgdGhlIGVuZCBvZiB0aGUgZW50aXJlIHJlc291cmNlcy4gVGhlDQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlIGRlc2NyaXB0b3IgZmllbGQgdmFsdWVzIGZv bGxvdyB0aGUNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gaW4NCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgRUZJX1BDSV9IT1NUX0JSSURHRV9SRVNPVVJDRV9B TExPQ0FUSU9OX1BST1RPQ09MDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5TdWJtaXRS ZXNvdXJjZXMoKS4NCisqKi8NCitWT0lEDQorRUZJQVBJDQorUGNpSG9zdEJyaWRnZVV0aWxpdHlS ZXNvdXJjZUNvbmZsaWN0ICgNCisgIElOIFZPSUQgICpDb25maWd1cmF0aW9uDQorICApDQorew0K KyAgRUZJX0FDUElfQUREUkVTU19TUEFDRV9ERVNDUklQVE9SICpEZXNjcmlwdG9yOw0KKyAgVUlO VE4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJvb3RCcmlkZ2VJbmRleDsNCisgIERFQlVH ICgoREVCVUdfRVJST1IsICJQY2lIb3N0QnJpZGdlOiBSZXNvdXJjZSBjb25mbGljdCBoYXBwZW5z IVxuIikpOw0KKw0KKyAgUm9vdEJyaWRnZUluZGV4ID0gMDsNCisgIERlc2NyaXB0b3IgPSAoRUZJ X0FDUElfQUREUkVTU19TUEFDRV9ERVNDUklQVE9SKilDb25maWd1cmF0aW9uOw0KKyAgd2hpbGUg KERlc2NyaXB0b3ItPkRlc2MgPT0gQUNQSV9BRERSRVNTX1NQQUNFX0RFU0NSSVBUT1IpIHsNCisg ICAgREVCVUcgKChERUJVR19FUlJPUiwgIlJvb3RCcmlkZ2VbJWRdOlxuIiwgUm9vdEJyaWRnZUlu ZGV4KyspKTsNCisgICAgZm9yICg7IERlc2NyaXB0b3ItPkRlc2MgPT0gQUNQSV9BRERSRVNTX1NQ QUNFX0RFU0NSSVBUT1I7IERlc2NyaXB0b3IrKykgew0KKyAgICAgIEFTU0VSVCAoRGVzY3JpcHRv ci0+UmVzVHlwZSA8DQorICAgICAgICAgICAgICBBUlJBWV9TSVpFIChtUGNpSG9zdEJyaWRnZUFj cGlBZGRyZXNzU3BhY2VUeXBlU3RyKQ0KKyAgICAgICAgICAgICAgKTsNCisgICAgICBERUJVRyAo KA0KKyAgICAgICAgREVCVUdfRVJST1IsDQorICAgICAgICAiICVzOiBMZW5ndGgvQWxpZ25tZW50 ID0gMHglbHggLyAweCVseFxuIiwNCisgICAgICAgIG1QY2lIb3N0QnJpZGdlQWNwaUFkZHJlc3NT cGFjZVR5cGVTdHJbRGVzY3JpcHRvci0+UmVzVHlwZV0sDQorICAgICAgICBEZXNjcmlwdG9yLT5B ZGRyTGVuLA0KKyAgICAgICAgRGVzY3JpcHRvci0+QWRkclJhbmdlTWF4DQorICAgICAgICApKTsN CisgICAgICBpZiAoRGVzY3JpcHRvci0+UmVzVHlwZSA9PSBBQ1BJX0FERFJFU1NfU1BBQ0VfVFlQ RV9NRU0pIHsNCisgICAgICAgIERFQlVHICgoDQorICAgICAgICAgIERFQlVHX0VSUk9SLA0KKyAg ICAgICAgICAiICAgICBHcmFudWxhcml0eS9TcGVjaWZpY0ZsYWcgPSAlbGQgLyAlMDJ4JXNcbiIs DQorICAgICAgICAgIERlc2NyaXB0b3ItPkFkZHJTcGFjZUdyYW51bGFyaXR5LA0KKyAgICAgICAg ICBEZXNjcmlwdG9yLT5TcGVjaWZpY0ZsYWcsDQorICAgICAgICAgICgoRGVzY3JpcHRvci0+U3Bl Y2lmaWNGbGFnICYNCisgICAgICAgICAgICBFRklfQUNQSV9NRU1PUllfUkVTT1VSQ0VfU1BFQ0lG SUNfRkxBR19DQUNIRUFCTEVfUFJFRkVUQ0hBQkxFDQorICAgICAgICAgICAgKSAhPSAwKSA/IEwi IChQcmVmZXRjaGFibGUpIiA6IEwiIg0KKyAgICAgICAgICApKTsNCisgICAgICB9DQorICAgIH0N CisgICAgLy8NCisgICAgLy8gU2tpcCB0aGUgRU5EIGRlc2NyaXB0b3IgZm9yIHJvb3QgYnJpZGdl DQorICAgIC8vDQorICAgIEFTU0VSVCAoRGVzY3JpcHRvci0+RGVzYyA9PSBBQ1BJX0VORF9UQUdf REVTQ1JJUFRPUik7DQorICAgIERlc2NyaXB0b3IgPSAoRUZJX0FDUElfQUREUkVTU19TUEFDRV9E RVNDUklQVE9SKikoDQorICAgICAgICAgICAgICAgICAgIChFRklfQUNQSV9FTkRfVEFHX0RFU0NS SVBUT1IqKURlc2NyaXB0b3IgKyAxDQorICAgICAgICAgICAgICAgICAgICk7DQorICB9DQorfQ0K ZGlmZiAtLWdpdCBhL0FybVZpcnRQa2cvTGlicmFyeS9Ldm10b29sUGNpSG9zdEJyaWRnZVV0aWxp dHlMaWIvS3ZtdG9vbFBjaUhvc3RCcmlkZ2VVdGlsaXR5TGliLmluZiBiL0FybVZpcnRQa2cvTGli cmFyeS9Ldm10b29sUGNpSG9zdEJyaWRnZVV0aWxpdHlMaWIvS3ZtdG9vbFBjaUhvc3RCcmlkZ2VV dGlsaXR5TGliLmluZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjBl MDNmZDZhZjhmMAotLS0gL2Rldi9udWxsCisrKyBiL0FybVZpcnRQa2cvTGlicmFyeS9Ldm10b29s UGNpSG9zdEJyaWRnZVV0aWxpdHlMaWIvS3ZtdG9vbFBjaUhvc3RCcmlkZ2VVdGlsaXR5TGliLmlu ZgpAQCAtMCwwICsxLDM5IEBACisjIyBAZmlsZQ0KKyMgIFBjaUhvc3RCcmlkZ2VMaWIgdXRpbGl0 eSBmdW5jdGlvbnMgZm9yIEt2bXRvb2wuDQorIw0KKyMgIENvcHlyaWdodCAoYykgMjAyMSwgQXJt IExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQorIw0KKyMgIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQorIw0KKyMNCisjIw0KKw0KK1tEZWZpbmVzXQ0K KyAgSU5GX1ZFUlNJT04gICAgICAgICAgICAgICAgICAgID0gMHgwMDAxMDAxQg0KKyAgQkFTRV9O QU1FICAgICAgICAgICAgICAgICAgICAgID0gS3ZtdG9vbFBjaUhvc3RCcmlkZ2VVdGlsaXR5TGli DQorICBGSUxFX0dVSUQgICAgICAgICAgICAgICAgICAgICAgPSAyMkE4ODQ0RS0yQUU3LTRCRjEt OTFGQS02RUZERTNGRTU0MEMNCisgIE1PRFVMRV9UWVBFICAgICAgICAgICAgICAgICAgICA9IERY RV9EUklWRVINCisgIFZFUlNJT05fU1RSSU5HICAgICAgICAgICAgICAgICA9IDEuMA0KKyAgTElC UkFSWV9DTEFTUyAgICAgICAgICAgICAgICAgID0gUGNpSG9zdEJyaWRnZVV0aWxpdHlMaWINCisN CisjDQorIyBUaGUgZm9sbG93aW5nIGluZm9ybWF0aW9uIGlzIGZvciByZWZlcmVuY2Ugb25seSBh bmQgbm90IHJlcXVpcmVkIGJ5IHRoZSBidWlsZA0KKyMgdG9vbHMuDQorIw0KKyMgIFZBTElEX0FS Q0hJVEVDVFVSRVMgICAgICAgICAgID0gQUFSQ0g2NCBBUk0NCisjDQorDQorW1NvdXJjZXNdDQor ICBLdm10b29sUGNpSG9zdEJyaWRnZVV0aWxpdHlMaWIuYw0KKw0KK1tQYWNrYWdlc10NCisgIE1k ZU1vZHVsZVBrZy9NZGVNb2R1bGVQa2cuZGVjDQorICBNZGVQa2cvTWRlUGtnLmRlYw0KKyAgT3Zt ZlBrZy9Pdm1mUGtnLmRlYw0KKw0KK1tMaWJyYXJ5Q2xhc3Nlc10NCisgIEJhc2VNZW1vcnlMaWIN CisgIERlYnVnTGliDQorICBEZXZpY2VQYXRoTGliDQorICBNZW1vcnlBbGxvY2F0aW9uTGliDQor ICBQY2lMaWINCi0tIApTQU1JOntDM0Y0N0YzNy03NUQ4LTQxNEEtQThCQS0zOTgwRUM4QTQ2RDd9 Cgo= --------------315F7193C12958CD56375E0E--