From nobody Sat Sep 21 02:46:01 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+79557+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+79557+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1629357936; cv=none; d=zohomail.com; s=zohoarc; b=glKA8wCq7cPBCbtVcGAF/mYHC2NfRJ6HSIn1UnW8wDzPyxxUhHQIzAMmJSNrJe/4+jXZL9lAc2XxR+HX9m0ymIgtybwiY32zvupYjD27ZZoyIG+0FsUfdNoAEmmW1Z1LIxIQNjrW0jbAbqZcZlOnuiRUtqGCsOn0FVzjX0PG4zY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1629357936; 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=YPwLL4AvbmDsiGdVby5aKO3lKwVnsbUb2fnhKiIOC2U=; b=lTWFqR9lAkigHYkMw9Bd6BFD7xRBE+t7t1p40z2th7tNWmAkk8zGVG9a35pCAGlBCrxyATicRmSO5thdEAxie4FfI9Voa48h/+1iOCZLzzEadnb/tRgZAjUDbJgynoGzrvJkjCCUoua/I9LvPsqRLmpFI7rM/vEcLoO4xfiFZVk= 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+79557+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 1629357936279328.6512910950727; Thu, 19 Aug 2021 00:25:36 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id EmMIYY1788612xUiAZFnrsfQ; Thu, 19 Aug 2021 00:25:35 -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.66765.1629357934664881736 for ; Thu, 19 Aug 2021 00:25:34 -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-249-6xjqUmpRPB6mlNLjsikZbA-1; Thu, 19 Aug 2021 03:25:32 -0400 X-MC-Unique: 6xjqUmpRPB6mlNLjsikZbA-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 B78D68799E0 for ; Thu, 19 Aug 2021 07:25:31 +0000 (UTC) X-Received: from sirius.home.kraxel.org (unknown [10.39.193.216]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 7D90261096; Thu, 19 Aug 2021 07:25:31 +0000 (UTC) X-Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id BC9D218007A6; Thu, 19 Aug 2021 09:25:17 +0200 (CEST) From: "Gerd Hoffmann" To: devel@edk2.groups.io Cc: Gerd Hoffmann Subject: [edk2-devel] [PATCH v4 6/7] OvmfPkg/VirtioMmioDeviceLib: virtio 1.0: Adapt feature bit handling Date: Thu, 19 Aug 2021 09:25:16 +0200 Message-Id: <20210819072517.1565797-7-kraxel@redhat.com> In-Reply-To: <20210819072517.1565797-1-kraxel@redhat.com> References: <20210819072517.1565797-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: n7tciRxss8CZhO1KCMei3KDNx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1629357935; bh=QTxngfi7RNMQldrv1nACG6PGlQigkBhBGOGpzRX4kHU=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=ovfQJgrECZVkiB2MvCpB1SGL5TZc1uwPugR9j5jOpYsTzNNYYwgY+uMFel484ytTddR wAWtORgGIGu1uz1zhQxfY/ldoQjNCx5exYCKBjtEKeePz+Ha1deUy923QmqN0mwQHeT45 38uLU2eORxt7FadU1Rng5Upv+uc6qOm2SKg= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1629357938412100001 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 b4711f9b42e6..c6b7b45dc792 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 (#79557): https://edk2.groups.io/g/devel/message/79557 Mute This Topic: https://groups.io/mt/84991750/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-