From nobody Fri May 3 00:01:02 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+79351+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+79351+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1629110935; cv=none; d=zohomail.com; s=zohoarc; b=jG6YyBoaixhytRbIbVKx8TBFEfcKSqmIca3LzPs3ErbAjzcizr1nAKbFpuYvkAorEr1W4bKuP7VuPlE0oO/MpHExtH39JI/5DnEYM1ZLhOy9LX07/jPZ3abJv5UkGCvVkxW9E9mOSON4M08wYW6cidV3zYCLMl7AOymNyuNg3ig= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1629110935; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=IQuIx59yf2P0AF+QRTZ/3RiJeNK+Y7PSN7BEtn4bZAI=; b=fOAUV34CpzrHVL+fiUmvom9LQmB18TI0RSjpT6GWwzHlVNv397Kqfp7mdN/cR5lJqWxzAI3M1LcYFR0D7ssiQyjoxRR/qpCblK4kN34utqu/VFeRFKWQWpf9thSEoqOdZEl2bcMQNbTSu+FnVi4kBSuBCrAK7BOz8pGCOrE1o7M= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+79351+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1629110935503156.0086346901237; Mon, 16 Aug 2021 03:48:55 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id 16tFYY1788612xNOM2F1ZGVb; Mon, 16 Aug 2021 03:48:54 -0700 X-Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by mx.groups.io with SMTP id smtpd.web11.22352.1629110932840703941 for ; Mon, 16 Aug 2021 03:48:53 -0700 X-Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-247--hrkmaeRP7yWC3_N5Ma2Ig-1; Mon, 16 Aug 2021 06:48:50 -0400 X-MC-Unique: -hrkmaeRP7yWC3_N5Ma2Ig-1 X-Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id CA483192CC40 for ; Mon, 16 Aug 2021 10:48:49 +0000 (UTC) X-Received: from sirius.home.kraxel.org (unknown [10.39.193.216]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 11CEE5D6A8; Mon, 16 Aug 2021 10:48:46 +0000 (UTC) X-Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id A12D5180062B; Mon, 16 Aug 2021 09:11:09 +0200 (CEST) From: "Gerd Hoffmann" To: devel@edk2.groups.io Cc: Gerd Hoffmann , Philippe Mathieu-Daude Subject: [edk2-devel] [PATCH v2 1/4] OvmfPkg/Virtio10: Add virtio-mmio 1.0 defines Date: Mon, 16 Aug 2021 09:11:06 +0200 Message-Id: <20210816071109.101122-2-kraxel@redhat.com> In-Reply-To: <20210816071109.101122-1-kraxel@redhat.com> References: <20210816071109.101122-1-kraxel@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,kraxel@redhat.com X-Gm-Message-State: tsXVZaBs3rgB72sPv2rS2CjAx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1629110934; bh=n7zGTQmYXU9YBsKBRRAkGonUcbC9HSztkD88IY23Cbw=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=LtQN5ka7jCZcn1fOo2PWVkTYrnoTzDLM9JaUkEYzinGIeattKWkY4wKZ6p9WFlzkGEL WidiaDmwjKuWJpLgGgWOWozqJiz7T+uO8w6NpZoSkc0JzQtidD2ipFDjLDhGgDVlr56bv RvJbf2Ar36FFtI2fxca9qz0fofqQAL0YfwQ= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1629110937949100005 Content-Type: text/plain; charset="utf-8" Add defines for the config space offsets for virtio 1.0 mmio transport. Signed-off-by: Gerd Hoffmann Reviewed-by: Philippe Mathieu-Daude --- OvmfPkg/Include/IndustryStandard/Virtio10.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/OvmfPkg/Include/IndustryStandard/Virtio10.h b/OvmfPkg/Include/= IndustryStandard/Virtio10.h index 2c60be2b7c0c..a1712247e054 100644 --- a/OvmfPkg/Include/IndustryStandard/Virtio10.h +++ b/OvmfPkg/Include/IndustryStandard/Virtio10.h @@ -81,4 +81,16 @@ typedef struct { #define VIRTIO_F_VERSION_1 BIT32 #define VIRTIO_F_IOMMU_PLATFORM BIT33 =20 +// +// MMIO VirtIo Header Offsets +// +#define VIRTIO_MMIO_OFFSET_QUEUE_READY 0x44 +#define VIRTIO_MMIO_OFFSET_QUEUE_DESC_LO 0x80 +#define VIRTIO_MMIO_OFFSET_QUEUE_DESC_HI 0x84 +#define VIRTIO_MMIO_OFFSET_QUEUE_AVAIL_LO 0x90 +#define VIRTIO_MMIO_OFFSET_QUEUE_AVAIL_HI 0x94 +#define VIRTIO_MMIO_OFFSET_QUEUE_USED_LO 0xa0 +#define VIRTIO_MMIO_OFFSET_QUEUE_USED_HI 0xa4 +#define VIRTIO_MMIO_OFFSET_CONFIG_GENERATION 0xfc + #endif // _VIRTIO_1_0_H_ --=20 2.31.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#79351): https://edk2.groups.io/g/devel/message/79351 Mute This Topic: https://groups.io/mt/84920346/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Fri May 3 00:01:02 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+79354+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+79354+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1629110944; cv=none; d=zohomail.com; s=zohoarc; b=P72o5va0g+/89GawLCs6BM+fxeEGrG77wt/wZDie9afmdnCZz/M4QKWePDBnqlaRO61lNtjR6PwGkiQxgtLxnkotTJZQn49C0KIMhAUs2LoTwBHyF4FpjgmDM+z/uinV0S2AWFy1rPsZxtylRtgVvyDFWTJLIFQhtdxgkKbUixU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1629110944; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=NhpkjAXstOsfu/4tFm4qNHVxTmMGlcwJK72l8rslSp4=; b=Tkye3TFyChtu1uvWs7bGaUJZW1jkG3ALP1uXXAyKDQCET91xOEIw+Dn5G1lM3rN3kfm2Hgk4E8FDIE47/32iCImAsjT2DVWJ42RajLGIsWAqd1nH3kHaGXxzBu/PytdUpeCZtUlVFaSxRR2PDCHJlVRgiHxK38uz0bp4XqClmrE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+79354+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1629110944732198.04404708345453; Mon, 16 Aug 2021 03:49:04 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id T4zxYY1788612xkkzYPz93I2; Mon, 16 Aug 2021 03:49:04 -0700 X-Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by mx.groups.io with SMTP id smtpd.web11.22354.1629110943524556544 for ; Mon, 16 Aug 2021 03:49:03 -0700 X-Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-81-khg99PjGPMKTfD_-0jrfNQ-1; Mon, 16 Aug 2021 06:49:01 -0400 X-MC-Unique: khg99PjGPMKTfD_-0jrfNQ-1 X-Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 8507D107B7C6 for ; Mon, 16 Aug 2021 10:49:00 +0000 (UTC) X-Received: from sirius.home.kraxel.org (unknown [10.39.193.216]) by smtp.corp.redhat.com (Postfix) with ESMTPS id A0EF9785FD; Mon, 16 Aug 2021 10:48:56 +0000 (UTC) X-Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id A33411800924; Mon, 16 Aug 2021 09:11:09 +0200 (CEST) From: "Gerd Hoffmann" 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. Date: Mon, 16 Aug 2021 09:11:07 +0200 Message-Id: <20210816071109.101122-3-kraxel@redhat.com> In-Reply-To: <20210816071109.101122-1-kraxel@redhat.com> References: <20210816071109.101122-1-kraxel@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,kraxel@redhat.com X-Gm-Message-State: peb72GYsLXhcC0cNlMMXvyxsx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1629110944; bh=ZAteJjyk0PSs7jTeJ7WRZ5IRmwfVjmxdkoG7Q5Z5pQk=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=Y2mz3cFz/cUTZuf6uqE5YagwrDcFvPJbkTuEli7xS8S7yowLJMjuK/wC4CQhJJdXxog Q9vAPBiVSeJyKlN3FNTFY8Tn65/7lUcLj+NrHro4NosAV+14izT+jKbGUz+fY23xhJOu1 Hk814LZV4UdvbKAgHEnwBVNgrWgQ15KkFX4= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1629110947267100002 Content-Type: text/plain; charset="utf-8" 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/OvmfP= kg/Library/VirtioMmioDeviceLib/VirtioMmioDevice.h index ab53b90d51c9..8b19996b716f 100644 --- a/OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDevice.h +++ b/OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDevice.h @@ -26,6 +26,7 @@ =20 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/OvmfP= kg/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; =20 // // 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); =20 @@ -78,8 +76,19 @@ VirtioMmioInit ( return EFI_UNSUPPORTED; } =20 - 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; } =20 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 ( =20 Device =3D VIRTIO_MMIO_DEVICE_FROM_VIRTIO_DEVICE (This); =20 - 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= ); + } =20 return EFI_SUCCESS; } @@ -181,13 +183,36 @@ VirtioMmioSetQueueAddress ( ) { VIRTIO_MMIO_DEVICE *Device; + UINT64 Address; =20 ASSERT (RingBaseShift =3D=3D 0); =20 Device =3D VIRTIO_MMIO_DEVICE_FROM_VIRTIO_DEVICE (This); =20 - 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); + } =20 return EFI_SUCCESS; } --=20 2.31.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#79354): https://edk2.groups.io/g/devel/message/79354 Mute This Topic: https://groups.io/mt/84920350/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Fri May 3 00:01:02 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+79352+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+79352+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1629110940; cv=none; d=zohomail.com; s=zohoarc; b=jUyQj5OfWPueCqGx6VKaOKy0yjDDMdGfuv6maCZKFix5A/l9OpcTuzY2lRdkm7Prj2OC2/AKTQ0Bv8thGlzx9fxtO3uVszVyb95JTS91ttMc7SnE8tWlUInOVao77eYXpDJoELi8wG8N23a8Fr+NuSDXiAUTCF/+vsg3N1ebFhM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1629110940; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=Z9SzFLell8uqdJVPqclLN3e0upjItiwaDp/MCxfhouQ=; b=j5sjdju7p8U498Q+4vPWnCD+QYULwESZgEvgAOOG6rG2Ah2I7oE94MPzdzLBWhq7De8Rv+QJpiOqVcUceCf0+diY235VhRyVO9g6Y1Gmn7usXY8CQCgJQSRdIQ4SLE9FgU5AydFD6xx+Ot0LPL2nKUa0QTQaeUyCvoeu/jMSLNY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+79352+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 162911093999979.44003779505738; Mon, 16 Aug 2021 03:48:59 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id ivbRYY1788612xTiZChTsfWf; Mon, 16 Aug 2021 03:48:59 -0700 X-Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.groups.io with SMTP id smtpd.web10.22343.1629110937966695510 for ; Mon, 16 Aug 2021 03:48:58 -0700 X-Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-190-GXJclhqDNvS77Guu2QKEAg-1; Mon, 16 Aug 2021 06:48:55 -0400 X-MC-Unique: GXJclhqDNvS77Guu2QKEAg-1 X-Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 116B0EC1A1 for ; Mon, 16 Aug 2021 10:48:55 +0000 (UTC) X-Received: from sirius.home.kraxel.org (unknown [10.39.193.216]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 51D1F69CB8; Mon, 16 Aug 2021 10:48:51 +0000 (UTC) X-Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id A5DE91800925; Mon, 16 Aug 2021 09:11:09 +0200 (CEST) From: "Gerd Hoffmann" To: devel@edk2.groups.io Cc: Gerd Hoffmann Subject: [edk2-devel] [PATCH v2 3/4] OvmfPkg/VirtioMmioDeviceLib: Add default QueueNum for virtio 1.0 Date: Mon, 16 Aug 2021 09:11:08 +0200 Message-Id: <20210816071109.101122-4-kraxel@redhat.com> In-Reply-To: <20210816071109.101122-1-kraxel@redhat.com> References: <20210816071109.101122-1-kraxel@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,kraxel@redhat.com X-Gm-Message-State: Zm5ShOasIM7YLNXqUUohSlD2x1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1629110939; bh=17jnnvDFNTupCZwLOqk3qSCpjy96vS6/VWBO4GrbjHs=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=DziQPlUhAKy5ZXBi6vipIZO4K1aU+X9jbry4KoSBbV7wooZ4vXvWuiqE8rMcBlIql5c mHTxWTNRb3eiquMDvkwcT1nm4sWFJ2L2UG3GoiXEJFFB7QII2RgSUqEVyKHqrBeB5gkGe Y8TMvgeDE5N3jxrMPVuArXiGaHEZ3aZuDE0= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1629110942612100007 Content-Type: text/plain; charset="utf-8" Use QueueNumMax as QueueNum default for drivers which do not explicitly call VIRTIO_DEVICE_PROTOCOL->SetQueueSize(). Signed-off-by: Gerd Hoffmann --- .../Library/VirtioMmioDeviceLib/VirtioMmioDevice.h | 1 + .../VirtioMmioDeviceLib/VirtioMmioDeviceFunctions.c | 12 +++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDevice.h b/OvmfP= kg/Library/VirtioMmioDeviceLib/VirtioMmioDevice.h index 8b19996b716f..232393bb9114 100644 --- a/OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDevice.h +++ b/OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDevice.h @@ -27,6 +27,7 @@ typedef struct { UINT32 Signature; UINT32 Version; + UINT16 QueueNum; VIRTIO_DEVICE_PROTOCOL VirtioDevice; PHYSICAL_ADDRESS BaseAddress; } VIRTIO_MMIO_DEVICE; diff --git a/OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDeviceFunctions.= c b/OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDeviceFunctions.c index bf8523a6fb3b..c7a22c1e1cc4 100644 --- a/OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDeviceFunctions.c +++ b/OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDeviceFunctions.c @@ -83,7 +83,11 @@ VirtioMmioSetQueueSize ( =20 Device =3D VIRTIO_MMIO_DEVICE_FROM_VIRTIO_DEVICE (This); =20 - VIRTIO_CFG_WRITE (Device, VIRTIO_MMIO_OFFSET_QUEUE_NUM, QueueSize); + if (Device->Version =3D=3D 1) { + Device->QueueNum =3D QueueSize; + } else { + VIRTIO_CFG_WRITE (Device, VIRTIO_MMIO_OFFSET_QUEUE_NUM, QueueSize); + } =20 return EFI_SUCCESS; } @@ -171,6 +175,10 @@ VirtioMmioSetQueueSel ( =20 VIRTIO_CFG_WRITE (Device, VIRTIO_MMIO_OFFSET_QUEUE_SEL, Sel); =20 + if (Device->Version =3D=3D 1) { + Device->QueueNum =3D VIRTIO_CFG_READ (Device, VIRTIO_MMIO_OFFSET_QUEUE= _NUM_MAX) & 0xFFFF; + } + return EFI_SUCCESS; } =20 @@ -193,6 +201,8 @@ VirtioMmioSetQueueAddress ( VIRTIO_CFG_WRITE (Device, VIRTIO_MMIO_OFFSET_QUEUE_PFN, (UINT32)((UINTN)Ring->Base >> EFI_PAGE_SHIFT)); } else { + VIRTIO_CFG_WRITE (Device, VIRTIO_MMIO_OFFSET_QUEUE_NUM, Device->QueueN= um); + Address =3D (UINT64)Ring->Base; VIRTIO_CFG_WRITE (Device, VIRTIO_MMIO_OFFSET_QUEUE_DESC_LO, (UINT32)Address); --=20 2.31.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#79352): https://edk2.groups.io/g/devel/message/79352 Mute This Topic: https://groups.io/mt/84920347/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Fri May 3 00:01:02 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+79353+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+79353+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1629110939; cv=none; d=zohomail.com; s=zohoarc; b=iY4+y8HaWgN5otFCz6P8SRlE7DCFthmdYavrpt08zUdul/qeWHKa5Cmo3XqWWcL4FXI8hRdxVr72JqvPYX4z8Z1CwwM1VciyyM2I0O+pNxRKjW3JBxas84TjhAZ8Pr8YR7WggZZ9DSvKDo5MpTNk807/WCdu/JfWa82fuN2+K0s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1629110939; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=H3vU+uqizFS9ySiyCV7Zu3gFV/YZViMxpQ/iEDbRpR8=; b=fFZ3R3NiE6KHHV7BBWQZoGvRgg4vIr20KxB7Q1KyD84lHtTK5pj2jPm2aRnZYpmuh+iHwxb7nDH0UN53OR8mT8rcD47Gje/LnbUOOrXQ3Z3QR9Rio81nROhhdqE2P0pNA4QImgelcKayAawEeK6mD920gVQGiOYJUv55XgM9sko= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+79353+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1629110939455850.1384541799241; Mon, 16 Aug 2021 03:48:59 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id WWmfYY1788612xnhVexC7s8N; Mon, 16 Aug 2021 03:48:58 -0700 X-Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.groups.io with SMTP id smtpd.web08.22480.1629110937958525158 for ; Mon, 16 Aug 2021 03:48:58 -0700 X-Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-602-0rPidKQXORikOzfg8fL1iQ-1; Mon, 16 Aug 2021 06:48:56 -0400 X-MC-Unique: 0rPidKQXORikOzfg8fL1iQ-1 X-Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 4E1571082924 for ; Mon, 16 Aug 2021 10:48:55 +0000 (UTC) X-Received: from sirius.home.kraxel.org (unknown [10.39.193.216]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 529D119C44; Mon, 16 Aug 2021 10:48:51 +0000 (UTC) X-Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id A87031800926; Mon, 16 Aug 2021 09:11:09 +0200 (CEST) From: "Gerd Hoffmann" To: devel@edk2.groups.io Cc: Gerd Hoffmann Subject: [edk2-devel] [PATCH v2 4/4] OvmfPkg/VirtioMmioDeviceLib: Add virtio 1.0 feature bit handling Date: Mon, 16 Aug 2021 09:11:09 +0200 Message-Id: <20210816071109.101122-5-kraxel@redhat.com> In-Reply-To: <20210816071109.101122-1-kraxel@redhat.com> References: <20210816071109.101122-1-kraxel@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,kraxel@redhat.com X-Gm-Message-State: amNeabhfsyZkUmSjsnVVqpmDx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1629110938; bh=BB1L4h+rYnjsw+WGFrJkmFomj6yKRdnmxirGnWUksO4=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=WtTSvtej/y+X8nqBGS5Fqu4gjHMFTl7AWccoBQbz0lYAuzkdVmf2rYJZYAsnSDvPiWX 7x353hSeSaY3K01NwO5vsKTEey5AnNq2WyhFD2uu3gnRnHVXrrNJ2jT6w3+C/bKCr3dXH EV2QVHmBzb8Z44KUftEdxwCMgGXrxC5PldA= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1629110940643100001 Content-Type: text/plain; charset="utf-8" virtio 1.0 has 64 feature bits instead of 32. Signed-off-by: Gerd Hoffmann --- .../VirtioMmioDeviceFunctions.c | 28 +++++++++++++++---- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDeviceFunctions.= c b/OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDeviceFunctions.c index c7a22c1e1cc4..44fa24972ff4 100644 --- a/OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDeviceFunctions.c +++ b/OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDeviceFunctions.c @@ -20,6 +20,7 @@ VirtioMmioGetDeviceFeatures ( ) { VIRTIO_MMIO_DEVICE *Device; + UINT32 LowBits, HighBits; =20 if (DeviceFeatures =3D=3D NULL) { return EFI_INVALID_PARAMETER; @@ -27,7 +28,15 @@ VirtioMmioGetDeviceFeatures ( =20 Device =3D VIRTIO_MMIO_DEVICE_FROM_VIRTIO_DEVICE (This); =20 - *DeviceFeatures =3D VIRTIO_CFG_READ (Device, VIRTIO_MMIO_OFFSET_HOST_FEA= TURES); + if (Device->Version =3D=3D 1) { + *DeviceFeatures =3D VIRTIO_CFG_READ (Device, VIRTIO_MMIO_OFFSET_HOST_F= EATURES); + } else { + VIRTIO_CFG_WRITE (Device, VIRTIO_MMIO_OFFSET_HOST_FEATURES_SEL, 0); + LowBits =3D VIRTIO_CFG_READ (Device, VIRTIO_MMIO_OFFSET_HOST_FEATURES); + VIRTIO_CFG_WRITE (Device, VIRTIO_MMIO_OFFSET_HOST_FEATURES_SEL, 1); + HighBits =3D VIRTIO_CFG_READ (Device, VIRTIO_MMIO_OFFSET_HOST_FEATURES= ); + *DeviceFeatures =3D LShiftU64(HighBits, 32) | LowBits; + } =20 return EFI_SUCCESS; } @@ -238,11 +247,20 @@ VirtioMmioSetGuestFeatures ( =20 Device =3D VIRTIO_MMIO_DEVICE_FROM_VIRTIO_DEVICE (This); =20 - if (Features > MAX_UINT32) { - return EFI_UNSUPPORTED; + if (Device->Version =3D=3D 1) { + if (Features > MAX_UINT32) { + return EFI_UNSUPPORTED; + } + VIRTIO_CFG_WRITE (Device, VIRTIO_MMIO_OFFSET_GUEST_FEATURES, + (UINT32)Features); + } else { + VIRTIO_CFG_WRITE (Device, VIRTIO_MMIO_OFFSET_GUEST_FEATURES_SEL, 0); + VIRTIO_CFG_WRITE (Device, VIRTIO_MMIO_OFFSET_GUEST_FEATURES, + (UINT32)Features); + VIRTIO_CFG_WRITE (Device, VIRTIO_MMIO_OFFSET_GUEST_FEATURES_SEL, 1); + VIRTIO_CFG_WRITE (Device, VIRTIO_MMIO_OFFSET_GUEST_FEATURES, + (UINT32)RShiftU64(Features, 32)); } - VIRTIO_CFG_WRITE (Device, VIRTIO_MMIO_OFFSET_GUEST_FEATURES, - (UINT32)Features); =20 return EFI_SUCCESS; } --=20 2.31.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#79353): https://edk2.groups.io/g/devel/message/79353 Mute This Topic: https://groups.io/mt/84920348/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-