From nobody Mon Feb 9 22:38:04 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+55878+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+55878+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=oracle.com ARC-Seal: i=1; a=rsa-sha256; t=1584373400; cv=none; d=zohomail.com; s=zohoarc; b=cX2zt/W4vcC5VOUbqb7Tm4x+6eVBTeFa8BKHQVCKTBBRKKJjgddjOyqaqWHrkXW8OKNIf9NgDVMIxeZZmGbyjPMhRMaL0Q1EgT11T/CWLqWHe7Aw0ReKRt43GL9JOiaWaH8Fqv9LDXK5rt9d7sNUXCW0is5h7oBELxCOctINk6w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1584373400; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=2YbvKePTryHqbVfqP6+GRsZD49Tew8bNQg7fSkwGfdg=; b=HpcIYqZx001I96uJ1lDTXNHDY+71KvtpPPrYMEDK39ok32JfV+fj5hJboi02TD3QkyGcS5Yr9jL9DIVDfXAjsl0kVmn++J/RluTafh9dpsbH4Xh7cLhFrlWylCP1JOg1JzZhvtjnSfKkWkau9zSY419nop6u54sfdzRBLhEHzOE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+55878+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) header.from= Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1584373400045525.40911287208; Mon, 16 Mar 2020 08:43:20 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id mwJHYY1788612xAJL5jKGUaT; Mon, 16 Mar 2020 08:43:19 -0700 X-Received: from userp2120.oracle.com (userp2120.oracle.com [156.151.31.85]) by mx.groups.io with SMTP id smtpd.web10.69835.1584370836341176802 for ; Mon, 16 Mar 2020 08:00:36 -0700 X-Received: from pps.filterd (userp2120.oracle.com [127.0.0.1]) by userp2120.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 02GErlIo156949; Mon, 16 Mar 2020 15:00:36 GMT X-Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by userp2120.oracle.com with ESMTP id 2yrqwmyacm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 16 Mar 2020 15:00:36 +0000 X-Received: from pps.filterd (userp3020.oracle.com [127.0.0.1]) by userp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 02GEqM1J172706; Mon, 16 Mar 2020 15:00:35 GMT X-Received: from aserv0121.oracle.com (aserv0121.oracle.com [141.146.126.235]) by userp3020.oracle.com with ESMTP id 2ys8yvyjev-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 16 Mar 2020 15:00:34 +0000 X-Received: from abhmp0009.oracle.com (abhmp0009.oracle.com [141.146.116.15]) by aserv0121.oracle.com (8.14.4/8.13.8) with ESMTP id 02GF0XcM009070; Mon, 16 Mar 2020 15:00:33 GMT X-Received: from spark.ravello.local (/213.57.127.2) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Mon, 16 Mar 2020 08:00:33 -0700 From: "Liran Alon" To: devel@edk2.groups.io, lersek@redhat.com Cc: nikita.leshchenko@oracle.com, aaron.young@oracle.com, jordan.l.justen@intel.com, ard.biesheuvel@linaro.org, Liran Alon Subject: [edk2-devel] [PATCH 12/17] OvmfPkg/PvScsiDxe: Reset adapter on init Date: Mon, 16 Mar 2020 17:01:08 +0200 Message-Id: <20200316150113.104630-13-liran.alon@oracle.com> In-Reply-To: <20200316150113.104630-1-liran.alon@oracle.com> References: <20200316150113.104630-1-liran.alon@oracle.com> MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: 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,liran.alon@oracle.com X-Gm-Message-State: xpk63ZmH0UXDUdNKC8JOp76Qx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1584373399; bh=sbKVtwat92DOWc//XA43OeeOBJxMA6/VTzxH5KJCnbM=; h=Cc:Date:From:Reply-To:Subject:To; b=Uevc2Ol8FUI2FPBZJPgppngLxppd9RuipRL5/V3KbHSX5M8BYHzlwtxlW1RGMnCEhkU dc+Ap0yOuED4PQE0NfKpRdhAgcLvhr7D8fdDphHWl5EEAP/xFHzZiludFMdANE1wr4F+r EwDHv/40Rl/wOLUFiXI6nkSv+zdcYxTLGzs= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" The following commits will complete the implementation of device initialization. Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=3D2567 Reviewed-by: Nikita Leshenko Signed-off-by: Liran Alon --- OvmfPkg/PvScsiDxe/PvScsi.c | 77 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/OvmfPkg/PvScsiDxe/PvScsi.c b/OvmfPkg/PvScsiDxe/PvScsi.c index ff6b50b7020f..fb2407d2adb2 100644 --- a/OvmfPkg/PvScsiDxe/PvScsi.c +++ b/OvmfPkg/PvScsiDxe/PvScsi.c @@ -29,6 +29,76 @@ // Ext SCSI Pass Thru utilities // =20 + +// +// Writes a 32-bit value into BAR0 using MMIO +// +STATIC +EFI_STATUS +PvScsiMmioWrite32 ( + IN CONST PVSCSI_DEV *Dev, + IN UINT64 Offset, + IN UINT32 Value + ) +{ + return Dev->PciIo->Mem.Write( + Dev->PciIo, + EfiPciIoWidthUint32, + 0, // BarIndex + Offset, + 1, // Count + &Value + ); +} + +// +// Send PVSCSI command to device +// +STATIC +EFI_STATUS +PvScsiWriteCmdDesc ( + IN CONST PVSCSI_DEV *Dev, + IN UINT32 Cmd, + IN VOID *Desc, + IN UINTN Length + ) +{ + EFI_STATUS Status; + UINTN LengthInWords; + UINT8 *WordPtr; + UINT8 *DescEndPtr; + UINT32 Word; + + LengthInWords =3D Length / sizeof (UINT32); + + if (LengthInWords > PVSCSI_MAX_CMD_DATA_WORDS) { + return EFI_INVALID_PARAMETER; + } + + Status =3D PvScsiMmioWrite32 (Dev, PVSCSI_REG_OFFSET_COMMAND, Cmd); + if (EFI_ERROR (Status)) { + return Status; + } + + WordPtr =3D Desc; + DescEndPtr =3D WordPtr + Length; + + while (WordPtr !=3D DescEndPtr) { + // + // CopyMem() is used to avoid strict-aliasing issues + // + CopyMem (&Word, WordPtr, sizeof (UINT32)); + + Status =3D PvScsiMmioWrite32 (Dev, PVSCSI_REG_OFFSET_COMMAND_DATA, Wor= d); + if (EFI_ERROR (Status)) { + return Status; + } + + WordPtr +=3D sizeof (UINT32); + } + + return EFI_SUCCESS; +} // // Check if Target argument to EXT_SCSI_PASS_THRU.GetNextTarget() and // EXT_SCSI_PASS_THRU.GetNextTargetLun() is initialized @@ -348,6 +418,13 @@ PvScsiInit ( return Status; } =20 + // + // Reset adapter + // + Status =3D PvScsiWriteCmdDesc (Dev, PVSCSI_CMD_ADAPTER_RESET, NULL, 0); + if (EFI_ERROR (Status)) { + return Status; + } // // Populate the exported interface's attributes // --=20 2.20.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 (#55878): https://edk2.groups.io/g/devel/message/55878 Mute This Topic: https://groups.io/mt/72001280/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-