From nobody Sat May 4 17:13:54 2024 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+62655+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+62655+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one) Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1594885595132166.7242119637922; Thu, 16 Jul 2020 00:46:35 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id BM6EYY1788612xLeVLRDoJAR; Thu, 16 Jul 2020 00:46:34 -0700 X-Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [51.163.158.102]) by mx.groups.io with SMTP id smtpd.web11.10936.1594885593286974675 for ; Thu, 16 Jul 2020 00:46:33 -0700 X-Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04lp2057.outbound.protection.outlook.com [104.47.14.57]) (Using TLS) by relay.mimecast.com with ESMTP id de-mta-25-cQYpMdPSOpOOmHQVQzXR4A-2; Thu, 16 Jul 2020 09:46:28 +0200 X-MC-Unique: cQYpMdPSOpOOmHQVQzXR4A-2 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XNdu7M3VZS5EMYCghBIj9gT61FgDDIQ0ym5LwayVfQe2ANztAtN1XP+KdPbY86+UVJjBMrvkj3HIKhtZ0cjcmTkHwY2lhKHaV77jKqLfqUU/17a6m5aR1/Ncq0L34dGK51EpgPYtRAiqFyzWGkf2Y3Lc+/BJKRICAmlymvWRG5ixOccbFwiwKNuCwWTun641LWIHSpUtm3WslKCHC4Y+dh+O7hljlLKQCsalz0siGW7R2WgTr1vELzWEKlqituhzOwJGj4nlc5rrAP6NbdSdhYuA6Hyal6isDrS4lkoRiPkVZzpZD+Mmg/Ildd4Y5XS/dlLm2W53op6Fp0/PilGSmg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=UXkAlq2lc0R9VRlqWjE2WabjihusdkTwSssnGBc97ok=; b=a3bE/RaFF2rbS53Nt3pGLp5AZzylACoe51wbLEJ3Zbl95H049Wi0j1ERcl7klxKRhbQ6vkMJ3bshx/xhFbmE690TE9uGWYjEfyjLtEAOma+cqM2C+tg47UMKfWXNJS23RBKaFBVQsagZuWRXYeyDBMyI+81p1riUW1/L7t35Z/mBFB/YFLcDZAvwYCNwoxyNz4wX/9CBJ96eFPpGvch17gozlHK9wX+meD065AGJQQPqKVo4+mWNrBHzuvP7/sRrdN8kMIIVAUvSCn31AVslznpy5qW1F5sux5ccTwGuFsQPpXsSwtitSPNUqscO0yLULp1Lkx7S81jKIJPfOrQxtw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none X-Received: from AM0PR0402MB3809.eurprd04.prod.outlook.com (2603:10a6:208:10::30) by AM0PR04MB5122.eurprd04.prod.outlook.com (2603:10a6:208:ca::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3174.25; Thu, 16 Jul 2020 07:46:27 +0000 X-Received: from AM0PR0402MB3809.eurprd04.prod.outlook.com ([fe80::a14c:d441:c8a9:77ba]) by AM0PR0402MB3809.eurprd04.prod.outlook.com ([fe80::a14c:d441:c8a9:77ba%6]) with mapi id 15.20.3174.026; Thu, 16 Jul 2020 07:46:27 +0000 From: "Gary Lin" To: devel@edk2.groups.io Cc: Jordan Justen , Laszlo Ersek , Ard Biesheuvel Subject: [edk2-devel] [PATCH v2 01/12] OvmfPkg/LsiScsiDxe: Create the empty driver Date: Thu, 16 Jul 2020 15:45:56 +0800 Message-Id: <20200716074607.18048-2-glin@suse.com> In-Reply-To: <20200716074607.18048-1-glin@suse.com> References: <20200716074607.18048-1-glin@suse.com> X-ClientProxiedBy: AM3PR07CA0118.eurprd07.prod.outlook.com (2603:10a6:207:7::28) To AM0PR0402MB3809.eurprd04.prod.outlook.com (2603:10a6:208:10::30) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-Received: from GaryWorkstation.suse.cz (60.251.47.115) by AM3PR07CA0118.eurprd07.prod.outlook.com (2603:10a6:207:7::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3195.17 via Frontend Transport; Thu, 16 Jul 2020 07:46:25 +0000 X-Originating-IP: [60.251.47.115] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 66576a17-3fca-4b3c-b6ad-08d8295c585b X-MS-TrafficTypeDiagnostic: AM0PR04MB5122: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:6108; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info: /7gwgRj2iiicKBS0CCgM/KA7BDorLB0C+5DeJIQIkNSKnGsY8KryNOXrU1qCmqB1LkSRqCZTPOs6XZkm1vW8sDJL6QaPtjJEVe27xA4kIvht/AsygeQStdhNLdk7Hx6P+22JCWZ+4o8FxdQuJOjxqviKd/6S6WJuuuSq7+weGFTb+xgIgRKrq4A23WdA9Q2PI9M858nVtFb3tSBW/cJskaxWD+leo0MnlPoYavET+iumYgwebiLWuSnRxwpVfihYE/ZD6lM3Y2aP0YwwEg5UdzwK4ULkIbRE+HgCtzV+knjwcs4ltDrFtQxvDL/VbcarxYEW6GYcUe3VUqjSRYxHBg== X-MS-Exchange-AntiSpam-MessageData: BsAybVZnXXj+mUKtVfFBT1zO4Ws+9oh/ms4TFWZWsI1u5yZZ2b9Aqq08ky0woXyA0tr7Z01F7c0ILHhNU0CSefxxj01yu6hEDfN6+ADpq1J8qZ8uPlMtFRCtVUc61D7xPP8WqcEYdgU+vrtCBzMJid1ma6ypqHMN1AhFVF1SrkoRIDbZa7n+XdHkm+1yZJaUWgw2ZOFacX6sHccwwKYDuuqLQKBaXNfwWLAQQKkqO81Q0NJwH7gXXoXTnIO0pdDgodvS1kUVy82Be2pfG4zKGZeuWgD7iVLjgJbZhOc0H5OX7f8gOr5gw6YodiKQXQyQgsigDeYErsdKeAzZ3oViowlTp9Ozdxo9u5Q1840wmpq5kk6cQSEKsuvX9IahESscyCjHuUmf0mrCYY6u2AnjY+6PCidsZYc5XSq50pP7kOIMwpoueOOYvwnj2Wu8/XsW6eYKJMdFuSmZho9RI+aVlnDcoGodYMsGF62mVPC0J3o= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 66576a17-3fca-4b3c-b6ad-08d8295c585b X-MS-Exchange-CrossTenant-AuthSource: AM0PR0402MB3809.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jul 2020 07:46:27.4337 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: J7HxxF7OBFF1W7qPB/c4B6Rc9ZMwjRnuGQIrSk6Vu8dDYu20AfryImoYdM3gJNHe X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB5122 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,glin@suse.com X-Gm-Message-State: y1shOaLRq91gN4N871JQyiJux1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1594885594; bh=Vv28lQie4dLLGNIKj0i/67ryBLFmGbhIf+Cqek/dKdI=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=inck904KsZixIODOJTzEDPZ3Lu88Qx3NtvHa58rvY6mGJoDfw400bCZjO4WkwKY9cUA lnMs0/cEq9DCiGb6GwolA9CHPTvmWc14UNkIHNqg+9PL/wQHkkaqoVgdrkWxIUvWxj+jt uBJkAKex7gOMoe/m2TxKwx9+9x7/avGv//I= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" Create the driver with only a dummy LsiScsiEntryPoint() for the further implementation of the driver for LSI 53C895A SCSI controller. v2: Fix the mixed-case GUID string Cc: Jordan Justen Cc: Laszlo Ersek Cc: Ard Biesheuvel Signed-off-by: Gary Lin Reviewed-by: Laszlo Ersek --- OvmfPkg/LsiScsiDxe/LsiScsi.c | 25 +++++++++++++++++++++++++ OvmfPkg/LsiScsiDxe/LsiScsiDxe.inf | 26 ++++++++++++++++++++++++++ OvmfPkg/OvmfPkgIa32.dsc | 4 ++++ OvmfPkg/OvmfPkgIa32.fdf | 3 +++ OvmfPkg/OvmfPkgIa32X64.dsc | 4 ++++ OvmfPkg/OvmfPkgIa32X64.fdf | 3 +++ OvmfPkg/OvmfPkgX64.dsc | 4 ++++ OvmfPkg/OvmfPkgX64.fdf | 3 +++ 8 files changed, 72 insertions(+) create mode 100644 OvmfPkg/LsiScsiDxe/LsiScsi.c create mode 100644 OvmfPkg/LsiScsiDxe/LsiScsiDxe.inf diff --git a/OvmfPkg/LsiScsiDxe/LsiScsi.c b/OvmfPkg/LsiScsiDxe/LsiScsi.c new file mode 100644 index 000000000000..9c90941688ed --- /dev/null +++ b/OvmfPkg/LsiScsiDxe/LsiScsi.c @@ -0,0 +1,25 @@ +/** @file + + This driver produces Extended SCSI Pass Thru Protocol instances for + LSI 53C895A SCSI devices. + + Copyright (C) 2020, SUSE LLC. + + SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#include + +// +// Entry point of this driver +// +EFI_STATUS +EFIAPI +LsiScsiEntryPoint ( + IN EFI_HANDLE ImageHandle, + IN EFI_SYSTEM_TABLE *SystemTable + ) +{ + return EFI_UNSUPPORTED; +} diff --git a/OvmfPkg/LsiScsiDxe/LsiScsiDxe.inf b/OvmfPkg/LsiScsiDxe/LsiScsi= Dxe.inf new file mode 100644 index 000000000000..8b6dccaff3eb --- /dev/null +++ b/OvmfPkg/LsiScsiDxe/LsiScsiDxe.inf @@ -0,0 +1,26 @@ +## @file +# This driver produces Extended SCSI Pass Thru Protocol instances for +# LSI 53C895A SCSI devices. +# +# Copyright (C) 2020, SUSE LLC. +# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +## + +[Defines] + INF_VERSION =3D 1.29 + BASE_NAME =3D LsiScsiDxe + FILE_GUID =3D EB4EB21F-5A3D-40BE-8BD2-F1B0E38E5744 + MODULE_TYPE =3D UEFI_DRIVER + VERSION_STRING =3D 1.0 + ENTRY_POINT =3D LsiScsiEntryPoint + +[Sources] + LsiScsi.c + +[Packages] + MdePkg/MdePkg.dec + +[LibraryClasses] + UefiDriverEntryPoint diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc index b4ee7376791b..9178ffeb71cb 100644 --- a/OvmfPkg/OvmfPkgIa32.dsc +++ b/OvmfPkg/OvmfPkgIa32.dsc @@ -50,6 +50,7 @@ [Defines] # DEFINE PVSCSI_ENABLE =3D TRUE DEFINE MPT_SCSI_ENABLE =3D TRUE + DEFINE LSI_SCSI_ENABLE =3D FALSE =20 # # Flash size selection. Setting FD_SIZE_IN_KB on the command line direct= ly to @@ -771,6 +772,9 @@ [Components] !endif !if $(MPT_SCSI_ENABLE) =3D=3D TRUE OvmfPkg/MptScsiDxe/MptScsiDxe.inf +!endif +!if $(LSI_SCSI_ENABLE) =3D=3D TRUE + OvmfPkg/LsiScsiDxe/LsiScsiDxe.inf !endif MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntim= eDxe.inf diff --git a/OvmfPkg/OvmfPkgIa32.fdf b/OvmfPkg/OvmfPkgIa32.fdf index e2b759aa8d05..2b9a6b58015f 100644 --- a/OvmfPkg/OvmfPkgIa32.fdf +++ b/OvmfPkg/OvmfPkgIa32.fdf @@ -236,6 +236,9 @@ [FV.DXEFV] !if $(MPT_SCSI_ENABLE) =3D=3D TRUE INF OvmfPkg/MptScsiDxe/MptScsiDxe.inf !endif +!if $(LSI_SCSI_ENABLE) =3D=3D TRUE +INF OvmfPkg/LsiScsiDxe/LsiScsiDxe.inf +!endif =20 !if $(SECURE_BOOT_ENABLE) =3D=3D TRUE INF SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootCon= figDxe.inf diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc index ed68b080f2a2..a665f78f0dc7 100644 --- a/OvmfPkg/OvmfPkgIa32X64.dsc +++ b/OvmfPkg/OvmfPkgIa32X64.dsc @@ -49,6 +49,7 @@ [Defines] # DEFINE PVSCSI_ENABLE =3D TRUE DEFINE MPT_SCSI_ENABLE =3D TRUE + DEFINE LSI_SCSI_ENABLE =3D FALSE =20 # # Flash size selection. Setting FD_SIZE_IN_KB on the command line direct= ly to @@ -785,6 +786,9 @@ [Components.X64] !endif !if $(MPT_SCSI_ENABLE) =3D=3D TRUE OvmfPkg/MptScsiDxe/MptScsiDxe.inf +!endif +!if $(LSI_SCSI_ENABLE) =3D=3D TRUE + OvmfPkg/LsiScsiDxe/LsiScsiDxe.inf !endif MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntim= eDxe.inf diff --git a/OvmfPkg/OvmfPkgIa32X64.fdf b/OvmfPkg/OvmfPkgIa32X64.fdf index bfca1eff9e83..83ff6aef2e8c 100644 --- a/OvmfPkg/OvmfPkgIa32X64.fdf +++ b/OvmfPkg/OvmfPkgIa32X64.fdf @@ -237,6 +237,9 @@ [FV.DXEFV] !if $(MPT_SCSI_ENABLE) =3D=3D TRUE INF OvmfPkg/MptScsiDxe/MptScsiDxe.inf !endif +!if $(LSI_SCSI_ENABLE) =3D=3D TRUE +INF OvmfPkg/LsiScsiDxe/LsiScsiDxe.inf +!endif =20 !if $(SECURE_BOOT_ENABLE) =3D=3D TRUE INF SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootCon= figDxe.inf diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc index cb7e8068a3d8..17f345acf4ee 100644 --- a/OvmfPkg/OvmfPkgX64.dsc +++ b/OvmfPkg/OvmfPkgX64.dsc @@ -49,6 +49,7 @@ [Defines] # DEFINE PVSCSI_ENABLE =3D TRUE DEFINE MPT_SCSI_ENABLE =3D TRUE + DEFINE LSI_SCSI_ENABLE =3D FALSE =20 # # Flash size selection. Setting FD_SIZE_IN_KB on the command line direct= ly to @@ -781,6 +782,9 @@ [Components] !endif !if $(MPT_SCSI_ENABLE) =3D=3D TRUE OvmfPkg/MptScsiDxe/MptScsiDxe.inf +!endif +!if $(LSI_SCSI_ENABLE) =3D=3D TRUE + OvmfPkg/LsiScsiDxe/LsiScsiDxe.inf !endif MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntim= eDxe.inf diff --git a/OvmfPkg/OvmfPkgX64.fdf b/OvmfPkg/OvmfPkgX64.fdf index bfca1eff9e83..83ff6aef2e8c 100644 --- a/OvmfPkg/OvmfPkgX64.fdf +++ b/OvmfPkg/OvmfPkgX64.fdf @@ -237,6 +237,9 @@ [FV.DXEFV] !if $(MPT_SCSI_ENABLE) =3D=3D TRUE INF OvmfPkg/MptScsiDxe/MptScsiDxe.inf !endif +!if $(LSI_SCSI_ENABLE) =3D=3D TRUE +INF OvmfPkg/LsiScsiDxe/LsiScsiDxe.inf +!endif =20 !if $(SECURE_BOOT_ENABLE) =3D=3D TRUE INF SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootCon= figDxe.inf --=20 2.25.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 (#62655): https://edk2.groups.io/g/devel/message/62655 Mute This Topic: https://groups.io/mt/75537203/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 Sat May 4 17:13:54 2024 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+62656+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+62656+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one) Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1594885595526659.6684179967943; Thu, 16 Jul 2020 00:46:35 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id TYJiYY1788612xkPZDx8Ysdo; Thu, 16 Jul 2020 00:46:35 -0700 X-Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [62.140.7.102]) by mx.groups.io with SMTP id smtpd.web12.10698.1594885593812790093 for ; Thu, 16 Jul 2020 00:46:34 -0700 X-Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04lp2058.outbound.protection.outlook.com [104.47.14.58]) (Using TLS) by relay.mimecast.com with ESMTP id de-mta-12-7vx71pnGOrC8DY-xq0jSEg-1; Thu, 16 Jul 2020 09:46:30 +0200 X-MC-Unique: 7vx71pnGOrC8DY-xq0jSEg-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AlbckhYcLCwYVsD5UofCI4UkGfwhy3m8a1Ptihj6P5oAwhWUBNnuxJwqQMHIkzQBdDjneoh/c710/XfDm1PYvDtwM51NMkj133fNs/Rq7WtU4t2xC5S8sZEq0Wkii40DMnFT6BqEJzedAVRJX67egSyQUZQuy7JQA2ReyFiqkL+CDp2F1lU40HIBAnfqOO9p95kdD3S0wy/5kMtKViCARrE5Eb1EWtvjC1xrbCfcg9BBemD0gkHtArqVLQDxOI+OP/9EueKcIbh1l/JcLDRop/5PfMGRfUkcpAmsxpv6oev6nRGagqOIgEtGkCHlzYZscSDjZmiNNejYtstZA3twZQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=oqkZkH4yqkyshCli1fpyH6MassKD8qDb87ywTDXMIQc=; b=CIi0XRESraR6PFxSQg/RjG/8zQL4bIOzU0my1Yzlq+rgqVg3eZaOp5fvWcIjBOR1Hj9WZRl0DAeSFxA+C2jjEqprLzSXBw65ooqqytjK91V6y6mnaL1KakxQops9im3qooVqmRKeFJqfPYY/Mdjbt0FrTxj+Rh7gBYtwtBU/V+PgcjUs4l421XOywbrCGilzPmNNBayqMAEa2CSDg5aHNDJS7gLWcm0pDS7jsmDZXWb6ifMqurwSim8pxRVoQ+2eSZhDBpdSXm7VW350Q14o+/4u9B1BjL/mIkBMtI0ZTK1ANhsCw6WwX4K6FP7zczL1VnD6nf6VyV5OtJ5S+xH1Ww== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none X-Received: from AM0PR0402MB3809.eurprd04.prod.outlook.com (2603:10a6:208:10::30) by AM0PR04MB5122.eurprd04.prod.outlook.com (2603:10a6:208:ca::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3174.25; Thu, 16 Jul 2020 07:46:29 +0000 X-Received: from AM0PR0402MB3809.eurprd04.prod.outlook.com ([fe80::a14c:d441:c8a9:77ba]) by AM0PR0402MB3809.eurprd04.prod.outlook.com ([fe80::a14c:d441:c8a9:77ba%6]) with mapi id 15.20.3174.026; Thu, 16 Jul 2020 07:46:29 +0000 From: "Gary Lin" To: devel@edk2.groups.io Cc: Jordan Justen , Laszlo Ersek , Ard Biesheuvel Subject: [edk2-devel] [PATCH v2 02/12] OvmfPkg/LsiScsiDxe: Install the skeleton of driver binding Date: Thu, 16 Jul 2020 15:45:57 +0800 Message-Id: <20200716074607.18048-3-glin@suse.com> In-Reply-To: <20200716074607.18048-1-glin@suse.com> References: <20200716074607.18048-1-glin@suse.com> X-ClientProxiedBy: AM3PR07CA0118.eurprd07.prod.outlook.com (2603:10a6:207:7::28) To AM0PR0402MB3809.eurprd04.prod.outlook.com (2603:10a6:208:10::30) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-Received: from GaryWorkstation.suse.cz (60.251.47.115) by AM3PR07CA0118.eurprd07.prod.outlook.com (2603:10a6:207:7::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3195.17 via Frontend Transport; Thu, 16 Jul 2020 07:46:27 +0000 X-Originating-IP: [60.251.47.115] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: dff0225f-ceb6-4d7a-f732-08d8295c59a4 X-MS-TrafficTypeDiagnostic: AM0PR04MB5122: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:6108; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info: jyBr8Plt/z8esry8meAw7rNxKVHtPm9nHGH9/VldxlfBPzMV+DjfYm3cZhLSaeUrn6Jc24Pg1OLvkwjjKJhd8e/3YFzGVXvyWYU4gpJwF8YSfSp3IVLCC/1AehJokdRv4LDaU4IRCNrluS1bhyzTZVmnpzgO/sqt/zcOoLdeeUbsLu25a4sinLVCRbxLKYMxsgzBdSdg+NABBtnDeQY/0dj70VNOTVS0Psds71jbxV+lkd2Ai0I1se5iqz5Lf/6pGyfx1Pgg6gEGm4JI2/mFWlgerGPKQCOUUTK4OJBFZ2P6iTltQUf3MX8LMsBkFQtZzoI3EC75rR/taha3jsqOdw== X-MS-Exchange-AntiSpam-MessageData: W/WxIeV/qE65A61DCU8y6eLn+VatjOYSdmhEwFk5/KE4nSGK+LuygVh2CVAAPCih8E5l3u8B5/vlHb49HlcB2Or6KJzbrwv21vI6cxjkGcD0wGF5H2NAi0BMgJ0AUUpLYyXeGYTy/BaM32ZfFEY2ENf9YyXHR/WYl2EHANtnT214bcA6tygieQfdArdbSzzzpUpPBgnrvZw6kUERiTu0hmMhyQtA6SrirbjChjrzRyxvUGnS781DGfT5JXynu6PG05aiRcKJmq0NYYEIfTjT4a7FGf5pzctByRq2n8yudSF4bKaMUJUk/4rz71VwKDxEerrwOZXxZFMnE6ipxP0IlwHULknnQBWHbAtqUUnwfTzoAWphyT1oBbdE0394Wp+SXRVaHCzNPSz+UzhRFDcSU+dr2MKUCRVtQMicB73nw+K8xqOSyHe8yEJ+e1kIqYw6WVESH2d+L2NjMeAjKEg1d/tJBymozQWHBNhNXepfmho= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: dff0225f-ceb6-4d7a-f732-08d8295c59a4 X-MS-Exchange-CrossTenant-AuthSource: AM0PR0402MB3809.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jul 2020 07:46:29.7314 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: HPalz/uLgUl3fO7lCc3PyJq6pi3Ht/SlV3KBIxi7/Bi4KiWoIY8mDYgAhMpqx/76 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB5122 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,glin@suse.com X-Gm-Message-State: BXet4V1jXqrWR3PLTTrhOrZFx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1594885595; bh=LWuBbT6NvjFTCxu5e1qI/t6XC/ULVt6swb/DraKGlm4=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=Z9HkanDJY51LfMz5xuoRRgZE67uDy3ZpvL1mrYQXBa+mgLBmIoysIlQ6vP2+FvoVIaB O4OAzKRnyIjEnpopqOg2Ut2PmXDCqw1FNkDnlN2loJScaDxGIu25/0x4OSD0Cz9dKoCy2 tZJZCFzpg/3Ai8jG/6ZGp9mRJjpXySl4Iyc= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" Implement the dummy functions for EFI Driver Binding protocol. v2: Remove "STATIC" from LsiScsiControllerSupported() Cc: Jordan Justen Cc: Laszlo Ersek Cc: Ard Biesheuvel Signed-off-by: Gary Lin Reviewed-by: Laszlo Ersek --- OvmfPkg/LsiScsiDxe/LsiScsi.c | 72 ++++++++++++++++++++++++++++++- OvmfPkg/LsiScsiDxe/LsiScsi.h | 49 +++++++++++++++++++++ OvmfPkg/LsiScsiDxe/LsiScsiDxe.inf | 2 + 3 files changed, 122 insertions(+), 1 deletion(-) create mode 100644 OvmfPkg/LsiScsiDxe/LsiScsi.h diff --git a/OvmfPkg/LsiScsiDxe/LsiScsi.c b/OvmfPkg/LsiScsiDxe/LsiScsi.c index 9c90941688ed..79a2af4fee73 100644 --- a/OvmfPkg/LsiScsiDxe/LsiScsi.c +++ b/OvmfPkg/LsiScsiDxe/LsiScsi.c @@ -9,8 +9,71 @@ =20 **/ =20 +#include #include =20 +#include "LsiScsi.h" + +// +// Probe, start and stop functions of this driver, called by the DXE core = for +// specific devices. +// +// The following specifications document these interfaces: +// - Driver Writer's Guide for UEFI 2.3.1 v1.01, 9 Driver Binding Protocol +// - UEFI Spec 2.3.1 + Errata C, 10.1 EFI Driver Binding Protocol +// + +EFI_STATUS +EFIAPI +LsiScsiControllerSupported ( + IN EFI_DRIVER_BINDING_PROTOCOL *This, + IN EFI_HANDLE ControllerHandle, + IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL + ) +{ + return EFI_UNSUPPORTED; +} + +EFI_STATUS +EFIAPI +LsiScsiControllerStart ( + IN EFI_DRIVER_BINDING_PROTOCOL *This, + IN EFI_HANDLE ControllerHandle, + IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL + ) +{ + return EFI_SUCCESS; +} + +EFI_STATUS +EFIAPI +LsiScsiControllerStop ( + IN EFI_DRIVER_BINDING_PROTOCOL *This, + IN EFI_HANDLE ControllerHandle, + IN UINTN NumberOfChildren, + IN EFI_HANDLE *ChildHandleBuffer + ) +{ + return EFI_SUCCESS; +} + +// +// The static object that groups the Supported() (ie. probe), Start() and +// Stop() functions of the driver together. Refer to UEFI Spec 2.3.1 + Err= ata +// C, 10.1 EFI Driver Binding Protocol. +// +STATIC +EFI_DRIVER_BINDING_PROTOCOL gDriverBinding =3D { + &LsiScsiControllerSupported, + &LsiScsiControllerStart, + &LsiScsiControllerStop, + 0x10, // Version, must be in [0x10 .. 0xFFFFFFEF] for IHV-developed driv= ers + NULL, // ImageHandle, to be overwritten by + // EfiLibInstallDriverBindingComponentName2() in LsiScsiEntryPoint= () + NULL // DriverBindingHandle, ditto +}; + + // // Entry point of this driver // @@ -21,5 +84,12 @@ LsiScsiEntryPoint ( IN EFI_SYSTEM_TABLE *SystemTable ) { - return EFI_UNSUPPORTED; + return EfiLibInstallDriverBindingComponentName2 ( + ImageHandle, + SystemTable, + &gDriverBinding, + ImageHandle, // The handle to install onto + NULL, // TODO Component name + NULL // TODO Component name + ); } diff --git a/OvmfPkg/LsiScsiDxe/LsiScsi.h b/OvmfPkg/LsiScsiDxe/LsiScsi.h new file mode 100644 index 000000000000..328bd289b8e8 --- /dev/null +++ b/OvmfPkg/LsiScsiDxe/LsiScsi.h @@ -0,0 +1,49 @@ +/** @file + + Internal definitions for the LSI 53C895A SCSI driver, which produces + Extended SCSI Pass Thru Protocol instances for LSI 53C895A SCSI devices. + + Copyright (C) 2020, SUSE LLC. + + SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#ifndef _LSI_SCSI_DXE_H_ +#define _LSI_SCSI_DXE_H_ + +// +// Probe, start and stop functions of this driver, called by the DXE core = for +// specific devices. +// +// The following specifications document these interfaces: +// - Driver Writer's Guide for UEFI 2.3.1 v1.01, 9 Driver Binding Protocol +// - UEFI Spec 2.3.1 + Errata C, 10.1 EFI Driver Binding Protocol +// + +EFI_STATUS +EFIAPI +LsiScsiControllerSupported ( + IN EFI_DRIVER_BINDING_PROTOCOL *This, + IN EFI_HANDLE ControllerHandle, + IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL + ); + +EFI_STATUS +EFIAPI +LsiScsiControllerStart ( + IN EFI_DRIVER_BINDING_PROTOCOL *This, + IN EFI_HANDLE ControllerHandle, + IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL + ); + +EFI_STATUS +EFIAPI +LsiScsiControllerStop ( + IN EFI_DRIVER_BINDING_PROTOCOL *This, + IN EFI_HANDLE ControllerHandle, + IN UINTN NumberOfChildren, + IN EFI_HANDLE *ChildHandleBuffer + ); + +#endif // _LSI_SCSI_DXE_H_ diff --git a/OvmfPkg/LsiScsiDxe/LsiScsiDxe.inf b/OvmfPkg/LsiScsiDxe/LsiScsi= Dxe.inf index 8b6dccaff3eb..5cb15c456549 100644 --- a/OvmfPkg/LsiScsiDxe/LsiScsiDxe.inf +++ b/OvmfPkg/LsiScsiDxe/LsiScsiDxe.inf @@ -18,9 +18,11 @@ [Defines] =20 [Sources] LsiScsi.c + LsiScsi.h =20 [Packages] MdePkg/MdePkg.dec =20 [LibraryClasses] UefiDriverEntryPoint + UefiLib --=20 2.25.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 (#62656): https://edk2.groups.io/g/devel/message/62656 Mute This Topic: https://groups.io/mt/75537204/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 Sat May 4 17:13:54 2024 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+62657+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+62657+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one) Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1594885596997117.24043147481325; Thu, 16 Jul 2020 00:46:36 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id XCM2YY1788612xRBr6ALNeh7; Thu, 16 Jul 2020 00:46:36 -0700 X-Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [51.163.158.102]) by mx.groups.io with SMTP id smtpd.web11.10937.1594885595820000016 for ; Thu, 16 Jul 2020 00:46:36 -0700 X-Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-ve1eur03lp2051.outbound.protection.outlook.com [104.47.9.51]) (Using TLS) by relay.mimecast.com with ESMTP id de-mta-3-2a8z0EZ4Np2HHHcKPfyCOg-1; Thu, 16 Jul 2020 09:46:33 +0200 X-MC-Unique: 2a8z0EZ4Np2HHHcKPfyCOg-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IhCo3CjSJe3GZOsxDohTwfpYxwLGJNbOpxqIk10LDEsxQaxZajO3wUER/3dF3l53mS3Y0QbinrcwWILDTJhZhyDbsV/79LVa1wJmTfw3c6rVQtLdP3QtQGXi1QAS2Ae8mRljqQl3xIJGawc80ir0AxdcXyzrzWjKDAn0W0rdSPWPT4sXeEVF2gbm6ArH/v276QfK6JXmUCnWbP7yusuogCa5sySmS/EoSmUks1enmM/YRxJMq56wsBIvTDPo3379rmJGwGICNwtW+L1QwJ4c3BV0yCo4K1+HLZK5B6T7vv+LgAV55Md4fBBCWON6vDSFA4OyxkzWkE9FSZfe5PKm2A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=28SI9s2Shz/DoCip7DxOA2Y/cu4qGNCUZ2PWhW5YwWc=; b=XJog+e51ZCAmJ/tw+Gafu4z0M5CkeJuMPdDRjNbKU2fhUspl+r9BNkQmwwFhe+8Ae9sQabuT+XNIdwVc3XVUYbrZoty2cs1Cn1vGUr8fzhCBtusPgHxCE7ZPAOM5MOiGYE2uLdOiI7cJ/RJawt1Co8G1ImgnSKbGrSpaR6tuwWJj9EZjysvHVlHQGTpNT3R5E5Lqv9tYzc/Y7GLWUtUKD7LU2Jz1fNBmUVfGfMTvrv01/ZdNAioF5YMVPfXKC3ygKK/HcjVw02aVzRb/kU0vY3GK+C+jVfjIVJv3fp39frB51YVXV/EbXnZePUrLOVMuMyCmlXctvr+TV5laAySkMg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none X-Received: from AM0PR0402MB3809.eurprd04.prod.outlook.com (2603:10a6:208:10::30) by AM0PR04MB5122.eurprd04.prod.outlook.com (2603:10a6:208:ca::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3174.25; Thu, 16 Jul 2020 07:46:31 +0000 X-Received: from AM0PR0402MB3809.eurprd04.prod.outlook.com ([fe80::a14c:d441:c8a9:77ba]) by AM0PR0402MB3809.eurprd04.prod.outlook.com ([fe80::a14c:d441:c8a9:77ba%6]) with mapi id 15.20.3174.026; Thu, 16 Jul 2020 07:46:31 +0000 From: "Gary Lin" To: devel@edk2.groups.io Cc: Jordan Justen , Laszlo Ersek , Ard Biesheuvel Subject: [edk2-devel] [PATCH v2 03/12] OvmfPkg/LsiScsiDxe: Report the name of the driver Date: Thu, 16 Jul 2020 15:45:58 +0800 Message-Id: <20200716074607.18048-4-glin@suse.com> In-Reply-To: <20200716074607.18048-1-glin@suse.com> References: <20200716074607.18048-1-glin@suse.com> X-ClientProxiedBy: AM3PR07CA0118.eurprd07.prod.outlook.com (2603:10a6:207:7::28) To AM0PR0402MB3809.eurprd04.prod.outlook.com (2603:10a6:208:10::30) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-Received: from GaryWorkstation.suse.cz (60.251.47.115) by AM3PR07CA0118.eurprd07.prod.outlook.com (2603:10a6:207:7::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3195.17 via Frontend Transport; Thu, 16 Jul 2020 07:46:30 +0000 X-Originating-IP: [60.251.47.115] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1ed5b6a3-17cc-4dc7-299f-08d8295c5afd X-MS-TrafficTypeDiagnostic: AM0PR04MB5122: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:4502; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info: q92wzmsRTYZUZM6DGLBfTFM5R1rgwSJsnHMLgGWTs/f2O6kKRkgvyATdpFl9Uc4dUABowTnl6MAkMsSprk0qBm78FAh7qSSnYbONgrIle2aAzEvi7u9iR1K4eBNotTkgfp5DG2WQXd17z2Co2sGSnhmQVjKxme/LbKxTQ/QyfEQR9L14kQsUhMRYycLst3e2w2KWwulkaugLHPCUIg1S582ePDOUi4oosVm/HEBNpCkgE6YjNZ9P20D5LF8ml+wkmHKVEteVhkzP+OxiHVs62bkBCacBYTycAOfZrdmjuacdJ9ltZ2+pk9gI5sIqd3LPvDWFgD9udMkY/cqrf4yyJQ== X-MS-Exchange-AntiSpam-MessageData: HYIKbNw8IYu+RixjK5utL010wq8o8lySrtijaBTVqjl/COcMAAm79TUbqhM5ahiYYOpolw2vWI147JNtjbWw6g3tFXOeJLfjVTHEH3UuWIBggxsONpExJ7nk717zHOzJgHAOhdi5pJh0UgM8Y9sd3IZP4ZlBbg9ejP2JKnGrQaONlsO+/XCijOvXYfabJH5IQyIE8D1WvKAFoMebrpvxWOjOEeAx6KvvrvXBpJ5r2u/JPOTd0H1iW/X0xWiSXnNMjL0xM4zVcBxPrSLJhEpfOktavGWWKOm9yWS3OZDn8uxvhzSbU5DjPq9FzMsL+amSO5vsB6Xy7FdpU4fYoxFvqbnTj2uD+JStMK2iIsCSOqT6Ae3ciZcy1HtRHUyMPXIvt9EopUmVL6c/OqHMA69vTUXzr7+IXxWi000CkgjxYMA3JESstM1M6X+U+0HSTEPE6MMeadZk1dmYKDL7YlpYDVHoOsF5U0zcwllgmr7TE8s= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1ed5b6a3-17cc-4dc7-299f-08d8295c5afd X-MS-Exchange-CrossTenant-AuthSource: AM0PR0402MB3809.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jul 2020 07:46:31.6663 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: QxxyTz9oXzgk5ZVW9C1qpIVLCpAHY0sb4m3ULOwSasvzyt9g2WpkOZAZUDYeMQSr X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB5122 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,glin@suse.com X-Gm-Message-State: 2aL4ZcdqFGRsaOAbYSKSIEPFx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1594885596; bh=HhkzY44QIBYmmkWzIVfbCrNWubCiJKU1lRwPh2Q5zRk=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=MAb30fP2gis0dtzq89gIHzeCpWmJo6mBBoRxCAqRDgfM7uw4ir7paWOtuYauwC9Sv6n GgoU1Te0tOmgvOh5XSeIOuMBYU5T8HVYOllTXJIZvk0t9Fr/loQKQtGgZMAhJMRzOn8Ji w9KMF7XdPDq769VVq19dE+WO7kPKaitAls4= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" Implement LsiScsiGetDriverName() and LsiScsiGetDeviceName() to report the name of the driver. Cc: Jordan Justen Cc: Laszlo Ersek Cc: Ard Biesheuvel Signed-off-by: Gary Lin Reviewed-by: Laszlo Ersek --- OvmfPkg/LsiScsiDxe/LsiScsi.c | 69 ++++++++++++++++++++++++++++++++++-- OvmfPkg/LsiScsiDxe/LsiScsi.h | 31 ++++++++++++++++ 2 files changed, 98 insertions(+), 2 deletions(-) diff --git a/OvmfPkg/LsiScsiDxe/LsiScsi.c b/OvmfPkg/LsiScsiDxe/LsiScsi.c index 79a2af4fee73..62daa3ab99bf 100644 --- a/OvmfPkg/LsiScsiDxe/LsiScsi.c +++ b/OvmfPkg/LsiScsiDxe/LsiScsi.c @@ -74,6 +74,71 @@ EFI_DRIVER_BINDING_PROTOCOL gDriverBinding =3D { }; =20 =20 +// +// The purpose of the following scaffolding (EFI_COMPONENT_NAME_PROTOCOL a= nd +// EFI_COMPONENT_NAME2_PROTOCOL implementation) is to format the driver's = name +// in English, for display on standard console devices. This is recommende= d for +// UEFI drivers that follow the UEFI Driver Model. Refer to the Driver Wri= ter's +// Guide for UEFI 2.3.1 v1.01, 11 UEFI Driver and Controller Names. +// +// Device type names ("LSI 53C895A SCSI Controller") are not formatted bec= ause +// the driver supports only that device type. Therefore the driver name +// suffices for unambiguous identification. +// + +STATIC +EFI_UNICODE_STRING_TABLE mDriverNameTable[] =3D { + { "eng;en", L"LSI 53C895A SCSI Controller Driver" }, + { NULL, NULL } +}; + +STATIC +EFI_COMPONENT_NAME_PROTOCOL gComponentName; + +EFI_STATUS +EFIAPI +LsiScsiGetDriverName ( + IN EFI_COMPONENT_NAME_PROTOCOL *This, + IN CHAR8 *Language, + OUT CHAR16 **DriverName + ) +{ + return LookupUnicodeString2 ( + Language, + This->SupportedLanguages, + mDriverNameTable, + DriverName, + (BOOLEAN)(This =3D=3D &gComponentName) // Iso639Language + ); +} + +EFI_STATUS +EFIAPI +LsiScsiGetDeviceName ( + IN EFI_COMPONENT_NAME_PROTOCOL *This, + IN EFI_HANDLE DeviceHandle, + IN EFI_HANDLE ChildHandle, + IN CHAR8 *Language, + OUT CHAR16 **ControllerName + ) +{ + return EFI_UNSUPPORTED; +} + +STATIC +EFI_COMPONENT_NAME_PROTOCOL gComponentName =3D { + &LsiScsiGetDriverName, + &LsiScsiGetDeviceName, + "eng" // SupportedLanguages, ISO 639-2 language codes +}; + +STATIC +EFI_COMPONENT_NAME2_PROTOCOL gComponentName2 =3D { + (EFI_COMPONENT_NAME2_GET_DRIVER_NAME) &LsiScsiGetDriverName, + (EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME) &LsiScsiGetDeviceName, + "en" // SupportedLanguages, RFC 4646 language codes +}; + // // Entry point of this driver // @@ -89,7 +154,7 @@ LsiScsiEntryPoint ( SystemTable, &gDriverBinding, ImageHandle, // The handle to install onto - NULL, // TODO Component name - NULL // TODO Component name + &gComponentName, + &gComponentName2 ); } diff --git a/OvmfPkg/LsiScsiDxe/LsiScsi.h b/OvmfPkg/LsiScsiDxe/LsiScsi.h index 328bd289b8e8..6c8dcbd70a0a 100644 --- a/OvmfPkg/LsiScsiDxe/LsiScsi.h +++ b/OvmfPkg/LsiScsiDxe/LsiScsi.h @@ -46,4 +46,35 @@ LsiScsiControllerStop ( IN EFI_HANDLE *ChildHandleBuffer ); =20 + +// +// The purpose of the following scaffolding (EFI_COMPONENT_NAME_PROTOCOL a= nd +// EFI_COMPONENT_NAME2_PROTOCOL implementation) is to format the driver's = name +// in English, for display on standard console devices. This is recommende= d for +// UEFI drivers that follow the UEFI Driver Model. Refer to the Driver Wri= ter's +// Guide for UEFI 2.3.1 v1.01, 11 UEFI Driver and Controller Names. +// +// Device type names ("LSI 53C895A SCSI Controller") are not formatted bec= ause +// the driver supports only that device type. Therefore the driver name +// suffices for unambiguous identification. +// + +EFI_STATUS +EFIAPI +LsiScsiGetDriverName ( + IN EFI_COMPONENT_NAME_PROTOCOL *This, + IN CHAR8 *Language, + OUT CHAR16 **DriverName + ); + +EFI_STATUS +EFIAPI +LsiScsiGetDeviceName ( + IN EFI_COMPONENT_NAME_PROTOCOL *This, + IN EFI_HANDLE DeviceHandle, + IN EFI_HANDLE ChildHandle, + IN CHAR8 *Language, + OUT CHAR16 **ControllerName + ); + #endif // _LSI_SCSI_DXE_H_ --=20 2.25.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 (#62657): https://edk2.groups.io/g/devel/message/62657 Mute This Topic: https://groups.io/mt/75537205/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 Sat May 4 17:13:54 2024 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+62658+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+62658+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one) Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1594885601420189.51517561152752; Thu, 16 Jul 2020 00:46:41 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id g51ZYY1788612xzYTqAyetxT; Thu, 16 Jul 2020 00:46:41 -0700 X-Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [51.163.158.102]) by mx.groups.io with SMTP id smtpd.web10.10747.1594885600345833444 for ; Thu, 16 Jul 2020 00:46:40 -0700 X-Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-ve1eur03lp2054.outbound.protection.outlook.com [104.47.9.54]) (Using TLS) by relay.mimecast.com with ESMTP id de-mta-7-d7luv6P_OZm_6rYpsr67HQ-1; Thu, 16 Jul 2020 09:46:36 +0200 X-MC-Unique: d7luv6P_OZm_6rYpsr67HQ-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HjkWJ4TbuDYh/tJT9Uq3VlKz+mNyEht+ls9TI6WTolgj8Kf3gGvBpS6weo8VwWzelSWIaJA/lwcoPmdr7StJMouNWy1/Yj298PmYMWoPiTwwDgt8KbyrRyz5xkg21F6fP6yjjPCQREsC8r83DfO0lroVGcMRv9xKHZQ8SZsKuENgz/Iw7KeZoXP2jS7IjOrEomM1hdVR1V23HcDjHQJrbHNR3Am56EYDIX2U1LtaOzPMuLCJZAKee+/xcgvA3v4E+ZxszJdX++sshoHCzLeiIUEkKeXNY1lmDWqMNNQAqT2FIf0afN88sucJN89wOO7Afsy+OVC5hMlIx1Ph77JsGw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=7EdDSC3Pd7qv7lkkwL3V8IkkL4YWnfLYrAet/BC2FYs=; b=Oe8gTXtxCYxyFJOzn1X9LcTui9MDJ60yWWus1cRbepJ7dYWsWi5SWQnDC9hr0SUg670WegezKzyYCH3r32V3+hdL6dQxMghZoKHoVvaedl7+OGo1nL4w2+McWuegKEMZzruet3Fo0s++MBiKRkTdtL7apoyE1BClItTtodeLgQ/kMh/S6p12/jV2Wh0ixiFxg6v/8ldPew1Z41DvCTFc9OoXr6aVU9fZSv0IUMO59tK5lUycHSBUifju3McPp6EJgUTcZEVPbaYt3QjZdcclIJPfRH9W7HyzzEbEJ/TKP/Q6MnnagJY6PSS2wGD+GV4qa7TFjb7/VTImWIZeYRz7Ig== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none X-Received: from AM0PR0402MB3809.eurprd04.prod.outlook.com (2603:10a6:208:10::30) by AM0PR04MB5122.eurprd04.prod.outlook.com (2603:10a6:208:ca::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3174.25; Thu, 16 Jul 2020 07:46:34 +0000 X-Received: from AM0PR0402MB3809.eurprd04.prod.outlook.com ([fe80::a14c:d441:c8a9:77ba]) by AM0PR0402MB3809.eurprd04.prod.outlook.com ([fe80::a14c:d441:c8a9:77ba%6]) with mapi id 15.20.3174.026; Thu, 16 Jul 2020 07:46:34 +0000 From: "Gary Lin" To: devel@edk2.groups.io Cc: Jordan Justen , Laszlo Ersek , Ard Biesheuvel Subject: [edk2-devel] [PATCH v2 04/12] OvmfPkg/LsiScsiDxe: Probe PCI devices and look for LsiScsi Date: Thu, 16 Jul 2020 15:45:59 +0800 Message-Id: <20200716074607.18048-5-glin@suse.com> In-Reply-To: <20200716074607.18048-1-glin@suse.com> References: <20200716074607.18048-1-glin@suse.com> X-ClientProxiedBy: AM3PR07CA0118.eurprd07.prod.outlook.com (2603:10a6:207:7::28) To AM0PR0402MB3809.eurprd04.prod.outlook.com (2603:10a6:208:10::30) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-Received: from GaryWorkstation.suse.cz (60.251.47.115) by AM3PR07CA0118.eurprd07.prod.outlook.com (2603:10a6:207:7::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3195.17 via Frontend Transport; Thu, 16 Jul 2020 07:46:31 +0000 X-Originating-IP: [60.251.47.115] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a35528d0-e280-41b2-dd39-08d8295c5c24 X-MS-TrafficTypeDiagnostic: AM0PR04MB5122: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:3631; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info: GM39JLBcByGV5XS1wu5TVABuN0WiWHTsMK44YhYls+ZV+mG76/221KgZT/8/fG7E2sHjtXZxN540px/fiG3r3k5lhK0I3Puy5vrjP5yc1s09Vv5rtx4LLjPL4+pC1iyq5yJLZTm/mdCd3ympDMrJIFFJfcJs2PMTbFaOisv/OkKKcGqsbepAHhM1LBCP/G1mYIxwAa1zCDEVaLzvF32QCkeoyALChiCYOpn/g1u6m7tvJeAssZd9IlNgoPS0yvRDA5MoGuefKWo2vrp/Sd4qv1dtqRKzWT1EvBCRGK4zKbke1s901O+A7a5EIGYorBwiuHcX1cqIUn0p0kiH88YPmQ== X-MS-Exchange-AntiSpam-MessageData: fpM14UcOSZh4kioquFD5PiPTLFubDemoYadwYjt63snc11OIyxatxvDE0KJbVhsHrrLVBq0TVJ7fuHLhGuF92N5ROd/SVvqiUxleRdcmk9DhsQiONJN/CZee+jc4TM25DBY0GBGzVaU7UcCuyn4o1Ua+x8Qfoz4HX8aXbsSaFf4PFC2icvgDKM/ZAZm0t6Sj4J3v8OoKYXv81VcXskmgJbRVORh1S8o4C+5uOMlh+rTtX1AyKDIuHJ3MMltjNQ6GMkOeUbRqTXTdP2kgdeeWjwmMA0ssxFQUnLX73yOKTvb9/m1QHzW98clgDydB3mA0D//8SXWRgCxBUxGc+OH2crCree/HwoaJB6l3/5nj5kgTYZNonbeVRA15B0XELEtUe1q+AqpV9Eql6bjr5IpagTYQIE8vnuKywBNt8ueDD1G2aRCzdNK2tFtZR1DiWINYHAtYVb+1mlDyYXOrtefOQsN11To+RM/nV3LZuhvmrWs= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: a35528d0-e280-41b2-dd39-08d8295c5c24 X-MS-Exchange-CrossTenant-AuthSource: AM0PR0402MB3809.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jul 2020 07:46:34.1320 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: XeuX+v51rxjq6s0UyC3farK3Zj869yZmOW37iU+775Wg+1uicXDNfo+Au7DLx86v X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB5122 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,glin@suse.com X-Gm-Message-State: ouVN8IVQA2BAIZuyerqJDnNAx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1594885601; bh=oh4BwxgGhLRUJ/sjgM3+g1BItWxbxTwbqqSp7xx0NuY=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=jVDqXDZUEZbyPkvLeRwsZgQi6PHGsM9OWXU4ZWIcBo8G2BMYo/7UZYju1yDGAnWxW+S 2Ir32qLu/PFKW8kK/7c1k2xrltwS9GaqH9Sb0Ed4Ry4VKwS3TbyMFWl+3zDmeAmP0SKsK fbrQ478p0GUpkQYHWXbIHriAPC/nn/kVWZg= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" Implement LsiScsiControllerSupported() to probe the PCI ID and look for LSI 53C895A. Cc: Jordan Justen Cc: Laszlo Ersek Cc: Ard Biesheuvel Signed-off-by: Gary Lin Reviewed-by: Laszlo Ersek --- OvmfPkg/Include/IndustryStandard/LsiScsi.h | 20 +++++++++ OvmfPkg/LsiScsiDxe/LsiScsi.c | 48 +++++++++++++++++++++- OvmfPkg/LsiScsiDxe/LsiScsiDxe.inf | 6 +++ 3 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 OvmfPkg/Include/IndustryStandard/LsiScsi.h diff --git a/OvmfPkg/Include/IndustryStandard/LsiScsi.h b/OvmfPkg/Include/I= ndustryStandard/LsiScsi.h new file mode 100644 index 000000000000..c09e864a1f39 --- /dev/null +++ b/OvmfPkg/Include/IndustryStandard/LsiScsi.h @@ -0,0 +1,20 @@ +/** @file + + Macros and type definitions for LSI 53C895A SCSI devices. + + Copyright (C) 2020, SUSE LLC. + + SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#ifndef _LSI_SCSI_H_ +#define _LSI_SCSI_H_ + +// +// Device ID +// +#define LSI_LOGIC_PCI_VENDOR_ID 0x1000 +#define LSI_53C895A_PCI_DEVICE_ID 0x0012 + +#endif // _LSI_SCSI_H_ diff --git a/OvmfPkg/LsiScsiDxe/LsiScsi.c b/OvmfPkg/LsiScsiDxe/LsiScsi.c index 62daa3ab99bf..5bca85bd75eb 100644 --- a/OvmfPkg/LsiScsiDxe/LsiScsi.c +++ b/OvmfPkg/LsiScsiDxe/LsiScsi.c @@ -9,7 +9,12 @@ =20 **/ =20 +#include +#include +#include #include +#include +#include #include =20 #include "LsiScsi.h" @@ -31,7 +36,48 @@ LsiScsiControllerSupported ( IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL ) { - return EFI_UNSUPPORTED; + EFI_STATUS Status; + EFI_PCI_IO_PROTOCOL *PciIo; + PCI_TYPE00 Pci; + + Status =3D gBS->OpenProtocol ( + ControllerHandle, + &gEfiPciIoProtocolGuid, + (VOID **)&PciIo, + This->DriverBindingHandle, + ControllerHandle, + EFI_OPEN_PROTOCOL_BY_DRIVER + ); + if (EFI_ERROR (Status)) { + return Status; + } + + Status =3D PciIo->Pci.Read ( + PciIo, + EfiPciIoWidthUint32, + 0, + sizeof (Pci) / sizeof (UINT32), + &Pci + ); + if (EFI_ERROR (Status)) { + goto Done; + } + + if (Pci.Hdr.VendorId =3D=3D LSI_LOGIC_PCI_VENDOR_ID && + Pci.Hdr.DeviceId =3D=3D LSI_53C895A_PCI_DEVICE_ID) { + Status =3D EFI_SUCCESS; + } else { + Status =3D EFI_UNSUPPORTED; + } + +Done: + gBS->CloseProtocol ( + ControllerHandle, + &gEfiPciIoProtocolGuid, + This->DriverBindingHandle, + ControllerHandle + ); + return Status; } =20 EFI_STATUS diff --git a/OvmfPkg/LsiScsiDxe/LsiScsiDxe.inf b/OvmfPkg/LsiScsiDxe/LsiScsi= Dxe.inf index 5cb15c456549..7ce11fcc6a03 100644 --- a/OvmfPkg/LsiScsiDxe/LsiScsiDxe.inf +++ b/OvmfPkg/LsiScsiDxe/LsiScsiDxe.inf @@ -22,7 +22,13 @@ [Sources] =20 [Packages] MdePkg/MdePkg.dec + OvmfPkg/OvmfPkg.dec =20 [LibraryClasses] + BaseLib + UefiBootServicesTableLib UefiDriverEntryPoint UefiLib + +[Protocols] + gEfiPciIoProtocolGuid ## TO_START --=20 2.25.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 (#62658): https://edk2.groups.io/g/devel/message/62658 Mute This Topic: https://groups.io/mt/75537207/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 Sat May 4 17:13:54 2024 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+62660+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+62660+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one) Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1594885603438628.4516124243337; Thu, 16 Jul 2020 00:46:43 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id PCBJYY1788612xWaIsPn8GsT; Thu, 16 Jul 2020 00:46:43 -0700 X-Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [62.140.7.102]) by mx.groups.io with SMTP id smtpd.web12.10701.1594885602132259356 for ; Thu, 16 Jul 2020 00:46:42 -0700 X-Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05lp2173.outbound.protection.outlook.com [104.47.17.173]) (Using TLS) by relay.mimecast.com with ESMTP id de-mta-20-ISck9tuUMEmmUJ8lBvK4Bg-1; Thu, 16 Jul 2020 09:46:37 +0200 X-MC-Unique: ISck9tuUMEmmUJ8lBvK4Bg-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bp7lLkywYxhLtPwyLYgcVO5PHoHk1H5cYxkuO5GfXjnSlaZuXNsHrmjqsPs1+rGgbtJwEbKpK+zfFG/iezucM1eCri1ldvcXFOEuaCfLh1lQWrIXzoO+jAYzWgJ5HYk8XaD7WV15JDeHkXHBkJs7S8Or7Q+MC6SoYiHX6szOva8vF/MB+hCDPLhmWUlXb4F6/G6/9XVG2SnMng255EhqM1phq7dkZyATN22wjQBKL8M3ErjSoyJw4AH9FsJAn477wVfuDbu2jJT6pKDU6uJkXmGeSINcxP0vWvL5g7dkAR1qI6DvOGjPPYLDc5dC+RCuhQMlw5tgWSUuraRRwPWw3w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=nstBE28e/MNW2HL+wR9okD2MUalEpdJKz1wyYZvcGSE=; b=Hoqw3qvJEZWmNUsZ3wkseIJvo2koSfvdFKyv0oSQsm4pO/kJddcJaBQ/bBXDG9+UgPmvLWePuOvI/bXMdr1ucCU9VlFGXEj/xvjNfz+lDt3CdTgL6teiLZ1jbkZ3FmWF9jt+SFz7PjF3atYHUcfKmP1jhq5YgfT/yLB0LEvTA3Lr+lIMJkrb9N7ZKj0MNsJ58ZHlg93SJ0QhxE9SiZAdIvO2QC1lVcE4U3Ei/JlLpgJGMwOMNyP9Usiwg14QB+/Bu8S6S0DwZ8tqi4sG0UaOJ0Fh7OLXcjk4Vp7Y64ujL5+Bv0Z6fASoWYbCVKEVUznihJlTOZjF9IAtZQjhiq0y6Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none X-Received: from AM0PR0402MB3809.eurprd04.prod.outlook.com (2603:10a6:208:10::30) by AM0PR04MB4740.eurprd04.prod.outlook.com (2603:10a6:208:c8::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3195.17; Thu, 16 Jul 2020 07:46:36 +0000 X-Received: from AM0PR0402MB3809.eurprd04.prod.outlook.com ([fe80::a14c:d441:c8a9:77ba]) by AM0PR0402MB3809.eurprd04.prod.outlook.com ([fe80::a14c:d441:c8a9:77ba%6]) with mapi id 15.20.3174.026; Thu, 16 Jul 2020 07:46:36 +0000 From: "Gary Lin" To: devel@edk2.groups.io Cc: Jordan Justen , Laszlo Ersek , Ard Biesheuvel Subject: [edk2-devel] [PATCH v2 05/12] OvmfPkg/LsiScsiDxe: Install stubbed EXT_SCSI_PASS_THRU Date: Thu, 16 Jul 2020 15:46:00 +0800 Message-Id: <20200716074607.18048-6-glin@suse.com> In-Reply-To: <20200716074607.18048-1-glin@suse.com> References: <20200716074607.18048-1-glin@suse.com> X-ClientProxiedBy: AM3PR07CA0118.eurprd07.prod.outlook.com (2603:10a6:207:7::28) To AM0PR0402MB3809.eurprd04.prod.outlook.com (2603:10a6:208:10::30) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-Received: from GaryWorkstation.suse.cz (60.251.47.115) by AM3PR07CA0118.eurprd07.prod.outlook.com (2603:10a6:207:7::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3195.17 via Frontend Transport; Thu, 16 Jul 2020 07:46:34 +0000 X-Originating-IP: [60.251.47.115] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 9c0dcdac-00c5-4431-26db-08d8295c5da7 X-MS-TrafficTypeDiagnostic: AM0PR04MB4740: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:6430; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info: FKNSGRvg0FMZZWiBIXm+obyUmNJUC/EYEeZr69ZGxQdU+rOuXk9xbc33DTfzK2zu1RTQX0Vx2TBYvxJukhfoq/STzO8ZqNFjH+A82poP/lp7P/YX6xi9QAwfPbo5NMOd33z6yu7HTtyDNO9S8oXnluDhCR3avyN0VbiVyfpCXdSSh6wRLjA0pvNHhLRsPfHnHU8dF3gIZtAeC2BI/KGyJwWrsNgn80qPE5gOMd28OVSQ7pfHCi2Ven9h9g7WnHpMdyO++Umx0TZW5WgsuI99lyniSaaoi8/t8rfa4juOJE8hl3lLAhbsQyglqVlgPi3LjQDYr9X31lnwGMMjyMXf3A== X-MS-Exchange-AntiSpam-MessageData: Cz3PvYpVtAl0Nv3ZUeTm98u6yp0v0/DOLYP+3rzNITQB0VMm0SXFTWs76FlzlK32YtKYs6XkuUYnS+WPbNFNDOE8jOFx+yWsfRLCh4H3xcfz32HUxIIzIev5OO0tuW8nefc1gK6oA7r+W66gUnMr/RUDRCv+AeXStq2jQu1W5YGDtrI7KDYWVXZXEb7a+TRZ94gmxtBcknGjOtvLe+39nLJxk7xc/dE1U0iZwcn+WooT97/0C+LmhmR8xLSovqOtPgQNgdOhacry0sea1h9N6dz5K7+jF6iLjqB+xOL5yptihWP1EugA8ayOt0fQhhmUy3klcAsiGXkNxlQ5h5n6VqaewkACcWWgan0DF4By8zxj8YbTy1mehUxjKEigQP8lx3ffJETG8BKkbKogmgpj2xepvyBw+df1n4iejGKEOr4r7yRIlNRAkiPTKch5bxas1JhG0Spg6YU9+nBVCBr8mYhnfde2VgEx7FR/IWXNNJY= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9c0dcdac-00c5-4431-26db-08d8295c5da7 X-MS-Exchange-CrossTenant-AuthSource: AM0PR0402MB3809.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jul 2020 07:46:36.1758 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: nFXGm/ycVqlV5P0IQVOCEBqXW098581oe44W5tArrxa3B/9iM+lnz9QSSsiPqsPt X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB4740 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,glin@suse.com X-Gm-Message-State: NYTW1i51QZPMCjtyjoLxDUBlx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1594885603; bh=el7jjgcRs/wydvHKM6GyF9rSlvoS8rSdRCAEmgTONt4=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=l7uEi+XlY4WBBRqJ4ey58ONqYmrUa2sGAu/qoGz1WjIKNszDMc0UPGrf8pZNy3RQtrq 9v9t1hxOCY3UXbaoKhKUjJQ9h44I3OQd5eT0GXsIro+JOBJ75b6Ae+6KetjED5o3RXT8S aaLh3jbjCrdKTb//9Cr96cYGj0N7w8BN0m0= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" Partially implement LsiScsiControllerStart() and LsiScsiControllerStop() to insert the scaffolding of EXT_SCSI_PASS_THRU functions. v2: Remove the closing of PciIo protocol from LsiScsiControllerStop(). Cc: Jordan Justen Cc: Laszlo Ersek Cc: Ard Biesheuvel Signed-off-by: Gary Lin Reviewed-by: Laszlo Ersek --- OvmfPkg/LsiScsiDxe/LsiScsi.c | 164 +++++++++++++++++++++++++++++- OvmfPkg/LsiScsiDxe/LsiScsi.h | 77 ++++++++++++++ OvmfPkg/LsiScsiDxe/LsiScsiDxe.inf | 3 + 3 files changed, 243 insertions(+), 1 deletion(-) diff --git a/OvmfPkg/LsiScsiDxe/LsiScsi.c b/OvmfPkg/LsiScsiDxe/LsiScsi.c index 5bca85bd75eb..67fadb411e85 100644 --- a/OvmfPkg/LsiScsiDxe/LsiScsi.c +++ b/OvmfPkg/LsiScsiDxe/LsiScsi.c @@ -11,14 +11,105 @@ =20 #include #include +#include +#include +#include +#include #include #include #include #include +#include #include =20 #include "LsiScsi.h" =20 +// +// The next seven functions implement EFI_EXT_SCSI_PASS_THRU_PROTOCOL +// for the LSI 53C895A SCSI Controller. Refer to UEFI Spec 2.3.1 + Errata = C, +// sections +// - 14.1 SCSI Driver Model Overview, +// - 14.7 Extended SCSI Pass Thru Protocol. +// + +EFI_STATUS +EFIAPI +LsiScsiPassThru ( + IN EFI_EXT_SCSI_PASS_THRU_PROTOCOL *This, + IN UINT8 *Target, + IN UINT64 Lun, + IN OUT EFI_EXT_SCSI_PASS_THRU_SCSI_REQUEST_PACKET *Packet, + IN EFI_EVENT Event OPTIONAL + ) +{ + return EFI_UNSUPPORTED; +} + +EFI_STATUS +EFIAPI +LsiScsiGetNextTargetLun ( + IN EFI_EXT_SCSI_PASS_THRU_PROTOCOL *This, + IN OUT UINT8 **TargetPointer, + IN OUT UINT64 *Lun + ) +{ + return EFI_NOT_FOUND; +} + +EFI_STATUS +EFIAPI +LsiScsiBuildDevicePath ( + IN EFI_EXT_SCSI_PASS_THRU_PROTOCOL *This, + IN UINT8 *Target, + IN UINT64 Lun, + IN OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath + ) +{ + return EFI_NOT_FOUND; +} + +EFI_STATUS +EFIAPI +LsiScsiGetTargetLun ( + IN EFI_EXT_SCSI_PASS_THRU_PROTOCOL *This, + IN EFI_DEVICE_PATH_PROTOCOL *DevicePath, + OUT UINT8 **TargetPointer, + OUT UINT64 *Lun + ) +{ + return EFI_UNSUPPORTED; +} + +EFI_STATUS +EFIAPI +LsiScsiResetChannel ( + IN EFI_EXT_SCSI_PASS_THRU_PROTOCOL *This + ) +{ + return EFI_UNSUPPORTED; +} + +EFI_STATUS +EFIAPI +LsiScsiResetTargetLun ( + IN EFI_EXT_SCSI_PASS_THRU_PROTOCOL *This, + IN UINT8 *Target, + IN UINT64 Lun + ) +{ + return EFI_UNSUPPORTED; +} + +EFI_STATUS +EFIAPI +LsiScsiGetNextTarget ( + IN EFI_EXT_SCSI_PASS_THRU_PROTOCOL *This, + IN OUT UINT8 **TargetPointer + ) +{ + return EFI_NOT_FOUND; +} + // // Probe, start and stop functions of this driver, called by the DXE core = for // specific devices. @@ -88,7 +179,49 @@ LsiScsiControllerStart ( IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL ) { + EFI_STATUS Status; + LSI_SCSI_DEV *Dev; + + Dev =3D AllocateZeroPool (sizeof (*Dev)); + if (Dev =3D=3D NULL) { + return EFI_OUT_OF_RESOURCES; + } + + Dev->Signature =3D LSI_SCSI_DEV_SIGNATURE; + + // + // Host adapter channel, doesn't exist + // + Dev->PassThruMode.AdapterId =3D MAX_UINT32; + Dev->PassThruMode.Attributes =3D + EFI_EXT_SCSI_PASS_THRU_ATTRIBUTES_PHYSICAL | + EFI_EXT_SCSI_PASS_THRU_ATTRIBUTES_LOGICAL; + + Dev->PassThru.Mode =3D &Dev->PassThruMode; + Dev->PassThru.PassThru =3D &LsiScsiPassThru; + Dev->PassThru.GetNextTargetLun =3D &LsiScsiGetNextTargetLun; + Dev->PassThru.BuildDevicePath =3D &LsiScsiBuildDevicePath; + Dev->PassThru.GetTargetLun =3D &LsiScsiGetTargetLun; + Dev->PassThru.ResetChannel =3D &LsiScsiResetChannel; + Dev->PassThru.ResetTargetLun =3D &LsiScsiResetTargetLun; + Dev->PassThru.GetNextTarget =3D &LsiScsiGetNextTarget; + + Status =3D gBS->InstallProtocolInterface ( + &ControllerHandle, + &gEfiExtScsiPassThruProtocolGuid, + EFI_NATIVE_INTERFACE, + &Dev->PassThru + ); + if (EFI_ERROR (Status)) { + goto FreePool; + } + return EFI_SUCCESS; + +FreePool: + FreePool (Dev); + + return Status; } =20 EFI_STATUS @@ -100,7 +233,36 @@ LsiScsiControllerStop ( IN EFI_HANDLE *ChildHandleBuffer ) { - return EFI_SUCCESS; + EFI_STATUS Status; + EFI_EXT_SCSI_PASS_THRU_PROTOCOL *PassThru; + LSI_SCSI_DEV *Dev; + + Status =3D gBS->OpenProtocol ( + ControllerHandle, + &gEfiExtScsiPassThruProtocolGuid, + (VOID **)&PassThru, + This->DriverBindingHandle, + ControllerHandle, + EFI_OPEN_PROTOCOL_GET_PROTOCOL // Lookup only + ); + if (EFI_ERROR (Status)) { + return Status; + } + + Dev =3D LSI_SCSI_FROM_PASS_THRU (PassThru); + + Status =3D gBS->UninstallProtocolInterface ( + ControllerHandle, + &gEfiExtScsiPassThruProtocolGuid, + &Dev->PassThru + ); + if (EFI_ERROR (Status)) { + return Status; + } + + FreePool (Dev); + + return Status; } =20 // diff --git a/OvmfPkg/LsiScsiDxe/LsiScsi.h b/OvmfPkg/LsiScsiDxe/LsiScsi.h index 6c8dcbd70a0a..c194dfbf3347 100644 --- a/OvmfPkg/LsiScsiDxe/LsiScsi.h +++ b/OvmfPkg/LsiScsiDxe/LsiScsi.h @@ -12,6 +12,17 @@ #ifndef _LSI_SCSI_DXE_H_ #define _LSI_SCSI_DXE_H_ =20 +typedef struct { + UINT32 Signature; + EFI_EXT_SCSI_PASS_THRU_MODE PassThruMode; + EFI_EXT_SCSI_PASS_THRU_PROTOCOL PassThru; +} LSI_SCSI_DEV; + +#define LSI_SCSI_DEV_SIGNATURE SIGNATURE_32 ('L','S','I','S') + +#define LSI_SCSI_FROM_PASS_THRU(PassThruPtr) \ + CR (PassThruPtr, LSI_SCSI_DEV, PassThru, LSI_SCSI_DEV_SIGNATURE) + // // Probe, start and stop functions of this driver, called by the DXE core = for // specific devices. @@ -47,6 +58,72 @@ LsiScsiControllerStop ( ); =20 =20 +// +// The next seven functions implement EFI_EXT_SCSI_PASS_THRU_PROTOCOL +// for the LSI 53C895A SCSI Controller. Refer to UEFI Spec 2.3.1 + Errata = C, +// sections +// - 14.1 SCSI Driver Model Overview, +// - 14.7 Extended SCSI Pass Thru Protocol. +// + +EFI_STATUS +EFIAPI +LsiScsiPassThru ( + IN EFI_EXT_SCSI_PASS_THRU_PROTOCOL *This, + IN UINT8 *Target, + IN UINT64 Lun, + IN OUT EFI_EXT_SCSI_PASS_THRU_SCSI_REQUEST_PACKET *Packet, + IN EFI_EVENT Event OPTIONAL + ); + +EFI_STATUS +EFIAPI +LsiScsiGetNextTargetLun ( + IN EFI_EXT_SCSI_PASS_THRU_PROTOCOL *This, + IN OUT UINT8 **TargetPointer, + IN OUT UINT64 *Lun + ); + +EFI_STATUS +EFIAPI +LsiScsiBuildDevicePath ( + IN EFI_EXT_SCSI_PASS_THRU_PROTOCOL *This, + IN UINT8 *Target, + IN UINT64 Lun, + IN OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath + ); + +EFI_STATUS +EFIAPI +LsiScsiGetTargetLun ( + IN EFI_EXT_SCSI_PASS_THRU_PROTOCOL *This, + IN EFI_DEVICE_PATH_PROTOCOL *DevicePath, + OUT UINT8 **TargetPointer, + OUT UINT64 *Lun + ); + +EFI_STATUS +EFIAPI +LsiScsiResetChannel ( + IN EFI_EXT_SCSI_PASS_THRU_PROTOCOL *This + ); + +EFI_STATUS +EFIAPI +LsiScsiResetTargetLun ( + IN EFI_EXT_SCSI_PASS_THRU_PROTOCOL *This, + IN UINT8 *Target, + IN UINT64 Lun + ); + +EFI_STATUS +EFIAPI +LsiScsiGetNextTarget ( + IN EFI_EXT_SCSI_PASS_THRU_PROTOCOL *This, + IN OUT UINT8 **TargetPointer + ); + + // // The purpose of the following scaffolding (EFI_COMPONENT_NAME_PROTOCOL a= nd // EFI_COMPONENT_NAME2_PROTOCOL implementation) is to format the driver's = name diff --git a/OvmfPkg/LsiScsiDxe/LsiScsiDxe.inf b/OvmfPkg/LsiScsiDxe/LsiScsi= Dxe.inf index 7ce11fcc6a03..14f9c68308cc 100644 --- a/OvmfPkg/LsiScsiDxe/LsiScsiDxe.inf +++ b/OvmfPkg/LsiScsiDxe/LsiScsiDxe.inf @@ -26,9 +26,12 @@ [Packages] =20 [LibraryClasses] BaseLib + BaseMemoryLib + MemoryAllocationLib UefiBootServicesTableLib UefiDriverEntryPoint UefiLib =20 [Protocols] + gEfiExtScsiPassThruProtocolGuid ## BY_START gEfiPciIoProtocolGuid ## TO_START --=20 2.25.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 (#62660): https://edk2.groups.io/g/devel/message/62660 Mute This Topic: https://groups.io/mt/75537210/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 Sat May 4 17:13:54 2024 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+62659+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+62659+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one) Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1594885603051546.4508705584115; Thu, 16 Jul 2020 00:46:43 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id a4GjYY1788612xLmJ8tbXpYl; Thu, 16 Jul 2020 00:46:42 -0700 X-Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [51.163.158.102]) by mx.groups.io with SMTP id smtpd.web10.10748.1594885601862393413 for ; Thu, 16 Jul 2020 00:46:42 -0700 X-Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-ve1eur03lp2054.outbound.protection.outlook.com [104.47.9.54]) (Using TLS) by relay.mimecast.com with ESMTP id de-mta-7-1pu9P3tiMX6qXmhjKeEtBg-2; Thu, 16 Jul 2020 09:46:38 +0200 X-MC-Unique: 1pu9P3tiMX6qXmhjKeEtBg-2 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Zxpy3xkc6zFo/qZ74pq4dfTOKPTUYad5i9QhFUyBjKs2fqvfONOPPbPhlCCuEjQjzBSxNY6ItR2m4s8sPL/a4LjVseKmJMeGhe6RO1FHBdx8cZsTIduOoBBU72HVyPgg8YjaGeMCzpXTjlCpq9Zi7bgWF7sxqOo7bZW2GTSxmUcdtqRLk8eRsB4/0ibJj0Nfd+WXPA0Ct9iv5GVQ8PBmUQj1QWwCVC0OeWTKZHmGHJ161in0mnsxarCg7VojcD5qEpEtZBMiTvHMpT0oyNNUHFj4HWmRBPz4aV++NYdtHKXbzkcQoCEfEnABjOp1z7cW3FkPba7wRjun3VSaMNMDSg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=KlILA3hQLQCpYvQnIal/iSU0/pEsU9nfydqB2EQDfj4=; b=cjLH+paxrHcqHHsgzIEaPtfPXCf8Y/eFd9moDPuy0kFAGsw5diSI7XFEqMdRfNcl7JmmIHadx/FmdTNix68DTdYtlxlKELyzotAlJA7bFjwqTcUE3Us8xIEPdVdmE2mHSoz/Agvp8HxMqiKCvzAEFNQ2YRZs9LAwJ6ig2nVg9+DyI07IxIZ0q9L8QfQWXkYCc+UcoE98StbBpXgq0Gqev6nS7ip5IeZl5XtLWnVZQd5sZRHWHlkPot0t4ghQOAkomZ3PQBUtn8Yz1or65m/g0r/GfwfKot/yMKBpIM6pMcbXpQkQuiFJ30IVYz7RvLTsz+I17T1TNtO0PB6KYJOeww== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none X-Received: from AM0PR0402MB3809.eurprd04.prod.outlook.com (2603:10a6:208:10::30) by AM0PR04MB5122.eurprd04.prod.outlook.com (2603:10a6:208:ca::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3174.25; Thu, 16 Jul 2020 07:46:38 +0000 X-Received: from AM0PR0402MB3809.eurprd04.prod.outlook.com ([fe80::a14c:d441:c8a9:77ba]) by AM0PR0402MB3809.eurprd04.prod.outlook.com ([fe80::a14c:d441:c8a9:77ba%6]) with mapi id 15.20.3174.026; Thu, 16 Jul 2020 07:46:38 +0000 From: "Gary Lin" To: devel@edk2.groups.io Cc: Jordan Justen , Laszlo Ersek , Ard Biesheuvel Subject: [edk2-devel] [PATCH v2 06/12] OvmfPkg/LsiScsiDxe: Report Targets and LUNs Date: Thu, 16 Jul 2020 15:46:01 +0800 Message-Id: <20200716074607.18048-7-glin@suse.com> In-Reply-To: <20200716074607.18048-1-glin@suse.com> References: <20200716074607.18048-1-glin@suse.com> X-ClientProxiedBy: AM3PR07CA0118.eurprd07.prod.outlook.com (2603:10a6:207:7::28) To AM0PR0402MB3809.eurprd04.prod.outlook.com (2603:10a6:208:10::30) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-Received: from GaryWorkstation.suse.cz (60.251.47.115) by AM3PR07CA0118.eurprd07.prod.outlook.com (2603:10a6:207:7::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3195.17 via Frontend Transport; Thu, 16 Jul 2020 07:46:36 +0000 X-Originating-IP: [60.251.47.115] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 32440ab1-bbf4-4107-d9d0-08d8295c5ed7 X-MS-TrafficTypeDiagnostic: AM0PR04MB5122: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:913; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info: NPN6FykMILrZtPk8DV5SIbLWYRvDP/+52DNAIP/hBBF9VdetJPHg1+AmkbuEdRyrOVfGRuzzBG08uiuF9kyfdU2j2usn29kAxz4YzrizCwK5KqicAm9aiPNxdxsJn3auU7MNavUlRLIgHjwM6LYHng5xtB3y6gSCCJHsh+we43VncUem9EcSunUmVbrtURBUsTn7a0es90Cp9YQPTPmv5YF4RV5Y2uqJzzp5sdxBonLnuAyq1PhvBkZwWVvq56afmfR+MzZf4OjAWE6QN9kKCtVMaN/d5HQr0q9MMdFBDTF4Zd++zKa3knWrMu0zBzwsDOR5BfjBhx++oCuNOsEGCQ== X-MS-Exchange-AntiSpam-MessageData: lstgB6x0QhMw6ETyJMzPHmODvvx7RXaYcotqhJPnUVQSVHJ0B/YB2PwKWJS3i1X/yhtLavQ71ZwT3u3bYEIAJ7nB5wPUZy/QoP7cZLL+9bryIbpvB3j6VHiqhl9AAV3h3y9J8E5UfWkZQ+FwEe2QM5r5ILqeXp5sbYes6vZaEywEwy1SCx/NduFo15NHJza/fkBjT27qe2q2c+n11eiZRIBE2knyMvxKP+7eqZwVG/ryJdSxI49Lp8HcfpRQTXzKNuK/AOlxcz3bWrXa9VXuflCHvlB3mLOxxKgBKZPsDfvpWsHdxU4lyohTMAU+14x4KhvPD23iovwM7tX92KwmIoeZwiLk4a6NFh5W1V9suKNKRWGt6ZCwiSTsSJdqsBsJmGSk5ITYjyUB2/qRuoNLEvlAc11w9xvMySDad1AH9bR0XIN3p5gBrxZQbHs7HtNxTqisEE/ZkHFuRMO6WLLkuI4AXz4W4droQXuaHFUbhJk= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 32440ab1-bbf4-4107-d9d0-08d8295c5ed7 X-MS-Exchange-CrossTenant-AuthSource: AM0PR0402MB3809.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jul 2020 07:46:38.0817 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Jn0V2i5xnryzzi+cFQVF1nQWhPh3IVlCrZxGBfJErfXvwTXfaqJbeHOIpsYBeApK X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB5122 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,glin@suse.com X-Gm-Message-State: exaP73oJXNZUeRB6cH83sxiex1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1594885602; bh=qFYg8aPyInDBH4v/fZpB8ewGKgnCJMexhoDEsN0Pcmw=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=pZ+78TSgW6ApNKPEdhZgU6yC9vC+meOX5GDJysra5jAyBV4u+79MqnkRixbT6qOXcwq WFhT+Jm2/FcCMpK2Xh+6uYQJPGJz60n9AZKXMw9yVSdiwqmCleZacBzW02aZoWiJoPulq FUVP6+6SEa0MgZ5bnSzvnKYJYqR+leOzMgQ= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" Implement LsiScsiGetNextTargetLun(), LsiScsiBuildDevicePath(), LsiScsiGetTargetLun(), and LsiScsiGetNextTarget() to report Targets and LUNs and build the device path. This commit also introduces two PCD value: PcdLsiScsiMaxTargetLimit and PcdLsiScsiMaxLunLimit as the limits for Targets and LUNs. v2: - Zero out (*Target) in LsiScsiGetTargetLun() - Use CopyMem() instead of the one-byte shortcut to copy target from ScsiDevicePath->Pun - Add asserts for PcdLsiScsiMaxTargetLimit and PcdLsiScsiMaxLunLimit Cc: Jordan Justen Cc: Laszlo Ersek Cc: Ard Biesheuvel Signed-off-by: Gary Lin Reviewed-by: Laszlo Ersek --- OvmfPkg/LsiScsiDxe/LsiScsi.c | 148 +++++++++++++++++++++++++++++- OvmfPkg/LsiScsiDxe/LsiScsi.h | 3 + OvmfPkg/LsiScsiDxe/LsiScsiDxe.inf | 6 ++ OvmfPkg/OvmfPkg.dec | 5 + 4 files changed, 160 insertions(+), 2 deletions(-) diff --git a/OvmfPkg/LsiScsiDxe/LsiScsi.c b/OvmfPkg/LsiScsiDxe/LsiScsi.c index 67fadb411e85..989bda88d209 100644 --- a/OvmfPkg/LsiScsiDxe/LsiScsi.c +++ b/OvmfPkg/LsiScsiDxe/LsiScsi.c @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include @@ -53,6 +54,49 @@ LsiScsiGetNextTargetLun ( IN OUT UINT64 *Lun ) { + LSI_SCSI_DEV *Dev; + UINTN Idx; + UINT8 *Target; + UINT16 LastTarget; + + // + // the TargetPointer input parameter is unnecessarily a pointer-to-point= er + // + Target =3D *TargetPointer; + + // + // Search for first non-0xFF byte. If not found, return first target & L= UN. + // + for (Idx =3D 0; Idx < TARGET_MAX_BYTES && Target[Idx] =3D=3D 0xFF; ++Idx) + ; + if (Idx =3D=3D TARGET_MAX_BYTES) { + SetMem (Target, TARGET_MAX_BYTES, 0x00); + *Lun =3D 0; + return EFI_SUCCESS; + } + + CopyMem (&LastTarget, Target, sizeof LastTarget); + + // + // increment (target, LUN) pair if valid on input + // + Dev =3D LSI_SCSI_FROM_PASS_THRU (This); + if (LastTarget > Dev->MaxTarget || *Lun > Dev->MaxLun) { + return EFI_INVALID_PARAMETER; + } + + if (*Lun < Dev->MaxLun) { + ++*Lun; + return EFI_SUCCESS; + } + + if (LastTarget < Dev->MaxTarget) { + *Lun =3D 0; + ++LastTarget; + CopyMem (Target, &LastTarget, sizeof LastTarget); + return EFI_SUCCESS; + } + return EFI_NOT_FOUND; } =20 @@ -65,7 +109,34 @@ LsiScsiBuildDevicePath ( IN OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath ) { - return EFI_NOT_FOUND; + UINT16 TargetValue; + LSI_SCSI_DEV *Dev; + SCSI_DEVICE_PATH *ScsiDevicePath; + + if (DevicePath =3D=3D NULL) { + return EFI_INVALID_PARAMETER; + } + + CopyMem (&TargetValue, Target, sizeof TargetValue); + Dev =3D LSI_SCSI_FROM_PASS_THRU (This); + if (TargetValue > Dev->MaxTarget || Lun > Dev->MaxLun || Lun > 0xFFFF) { + return EFI_NOT_FOUND; + } + + ScsiDevicePath =3D AllocatePool (sizeof *ScsiDevicePath); + if (ScsiDevicePath =3D=3D NULL) { + return EFI_OUT_OF_RESOURCES; + } + + ScsiDevicePath->Header.Type =3D MESSAGING_DEVICE_PATH; + ScsiDevicePath->Header.SubType =3D MSG_SCSI_DP; + ScsiDevicePath->Header.Length[0] =3D (UINT8) sizeof *ScsiDevicePath; + ScsiDevicePath->Header.Length[1] =3D (UINT8) (sizeof *ScsiDevicePath >> = 8); + ScsiDevicePath->Pun =3D TargetValue; + ScsiDevicePath->Lun =3D (UINT16) Lun; + + *DevicePath =3D &ScsiDevicePath->Header; + return EFI_SUCCESS; } =20 EFI_STATUS @@ -77,7 +148,33 @@ LsiScsiGetTargetLun ( OUT UINT64 *Lun ) { - return EFI_UNSUPPORTED; + SCSI_DEVICE_PATH *ScsiDevicePath; + LSI_SCSI_DEV *Dev; + UINT8 *Target; + + if (DevicePath =3D=3D NULL || TargetPointer =3D=3D NULL || *TargetPointe= r =3D=3D NULL || + Lun =3D=3D NULL) { + return EFI_INVALID_PARAMETER; + } + + if (DevicePath->Type !=3D MESSAGING_DEVICE_PATH || + DevicePath->SubType !=3D MSG_SCSI_DP) { + return EFI_UNSUPPORTED; + } + + ScsiDevicePath =3D (SCSI_DEVICE_PATH *) DevicePath; + Dev =3D LSI_SCSI_FROM_PASS_THRU (This); + if (ScsiDevicePath->Pun > Dev->MaxTarget || + ScsiDevicePath->Lun > Dev->MaxLun) { + return EFI_NOT_FOUND; + } + + Target =3D *TargetPointer; + ZeroMem (Target, TARGET_MAX_BYTES); + CopyMem (Target, &ScsiDevicePath->Pun, sizeof ScsiDevicePath->Pun); + *Lun =3D ScsiDevicePath->Lun; + + return EFI_SUCCESS; } =20 EFI_STATUS @@ -107,6 +204,42 @@ LsiScsiGetNextTarget ( IN OUT UINT8 **TargetPointer ) { + LSI_SCSI_DEV *Dev; + UINTN Idx; + UINT8 *Target; + UINT16 LastTarget; + + // + // the TargetPointer input parameter is unnecessarily a pointer-to-point= er + // + Target =3D *TargetPointer; + + // + // Search for first non-0xFF byte. If not found, return first target. + // + for (Idx =3D 0; Idx < TARGET_MAX_BYTES && Target[Idx] =3D=3D 0xFF; ++Idx) + ; + if (Idx =3D=3D TARGET_MAX_BYTES) { + SetMem (Target, TARGET_MAX_BYTES, 0x00); + return EFI_SUCCESS; + } + + CopyMem (&LastTarget, Target, sizeof LastTarget); + + // + // increment target if valid on input + // + Dev =3D LSI_SCSI_FROM_PASS_THRU (This); + if (LastTarget > Dev->MaxTarget) { + return EFI_INVALID_PARAMETER; + } + + if (LastTarget < Dev->MaxTarget) { + ++LastTarget; + CopyMem (Target, &LastTarget, sizeof LastTarget); + return EFI_SUCCESS; + } + return EFI_NOT_FOUND; } =20 @@ -189,6 +322,17 @@ LsiScsiControllerStart ( =20 Dev->Signature =3D LSI_SCSI_DEV_SIGNATURE; =20 + STATIC_ASSERT ( + FixedPcdGet8 (PcdLsiScsiMaxTargetLimit) < 8, + "LSI 53C895A supports targets [0..7]" + ); + STATIC_ASSERT ( + FixedPcdGet8 (PcdLsiScsiMaxLunLimit) < 128, + "LSI 53C895A supports LUNs [0..128]" + ); + Dev->MaxTarget =3D PcdGet8 (PcdLsiScsiMaxTargetLimit); + Dev->MaxLun =3D PcdGet8 (PcdLsiScsiMaxLunLimit); + // // Host adapter channel, doesn't exist // diff --git a/OvmfPkg/LsiScsiDxe/LsiScsi.h b/OvmfPkg/LsiScsiDxe/LsiScsi.h index c194dfbf3347..6c6ed25f1c33 100644 --- a/OvmfPkg/LsiScsiDxe/LsiScsi.h +++ b/OvmfPkg/LsiScsiDxe/LsiScsi.h @@ -14,6 +14,8 @@ =20 typedef struct { UINT32 Signature; + UINT8 MaxTarget; + UINT8 MaxLun; EFI_EXT_SCSI_PASS_THRU_MODE PassThruMode; EFI_EXT_SCSI_PASS_THRU_PROTOCOL PassThru; } LSI_SCSI_DEV; @@ -23,6 +25,7 @@ typedef struct { #define LSI_SCSI_FROM_PASS_THRU(PassThruPtr) \ CR (PassThruPtr, LSI_SCSI_DEV, PassThru, LSI_SCSI_DEV_SIGNATURE) =20 + // // Probe, start and stop functions of this driver, called by the DXE core = for // specific devices. diff --git a/OvmfPkg/LsiScsiDxe/LsiScsiDxe.inf b/OvmfPkg/LsiScsiDxe/LsiScsi= Dxe.inf index 14f9c68308cc..6111449577a8 100644 --- a/OvmfPkg/LsiScsiDxe/LsiScsiDxe.inf +++ b/OvmfPkg/LsiScsiDxe/LsiScsiDxe.inf @@ -27,7 +27,9 @@ [Packages] [LibraryClasses] BaseLib BaseMemoryLib + DebugLib MemoryAllocationLib + PcdLib UefiBootServicesTableLib UefiDriverEntryPoint UefiLib @@ -35,3 +37,7 @@ [LibraryClasses] [Protocols] gEfiExtScsiPassThruProtocolGuid ## BY_START gEfiPciIoProtocolGuid ## TO_START + +[FixedPcd] + gUefiOvmfPkgTokenSpaceGuid.PcdLsiScsiMaxTargetLimit ## CONSUMES + gUefiOvmfPkgTokenSpaceGuid.PcdLsiScsiMaxLunLimit ## CONSUMES diff --git a/OvmfPkg/OvmfPkg.dec b/OvmfPkg/OvmfPkg.dec index 2b0f137cbcce..ca13a3cb11d3 100644 --- a/OvmfPkg/OvmfPkg.dec +++ b/OvmfPkg/OvmfPkg.dec @@ -174,6 +174,11 @@ [PcdsFixedAtBuild] ## Microseconds to stall between polling for MptScsi request result gUefiOvmfPkgTokenSpaceGuid.PcdMptScsiStallPerPollUsec|5|UINT32|0x3a =20 + ## Set the *inclusive* number of targets and LUNs that LsiScsi exposes f= or + # scan by ScsiBusDxe. + gUefiOvmfPkgTokenSpaceGuid.PcdLsiScsiMaxTargetLimit|7|UINT8|0x3b + gUefiOvmfPkgTokenSpaceGuid.PcdLsiScsiMaxLunLimit|0|UINT8|0x3c + gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageEventLogBase|0x0|UINT32|= 0x8 gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageEventLogSize|0x0|UINT32|= 0x9 gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFirmwareFdSize|0x0|UINT32|0xa --=20 2.25.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 (#62659): https://edk2.groups.io/g/devel/message/62659 Mute This Topic: https://groups.io/mt/75537209/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 Sat May 4 17:13:54 2024 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+62661+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+62661+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one) Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1594885604938892.367637785523; Thu, 16 Jul 2020 00:46:44 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id 89EkYY1788612xopDb1x82sM; Thu, 16 Jul 2020 00:46:44 -0700 X-Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [62.140.7.102]) by mx.groups.io with SMTP id smtpd.web11.10940.1594885603920017673 for ; Thu, 16 Jul 2020 00:46:44 -0700 X-Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05lp2173.outbound.protection.outlook.com [104.47.17.173]) (Using TLS) by relay.mimecast.com with ESMTP id de-mta-16-j0ZeRZikOWqrX-Sk1fUaFQ-1; Thu, 16 Jul 2020 09:46:41 +0200 X-MC-Unique: j0ZeRZikOWqrX-Sk1fUaFQ-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Vyyt36h5TrfCbHhKi7ZKcf9SBI1GJs+Gz/x2vO9gon3jFxZ6vKzTy6EG9ll+j1XAvJqNJ/fc+Z805vS7OQAFnKPDHi+gkMYNm7k5OAK0tXOeuAjLIw5pt4v/QnWsS5FzpWyFd2mgLoaaVetdfAx8deTOOekq+yx9Z46UriazrroRQnEWYrY4wH380tbmy5yvVYTey5b4Wg1IaOgbT7nhwlLRkvJIctAdf53P7of/pv+vuKyQLjoZ/1VWREpTeFU6+ftoFVrsDUmhhiPK7uT5Jy7cjkvpdHt3h83w5LLcIHbT4pGZV7V+rESz8G22mrEqCDKfmbdLsz5HE8/ndtNJ8g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=AXbnTCdtjYnPoFcBA5MIiVboFxcrZh4U8WHd2V64pOo=; b=bmtXG4fymrEdgyeJSescs8R/fm+GGPWlaeYelkiuIh7d1IveJ1nOUNwdykLVvrquNtgg5ag3Sixjtycybn8X+L3BWoreFmUmTF84mlkAEzdRCEf0OyAz53RdN/p9sf9NYtW1YTFQJGhuR20UIDBc6b2cbM28yh1F65eQRfd7Ly1gmpAggebv9wS1TaZ21fXA8QvL7sGU/hzqWgFGwNXepAHXaq5jFarzUCDqRAcy/Lk8Ov6yhHHrETZes5yPQkowSwTWFyxyn+nXjSFUjI1jyrnOQ+yAyG+yc55gsZrNGngVEaI5BJK3uTHraH+g5O6o5Z7jgCelEZ4n57guXKKEiw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none X-Received: from AM0PR0402MB3809.eurprd04.prod.outlook.com (2603:10a6:208:10::30) by AM0PR04MB4740.eurprd04.prod.outlook.com (2603:10a6:208:c8::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3195.17; Thu, 16 Jul 2020 07:46:40 +0000 X-Received: from AM0PR0402MB3809.eurprd04.prod.outlook.com ([fe80::a14c:d441:c8a9:77ba]) by AM0PR0402MB3809.eurprd04.prod.outlook.com ([fe80::a14c:d441:c8a9:77ba%6]) with mapi id 15.20.3174.026; Thu, 16 Jul 2020 07:46:40 +0000 From: "Gary Lin" To: devel@edk2.groups.io Cc: Jordan Justen , Laszlo Ersek , Ard Biesheuvel Subject: [edk2-devel] [PATCH v2 07/12] OvmfPkg/LsiScsiDxe: Open PciIo protocol and initialize the device Date: Thu, 16 Jul 2020 15:46:02 +0800 Message-Id: <20200716074607.18048-8-glin@suse.com> In-Reply-To: <20200716074607.18048-1-glin@suse.com> References: <20200716074607.18048-1-glin@suse.com> X-ClientProxiedBy: AM3PR07CA0118.eurprd07.prod.outlook.com (2603:10a6:207:7::28) To AM0PR0402MB3809.eurprd04.prod.outlook.com (2603:10a6:208:10::30) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-Received: from GaryWorkstation.suse.cz (60.251.47.115) by AM3PR07CA0118.eurprd07.prod.outlook.com (2603:10a6:207:7::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3195.17 via Frontend Transport; Thu, 16 Jul 2020 07:46:38 +0000 X-Originating-IP: [60.251.47.115] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b702cfd2-574d-4895-f13d-08d8295c5ffe X-MS-TrafficTypeDiagnostic: AM0PR04MB4740: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:6430; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info: czJmqaig16kHWCPTR/vsItmL05BxgvmPXwuCCsLAWhJ7SH+5aog2gsivPj5wCURzetKOhuvwrLSruBQUhLGaM7usLYEvXPV+umCYTIMA965gyPlxvGZrH6vzoxf2WxuCQt+o7vORcQGAZYV5IKRxqhu4YZ9DSzN55rYDRWQcLjhrpI+wFB8aXk/eerFN3L4boLDfsJtHLaTzbcZjo768gkQnF+ivuUfxl16+zqvF9GOHp1DeaIaQfO5Jd2bR9Q9pspIyQAyzIch20ItCVu4APCGbPdqclgbzXgDFdLVCoi8DGN0BdRKwm435MkWTYuCVP6yRBd6wlyRYDxARsUDExQ== X-MS-Exchange-AntiSpam-MessageData: VeXM1hPbG3xmdCnDnPEFc0vIboyf9UF6GM9Ynx4n1lNfh1NSlMnHmHeMI3dmGzYZAePeOZcFxS+kXCHXtrQ1F2+yV0fpC/ZW1K3I9RsX2RK1XVJ4cAzHAUUGIZccRTdutSsfHS6T472gYr9VPSFuBrF26+u2AXpweKqM7V15FpvE3EHJmbXEvjtw4mfa3lZvJ91FVS0oNvxvg8y6D6WLP5Kn/bxGwdp3+Neq92zXnifyk9BuehiIfNheOnh0hZ2pyKFhTL3skXyreP2dXCAYKiMK2l8KuSWJ/KFL5xbg1f0n16Nsu50VP6YnLbwcBVJ46ujOBqKxHBdV+jCaU4HatzbyLmdUn9xNFyr5msTpwbP/FsXbbIA7xy8BqvpTvb+cvX2/HoDbz8MBgIIAuOSgsDC54GRPDQ2rfvBG9IdfeNK0Q8zbMMwJF22Us+UR5ERTS2XoqJZMoaXZOM/2lY/kDOij9tRHicuhkKpt9uDVtbY= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: b702cfd2-574d-4895-f13d-08d8295c5ffe X-MS-Exchange-CrossTenant-AuthSource: AM0PR0402MB3809.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jul 2020 07:46:40.1646 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: w9Td8tZ+9bYz2VoViuVqctdw9v487144greWzqthuGhv8GntpBlFybj/xwQgkS6V X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB4740 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,glin@suse.com X-Gm-Message-State: 3ZclDjFQA4cWCXKpXfcwuj9Xx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1594885604; bh=Z6Lt6yrcEGXm3cAd87B4iDqnX94HF1MHQKqkFsFsDwk=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=JOOeKmlgFDqYnSQAZeaX3ht+J6PJiK4iQrGryaYwDlKK/8O1Z1YJ+qfgi36/p7O1TFO y7mmwDlfWfjsyNlR/gYm8JSzN2Bhf1C4llce+zl7xj/4WTYgE8Zqij4bymR37rV6f/ljd 9NBy/crkjys8UnuT7VQRpQnc89djY+YPrk8= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" Open PciIo protocol and use it to initialize the device. The initialization of LSI 53C895A is simple: just set the SRST bit in Interrupt Status Zero register to reset the device. v2: - Use the BITx macros for the bit constants - Add the closing of PciIo protocol in LsiScsiControllerStop() Cc: Jordan Justen Cc: Laszlo Ersek Cc: Ard Biesheuvel Signed-off-by: Gary Lin Reviewed-by: Laszlo Ersek --- OvmfPkg/Include/IndustryStandard/LsiScsi.h | 21 ++++ OvmfPkg/LsiScsiDxe/LsiScsi.c | 136 ++++++++++++++++++++- OvmfPkg/LsiScsiDxe/LsiScsi.h | 3 + 3 files changed, 159 insertions(+), 1 deletion(-) diff --git a/OvmfPkg/Include/IndustryStandard/LsiScsi.h b/OvmfPkg/Include/I= ndustryStandard/LsiScsi.h index c09e864a1f39..185e553c8eb4 100644 --- a/OvmfPkg/Include/IndustryStandard/LsiScsi.h +++ b/OvmfPkg/Include/IndustryStandard/LsiScsi.h @@ -17,4 +17,25 @@ #define LSI_LOGIC_PCI_VENDOR_ID 0x1000 #define LSI_53C895A_PCI_DEVICE_ID 0x0012 =20 +// +// LSI 53C895A Registers +// +#define LSI_REG_DSTAT 0x0C +#define LSI_REG_ISTAT0 0x14 +#define LSI_REG_DSP 0x2C +#define LSI_REG_SIST0 0x42 +#define LSI_REG_SIST1 0x43 + +// +// The status bits for Interrupt Status Zero (ISTAT0) +// +#define LSI_ISTAT0_DIP BIT0 +#define LSI_ISTAT0_SIP BIT1 +#define LSI_ISTAT0_INTF BIT2 +#define LSI_ISTAT0_CON BIT3 +#define LSI_ISTAT0_SEM BIT4 +#define LSI_ISTAT0_SIGP BIT5 +#define LSI_ISTAT0_SRST BIT6 +#define LSI_ISTAT0_ABRT BIT7 + #endif // _LSI_SCSI_H_ diff --git a/OvmfPkg/LsiScsiDxe/LsiScsi.c b/OvmfPkg/LsiScsiDxe/LsiScsi.c index 989bda88d209..b21387db6e5a 100644 --- a/OvmfPkg/LsiScsiDxe/LsiScsi.c +++ b/OvmfPkg/LsiScsiDxe/LsiScsi.c @@ -25,6 +25,33 @@ =20 #include "LsiScsi.h" =20 +STATIC +EFI_STATUS +Out8 ( + IN LSI_SCSI_DEV *Dev, + IN UINT32 Addr, + IN UINT8 Data + ) +{ + return Dev->PciIo->Io.Write ( + Dev->PciIo, + EfiPciIoWidthUint8, + PCI_BAR_IDX0, + Addr, + 1, + &Data + ); +} + +STATIC +EFI_STATUS +LsiScsiReset ( + IN LSI_SCSI_DEV *Dev + ) +{ + return Out8 (Dev, LSI_REG_ISTAT0, LSI_ISTAT0_SRST); +} + // // The next seven functions implement EFI_EXT_SCSI_PASS_THRU_PROTOCOL // for the LSI 53C895A SCSI Controller. Refer to UEFI Spec 2.3.1 + Errata = C, @@ -243,6 +270,21 @@ LsiScsiGetNextTarget ( return EFI_NOT_FOUND; } =20 +STATIC +VOID +EFIAPI +LsiScsiExitBoot ( + IN EFI_EVENT Event, + IN VOID *Context + ) +{ + LSI_SCSI_DEV *Dev; + + Dev =3D Context; + DEBUG ((DEBUG_VERBOSE, "%a: Context=3D0x%p\n", __FUNCTION__, Context)); + LsiScsiReset (Dev); +} + // // Probe, start and stop functions of this driver, called by the DXE core = for // specific devices. @@ -333,6 +375,58 @@ LsiScsiControllerStart ( Dev->MaxTarget =3D PcdGet8 (PcdLsiScsiMaxTargetLimit); Dev->MaxLun =3D PcdGet8 (PcdLsiScsiMaxLunLimit); =20 + Status =3D gBS->OpenProtocol ( + ControllerHandle, + &gEfiPciIoProtocolGuid, + (VOID **)&Dev->PciIo, + This->DriverBindingHandle, + ControllerHandle, + EFI_OPEN_PROTOCOL_BY_DRIVER + ); + if (EFI_ERROR (Status)) { + goto FreePool; + } + + Status =3D Dev->PciIo->Attributes ( + Dev->PciIo, + EfiPciIoAttributeOperationGet, + 0, + &Dev->OrigPciAttrs + ); + if (EFI_ERROR (Status)) { + goto CloseProtocol; + } + + // + // Enable I/O Space & Bus-Mastering + // + Status =3D Dev->PciIo->Attributes ( + Dev->PciIo, + EfiPciIoAttributeOperationEnable, + (EFI_PCI_IO_ATTRIBUTE_IO | + EFI_PCI_IO_ATTRIBUTE_BUS_MASTER), + NULL + ); + if (EFI_ERROR (Status)) { + goto CloseProtocol; + } + + Status =3D LsiScsiReset (Dev); + if (EFI_ERROR (Status)) { + goto RestoreAttributes; + } + + Status =3D gBS->CreateEvent ( + EVT_SIGNAL_EXIT_BOOT_SERVICES, + TPL_CALLBACK, + &LsiScsiExitBoot, + Dev, + &Dev->ExitBoot + ); + if (EFI_ERROR (Status)) { + goto UninitDev; + } + // // Host adapter channel, doesn't exist // @@ -357,11 +451,33 @@ LsiScsiControllerStart ( &Dev->PassThru ); if (EFI_ERROR (Status)) { - goto FreePool; + goto CloseExitBoot; } =20 return EFI_SUCCESS; =20 +CloseExitBoot: + gBS->CloseEvent (Dev->ExitBoot); + +UninitDev: + LsiScsiReset (Dev); + +RestoreAttributes: + Dev->PciIo->Attributes ( + Dev->PciIo, + EfiPciIoAttributeOperationSet, + Dev->OrigPciAttrs, + NULL + ); + +CloseProtocol: + gBS->CloseProtocol ( + ControllerHandle, + &gEfiPciIoProtocolGuid, + This->DriverBindingHandle, + ControllerHandle + ); + FreePool: FreePool (Dev); =20 @@ -404,6 +520,24 @@ LsiScsiControllerStop ( return Status; } =20 + gBS->CloseEvent (Dev->ExitBoot); + + LsiScsiReset (Dev); + + Dev->PciIo->Attributes ( + Dev->PciIo, + EfiPciIoAttributeOperationSet, + Dev->OrigPciAttrs, + NULL + ); + + gBS->CloseProtocol ( + ControllerHandle, + &gEfiPciIoProtocolGuid, + This->DriverBindingHandle, + ControllerHandle + ); + FreePool (Dev); =20 return Status; diff --git a/OvmfPkg/LsiScsiDxe/LsiScsi.h b/OvmfPkg/LsiScsiDxe/LsiScsi.h index 6c6ed25f1c33..8c2acff6e86f 100644 --- a/OvmfPkg/LsiScsiDxe/LsiScsi.h +++ b/OvmfPkg/LsiScsiDxe/LsiScsi.h @@ -14,6 +14,9 @@ =20 typedef struct { UINT32 Signature; + UINT64 OrigPciAttrs; + EFI_EVENT ExitBoot; + EFI_PCI_IO_PROTOCOL *PciIo; UINT8 MaxTarget; UINT8 MaxLun; EFI_EXT_SCSI_PASS_THRU_MODE PassThruMode; --=20 2.25.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 (#62661): https://edk2.groups.io/g/devel/message/62661 Mute This Topic: https://groups.io/mt/75537211/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 Sat May 4 17:13:54 2024 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+62662+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+62662+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one) Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1594885606756538.2650705804648; Thu, 16 Jul 2020 00:46:46 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id ItVXYY1788612x88rdGAvk2j; Thu, 16 Jul 2020 00:46:46 -0700 X-Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [62.140.7.102]) by mx.groups.io with SMTP id smtpd.web11.10942.1594885605708831113 for ; Thu, 16 Jul 2020 00:46:46 -0700 X-Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05lp2174.outbound.protection.outlook.com [104.47.17.174]) (Using TLS) by relay.mimecast.com with ESMTP id de-mta-26-pSgje2H2MrGpW1OuI73rnQ-1; Thu, 16 Jul 2020 09:46:43 +0200 X-MC-Unique: pSgje2H2MrGpW1OuI73rnQ-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kQHkVOnbDVAljHbQM93r0uBuFPzdCvZUZpoYTopyEKe50lyWQoE8xQbNzPNTWzSnl5eqq+AkuZ97Z8jpTySEJXMrUwTCl/QC6PM+XulhNfiyAygEGhGjvrBb+oUDUbTk+txtkFE2B9z9ltn0suCvs0TRb2h9+OgSyEp71qteRB/lJJG/I4W+gXmBd+5WI3dWT05qMqCGN9n2d9HGQ8ENPpYs7tFuXE2GRGri3wjgFg1QzOen1HqIWkiCedTIhFXQAulsh48C8yGRArfkQ9KN028AH/IsqHaIdNBewmbP7qK+SqErAIR0xJhl4ZJFtID2bs5B4kY9w6sY1RKqI2IFMg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=bwT6M3CiwcOGQGLhY2rUJ/yCygWTmgnYWWt6wXD58y0=; b=jTH9JmpG2ZupQa8sIYA+m4pA1OOJKwJijkBg6uX7+uzYTrC6CkUUmQbNJvtdCUJjCwOQI7qBTZWM9T51KwuxkNZQhHZBw/FXYgiGsJYd8FWfYSuAvrb7OgxZPgEMyAmcJGEpQdiHaSHyzwxd4MWG3XWZXS5kMuqoF4u3+NiPUG0l7OevvQX3qpaWrKDHYutFeMf3r/ZYDYfMGHyLIzOHlKXi8kZGOfOTmiBOkNsAvt2XsmmJQP1J74U6SWScriWetFsq9C9PcALD22Vith1y1rQ8azTevtFNGTmUMbbdUWRPAmPdnEUVn7O7Yg2ka5IUitMFo5wEPOGvKUaYs1z2sA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none X-Received: from AM0PR0402MB3809.eurprd04.prod.outlook.com (2603:10a6:208:10::30) by AM0PR04MB4740.eurprd04.prod.outlook.com (2603:10a6:208:c8::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3195.17; Thu, 16 Jul 2020 07:46:42 +0000 X-Received: from AM0PR0402MB3809.eurprd04.prod.outlook.com ([fe80::a14c:d441:c8a9:77ba]) by AM0PR0402MB3809.eurprd04.prod.outlook.com ([fe80::a14c:d441:c8a9:77ba%6]) with mapi id 15.20.3174.026; Thu, 16 Jul 2020 07:46:42 +0000 From: "Gary Lin" To: devel@edk2.groups.io Cc: Jordan Justen , Laszlo Ersek , Ard Biesheuvel Subject: [edk2-devel] [PATCH v2 08/12] OvmfPkg/LsiScsiDxe: Map DMA buffer Date: Thu, 16 Jul 2020 15:46:03 +0800 Message-Id: <20200716074607.18048-9-glin@suse.com> In-Reply-To: <20200716074607.18048-1-glin@suse.com> References: <20200716074607.18048-1-glin@suse.com> X-ClientProxiedBy: AM3PR07CA0118.eurprd07.prod.outlook.com (2603:10a6:207:7::28) To AM0PR0402MB3809.eurprd04.prod.outlook.com (2603:10a6:208:10::30) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-Received: from GaryWorkstation.suse.cz (60.251.47.115) by AM3PR07CA0118.eurprd07.prod.outlook.com (2603:10a6:207:7::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3195.17 via Frontend Transport; Thu, 16 Jul 2020 07:46:40 +0000 X-Originating-IP: [60.251.47.115] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e94fb639-f6c3-4c1f-df2d-08d8295c6149 X-MS-TrafficTypeDiagnostic: AM0PR04MB4740: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:5516; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info: FujPcG8K3aE9OI/t1YbtE/O9yz9NtSMD4LcU+86hg6yJZBwVvIqn47X8tIiiku8dBtPbDtmONUSfoxpiNGNOoEBts2iNjQ4+FUCoeukhA2AHkeOwQ5i2Yuxg++C18vD+5P2nekl+fBXImC4z4hMyP4B+2sTbRGNA8gqomTl8B4k1vbi3QnzQlpqyV1H3glqz3nQm6HORRwsUcmkrMjgA6+C0AU25XB463HEtC1SoAnCbvcZa9Ur37MAkB/+DlkDfKpmz3oYLu+xYwd2rFRNSSISq3QRF+hb8KwEz9AaGBroBDT8eM+jEIk09zAShd0VAiagHSrdwWbYMnmInEcuhNg== X-MS-Exchange-AntiSpam-MessageData: PhsuasUGVgIUyNLA6HzCkyb1Fe6kSwuKt/TIt0R3sCioQ7gTHuiIh6msx1zFyO5ZZKHQ46DIBRGaJgfsaTdqpNMuGlGuDoLTe9K3JwJgE8gNDR+xe/dtYA/8wEVmLt3Jb92h2nfGQf8R/jjKR5j0OqgVg3GFciI7OVWo6Adp+zyypulf6452i6AkABHqHK+8WLe1sna4/zpLZsgYBs3j4xleg1Yhkc8DVr6KEPS94DKJvR5P371I+fj/5mla47AmH/YmfWVlR8FF0aBoZcZ5IGyHL05VeQV36qjTuErQWLMrfO6FPE+LCvB+0mHmDroUCUJSIy3VUmPEo5wlOAeBLx8vCZ1QzCFE7wo6DOVVXMV8EfrXBLQ7nkv2xUXHvfj6wWfwwGfNbdi3XgfaySUsceFj6+1eZur6PwugllZrcAiLiAHXPnhiNLzI+hUYSUGpOr5890NvZlWH/cIvVOKoJsT4FGRaTWHk88TFOoDzze4= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: e94fb639-f6c3-4c1f-df2d-08d8295c6149 X-MS-Exchange-CrossTenant-AuthSource: AM0PR0402MB3809.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jul 2020 07:46:42.2344 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: yvewTsUxtWFqddKs2vv8csjpAHYbScoLpic0WYWcBgtJC6Oulc0avo7A1o/qJSqt X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB4740 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,glin@suse.com X-Gm-Message-State: ouF787HXBayEIZku3ngudSfUx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1594885606; bh=tx1lfA1vvqGSNbe/1L5avta4pYjgmis4R8c38eQHiRI=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=MMUnUn41A9FMXi5IYVuIVFNI8DK0Wr/q9Q145VmznyM9rxFd8ySaWmifRm14T1OJp4p 0IHlUiilslxxawkvyYtX1RBLMDdy0LUSL6pQJMqGeQWi+eW4jUAkyeekx3TCHE9fcVhRK 8Y7yoKEYn4NEpMbDQ5AaGNmlqyLLNX8CJp4= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" Map DMA buffer and perpare for the implementation of LsiScsiPassThru(). v2: - Replace 0x10000 with SIZE_64KB macro for the DMA buffer data array - Remove DUAL_ADDRESS_CYCLE from PciIo since we don't really need 64-bit DMA address Cc: Jordan Justen Cc: Laszlo Ersek Cc: Ard Biesheuvel Signed-off-by: Gary Lin Reviewed-by: Laszlo Ersek --- OvmfPkg/LsiScsiDxe/LsiScsi.c | 62 +++++++++++++++++++++++++++++++++++- OvmfPkg/LsiScsiDxe/LsiScsi.h | 14 ++++++++ 2 files changed, 75 insertions(+), 1 deletion(-) diff --git a/OvmfPkg/LsiScsiDxe/LsiScsi.c b/OvmfPkg/LsiScsiDxe/LsiScsi.c index b21387db6e5a..4e84afa40085 100644 --- a/OvmfPkg/LsiScsiDxe/LsiScsi.c +++ b/OvmfPkg/LsiScsiDxe/LsiScsi.c @@ -356,6 +356,8 @@ LsiScsiControllerStart ( { EFI_STATUS Status; LSI_SCSI_DEV *Dev; + UINTN Pages; + UINTN BytesMapped; =20 Dev =3D AllocateZeroPool (sizeof (*Dev)); if (Dev =3D=3D NULL) { @@ -411,11 +413,45 @@ LsiScsiControllerStart ( goto CloseProtocol; } =20 - Status =3D LsiScsiReset (Dev); + // + // Create buffers for data transfer + // + Pages =3D EFI_SIZE_TO_PAGES (sizeof (*Dev->Dma)); + Status =3D Dev->PciIo->AllocateBuffer ( + Dev->PciIo, + AllocateAnyPages, + EfiBootServicesData, + Pages, + (VOID **)&Dev->Dma, + EFI_PCI_ATTRIBUTE_MEMORY_CACHED + ); if (EFI_ERROR (Status)) { goto RestoreAttributes; } =20 + BytesMapped =3D EFI_PAGES_TO_SIZE (Pages); + Status =3D Dev->PciIo->Map ( + Dev->PciIo, + EfiPciIoOperationBusMasterCommonBuffer, + Dev->Dma, + &BytesMapped, + &Dev->DmaPhysical, + &Dev->DmaMapping + ); + if (EFI_ERROR (Status)) { + goto FreeBuffer; + } + + if (BytesMapped !=3D EFI_PAGES_TO_SIZE (Pages)) { + Status =3D EFI_OUT_OF_RESOURCES; + goto Unmap; + } + + Status =3D LsiScsiReset (Dev); + if (EFI_ERROR (Status)) { + goto Unmap; + } + Status =3D gBS->CreateEvent ( EVT_SIGNAL_EXIT_BOOT_SERVICES, TPL_CALLBACK, @@ -462,6 +498,19 @@ CloseExitBoot: UninitDev: LsiScsiReset (Dev); =20 +Unmap: + Dev->PciIo->Unmap ( + Dev->PciIo, + Dev->DmaMapping + ); + +FreeBuffer: + Dev->PciIo->FreeBuffer ( + Dev->PciIo, + Pages, + Dev->Dma + ); + RestoreAttributes: Dev->PciIo->Attributes ( Dev->PciIo, @@ -524,6 +573,17 @@ LsiScsiControllerStop ( =20 LsiScsiReset (Dev); =20 + Dev->PciIo->Unmap ( + Dev->PciIo, + Dev->DmaMapping + ); + + Dev->PciIo->FreeBuffer ( + Dev->PciIo, + EFI_SIZE_TO_PAGES (sizeof (*Dev->Dma)), + Dev->Dma + ); + Dev->PciIo->Attributes ( Dev->PciIo, EfiPciIoAttributeOperationSet, diff --git a/OvmfPkg/LsiScsiDxe/LsiScsi.h b/OvmfPkg/LsiScsiDxe/LsiScsi.h index 8c2acff6e86f..9f9e5c7fed00 100644 --- a/OvmfPkg/LsiScsiDxe/LsiScsi.h +++ b/OvmfPkg/LsiScsiDxe/LsiScsi.h @@ -12,6 +12,17 @@ #ifndef _LSI_SCSI_DXE_H_ #define _LSI_SCSI_DXE_H_ =20 +typedef struct { + // + // Allocate 64KB for read/write buffer. It seems sufficient for the comm= on + // boot scenarios. + // + // NOTE: The number of bytes for data transmission is bounded by DMA Byte + // Count (DBC), a 24-bit register, so the maximum is 0xFFFFFF (16M= B-1). + // + UINT8 Data[SIZE_64KB]; +} LSI_SCSI_DMA_BUFFER; + typedef struct { UINT32 Signature; UINT64 OrigPciAttrs; @@ -19,6 +30,9 @@ typedef struct { EFI_PCI_IO_PROTOCOL *PciIo; UINT8 MaxTarget; UINT8 MaxLun; + LSI_SCSI_DMA_BUFFER *Dma; + EFI_PHYSICAL_ADDRESS DmaPhysical; + VOID *DmaMapping; EFI_EXT_SCSI_PASS_THRU_MODE PassThruMode; EFI_EXT_SCSI_PASS_THRU_PROTOCOL PassThru; } LSI_SCSI_DEV; --=20 2.25.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 (#62662): https://edk2.groups.io/g/devel/message/62662 Mute This Topic: https://groups.io/mt/75537212/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 Sat May 4 17:13:54 2024 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+62663+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+62663+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one) Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1594885614081916.7027881399559; Thu, 16 Jul 2020 00:46:54 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id QdUVYY1788612xwbHLZC0YVV; Thu, 16 Jul 2020 00:46:53 -0700 X-Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [62.140.7.102]) by mx.groups.io with SMTP id smtpd.web11.10946.1594885613071820969 for ; Thu, 16 Jul 2020 00:46:53 -0700 X-Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05lp2177.outbound.protection.outlook.com [104.47.17.177]) (Using TLS) by relay.mimecast.com with ESMTP id de-mta-26-JfV3JUdfP5eu6bWsyqNWxQ-1; Thu, 16 Jul 2020 09:46:50 +0200 X-MC-Unique: JfV3JUdfP5eu6bWsyqNWxQ-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=C6X453UZn3essIwX/+qOyg6z0ezl6z7bfMHWGpfYkWJhX7rKI8Fuplep1UCIhZWuOd7OouNZ9LAxE8J0E9GUiL6uk5DiFMHSsmQU1xaBEbFlvqRie3bGUAuRBkGWYZNCFrh2Pqu8ppO0ZbJwwNKd4vmWEikAYH4TswTC7jKHHcVTQml0HIdsSGunc/5qqBYJiBx2R4KaxJxJCb7ReD9XJjLPxL/3U6LB5uWkl4RjA05N3DRpU/vWqqybMXpBw0HgJ4jnIrtxZkrdFFrpYivmVogt5RVLQ0dX0lFYTJzTQ+M7dhCdnIUOrf0kngIoHV/+L5CjAowJEC+1uKYFqX5Wng== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=GTqVTlPBL7s9yX1288TZLA/gDdeay+qcOjs7f18qvro=; b=HXcQuPrR+VjAyeOEFHMhNKhTwTnyuKgPLI+SqhA/DeO1BDweBxMjL/daqcc4wLMuWj/jUHI2EbMcf9887zZrBvhTY8NKXoo52xY84A4VWwimpJpiFgtyqRF3HiNRW6cesKctUZWAnjFILbfX+eGIG1NQG/XNYTfCLDLv+FhXhsiISo/cunUxCm/4XBO4FK4JIsuasn+MA11lSZBJlt5/nb6hiIcT6ioyg+Oz0XsZ7HNE4t/ceDuV+qqKejQl91q3zozyFPdN1rOfaMcb6qZ5A0hcOsql5yAqIxY5hr4+/46JOCbEJQ6fIIGurfqhUscy8PsT5pGcgLtr0o88VOkjQw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none X-Received: from AM0PR0402MB3809.eurprd04.prod.outlook.com (2603:10a6:208:10::30) by AM0PR04MB4740.eurprd04.prod.outlook.com (2603:10a6:208:c8::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3195.17; Thu, 16 Jul 2020 07:46:44 +0000 X-Received: from AM0PR0402MB3809.eurprd04.prod.outlook.com ([fe80::a14c:d441:c8a9:77ba]) by AM0PR0402MB3809.eurprd04.prod.outlook.com ([fe80::a14c:d441:c8a9:77ba%6]) with mapi id 15.20.3174.026; Thu, 16 Jul 2020 07:46:44 +0000 From: "Gary Lin" To: devel@edk2.groups.io Cc: Jordan Justen , Laszlo Ersek , Ard Biesheuvel Subject: [edk2-devel] [PATCH v2 09/12] OvmfPkg/LsiScsiDxe: Examine the incoming SCSI Request Packet Date: Thu, 16 Jul 2020 15:46:04 +0800 Message-Id: <20200716074607.18048-10-glin@suse.com> In-Reply-To: <20200716074607.18048-1-glin@suse.com> References: <20200716074607.18048-1-glin@suse.com> X-ClientProxiedBy: AM3PR07CA0118.eurprd07.prod.outlook.com (2603:10a6:207:7::28) To AM0PR0402MB3809.eurprd04.prod.outlook.com (2603:10a6:208:10::30) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-Received: from GaryWorkstation.suse.cz (60.251.47.115) by AM3PR07CA0118.eurprd07.prod.outlook.com (2603:10a6:207:7::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3195.17 via Frontend Transport; Thu, 16 Jul 2020 07:46:42 +0000 X-Originating-IP: [60.251.47.115] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 5f3c21fa-ad85-499a-44a6-08d8295c6271 X-MS-TrafficTypeDiagnostic: AM0PR04MB4740: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info: AsJeILjkjlA3U3C3tgnyW3v3j5p36OIHKmIxhRkjSbAnPENb2M2JsYb7flIfkcXDaUTdRYG/jBw0u118c5Lk0HomkpCOpNNEh50GBjis5v1LzsNLQ41eWt7Cnkf5jHNPwiBmLV/hWEY2tNI91s+4q9Ohiob0lcVdOmg6ax+6QGV6XFcwCj5a7gQ3x/L1qlR01D528V2nD1XJTIkvUX2nUc1GnBOpQcnRfv1Ol/LRPci28wkcQc8/q0MPesaS3Af0z+31+CWZa7e1jKLC0fDwgpeoZNT2pFOmNalrkY/hxNzoNwO0RoEn0Cs7OPo4/JONmYigjDE25thPVY+xO2OMeg== X-MS-Exchange-AntiSpam-MessageData: RPRatpDWMLhXZK3OjcliZxO2S0lymlOA5bMOM32/iH2H/3bW+hfu5SvPi6UYPODHH7wSD6AFef0udSICD6anANml5sRtbxTdQ1/p4JS6BhfIoaaDHJ46H5/efrMA2rqoEp3QZ/55bw85VNOOwD4ya8wGSArBP55ziNWVi9h2GHeEdRRE9HtKHt8JZvlTPxN4aYfs33RglR6Hx3NLmo6oOyUZXZ0LSCQb4n6yJyVa2SlJ6Ar4Yk4+ObE0ntmGLiPouBK4t/TsWsczX22SOh+1kuIn24eqAxRJiKNhLrRt4B8c8a6vCe/pjjcFwmE7RqagUWDlwwRrYS4Ll/+DZI+vqIcjayXGj73J20nv3vzQCQbNAYs8QhC0oxcWBxQyli8k/H5cEAVl9Kq8ybhIDTQysJVd1gCFQ07Jwt2arwRNQHaHjBaRiWxJRvC5rXfSNLHp+wFkl3X6hQFmUphUlBMK/f1znuec5K7rV6dwHqLPlUQ= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5f3c21fa-ad85-499a-44a6-08d8295c6271 X-MS-Exchange-CrossTenant-AuthSource: AM0PR0402MB3809.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jul 2020 07:46:44.4841 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: gjxue7DUrA9pb3l+9aCsQgoAKKi0Q+rQ68hIoSnmLaphpONAz9/wLjE6Gi2Qbji3 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB4740 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,glin@suse.com X-Gm-Message-State: frmynFoJFBRYwgyPGT2pOtXLx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1594885613; bh=RW2UuA7+RJ7LjKLOozCRg/EWuRK0P+OKXKvRo/P9uQc=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=r+H0ijYMCxQHOiyfHlfcUgzMuBa89D5yjHgH1uuU/5pFfEm5DCVs9aZAucrN2WJYF8T 4O/cR9qlWXFVV5nLsVZK9LIzFq6zndMso5UoWFfiv/TJ3DoHTakVSPsAylmj5251Yx+tv cc4iiItjIn9ygxVIWNztKNDEy6/P2RLTB30= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" This is the first part of LsiScsiPassThru(). Before processing the SCSI Request packet, we have to make sure whether the packet is valid or not. v2: Make LsiScsiPassThru() return EFI_UNSUPPORTED since this function is half-implemented Cc: Jordan Justen Cc: Laszlo Ersek Cc: Ard Biesheuvel Signed-off-by: Gary Lin Reviewed-by: Laszlo Ersek --- OvmfPkg/LsiScsiDxe/LsiScsi.c | 98 ++++++++++++++++++++++++++++++++++++ OvmfPkg/LsiScsiDxe/LsiScsi.h | 4 ++ 2 files changed, 102 insertions(+) diff --git a/OvmfPkg/LsiScsiDxe/LsiScsi.c b/OvmfPkg/LsiScsiDxe/LsiScsi.c index 4e84afa40085..b3a88cc7119b 100644 --- a/OvmfPkg/LsiScsiDxe/LsiScsi.c +++ b/OvmfPkg/LsiScsiDxe/LsiScsi.c @@ -52,6 +52,95 @@ LsiScsiReset ( return Out8 (Dev, LSI_REG_ISTAT0, LSI_ISTAT0_SRST); } =20 +STATIC +EFI_STATUS +ReportHostAdapterOverrunError ( + OUT EFI_EXT_SCSI_PASS_THRU_SCSI_REQUEST_PACKET *Packet + ) +{ + Packet->SenseDataLength =3D 0; + Packet->HostAdapterStatus =3D + EFI_EXT_SCSI_STATUS_HOST_ADAPTER_DATA_OVERRUN_UNDERRUN; + Packet->TargetStatus =3D EFI_EXT_SCSI_STATUS_TARGET_GOOD; + return EFI_BAD_BUFFER_SIZE; +} + +/** + + Check the request packet from the Extended SCSI Pass Thru Protocol. The + request packet is modified, to be forwarded outwards by LsiScsiPassThru(= ), + if invalid or unsupported parameters are detected. + + @param[in] Dev The LSI 53C895A SCSI device the packet targets. + + @param[in] Target The SCSI target controlled by the LSI 53C895A SC= SI + device. + + @param[in] Lun The Logical Unit Number under the SCSI target. + + @param[in out] Packet The Extended SCSI Pass Thru Protocol packet. + + + @retval EFI_SUCCESS The Extended SCSI Pass Thru Protocol packet was val= id. + + @return Otherwise, invalid or unsupported parameters were + detected. Status codes are meant for direct forward= ing + by the EFI_EXT_SCSI_PASS_THRU_PROTOCOL.PassThru() + implementation. + + **/ +STATIC +EFI_STATUS +LsiScsiCheckRequest ( + IN LSI_SCSI_DEV *Dev, + IN UINT8 Target, + IN UINT64 Lun, + IN OUT EFI_EXT_SCSI_PASS_THRU_SCSI_REQUEST_PACKET *Packet + ) +{ + if (Target > Dev->MaxTarget || Lun > Dev->MaxLun || + Packet->DataDirection > EFI_EXT_SCSI_DATA_DIRECTION_BIDIRECTIONAL || + // + // Trying to receive, but destination pointer is NULL, or contradict= ing + // transfer direction + // + (Packet->InTransferLength > 0 && + (Packet->InDataBuffer =3D=3D NULL || + Packet->DataDirection =3D=3D EFI_EXT_SCSI_DATA_DIRECTION_WRITE + ) + ) || + + // + // Trying to send, but source pointer is NULL, or contradicting tran= sfer + // direction + // + (Packet->OutTransferLength > 0 && + (Packet->OutDataBuffer =3D=3D NULL || + Packet->DataDirection =3D=3D EFI_EXT_SCSI_DATA_DIRECTION_READ + ) + ) + ) { + return EFI_INVALID_PARAMETER; + } + + if (Packet->DataDirection =3D=3D EFI_EXT_SCSI_DATA_DIRECTION_BIDIRECTION= AL || + (Packet->InTransferLength > 0 && Packet->OutTransferLength > 0) || + Packet->CdbLength > sizeof Dev->Dma->Cdb) { + return EFI_UNSUPPORTED; + } + + if (Packet->InTransferLength > sizeof Dev->Dma->Data) { + Packet->InTransferLength =3D sizeof Dev->Dma->Data; + return ReportHostAdapterOverrunError (Packet); + } + if (Packet->OutTransferLength > sizeof Dev->Dma->Data) { + Packet->OutTransferLength =3D sizeof Dev->Dma->Data; + return ReportHostAdapterOverrunError (Packet); + } + + return EFI_SUCCESS; +} + // // The next seven functions implement EFI_EXT_SCSI_PASS_THRU_PROTOCOL // for the LSI 53C895A SCSI Controller. Refer to UEFI Spec 2.3.1 + Errata = C, @@ -70,6 +159,15 @@ LsiScsiPassThru ( IN EFI_EVENT Event OPTIONAL ) { + EFI_STATUS Status; + LSI_SCSI_DEV *Dev; + + Dev =3D LSI_SCSI_FROM_PASS_THRU (This); + Status =3D LsiScsiCheckRequest (Dev, *Target, Lun, Packet); + if (EFI_ERROR (Status)) { + return Status; + } + return EFI_UNSUPPORTED; } =20 diff --git a/OvmfPkg/LsiScsiDxe/LsiScsi.h b/OvmfPkg/LsiScsiDxe/LsiScsi.h index 9f9e5c7fed00..05deeed379fe 100644 --- a/OvmfPkg/LsiScsiDxe/LsiScsi.h +++ b/OvmfPkg/LsiScsiDxe/LsiScsi.h @@ -13,6 +13,10 @@ #define _LSI_SCSI_DXE_H_ =20 typedef struct { + // + // The max size of CDB is 32. + // + UINT8 Cdb[32]; // // Allocate 64KB for read/write buffer. It seems sufficient for the comm= on // boot scenarios. --=20 2.25.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 (#62663): https://edk2.groups.io/g/devel/message/62663 Mute This Topic: https://groups.io/mt/75537214/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 Sat May 4 17:13:54 2024 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+62664+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+62664+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one) Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1594885616191811.4353605267429; Thu, 16 Jul 2020 00:46:56 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id z2hqYY1788612xeziCyKBQTF; Thu, 16 Jul 2020 00:46:55 -0700 X-Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [62.140.7.102]) by mx.groups.io with SMTP id smtpd.web11.10947.1594885614924672466 for ; Thu, 16 Jul 2020 00:46:55 -0700 X-Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05lp2172.outbound.protection.outlook.com [104.47.17.172]) (Using TLS) by relay.mimecast.com with ESMTP id de-mta-4-yBmLBLrNNg6EKq3UTECeoQ-1; Thu, 16 Jul 2020 09:46:51 +0200 X-MC-Unique: yBmLBLrNNg6EKq3UTECeoQ-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EpMSEBYvoUwFuuA/CQ+8Pbzd9uDTGIJIEVBMXo+0D89KUzDS3cijkoIHA8APiRlkqq0YVfULcj6YvrJtcoXJeTi0GmkuUKFcbJTQFcdH3UZ9HfzvO+29o+d5jrUijSpzDqYA73TzdfGDXVEqJlALXgxQdNbUcEiF91wU38s9vETBcIpLmMHKVN/KJ6WsHjz/EUzKykNKDwdMZ/7Fj8rN7PvDAHkroM43FSl/oQuXyud7DwbouYA8MFZZasvYblb8IP2sKLh/O8ZfaWmEUwbEartiFIkBPaNS6lTsw7XKdFFGTDviOtppjIjUCproR2bwWvkiiNFN30HcnychrlMBag== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=RL6DwM1EBLMejf1O+F/HdcvvEXpi5z64ZoCi/26UAu0=; b=Q23djh+q9AGzvRy2sZ5yZdKth4Q+jjlRuhrZuR2rGQl/9BxMFibnW+p7XA9VEfFMLna7n11zd67cdL8xPp0ikkEiSPICKDOc6AwX9ytaO1nKvovSq2lkOzJ3VUfbStkh3Zgl+133SWBhRrHQNyh6dm4Q2GkvBI09RzD7AyKTq+tGi5HpkVn7qef+5o/+6ViDsTqyS2UuyWuAtKtrtY0YiwfVOBsJuwychU8W27r7HY1P2rETQJYS/b2Ge9C3WS/jxPQ56O7cPCD8mrMJDsa3iAPG+2KUy5H/xUZmGE/PiFuRrLQtZIiup7Cv85yvOluiiUO3oeQxy3s3t5xkhaXIug== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none X-Received: from AM0PR0402MB3809.eurprd04.prod.outlook.com (2603:10a6:208:10::30) by AM0PR04MB4740.eurprd04.prod.outlook.com (2603:10a6:208:c8::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3195.17; Thu, 16 Jul 2020 07:46:46 +0000 X-Received: from AM0PR0402MB3809.eurprd04.prod.outlook.com ([fe80::a14c:d441:c8a9:77ba]) by AM0PR0402MB3809.eurprd04.prod.outlook.com ([fe80::a14c:d441:c8a9:77ba%6]) with mapi id 15.20.3174.026; Thu, 16 Jul 2020 07:46:46 +0000 From: "Gary Lin" To: devel@edk2.groups.io Cc: Jordan Justen , Laszlo Ersek , Ard Biesheuvel Subject: [edk2-devel] [PATCH v2 10/12] OvmfPkg/LsiScsiDxe: Process the SCSI Request Packet Date: Thu, 16 Jul 2020 15:46:05 +0800 Message-Id: <20200716074607.18048-11-glin@suse.com> In-Reply-To: <20200716074607.18048-1-glin@suse.com> References: <20200716074607.18048-1-glin@suse.com> X-ClientProxiedBy: AM3PR07CA0118.eurprd07.prod.outlook.com (2603:10a6:207:7::28) To AM0PR0402MB3809.eurprd04.prod.outlook.com (2603:10a6:208:10::30) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-Received: from GaryWorkstation.suse.cz (60.251.47.115) by AM3PR07CA0118.eurprd07.prod.outlook.com (2603:10a6:207:7::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3195.17 via Frontend Transport; Thu, 16 Jul 2020 07:46:44 +0000 X-Originating-IP: [60.251.47.115] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 5965aa87-50b2-4f83-b862-08d8295c63c6 X-MS-TrafficTypeDiagnostic: AM0PR04MB4740: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:6790; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info: Q3KmxmmjqY3TThIcBv46zeMxD498T/PfqixMYORogK1O+mz6otuYtwC1OSfDep3/HgzIFQOZCSu1Et9RQxzprkHrZihifGIdUndPNzB+xcfiyZ7PZ6BerU8IhOOFUz2B1lRI6j3sZ/P2sy4O6XEXrdjQgZuvKcqmU7J/5fS9cgfSjuhe5o5fuvuo+YGjvW8X8w0ei4sL7eEzUW3tYooTfDHT9/Th8MVHMd366cSDjMgjgv7GvvzRAiOeRke/Ach/K5HEVB1lFQQybGEKiP3jE+6uqBtnstJQ+02xA3TY7hSUNnxIujl6+kRZyhhuclnFw8s3IDagsJf0NCEWV6P9rw== X-MS-Exchange-AntiSpam-MessageData: I/5Lle+fuR4LFoFnnRqfCDv8m2GYtk1n0NZXZHW6WGpgAnlCO7NRdL362sgXU2cyWqXk8TVYoqE58bzJe21hdeJi7XIEffqH7coq/WAWf4ea/uhxgl852vr8T19LJNe1vTTKYuTPgDOfJH/ul4VNuqHeC46N5pnu9HSi0+dLBStWynE/s9VZLRmrtcYzVYEGu1ZV0818AcOYmM0SjHM1GGty7JCqmjgJcqrknoFjR/p/4AI54VZqIR4eHNRXRSDlA2zXZcT6MV5ZmEsDAzvH3813Y2PMPMclnui4toeXtlpOlH2XBiwu2D/FZ593w9olwqo0N+h/R617qjKp7Ss/Ez4sqI5fxI1Y9to4ReED6wPKCCtqJz8ds4r09af/iFCIVtdOb0o6XOflGaWWG/8txLxchsm0Hqi+rwaEubqr2VPCjFQ9gu6YAaD1hUXHWEFjLCp7XHIiFMRhVRYagzzWH+KKYgyjzz1NYt+lpKQkEAU= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5965aa87-50b2-4f83-b862-08d8295c63c6 X-MS-Exchange-CrossTenant-AuthSource: AM0PR0402MB3809.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jul 2020 07:46:46.5490 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: lJbipWA5RgaRm6EqioazsNPtck+TJs8k83Y/46t/UVbJhi+rP94ZLko1T2ThpAHL X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB4740 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,glin@suse.com X-Gm-Message-State: pbnTAE40eJ2d2kO7wQozA7HIx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1594885615; bh=yKYYulLSSWl6XMRUy8HD1sm25WdCL8OI+7umYnAosQU=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=NvFVq6xr3OsrKGS/L+c3rEwHFt4lT0s+4HF8hBRBzkwouE/XAjg94xImKubIsKYmi3F MzgLbrpd8KV2yEMeUooNpC1MtDep/ue/4fIftUFFyMPuYprbUtqfMhW0sVNDdxjgoK/xM x1OTJp5bArkj3kn6kn++qCqWn/4VqhaSzpA= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" This is the second part of LsiScsiPassThru(). LsiScsiProcessRequest() is added to translate the SCSI Request Packet into the LSI 53C895A commands. This function utilizes the so-called Script buffer to transmit a series of commands to the chip and then polls the DMA Status (DSTAT) register until the Scripts Interrupt Instruction Received (SIR) bit sets. Once the script is done, the SCSI Request Packet will be modified to reflect the result of the script. v2: - Use the BITx macros for the most of LSI_* constants - Fix a typo: contorller =3D> controller - Add SeaBIOS lsi-scsi driver as one of the references of the script - Cast the result of sizeof to UINT32 for the instructions of the script - Drop the backslashes - Replace LSI_SCSI_DMA_ADDR_LOW with LSI_SCSI_DMA_ADDR since we already removed DUAL_ADDRESS_CYCLE - Add more comments for the script - Fix the check of the script size at the end of the script - Always set SenseDataLength to 0 to avoid the caller to access SenseData - Improve the error handling in LsiScsiProcessRequest() Cc: Jordan Justen Cc: Laszlo Ersek Cc: Ard Biesheuvel Signed-off-by: Gary Lin --- OvmfPkg/Include/IndustryStandard/LsiScsi.h | 63 ++++ OvmfPkg/LsiScsiDxe/LsiScsi.c | 336 ++++++++++++++++++++- OvmfPkg/LsiScsiDxe/LsiScsi.h | 21 ++ OvmfPkg/LsiScsiDxe/LsiScsiDxe.inf | 3 + OvmfPkg/OvmfPkg.dec | 3 + 5 files changed, 425 insertions(+), 1 deletion(-) diff --git a/OvmfPkg/Include/IndustryStandard/LsiScsi.h b/OvmfPkg/Include/I= ndustryStandard/LsiScsi.h index 185e553c8eb4..9964bd40385c 100644 --- a/OvmfPkg/Include/IndustryStandard/LsiScsi.h +++ b/OvmfPkg/Include/IndustryStandard/LsiScsi.h @@ -26,6 +26,18 @@ #define LSI_REG_SIST0 0x42 #define LSI_REG_SIST1 0x43 =20 +// +// The status bits for DMA Status (DSTAT) +// +#define LSI_DSTAT_IID BIT0 +#define LSI_DSTAT_R BIT1 +#define LSI_DSTAT_SIR BIT2 +#define LSI_DSTAT_SSI BIT3 +#define LSI_DSTAT_ABRT BIT4 +#define LSI_DSTAT_BF BIT5 +#define LSI_DSTAT_MDPE BIT6 +#define LSI_DSTAT_DFE BIT7 + // // The status bits for Interrupt Status Zero (ISTAT0) // @@ -38,4 +50,55 @@ #define LSI_ISTAT0_SRST BIT6 #define LSI_ISTAT0_ABRT BIT7 =20 +// +// The status bits for SCSI Interrupt Status Zero (SIST0) +// +#define LSI_SIST0_PAR BIT0 +#define LSI_SIST0_RST BIT1 +#define LSI_SIST0_UDC BIT2 +#define LSI_SIST0_SGE BIT3 +#define LSI_SIST0_RSL BIT4 +#define LSI_SIST0_SEL BIT5 +#define LSI_SIST0_CMP BIT6 +#define LSI_SIST0_MA BIT7 + +// +// The status bits for SCSI Interrupt Status One (SIST1) +// +#define LSI_SIST1_HTH BIT0 +#define LSI_SIST1_GEN BIT1 +#define LSI_SIST1_STO BIT2 +#define LSI_SIST1_R3 BIT3 +#define LSI_SIST1_SBMC BIT4 +#define LSI_SIST1_R5 BIT5 +#define LSI_SIST1_R6 BIT6 +#define LSI_SIST1_R7 BIT7 + +// +// LSI 53C895A Script Instructions +// +#define LSI_INS_TYPE_BLK 0x00000000 +#define LSI_INS_TYPE_IO BIT30 +#define LSI_INS_TYPE_TC BIT31 + +#define LSI_INS_BLK_SCSIP_DAT_OUT 0x00000000 +#define LSI_INS_BLK_SCSIP_DAT_IN BIT24 +#define LSI_INS_BLK_SCSIP_CMD BIT25 +#define LSI_INS_BLK_SCSIP_STAT (BIT24 | BIT25) +#define LSI_INS_BLK_SCSIP_MSG_OUT (BIT25 | BIT26) +#define LSI_INS_BLK_SCSIP_MSG_IN (BIT24 | BIT25 | BIT26) + +#define LSI_INS_IO_OPC_SEL 0x00000000 +#define LSI_INS_IO_OPC_WAIT_RESEL BIT28 + +#define LSI_INS_TC_CP BIT17 +#define LSI_INS_TC_JMP BIT19 +#define LSI_INS_TC_RA BIT23 + +#define LSI_INS_TC_OPC_JMP 0x00000000 +#define LSI_INS_TC_OPC_INT (BIT27 | BIT28) + +#define LSI_INS_TC_SCSIP_DAT_OUT 0x00000000 +#define LSI_INS_TC_SCSIP_MSG_IN (BIT24 | BIT25 | BIT26) + #endif // _LSI_SCSI_H_ diff --git a/OvmfPkg/LsiScsiDxe/LsiScsi.c b/OvmfPkg/LsiScsiDxe/LsiScsi.c index b3a88cc7119b..d5fe1d4ab3b8 100644 --- a/OvmfPkg/LsiScsiDxe/LsiScsi.c +++ b/OvmfPkg/LsiScsiDxe/LsiScsi.c @@ -43,6 +43,42 @@ Out8 ( ); } =20 +STATIC +EFI_STATUS +Out32 ( + IN LSI_SCSI_DEV *Dev, + IN UINT32 Addr, + IN UINT32 Data + ) +{ + return Dev->PciIo->Io.Write ( + Dev->PciIo, + EfiPciIoWidthUint32, + PCI_BAR_IDX0, + Addr, + 1, + &Data + ); +} + +STATIC +EFI_STATUS +In8 ( + IN LSI_SCSI_DEV *Dev, + IN UINT32 Addr, + OUT UINT8 *Data + ) +{ + return Dev->PciIo->Io.Read ( + Dev->PciIo, + EfiPciIoWidthUint8, + PCI_BAR_IDX0, + Addr, + 1, + Data + ); +} + STATIC EFI_STATUS LsiScsiReset ( @@ -141,6 +177,303 @@ LsiScsiCheckRequest ( return EFI_SUCCESS; } =20 +/** + + Interpret the request packet from the Extended SCSI Pass Thru Protocol a= nd + compose the script to submit the command and data to the controller. + + @param[in] Dev The LSI 53C895A SCSI device the packet targets. + + @param[in] Target The SCSI target controlled by the LSI 53C895A SC= SI + device. + + @param[in] Lun The Logical Unit Number under the SCSI target. + + @param[in out] Packet The Extended SCSI Pass Thru Protocol packet. + + + @retval EFI_SUCCESS The Extended SCSI Pass Thru Protocol packet was val= id. + + @return Otherwise, invalid or unsupported parameters were + detected. Status codes are meant for direct forward= ing + by the EFI_EXT_SCSI_PASS_THRU_PROTOCOL.PassThru() + implementation. + + **/ +STATIC +EFI_STATUS +LsiScsiProcessRequest ( + IN LSI_SCSI_DEV *Dev, + IN UINT8 Target, + IN UINT64 Lun, + IN OUT EFI_EXT_SCSI_PASS_THRU_SCSI_REQUEST_PACKET *Packet + ) +{ + EFI_STATUS Status; + UINT32 *Script; + UINT8 *Cdb; + UINT8 *MsgOut; + UINT8 *MsgIn; + UINT8 *ScsiStatus; + UINT8 *Data; + UINT8 DStat; + UINT8 SIst0; + UINT8 SIst1; + + Script =3D Dev->Dma->Script; + Cdb =3D Dev->Dma->Cdb; + Data =3D Dev->Dma->Data; + MsgIn =3D Dev->Dma->MsgIn; + MsgOut =3D &Dev->Dma->MsgOut; + ScsiStatus =3D &Dev->Dma->Status; + + *ScsiStatus =3D 0xFF; + + SetMem (Cdb, sizeof Dev->Dma->Cdb, 0x00); + CopyMem (Cdb, Packet->Cdb, Packet->CdbLength); + + // + // Clean up the DMA buffer for the script. + // + SetMem (Script, sizeof Dev->Dma->Script, 0x00); + + // + // Compose the script to transfer data between the host and the device. + // + // References: + // * LSI53C895A PCI to Ultra2 SCSI Controller Version 2.2 + // - Chapter 5 SCSI SCRIPT Instruction Set + // * SEABIOS lsi-scsi driver + // + // All instructions used here consist of 2 32bit words. The first word + // contains the command to execute. The second word is loaded into the + // DMA SCRIPTS Pointer Save (DSPS) register as either the DMA address + // for data transmission or the address/offset for the jump command. + // Some commands, such as the selection of the target, don't need to + // transfer data through DMA or jump to another instruction, then DSPS + // has to be zero. + // + // There are 3 major parts in this script. The first part (1~3) contains + // the instructions to select target and LUN and send the SCSI command + // from the request packet. The second part (4~7) is to handle the + // potential disconnection and prepare for the data transmission. The + // instructions in the third part (8~10) transmit the given data and + // collect the result. Instruction 11 raises the interrupt and marks the + // end of the script. + // + + // + // 1. Select target. + // + *Script++ =3D LSI_INS_TYPE_IO | LSI_INS_IO_OPC_SEL | (UINT32)Target << 1= 6; + *Script++ =3D 0x00000000; + + // + // 2. Select LUN. + // + *MsgOut =3D 0x80 | (UINT8) Lun; // 0x80: Identify bit + *Script++ =3D LSI_INS_TYPE_BLK | LSI_INS_BLK_SCSIP_MSG_OUT | + (UINT32)sizeof Dev->Dma->MsgOut; + *Script++ =3D LSI_SCSI_DMA_ADDR (Dev, MsgOut); + + // + // 3. Send the SCSI Command. + // + *Script++ =3D LSI_INS_TYPE_BLK | LSI_INS_BLK_SCSIP_CMD | + (UINT32)sizeof Dev->Dma->Cdb; + *Script++ =3D LSI_SCSI_DMA_ADDR (Dev, Cdb); + + // + // 4. Check whether the current SCSI phase is "Message In" or not + // and jump to 7 if it is. + // Note: LSI_INS_TC_RA stands for "Relative Address Mode", so the + // offset 0x18 in the second word means jumping forward + // 3 (0x18/8) instructions. + // + *Script++ =3D LSI_INS_TYPE_TC | LSI_INS_TC_OPC_JMP | + LSI_INS_TC_SCSIP_MSG_IN | LSI_INS_TC_RA | + LSI_INS_TC_CP; + *Script++ =3D 0x00000018; + + // + // 5. Read "Message" from the initiator to trigger reselect. + // + *Script++ =3D LSI_INS_TYPE_BLK | LSI_INS_BLK_SCSIP_MSG_IN | + (UINT32)sizeof Dev->Dma->MsgIn; + *Script++ =3D LSI_SCSI_DMA_ADDR (Dev, MsgIn); + + // + // 6. Wait reselect. + // + *Script++ =3D LSI_INS_TYPE_IO | LSI_INS_IO_OPC_WAIT_RESEL; + *Script++ =3D 0x00000000; + + // + // 7. Read "Message" from the initiator again + // + *Script++ =3D LSI_INS_TYPE_BLK | LSI_INS_BLK_SCSIP_MSG_IN | + (UINT32)sizeof Dev->Dma->MsgIn; + *Script++ =3D LSI_SCSI_DMA_ADDR (Dev, MsgIn); + + // + // 8. Set the DMA command for the read/write operations. + // Note: Some requests, e.g. "TEST UNIT READY", do not come with + // allocated InDataBuffer or OutDataBuffer. We skip the DMA + // data command for those requests or this script would fail + // with LSI_SIST0_SGE due to the zero data length. + // + // LsiScsiCheckRequest() prevents both integer overflows in the command + // opcodes, and buffer overflows. + // + if (Packet->DataDirection =3D=3D EFI_EXT_SCSI_DATA_DIRECTION_READ && + Packet->InTransferLength > 0) { + ASSERT (Packet->InTransferLength <=3D sizeof Dev->Dma->Data); + *Script++ =3D LSI_INS_TYPE_BLK | LSI_INS_BLK_SCSIP_DAT_IN | + Packet->InTransferLength; + *Script++ =3D LSI_SCSI_DMA_ADDR (Dev, Data); + } else if (Packet->DataDirection =3D=3D EFI_EXT_SCSI_DATA_DIRECTION_WRIT= E && + Packet->OutTransferLength > 0) { + ASSERT (Packet->OutTransferLength <=3D sizeof Dev->Dma->Data); + CopyMem (Data, Packet->OutDataBuffer, Packet->OutTransferLength); + *Script++ =3D LSI_INS_TYPE_BLK | LSI_INS_BLK_SCSIP_DAT_OUT | + Packet->OutTransferLength; + *Script++ =3D LSI_SCSI_DMA_ADDR (Dev, Data); + } + + // + // 9. Get the SCSI status. + // + *Script++ =3D LSI_INS_TYPE_BLK | LSI_INS_BLK_SCSIP_STAT | + (UINT32)sizeof Dev->Dma->Status; + *Script++ =3D LSI_SCSI_DMA_ADDR (Dev, Status); + + // + // 10. Get the SCSI message. + // + *Script++ =3D LSI_INS_TYPE_BLK | LSI_INS_BLK_SCSIP_MSG_IN | + (UINT32)sizeof Dev->Dma->MsgIn; + *Script++ =3D LSI_SCSI_DMA_ADDR (Dev, MsgIn); + + // + // 11. Raise the interrupt to end the script. + // + *Script++ =3D LSI_INS_TYPE_TC | LSI_INS_TC_OPC_INT | + LSI_INS_TC_SCSIP_DAT_OUT | LSI_INS_TC_JMP; + *Script++ =3D 0x00000000; + + // + // Make sure the size of the script doesn't exceed the buffer. + // + ASSERT (Script <=3D Dev->Dma->Script + ARRAY_SIZE (Dev->Dma->Script)); + + // + // The controller starts to execute the script once the DMA Script + // Pointer (DSP) register is set. + // + Status =3D Out32 (Dev, LSI_REG_DSP, LSI_SCSI_DMA_ADDR (Dev, Script)); + if (EFI_ERROR (Status)) { + goto Error; + } + + // + // Poll the device registers (DSTAT, SIST0, and SIST1) until the SIR + // bit sets. + // + for(;;) { + Status =3D In8 (Dev, LSI_REG_DSTAT, &DStat); + if (EFI_ERROR (Status)) { + goto Error; + } + Status =3D In8 (Dev, LSI_REG_SIST0, &SIst0); + if (EFI_ERROR (Status)) { + goto Error; + } + Status =3D In8 (Dev, LSI_REG_SIST1, &SIst1); + if (EFI_ERROR (Status)) { + goto Error; + } + + if (SIst0 !=3D 0 || SIst1 !=3D 0) { + goto Error; + } + + // + // Check the SIR (SCRIPTS Interrupt Instruction Received) bit. + // + if (DStat & LSI_DSTAT_SIR) { + break; + } + + gBS->Stall (Dev->StallPerPollUsec); + } + + // + // Check if everything is good. + // SCSI Message Code 0x00: COMMAND COMPLETE + // SCSI Status Code 0x00: Good + // + if (MsgIn[0] !=3D 0 || *ScsiStatus !=3D 0) { + goto Error; + } + + // + // Copy Data to InDataBuffer if necessary. + // + if (Packet->DataDirection =3D=3D EFI_EXT_SCSI_DATA_DIRECTION_READ) { + CopyMem (Packet->InDataBuffer, Data, Packet->InTransferLength); + } + + // + // Always set SenseDataLength to 0. + // The instructions of LSI53C895A doesn't reply sense data. Instead, it + // relies on the SCSI command, "REQUEST SENSE", to get sense data. We set + // SenseDataLength to 0 to notify ScsiDiskDxe that there is no sense data + // written even if this request is processed successfully, so that It wi= ll + // issue "REQUEST SENSE" later to retrieve sense data. + // + Packet->SenseDataLength =3D 0; + Packet->HostAdapterStatus =3D EFI_EXT_SCSI_STATUS_HOST_ADAPTER_OK; + Packet->TargetStatus =3D EFI_EXT_SCSI_STATUS_TARGET_GOOD; + + return EFI_SUCCESS; + +Error: + DEBUG ((DEBUG_VERBOSE, "%a: dstat: %02X, sist0: %02X, sist1: %02X\n", + __FUNCTION__, DStat, SIst0, SIst1)); + // + // Update the request packet to reflect the status. + // + if (*ScsiStatus !=3D 0xFF) { + Packet->TargetStatus =3D *ScsiStatus; + } else { + Packet->TargetStatus =3D EFI_EXT_SCSI_STATUS_TARGET_TASK_ABORTED; + } + + if (SIst0 & LSI_SIST0_PAR) { + Packet->HostAdapterStatus =3D EFI_EXT_SCSI_STATUS_HOST_ADAPTER_PARITY_= ERROR; + } else if (SIst0 & LSI_SIST0_RST) { + Packet->HostAdapterStatus =3D EFI_EXT_SCSI_STATUS_HOST_ADAPTER_BUS_RES= ET; + } else if (SIst0 & LSI_SIST0_UDC) { + // + // The target device is disconnected unexpectedly. According to UEFI s= pec, + // this is TIMEOUT_COMMAND. + // + Packet->HostAdapterStatus =3D EFI_EXT_SCSI_STATUS_HOST_ADAPTER_TIMEOUT= _COMMAND; + } else if (SIst0 & LSI_SIST0_SGE) { + Packet->HostAdapterStatus =3D EFI_EXT_SCSI_STATUS_HOST_ADAPTER_DATA_OV= ERRUN_UNDERRUN; + } else if (SIst1 & LSI_SIST1_HTH) { + Packet->HostAdapterStatus =3D EFI_EXT_SCSI_STATUS_HOST_ADAPTER_TIMEOUT; + } else if (SIst1 & LSI_SIST1_GEN) { + Packet->HostAdapterStatus =3D EFI_EXT_SCSI_STATUS_HOST_ADAPTER_TIMEOUT; + } else if (SIst1 & LSI_SIST1_STO) { + Packet->HostAdapterStatus =3D EFI_EXT_SCSI_STATUS_HOST_ADAPTER_SELECTI= ON_TIMEOUT; + } else { + Packet->HostAdapterStatus =3D EFI_EXT_SCSI_STATUS_HOST_ADAPTER_OTHER; + } + + return EFI_DEVICE_ERROR; +} + // // The next seven functions implement EFI_EXT_SCSI_PASS_THRU_PROTOCOL // for the LSI 53C895A SCSI Controller. Refer to UEFI Spec 2.3.1 + Errata = C, @@ -168,7 +501,7 @@ LsiScsiPassThru ( return Status; } =20 - return EFI_UNSUPPORTED; + return LsiScsiProcessRequest (Dev, *Target, Lun, Packet); } =20 EFI_STATUS @@ -474,6 +807,7 @@ LsiScsiControllerStart ( ); Dev->MaxTarget =3D PcdGet8 (PcdLsiScsiMaxTargetLimit); Dev->MaxLun =3D PcdGet8 (PcdLsiScsiMaxLunLimit); + Dev->StallPerPollUsec =3D PcdGet32 (PcdLsiScsiStallPerPollUsec); =20 Status =3D gBS->OpenProtocol ( ControllerHandle, diff --git a/OvmfPkg/LsiScsiDxe/LsiScsi.h b/OvmfPkg/LsiScsiDxe/LsiScsi.h index 05deeed379fe..6ecf523f5a9e 100644 --- a/OvmfPkg/LsiScsiDxe/LsiScsi.h +++ b/OvmfPkg/LsiScsiDxe/LsiScsi.h @@ -13,6 +13,11 @@ #define _LSI_SCSI_DXE_H_ =20 typedef struct { + // + // Allocate 32 UINT32 entries for the script and it's sufficient for + // 16 instructions. + // + UINT32 Script[32]; // // The max size of CDB is 32. // @@ -25,6 +30,18 @@ typedef struct { // Count (DBC), a 24-bit register, so the maximum is 0xFFFFFF (16M= B-1). // UINT8 Data[SIZE_64KB]; + // + // For SCSI Message In phase + // + UINT8 MsgIn[2]; + // + // For SCSI Message Out phase + // + UINT8 MsgOut; + // + // For SCSI Status phase + // + UINT8 Status; } LSI_SCSI_DMA_BUFFER; =20 typedef struct { @@ -34,6 +51,7 @@ typedef struct { EFI_PCI_IO_PROTOCOL *PciIo; UINT8 MaxTarget; UINT8 MaxLun; + UINT32 StallPerPollUsec; LSI_SCSI_DMA_BUFFER *Dma; EFI_PHYSICAL_ADDRESS DmaPhysical; VOID *DmaMapping; @@ -46,6 +64,9 @@ typedef struct { #define LSI_SCSI_FROM_PASS_THRU(PassThruPtr) \ CR (PassThruPtr, LSI_SCSI_DEV, PassThru, LSI_SCSI_DEV_SIGNATURE) =20 +#define LSI_SCSI_DMA_ADDR(Dev, MemberName) \ + ((UINT32)(Dev->DmaPhysical + OFFSET_OF (LSI_SCSI_DMA_BUFFER, MemberName)= )) + =20 // // Probe, start and stop functions of this driver, called by the DXE core = for diff --git a/OvmfPkg/LsiScsiDxe/LsiScsiDxe.inf b/OvmfPkg/LsiScsiDxe/LsiScsi= Dxe.inf index 6111449577a8..4c7abcec618f 100644 --- a/OvmfPkg/LsiScsiDxe/LsiScsiDxe.inf +++ b/OvmfPkg/LsiScsiDxe/LsiScsiDxe.inf @@ -41,3 +41,6 @@ [Protocols] [FixedPcd] gUefiOvmfPkgTokenSpaceGuid.PcdLsiScsiMaxTargetLimit ## CONSUMES gUefiOvmfPkgTokenSpaceGuid.PcdLsiScsiMaxLunLimit ## CONSUMES + +[Pcd] + gUefiOvmfPkgTokenSpaceGuid.PcdLsiScsiStallPerPollUsec ## CONSUMES diff --git a/OvmfPkg/OvmfPkg.dec b/OvmfPkg/OvmfPkg.dec index ca13a3cb11d3..f16c00ad5b99 100644 --- a/OvmfPkg/OvmfPkg.dec +++ b/OvmfPkg/OvmfPkg.dec @@ -179,6 +179,9 @@ [PcdsFixedAtBuild] gUefiOvmfPkgTokenSpaceGuid.PcdLsiScsiMaxTargetLimit|7|UINT8|0x3b gUefiOvmfPkgTokenSpaceGuid.PcdLsiScsiMaxLunLimit|0|UINT8|0x3c =20 + ## Microseconds to stall between polling for LsiScsi request result + gUefiOvmfPkgTokenSpaceGuid.PcdLsiScsiStallPerPollUsec|5|UINT32|0x3d + gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageEventLogBase|0x0|UINT32|= 0x8 gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageEventLogSize|0x0|UINT32|= 0x9 gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFirmwareFdSize|0x0|UINT32|0xa --=20 2.25.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 (#62664): https://edk2.groups.io/g/devel/message/62664 Mute This Topic: https://groups.io/mt/75537215/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 Sat May 4 17:13:54 2024 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+62665+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+62665+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one) Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1594885617184880.1755569492748; Thu, 16 Jul 2020 00:46:57 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id 8tJ4YY1788612x8HatFVeCgI; Thu, 16 Jul 2020 00:46:56 -0700 X-Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [62.140.7.102]) by mx.groups.io with SMTP id smtpd.web11.10948.1594885616112271889 for ; Thu, 16 Jul 2020 00:46:56 -0700 X-Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05lp2172.outbound.protection.outlook.com [104.47.17.172]) (Using TLS) by relay.mimecast.com with ESMTP id de-mta-4-f9Pq84a_PteN2rlMW_4GqQ-2; Thu, 16 Jul 2020 09:46:53 +0200 X-MC-Unique: f9Pq84a_PteN2rlMW_4GqQ-2 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WHHbIUlcjo7SHL2vbyLVva5nGze4+1Vf1RDYwiDp432ftWV6KZT3KC899QDTfZUiFP0i27wqK6yR30dbaZZWGGrNgv552sEa1Yvi0G3CdA5qXF+B8wEu+l7aNQ17gg3RTgXhhv0YJdDMuSdPx15vZiqKfMCUYgOZdNDMIITBBXXCp2m0E9g8p2oQ+U+L2GQjcCWOHvQYvsQS+9HwPrd9K3dNe6TC7AtFSwoQZ8up7P9iZHLTk4kksRdCh6Qx3FcDtWSaV42vEywKNlNWqIK+MLoU2v3By7n3cW40lx4yWrucIYKcPPXienwkNBD1wSvQwQQIiwK9KIIe9P3ByOtf+Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=YSSucCD8XiFb9gigHNOTwHfucJPQ3jV89TTOc0JvaEY=; b=G2vrRV7sggS8pAAEyxDWQEza/gEEJro1fRBj2+ppkrsIqlkrKBGzYsJGjPQCYLAbKlC2dA1ymSi6zSg/khX0BI0uCSxa2/7bHWKYtPVlr9RNHtFc124MqqpaEBWF430L/JMztnQ+2KOjl53zxWSoO5DM+rsdFXTc54xQNbEkW4YTD1k5PcpWCcG04imTJVm7cT+GNKnhfj7H3kg3gep7cbfGYYu31Y2rvVv04IzcWn3QWyXBwg+mTwbRQSlj2nBHLnMOEjJdE3/FhkYoE6SU8Glbi5ENjC7fliTeoNnSKuMWWeuqQZ3psBB+7BSvMjTG8B5paof1W1ui5U6HzjdG9w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none X-Received: from AM0PR0402MB3809.eurprd04.prod.outlook.com (2603:10a6:208:10::30) by AM0PR04MB4740.eurprd04.prod.outlook.com (2603:10a6:208:c8::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3195.17; Thu, 16 Jul 2020 07:46:48 +0000 X-Received: from AM0PR0402MB3809.eurprd04.prod.outlook.com ([fe80::a14c:d441:c8a9:77ba]) by AM0PR0402MB3809.eurprd04.prod.outlook.com ([fe80::a14c:d441:c8a9:77ba%6]) with mapi id 15.20.3174.026; Thu, 16 Jul 2020 07:46:48 +0000 From: "Gary Lin" To: devel@edk2.groups.io Cc: Jordan Justen , Laszlo Ersek , Ard Biesheuvel Subject: [edk2-devel] [PATCH v2 11/12] OvmfPkg/LsiScsiDxe: Calculate the transferred bytes Date: Thu, 16 Jul 2020 15:46:06 +0800 Message-Id: <20200716074607.18048-12-glin@suse.com> In-Reply-To: <20200716074607.18048-1-glin@suse.com> References: <20200716074607.18048-1-glin@suse.com> X-ClientProxiedBy: AM3PR07CA0118.eurprd07.prod.outlook.com (2603:10a6:207:7::28) To AM0PR0402MB3809.eurprd04.prod.outlook.com (2603:10a6:208:10::30) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-Received: from GaryWorkstation.suse.cz (60.251.47.115) by AM3PR07CA0118.eurprd07.prod.outlook.com (2603:10a6:207:7::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3195.17 via Frontend Transport; Thu, 16 Jul 2020 07:46:46 +0000 X-Originating-IP: [60.251.47.115] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: fccefa15-c33b-460d-13b2-08d8295c6504 X-MS-TrafficTypeDiagnostic: AM0PR04MB4740: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:7691; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info: ePewCBL/1JhwrrcRaECN4r2VphwzEAFUQVzazDZZFIeP2OyoBKtS3zA0JDu6ZmVS3H/U64pMdmV9NDZLtmaua5BPsH4vsl8xZdW3Re+x0w/4MCOY3MCx6ZnL8WrhZGhFnW8qLv+c4ZlGR5G/CmhqTAxhH1E9TPpN44YDaYkpyC7Bi0xSjsQN7drvXgp6wh7jxVafndXIlf/8cNjqBCdRNl5bWqPv5PG8wTQDVgE2r9wfUarhYtQ+QeStESHuCV9V50HbffUNTvd3FUA9BFe5NxTcZFKQT/rfWRm8gntKCibw12i0dC1Ik+FWCBz9ANPzQdJ8KkyOKW+0WqfGXuxdeA== X-MS-Exchange-AntiSpam-MessageData: Og656L1oKgsVXyu6lwvtRwgTVWdneXbn4qf+A4GuCd7AAUwdxpCgFCzH+Z0dk9WBsdsIDn/1aXbFHwoRgm2g6WdgnTzV5Ais9ctMYraKHqH0pVs0qCamYbjdsZC2eHLr4a7lTp0xlNSq+rfOCJ0F9s5A5514oy/L8szT4aKvzX/yY4WjCFwxdBK1UATb0Tdl2aikVGEAX942Vzw0kKETHR7DInGLpVSEz1krdh+VmJlcC7/sadtnqiO9CnZfm3i2Jbr4DJgT0Z0jZ1qx4GFsAGoVutO7VgBrLAt+8pweZD1SJU6wKsQ9lto7tt5aq4G7guzz55HXy0lsKz02KwIeaenVAx4q2T0gDSJcJoe4ocP+2edPPUChxpJGRR0CFcUrP4qCefbrfHEMSakbJLgV402/xsuo8CVol7xUDrWZZRKir7yj09Nb8Ov1JCJi/4CR8N+EpWu6u7b+qkpAnSSIBhyWX1QVtZ6is3ixi5M4a0s= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: fccefa15-c33b-460d-13b2-08d8295c6504 X-MS-Exchange-CrossTenant-AuthSource: AM0PR0402MB3809.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jul 2020 07:46:48.5139 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 6gDoPVs+bO9LTdRicPZKILywtWc1C8C+lh9ANCv82khOmSIvY6AOuRcCAUlCAiTJ X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB4740 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,glin@suse.com X-Gm-Message-State: Bi4ULI9AjVEKuGkOD0Fx1V4jx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1594885616; bh=7gy+lYUQXe8kur6vppxGMMF18fcoYzON72Ul6aUybs4=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=GyV4RjXI6Ip3gAe0AFo/IXcpU9Kw3wj7syL1DXImSmzdGVECTZqRpjLtRSLgAox5LnO fxoLA/JQieHTTF53LOPB7me3FlLxdOwsBPUH1oWvs7JR0kdDL1lV138tNOg24+OE0Nf0O v7Lo3SH4FoXGAAhT//y495Hplh9cPza6A5k= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" Calculate the transferred bytes during data phases based on the Cumulative SCSI Byte Count (CSBC) and update InTransferLength/OutTransferLength of the request packet. Cc: Jordan Justen Cc: Laszlo Ersek Cc: Ard Biesheuvel Signed-off-by: Gary Lin --- OvmfPkg/Include/IndustryStandard/LsiScsi.h | 1 + OvmfPkg/LsiScsiDxe/LsiScsi.c | 50 ++++++++++++++++++++++ 2 files changed, 51 insertions(+) diff --git a/OvmfPkg/Include/IndustryStandard/LsiScsi.h b/OvmfPkg/Include/I= ndustryStandard/LsiScsi.h index 9964bd40385c..01d75323cdbc 100644 --- a/OvmfPkg/Include/IndustryStandard/LsiScsi.h +++ b/OvmfPkg/Include/IndustryStandard/LsiScsi.h @@ -25,6 +25,7 @@ #define LSI_REG_DSP 0x2C #define LSI_REG_SIST0 0x42 #define LSI_REG_SIST1 0x43 +#define LSI_REG_CSBC 0xDC =20 // // The status bits for DMA Status (DSTAT) diff --git a/OvmfPkg/LsiScsiDxe/LsiScsi.c b/OvmfPkg/LsiScsiDxe/LsiScsi.c index d5fe1d4ab3b8..10483ed02bd7 100644 --- a/OvmfPkg/LsiScsiDxe/LsiScsi.c +++ b/OvmfPkg/LsiScsiDxe/LsiScsi.c @@ -79,6 +79,24 @@ In8 ( ); } =20 +STATIC +EFI_STATUS +In32 ( + IN LSI_SCSI_DEV *Dev, + IN UINT32 Addr, + OUT UINT32 *Data + ) +{ + return Dev->PciIo->Io.Read ( + Dev->PciIo, + EfiPciIoWidthUint32, + PCI_BAR_IDX0, + Addr, + 1, + Data + ); +} + STATIC EFI_STATUS LsiScsiReset ( @@ -219,6 +237,8 @@ LsiScsiProcessRequest ( UINT8 DStat; UINT8 SIst0; UINT8 SIst1; + UINT32 Csbc; + UINT32 CsbcBase; =20 Script =3D Dev->Dma->Script; Cdb =3D Dev->Dma->Cdb; @@ -232,6 +252,18 @@ LsiScsiProcessRequest ( SetMem (Cdb, sizeof Dev->Dma->Cdb, 0x00); CopyMem (Cdb, Packet->Cdb, Packet->CdbLength); =20 + // + // Fetch the first Cumulative SCSI Byte Count (CSBC). + // + // CSBC is a cumulative counter of the actual number of bytes that has b= een + // transferred across the SCSI bus during data phases, i.e. it will not + // bytes sent in command, status, message in and out phases. + // + Status =3D In32 (Dev, LSI_REG_CSBC, &CsbcBase); + if (EFI_ERROR (Status)) { + return Status; + } + // // Clean up the DMA buffer for the script. // @@ -407,6 +439,24 @@ LsiScsiProcessRequest ( gBS->Stall (Dev->StallPerPollUsec); } =20 + // + // Fetch CSBC again to calculate the transferred bytes and update + // InTransferLength/OutTransferLength. + // + // Note: The number of transferred bytes is bounded by + // "sizeof Dev->Dma->Data", so it's safe to subtract CsbcBase + // from Csbc. + // + Status =3D In32 (Dev, LSI_REG_CSBC, &Csbc); + if (EFI_ERROR (Status)) { + return Status; + } + if (Packet->InTransferLength > 0) { + Packet->InTransferLength =3D Csbc - CsbcBase; + } else if (Packet->OutTransferLength > 0) { + Packet->OutTransferLength =3D Csbc - CsbcBase; + } + // // Check if everything is good. // SCSI Message Code 0x00: COMMAND COMPLETE --=20 2.25.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 (#62665): https://edk2.groups.io/g/devel/message/62665 Mute This Topic: https://groups.io/mt/75537216/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 Sat May 4 17:13:54 2024 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+62666+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+62666+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one) Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1594885618685715.1576776488596; Thu, 16 Jul 2020 00:46:58 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id vAxXYY1788612xEfgxYr0i2h; Thu, 16 Jul 2020 00:46:58 -0700 X-Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [62.140.7.102]) by mx.groups.io with SMTP id smtpd.web10.10752.1594885617619841437 for ; Thu, 16 Jul 2020 00:46:57 -0700 X-Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05lp2172.outbound.protection.outlook.com [104.47.17.172]) (Using TLS) by relay.mimecast.com with ESMTP id de-mta-4-1EB8KZaZNSmJeLODjEqxlg-3; Thu, 16 Jul 2020 09:46:54 +0200 X-MC-Unique: 1EB8KZaZNSmJeLODjEqxlg-3 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=O73gFk4aqKT2LhpFf2ykA5V3oopRw1rnQmXXkTJ7tUBEy8mtnHAAOMVczoHaF+7YsJy39Fd9LipYcUvEYq5NN2hz6ZJmQ7cj3X9Kjgb5WR+15wKeR4lSbf8QBJzhfjAfNnnaHjAoWwN4CHk9l1KGH7hauCQPI3xkocqD2qEIBiGzhJibslfkUNEGTx8lCIYgrEFo7UOtIMB6zH1cFMAOHLctP+V1p6hBuE98z4CF9wBrrgVK3/6OhhvNWmBXcDA6jl/Gn08toP4wEdJq2RnHA7NhBHdcC/TzQM0NnLJgHan2U+UtTsS+3RcmI9aJ7c/C6YtkFAOUoIaQeJ0rUvdx8Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=bHt1nnlf+CvvzDy4wfUX63qv1K3Z1ptgIq1KD4ao8vE=; b=nlTtEp9Ewr44+FUy40LQ5D9mbxdjt0EDdTqPRViF5ruGFaQWv3x2Py8xz2hq6gNTovT38QGc7LYrr6/FLgn9VRwImyDPp14J78mIVRhqa/s+Gfv2vU8a7kHIc8zim8yw9ZDYZ068O4JsNpXjdHLyNccF+8cKlRZm77DhHa9x3DcHSHFPSazfrbQkBnYbwIcES8BRK6cPvEFYbCDAjhpT2GO5H6rhVeRkhMWIQ3B2sGhFl04LJ5bUQPAgbYTk7i3/8sFZOY2EW5n85o/3UhJGPBmDL9EEL0DlVqFtaADlDmiatXqV6915lE8cORHKTFewghU/pldrXN0JTEekQtp7yw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none X-Received: from AM0PR0402MB3809.eurprd04.prod.outlook.com (2603:10a6:208:10::30) by AM0PR04MB4740.eurprd04.prod.outlook.com (2603:10a6:208:c8::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3195.17; Thu, 16 Jul 2020 07:46:50 +0000 X-Received: from AM0PR0402MB3809.eurprd04.prod.outlook.com ([fe80::a14c:d441:c8a9:77ba]) by AM0PR0402MB3809.eurprd04.prod.outlook.com ([fe80::a14c:d441:c8a9:77ba%6]) with mapi id 15.20.3174.026; Thu, 16 Jul 2020 07:46:50 +0000 From: "Gary Lin" To: devel@edk2.groups.io Cc: Jordan Justen , Laszlo Ersek , Ard Biesheuvel Subject: [edk2-devel] [PATCH v2 12/12] Maintainers.txt: Add Gary Lin as the reviewer for LsiScsi driver Date: Thu, 16 Jul 2020 15:46:07 +0800 Message-Id: <20200716074607.18048-13-glin@suse.com> In-Reply-To: <20200716074607.18048-1-glin@suse.com> References: <20200716074607.18048-1-glin@suse.com> X-ClientProxiedBy: AM3PR07CA0118.eurprd07.prod.outlook.com (2603:10a6:207:7::28) To AM0PR0402MB3809.eurprd04.prod.outlook.com (2603:10a6:208:10::30) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-Received: from GaryWorkstation.suse.cz (60.251.47.115) by AM3PR07CA0118.eurprd07.prod.outlook.com (2603:10a6:207:7::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3195.17 via Frontend Transport; Thu, 16 Jul 2020 07:46:48 +0000 X-Originating-IP: [60.251.47.115] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 86b796c1-1824-4fe5-10db-08d8295c662e X-MS-TrafficTypeDiagnostic: AM0PR04MB4740: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:296; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info: wh2FLS1QfpOKaPSOugZ+HaqdrLriQDJsqPFSyI310YYcGMy0JpZlDLrBuPUpCaaqw9dtAV5uVX86WG0iCkrEwK8XFSegQgJqlIl+urWodUUw0UcYa/XnD3BK/Gdnl+op//5n8lc0aq3Q+GIJYz3ZRg1FHSulcQSurGws5XIqT+BLnVmJnX3kYGdFm+Qrp/49UwlsNLLo9QTR0R2KyOaNtr2B35lIhsm30cH9FSoyqo/xII7K59PGwowlMYO4+vE7KKV6TNTiGDU+ukcesZtLkHuHg2REMDJuWzmU1ml6hCYrnfnCV51V+JNDPoQfhWOJD7nn0M03KH62kFTl5WPoAA== X-MS-Exchange-AntiSpam-MessageData: y07JBdkAG/OPOxhGoMcd11LyaSAYSZZX/X6KnYOH4/zh/B6JZh7Js/aPT081Po0uHcv5+vvGsXFBYjtvgE2W0Wl/t7x6UTPkcmZrxfa29pFIMTPG7Qu0w8iHmPikm0SsYJck+b0ez0TSR1gV0au7XUVPb62IA6Vozq2S8lKpdKT7k1AKjOvxg00+NIZ7WH3KXOH1Sg2Z18RcP+CrjhK8r7kKALfcAcg5jjkgRlh2KL4FUR4lSi69EpjPLECwRf5h1h+0SEuUi5/4QSehMj9uJYSknasWrREVfYeBARQYqDdvaluYESLOnQoOUmsulbYP3NBRJ7MQm+0U+oaTy/iZFWJYyBL51Dkg9TdN3Zo6m5wuL/UNp/elKIwhDpjzpfbNUtkgCQ20gLIUtLy3+fLeGoX0D6qgCWChm/kpKWf2WN9eB3v7tOw3N9tiWdS+wLFLJ1l+HE2J2/63LfHFt9IHRIPIJIis85KDdpBYi8YHrtI= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 86b796c1-1824-4fe5-10db-08d8295c662e X-MS-Exchange-CrossTenant-AuthSource: AM0PR0402MB3809.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jul 2020 07:46:50.4268 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: U6VWnpjJptRtV+OhxlMOAbyTiIvHvvR7MuK9tScjtptf/QF0S/9cr9HIxzSccqoA X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB4740 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,glin@suse.com X-Gm-Message-State: 5T3PGPa0zbHPNAyDdtUr1xVEx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1594885618; bh=TixsxlhnLJ7bmZl1IRf9HYglN77QMK/03zeVgYq1nP8=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=cao8ejy8CQo06OroaClgPc2SEnUXG22rGEjIVw75nbfpmv6Hl5kcJXm6YmvT5Sb4/8U H3VXDFiuVKEYubPgl3/7shL+qV/gB+wlPHzsIlcgsa9g6iDojHfxYPp8beLDxt8wqZj+p 5sWFzvy6DJbRSCiYmwGYnRJ57uByAE7uOTc= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" Cc: Jordan Justen Cc: Laszlo Ersek Cc: Ard Biesheuvel Signed-off-by: Gary Lin Reviewed-by: Laszlo Ersek --- Maintainers.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Maintainers.txt b/Maintainers.txt index 32c9003a6209..075a8d0ea763 100644 --- a/Maintainers.txt +++ b/Maintainers.txt @@ -400,6 +400,10 @@ OvmfPkg: CSM modules F: OvmfPkg/Csm/ R: David Woodhouse =20 +OvmfPkg: LsiScsi driver +F: OvmfPkg/LsiScsiDxe/ +R: Gary Lin + OvmfPkg: MptScsi and PVSCSI driver F: OvmfPkg/MptScsiDxe/ F: OvmfPkg/PvScsiDxe/ --=20 2.25.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 (#62666): https://edk2.groups.io/g/devel/message/62666 Mute This Topic: https://groups.io/mt/75537217/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-