From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM03-CO1-obe.outbound.protection.outlook.com (mail-co1nam03on0052.outbound.protection.outlook.com [104.47.40.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 81EC921D2E63C for ; Wed, 23 Aug 2017 05:20:28 -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=3xVfYAsNQZXPwFsXP+QSkwK/DrAdHCxPMydDLhDKi9s=; b=poPTljZURRxFsPd4BPb/nCKyTJvLseZwRBfenUVxavjUUu5n4piRJLzQGtsnyE9Oa0Hi0puyXTzdDQ7B3R8H8o91d81Y43KlPMLenTcRUIGjo6Oz3yvyhpoIl2W84SmmZzhyd6hqWO/nHGFv5JmJNmzjjhE8NYAh45z28zDXHm4= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; Received: from brijesh-build-machine.amd.com (165.204.77.1) 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; Wed, 23 Aug 2017 12:23:00 +0000 From: Brijesh Singh To: edk2-devel@lists.01.org Cc: Brijesh Singh , Ard Biesheuvel , Jordan Justen , Tom Lendacky , Laszlo Ersek Date: Wed, 23 Aug 2017 08:22:31 -0400 Message-Id: <1503490967-5559-8-git-send-email-brijesh.singh@amd.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1503490967-5559-1-git-send-email-brijesh.singh@amd.com> References: <1503490967-5559-1-git-send-email-brijesh.singh@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: DM5PR12CA0069.namprd12.prod.outlook.com (2603:10b6:3:103::31) To DM2PR12MB0155.namprd12.prod.outlook.com (2a01:111:e400:50ce::18) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0f103822-c6bc-4142-0f98-08d4ea21b22c 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:F3PPqLeKJzdhSKfyM3UDdIWvnSTk0Ai4e+X/OQl83V5O78XK3EzP3tIzvgIV/DCWGB6ItoMyJxomm7lC4cxwIrKV8zkvxauPLI44JX+X54yttr3XN1xkWNE0T22YnCerT7Uozqgv6QUvD3Ej7f0YyDaFmZrGwXQxM/NKQbYO9L5aTgWenP0IXC0cPeWzFdbEh9Yk0F3BNtadIc88uHaFl6lldam1otCwgPSctgqQR8MUatxHYRFn7+fjVU9p/wct; 25:+e89CijOpgiGMcFxPUoAAXzodYqh/Ju7+C0nJm8fxOtpHnETGcaq/QH/wflsPUizWpfuseNSeNsI9XfjZEQkjSTOnZoUXaJNMhws/o/NUITxi/XA+rfoaHzB2RgkkUOApST8nD8aftiwhGJwjDG/Sz5AIr+HVxmtKAGwXrk0vQN+A0oHs1Mp2zs3ihpr+jpHJ0X8b0sOSnEwVUrw+y+DQG+AUwm8Irg0cUyYsdM4TVxywRvmlhB2BNG2Vf/BXHDPPkfcxKtxnyBdmQ6lGLI1c5nBfJ65mQml2vhNZHZ2YZArUAL2GDPn7HwIrtNkDq0CdvFMsaSJ5oI9ZMrsm3ho/w==; 31:CHMRK3Nl8VThdNcJ0xXWp/lx9pLf/FP9xBk+cf8fAp4FrlbLhVs6oYIk6GZA6BG6Ov+0ykCUqGaCSLB1se0jL/T6gl6Q0xo8jA4ofhP7KW5qls5wX7NQLg012sOrhaEwXBT02C8C00JrOLyf94Jcq0h/Sl3+sNKlw3VoVpJD5r06H2c/XuE869UTO4bCkbrUpwkdj/2g1kBXVGbVUB+vr4kCEcvvcnplkrzS+zhjDY8= X-MS-TrafficTypeDiagnostic: DM2PR12MB0155: X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0155; 20:jiqSQXGJNmmI46AcTorUipLRXQtYp0E5D0RmpGi4Y4BOHxNB+91osWEXcVr1M/PG8djVsI8xC4kX+hbwWmyKE4FtWxZUDaUX+p0qBYb/ziOjIxEtcQ59tX07xOsfw3hgA3nYzhSd/DQqOws5QgfUmb2dO3dJ+/8Nme47DeDuwqERTp3XElX4F95w9uSDUfxPUCmneVb9Wp3fRkYA31CVScwMqi9nk14xilA0QhxOeovjH+dRbNxRnVyXxOT698outJu/AjuwmyOqUa4nO0V05v9P78JrAGsd6w2DNzzIhrUER4DaQVJXaqv1n5k6gGAgFD5CyCeoLT3Xhk1HlwuPsphzwTWetvENoYxw97YAK0Fj1jnpVRQpH4obEuG2G6rOQRxkYbz9+Z/AHTKWCMotvG9QsXNwulB/wHatHQCe1inFpz1MCsoTfWD6q/X8GvcHF5fdRN4/8CkYDsF83gtE5JGQPX5ZYs0Riyu2N30ayTmxnk+dtruZ0/h6cbydr+MR; 4:PATscXVJ0I0pvrNLNDy23rbAFQ8i1vDTG0yLaA2SX8O0DlpB82KYMJlkZOp8UH3wfMfAawT6NyNBBGrDyvc5ltqsv/VYctgjRVWimy6SeXiNvbqBJPX5JRch/F/daJ1zqujFHWsbKCh0M/Ukqr3kNufBgBHLDU8JuoXE/Hu/oyNy7NC3PBQ7VKqEj32fSdA5wStkdigJ0hixwMCuHsLt/yCHxPTdxGA2I2NPpsVMkpcm2zLJo9E69JN34zRoc7F9eNQqpH44vo49unwPyiHpTFW+cb/9O2ji88+CVhoT/V1sse2mvWgHni0gIMBt/gW6QsAG47yDWz8M/etQc9HpqA== X-Exchange-Antispam-Report-Test: UriScan:(767451399110)(228905959029699); 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)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123560025)(20161123564025)(20161123558100)(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: 040866B734 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(7370300001)(4630300001)(979002)(6009001)(39860400002)(189002)(199003)(575784001)(305945005)(47776003)(97736004)(101416001)(110136004)(6666003)(189998001)(478600001)(7736002)(3846002)(66066001)(5003940100001)(6116002)(6486002)(48376002)(86362001)(105586002)(2950100002)(4326008)(106356001)(36756003)(6916009)(50466002)(2906002)(50226002)(42186005)(2351001)(33646002)(53416004)(25786009)(7350300001)(81156014)(76176999)(5660300001)(68736007)(54906002)(8676002)(53936002)(50986999)(81166006)(2361001)(19627235001)(969003)(989001)(999001)(1009001)(1019001); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR12MB0155; H:brijesh-build-machine.amd.com; 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: =?us-ascii?Q?1; DM2PR12MB0155; 23:QcMeC1Hfy+0SMvnEi/TX5eF2e3KCRdeixe0Dzf5MO?= =?us-ascii?Q?S/f9tz5LQ7Jm2kR8APKInemBJ42nEwEYhx8tw0aPd4oYFgMI0j21T0AxXonQ?= =?us-ascii?Q?Vum0t1nKwztpXzCVrsdfEBph7rjYMhpgGsTT2HYwfOWjuArDUw6DUUomg7mi?= =?us-ascii?Q?u5SuS/6mEpIbs7x56Mg6A67Zdr1vVPHwxgq9aaC5Cgb9SrVphavLyz9frPbl?= =?us-ascii?Q?6+C7T4yKNfKgcCoJrtbSpCLoKvy4V3VJg5BiQTi4iS+uZWGUI026zKBay8yT?= =?us-ascii?Q?JMIvr5vWWGX2GMAoNpbHCXWE7U2ltdgU131A+UqCWES19lQ5kmQw0E9R6Mtx?= =?us-ascii?Q?W3v8QzrldwNnj5zBswMiVf+2sdSaOroA4DmOWrjGbf9KGPgdl7LmbtNgLM1G?= =?us-ascii?Q?YwOG4orn9VHTGP69lKsTIWasuJBjkM8UvBMz89HLQIPloq0tgMX8lXJ8RBVZ?= =?us-ascii?Q?Ks2r6cIr7NCuTIKnlTTXN6qMs+t3CAddtviNjIzcoecYjjgG9Ypa/ZdjVd0K?= =?us-ascii?Q?Q2gb5VWslTi/K9jrFOGCGbBQ9QYujvBDvcpZaOOPsdjQ+lDy6PG6sNRuXNjR?= =?us-ascii?Q?mYcRh6ziPxvWAGUUCaMiPXQ929Q4/qbz8zfSvXfIfFayzmP156kdNNk8+fdQ?= =?us-ascii?Q?1Ckv9OGpZD/iTsoBCeJPq2AI6GkHXn28NM2QFNppmocxubqJaTIn/Ia+HHr+?= =?us-ascii?Q?vTf/3xhbTdtBT6ZL6Yrca7U42nGpP80Fh8hsjL6bXDWWKDK8vpuOvMsa2CX9?= =?us-ascii?Q?WZoRKLW6J493Mlb6NDQMSzONOTdIX2RxVySaH+KgKdz+hIz/B8htRELjh7sw?= =?us-ascii?Q?WTPMId+R6l9/3UUUgFvNtYkrTvinfD49VUf5JeS2r3TJjGIMFVrfl/X/R7DL?= =?us-ascii?Q?Ux33nAvZvpBZB4jW8518pxid6XWpijbtDjx/5G+eRwQ6ZnkISwQqN8qoxwNQ?= =?us-ascii?Q?Rz9Kmjt9j9naFh04qCb35zrsoinVnAdcPdFMVYp/DArKXNy8OZ/SedDx2e6g?= =?us-ascii?Q?paqg8Kmsm/S5lXbFrm+vX7kErwCi3mEa1NZWOWiFwTl5KPLwZF6VFu9rYo0r?= =?us-ascii?Q?0IDLahHAoPBPNAmpITmmrWXmNGDdANYPXCVKdy8s8wor3OnZmPXYPRiwbTge?= =?us-ascii?Q?bVMTy2Mmjj8OBXvzCU3ScVqJ56ZUu3vZEI+XSfa5o9gUqSDNy92Hxt2de0Zq?= =?us-ascii?Q?gSl5ieA5GUrEDZjsMvb/g486JdH6LfGb7Nd1nsWMLyIqWADx871WTjcZuqra?= =?us-ascii?Q?3PHvjYHQG7zt+PKLmC+qvDSOgROgmnHu1wx/JbgyOi5STblEsoRppiKQnybf?= =?us-ascii?B?Zz09?= X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0155; 6:P5D4Y4onl0qv9Ue+z/z2JuuB7sz7b3YZ877HxnIj576gP5ku3X7nJVsb4S7nuhdAulNI0s/+iq0QmUiWubqIJMYN1TawpmdP6SxxP2h//Z0Yg8qAA+eIFiy2rjm4la5b/oobUp+F+gGiqMi4M/X+25LXpH1wyYt3EZEWFGE5j3YCHciGhbDgw8funO4LR7DAFbbsd5LOHbrX/r62LiaNgBI/lk1WPIZV2/ghlJshkv7LTa6ztmub7RE7cScFWZIE0w62css9YL0luvAZtPZHS4jENbVOPJPPzetJAAxFj+H4U0I1xtXbjEsOCYENI4sOYJavEZfonfJXLG+Ul/+z+A==; 5:vXP70kJyg9DGIzmoH8chhDHbQbW1L/BUWuKaeZOOVjKcbZTnlosgkIryyCDStXO5qrtYz5Bpd1MMyNxGX8LhvEBYNRUjwDjAZgmum6gzZ8Rtd6AFVFq1zaUQJocWRvp8vyUsfLgQ/Sw7Iy+tEg6tSA==; 24:lxaUlzQhysgLf0d25tFIjiUur/hWSZwr1XWOqvc+NbNRhw8yDxPWIhSYPe27UoSlWuPpHgCchgcKUkjJE0kl5l2ViKjhZbMwg5LZ2dsZGG8=; 7:jcKc+ACBT4HSFq0w0qiqsB+0enhZB+xwKhuoaIfanDMaMHGRBJW+XRVug+gNeqK+DU06OFlxhZh3qGdMOPsdioPxEGyLPVp6zl2RfHVYtjKoiLF/6XQZkbfpqvrYpbgm2+OxVV6LqSUYgDGm7WRBkU2j80tJ9W9tqTPCPm/Lac4M9KJdMrYCZBsVdSlqry1ZNJUBqILooKw14yrkVpQif5JhykmFgX8DQEvRP6gF48g= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0155; 20:oZyg1vR6tq3W6Icu2SxNYdSKl+EChxXDhYa7ykp3f9vh8yFpvKzg21IMXzn/C/6+rbd+8IfOqi8zYaVwZE2TxxULiVt8zwPw/XYs6qNVXcWCwTQs9qBjDtDmweqwuNkr6Ocui2ULeHaY9VdteakxkET8Iz2b4Q93WdV6cYnFbpEzBk4Y7zLOmJ15kIZtDKkx7bht54hMP90WzslQeTNllH/jNKezf5lSivCfQ0NX/zuzcCak8XsSJ1tLOFLSC+rh X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Aug 2017 12:23:00.8416 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR12MB0155 Subject: [PATCH v3 07/23] OvmfPkg/Virtio: take RingBaseShift in SetQueueAddress() 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: Wed, 23 Aug 2017 12:20:28 -0000 Content-Type: text/plain For the case when an IOMMU is used for translating system physical addresses to DMA bus master addresses, the transport-independent virtio device drivers will be required to map their VRING areas to bus addresses with VIRTIO_DEVICE_PROTOCOL.MapSharedBuffer() calls. VirtioRingMap() maps the ring buffer system physical to a bus address. When an IOMMU is used for translating the address then bus address can start at a different offset from the system physical address. - MMIO and legacy virtio transport do not support IOMMU to translate the addresses hence RingBaseShift will always be set to zero. - modern virtio transport supports IOMMU to translate the address, in next patch we will update the Virtio10Dxe to use RingBaseShift offset. Suggested-by: Laszlo Ersek Cc: Ard Biesheuvel Cc: Jordan Justen Cc: Tom Lendacky Cc: Laszlo Ersek Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Brijesh Singh --- OvmfPkg/Include/Protocol/VirtioDevice.h | 19 +++++++++++++++++-- OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDevice.h | 3 ++- OvmfPkg/VirtioPciDeviceDxe/VirtioPciDevice.h | 3 ++- OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDeviceFunctions.c | 5 ++++- OvmfPkg/Virtio10Dxe/Virtio10.c | 5 ++++- OvmfPkg/VirtioBlkDxe/VirtioBlk.c | 2 +- OvmfPkg/VirtioGpuDxe/Commands.c | 6 +++++- OvmfPkg/VirtioNetDxe/SnpInitialize.c | 2 +- OvmfPkg/VirtioPciDeviceDxe/VirtioPciFunctions.c | 5 ++++- OvmfPkg/VirtioRngDxe/VirtioRng.c | 2 +- OvmfPkg/VirtioScsiDxe/VirtioScsi.c | 2 +- 11 files changed, 42 insertions(+), 12 deletions(-) diff --git a/OvmfPkg/Include/Protocol/VirtioDevice.h b/OvmfPkg/Include/Protocol/VirtioDevice.h index 9a01932958a2..2e3a6d6edf04 100644 --- a/OvmfPkg/Include/Protocol/VirtioDevice.h +++ b/OvmfPkg/Include/Protocol/VirtioDevice.h @@ -156,7 +156,21 @@ EFI_STATUS @param[in] This This instance of VIRTIO_DEVICE_PROTOCOL @param[in] Ring The initialized VRING object to take the - addresses from. + addresses from. The caller is responsible for + ensuring that on input, all Ring->NumPages pages, + starting at Ring->Base, have been successfully + mapped with a single call to + This->MapSharedBuffer() for CommonBuffer bus + master operation.. + + @param[in] RingBaseShift Adding this value using UINT64 arithmetic to the + addresses found in Ring translates them from + system memory to bus addresses. The caller shall + calculate RingBaseShift as + (DeviceAddress - (UINT64)(UINTN)HostAddress), + where DeviceAddress and HostAddress (i.e., + Ring->Base) were output and input parameters of + This->MapSharedBuffer(), respectively. @retval EFI_SUCCESS The data was written successfully. @retval EFI_UNSUPPORTED The underlying IO device doesn't support the @@ -166,7 +180,8 @@ typedef EFI_STATUS (EFIAPI *VIRTIO_SET_QUEUE_ADDRESS) ( IN VIRTIO_DEVICE_PROTOCOL *This, - IN VRING *Ring + IN VRING *Ring, + IN UINT64 RingBaseShift ); /** diff --git a/OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDevice.h b/OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDevice.h index e5881d537f09..e6279159f8ba 100644 --- a/OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDevice.h +++ b/OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDevice.h @@ -115,7 +115,8 @@ VirtioMmioSetQueueSel ( EFI_STATUS VirtioMmioSetQueueAddress ( IN VIRTIO_DEVICE_PROTOCOL *This, - IN VRING *Ring + IN VRING *Ring, + IN UINT64 RingBaseShift ); EFI_STATUS diff --git a/OvmfPkg/VirtioPciDeviceDxe/VirtioPciDevice.h b/OvmfPkg/VirtioPciDeviceDxe/VirtioPciDevice.h index 41df5a98e560..1f0dc45d501e 100644 --- a/OvmfPkg/VirtioPciDeviceDxe/VirtioPciDevice.h +++ b/OvmfPkg/VirtioPciDeviceDxe/VirtioPciDevice.h @@ -126,7 +126,8 @@ EFI_STATUS EFIAPI VirtioPciSetQueueAddress ( IN VIRTIO_DEVICE_PROTOCOL *This, - IN VRING *Ring + IN VRING *Ring, + IN UINT64 RingBaseShift ); EFI_STATUS diff --git a/OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDeviceFunctions.c b/OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDeviceFunctions.c index 644ec65e1788..67458e56231b 100644 --- a/OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDeviceFunctions.c +++ b/OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDeviceFunctions.c @@ -181,11 +181,14 @@ VirtioMmioSetQueueSel ( EFI_STATUS VirtioMmioSetQueueAddress ( IN VIRTIO_DEVICE_PROTOCOL *This, - IN VRING *Ring + IN VRING *Ring, + IN UINT64 RingBaseShift ) { VIRTIO_MMIO_DEVICE *Device; + ASSERT (RingBaseShift == 0); + Device = VIRTIO_MMIO_DEVICE_FROM_VIRTIO_DEVICE (This); VIRTIO_CFG_WRITE (Device, VIRTIO_MMIO_OFFSET_QUEUE_PFN, diff --git a/OvmfPkg/Virtio10Dxe/Virtio10.c b/OvmfPkg/Virtio10Dxe/Virtio10.c index 89ccac8c1c04..ef9a00710668 100644 --- a/OvmfPkg/Virtio10Dxe/Virtio10.c +++ b/OvmfPkg/Virtio10Dxe/Virtio10.c @@ -489,7 +489,8 @@ EFI_STATUS EFIAPI Virtio10SetQueueAddress ( IN VIRTIO_DEVICE_PROTOCOL *This, - IN VRING *Ring + IN VRING *Ring, + IN UINT64 RingBaseShift ) { VIRTIO_1_0_DEV *Dev; @@ -497,6 +498,8 @@ Virtio10SetQueueAddress ( UINT64 Address; UINT16 Enable; + ASSERT (RingBaseShift == 0); + Dev = VIRTIO_1_0_FROM_VIRTIO_DEVICE (This); Address = (UINTN)Ring->Desc; diff --git a/OvmfPkg/VirtioBlkDxe/VirtioBlk.c b/OvmfPkg/VirtioBlkDxe/VirtioBlk.c index 61b9cab4ff02..bff15fe3add1 100644 --- a/OvmfPkg/VirtioBlkDxe/VirtioBlk.c +++ b/OvmfPkg/VirtioBlkDxe/VirtioBlk.c @@ -745,7 +745,7 @@ VirtioBlkInit ( // // step 4c -- Report GPFN (guest-physical frame number) of queue. // - Status = Dev->VirtIo->SetQueueAddress (Dev->VirtIo, &Dev->Ring); + Status = Dev->VirtIo->SetQueueAddress (Dev->VirtIo, &Dev->Ring, 0); if (EFI_ERROR (Status)) { goto ReleaseQueue; } diff --git a/OvmfPkg/VirtioGpuDxe/Commands.c b/OvmfPkg/VirtioGpuDxe/Commands.c index c2e4d72feb67..5cb003161207 100644 --- a/OvmfPkg/VirtioGpuDxe/Commands.c +++ b/OvmfPkg/VirtioGpuDxe/Commands.c @@ -132,7 +132,11 @@ VirtioGpuInit ( if (EFI_ERROR (Status)) { goto Failed; } - Status = VgpuDev->VirtIo->SetQueueAddress (VgpuDev->VirtIo, &VgpuDev->Ring); + Status = VgpuDev->VirtIo->SetQueueAddress ( + VgpuDev->VirtIo, + &VgpuDev->Ring, + 0 + ); if (EFI_ERROR (Status)) { goto ReleaseQueue; } diff --git a/OvmfPkg/VirtioNetDxe/SnpInitialize.c b/OvmfPkg/VirtioNetDxe/SnpInitialize.c index 6d9b81a9f939..0ecfe044a977 100644 --- a/OvmfPkg/VirtioNetDxe/SnpInitialize.c +++ b/OvmfPkg/VirtioNetDxe/SnpInitialize.c @@ -96,7 +96,7 @@ VirtioNetInitRing ( // // step 4c -- report GPFN (guest-physical frame number) of queue // - Status = Dev->VirtIo->SetQueueAddress (Dev->VirtIo, Ring); + Status = Dev->VirtIo->SetQueueAddress (Dev->VirtIo, Ring, 0); if (EFI_ERROR (Status)) { goto ReleaseQueue; } diff --git a/OvmfPkg/VirtioPciDeviceDxe/VirtioPciFunctions.c b/OvmfPkg/VirtioPciDeviceDxe/VirtioPciFunctions.c index bd912cca9b29..b52060d13d97 100644 --- a/OvmfPkg/VirtioPciDeviceDxe/VirtioPciFunctions.c +++ b/OvmfPkg/VirtioPciDeviceDxe/VirtioPciFunctions.c @@ -183,11 +183,14 @@ EFI_STATUS EFIAPI VirtioPciSetQueueAddress ( IN VIRTIO_DEVICE_PROTOCOL *This, - IN VRING *Ring + IN VRING *Ring, + IN UINT64 RingBaseShift ) { VIRTIO_PCI_DEVICE *Dev; + ASSERT (RingBaseShift == 0); + Dev = VIRTIO_PCI_DEVICE_FROM_VIRTIO_DEVICE (This); return VirtioPciIoWrite (Dev, VIRTIO_PCI_OFFSET_QUEUE_ADDRESS, sizeof (UINT32), diff --git a/OvmfPkg/VirtioRngDxe/VirtioRng.c b/OvmfPkg/VirtioRngDxe/VirtioRng.c index e20602ac7225..0abca488e6cd 100644 --- a/OvmfPkg/VirtioRngDxe/VirtioRng.c +++ b/OvmfPkg/VirtioRngDxe/VirtioRng.c @@ -298,7 +298,7 @@ VirtioRngInit ( // // step 4c -- Report GPFN (guest-physical frame number) of queue. // - Status = Dev->VirtIo->SetQueueAddress (Dev->VirtIo, &Dev->Ring); + Status = Dev->VirtIo->SetQueueAddress (Dev->VirtIo, &Dev->Ring, 0); if (EFI_ERROR (Status)) { goto ReleaseQueue; } diff --git a/OvmfPkg/VirtioScsiDxe/VirtioScsi.c b/OvmfPkg/VirtioScsiDxe/VirtioScsi.c index c2f6f412ff40..a983b3df7b9c 100644 --- a/OvmfPkg/VirtioScsiDxe/VirtioScsi.c +++ b/OvmfPkg/VirtioScsiDxe/VirtioScsi.c @@ -855,7 +855,7 @@ VirtioScsiInit ( // // step 4c -- Report GPFN (guest-physical frame number) of queue. // - Status = Dev->VirtIo->SetQueueAddress (Dev->VirtIo, &Dev->Ring); + Status = Dev->VirtIo->SetQueueAddress (Dev->VirtIo, &Dev->Ring, 0); if (EFI_ERROR (Status)) { goto ReleaseQueue; } -- 2.7.4