From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM03-CO1-obe.outbound.protection.outlook.com (mail-co1nam03on0084.outbound.protection.outlook.com [104.47.40.84]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id CC9C82095B9CF for ; Wed, 23 Aug 2017 17:52:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=fs4h67bcMBEhwMfXxVirpUZURNA8/G0ULLYAoPovskA=; b=U+tMOEbcSkAsNs16QIw6FvuAAYzlWBsjCFFZCJb4GkX6kxYLzaxoSojm7AGkcg2ITk6ImXXzP0bTZtv5mbfWk2TrG8U4WnnI9Id6P08fjHxI8fi+G52oV9y4eLLi3+4vFrAbIj9FcKnkDs8NY919Do5hkpigfhE1q3J2QdcyGyA= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; Received: from Brijeshs-MacBook-Pro.local (70.112.153.56) by DM2PR12MB0155.namprd12.prod.outlook.com (2a01:111:e400:50ce::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.1.1362.18; Thu, 24 Aug 2017 00:54:38 +0000 Cc: brijesh.singh@amd.com, Jordan Justen , Tom Lendacky , Ard Biesheuvel To: Laszlo Ersek , edk2-devel@lists.01.org References: <1503490967-5559-1-git-send-email-brijesh.singh@amd.com> From: Brijesh Singh Message-ID: Date: Wed, 23 Aug 2017 19:54:35 -0500 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 MIME-Version: 1.0 In-Reply-To: X-Originating-IP: [70.112.153.56] X-ClientProxiedBy: DM5PR05CA0042.namprd05.prod.outlook.com (2603:10b6:4:39::31) To DM2PR12MB0155.namprd12.prod.outlook.com (2a01:111:e400:50ce::18) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: c70e7a97-22dc-4a03-dbd9-08d4ea8ab263 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(48565401081)(300000503095)(300135400095)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:DM2PR12MB0155; X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0155; 3:+2gyraYMhBIsvdRvCKJx1F/nD43tI20qECllMaD9FgrjOT3qX+/4gnBemHFMszz+asjvX+N6YB13B70brf9Z0KwUmhd+5FqCXypSYZy/bWBW5NbM/3ld30eeoA66niKK2Y7dIBxWlXeG3eJcO45br3w2E30MqalbBQ38v3rcVtlkv7ZUSsWN23OobsGy2msuwYDe7nwN0oAmWu/gHmfhtoNeRAl0GXySsNxOvoNvGtzq5ytQr6W4WB4lYfgkNHGb; 25:+jmBYatSvu+84+TPYqoYcJhB6cW1sl4a7GlXYxlW/qBlgdCKfLtXGyYK/xAtjY1pmtfEjoD3pPi2XJnsbdXo3p2IVnN2H+6SaDN66fwSH2Kt4ugRDp772McWs/SPeHsHimhSXuWc25GLru/OJai7r1nJtJCoXPsthk/ZwggOibqbxH3dXZRjQ2Dc4EcCZEVLMp+LhhHZXx+VfppxojI7NQw3LJJma8Xr7rK/IMgKXX9dHbTX2QehZgBashaLoso0pmPgAwSw2BEH/Ae8/CJXkNPANlqsZM+q8ktWB9D1Dbd6L0WLzucvgOHxbu0BGQ0dwxyD4EgOJN7+eBD9o9vznw==; 31:0Dt/4muN2hHf//yN4CK1RQiKAzHwjjysg+9wNbaOOR3+uotYlgCBUeBeRrigPJ3m4rcq/9+2w9sn6W8kOqhgTIc8Hs5U/TrW6oAMvMpwHy+VBgkY2mJ8T06rpEX86tRQCZs+LpCyykRNmZVlD2jG/O+xzP9HmyBxbyR4PLr1ffcQrRtqZphBz0l3lfyyETcjeIuLF2UY40cP9sG5nJeLqkdLt/n3UXR9PgIkE4BKGWQ= X-MS-TrafficTypeDiagnostic: DM2PR12MB0155: X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0155; 20:Mbf3eXC60XyKDFNej+PvbpUuPy7fSqGqA4UaUaFHhvy6CtM+xpvVAnk+6aGxMh+5PPSG6TnulfqjkqxY1YDwQPG5iEX5dSqAdZcGCzLHOnQYhCJ5uTVxgXph2nznWTvCLDoC5ARMOR+dnDBVvZuZ4WcZWoS1FrslapaIOzYiDjFwNgkGPswwOuhCKF/LXLHv/RVKsgQMY2McziN1SgvykSvLogRCsc7yfvbFItucXTgYgmVqly8gyi27wSkJZNzzPyXPJyAwW7pun4g47dBz2x9WOAeAf8C9poUQRleCa9A8fZkO6XUDkcueNmMnx5UFDWA6nAhcGScY+KWfcjAmy4JC1wgXjBG8zMvwir2x/JXnct1vS12Kdw1DvDrJqqytIQV6+rNyrasOTC/qlixiB5dC6JdbCQ7Cegoajhz2il2T47XsU2AGLTcZZ7kR2mIk3FSB0mpMuV4tnclteFA2avpsvHgSYu7/LQbOoUSTAg7YMWlPpvBdQ7rDAcyjYw0H; 4:d6a+FYo4FkllEF9AE55zXJlOBh8biOiJApcvNP2el/vKj56WmGZ07+C6MO35DX4RMJF9uPBeJ6D/+/WlzlyFmfugUCKFktzKdqD/HI1xrEkw66Ytv7PBBfSPfxTYqclKmShM32mEDsriJZFdLPpErHMGC+DQSlSDVPNe1EY1FnyHw2qINqZUkrJNX5Y9SBhwJ08Ju2+zZofoT2BNvhN084u/FEXsRFzQrXIH6LBgDsCvEY2xsCUFrckLVNwzAFXcXBx75sgQD3wRIQuIP9NV4OEnJH9fg3EB4lo43SfzEUA= X-Exchange-Antispam-Report-Test: UriScan:(278428928389397); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(5005006)(8121501046)(10201501046)(93006095)(93001095)(100000703101)(100105400095)(3002001)(6055026)(6041248)(20161123560025)(20161123564025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123562025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DM2PR12MB0155; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DM2PR12MB0155; X-Forefront-PRVS: 04097B7F7F X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(7370300001)(4630300001)(6009001)(39860400002)(51914003)(189002)(377454003)(199003)(24454002)(51444003)(65956001)(305945005)(47776003)(97736004)(101416001)(110136004)(229853002)(6666003)(478600001)(189998001)(65806001)(7736002)(23676002)(64126003)(66066001)(3846002)(230700001)(6116002)(6486002)(31696002)(86362001)(4326008)(6246003)(2950100002)(105586002)(106356001)(36756003)(6506006)(50466002)(2906002)(42186005)(31686004)(83506001)(33646002)(68736007)(25786009)(4001350100001)(81156014)(5660300001)(76176999)(54356999)(7350300001)(54906002)(53546010)(65826007)(6512007)(8676002)(53936002)(50986999)(81166006); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR12MB0155; H:Brijeshs-MacBook-Pro.local; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtETTJQUjEyTUIwMTU1OzIzOnlzc21KY1p0cHFFTmp0ak53bWN1OEhFLzJO?= =?utf-8?B?UFdrcWxzbjFVNXJFai90ajJ6ekQyQzBPODJqUFdRQlovbVEzcUwxaWNGSjNH?= =?utf-8?B?N1ZBU05JRENDU2NKUngzOHM0Wjl0czVjZld1ZVE0QlE0d0NZVFlqNWVDclJM?= =?utf-8?B?UjBYVkJzM2llVUNKcVN6dTM4MlMxUWxTd2JzcHJEWnB4cm1DQXJTYW1HSnNm?= =?utf-8?B?bzV0QnMrRU4rZDJHOHpUSDl1M1J6WkVIODZNdjhTUUhjMVhvREhzQzZVb250?= =?utf-8?B?VkpGNStsMjBjRUhCeWtpVmpjcU1yM0htM0hoTTBlZmpxVUZLWG1ucy9pQzNj?= =?utf-8?B?VlBGMHlZYTVXNkVUajh0YlhCdEFUQkVTNkhzd1hNUEt2dTVyWGt3Qnd0emcx?= =?utf-8?B?UER5Vk12Q2l4eDlLUUZyQWcyQkpEWVNubE9JcUMvUzV3d1FYQTVWekRSeGNJ?= =?utf-8?B?VDBrUkpYbkFRdzFIdE1lam9xRU8rZTM3TWJmU0FFTXA1cWxCblgrR2YzMHBm?= =?utf-8?B?RTdGM3hRMTVHaWlaUWxnOCthREdrL1hmUTZUQU1TbDBGUnNaZTJqa3JiMHdx?= =?utf-8?B?VE9XbFVyaXpXWlBnK2xSWHY5d3ZzZGdiS1IwOUF3aGxjVTFwZmNFemRoZ1VN?= =?utf-8?B?Qm1hMzVCRGt3c1hMYlBXMG16QUloZFRNLzRSc3MyNml2UjRsZFlFMFdIUGlm?= =?utf-8?B?Tjc0MXN2N3owL0YrbUJmNW1nbXZZQlJpQjIrYWx4Qnczbmk2MEN1NnVvL1cz?= =?utf-8?B?K09MVVNGRXo5Ulp5SFpPL01WSFZpRFFsVzFKN2VvU1g0bWtDeWdtUkVJaDZN?= =?utf-8?B?aVV6d2FwOWpOd3JlbWxOWjMrdi8vekdNWGxrMEIvb0E0b25lTjZwbWJKSFg0?= =?utf-8?B?NTZ3eThISWgvVjEwbXkyM2UybjdjVUZyVjRndmdDNmI4UEYwOG9tc2FteTBh?= =?utf-8?B?c3V4Q0R0dGFCb3lQanp6MFlUdWtmaHZVU0JDUm4zOWRXWlhhanNoU3ZYb2Qr?= =?utf-8?B?WDNrSjlSdEZSeHNCTnNKb1JNWURINFFjWGFHbnQ4MU95RjBjTzFXcUJ0ZmNV?= =?utf-8?B?UjBYV0R4clFKVllyZkxFc1NTQ0c4YlVmWWFaVmdXQXJ2NTREK2kybTgyZlVE?= =?utf-8?B?UXhoQlJmR0pSMGI1bW1ZcEdOYzRCekVpZzVuYnd0cXl2eTBjQkI3OFcyd0ZL?= =?utf-8?B?Ky9BdmJvMmF6bElXUWZKeHR5eWhxMzlnSUtHZzhWRnNkbFR3VjlEYUl0R0xZ?= =?utf-8?B?anZRa1FkcitzMEFyTWZyK0t2WFdzTGkrNjdOR1ROekFiV1RPL3QwMDB3Unk2?= =?utf-8?B?QnhCUUJ3S1NNRW5NZ0tScTcvQ0QxV0FFWnNWVndNbm5SdjVFQ2U2Z1ExMW9j?= =?utf-8?B?V3Jsek5WTmNCNUJxcWJHaEt0ZlNHTXc0NktNTG9uUDlrSnhDRkVNa2szWTNo?= =?utf-8?B?NEw5czlZbW41OHlZR0kxUDBGNzduenZ0YkxqUEIveDNQNlpnU3FvdGt4dWM2?= =?utf-8?B?alZkai9YUVp6MGRhVWUvK0RyOUR1RWYwOURTTnNBSzVvK2dXWjExMGFIMjFu?= =?utf-8?B?a3o2Y1RxendCcE1sNFhnOFNZM2VCRU1VYW5TVkFxWkdQN21KdVhwL2NKK1JX?= =?utf-8?B?SXJtWTFvckpTcnNuZkJjWWZPVEVKa1RwN3FBT2VzT3ljMkt0QVdHS1QyTFk3?= =?utf-8?B?RXlIWHpDSVJvQzRUYkFwdERJcGcwNVhYczl4WmJrZCtRaXhnOWkxeXd5eW5v?= =?utf-8?B?dlI1dVRUQ0k1eDR2d01XeVFhY3A0RDFyeFN5NktadEpGSlpxOTVXejE4cnMw?= =?utf-8?B?MmEyUzBtbFhJbi9FM1ZrOXNtRjZuNXVCcFBKM3J6dDFUWjR4YmxZWkpSallK?= =?utf-8?B?RDcrbzlNYWIrM2RPYy9vZU1lUUx0SkVnZHBJOEFJQkFNcWh0d0RFWEpGVlpJ?= =?utf-8?Q?f7yran5knGijCG7YPhyFRqCHb5XxPs=3D?= X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0155; 6:lQ2cmAMYMIo7PeteLbW+cbVNiOvQ85US73rtxIXz+kgss6/n3kpb0Z9lOsELBajZA6A/ZLR1wZ8KFWgXh1yz1HgWQeW9aO7NjFIq1h1sY3nWPDdM6aC2PbizDSTTNMs7K4XyO8T36Hwpb5lO83fj+lcsYeY4adWzJaggY5joLVW1CX1fPQ05Huu48m776yWi93PCEpnuTmmPRjvj6x4qUYRimUPDP2qd2dzlOHi4Rd6RabZUOMrZnB3b0+GxnQNbn0cUBQb7/UIoZIiagWGdaWg7gYvmdfVDcCb6QSWkseg5DEpjWze+jgpKKEDhb2YstwcXdsKiy/eldmLd9KGElw==; 5:c/xL8NpHLMvsRz7owWaou1wcwImUsBQ6s1x3JoG6vFKIsHDdGwAwW7q9/lr/l245/AN6HqKWr4n2pbWTwH5g2K0zb2CoMFEo0GrmUJG+HBMcSsFXoM6EEXbewZU/qTnyrckN0qfWpY3LTben8L6QtQ==; 24:Uh4W1ijM7LoJ93RjUjN8Sq3BStPvBY2QZk5xaM140VjQf5xphXE+pf2Quy2jotkkTj8i9WYLcgXCyFlc6wtpCHpxUHIc8leSvk54+UBTAXk=; 7:kHbFNKzMyf8cP2SfqhFdJ967svItjjdWGts4R8ZiQqLVehXlw6t3sZ10w7V5I7O5JcM8AwNF+wOhrPtJobiMsI3x3q3EhKXzpXMUuQ34v88pWnCzJJlRnrPqhjB99xBe0x/CoiV/QKr5/Za4fw9pa9ZYCdu/eTfrXoTktwP9lZHo+iB/YTn0OboadoP9cvObN5WjHyH9Qqq9LuqIkbRrDladU9M0JtLE0Bzj/IpUSJE= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0155; 20:I5WrMS+YuZl4F0HiUwYVCxr5+8HO/UG/5nrhtchVzzbm7cJ4PL390rKo8SZALoqVnG1PYRNcA7/HiHxa4Z5eo7/3VVi1pYKkmyop23y8pjxrkyLVxBL7AUXAXHT8V9vOSoFyJlDWsmGt1EmgLrsLArr7fQvHE55NAu0D9i/6JbvwQrLzntslagkZnYmKbVzG2Kw43/FMsE3ty5Ii6hP7cuebYWtVMjWRcPmvTKTY+Oezxhs9lE7bOgHCYjKYhqmA X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Aug 2017 00:54:38.1295 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR12MB0155 Subject: Re: [PATCH v3 00/21] OvmfPkg/Virtio: introduce IOMMU-like member functions X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Aug 2017 00:52:07 -0000 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-Language: en-US Hi Laszlo, On 8/23/17 7:26 PM, Laszlo Ersek wrote: > Hi Brijesh, > > so here's what I'd like to do with v3: > > On 08/23/17 14:22, Brijesh Singh wrote: >> Brijesh Singh (23): >> OvmfPkg: introduce IOMMU-like member functions to >> VIRTIO_DEVICE_PROTOCOL >> OvmfPkg/Virtio10Dxe: implement IOMMU-like member functions >> OvmfPkg/VirtioPciDeviceDxe: implement IOMMU-like member functions >> OvmfPkg/VirtioMmioDeviceLib: implement IOMMU-like member functions >> OvmfPkg/VirtioLib: add VirtioMapAllBytesInSharedBuffer() helper >> function >> OvmfPkg/VirtioLib: take VirtIo instance in >> VirtioRingInit/VirtioRingUninit >> OvmfPkg/Virtio: take RingBaseShift in SetQueueAddress() >> OvmfPkg/Virtio10Dxe: add the RingBaseShift offset >> OvmfPkg/VirtioLib: add function to map VRING >> OvmfPkg/VirtioLib: alloc VRING buffer with AllocateSharedPages() >> OvmfPkg/VirtioLib: change the parameter of VirtioAppendDesc() to >> UINT64 > (1) I'll take the first 11 patches (which work on the transports and > VirtioLib), fix up the trivial stuff I've found in the v3 review, and > add my R-b tags. Thanks > >> OvmfPkg/VirtioRngDxe: map host address to device address > (2) I'll do the same for the VirtioRngDxe driver. > Thanks > (3) I'll test this initial sequence in various scenarios. I think that > the protocol / transport / VirtioLib changes are good at this point, and > the simplest driver (VirtioRngDxe) demonstrates how to put those new > features to use. It also enables regression testing. > > Importantly, I also plan to regression-test the remaining (not yet > converted) drivers at this point. Those drivers are affected only by the > "alloc VRING buffer with AllocateSharedPages" patch, as follows: > > - On legacy virtio-pci and virtio-mmio transports, the change is a > no-op, because the AllocateSharedPages() and FreeSharedPages() VirtIo > members are backed by MemoryAllocationLib's AllocatePages() / > FreePages(). So the behavior of VirtioRingInit() / VirtioRingUninit() > remains identical. > > - On the virtio-1.0 transport, the direct AllocatePages() call in > VirtioRingInit() will be replaced with VirtIo.AllocateSharedPages -> > PciIo.AllocateBuffer -> PciRootBridgeIo.AllocateBuffer. > > - The last function will either branch to gBS->AllocatePages -- if > there's no IoMmu protocol, i.e. no SEV -- which is identical to current > behavior, or branch to IoMmu.AllocateBuffer. > > - in IoMmuAllocateBuffer(), we'll allocate StashBuffer on the side > (which is no problem), and the actual allocation (for HostAddress) will > be done with gBS->AllocatePages(). > > The end result is that at this point, the unconverted drivers won't yet > work on SEV, but they will continue working if SEV is absent. The only > difference is (dependent on transport) longer call chains to memory > allocation and freeing, and larger memory footprint. But, no regressions > in functionality. > > If I'm satisfied with the above test results, I'll add my > Regression-tested-by tags as well, and push the first 12 patches. > > This will provide a foundation for further driver work (incl. my > VirtioGpuDxe work). I agree with you. Sounds like a good plan. > >> OvmfPkg/VirtioBlkDxe: map host address to device address >> OvmfPkg/VirtioScsiDxe: map host address to device address > (4) I've looked at these patches briefly. They are possibly fine now, > but they've grown way too big. I struggled with the verification of the > VirtioRngDxe driver patch, and each of these two is more than twice as big. Great thanks, I agree the series is getting bigger. After v1 feedbacks, I was almost tempted to say that lets work to enable the base first then will do one driver at a time. I was repeating the same mistake in each patch and that was causing trouble to you and also I had to rework the all drivers. > So please, split *each* of these two patches in two parts (a logical > build-up): > - the first part should map and unmap the vring (all relevant contexts), > - the second part should map the requests. > > > (5) (I think this is my most important point), with the foundation in > place, I suggest we switch to one series per driver. For each driver, I > have to look at the virtio spec, and "page-in" how the requests are > structured, what they do etc. It's not a mechanical process. All that > virtio stuff is easier to re-digest if we proceed device by device. > > Should we need later tweaks for the foundation, then at this point I > prefer small incremental patches for that. > > >> OvmfPkg/VirtioNetDxe: alloc Tx and Rx rings using AllocateSharedPage() >> OvmfPkg/VirtioNetDxe: alloc RxBuf using AllocateSharedPages() >> OvmfPkg/VirtioNetDxe: dynamically alloc transmit header >> OvmfPkg/VirtioNetDxe: map transmit buffer host address to device >> address > (6) This is obviously the most complex driver. I've only snuck a peek. I > have one comment at this point: *if* we have to do random lookups, then > lists aren't optimal. > > Please consider using the following library class: > > MdePkg/Include/Library/OrderedCollectionLib.h > > It is already resolved in the OVMF DSC files to the following instance: > > MdePkg/Library/BaseOrderedCollectionRedBlackTreeLib/ > > Examples for use: > - various modules in OvmfPkg, > - AppPkg/Applications/OrderedCollectionTest Okay, I will look into it - thanks for the tip. I wanted to actually use the Simple array (because we know the maximum number of buffer we can queue) but was not sure about your preferences hence I went to with list. If you are okay then I can use array's too. > >> OvmfPkg/Virtio10: define VIRITO_F_IOMMU_PLATFORM feature bit >> OvmfPkg/VirtioRngDxe: negotiate VIRITO_F_IOMMU_PLATFORM > (7) I would have liked to include these two patches in my "initial > push", but minimally the second patch needs fixes from you. > > After I'm done with point (3), please repost these patches *only*. Sure will do. thanks > >> OvmfPkg/VirtioBlkDxe: negotiate VIRITO_F_IOMMU_PLATFORM >> OvmfPkg/VirtioScsiDxe: negotiate VIRITO_F_IOMMU_PLATFORM >> OvmfPkg/VirtioNetDxe: negotiate VIRITO_F_IOMMU_PLATFORM > (8) After these patches are fixed up, I suggest that you please post > each one of them at the end of the matching driver series. > Will do. >> TODO: >> * add VirtioGpuDxe (i will take Laszlo's offer that he can help with >> this driver) > OK, will do, thank you! > > In this work I'll also seek to follow the series layout proposed above. > >> * I did minimal test on aarch64 - I was running into some Linux >> bootup issues with Fedora aarch64 iso. The issue does not appear to >> be releated to virtio changes. If anyone can help doing additional >> test with their aarch images that will be great ! thanks > I'll test on aarch64 too. thank you. -Brijesh