From nobody Tue Feb 10 06:58:02 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+54921+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+54921+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=oracle.com ARC-Seal: i=1; a=rsa-sha256; t=1582739412; cv=none; d=zohomail.com; s=zohoarc; b=EiC6kNeMzfZM+25ZMNBJfBqKtf7sIQChcl3KxNzBtoOJ2nV1qHmZ7CoVtZaSxLnEWgmLtNJiIlZy4wFA9+ND9wOa4nztLEZ4LacHcdFYXt+3YX6mSHYeTUT0fIeSNqlCrxJ+vB4Gr27gntXxstW3OHZ/Qe2IOLe+mCpzAjPrr6U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1582739412; 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=5w3Hr+ZL8vddTsMVjFH/g8McGz4hr59aORc35LZsoiI=; b=ejbHM5uNfvCe92Vr5nvagIXAVwhtU0hLRv4m87oqFx7pkWXlpxG8rJbXv4JJzX50J+3j2Sp4EcibP9XceKpCTg+PsV709dCO18hlGYfO6NG6uiqJPXzHukIxsa/TV/e7SdfCqgkNigbJAp9rs1JonrI24O6l1wruS4Vgu8THq/U= 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+54921+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 158273941272874.51378116555588; Wed, 26 Feb 2020 09:50:12 -0800 (PST) Return-Path: X-Received: by 127.0.0.2 with SMTP id SCniYY1788612xOxSXxbzxIi; Wed, 26 Feb 2020 09:50:11 -0800 X-Received: from userp2130.oracle.com (userp2130.oracle.com [156.151.31.86]) by mx.groups.io with SMTP id smtpd.web12.10859.1582735250320718313 for ; Wed, 26 Feb 2020 08:40:50 -0800 X-Received: from pps.filterd (userp2130.oracle.com [127.0.0.1]) by userp2130.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 01QGNVto078498; Wed, 26 Feb 2020 16:40:50 GMT X-Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71]) by userp2130.oracle.com with ESMTP id 2ydcsncvwb-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 26 Feb 2020 16:40:49 +0000 X-Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1]) by aserp3030.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 01QGMvvB077151; Wed, 26 Feb 2020 16:40:49 GMT X-Received: from aserv0122.oracle.com (aserv0122.oracle.com [141.146.126.236]) by aserp3030.oracle.com with ESMTP id 2ydcsa6qf3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 26 Feb 2020 16:40:49 +0000 X-Received: from abhmp0017.oracle.com (abhmp0017.oracle.com [141.146.116.23]) by aserv0122.oracle.com (8.14.4/8.14.4) with ESMTP id 01QGemcb010750; Wed, 26 Feb 2020 16:40:48 GMT X-Received: from spark.ravello.local (/213.57.127.2) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Wed, 26 Feb 2020 08:40:48 -0800 From: "Nikita Leshenko" To: devel@edk2.groups.io Cc: liran.alon@oracle.com, aaron.young@oracle.com, jordan.l.justen@intel.com, lersek@redhat.com, ard.biesheuvel@linaro.org, Nikita Leshenko Subject: [edk2-devel] [PATCH v2 13/13] OvmfPkg/MptScsiDxe: Report multiple targets Date: Wed, 26 Feb 2020 18:41:51 +0200 Message-Id: <20200226164151.125182-14-nikita.leshchenko@oracle.com> In-Reply-To: <20200226164151.125182-1-nikita.leshchenko@oracle.com> References: <20200226164151.125182-1-nikita.leshchenko@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,nikita.leshchenko@oracle.com X-Gm-Message-State: SAuUeAYHJeLHw70oLASsNj1nx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1582739411; bh=o+lZwIQ1NnFBmyUpeYCFl8dzeCyYVnlPkjLy6ksvG7Q=; h=Cc:Date:From:Reply-To:Subject:To; b=FsZmzhtKOjlK4LgE8PiTkMHSGPVzHXp0Acl+UmifnaLkLEvNEVlengBWRZQnUlW/tYW TNwhGmaNYUg62tRMLBj99nZnMayzgCuqItxZMZW1Pq0PMfXqyYSG4jNFvN3JILPszaddL /U91YhOr28u6dduPwtVyBPM8bVDC/gj5bfI= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" The controller supports up to 8 targets (Not reported by the controller, but based on the implementation of the virtual device), report them in GetNextTarget and GetNextTargetLun. The firmware will then try to communicate with them and create a block device for each one that responds. Support for multiple LUNs will be implemented in another series. Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=3D2390 Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Nikita Leshenko Reviewed-by: Konrad Rzeszutek Wilk Reviewed-by: Aaron Young Reviewed-by: Liran Alon --- OvmfPkg/MptScsiDxe/MptScsi.c | 26 ++++++++++++++++++-------- OvmfPkg/MptScsiDxe/MptScsiDxe.inf | 1 + OvmfPkg/OvmfPkg.dec | 4 ++++ 3 files changed, 23 insertions(+), 8 deletions(-) diff --git a/OvmfPkg/MptScsiDxe/MptScsi.c b/OvmfPkg/MptScsiDxe/MptScsi.c index 6c70112bbc..b7f5ea1b8a 100644 --- a/OvmfPkg/MptScsiDxe/MptScsi.c +++ b/OvmfPkg/MptScsiDxe/MptScsi.c @@ -51,6 +51,7 @@ typedef struct { EFI_PCI_IO_PROTOCOL *PciIo; UINT64 OriginalPciAttributes; UINT32 StallPerPollUsec; + UINT8 MaxTarget; MPT_SCSI_DMA_BUFFER *Dma; EFI_PHYSICAL_ADDRESS DmaPhysical; VOID *DmaMapping; @@ -163,6 +164,7 @@ MptScsiInit ( UINT32 Reply32; =20 Dev->StallPerPollUsec =3D PcdGet32 (PcdMptScsiStallPerPollUsec); + Dev->MaxTarget =3D PcdGet8 (PcdMptScsiMaxTargetLimit); =20 Status =3D MptScsiReset (Dev); if (EFI_ERROR (Status)) { @@ -173,7 +175,7 @@ MptScsiInit ( ZeroMem (&Reply, sizeof (Reply)); Req.Data.WhoInit =3D MPT_IOC_WHOINIT_ROM_BIOS; Req.Data.Function =3D MPT_MESSAGE_HDR_FUNCTION_IOC_INIT; - Req.Data.MaxDevices =3D 1; + Req.Data.MaxDevices =3D Dev->MaxTarget + 1; Req.Data.MaxBuses =3D 1; Req.Data.ReplyFrameSize =3D sizeof (MPT_SCSI_IO_ERROR_REPLY); =20 @@ -252,7 +254,7 @@ MptScsiPopulateRequest ( return EFI_UNSUPPORTED; } =20 - if (Target > 0 || Lun > 0) { + if (Target > Dev->MaxTarget || Lun > 0) { return EFI_INVALID_PARAMETER; } =20 @@ -523,16 +525,22 @@ MptScsiGetNextTargetLun ( IN OUT UINT64 *Lun ) { + MPT_SCSI_DEV *Dev =3D MPT_SCSI_FROM_PASS_THRU (This); + // - // Currently support only target 0 LUN 0, so hardcode it + // Currently support only LUN 0, so hardcode it // if (!IsTargetInitialized (*Target)) { **Target =3D 0; *Lun =3D 0; - return EFI_SUCCESS; + } else if (**Target < Dev->MaxTarget) { + **Target +=3D 1; + *Lun =3D 0; } else { return EFI_NOT_FOUND; } + + return EFI_SUCCESS; } =20 STATIC @@ -543,15 +551,17 @@ MptScsiGetNextTarget ( IN OUT UINT8 **Target ) { - // - // Currently support only target 0 LUN 0, so hardcode it - // + MPT_SCSI_DEV *Dev =3D MPT_SCSI_FROM_PASS_THRU (This); + if (!IsTargetInitialized (*Target)) { **Target =3D 0; - return EFI_SUCCESS; + } else if (**Target < Dev->MaxTarget) { + **Target +=3D 1; } else { return EFI_NOT_FOUND; } + + return EFI_SUCCESS; } =20 STATIC diff --git a/OvmfPkg/MptScsiDxe/MptScsiDxe.inf b/OvmfPkg/MptScsiDxe/MptScsi= Dxe.inf index 9b090921b6..8453c73e60 100644 --- a/OvmfPkg/MptScsiDxe/MptScsiDxe.inf +++ b/OvmfPkg/MptScsiDxe/MptScsiDxe.inf @@ -43,3 +43,4 @@ =20 [Pcd] gUefiOvmfPkgTokenSpaceGuid.PcdMptScsiStallPerPollUsec ## CONSUMES + gUefiOvmfPkgTokenSpaceGuid.PcdMptScsiMaxTargetLimit ## CONSUMES diff --git a/OvmfPkg/OvmfPkg.dec b/OvmfPkg/OvmfPkg.dec index 7e8097f995..1e17df0316 100644 --- a/OvmfPkg/OvmfPkg.dec +++ b/OvmfPkg/OvmfPkg.dec @@ -231,6 +231,10 @@ ## Microseconds to stall between polling for MptScsi request result gUefiOvmfPkgTokenSpaceGuid.PcdMptScsiStallPerPollUsec|5|UINT32|0x36 =20 + ## Set the *inclusive* number of targets that MptScsi exposes for scan + # by ScsiBusDxe. + gUefiOvmfPkgTokenSpaceGuid.PcdMptScsiMaxTargetLimit|7|UINT8|0x37 + [PcdsDynamic, PcdsDynamicEx] gUefiOvmfPkgTokenSpaceGuid.PcdEmuVariableEvent|0|UINT64|2 gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashVariablesEnable|FALSE|BOOLEAN|0x10 --=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 (#54921): https://edk2.groups.io/g/devel/message/54921 Mute This Topic: https://groups.io/mt/71570022/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-