From nobody Mon Apr 29 16:13:53 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+79417+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+79417+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1629192218; cv=none; d=zohomail.com; s=zohoarc; b=Ke5kgljGfChxXCwgWRgFKvW9TdqyQ740PZMPl5IFT4XCYJ7OOcK/UIq4aK2Z6P41fpxrZaw9ZfJ2/FUX3QcBgN4xPsy5nsUvY1FRuocqsDQhQyqr+tQ9C+e5a/yL/RM1fbb6PuCLFls+vMjmqcTd8b9GmlRW7K1ppNg5J3nP7mw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1629192218; 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=YDu7GIZAbGQF23MWhdGs/bdQs8M9GYma1ITFEE5ipw8=; b=aCMN/BK6BUbK4DvrKwX9d4Sm/cDiB6p9hveDHWzILDfo1Ja5JK0vBqcO090Mwa4ESlxwmWYwI63uwbNBUYhaKcLskYAQJLdQZM3caGIK6ywpwWRaTGzRdst1Y01Eq4S/ArQ/0egEXJPzpMBzClQxPAM99pW+tSn89c6XQfdRM64= 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+79417+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 1629192218847724.4240267335807; Tue, 17 Aug 2021 02:23:38 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id Fl8HYY1788612x6oh091h7qH; Tue, 17 Aug 2021 02:23:38 -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.web12.36952.1629192217552624028 for ; Tue, 17 Aug 2021 02:23:38 -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-375-6St1Wk7RPgOPYO7sCYU-CQ-1; Tue, 17 Aug 2021 05:23:35 -0400 X-MC-Unique: 6St1Wk7RPgOPYO7sCYU-CQ-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 C0D341853027 for ; Tue, 17 Aug 2021 09:23:34 +0000 (UTC) X-Received: from sirius.home.kraxel.org (unknown [10.39.193.216]) by smtp.corp.redhat.com (Postfix) with ESMTPS id EA2A519C44; Tue, 17 Aug 2021 09:23:30 +0000 (UTC) X-Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 5802E1800904; Tue, 17 Aug 2021 11:23:29 +0200 (CEST) From: "Gerd Hoffmann" To: devel@edk2.groups.io Cc: Gerd Hoffmann , Philippe Mathieu-Daude Subject: [edk2-devel] [PATCH v3 1/4] OvmfPkg/Virtio10: Add virtio-mmio 1.0 defines Date: Tue, 17 Aug 2021 11:23:26 +0200 Message-Id: <20210817092329.808150-2-kraxel@redhat.com> In-Reply-To: <20210817092329.808150-1-kraxel@redhat.com> References: <20210817092329.808150-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: krKXIS80I38E7q91odul928Vx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1629192218; bh=yXkKn6XlaM7mLcJHghk1a2PXdpJwNtPeTy1rOOe12qM=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=QO6rtl/b04PBWLOy6Nc74UVPwj+kA666+JRjCmSySxu3vW+9JffmqwnF941WMk0uBM6 NV7nLE081cbvXNuQzpHDNtDwQL7HAiCEnL6r9X7Uoj0zHJCBTwFNhLU1Chqzp8LEb724C +ny8hvNnXyv7FoEz8MRyEwZWLMERdh8/2kI= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1629192220544100002 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 (#79417): https://edk2.groups.io/g/devel/message/79417 Mute This Topic: https://groups.io/mt/84943949/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 Mon Apr 29 16:13:53 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+79420+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+79420+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1629192224; cv=none; d=zohomail.com; s=zohoarc; b=RmaBgP12toccmxiJKQ4Ed1Jx+qKxOUTq+lO0anXjfqYkm73SDguGZX0JnTrr9HMwvERInoW5wzN6llmwIj+icDT/P9uFOf7j41OFRFO543jf/7MT/McsQGtGrVINVbJUFLGejy36Mh271B928QJu4WES4a8c5flPlvZc+MHozxY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1629192224; 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=2QnEfKsgKx27bTgDXtDxeB8uEg2OWRn6+U1g4ddgdQ8=; b=Fs7mTspsgXE8gnFco+DOltjuGhDwsowOGOjTquS2sXgpgBGwNCc5kZmD3Js5x71iN9x4BxOxtpFbMCirqdN/UMe7F2hXVNy9YjwapT61S7PYpAaV8VhPOMANTQylQ4NMeDnY7u8n1wezw636fwltiZb5u7IBz21uY8kxDXscN9w= 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+79420+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 1629192224460845.2367198369961; Tue, 17 Aug 2021 02:23:44 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id HmMjYY1788612xE6c0kmEwtL; Tue, 17 Aug 2021 02:23:44 -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.web12.36953.1629192223280318773 for ; Tue, 17 Aug 2021 02:23:43 -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-292-s-nl_YzYNkuzHSZZpH3qkQ-1; Tue, 17 Aug 2021 05:23:41 -0400 X-MC-Unique: s-nl_YzYNkuzHSZZpH3qkQ-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 9337D87D551 for ; Tue, 17 Aug 2021 09:23:40 +0000 (UTC) X-Received: from sirius.home.kraxel.org (unknown [10.39.193.216]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 62E3960FB8; Tue, 17 Aug 2021 09:23:36 +0000 (UTC) X-Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 623F51800905; Tue, 17 Aug 2021 11:23:29 +0200 (CEST) From: "Gerd Hoffmann" To: devel@edk2.groups.io Cc: Gerd Hoffmann , Philippe Mathieu-Daude Subject: [edk2-devel] [PATCH v3 2/4] OvmfPkg/VirtioMmioDeviceLib: Add virtio 1.0 support. Date: Tue, 17 Aug 2021 11:23:27 +0200 Message-Id: <20210817092329.808150-3-kraxel@redhat.com> In-Reply-To: <20210817092329.808150-1-kraxel@redhat.com> References: <20210817092329.808150-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: yx69xsi7ertEoKT9uIsnME0sx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1629192224; bh=3DgQfyQu/OmKh03BgBnt5BOqGq+X0n+6Bczms+97JqQ=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=m/FdVrp9K2oS8g1jBqDJdrSj7NU9Gymu1TkAyN/jPJw0jeWomqZa30nHL8glhcpHNHD isjWKFKa9EtXv3lJo81D+C9AiHE5bruMJraRFuhDe8U9Ln7AannjgARLE5BtloGyD+PU3 5MfVDUzS0gMR3HpdG1fnfwjwGr2r6ajELrM= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1629192224982100002 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 | 4 +++ .../VirtioMmioDeviceLib/VirtioMmioDevice.c | 17 +++++++--- .../VirtioMmioDeviceFunctions.c | 31 +++++++++++++++++-- 3 files changed, 45 insertions(+), 7 deletions(-) diff --git a/OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDevice.h b/OvmfP= kg/Library/VirtioMmioDeviceLib/VirtioMmioDevice.h index ab53b90d51c9..0c2f99633c46 100644 --- a/OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDevice.h +++ b/OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDevice.h @@ -23,9 +23,13 @@ #include =20 #define VIRTIO_MMIO_DEVICE_SIGNATURE SIGNATURE_32 ('V', 'M', 'I', 'O') +#define VIRTIO_MMIO_DEVICE_VERSION_0_95 1 +#define VIRTIO_MMIO_DEVICE_VERSION_1_00 2 + =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..a97ef9352d0f 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 VIRTIO_MMIO_DEVICE_VERSION_0_95: + 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 VIRTIO_MMIO_DEVICE_VERSION_1_00: + 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..a0ee8e5f3c86 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 VIRTIO_MMIO_DEVICE_VERSION_0_95) { + 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 VIRTIO_MMIO_DEVICE_VERSION_0_95) { + 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 (#79420): https://edk2.groups.io/g/devel/message/79420 Mute This Topic: https://groups.io/mt/84943952/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 Mon Apr 29 16:13:53 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+79419+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+79419+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1629192220; cv=none; d=zohomail.com; s=zohoarc; b=YjrFGhVfXqZhrLUb2vQzWg6sL4PX61CbRlfydzDfUPtdK3xQ9sPW2ErIucQanN8A4hhHBjBbbA6SbC+oxXcQ1mgbBtixFNpx1TXO9nryRA/KW/zJu5c/8MLi/Tvhi73fNhNkT0O2up092C/aTfMyS7AmIcSa4fj335IZT0gt904= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1629192220; 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=gGpnfGgtHl62abBXYiQJoLZZeBAp5weZXK+9n2/Yi9g=; b=NiHS7lsKkSwTc4GGXTuJPfEFAfL80oI2tq08I/c3hnSdBL6Nr+j49U1gPSFj/158l6wpWu1GHuS9itsg5H2xldizbWGs6LtohawjKriU1ucYCpSujHTrdCrmd2OYbaMJoY0ZJUT4ZKOpy4zts8E7HNm07+HaBHY46pbKwW/vPnA= 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+79419+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 162919222053892.71494688861799; Tue, 17 Aug 2021 02:23:40 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id 72h3YY1788612xSUjtaJ4BQ3; Tue, 17 Aug 2021 02:23:40 -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.36839.1629192219569659445 for ; Tue, 17 Aug 2021 02:23:39 -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-448-neBIH5zmP4agNcXNcaU3KA-1; Tue, 17 Aug 2021 05:23:37 -0400 X-MC-Unique: neBIH5zmP4agNcXNcaU3KA-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 9070D94DC7 for ; Tue, 17 Aug 2021 09:23:36 +0000 (UTC) X-Received: from sirius.home.kraxel.org (unknown [10.39.193.216]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 55F0819C44; Tue, 17 Aug 2021 09:23:36 +0000 (UTC) X-Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 6C4D61800906; Tue, 17 Aug 2021 11:23:29 +0200 (CEST) From: "Gerd Hoffmann" To: devel@edk2.groups.io Cc: Gerd Hoffmann Subject: [edk2-devel] [PATCH v3 3/4] OvmfPkg/VirtioMmioDeviceLib: Add default QueueNum for virtio 1.0 Date: Tue, 17 Aug 2021 11:23:28 +0200 Message-Id: <20210817092329.808150-4-kraxel@redhat.com> In-Reply-To: <20210817092329.808150-1-kraxel@redhat.com> References: <20210817092329.808150-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: tTBxG9G3eFLvwonhOsJwcieyx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1629192220; bh=9h8v+eIKgUbpYmlLL1MHvPFfjH/7AnFx/w0xIReWVLU=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=JRabsBpiu7dNXpswX1e46DC4nSloLFcOYOuI3KGmdbfdO/3Yah2Shr7psb+WYZmWFR9 yiJ6UGISpthOvMoIwDaEPmO4/v6LB/whWq0eUiX+1Y5dFw70dlg0jrQkFi71XqM4GbwGt DO6eu8zWvWguRo4VgM60JlTga2EGizaBqeM= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1629192222564100010 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 0c2f99633c46..5ad951f4154a 100644 --- a/OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDevice.h +++ b/OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDevice.h @@ -30,6 +30,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 a0ee8e5f3c86..b9ee407eddc4 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 VIRTIO_MMIO_DEVICE_VERSION_0_95) { + 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 VIRTIO_MMIO_DEVICE_VERSION_0_95) { + 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 (#79419): https://edk2.groups.io/g/devel/message/79419 Mute This Topic: https://groups.io/mt/84943951/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 Mon Apr 29 16:13:53 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+79421+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+79421+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1629192227; cv=none; d=zohomail.com; s=zohoarc; b=US9748w7aQcGL4Rag64r6aAfyQt1lOwt3N5GstJ8MqaDJGv3CjkcQ4sxmZdfuW9bZucqdhDiuXNCs1w2OBbmg3mQq6yD2VYhFmM6SIsBduq9wVh/tPe3L/n9+CWCJzoHs0p2YZTsn/1Qw7DnB1TZuA5gaIMcexmqd591Y/wbj6c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1629192227; 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=IEN11uWIO3EZh/QQb2epkNqu6qsF2Hh41o/cIyJj2CA=; b=jS5PmBIaLvE8gxXW0GZPOfpbd7YS2GIxXwPLXQldmSyC/dWk/Fjo/ckf73Mks9u6Irbzg1d9ONpK2ELisqcqwB/w7FRsRlnGgRxZQQ6U5JuNBkQmZNjl2SH3KqcHCki1+dluRaUDkd+jnvEozMNFWll7cR6N2qjxTi1og6qIWNk= 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+79421+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 1629192227673573.1416629081943; Tue, 17 Aug 2021 02:23:47 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id QIGfYY1788612xE66l2tOpUS; Tue, 17 Aug 2021 02:23:47 -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.web12.36954.1629192226539825408 for ; Tue, 17 Aug 2021 02:23:46 -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-13-1gQfwM06Mr2u_shzIkplhQ-1; Tue, 17 Aug 2021 05:23:42 -0400 X-MC-Unique: 1gQfwM06Mr2u_shzIkplhQ-1 X-Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id BDC0C107ACF5 for ; Tue, 17 Aug 2021 09:23:41 +0000 (UTC) X-Received: from sirius.home.kraxel.org (unknown [10.39.193.216]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 086565DA2D; Tue, 17 Aug 2021 09:23:38 +0000 (UTC) X-Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 703DF1800909; Tue, 17 Aug 2021 11:23:29 +0200 (CEST) From: "Gerd Hoffmann" To: devel@edk2.groups.io Cc: Gerd Hoffmann Subject: [edk2-devel] [PATCH v3 4/4] OvmfPkg/VirtioMmioDeviceLib: Add virtio 1.0 feature bit handling Date: Tue, 17 Aug 2021 11:23:29 +0200 Message-Id: <20210817092329.808150-5-kraxel@redhat.com> In-Reply-To: <20210817092329.808150-1-kraxel@redhat.com> References: <20210817092329.808150-1-kraxel@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 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: wAXxbiQFAzipl9fln2MRZhnox1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1629192227; bh=UUXGn6RXSCTXOPxif1TT6fSbWr2jnQ1DGowujEft+KM=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=G1o5JMeYqvV9MsTRMjmDIKcLgHDcHxfN5MpN4Z7tIjy+K5tItEThRQq7IGvDzbp7B2x DPLPHXZGpLaeKQU0yL0RN3HLla7F68OdueKfbqOB8STxm0TB3ZJ6jngO5jM5AwfyUzf4s GSMxZI4u9WogkGGLJwCD1Rtedhsuy9u5DbU= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1629192229338100002 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 b9ee407eddc4..7215e0414c24 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 VIRTIO_MMIO_DEVICE_VERSION_0_95) { + *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 VIRTIO_MMIO_DEVICE_VERSION_0_95) { + 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 (#79421): https://edk2.groups.io/g/devel/message/79421 Mute This Topic: https://groups.io/mt/84943953/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-