From nobody Sun Apr 28 20:20:45 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+61901+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+61901+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 1593576340611635.9770207163397; Tue, 30 Jun 2020 21:05:40 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id hoWKYY1788612xuRgAFIAjNy; Tue, 30 Jun 2020 21:05:40 -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.14122.1593576337268223442 for ; Tue, 30 Jun 2020 21:05:37 -0700 X-Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-am5eur02lp2050.outbound.protection.outlook.com [104.47.4.50]) (Using TLS) by relay.mimecast.com with ESMTP id de-mta-24-sfU8uiZsNUOt2G0-2ZDX8w-1; Wed, 01 Jul 2020 06:05:32 +0200 X-MC-Unique: sfU8uiZsNUOt2G0-2ZDX8w-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cg2vdx4oriqVgA0aSLPTquGaroClbcPkwRExBRy5mpzO3daz5Nbyf4W1cyyMPx4V7wKqzQ+1Te8ScnjSFTK7INpYf129K+2ye2azOyg94fMyV4oQYdcToixlqVp87MSNbyWi0dr3JB0OLHnxZl2aALOidZi2bzIEIh1imhjxa7rGqdra4Z93QnBLcGveIQwlCr5sytMW2h+uollxlU1nSY0JUGcX7RkrpEIOuvdmuhN48YRtJK6Lb0nVAxlhvbDlvI+WE59HEwlxHc5DG4qeYIP231J8owzkfOtuD/Qu3ZffsEkjBTXoQIaXjOU96O5PvOir6spRWBy1rLk4D72yug== 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=s8IbTNOWavjw2y13p829pA+2qKKFcYY/FaIzZU+CDv8=; b=OhBdjSHMEPSGiusiET92o8IwvV2DhHO7Hv3vLoYe+ztohq8ch8vdiBHrspZNUujy5uCj6yptWxeDlA8iLHNyQSlKcH4B7mvkwx0Rd10kzQmqd+buRwoJSJWxYSvp4orccnwhcgz7efOMP8Oghz8g0g1btq4kn7yvtQtUiEAsN/v+h68GxaXh9/XngjgaVWfJvwS7cSeIYuGgY710nyfMeRhM/AS+/lJdrNbECpTKKljOz6Mko3Lz7GM319hqS+DX09di7Jtnfv5Sw3evVINXMPqRout3Ap8xARFsJkLAJdkX3emIo/5Z5sbdmPDAn/49CneLBAjULNCWTH/7JSDKKw== 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 AM0PR04MB4481.eurprd04.prod.outlook.com (2603:10a6:208:70::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3131.21; Wed, 1 Jul 2020 04:05:32 +0000 X-Received: from AM0PR0402MB3809.eurprd04.prod.outlook.com ([fe80::8806:715f:1409:8c6b]) by AM0PR0402MB3809.eurprd04.prod.outlook.com ([fe80::8806:715f:1409:8c6b%7]) with mapi id 15.20.3153.021; Wed, 1 Jul 2020 04:05:32 +0000 From: "Gary Lin" To: devel@edk2.groups.io Cc: Jordan Justen , Laszlo Ersek , Ard Biesheuvel Subject: [edk2-devel] [PATCH 01/11] OvmfPkg/LsiScsiDxe: Create the empty driver Date: Wed, 1 Jul 2020 12:04:38 +0800 Message-Id: <20200701040448.14871-2-glin@suse.com> In-Reply-To: <20200701040448.14871-1-glin@suse.com> References: <20200701040448.14871-1-glin@suse.com> X-ClientProxiedBy: AM0PR10CA0047.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:150::27) 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 AM0PR10CA0047.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:150::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.21 via Frontend Transport; Wed, 1 Jul 2020 04:05:30 +0000 X-Originating-IP: [60.251.47.115] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a802cae7-2619-4260-6fcd-08d81d73ff8a X-MS-TrafficTypeDiagnostic: AM0PR04MB4481: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:6108; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info: anZjmUrwCHOZsUnch2SlBwAn1Pxz67hx6hbu7LokQAM/P2nLREzkuZD+ASMiiBIoQ4gRgkWSq9SFgSHbWQ9hiD2NRZuqmg4ATbMN//XO7Cc3X3isldtQyWo2qvTDwQ7zUl5HmtLHspYRrAqwkmBYbq5dGBAhL9K42vZbn5ZGIVFZUd5rbQTyPJzO+yif5BeIHvydj9F/lcGedf9mH4SKewSqhabhScM/Hf6S/4jFDnFYp1EbYLl/9wrSAEFYzdVE+msWZICl3lkgo5b0ysTHC1Kp3/IcLc7/RpxxUKFh0ksvDzem72PfpT+EZAMMPiv8rll7Jg2ig7mstqb+gH6rCQ== X-MS-Exchange-AntiSpam-MessageData: 67D8lr598D2kjFyqMQK6y9kJudXlmk5ju99n5ETmmeIKdah77axyF+AvSZUQqrTzJOpy9HjlcMQwPRXoQYq9CbfYSaaN9W9+ugUCMiJcJlI2lL212BndsARwhqSnXnTPYKHZiq28XFw6BJBaHNf+XyBaw8bU3TUQOTkhrcVmFu5vvfpB+W+WVvhMaYrimzpdhGz0XLi8QmaT8rkmci7KLlvot3RaKpW+8PxOWkd0BgqXti76xyblebvz/9TuOZqOkxeP5ggeKEjAtwMh9wc9RxP3L22/1hhZjcAoBjuPgugV+xmurw2jyfOy6S2Uk8PNAOYHDBI+U8wfhJN4tTjTCRC0pDFm6pV+p1UG5n3mtMpI+0W3CJ3OmGheAa1+ECowTceFgeVjDA6I/sbX7sQTnpQaQQL5FxDohV6UtFKDzEtZ4ruZ9+FwEHh+RrZHv3GcjH7gU41QI+wfjDU0E6RYvPk68o5dVvPDLFTXVp92MR0= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: a802cae7-2619-4260-6fcd-08d81d73ff8a X-MS-Exchange-CrossTenant-AuthSource: AM0PR0402MB3809.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jul 2020 04:05:32.2060 (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: XM0h7wI8a2xqIUbh43NaP2mc8aafbtt+K/OTq5Yfs+oRfa6VUcErCVnWW1y8aR9Q X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB4481 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: 1sg9wCr9EAApplGbyYSZIRYox1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1593576340; bh=mksdXiu2fhyx9hVw2AeBUw9kZfX0Lql/FMrVYl4dtfw=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=oWi0B5pkoGv6bbwxi6cZ1hiJUe47kBcglVj/PFj23eOvwvobwlkBPLXeqxtoNlQlkAu Z4wsm84Suv5FvD9YY5Qk+p6Sdqv2pHnoNgtkue3qlbr7mE+RxxHvd9nDrUwnwjJ2zw9li /D/nB77iTlRl0ORRKbTxlc9KJB/QQ8B/18U= 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. 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..55b483c2fa20 --- /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 (#61901): https://edk2.groups.io/g/devel/message/61901 Mute This Topic: https://groups.io/mt/75228755/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 Sun Apr 28 20:20:45 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+61902+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+61902+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 1593576341108297.1258913306924; Tue, 30 Jun 2020 21:05:41 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id NGocYY1788612xWNe8JLhozj; Tue, 30 Jun 2020 21:05:40 -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.13908.1593576339321006618 for ; Tue, 30 Jun 2020 21:05:39 -0700 X-Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-am5eur02lp2054.outbound.protection.outlook.com [104.47.4.54]) (Using TLS) by relay.mimecast.com with ESMTP id de-mta-28-T05lQA-9P0qY3bmuZTwoBg-1; Wed, 01 Jul 2020 06:05:34 +0200 X-MC-Unique: T05lQA-9P0qY3bmuZTwoBg-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KoZjVx+j0Eq6QtHiUYhXRU6DbSvHmqzruXtRin0604pVHQqGpXsudY564FQ3keAQw0STU8JjrShAaJS6tsTLfk4Kc2EfnbwLOSCcvoHHgHazUMZZF+FW84LRcFpfZF/ExPgR+HbFeuVjqnYoT46U1r5sGMW06OJEeHMiaQ6ZzJY2R7mNfyRPAxitS9Y7Lrn8YDE1oHxQOagtcS7n1V9GqVNLAcUiI0KK1gHEUkP4qVg/DKeVLNMrr3n19V9k4wOnIo/SUioC29lz+HRALeLT7jiPYqh7Lnj5Ofw6TIEmOF9RQaHBSREyL82XgioZIZNyIDL6iQ2DqXjOsMxOF5/VZw== 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=NYGl1iAwqaFPldL35qL3OthJhuaW5Xun2WUEGDCrva4=; b=JWmDxvBJWaBRWHuTGUgbENvyfJwDqpQN4NAYU6cpg2JR1lV5JNcHBStXRnJIbFrN8mK4oHjn90ybd+79KJaUL9M2J3W0bGcXZ92jTbvmyvFzFaWNNBmubQCl8jejzX6H6KEf85eShWXfOn7tdoQbCebYJgCTLZMr5EICBbRf50kLa3vUGbsVisZ6gBSzJ7pSNoVaFnlw21rblk6AG2YUh7pOk1S08eZ4GOYOvGN1j/Z2GqxLKRZDQA67y1OMRLYIJTWIl4s3dUKnQeVXUto7H/oDFo3CDsvxvS9cWLW/itZx25QyZV51FuOX1j0mAc75bmnIwScBpB1DVaMIxxyqag== 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 AM0PR04MB4481.eurprd04.prod.outlook.com (2603:10a6:208:70::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3131.21; Wed, 1 Jul 2020 04:05:34 +0000 X-Received: from AM0PR0402MB3809.eurprd04.prod.outlook.com ([fe80::8806:715f:1409:8c6b]) by AM0PR0402MB3809.eurprd04.prod.outlook.com ([fe80::8806:715f:1409:8c6b%7]) with mapi id 15.20.3153.021; Wed, 1 Jul 2020 04:05:34 +0000 From: "Gary Lin" To: devel@edk2.groups.io Cc: Jordan Justen , Laszlo Ersek , Ard Biesheuvel Subject: [edk2-devel] [PATCH 02/11] OvmfPkg/LsiScsiDxe: Install the skeleton of driver binding Date: Wed, 1 Jul 2020 12:04:39 +0800 Message-Id: <20200701040448.14871-3-glin@suse.com> In-Reply-To: <20200701040448.14871-1-glin@suse.com> References: <20200701040448.14871-1-glin@suse.com> X-ClientProxiedBy: AM0PR10CA0047.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:150::27) 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 AM0PR10CA0047.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:150::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.21 via Frontend Transport; Wed, 1 Jul 2020 04:05:32 +0000 X-Originating-IP: [60.251.47.115] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 60c24aed-2e9e-4d8c-68b1-08d81d7400ad X-MS-TrafficTypeDiagnostic: AM0PR04MB4481: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:4125; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info: H1CxRXKTJhSva7LFLsg2vBc+6RJGow6YC5Io0f7WSv+nhhCGgdLyvjEp0dXn+Aen1YC9PnF6RMtxyiQsmX2bzjfrFN81n8Wc+ebVOFyt15vuSEICtB3RiKJvtR62hEcDrUwqJywjW8TD8r32IZXACZmNulGmNOD6dEmCE2wZa7hK+aA9cyzIRkJl0VOyZib17U1TIjQwUFqws5vX6ETH2TVOP9c3hzWDaT3cfeHJkEXIgMMiiQkZRI/07gBy4m12pwCuMs/Le/nScqFH8PKYPOmHSH7BDqraDjxo7UcyjAAc6TCe1cl2UARPj9Xkh119XkHiyQ/GbhOEB3+zjkqMGg== X-MS-Exchange-AntiSpam-MessageData: VVHxhMMEwhP5V54mqzwzObMs7I2xAMuBu4kyTZYnJ9wzV/spKBpkLByWZlpS7+1h8MlT+PBTkbChUxGEupey7WEr36T0Gx29MtEBBb2HAc/MZLTfI0smfZjUvp6FmEGwxbZMxtKNriITIZZjEgTY6RpBj0M9WCwfnXtRw0nmrm8TzaQWly/nUnPbxOUO67Yq6qbTYFfUqyCW75Rv52SStAkYAlzDCuMjgozeNBa5s19XIdGg+Y+9T8e5tBaEb2HDLg5WPouDpfjryinj1kKf9U7QMB/bJAwyySB0WXjylgWaufFkymPgAfuh3E6bQH3ChgIpX7wGd8RJrNj2j9xZeRx5d/eGdT9HW3RshwAyu8nLV6cQcY7N5noprlyNlBo1Zm9SQmzWw/M+5oFjKgd9n69iQSXtUNuRBHou+RLUgARFMt4XUbW5sMtlRHK0pPx3egxLPc16wuzhqHHnlnpc8DNvvE3QFJDLOuTS2oO8GVQ= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 60c24aed-2e9e-4d8c-68b1-08d81d7400ad X-MS-Exchange-CrossTenant-AuthSource: AM0PR0402MB3809.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jul 2020 04:05:34.0839 (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: ncJHuVyFT0mEcetVcX6YNyHAm7N7wvOLkstjR5db5MOGKKzkIX/gn2xbW6+0lgcI X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB4481 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: c6zs4ne8e4qB8lK88WAZ5HGlx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1593576340; bh=IN19DCC55tBdYD85QP51APAVoNCWW8qYs5BLedYFZtk=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=XchXDP9gdm2gXFwahCmLl2EkFOvP5A6Ac+7ZInHc4aulG3BCq9WKnelQh4g9JBZzTtr ugzFO0pz2i9oyJfVCa/4tHo7/f5qhN/4tLL+bQPK3O/EIU7Z+hqEBu5BeK4uirV/pzHyq UQcbFpgR4D1+8KGASGW/SVs5H0H5ouxHq8M= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" Implement the dummy functions for EFI Driver Binding protocol. 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 | 50 +++++++++++++++++++++ OvmfPkg/LsiScsiDxe/LsiScsiDxe.inf | 2 + 3 files changed, 123 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..17738442fd5f --- /dev/null +++ b/OvmfPkg/LsiScsiDxe/LsiScsi.h @@ -0,0 +1,50 @@ +/** @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 +// + +STATIC +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 55b483c2fa20..444ceb78e9ca 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 (#61902): https://edk2.groups.io/g/devel/message/61902 Mute This Topic: https://groups.io/mt/75228757/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 Sun Apr 28 20:20:45 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+61903+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+61903+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 1593576341566916.0123147493123; Tue, 30 Jun 2020 21:05:41 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id rpcKYY1788612x1A60UHBfwE; Tue, 30 Jun 2020 21:05:41 -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.14123.1593576340383966075 for ; Tue, 30 Jun 2020 21:05:40 -0700 X-Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-am5eur02lp2054.outbound.protection.outlook.com [104.47.4.54]) (Using TLS) by relay.mimecast.com with ESMTP id de-mta-28-6JgZMNkjM7Wal8lEDklPCg-2; Wed, 01 Jul 2020 06:05:37 +0200 X-MC-Unique: 6JgZMNkjM7Wal8lEDklPCg-2 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fNrnufnXbwg/mxLYkSO35dqOmLVuHhQXgyFjW/SnXyByUzJ9kc7hHxHRUog52Mdy/TFP3jKqg/2iDAQCVdTxRYL93UyHZLhWLLDJYn8o2owcKqUnHHmiSJtBDgFn6bctPSPPleH+6q7jxKmq7jByxJfIjNoVMOSPRBFxbfsE5TkwbX5oWVfpDR/F/izVwl0J0O8yT+J/Cv+A+zDjFFVapUm00cur7jhOqA+N3Q4EpmLCrHHli6kpVulp+7wDcbaEn8AzuhbTkrgSUMd1k94P+S5jRYzWqd06xwFCK+J17MWeaQCSHMFauoKho2KqTBK8omcax1VaKpfwexzRhkpjcg== 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=QCClnFTVRrGhgzhc3Ltz2qVaJ68GHSHwW048y3MrNJ4=; b=DPis4deIStrfUyezOBHodkPRyxz+Ek9+7O5ORqb+2z2P1VHlnES427sGVClm4CiJH1A1IW/zJ23NcR7lcgSRROO0TCHr/jIFzim3H3tiCgHWb/BoY70pA9Tj/Amqj2OWAytICeisYJvy7qK2m+DUVzK1STZZgbVN1smCsNTXq1rVKH/TlM8ajdDD7J/xy4LMcPT+nV2Zj4MlgrcV9zxs64sW7HGt6T6eMEKFcs/gSOIVT/QMrzgWYXjJyg0jveTTOcdNewfMn/RkDHv2hJmN2Z7hdq/yoxAKY1LIziNBQzPdzfyzrS4JpBc7FbO3XqZaMDAJiEzWa8IWsgOmfjQipg== 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 AM0PR04MB4481.eurprd04.prod.outlook.com (2603:10a6:208:70::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3131.21; Wed, 1 Jul 2020 04:05:36 +0000 X-Received: from AM0PR0402MB3809.eurprd04.prod.outlook.com ([fe80::8806:715f:1409:8c6b]) by AM0PR0402MB3809.eurprd04.prod.outlook.com ([fe80::8806:715f:1409:8c6b%7]) with mapi id 15.20.3153.021; Wed, 1 Jul 2020 04:05:36 +0000 From: "Gary Lin" To: devel@edk2.groups.io Cc: Jordan Justen , Laszlo Ersek , Ard Biesheuvel Subject: [edk2-devel] [PATCH 03/11] OvmfPkg/LsiScsiDxe: Report the name of the driver Date: Wed, 1 Jul 2020 12:04:40 +0800 Message-Id: <20200701040448.14871-4-glin@suse.com> In-Reply-To: <20200701040448.14871-1-glin@suse.com> References: <20200701040448.14871-1-glin@suse.com> X-ClientProxiedBy: AM0PR10CA0047.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:150::27) 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 AM0PR10CA0047.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:150::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.21 via Frontend Transport; Wed, 1 Jul 2020 04:05:34 +0000 X-Originating-IP: [60.251.47.115] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b51e731a-e8a8-4b3f-1c70-08d81d7401cc X-MS-TrafficTypeDiagnostic: AM0PR04MB4481: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:4502; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info: oR3f5oq+qmm37Z2DDGH9M8JZtq/E5uOFENgaHpTZN3tteZd3ub7ZtaK8JFBo2KMpsUPiyhFFQShwW1kSPCUsNsQDVztQYBOAqVeaZhIqauxjiu9s+FH0AEpH3idvQiRZ096VSg2lBPWS2IWjNAUnGJxoOM3R3CFDmu47e8lYlyR748oiAypwgc88ojlXqPFl1ORy30F3Cmx7mEL/f3MoG9iLhX7cBRu2wKgltjajLN6R7Y/unlKfWf7WZDeq/OO6Um/6L/kU5G4KzbZ57uSGURRmc9VlQb9+dcB6NDBWDmNYsMEZ2hxlIzl2ddOrIf2C6m/HTXWghLo7VVFwnOnvhw== X-MS-Exchange-AntiSpam-MessageData: g0Ym1j8D/+BslGLNTfnNP0plCJ6N5Z7zT8370iomW1eIaI4K5AhmfIKVK7RuqTE0giD8Bxun7lAkoWm4fvZqaS3ihdtHv94eIG1e5xqL2tvvqGi5JiIZebEFQ2p3H3Pb3F1vcjcLOQyX7bNpK+MGqYRloWWYymjQXR2pEAJMPbnJznKThevwWWnpoPCcDziLzqdeZ8Zxr8OeJbDZkqGLMPzrudE9cFBQhzY2vXa+JMINo7moM0Q8mHcYHxZ88ugR16J+ekIq0H8bhEb4YAVWgMaANFD4toeo9Cm+aHnOeoQ/xGRJSpqAxBqiDFWO/P+p/gqy5h4jNPGu7e96MVYaAbBZJKOuX7F326VGYuIt5DNKr3mgKFmZDNlu94u9x55VOeZryJ8/OpySAVQApxDIRQMa+/UpI8657DjTqZxSdUH6xhy4N0dGwylFGo6FpH0pzIjWJdRxzX4FupcKSN2hmJYvw1+dt9OP7YxxVzyREmk= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: b51e731a-e8a8-4b3f-1c70-08d81d7401cc X-MS-Exchange-CrossTenant-AuthSource: AM0PR0402MB3809.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jul 2020 04:05:36.0138 (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: apwzZsDDtXlnjOUM2NJUnJEkCmjq9NHgiGQVi97J6MHz41n634IVmCKbvkL7bBcN X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB4481 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: B64jQcVODePas7NTs2oCpYRTx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1593576341; bh=fJ+QjnJmXssDptsy+xsT7s8LGBawOW9AaY4xpcKIgo8=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=bYuHedJTqno2OQxeeU317XLBCmyf31WEFXwOQ/THeORHTPm3+3ntR6RHjz4ENWopO6J BmiFiwxqzENTUwietcsE8e/veFOhoz2d/iRWyZZNceRa1vwB7wFN95gESuNbjRZglcNN9 ibWcwHcPo1561iC3W+2oan8e9lM5V7eGtG8= 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 17738442fd5f..00db9ada12d2 100644 --- a/OvmfPkg/LsiScsiDxe/LsiScsi.h +++ b/OvmfPkg/LsiScsiDxe/LsiScsi.h @@ -47,4 +47,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 (#61903): https://edk2.groups.io/g/devel/message/61903 Mute This Topic: https://groups.io/mt/75228759/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 Sun Apr 28 20:20:45 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+61904+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+61904+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 1593576343207792.2830475075734; Tue, 30 Jun 2020 21:05:43 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id LvJ0YY1788612x0owPnUh986; Tue, 30 Jun 2020 21:05:42 -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.14124.1593576342184411896 for ; Tue, 30 Jun 2020 21:05:42 -0700 X-Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-am5eur02lp2054.outbound.protection.outlook.com [104.47.4.54]) (Using TLS) by relay.mimecast.com with ESMTP id de-mta-28-xvm8h0KJM5qR7LpRKYFFWA-3; Wed, 01 Jul 2020 06:05:38 +0200 X-MC-Unique: xvm8h0KJM5qR7LpRKYFFWA-3 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YhSl7hmuInQxB7BrGW9uHMIgAWI+rSdCsMEn2+OBABF5aLPCbU0QLIMQ9TNTN3XI/6nhPkgGMKWLU1hbf0zrkAKMDpWqDMdzz2DuX+Ki0Xc6F70dMZPkxLydyDFhIyfr2sJvRguBjxWb+d83+QXr++sRXSozPfQQhsaY+geVGA/A612PV0I+e+A4ODTZA1LpUvx2QoO1iRWH4hGYyiVXDuPJylfLEIOPhx5Bga1tpnQ9jSspuajEmJeurWhU0cz+51R2PmISDGm0/ZrvNg8EnOWCuZlYoaGfQ3p2qwwqPvAAR4qe1kbJg/duzbz47M1eeenWorQTomiLtNdMIp+DQw== 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=CUaqJ3w/gVejBoeaw3bpzs7aLzKi2fyj6NtnBF+F+jQ=; b=X3Dq37VvYdcTyBOCHOiFWedCCmHEUfV6WXXjfaNN2/3C+qoTejfd48Ddnu1xCjUr33QpJ/z304XeArksS8I2EyYFDyYws1soTdgZvyuYDdromp1ILxepMS/AuvGk2U78hx2ve30fqUX0jj9NTPiqtOh1NTcnA/3GwQXQ3s1wl+guiAAtsV9zEgtv55SqBVnrXC7oGBV1YpzFeT78kTYOku8Qqw8h3+99c+CHK1QLVux3WyckcO78k7loPp0DOo4xwQIuhUazEB9RrxvQk4TVn0dlkVx6FCp7jBIkCVezGI8cUc/+OWI4luQkZ3XqyT1OaJvgvSYGoRndsnUz/FBwgw== 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 AM0PR04MB4481.eurprd04.prod.outlook.com (2603:10a6:208:70::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3131.21; Wed, 1 Jul 2020 04:05:38 +0000 X-Received: from AM0PR0402MB3809.eurprd04.prod.outlook.com ([fe80::8806:715f:1409:8c6b]) by AM0PR0402MB3809.eurprd04.prod.outlook.com ([fe80::8806:715f:1409:8c6b%7]) with mapi id 15.20.3153.021; Wed, 1 Jul 2020 04:05:37 +0000 From: "Gary Lin" To: devel@edk2.groups.io Cc: Jordan Justen , Laszlo Ersek , Ard Biesheuvel Subject: [edk2-devel] [PATCH 04/11] OvmfPkg/LsiScsiDxe: Probe PCI devices and look for LsiScsi Date: Wed, 1 Jul 2020 12:04:41 +0800 Message-Id: <20200701040448.14871-5-glin@suse.com> In-Reply-To: <20200701040448.14871-1-glin@suse.com> References: <20200701040448.14871-1-glin@suse.com> X-ClientProxiedBy: AM0PR10CA0047.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:150::27) 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 AM0PR10CA0047.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:150::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.21 via Frontend Transport; Wed, 1 Jul 2020 04:05:36 +0000 X-Originating-IP: [60.251.47.115] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 290983d1-7c80-4eb6-92bf-08d81d7402f4 X-MS-TrafficTypeDiagnostic: AM0PR04MB4481: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:3631; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info: ItVf5RYLuEnvQcBhnoW29u/twXWytiQybR6zalzK4MbXtfJQa8SoEGzQIhmZDUlOWvQEur7mDSRzZ0aWWDomu3e/0YzQ4eOX+lHEqX7BfO8NrJOoTuAbxxivMP3OEALKz3dxJasgLWpAUHJn8jk+BBZaev0OuifAvNis+l43pqtQPa/XfG1D6j9KJ9KoHSLjLdFSL8rLNVerfJ0Iz2X7b+xfbXg21gnUaC+0a+fHbn9+Sf+ovIYGtsmNAHjyvXAd0YLTYfBr45awfFtcWgTBpU8ebLZZ8jLCLQkiL2MwSJ7Kryaq7LxHwbpgOeQw3YstaVVMYQh/xsSMBrTY2M07Mw== X-MS-Exchange-AntiSpam-MessageData: frs3nO/TjomchDgBvOVtYr66jH+w5GRHGR1TbK03DSqLaH503DYf2TAyWd0UCEYWMaRgi57ASrv9JfNzKFh+d/BSb4gXZS3lhALKTJGez4eB2MR5fxIiVONM4223XTCbdUhgFlZayqRAHlHq+68hEVSReoiBDQFVnQMmNSlWmtzk+McTNZteRy3vS0sPa1TnJXyJHlz90fcBBXl8eXhr3+7jKQu4LT+OU0xfpUohMD7kIEgWfhbbW5Qk38E5YcwdxDcS1LN16R9vWm4RpcWK/dB3syoSf2t7iIb0lmQoT3hhotYYVRsFXRVly09RiV5E8DruWlW3iVyH3eA3dAAM20/E9q8yqyIWjLtzuvBKUCCehpZ3L8LcfSnSAoYMqJlK3kee5JTWA10hvsS9lJXKfv/6mb+KenS5dWKQzzgkZ8ai1vyVATPGiqlaMqkENCDCx1rtbnfTYt/sH9iv8QGdr/5yIFcKPdi6dMccZ6x7O+o= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 290983d1-7c80-4eb6-92bf-08d81d7402f4 X-MS-Exchange-CrossTenant-AuthSource: AM0PR0402MB3809.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jul 2020 04:05:37.9367 (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: TwEAjGMUAVqFefmpinOAy7HMkxm2Fxikh+8DJJQZJ428JoEismgNaPBVkGH37LGb X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB4481 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: o4xFZJHrgl6vhbb3e4o2udv3x1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1593576342; bh=AZ+aFhew/FBjr6iis140SoJQk9lH6qpZK3ZT4G9+7iQ=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=saVlJ8crMNDPlv2rDp1gdKGA53RCezMFGaBEp9mX1EJPH6bKqbyqwFKb0NqD5ewNizO mYHBVZlf61y6GqrgBlH/FaLo49Sl11CjeFXPJeHPMxUmPa6wT4F2F7pw/aVskzOiRKg9H Pvk3217LCKOKO/wgX1rYE+81eKl2uKowshw= 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 444ceb78e9ca..e86c626a61aa 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 (#61904): https://edk2.groups.io/g/devel/message/61904 Mute This Topic: https://groups.io/mt/75228760/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 Sun Apr 28 20:20:45 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+61905+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+61905+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 1593576344466458.3748098017686; Tue, 30 Jun 2020 21:05:44 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id xpRMYY1788612xdIt9Nt6h28; Tue, 30 Jun 2020 21:05: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.web10.14126.1593576343177488099 for ; Tue, 30 Jun 2020 21:05:43 -0700 X-Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-am5eur02lp2054.outbound.protection.outlook.com [104.47.4.54]) (Using TLS) by relay.mimecast.com with ESMTP id de-mta-28-IfCPIfVwOK28mhrY-vORYw-4; Wed, 01 Jul 2020 06:05:40 +0200 X-MC-Unique: IfCPIfVwOK28mhrY-vORYw-4 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dpv9M7l37299nm8wWP5R5/VDwPc6vdEgSeIHAcMJ53YeXtggGDgfGRsZLsh9plJpPoDtpAKWfJYG06eSYq11GLDPA88n3geMYPUJ5yYilI5wT2083pOe5Zdrny9gb5nD3gkNMwq1p8GjWuS366K42i/t4OQdKzdb4vAE8UNUY9Fg39t0z6nIiV8aU/Kq7J2scgZ3rKrlNntrX99erTxVW7KU+4GvPiZVFEEFXWeZepanXLKHEJynow1IHgfylMPtXQx+hfCQpnDFJ7/tVtvfvbQDFDdS19gYSZ09apiiKlZN0n5AoijrFtaT+YaAnBJ3AFCEkpNmd9cYg0n+2Xwp9g== 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=ANF5I55jNeO2v0y2oHj1iJClQUyweqWzkROz8RhOToQ=; b=lm/NLDYQpEbVh7s3vWLaxA9QptEwzKR2h4Ba1o329ilpHdE29Vz4dxHiok3+z5a8dEy7BLpKvp6ss4ddDN58WMO8bQxIOi8kMbFZCQ26apudYCin817egN6nM/rniymQCPswgYkhhzHR7XeehwhUQMcFP/0jKh8ZPEcrmTkrGbhJw4spoK5v6kPRN271GZ9EXyatmko169DwvTNcRue+b3+Qrf9J19HmJJP/R4qouZ2XJaTaUEgY0u4dZ7PTnXmB/sJqkPfm0vayr19BYiW/iV3ruvnpNK24leX3u/D+OUHSepPfK71NWcc6bWuEMNFCdDFW6ZYMHcRVNicqowrIQQ== 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 AM0PR04MB4481.eurprd04.prod.outlook.com (2603:10a6:208:70::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3131.21; Wed, 1 Jul 2020 04:05:40 +0000 X-Received: from AM0PR0402MB3809.eurprd04.prod.outlook.com ([fe80::8806:715f:1409:8c6b]) by AM0PR0402MB3809.eurprd04.prod.outlook.com ([fe80::8806:715f:1409:8c6b%7]) with mapi id 15.20.3153.021; Wed, 1 Jul 2020 04:05:39 +0000 From: "Gary Lin" To: devel@edk2.groups.io Cc: Jordan Justen , Laszlo Ersek , Ard Biesheuvel Subject: [edk2-devel] [PATCH 05/11] OvmfPkg/LsiScsiDxe: Install stubbed EXT_SCSI_PASS_THRU Date: Wed, 1 Jul 2020 12:04:42 +0800 Message-Id: <20200701040448.14871-6-glin@suse.com> In-Reply-To: <20200701040448.14871-1-glin@suse.com> References: <20200701040448.14871-1-glin@suse.com> X-ClientProxiedBy: AM0PR10CA0047.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:150::27) 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 AM0PR10CA0047.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:150::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.21 via Frontend Transport; Wed, 1 Jul 2020 04:05:38 +0000 X-Originating-IP: [60.251.47.115] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: bd96ed7a-4ee7-4e04-4a58-08d81d74041a X-MS-TrafficTypeDiagnostic: AM0PR04MB4481: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:5797; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info: HepftTzYiLQlgdHbNzCv90l7R0UQXIF/07b5NoAwFIMZWmepWyQxqM1Sl8Pm6xMmCiRoZTW7pT5fGzx9Xu7CxygBg5UY23c4E9qZw6bWI7W+tLaz7rZfnAPucxlNSww6OWy+HiPPTER1yvJLrhnbXvuTBmgtjHFP9hlYUAAQQhEk57TsTTC29HrhfdKYhOsGjlzyEoWSsWH1d2u8qkJpqr8dlwEHfzFoZMevy+EFWavwoZUyOLpPEMtlQ5E2UgGP6jlL7MjgEAqpYbIgFXXGMLOhIDQnNHpL2A5PpsXMEh1wLXOdkoUJ6t7uyX8dqkc8D12Svv20rQKGzZZgUZIRug== X-MS-Exchange-AntiSpam-MessageData: b1SVse+/uKT1A83wGZAL1GeOSDlUmDLxMGQ59C8nhIPHjD7EBibs/mOAO8cUDDlNvbuuDmZW/9P4Px1JtwgT74AsMpwiaXUJZzoYd5aLlexm7aFk8msZxCXH7VNHre+7yKHZSd+MAMcRP73xrosv1oZhYjx7xTTsmJB1CobknT97leYkv+XOPF+qOEIotzGNdqDoCaNQ7NQ1EsU0D+vXWbyQXc0EItLxF4dCKYUrknkSj2lfEaE0CrM2RNlfUr6SyGS0OismF/YLH6q1Ge+dTuGhUj4e1DtrDMsKrWZvXx1hI+faq/e7PdgztdON+MUttTav5mG3JK4lPiSzpvswnpLu7Sdy5cqnE9/s/prTqSw25bdDhS3al5/rH0RtlmUp8aLSrte2AEiXT28WokTRt3c4Ba7Uiq/xCVVlxjXrhizmRLtscMBazNICKM/sfv/5ouWH+RWiZeBPH8uvPtHjrvxZ6a6u1oOYGE2RS0Z5kY0= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: bd96ed7a-4ee7-4e04-4a58-08d81d74041a X-MS-Exchange-CrossTenant-AuthSource: AM0PR0402MB3809.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jul 2020 04:05:39.8786 (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: y1JgZmzyUC0hCXf7APl5ougTBTosoDKyvVnWgRKlCTD7rxkO8nZW5kZkGSVh1/FI X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB4481 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: PRnHAO3Z5kZ0u5jBq6shW1Ufx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1593576344; bh=SO5jRPRtA+wweX06/cCWEax+0YfO09C6YKuXVq8lxTQ=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=nd0oJ2LI6ztlcBcnOs3XWtEBpPhmD1cshVgwGWVbla3vNIzbi7oKDsZj7uIw5svEMcT +Yff8LyIXT1sfBLYSSoQQua+mvHF5JhWM7jdcVNjGvO2doTyGuwC6NCrD1lNJmMRrcSYs FTeTWGB/vudNi2k5FPXL6H/fb5jzL/6sFXU= 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. Cc: Jordan Justen Cc: Laszlo Ersek Cc: Ard Biesheuvel Signed-off-by: Gary Lin Reviewed-by: Laszlo Ersek --- OvmfPkg/LsiScsiDxe/LsiScsi.c | 171 +++++++++++++++++++++++++++++- OvmfPkg/LsiScsiDxe/LsiScsi.h | 77 ++++++++++++++ OvmfPkg/LsiScsiDxe/LsiScsiDxe.inf | 3 + 3 files changed, 250 insertions(+), 1 deletion(-) diff --git a/OvmfPkg/LsiScsiDxe/LsiScsi.c b/OvmfPkg/LsiScsiDxe/LsiScsi.c index 5bca85bd75eb..f633c6793298 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,43 @@ 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; + } + + gBS->CloseProtocol ( + ControllerHandle, + &gEfiPciIoProtocolGuid, + This->DriverBindingHandle, + ControllerHandle + ); + + FreePool (Dev); + + return Status; } =20 // diff --git a/OvmfPkg/LsiScsiDxe/LsiScsi.h b/OvmfPkg/LsiScsiDxe/LsiScsi.h index 00db9ada12d2..fca1007f9b98 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. @@ -48,6 +59,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 e86c626a61aa..8660513e2ffd 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 (#61905): https://edk2.groups.io/g/devel/message/61905 Mute This Topic: https://groups.io/mt/75228762/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 Sun Apr 28 20:20:45 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+61906+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+61906+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 1593576347933359.4018146108864; Tue, 30 Jun 2020 21:05:47 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id kybnYY1788612x8TtAqMqH1e; Tue, 30 Jun 2020 21:05:47 -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.14078.1593576346464702525 for ; Tue, 30 Jun 2020 21:05:46 -0700 X-Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-am5eur02lp2058.outbound.protection.outlook.com [104.47.4.58]) (Using TLS) by relay.mimecast.com with ESMTP id de-mta-27-zHoeg4-zPU6PRNHRxuyaYA-1; Wed, 01 Jul 2020 06:05:42 +0200 X-MC-Unique: zHoeg4-zPU6PRNHRxuyaYA-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dpc2OvjSxJgNyXhc3EPfnk3+lCWrIKG247uK/Q7tdr5tBXaso9a7w73elQBF/fpRnVN/Y5FZXgCo/dspBkGsED6bbXzxLN3SWob/i8aRpWkcgbgn+jaCiUr1ZMjjWQdyWpLsquubZUfFBE4n4XAvkSuliUYENcUNpU0UhWtlCTzNhsQM6seqoaQPHoNigJVbOf0uexFD5yPkXE7nVa84vFLzOOHplaAbOEbTZG8Y82Ur0OFZA7eB4cHtleJK+6AwyeDOCybCG1MowOPqwTDMlOUkFAaKn2hcJdEwVV49JpogzeUhIrxnz4qkVt+TF/1QMHqz3RiXiaFCKRHz13m+Cg== 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=e0CYp4Il9hxFSVkxPGyyUaCXq+CIwtFzyGkKhCImZQQ=; b=R9p0czqpekj1xDk+f9EoVw6Y+10zmSyu4nbJjolPJbZQHUxeCSibtXMHh9rVL3+mDgiVrhqnmDSNnu3PodnuiU/gLbIh3d+GNJM8vD/a3RPWD3YKfuVCNwY7XK/PKUaIMlbeGwH2Orek8z9889GCVJyJ/ebsq7xcBKTtssMoOCTYV3eK1yO4jsDOfXkvcKBbHEMPNsfWiYbFFBTjVkQ6dVwGUc6uhOjd0GYqcdKh91rvY0M62selprK46IvVjqs2CuDLE3x+TEml+lCg3FTHVn7c9MUa9941GYqpaKdJb/IU3sQoGGPFhtauQwBaAVCPiS6mNtfsKakry4O/7D8R6A== 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 AM0PR04MB4481.eurprd04.prod.outlook.com (2603:10a6:208:70::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3131.21; Wed, 1 Jul 2020 04:05:41 +0000 X-Received: from AM0PR0402MB3809.eurprd04.prod.outlook.com ([fe80::8806:715f:1409:8c6b]) by AM0PR0402MB3809.eurprd04.prod.outlook.com ([fe80::8806:715f:1409:8c6b%7]) with mapi id 15.20.3153.021; Wed, 1 Jul 2020 04:05:41 +0000 From: "Gary Lin" To: devel@edk2.groups.io Cc: Jordan Justen , Laszlo Ersek , Ard Biesheuvel Subject: [edk2-devel] [PATCH 06/11] OvmfPkg/LsiScsiDxe: Report Targets and LUNs Date: Wed, 1 Jul 2020 12:04:43 +0800 Message-Id: <20200701040448.14871-7-glin@suse.com> In-Reply-To: <20200701040448.14871-1-glin@suse.com> References: <20200701040448.14871-1-glin@suse.com> X-ClientProxiedBy: AM0PR10CA0047.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:150::27) 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 AM0PR10CA0047.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:150::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.21 via Frontend Transport; Wed, 1 Jul 2020 04:05:40 +0000 X-Originating-IP: [60.251.47.115] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 3dbf4084-9611-4fed-2d7a-08d81d74053e X-MS-TrafficTypeDiagnostic: AM0PR04MB4481: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:758; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info: jEKal5BOjWH6Rug++sHSDfxU53Eex8IZWj1bB9su4bBfeMTfXsCRD5V47z8ta9GbsL3nLzD9Di5ak2CbqDBf5usBJF7XeqtopBBLF66sK9nprEnfcyLyojaTSBlsNBP4IoB+/ULXswAEEM6Tso9PslyazmggLYSjY72u52xkq2KrRvO/jK8RbWDE1fJYRzUrGiwND9PeNPamqwAV9M9U0f4QQgqO0nS3Sq/utdOkCUSDNB9URjVprOzPACcYXV11Ej84GVcu5FzyGNU6yuzxiuZgiZ7VYJFWY0fKNRM9vhHdT9hTBV2leXNYzFosvpZsPPucDNNd1M2znv00m8KmSg== X-MS-Exchange-AntiSpam-MessageData: 3+Ww4koPxg4qybpjJy2Zm/B0AVhOfDqbYGgbgpkyV1jX0gNhr0CKnffTkmpmHFssefrPcyQK2ZNCxb5ojkbjzXIlrLJAgGoYxvbFwyB9fVBX5GkRTqFgrnwzExiCtDxGw8t1GzhE3f/yso1RAj1mYWgDoLCZzJp/jVjUdgkkGv2wu8Ipa8n5nDn/vSBXj4k1cCDYDtTJwvodvByWnsiCf87HkXDAgfakGO5uS+gqy6LL4A+3Rob3taorM6jmujR7OOOZ4zuLchqtYQb9MWn0yn1fsXO2ZoRNDPOYu7KjLEUw89+R2h2lyEaXgyTGlFu81503CUYj0KSFVl/1WsW7XwBABn/ej9R2DTrROPWlYPuaCDLHAFGGL+Gv2EKZx73OSUEJ5uaGeVHcy2uKuk4qsUkUsX3TExzl63YSbo2McoQ3ZAosu5hNkScaVxKfnqbgW1sdigJqiIqdo3ek2VBWbA/dQAbK+IuGj1q53M4H+Ns= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3dbf4084-9611-4fed-2d7a-08d81d74053e X-MS-Exchange-CrossTenant-AuthSource: AM0PR0402MB3809.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jul 2020 04:05:41.7746 (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: sytUyCmb6KOwUL2NtKNDZHVEM9cYIw425vlSQmykQBhYXMVWDk0aq+fF4WoYQoKo X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB4481 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: 3C4RmfCagzQtQsml0u0Puniax1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1593576347; bh=tDJZdVnK5DuJddPoDIGiWLX8WdqPFs9D5mIi/6lMKpw=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=SRQcw4SehaChwQBtUghCxen75TEfzh68pkFFJrz7uH6Uc8r6qO78Re0Ej8iUvt7s3/H V/mARAUwVHmmOB6MOwty0IyKJIBBqUsE8RyrMdmpYWZ/3Wal0fezocoi7ZM8/h8RDSdXO iM82QJTN7ZEXk96+1zXqAkZCeRaDkJ3qc1w= 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. Cc: Jordan Justen Cc: Laszlo Ersek Cc: Ard Biesheuvel Signed-off-by: Gary Lin --- OvmfPkg/LsiScsiDxe/LsiScsi.c | 143 +++++++++++++++++++++++++++++- OvmfPkg/LsiScsiDxe/LsiScsi.h | 3 + OvmfPkg/LsiScsiDxe/LsiScsiDxe.inf | 6 ++ OvmfPkg/OvmfPkg.dec | 5 ++ 4 files changed, 155 insertions(+), 2 deletions(-) diff --git a/OvmfPkg/LsiScsiDxe/LsiScsi.c b/OvmfPkg/LsiScsiDxe/LsiScsi.c index f633c6793298..e10a81a5f9f7 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,36 @@ 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; + } + + // + // This device support 8 targets only, so it's enough to set the LSB + // of Target. + // + Target =3D *TargetPointer; + *Target =3D (UINT8)ScsiDevicePath->Pun; + *Lun =3D ScsiDevicePath->Lun; + + return EFI_SUCCESS; } =20 EFI_STATUS @@ -107,6 +207,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 +325,9 @@ LsiScsiControllerStart ( =20 Dev->Signature =3D LSI_SCSI_DEV_SIGNATURE; =20 + 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 fca1007f9b98..a3d51d8f2386 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 8660513e2ffd..68844c6772e3 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 65bb2bb0eb4c..ae7d1d648d22 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|0x40 =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 (#61906): https://edk2.groups.io/g/devel/message/61906 Mute This Topic: https://groups.io/mt/75228763/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 Sun Apr 28 20:20:45 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+61907+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+61907+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 1593576348591771.8150308749854; Tue, 30 Jun 2020 21:05:48 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id hO0tYY1788612xj1Ma1HGdoE; Tue, 30 Jun 2020 21:05:48 -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.web12.13910.1593576347376768326 for ; Tue, 30 Jun 2020 21:05:47 -0700 X-Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-am5eur02lp2050.outbound.protection.outlook.com [104.47.4.50]) (Using TLS) by relay.mimecast.com with ESMTP id de-mta-27-QWBQyyT6OaOIXDjBfpzAug-1; Wed, 01 Jul 2020 06:05:44 +0200 X-MC-Unique: QWBQyyT6OaOIXDjBfpzAug-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cMi0ru1oaJ2muBj0Pa6/BQ5XWm5yUSGouGuEhAgTZ7o3Blp4Rh8oPxGlH8mZDCB6HY/l7PFB+26xozQ9v/3LzpG1A1cpdXHGa84AESPzy6dwoz8CkmGIqD/5Ka2KIluKAsaUkFa94QG1F15ylkBRjTGYI4FFmf2ElUNQrx2AnV3o+t2qjxPcLKBA9eLxZ/Ypv6HtvjrA8DxPyEyfmIpfFBJvr3yJ7dsBmqaNO8g05L2EZHxfYgthuoZ//YGsI9/aF6yU0sfuilbAeiJhk8YPD1m+Rkas/ybr+T3ax7DfcSV6SE6O/XoG0ThKtKLOFQP746dSIJ5OqepaN2baV8QVig== 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=qIYbEn4mGIdaV1ckz2lk4qmFvEpUHwrI3BXcRn2wKd0=; b=FXhw2fNz0WXEREK9Uq+V8dRJIXHOoktK1e1e2nvjiDiQvos87KzhKqeJFi9JLFadruRgg37AE/awUYdejoCRRObh6U/9TGgtR/zWFQGAFYkE/CHi252L9otxXeh+4VEtv/C+u7G3cmG66pmOHHU25aG8ZnvXnYwZkGq14u01WItISSiN7rRyxML8vpQ1pX4SkCCkWnnn5+FLGC9pZwrnzjUitZKup1C0W+QbgdELrfSwcM7CoSwTwtJDdVXHkxPtcSdrMrTfnnFYY1Ih/9xSNBivQOG/L5m2hZ3IRMHp1bwQz3q8yPJgc0Zj6y2BP8yv2E/b2enxTXRQk2c5wRgITQ== 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 AM0PR04MB4481.eurprd04.prod.outlook.com (2603:10a6:208:70::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3131.21; Wed, 1 Jul 2020 04:05:43 +0000 X-Received: from AM0PR0402MB3809.eurprd04.prod.outlook.com ([fe80::8806:715f:1409:8c6b]) by AM0PR0402MB3809.eurprd04.prod.outlook.com ([fe80::8806:715f:1409:8c6b%7]) with mapi id 15.20.3153.021; Wed, 1 Jul 2020 04:05:43 +0000 From: "Gary Lin" To: devel@edk2.groups.io Cc: Jordan Justen , Laszlo Ersek , Ard Biesheuvel Subject: [edk2-devel] [PATCH 07/11] OvmfPkg/LsiScsiDxe: Open PciIo protocol and initialize the device Date: Wed, 1 Jul 2020 12:04:44 +0800 Message-Id: <20200701040448.14871-8-glin@suse.com> In-Reply-To: <20200701040448.14871-1-glin@suse.com> References: <20200701040448.14871-1-glin@suse.com> X-ClientProxiedBy: AM0PR10CA0047.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:150::27) 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 AM0PR10CA0047.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:150::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.21 via Frontend Transport; Wed, 1 Jul 2020 04:05:42 +0000 X-Originating-IP: [60.251.47.115] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 8f76b4fd-dcdd-4509-334e-08d81d740664 X-MS-TrafficTypeDiagnostic: AM0PR04MB4481: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:5797; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info: ADKrf1pEKPYmYqKDmc6F+SLqN0GJyJigLX8H/9uFgDS8m3adcvNqJZlQZIrnoFjeJn9DHWhW8nvkGmpDqb6lvpH1+VvTM4fiWESnZlUdI61MkD0Gsycz0l1DatQx+/AFgeDaLnf8zFAvAKxRoDClSBBBecRHcgfsPK6VTUjAwtYjtJXRwG+TOo0IFpOkL20+nMOQzKO9mT2CMlinTZPRqHs/6Q6jIpeMUYyentiD4vb76XS0JK4ok6UvlIS8+BHCmMG/zrP0kjPlEwj7UuRywpT8qETNv7PCdUIRgYIcNkJbSMnd012EIpAZolJJVzb8cePqkgCxRlnfjCfwXtnq7A== X-MS-Exchange-AntiSpam-MessageData: hgRthlEPMU6Fm8gGa4o8HeOmmh0sKzWIMLACHH6MroBXhAyXchLfKoOG3nSrLok//glDhqz+qzCkYf13WRBGjRziZB+VIfppW1TfEacP2kCdE+v/NuTwvWOJvWr/hOlosKB+7drn2dHgFkrM/QLXfhKUkdlnM6PCl269CbXWhURvG0s9W8VnLuy6JgpEQ1ueewOU4912vC22BbIYxoQ7c9MC9MtCbHyysmwAdzpvZtKZAQKa+qLXJKBGym7NAb4NuVc+d24IrSLBrrIvZX4Sl/lIMy0KL9BvXJ/VOcQblSd4i6EJ9p6pXdjOkgWnvJwV7CRPF7nYGH2T5VtTqIDzmGVInZy+ngrlPMDl10FsliFtjaUwzlgxQGaQt3sUMnsM1tkxR5LhbSot5OnOcB1oh1kNnlIWCpWy6KsFg+J/wQsjPL5jFeIIxNT2s0lG0hRB3vxmou38ecq4GA0sAr39SM7d9MH2QqXXKG6R3sxlDgM= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8f76b4fd-dcdd-4509-334e-08d81d740664 X-MS-Exchange-CrossTenant-AuthSource: AM0PR0402MB3809.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jul 2020 04:05:43.7244 (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: 6M2eV7Qkwvl0ETC64RGufzOPmqF/B6nsINNZobeH/oV5PFJc80bN4lRDcfMrPauf X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB4481 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: 1FROsxnCgexGnP7DPTbEHZeKx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1593576348; bh=ZyPWEuK7WcYYpaHOTLliouDjBQ7kA+44WdOI0zmuoIk=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=P/+W+TyDBVXsnaZrANf9ZNSs8YeCsVs48X7K129g4OdaaUDarsLshfhUA2gmp+UNtaa u9az+pI5xqyMvIxl7mNmANvxWVbi0KZPjnAY/CVcEJ9mTaZKQxODPF1Adusjm9AaI/9ca 8/my7tBHY9fWYNJlhij0uirYXf0PdJaQ72E= 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. Cc: Jordan Justen Cc: Laszlo Ersek Cc: Ard Biesheuvel Signed-off-by: Gary Lin --- OvmfPkg/Include/IndustryStandard/LsiScsi.h | 21 ++++ OvmfPkg/LsiScsiDxe/LsiScsi.c | 129 ++++++++++++++++++++- OvmfPkg/LsiScsiDxe/LsiScsi.h | 3 + 3 files changed, 152 insertions(+), 1 deletion(-) diff --git a/OvmfPkg/Include/IndustryStandard/LsiScsi.h b/OvmfPkg/Include/I= ndustryStandard/LsiScsi.h index c09e864a1f39..60e527f1c6a7 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 0x01 +#define LSI_ISTAT0_SIP 0x02 +#define LSI_ISTAT0_INTF 0x04 +#define LSI_ISTAT0_CON 0x08 +#define LSI_ISTAT0_SEM 0x10 +#define LSI_ISTAT0_SIGP 0x20 +#define LSI_ISTAT0_SRST 0x40 +#define LSI_ISTAT0_ABRT 0x80 + #endif // _LSI_SCSI_H_ diff --git a/OvmfPkg/LsiScsiDxe/LsiScsi.c b/OvmfPkg/LsiScsiDxe/LsiScsi.c index e10a81a5f9f7..f03774cc4ced 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, @@ -246,6 +273,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. @@ -328,6 +370,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 // @@ -352,11 +446,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 @@ -399,6 +515,17 @@ LsiScsiControllerStop ( return Status; } =20 + gBS->CloseEvent (Dev->ExitBoot); + + LsiScsiReset (Dev); + + Dev->PciIo->Attributes ( + Dev->PciIo, + EfiPciIoAttributeOperationSet, + Dev->OrigPciAttrs, + NULL + ); + gBS->CloseProtocol ( ControllerHandle, &gEfiPciIoProtocolGuid, diff --git a/OvmfPkg/LsiScsiDxe/LsiScsi.h b/OvmfPkg/LsiScsiDxe/LsiScsi.h index a3d51d8f2386..ffaee6188536 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 (#61907): https://edk2.groups.io/g/devel/message/61907 Mute This Topic: https://groups.io/mt/75228765/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 Sun Apr 28 20:20:45 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+61908+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+61908+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 1593576350745840.4722015985822; Tue, 30 Jun 2020 21:05:50 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id 1TsSYY1788612xGvUdsvjgGO; Tue, 30 Jun 2020 21:05:50 -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.web12.13913.1593576349151336719 for ; Tue, 30 Jun 2020 21:05:49 -0700 X-Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-am5eur02lp2057.outbound.protection.outlook.com [104.47.4.57]) (Using TLS) by relay.mimecast.com with ESMTP id de-mta-27-5EcIry6iMgWOmjQLpcUv6A-1; Wed, 01 Jul 2020 06:05:46 +0200 X-MC-Unique: 5EcIry6iMgWOmjQLpcUv6A-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dBIH/S7jAAC4b6lAM5IIdJtofmh+AHNRYsr3wlad3LYOSciXx9GemRI89QWPsE52RqW5pZZuczIj+oQo1APfHKILdrGWkMGdZLx0yLllr8dDGNFGX+kAi5WJeDq3MCA8PneG+NnLGTxQKZwPGvd2y1VspertLh2frHKXtrdD2R9pMAra2O6JjkITiB0t32vGx1fLkfxYcBCVilARPsPCwVqeTHpmjFNPGcbj00V0xkH9J+vRCUm1tQS1zHyc5MgW01yY/rb/KEUkv6hV5XLhwcb34kl54vcnq6FdOzwYK/bMC5scFtyX1Pl37Xl7ON8yIIygliUi187klg/u1lF01Q== 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=/SrpwCV4WUWvTzh16RjSmO716kNgGxxlaowtiT01QL4=; b=fcrlcjkXRjptLU5fn0yeFndFSmAusYFRbX53/Dr3oaJlUU7l3Z2Om78vyYXPbt/0fQ31EI2tA0scgdkJLbFwr+eBTXfAYM6K+sgCXcSLR64mua7HUJj+ncrPTWcP3hiBxSm8YT325shNDJEiFJhvtXkQvSypuhR67dwG9p/7zbyBN6x4OIC1hFF2zbJioJrdiorSr6+EjYeueVg4qo86dbkUXXxnQ+c5JMuTz+XwgELw0KADjDnue8OuAG9wF+aWHr5Eysav1GeCBRrI+LxR7M94ToreqZ4aooCm5I4OnZTz+2Q5Y6j5tyY8UDKWtWVBfKiCVWsJW+EP1a1XrQqOgw== 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 AM0PR04MB4481.eurprd04.prod.outlook.com (2603:10a6:208:70::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3131.21; Wed, 1 Jul 2020 04:05:45 +0000 X-Received: from AM0PR0402MB3809.eurprd04.prod.outlook.com ([fe80::8806:715f:1409:8c6b]) by AM0PR0402MB3809.eurprd04.prod.outlook.com ([fe80::8806:715f:1409:8c6b%7]) with mapi id 15.20.3153.021; Wed, 1 Jul 2020 04:05:45 +0000 From: "Gary Lin" To: devel@edk2.groups.io Cc: Jordan Justen , Laszlo Ersek , Ard Biesheuvel Subject: [edk2-devel] [PATCH 08/11] OvmfPkg/LsiScsiDxe: Map DMA buffer Date: Wed, 1 Jul 2020 12:04:45 +0800 Message-Id: <20200701040448.14871-9-glin@suse.com> In-Reply-To: <20200701040448.14871-1-glin@suse.com> References: <20200701040448.14871-1-glin@suse.com> X-ClientProxiedBy: AM0PR10CA0047.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:150::27) 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 AM0PR10CA0047.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:150::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.21 via Frontend Transport; Wed, 1 Jul 2020 04:05:44 +0000 X-Originating-IP: [60.251.47.115] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 8dc2290e-4a6f-4fac-826e-08d81d74078c X-MS-TrafficTypeDiagnostic: AM0PR04MB4481: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:7691; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info: Lwd7/Byc6OyfnL9Q6DTi+/Adgwc6KeH+i18hzUnJ0OMstxZICnLC6edD9EdKGjsTWv3Hyt0oi5FXFsDEC6sSbJCYqM1OuitOgJnqzxONcJinmOuJZhx/cdRGbhl8WtnWkRo9e83iARgpRrwkcg2EUPhyj8yY+obmGf92JapqZlfSiV9RdPLkpWGXEeu4vlbKt71gfjHBhYBlm8LYMQKB8lkatTn9oEfSfMz/kW3U2/+Xc3hmBi1LaSxKD7vYLk9zDWpkNKqbMgD6tXoO/6H50igSSW0/zQlAEAQgjPurvLzzQU6qX94h3pW/veHaZ10Xj5hJcSp9rlI6LL/xDnGNdw== X-MS-Exchange-AntiSpam-MessageData: 9xDxDDFOCjQYP+Cp4FIf5wQ1K+7VC3XZis8ctyQTAeY7uNYTda/4XtsBcwt7FsPMnjgjGPpMTNkPlXgu3Y3MfgfgzGwpRCu8/tbeNH8XKUUzVCa3Xx3mKTPOZZCwzqFJFyxAbcvXx6ANpXM5IXK4ORtGSKTQQWkCD5n9xd+RghCk2w2xsQPK+ScdyPY6W7FAjWRa0vC8olTmz3/6bgcQPKchBqEBme+HSp2nW2sidSbawJRvBaM+4sIvrKROgpGjAmQl1RvrzznrG77ioKDJZzlOZkIxUKWduPhe0JBDExftzCuB8vI2Rpm5mV6PtD3PpT4Czftzdiu0sl4wflqeoZREDAK3nuYwjJJrKfIoZomCX6rn4KctYIqU4ijdOeCrde6x3Yx7xxnLunrODBk3CtWcHExP2qCJkW9MNsAhV3bIJejQyEi+Fk+iRI/WgB/cmfjA+F+S92w4Zm4MqBTNYYLu02yky28PUG0ckCd3BMg= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8dc2290e-4a6f-4fac-826e-08d81d74078c X-MS-Exchange-CrossTenant-AuthSource: AM0PR0402MB3809.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jul 2020 04:05:45.6543 (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: cqcI3Z07WJqGfWJLdBtZyokmaUxkp9Fb/+BqKLVEW52YMEsIC/ogJnDgNy0Oe90c X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB4481 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: wZJK7yTH738XZf9PhTkwOHxdx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1593576350; bh=oBhW+tBkilIm+BIUcjpSHNH4wZF2t76AEuUiT8hqKuA=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=LFrut8GthCDC/tj0Tx0U4HP+cbAmrHHxFxF6T797S8h0fAnc5QF/X5va31R4mIaTQQh L3+8PcDzmlt/vC/EZWBZn5b4j7FyUjXHpMBfa2HoNSzTn+mqfMvklZtwqIIKy7YOX50KZ yMipZq3/kXKqw/2sUKSWOLzv883kKtL6b7k= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" Map DMA buffer and perpare for the implementation of LsiScsiPassThru(). Cc: Jordan Justen Cc: Laszlo Ersek Cc: Ard Biesheuvel Signed-off-by: Gary Lin Reviewed-by: Laszlo Ersek --- OvmfPkg/LsiScsiDxe/LsiScsi.c | 85 +++++++++++++++++++++++++++++++++++- OvmfPkg/LsiScsiDxe/LsiScsi.h | 10 +++++ 2 files changed, 94 insertions(+), 1 deletion(-) diff --git a/OvmfPkg/LsiScsiDxe/LsiScsi.c b/OvmfPkg/LsiScsiDxe/LsiScsi.c index f03774cc4ced..b728d18d51df 100644 --- a/OvmfPkg/LsiScsiDxe/LsiScsi.c +++ b/OvmfPkg/LsiScsiDxe/LsiScsi.c @@ -359,6 +359,8 @@ LsiScsiControllerStart ( { EFI_STATUS Status; LSI_SCSI_DEV *Dev; + UINTN Pages; + UINTN BytesMapped; =20 Dev =3D AllocateZeroPool (sizeof (*Dev)); if (Dev =3D=3D NULL) { @@ -406,11 +408,68 @@ LsiScsiControllerStart ( goto CloseProtocol; } =20 - Status =3D LsiScsiReset (Dev); + // + // Signal device supports 64-bit DMA addresses + // + Status =3D Dev->PciIo->Attributes ( + Dev->PciIo, + EfiPciIoAttributeOperationEnable, + EFI_PCI_IO_ATTRIBUTE_DUAL_ADDRESS_CYCLE, + NULL + ); + if (EFI_ERROR (Status)) { + // + // Warn user that device will only be using 32-bit DMA addresses. + // + // Note that this does not prevent the device/driver from working + // and therefore we only warn and continue as usual. + // + DEBUG (( + DEBUG_WARN, + "%a: failed to enable 64-bit DMA addresses\n", + __FUNCTION__ + )); + } + + // + // 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, @@ -457,6 +516,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, @@ -519,6 +591,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 ffaee6188536..1e4bbc56f933 100644 --- a/OvmfPkg/LsiScsiDxe/LsiScsi.h +++ b/OvmfPkg/LsiScsiDxe/LsiScsi.h @@ -12,6 +12,13 @@ #ifndef _LSI_SCSI_DXE_H_ #define _LSI_SCSI_DXE_H_ =20 +typedef struct { + // + // Allocate 64KB for read/write buffer. + // + UINT8 Data[0x10000]; +} LSI_SCSI_DMA_BUFFER; + typedef struct { UINT32 Signature; UINT64 OrigPciAttrs; @@ -19,6 +26,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 (#61908): https://edk2.groups.io/g/devel/message/61908 Mute This Topic: https://groups.io/mt/75228767/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 Sun Apr 28 20:20:45 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+61909+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+61909+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 1593576352104515.9442016094222; Tue, 30 Jun 2020 21:05:52 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id gSbLYY1788612xJEF0JZtqqK; Tue, 30 Jun 2020 21:05:51 -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.14081.1593576350827509902 for ; Tue, 30 Jun 2020 21:05:51 -0700 X-Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-am5eur02lp2053.outbound.protection.outlook.com [104.47.4.53]) (Using TLS) by relay.mimecast.com with ESMTP id de-mta-4-MLL0Bxg9MKe-A2ULweAfRw-1; Wed, 01 Jul 2020 06:05:48 +0200 X-MC-Unique: MLL0Bxg9MKe-A2ULweAfRw-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=blGO3jYf8upZ+YOONf63igT42k0hKwnabo5a7u9KZCDg7WCoA74IzyXa0CVn+NDtJ8Uyt8c6Sr7qGwZJeP93QMLvNviERf0PPi6lpIeEQ2WAFWDb827hiVGRPlu0ZxR/28J+GVuUl4bu7DEw7RswRMEUbmXDioEJ0Bg15OgaeMGA1SvUPg6JhnhVCfvOjOQ3RHe/GXWGiKwBXVLl+7DbzXZ7E6iQ3a1SQfEx280bpVqdfdoZLGqSjHGKdYSjvxTolIDlOpN1YOx/GmuTbJJwfNIc+e3jJmfFUbuTkvLYi/Z66/UUUr+WyCJhhsZM8QVTp6FbYqQXv+zUknduEgZHww== 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=Ek8htU3KuhCSMUiX0+IlAJ9pHgbL9+cCmvUZI3VsAGI=; b=Yw0ceE46H4cwIZ7a4SC8F80N6WkRbJEQ4f0fZMjH7E1Rao3x4ZOnu1um8LtLmIsTBBem5D4CasohK5M/slVmJX8BJe5vLgvA+Kqs+Hj3HiO1W4v6Ta3HT+KViwI5cb95x/01TqXJCwyHX190cXDXR0FTNPGQj8qE6nuHjherGPqiLE6n7JNwnFisSwT20UYFR5rxGiiNjAoIC4Q+i5x1bUY5j32LQTHiMjFte0TFPGmX0ZVnUOkB6CGJhXjtSHb/3Et+OwpVLplEMCgCg4zjakIzYTa3nFU3irCLmLRASnImJXBHDOm5+heLQC8Msgi/1a9/9tTqxJ6k9JwBfPDAJw== 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 AM0PR04MB4481.eurprd04.prod.outlook.com (2603:10a6:208:70::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3131.21; Wed, 1 Jul 2020 04:05:47 +0000 X-Received: from AM0PR0402MB3809.eurprd04.prod.outlook.com ([fe80::8806:715f:1409:8c6b]) by AM0PR0402MB3809.eurprd04.prod.outlook.com ([fe80::8806:715f:1409:8c6b%7]) with mapi id 15.20.3153.021; Wed, 1 Jul 2020 04:05:47 +0000 From: "Gary Lin" To: devel@edk2.groups.io Cc: Jordan Justen , Laszlo Ersek , Ard Biesheuvel Subject: [edk2-devel] [PATCH 09/11] OvmfPkg/LsiScsiDxe: Examine the incoming SCSI Request Packet Date: Wed, 1 Jul 2020 12:04:46 +0800 Message-Id: <20200701040448.14871-10-glin@suse.com> In-Reply-To: <20200701040448.14871-1-glin@suse.com> References: <20200701040448.14871-1-glin@suse.com> X-ClientProxiedBy: AM0PR10CA0047.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:150::27) 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 AM0PR10CA0047.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:150::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.21 via Frontend Transport; Wed, 1 Jul 2020 04:05:45 +0000 X-Originating-IP: [60.251.47.115] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: cd403d8c-d75c-4a0e-3e7e-08d81d7408b0 X-MS-TrafficTypeDiagnostic: AM0PR04MB4481: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info: aDm3PB+UQwSe5XCTMdRqVrXNqoJp1wLP3Hxur3tURyZvFJPPQey78Z0UEJPr76F3WdaM81fs3WFxWWpTWYPyxoCK7RajGG1zUKrKjHPDwPIG+hOiaXFUixCUSIBJ/0OPH1Vgtis0nzj0U8vdfFGKRV5JkGL3BYAxZ50mU68Gn+T8WFpuqY7xAL+y53n1N+PXAyEvRfbYOQpmLvJp+/2NtDu089G0O9Li70Qjv5iXpIfEBLpbM3AtIAinm9U2msqBKOXW5iI1C9nVpEuzIPh6i3TXgiqb5wixofuf2Tenif26wplNqfNIbwk5J8YIXZOechd0xMDHB3lXAOb2v9X9Kw== X-MS-Exchange-AntiSpam-MessageData: YJQMhN5ZumMnjTa1MYOf3B7SQ6wO0KwnuFasfOGRj3TKdODaKdiWAGQXZy/82K724VEiPnWBZqb7wGFupAGxdFq8yqCnAe5PJlgQeMRycFaPsAanNcJan1pd5chfC5Hs4MSNYNFunl8mScVic0GPJOpPbNclCDkX1xBWSePKZCOFPZmRD4PQyxekPDGB0LuIq0tYH3wFdO/L72qHUo60yXEu6/XHqpPl1qOwG9sT7Vpbfi74aqgGHlnk0xH4AU8QRq1TsW0SNpR6sLdOkV+fG0sKaSokL3NC4kQAC9XJZgMZw1SR14K8zYRpgAf8K5jiua2fb5May3/ThaCV0q/fDGQcqaXR6MG1t6k8kYxUgb0JqbE8f1CgmacrRDH5WXq/eXHogI4FDAT2F8rgWndcC4GRdMsULJ1zWz1fjLnFL/FDo9xIakgGsZiVKp3002CglCIUmBI5F6RRMqvtZC2FPdSfrka4viTIdTSkJLAZsBc= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: cd403d8c-d75c-4a0e-3e7e-08d81d7408b0 X-MS-Exchange-CrossTenant-AuthSource: AM0PR0402MB3809.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jul 2020 04:05:47.5533 (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: wTEDtHXjMjF6LXyycImRARqYmfhMQ/43wXYbZYQlNfyD0+MVXcGp+Fzf/aacNgF+ X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB4481 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: BwbIUjIlmICk47oNFZxBdw5ux1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1593576351; bh=OJ0jv0Eee/kO/iuIHCjlTGtaCXB3PXG01mE8fYSi/co=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=Aa2xh+NBaP1nWDxI9ombJ7/MsTLUFrLas9PcrNa8F0ZAv1gTvlNz1AWlvXJkojQR0o/ cpxwOZMc8V9iJ6yf9iwe/hKNekjVa28Bx797olgpl0tfsGegXe/4TSXWf3dGJdCnKgMIy ehyUv7yCewI2iCQF4T064n1lDhJd4dFTyjA= 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. Cc: Jordan Justen Cc: Laszlo Ersek Cc: Ard Biesheuvel Signed-off-by: Gary Lin Reviewed-by: Laszlo Ersek --- OvmfPkg/LsiScsiDxe/LsiScsi.c | 100 ++++++++++++++++++++++++++++++++++- OvmfPkg/LsiScsiDxe/LsiScsi.h | 4 ++ 2 files changed, 103 insertions(+), 1 deletion(-) diff --git a/OvmfPkg/LsiScsiDxe/LsiScsi.c b/OvmfPkg/LsiScsiDxe/LsiScsi.c index b728d18d51df..1bcebd92e455 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,7 +159,16 @@ LsiScsiPassThru ( IN EFI_EVENT Event OPTIONAL ) { - return EFI_UNSUPPORTED; + 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_SUCCESS; } =20 EFI_STATUS diff --git a/OvmfPkg/LsiScsiDxe/LsiScsi.h b/OvmfPkg/LsiScsiDxe/LsiScsi.h index 1e4bbc56f933..9272eb7506c7 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. // --=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 (#61909): https://edk2.groups.io/g/devel/message/61909 Mute This Topic: https://groups.io/mt/75228768/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 Sun Apr 28 20:20:45 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+61910+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+61910+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 1593576354248245.2347819987076; Tue, 30 Jun 2020 21:05:54 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id wt38YY1788612xKmX8a9N3j7; Tue, 30 Jun 2020 21:05: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.web12.13914.1593576352944997711 for ; Tue, 30 Jun 2020 21:05:53 -0700 X-Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-am5eur02lp2050.outbound.protection.outlook.com [104.47.4.50]) (Using TLS) by relay.mimecast.com with ESMTP id de-mta-6-82iUyI--NGqeVXFCpAtiNQ-1; Wed, 01 Jul 2020 06:05:50 +0200 X-MC-Unique: 82iUyI--NGqeVXFCpAtiNQ-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KnFn+YVXWe+sty+iCtWAeVnGJd6YU/CBH/MgxUVnc1pe3r7P8bMfgJnOXmVBIlowMPTI+JpN1Xk0Gf1XuHa6cPLttrwKpZWZs2o7Ax9sXa80r4CaeVQrvZWB+Ls3qxgWeIV1FkvaeCblhGMZja8gMTjWFyCAiLsv8vIJn7JH8Fq+m7ZG0T5NUd0zzDfWsSQsfgIwmIKlGvSi1sGfYzD4wYKpPIuJw6BW8aY36KBeKXQjD2V05OHIFFMFn507v4mhzt6oKDelJoJWkXa3Zxd9UkxknYUafJDhkoY8ZDqK0t6ESSV6M8Z3V7Kljwjel8hVSNU8L9IsA3wdrr4CmqDajA== 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=dm4Ebx7xHlsFgsG50FFWeSMRfZayp/OIZ4PGncQYlcg=; b=GDHIb9QRhnDzupxEy/JROVwc0OVU8NRi5gYiK+0hOksmFEm6XHQa+ZbZkEc7B34hkgm7ojlzizX5pitWOTIFlyhebsXH64DfnvSAwzO+fRUvPDnP2OhpMobsnzIZ4yzLxs0M25DEFGxTZ0LEqP8gR+5VmKn3HS+Iwt6f7+oB+j25M29bGyNR60sx9wvtAq8qkiEAypthQTwQ/l9aGYraCPiRowF67ncj+MukefKZsMVQDMRJ+kXkAnLG23p8r6QO0Naf6Zn7mhfSOkwY0FSDCK2MkneZdkvrqnoStoIxwD+m8c4Nwvnd69N/h0lqzoVxlmFw5nWsaKciU2h/Nj6Nog== 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 AM0PR04MB4481.eurprd04.prod.outlook.com (2603:10a6:208:70::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3131.21; Wed, 1 Jul 2020 04:05:49 +0000 X-Received: from AM0PR0402MB3809.eurprd04.prod.outlook.com ([fe80::8806:715f:1409:8c6b]) by AM0PR0402MB3809.eurprd04.prod.outlook.com ([fe80::8806:715f:1409:8c6b%7]) with mapi id 15.20.3153.021; Wed, 1 Jul 2020 04:05:49 +0000 From: "Gary Lin" To: devel@edk2.groups.io Cc: Jordan Justen , Laszlo Ersek , Ard Biesheuvel Subject: [edk2-devel] [PATCH 10/11] OvmfPkg/LsiScsiDxe: Process the SCSI Request Packet Date: Wed, 1 Jul 2020 12:04:47 +0800 Message-Id: <20200701040448.14871-11-glin@suse.com> In-Reply-To: <20200701040448.14871-1-glin@suse.com> References: <20200701040448.14871-1-glin@suse.com> X-ClientProxiedBy: AM0PR10CA0047.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:150::27) 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 AM0PR10CA0047.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:150::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.21 via Frontend Transport; Wed, 1 Jul 2020 04:05:47 +0000 X-Originating-IP: [60.251.47.115] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 30f8d538-f156-4648-6b2a-08d81d7409d6 X-MS-TrafficTypeDiagnostic: AM0PR04MB4481: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:4941; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info: YgiRnOqqU1J+LpFD/tQaAKQQ3/xYMGA67/7VqEbmWhq4jWhllb7XW8S1YlPMxY5wsbEhu0LeTTQIECGrZNs5yh9iTYwZWmI0akfb0l3157eBQF4OD0L0eAlgU7EsJXElmqxDRVyk0Fb7HLnJGiW91O6jgfb2NAN2uBYfk5vXE2HFtTqjlqdKpj9qIgThdru3pAbq19aeG6j7hbB1D9wISwNjVXlH3MLE8JPk6YHkrFGsW1Hn7ca5mKDF9QncJ4BhzUpxtksekqv6GwhNN1mfvhNOtud6ZgqokbOEJH2rVS2TvG0PjwXHPR8gRRdMg+aPOro9HI2b8E/2YaUcAgo44g== X-MS-Exchange-AntiSpam-MessageData: T+iN8Qxj6zmAB9FY+N4JS4gFfXMrSEZnVBGUu27d6wlyjJ6/8P5L7RtR3uuaxvazQ/REXN02ZJQuUsu9EoHI1DFmsQLZ0j08EViVECJwvXNDqRgxPiPfZ9HAQVJNtP3yUQs7blTbY+gCQ2rAbrhM7q0QDoDD3KarU0+r7ANwK9KU1G6OJYbDn4DIAGvBF0e4urTNfcwmcZEhOpUvbzkiN/Cbgfq4bK8gAtueUo7LtukAAtWcRq2GeQ2UsfEFoec1Md2DWhB8dBpJdyKahoSMhdcqzVmtYOFbHBDUJY9XmijGKDL/tAhCMwyJgqWfjzAAdDyaLe0Qr0lG/hXkrmDBpLiNaSOG9C5YubLt2G5Px//hunRlcGhq8ArxjbJ3w57JGw45MFJK8TkTyeuBFWYVUZf2OeZRDQq+kgztWEzaJLUDn/h25DQF+EQ1BhwcbXaU17ajUCGEPwFnp/n88H2mQquSbHFmdGDXRMRbzBV9Ch8= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 30f8d538-f156-4648-6b2a-08d81d7409d6 X-MS-Exchange-CrossTenant-AuthSource: AM0PR0402MB3809.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jul 2020 04:05:49.4932 (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: xagIlEigetNUUh9dkjjkWhStP5txEE+jAXvolfFtz0RAdXcbV/G+/AtHh2eoTIza X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB4481 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: 1R9eV4mPg8113ojbE6PZgAWpx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1593576353; bh=5PhHpQKWD0bsvbQkp0GuWIcbDpiDosvxXw1eaLWRhkI=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=NaIqSSlHltFX87pafA1mViFMaKUpXFjoX5ulcXtnm4zrdQKAHY2rBFeWbBHoHaPZLR8 2y4VLkrK7m7l8hwH7zDbhuTEJ5WoWUTJS3je201UNhpBwExkj7wPefoHx1q1LQRQvhKxd r8214xVvH22hpMu71mRv/wyCIDYU8Zhx3aE= 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. Cc: Jordan Justen Cc: Laszlo Ersek Cc: Ard Biesheuvel Signed-off-by: Gary Lin --- OvmfPkg/Include/IndustryStandard/LsiScsi.h | 39 +++ OvmfPkg/LsiScsiDxe/LsiScsi.c | 308 +++++++++++++++++++++ OvmfPkg/LsiScsiDxe/LsiScsi.h | 21 ++ OvmfPkg/LsiScsiDxe/LsiScsiDxe.inf | 3 + OvmfPkg/OvmfPkg.dec | 3 + 5 files changed, 374 insertions(+) diff --git a/OvmfPkg/Include/IndustryStandard/LsiScsi.h b/OvmfPkg/Include/I= ndustryStandard/LsiScsi.h index 60e527f1c6a7..cbf049c18310 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 0x01 +#define LSI_DSTAT_R 0x02 +#define LSI_DSTAT_SIR 0x04 +#define LSI_DSTAT_SSI 0x08 +#define LSI_DSTAT_ABRT 0x10 +#define LSI_DSTAT_BF 0x20 +#define LSI_DSTAT_MDPE 0x40 +#define LSI_DSTAT_DFE 0x80 + // // The status bits for Interrupt Status Zero (ISTAT0) // @@ -38,4 +50,31 @@ #define LSI_ISTAT0_SRST 0x40 #define LSI_ISTAT0_ABRT 0x80 =20 +// +// LSI 53C895A Script Instructions +// +#define LSI_INS_TYPE_BLK 0x00000000 +#define LSI_INS_TYPE_IO 0x40000000 +#define LSI_INS_TYPE_TC 0x80000000 + +#define LSI_INS_BLK_SCSIP_DAT_OUT 0x00000000 +#define LSI_INS_BLK_SCSIP_DAT_IN 0x01000000 +#define LSI_INS_BLK_SCSIP_CMD 0x02000000 +#define LSI_INS_BLK_SCSIP_STAT 0x03000000 +#define LSI_INS_BLK_SCSIP_MSG_OUT 0x06000000 +#define LSI_INS_BLK_SCSIP_MSG_IN 0x07000000 + +#define LSI_INS_IO_OPC_SEL 0x00000000 +#define LSI_INS_IO_OPC_WAIT_RESEL 0x10000000 + +#define LSI_INS_TC_CP 0x00020000 +#define LSI_INS_TC_JMP 0x00080000 +#define LSI_INS_TC_RA 0x00800000 + +#define LSI_INS_TC_OPC_JMP 0x00000000 +#define LSI_INS_TC_OPC_INT 0x18000000 + +#define LSI_INS_TC_SCSIP_DAT_OUT 0x00000000 +#define LSI_INS_TC_SCSIP_MSG_IN 0x07000000 + #endif // _LSI_SCSI_H_ diff --git a/OvmfPkg/LsiScsiDxe/LsiScsi.c b/OvmfPkg/LsiScsiDxe/LsiScsi.c index 1bcebd92e455..090d7df15b34 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,272 @@ 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 contorller. + + @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. + // + // Reference: + // LSI53C895A PCI to Ultra2 SCSI Controller Version 2.2 + // - Chapter 5 SCSI SCRIPT Instruction Set + // + // 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 | \ + sizeof Dev->Dma->MsgOut; + *Script++ =3D LSI_SCSI_DMA_ADDR_LOW (Dev, MsgOut); + + // + // 3. Send the SCSI Command. + // + *Script++ =3D LSI_INS_TYPE_BLK | LSI_INS_BLK_SCSIP_CMD | \ + sizeof Dev->Dma->Cdb; + *Script++ =3D LSI_SCSI_DMA_ADDR_LOW (Dev, Cdb); + + // + // 4. Check whether the current SCSI phase is "Message In" or not + // and jump to 8 if it is. + // + *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 | \ + sizeof Dev->Dma->MsgIn; + *Script++ =3D LSI_SCSI_DMA_ADDR_LOW (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 | \ + sizeof Dev->Dma->MsgIn; + *Script++ =3D LSI_SCSI_DMA_ADDR_LOW (Dev, MsgIn); + + // + // 8. Set the DMA command for the read/write operations. + // + if (Packet->DataDirection =3D=3D EFI_EXT_SCSI_DATA_DIRECTION_READ && + Packet->InTransferLength > 0) { + *Script++ =3D LSI_INS_TYPE_BLK | LSI_INS_BLK_SCSIP_DAT_IN | \ + Packet->InTransferLength; + *Script++ =3D LSI_SCSI_DMA_ADDR_LOW (Dev, Data); + } else if (Packet->DataDirection =3D=3D EFI_EXT_SCSI_DATA_DIRECTION_WRIT= E && + Packet->OutTransferLength > 0) { + // LsiScsiCheckRequest() guarantees that OutTransferLength is no + // larger than sizeof Dev->Dma->Data, so we can safely copy the + // the data to 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_LOW (Dev, Data); + } + + // + // 9. Get the SCSI status. + // + *Script++ =3D LSI_INS_TYPE_BLK | LSI_INS_BLK_SCSIP_STAT | \ + sizeof Dev->Dma->Status; + *Script++ =3D LSI_SCSI_DMA_ADDR_LOW (Dev, Status); + + // + // 10. Get the SCSI message. + // + *Script++ =3D LSI_INS_TYPE_BLK | LSI_INS_BLK_SCSIP_MSG_IN | \ + sizeof Dev->Dma->MsgIn; + *Script++ =3D LSI_SCSI_DMA_ADDR_LOW (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 < Dev->Dma->Script + sizeof 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_LOW(Dev, Script)); + if (EFI_ERROR (Status)) { + return Status; + } + + // + // 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=3D 0 && *ScsiStatus =3D=3D 0) { + // + // Copy Data to InDataBuffer if necessary. + // + if (Packet->DataDirection =3D=3D EFI_EXT_SCSI_DATA_DIRECTION_READ) { + CopyMem (Packet->InDataBuffer, Data, Packet->InTransferLength); + } + + // + // The controller doesn't return sense data when replying "TEST UNIT R= EADY", + // so we have to set SenseDataLength to 0 to notify ScsiIo to issue + // "REQUEST SENSE" for the sense data. + // + if (Cdb[0] =3D=3D 0x00) { + 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; + } + Packet->HostAdapterStatus =3D EFI_EXT_SCSI_STATUS_HOST_ADAPTER_OTHER; + Packet->InTransferLength =3D 0; + Packet->OutTransferLength =3D 0; + Packet->SenseDataLength =3D 0; + + 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,6 +470,11 @@ LsiScsiPassThru ( return Status; } =20 + Status =3D LsiScsiProcessRequest (Dev, *Target, Lun, Packet); + if (EFI_ERROR (Status)) { + return Status; + } + return EFI_SUCCESS; } =20 @@ -469,6 +776,7 @@ LsiScsiControllerStart ( =20 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 9272eb7506c7..1a16ef9f7795 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. // @@ -21,6 +26,18 @@ typedef struct { // Allocate 64KB for read/write buffer. // UINT8 Data[0x10000]; + // + // 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 { @@ -30,6 +47,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; @@ -42,6 +60,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_LOW(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 68844c6772e3..cbd7294573ac 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 ae7d1d648d22..57e418d4b8a9 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 (#61910): https://edk2.groups.io/g/devel/message/61910 Mute This Topic: https://groups.io/mt/75228769/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 Sun Apr 28 20:20:45 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+61911+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+61911+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 159357635781339.49511387368841; Tue, 30 Jun 2020 21:05:57 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id 1FVcYY1788612xQZBVNSKkFP; Tue, 30 Jun 2020 21:05: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.web12.13915.1593576354949271093 for ; Tue, 30 Jun 2020 21:05:55 -0700 X-Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-am5eur02lp2056.outbound.protection.outlook.com [104.47.4.56]) (Using TLS) by relay.mimecast.com with ESMTP id de-mta-6-In_cK2VnNlm7juoOi3PLvw-1; Wed, 01 Jul 2020 06:05:52 +0200 X-MC-Unique: In_cK2VnNlm7juoOi3PLvw-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=C1fHVX4NgljPpKuH0kGAnXP8hKOWg6NfdNpwWL8nd+E5pTWKF853lP6t+n9703sZo0eOtAqbTSY/qAYurkGnCctQMpYx/2khfeS6+msfaeJcwIsMJ+aq3fqG5MNjpwYNff83mxl0Zy/onHnw+iv/51Q4kjU07dzRKtkMN8tdK1BJZo0Nq7c4Fy2cvooZN9ADvlC7T5a1jZ5A6/sLdBnUNbJfv/5awcZE34gxfVzzRjJE0ihXmyGKus+daRsA5tOpsYhoRLYIy0Wc6L+a1GM24D3axC0GY3mW1wzOw3slVf1tV2JYK7jAMMEkVMkEr0M4MAzGfK2gbcKa7UqAiAtM4Q== 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=Q8IXSWbEr3OxD3QSQxEFHjtcD7gK4poDx5Qd2hDaZJ8=; b=H3Qvf1RUXrH0tlNgUpLWsGO+e/A8KwnhriB/d0/iuUgzWAJhbTOE+GvPEV/FYKdEdfb+0VGQHksKTBAkQzqFaN5AvReWP+oU+Gz08xltDhvp8+Jn+aZQ9Qv9EQtfOhYQylxtVs1lkmCGkcxVgrtD+vEwxptf4qAlSqsxy3jqdBDHqfJYMZREAYLk9hRjpMn1ZVuol6WinkThE6pj0qDh+mxARFQfWDU5Z256TYx9f0uWTd2roIz+OFfKZi5pcSBqkXaqOgjkxS9jOOzax3sY+T15w6WkpUpcG4run55uVM3aDnzYwNzfpiYXVJjEDpRnL16NG+HzWr2tNykCdVrm0w== 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 AM0PR04MB4481.eurprd04.prod.outlook.com (2603:10a6:208:70::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3131.21; Wed, 1 Jul 2020 04:05:51 +0000 X-Received: from AM0PR0402MB3809.eurprd04.prod.outlook.com ([fe80::8806:715f:1409:8c6b]) by AM0PR0402MB3809.eurprd04.prod.outlook.com ([fe80::8806:715f:1409:8c6b%7]) with mapi id 15.20.3153.021; Wed, 1 Jul 2020 04:05:51 +0000 From: "Gary Lin" To: devel@edk2.groups.io Cc: Jordan Justen , Laszlo Ersek , Ard Biesheuvel Subject: [edk2-devel] [PATCH 11/11] Maintainers.txt: Add myself as the reviewer for LsiScsi driver Date: Wed, 1 Jul 2020 12:04:48 +0800 Message-Id: <20200701040448.14871-12-glin@suse.com> In-Reply-To: <20200701040448.14871-1-glin@suse.com> References: <20200701040448.14871-1-glin@suse.com> X-ClientProxiedBy: AM0PR10CA0047.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:150::27) 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 AM0PR10CA0047.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:150::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.21 via Frontend Transport; Wed, 1 Jul 2020 04:05:49 +0000 X-Originating-IP: [60.251.47.115] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 646cdfea-737e-4d94-a929-08d81d740afd X-MS-TrafficTypeDiagnostic: AM0PR04MB4481: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:296; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info: pUOezDX/MuahWEpeB0PlVxs5YgWDrIJYTpTAS4F74lwkk3I0xX37XFXxhRZLi2TQBv2psyxYOOMY7YE8vCuhxrKeOWpWmEeU26nmDqJmK6PomSgfk0oFQCFGdEYUSlw2vSxNiaD3E1MnaOtVlQGumnEmQZR9pDSYXXWIEvtE1WxKBzcahvaJK2gMaGYEvWsxCP0ZV1G3SFN9mi5sft07uRjfb1w1iD4FAUrU6XxYwLVVeQkU9N6Om0gQV3wnHbPeXJcwjq1Xkjk6khSJjmaSAZlvJH8oCjbYXVt0psendTlEkWI2NHduxX7KlSqYLHEQ3UU+l04K+p0d2egHyXY81Q== X-MS-Exchange-AntiSpam-MessageData: W4fpoHtxPiLbdtbwn5IHyZrIr2MeBfxNQzI/ZcUiQEkxorC7iDWpp7+E/DoscluC/ZsRW22jQyRTAbrrTxWOCHpU+8DPJykOxTJ9caWsefpZam307Rl4MrHpZBNspYfpxi9IY4PtHQsRzA5xNqEXTZz50ySzYCxxRdiVezh2NXJNGW3SoyY60EoD0rKJJh1LAk8BiM0uw7fYVf8GppvLg0u9vFqONZSzJMnqa2Cx4MgyTkm6VPcIfhXpGxfGFizwi1LMWp9jZzfDPva+nxo4AeEdtUYVxt7sbrdUr4yCM3TaOBcpP+cLBwrhsVEJAiLvVjTqsPfvAhcn45PW2Le64rk3JOTVzOralO3cWPk1xiRbrJ7AVZWFgi1YjC1MJsnx2GSq7yrgWJa+iqmMyl6apJzSJ+zuACE8NrTD1Ww3pUyzqLQdAm7kI9ezaRJ8LZpvKgWtrxPFGDY5n38CI0FTD05LgX0re6oxW6MvZVkeSrY= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 646cdfea-737e-4d94-a929-08d81d740afd X-MS-Exchange-CrossTenant-AuthSource: AM0PR0402MB3809.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jul 2020 04:05:51.4031 (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: h+/3QIwLkVEQZWZHhfGVcS4QbMVhEzAbICFHfUeDcpAFvv+ZOjlkF1quUbdJpXV+ X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB4481 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: TfG80MoxqPrkBfTG4MFD32nfx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1593576355; bh=9lWkJqS9ydxKMhSMB270DuI0twaSVune14eH9PqfrYE=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=I3YPYcnOutjKLNmHw9VGKOuEOTb5hECzfl81qlf3egBPDhwUKXDMVoZ0HngMWUwjDUb 2s6sPkOBX78m97I1RAKn14Ieh+6MwcgGPtqMHfsIcpFKkERyMaFMzztyX1qbEmCZANj8c FCQtd0BRrSTdQyE9ltjkgTG4+vA7ZfzpbEg= 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..666d3af4d76a 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 (#61911): https://edk2.groups.io/g/devel/message/61911 Mute This Topic: https://groups.io/mt/75228770/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-