From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mx.groups.io with SMTP id smtpd.web09.24148.1629121070138622345 for ; Mon, 16 Aug 2021 06:37:50 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=fnRjaJun; spf=pass (domain: intel.com, ip: 192.55.52.93, mailfrom: jiewen.yao@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10077"; a="212744305" X-IronPort-AV: E=Sophos;i="5.84,326,1620716400"; d="scan'208";a="212744305" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Aug 2021 06:37:49 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.84,326,1620716400"; d="scan'208";a="423548769" Received: from fmsmsx605.amr.corp.intel.com ([10.18.126.85]) by orsmga003.jf.intel.com with ESMTP; 16 Aug 2021 06:37:48 -0700 Received: from fmsmsx608.amr.corp.intel.com (10.18.126.88) by fmsmsx605.amr.corp.intel.com (10.18.126.85) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.4; Mon, 16 Aug 2021 06:37:48 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx608.amr.corp.intel.com (10.18.126.88) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10; Mon, 16 Aug 2021 06:37:47 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10 via Frontend Transport; Mon, 16 Aug 2021 06:37:47 -0700 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (104.47.57.48) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.10; Mon, 16 Aug 2021 06:37:44 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Chg5IOGX4rosuWmXna2zOys0wuc23k1mqfpbc9NAX+jDqN+3spPgmhPykuV2hZqDAOWa0oS5GpiatXXbXqOLm0fN8C7Iac04L1+0glYO75PEsmf/V32boTpUB6HpEmgcpQfrENZjfDxwLDej6TKfA7TY0iZSzkIvOoxzUKj38XO4ieKKPQNTbtWhQN+x//5uAczvgUK7qJV7Lm8LwR8MjlQOlnDPKe4xyVm+hwEWYm2WZ10w2yIb2wxnELkDsTDEn+sq8Z9LbyRW7oOxiCX61t6ZviYPUZlHYL4y/Nu4huJO8VGXEI6MxEXEY3YwD5UZcSvE0TOeF2A7oVJI2HTDlA== 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=0Gs2qrdCnuLasuzTbHo7nZlYxXP6VLSOHbYn2t++23I=; b=kFk7TMS2gaN9mO2ac6ZRvU24AYSYsuNrNDoFomEZOdTLYrcOunZ3aJiPi4w+0GePbQQNYoFRsGPQ5cgBSVCnHrmmD7i/zUDLAINWWtd6Wi4Zjwx0FVflM5yktV3/sI9BPTUcaIrP/0W4Xh4J/NJXETEPvFd4PsXJ34tEyN2wlYc+u/G1ru2dohd8rG5qTVry7Ss7F0blT9s5hB8LvZpjXXLMbQNjig7pQKitkfIsWQtJMWPKhS87nEmgrRYRL04olOHnYy37qm3JJbtcuMz9ICexPnOit/zjlM7KhvwL3V2vWth5cHAgzekhObpxQde1gj99mdc+GS0HM1QDw8twhg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0Gs2qrdCnuLasuzTbHo7nZlYxXP6VLSOHbYn2t++23I=; b=fnRjaJun5bYpXFWO108ZokthyNpiUurxFCYCIOmHdBp/G7lCdhhuv5/1/Hhk7ih3n8LZmorf+jnQxdYa8aSbZncRInYmz8LZgmYpUkL8iyvkSLCdOmQMxAbpxFLPxyzmyOzwbPTYiWd7+l3fwF+W9bwQgsE9KfuplF/qdxHzpDY= Received: from PH0PR11MB4885.namprd11.prod.outlook.com (2603:10b6:510:35::14) by PH0PR11MB5159.namprd11.prod.outlook.com (2603:10b6:510:3c::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4415.16; Mon, 16 Aug 2021 13:37:43 +0000 Received: from PH0PR11MB4885.namprd11.prod.outlook.com ([fe80::e97b:e466:268f:fb79]) by PH0PR11MB4885.namprd11.prod.outlook.com ([fe80::e97b:e466:268f:fb79%5]) with mapi id 15.20.4415.023; Mon, 16 Aug 2021 13:37:43 +0000 From: "Yao, Jiewen" To: "devel@edk2.groups.io" , "Yao, Jiewen" , "kraxel@redhat.com" CC: Philippe Mathieu-Daude Subject: Re: [edk2-devel] [PATCH v2 2/4] OvmfPkg/VirtioMmioDeviceLib: Add virtio 1.0 support. Thread-Topic: [edk2-devel] [PATCH v2 2/4] OvmfPkg/VirtioMmioDeviceLib: Add virtio 1.0 support. Thread-Index: AQHXkoxfA4nPPyXdu0SiKt+R0kRtkKt2Ic1ggAAApvA= Date: Mon, 16 Aug 2021 13:37:43 +0000 Message-ID: References: <20210816071109.101122-1-kraxel@redhat.com> <20210816071109.101122-3-kraxel@redhat.com> <169BCCE38BFCC61F.3513@groups.io> In-Reply-To: <169BCCE38BFCC61F.3513@groups.io> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.5.1.3 dlp-product: dlpe-windows dlp-reaction: no-action authentication-results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: dde942fa-7d61-478b-9b04-08d960bb06a9 x-ms-traffictypediagnostic: PH0PR11MB5159: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 40WAfnqHkhgSl60bkgVGxw+yn06BkTt8fbhcKNXXd2OlY5AWfsT50Ut8B/ZeRsnEgb0S1wzsQoKJpC6TXa0tv41XOh4cM+tKWbvZtNbdQnBZf43tyPv27Ubinodb6GE+9YWv8NjqSI+8OeoEnFB1SRB7Hfm867vJGMaHPam+A41U5DhFeLxU420e+9NdvwSKcHT2bh3YMh7+xu8YYl12ix7q/FfZjIMOO0H2tzbRFAVQ3IxZsnfNx8ij18c/CAkqGnLVekFdkrRRpp4QhIXRWk8MRVZeu2WKp6nRq6pYxNFuKbs6LerTKJIre3S0/N0CqG2mM/tKeejFprwWMEK8Nlz3cYsXgy4hlr+ta/E+mMzcMvtfzbwUbIQfd0JK2yGQjueOwld5vX0QkbSi9dzcxxd9TmJ0Cd4aaWJ7jmgqgJ6/7FBVzbe/mULjSNZTryEZqsUMvksAOtGCTjGfxx+QOg1PeatMaXdH9OjkSqbJm+dyWC0AI/i6LFmqkX8j3u4/qjELca/1V35IF7MuR91h0n0X2Me/8LZyboFidlyJLKsSbXMOyDTJwUmDlEGMOopg+I/syWlJ0KuAk62DxA0I2jiq6PZov6w4/5cobUXYIWGt6MA3FeqhFc3FjMRUrWJ6c5NbbRBETUhUiLLHbVetZ6HbqvxqM9HgaS+AlPqkyCn1PgphlQl12dsWQa2o/efOuPkJxPlCE4GxQKJA6d6JBtxg0dAqJ2ZEaeUGJwBQHElCR0vOsJqFmk9ijhK0sRSuo2bEzVI/UdO1WWpKJ3kNpX2Kdi3Z+jS1k1zNABwUZh2wWFdEqStgS0Hli8nIc0g4Hsep1XM35MPr0BekI06u4g== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR11MB4885.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(376002)(136003)(366004)(39860400002)(396003)(346002)(83380400001)(26005)(33656002)(64756008)(66556008)(66476007)(86362001)(66446008)(38100700002)(5660300002)(2906002)(53546011)(6506007)(38070700005)(7696005)(76116006)(122000001)(66946007)(8936002)(186003)(110136005)(55016002)(8676002)(52536014)(71200400001)(9686003)(316002)(966005)(4326008)(478600001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?uYq/5n1Cv943Ukr/fmNCW4xFF5GBe/QY7i3+REp8DB6ODzp3LMSUWKSG5ayc?= =?us-ascii?Q?MuqyeuyeyUJoCShqo/EGVffMWaNLIBEKkUo6y9APTmMZSRY9u+pj3SFV5IY2?= =?us-ascii?Q?ANqR2b2ch+hLOJyatrDjFCYtB701d4cyFqECtlfiXF25jUc3AQOzRpL7ftK4?= =?us-ascii?Q?/IPpn4cdw2W4y3QC0TyuD4k+QQhfxepkFQ/kWThBPI050DiwvkpPkKcnDvvK?= =?us-ascii?Q?ytfwDTEEI0YZ8B9l+1dBa3biBYDPURs8p5b/BVDFAs7/RypxaLhPq0IkIIys?= =?us-ascii?Q?Ue1MGVf+YFfq1uYHgV4WgfHuMCq7zvQzdEtoOCGv4EgOvVcPIJdT8yo1saKd?= =?us-ascii?Q?PEUVR/ju2nvDf+OLXthK5nmzHsoHC7XaSbuwQ66OZ+xT8QlGfuhPUdayvNf+?= =?us-ascii?Q?Tl6tKSieRtAX2bn0HBP4onJoPA3DRk5ygx8zrbY5q19lHYPO1seo4oinoro3?= =?us-ascii?Q?NnKhpb4HfAsodvueDHb2QJDjq+VNB5lEtbAbVxeRAq6vNKF/w0FMGOqlX9ik?= =?us-ascii?Q?kghai+u6VqsbLcfLl8IPSaizvaagQRolkjJOlIOZPOjLCZgmOYmvHVcjIafn?= =?us-ascii?Q?04E+CyMvhqaAZxDqhVEEeUtFE2Jc+hNUbb0EF++65tB49LRWEbIKjOBqrNOz?= =?us-ascii?Q?LEcYO3SduBLZENSNhvQfMqvr++SLuYDfUuFK6/KfJzEN74gtDFKpjrVtUEdI?= =?us-ascii?Q?Ip1+AC8OdzD09aQ1kKIx1H6QxEKK+zPATXfhFycE5i62//jnn+qCwGw3tCR7?= =?us-ascii?Q?/rvf3bbqnSCrb6WNg7BmNZA+uE+cqAvFkElmfg7tGpJH3qJ5+cbTzAbDj0bM?= =?us-ascii?Q?Rg94YQ4ov/jhdan5+zZpwH9lRFu9U1xtjvl/OZlSMVq7K3pMm0Wl+eTbarGe?= =?us-ascii?Q?HgF7UBNPfSGAsmzhfV5yZ54728v9Nq2UcReYSnpILWw2Mfs3p7MP2vlT/3J8?= =?us-ascii?Q?GAZeTSSNuTA/ibbRqZROyKrm94HjJtuJ/EXWTHPf127+N0wonCkmrCi//FnV?= =?us-ascii?Q?vZBzQE5cHVux6bEnXwtqTOcH7sZYaZdGTm4aRzzchmn87Bo7AqaggLNe5AwB?= =?us-ascii?Q?P1Y46fJtbKkR81s1NQOUcgq+6fNMua+M/4EhzL6604yscdyn+vQf5z06dbh1?= =?us-ascii?Q?dt4cB5Slotgn5L/8Y2jwjGKVT+eglgrUYzS0cK2kRCGv4lzp3BQAWtZvwnPR?= =?us-ascii?Q?WgUDLFzF3nYz08QsIAb5kfcNgZiLqz+gWrnqtWnd/BdLkNVX7xHVjBHNyQwy?= =?us-ascii?Q?IIoCODWLskX7kr9045e9CdUd09AWsLjedn/fUlqroTxcOpScAM7Hcmuq2v1h?= =?us-ascii?Q?1++ZfxzIjUbKWcLhS5N/mC7D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH0PR11MB4885.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: dde942fa-7d61-478b-9b04-08d960bb06a9 X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Aug 2021 13:37:43.5181 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 0hxw3A9zt3jWOA6LgX/WTVoudSXwPD9cJhrdSsIF8Nu0R5xbtibKlGTdFWld4VSAmEMhnvmuztfyL5Ea/eepeA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB5159 Return-Path: jiewen.yao@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable HI Gerd I apologize for the mistake on name. I should call you Gerd, not Greg. Thank you Yao Jiewen > -----Original Message----- > From: devel@edk2.groups.io On Behalf Of Yao, Jiewe= n > Sent: Monday, August 16, 2021 9:36 PM > To: devel@edk2.groups.io; kraxel@redhat.com > Cc: Philippe Mathieu-Daude > Subject: Re: [edk2-devel] [PATCH v2 2/4] OvmfPkg/VirtioMmioDeviceLib: Add > virtio 1.0 support. >=20 > Hi Greg > Can we define MACRO to replace 1 or 2? That is very confusing. >=20 > For example, > #define VIRT_IO_DEVICE_VERSION_0_95 1 > #define VIRT_IO_DEVICE_VERSION_1_00 2 >=20 > Thank you > Yao Jiewen >=20 >=20 > > -----Original Message----- > > From: devel@edk2.groups.io On Behalf Of Gerd > > Hoffmann > > Sent: Monday, August 16, 2021 3:11 PM > > To: devel@edk2.groups.io > > Cc: Gerd Hoffmann ; Philippe Mathieu-Daude > > > > Subject: [edk2-devel] [PATCH v2 2/4] OvmfPkg/VirtioMmioDeviceLib: Add > virtio > > 1.0 support. > > > > Add support for virtio 1.0 to the mmio transport. virtio 0.9.5 uses > > page size, page frame number and a fixed layout for the ring. virtio > > 1.0 uses the physical addresses for base address, used bits and > > available bits instead. > > > > The ring layout is not changed, so a 0.9.5 compatible layout is used in > > both 0.9.5 and 1.0 mode to to keep the code differences as small as > > possible. > > > > Signed-off-by: Gerd Hoffmann > > Reviewed-by: Philippe Mathieu-Daude > > --- > > .../VirtioMmioDeviceLib/VirtioMmioDevice.h | 1 + > > .../VirtioMmioDeviceLib/VirtioMmioDevice.c | 17 +++++++--- > > .../VirtioMmioDeviceFunctions.c | 31 +++++++++++++++++-- > > 3 files changed, 42 insertions(+), 7 deletions(-) > > > > diff --git a/OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDevice.h > > b/OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDevice.h > > index ab53b90d51c9..8b19996b716f 100644 > > --- a/OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDevice.h > > +++ b/OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDevice.h > > @@ -26,6 +26,7 @@ > > > > typedef struct { > > UINT32 Signature; > > + UINT32 Version; > > VIRTIO_DEVICE_PROTOCOL VirtioDevice; > > PHYSICAL_ADDRESS BaseAddress; > > } VIRTIO_MMIO_DEVICE; > > diff --git a/OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDevice.c > > b/OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDevice.c > > index 6dbbba008c75..a8f78a50861b 100644 > > --- a/OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDevice.c > > +++ b/OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDevice.c > > @@ -58,7 +58,6 @@ VirtioMmioInit ( > > ) > > { > > UINT32 MagicValue; > > - UINT32 Version; > > > > // > > // Initialize VirtIo Mmio Device > > @@ -66,7 +65,6 @@ VirtioMmioInit ( > > CopyMem (&Device->VirtioDevice, &mMmioDeviceProtocolTemplate, > > sizeof (VIRTIO_DEVICE_PROTOCOL)); > > Device->BaseAddress =3D BaseAddress; > > - Device->VirtioDevice.Revision =3D VIRTIO_SPEC_REVISION (0, 9, 5); > > Device->VirtioDevice.SubSystemDeviceId =3D > > MmioRead32 (BaseAddress + VIRTIO_MMIO_OFFSET_DEVICE_ID); > > > > @@ -78,8 +76,19 @@ VirtioMmioInit ( > > return EFI_UNSUPPORTED; > > } > > > > - Version =3D VIRTIO_CFG_READ (Device, VIRTIO_MMIO_OFFSET_VERSION); > > - if (Version !=3D 1) { > > + Device->Version =3D VIRTIO_CFG_READ (Device, > > VIRTIO_MMIO_OFFSET_VERSION); > > + switch (Device->Version) { > > + case 1: > > + DEBUG ((DEBUG_INFO, "%a virtio 0.9.5, id %d\n", __FUNCTION__, > > + Device->VirtioDevice.SubSystemDeviceId)); > > + Device->VirtioDevice.Revision =3D VIRTIO_SPEC_REVISION (0, 9, 5); > > + break; > > + case 2: > > + DEBUG ((DEBUG_INFO, "%a virtio 1.0, id %d\n", __FUNCTION__, > > + Device->VirtioDevice.SubSystemDeviceId)); > > + Device->VirtioDevice.Revision =3D VIRTIO_SPEC_REVISION (1, 0, 0); > > + break; > > + default: > > return EFI_UNSUPPORTED; > > } > > > > diff --git > a/OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDeviceFunctions.c > > b/OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDeviceFunctions.c > > index b0d75fb1dd24..bf8523a6fb3b 100644 > > --- a/OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDeviceFunctions.c > > +++ b/OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDeviceFunctions.c > > @@ -151,7 +151,9 @@ VirtioMmioSetPageSize ( > > > > Device =3D VIRTIO_MMIO_DEVICE_FROM_VIRTIO_DEVICE (This); > > > > - VIRTIO_CFG_WRITE (Device, VIRTIO_MMIO_OFFSET_GUEST_PAGE_SIZE, > > PageSize); > > + if (Device->Version =3D=3D 1) { > > + VIRTIO_CFG_WRITE (Device, VIRTIO_MMIO_OFFSET_GUEST_PAGE_SIZE, > > PageSize); > > + } > > > > return EFI_SUCCESS; > > } > > @@ -181,13 +183,36 @@ VirtioMmioSetQueueAddress ( > > ) > > { > > VIRTIO_MMIO_DEVICE *Device; > > + UINT64 Address; > > > > ASSERT (RingBaseShift =3D=3D 0); > > > > Device =3D VIRTIO_MMIO_DEVICE_FROM_VIRTIO_DEVICE (This); > > > > - VIRTIO_CFG_WRITE (Device, VIRTIO_MMIO_OFFSET_QUEUE_PFN, > > - (UINT32)((UINTN)Ring->Base >> EFI_PAGE_SHIFT)); > > + if (Device->Version =3D=3D 1) { > > + VIRTIO_CFG_WRITE (Device, VIRTIO_MMIO_OFFSET_QUEUE_PFN, > > + (UINT32)((UINTN)Ring->Base >> EFI_PAGE_SHIFT)); > > + } else { > > + Address =3D (UINT64)Ring->Base; > > + VIRTIO_CFG_WRITE (Device, VIRTIO_MMIO_OFFSET_QUEUE_DESC_LO, > > + (UINT32)Address); > > + VIRTIO_CFG_WRITE (Device, VIRTIO_MMIO_OFFSET_QUEUE_DESC_HI, > > + (UINT32)RShiftU64(Address, 32)); > > + > > + Address =3D (UINT64)Ring->Avail.Flags; > > + VIRTIO_CFG_WRITE (Device, VIRTIO_MMIO_OFFSET_QUEUE_AVAIL_LO, > > + (UINT32)Address); > > + VIRTIO_CFG_WRITE (Device, VIRTIO_MMIO_OFFSET_QUEUE_AVAIL_HI, > > + (UINT32)RShiftU64(Address, 32)); > > + > > + Address =3D (UINT64)Ring->Used.Flags; > > + VIRTIO_CFG_WRITE (Device, VIRTIO_MMIO_OFFSET_QUEUE_USED_LO, > > + (UINT32)Address); > > + VIRTIO_CFG_WRITE (Device, VIRTIO_MMIO_OFFSET_QUEUE_USED_HI, > > + (UINT32)RShiftU64(Address, 32)); > > + > > + VIRTIO_CFG_WRITE (Device, VIRTIO_MMIO_OFFSET_QUEUE_READY, 1); > > + } > > > > return EFI_SUCCESS; > > } > > -- > > 2.31.1 > > > > > > > > > > >=20 >=20 >=20 >=20 >=20