From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from userp2130.oracle.com (userp2130.oracle.com [156.151.31.86]) by mx.groups.io with SMTP id smtpd.web12.2109.1587751095461375571 for ; Fri, 24 Apr 2020 10:58:15 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@oracle.com header.s=corp-2020-01-29 header.b=a1BBqrdH; spf=pass (domain: oracle.com, ip: 156.151.31.86, mailfrom: nikita.leshchenko@oracle.com) Received: from pps.filterd (userp2130.oracle.com [127.0.0.1]) by userp2130.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 03OHmu8U135110; Fri, 24 Apr 2020 17:58:11 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : mime-version : content-transfer-encoding; s=corp-2020-01-29; bh=/k02PHqmhr12SwVH/ZKMJkA93prwpCajDDvndQ1yKuU=; b=a1BBqrdHD7jLvjyLkko8YqLX8s7SOjnbOly/U344X8Ug3w8CtLzrpl/ZHguyhKfDiu// AkKHh0cjTI2RKIPqswvQVthrCm9ujlzI4rLtVb5bv9yUN+yMeW37d1ubtrbdB44y7rEk WnB5rIJmUV2PUNQkTvHr9IL2efofTUo8wYY+GMSdiA2h3MRThzCinmeMTmYj5evs3BNr Mz9pTlhT3GlUzkXNyjl+27+ntFMJHyYHuIddkJ6Ge5k3i+FCK82Wgz3dy4SRSd432Zk+ tG6YZeO+s6W66rHGOTY66XJTdS/ingQc8+Ua2iwU5omWWz4UDiKg5oNKt4+/D3bMM1vO Pg== Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by userp2130.oracle.com with ESMTP id 30ketdnres-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 24 Apr 2020 17:58:11 +0000 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 03OHkh3w097564; Fri, 24 Apr 2020 17:56:11 GMT Received: from aserv0121.oracle.com (aserv0121.oracle.com [141.146.126.235]) by aserp3020.oracle.com with ESMTP id 30gbbqscue-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 24 Apr 2020 17:56:10 +0000 Received: from abhmp0006.oracle.com (abhmp0006.oracle.com [141.146.116.12]) by aserv0121.oracle.com (8.14.4/8.13.8) with ESMTP id 03OHuAtZ004406; Fri, 24 Apr 2020 17:56:10 GMT Received: from spark.ravello.local (/213.57.127.2) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Fri, 24 Apr 2020 10:56:09 -0700 From: "Nikita Leshenko" To: devel@edk2.groups.io Cc: Nikita Leshenko , liran.alon@oracle.com, aaron.young@oracle.com, Jordan Justen , Laszlo Ersek , Ard Biesheuvel Subject: [PATCH v5 00/12] OvmfPkg: Support booting from Fusion-MPT SCSI controllers Date: Fri, 24 Apr 2020 20:59:15 +0300 Message-Id: <20200424175927.41210-1-nikita.leshchenko@oracle.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9601 signatures=668686 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 malwarescore=0 suspectscore=0 mlxlogscore=999 adultscore=0 mlxscore=0 phishscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2003020000 definitions=main-2004240136 X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9601 signatures=668686 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 lowpriorityscore=0 spamscore=0 impostorscore=0 bulkscore=0 mlxlogscore=999 phishscore=0 mlxscore=0 priorityscore=1501 clxscore=1015 suspectscore=0 adultscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2003020000 definitions=main-2004240136 Content-Transfer-Encoding: 8bit This series adds driver support for: - LSI53C1030 - SAS1068 - SAS1068E These controllers are widely supported by QEMU, VirtualBox and VMWare. This work is part of the more general agenda of enhancing OVMF boot device support to have feature parity with SeaBIOS. I pushed a copy of these patches to https://github.com/nikital/edk2/tree/mptscsi_v5 Previous versions: https://github.com/nikital/edk2/tree/mptscsi_v4 https://github.com/nikital/edk2/tree/mptscsi_v3 https://github.com/nikital/edk2/tree/mptscsi (v2) v4->v5: - Sort maintainers and protocols - Fix bug when restoring PCI attributes (Use Set instead of Enable) - Separate packed structs and aligned unions - STATIC_ASSERT for init request size - Add support for multiple targets from the beginning - Use PCI_BAR_IDX0 in door bell - Code convention improvements - Add DEBUG_VERBOSE message seen in PvScsiExitBoot - Return EFI_INVALID_PARAMETER in GetNextTarget - STATIC_ASSERT for MaxTarget - Move PCD near PvScsi - A lot of fixes for PassThru (comments, error handling, casting) - Support 64-bit DMA v3->v4: - Add ExitBootServices - Rework error handling in PassThru - SPDX license - Made compilation conditional - Squash GetTargetLun and BuildDevicePath commits - Added #include - Use PCI_BAR_IDX0 - Code convention improvements v2->v3: - Change error handling style - Add comments about target size and zero unused target bytes - Remove internal Reviewed-by - Fix problems reported by PatchCheck.py - Use SetupGit.py v1->v2: - Map() DMAed buffers - Fixed various code convention issues - Newer debug macros - Updated INF version Thanks, Nikita Nikita Leshenko (12): OvmfPkg/MptScsiDxe: Create empty driver OvmfPkg/MptScsiDxe: Install DriverBinding Protocol OvmfPkg/MptScsiDxe: Report name of driver OvmfPkg/MptScsiDxe: Probe PCI devices and look for MptScsi OvmfPkg/MptScsiDxe: Install stubbed EXT_SCSI_PASS_THRU OvmfPkg/MptScsiDxe: Report targets and one LUN OvmfPkg/MptScsiDxe: Build and decode DevicePath OvmfPkg/MptScsiDxe: Open PciIo protocol for later use OvmfPkg/MptScsiDxe: Set and restore PCI attributes OvmfPkg/MptScsiDxe: Initialize hardware OvmfPkg/MptScsiDxe: Implement the PassThru method OvmfPkg/MptScsiDxe: Reset device on ExitBootServices() Maintainers.txt | 3 +- .../Include/IndustryStandard/FusionMptScsi.h | 160 +++ OvmfPkg/MptScsiDxe/MptScsi.c | 1199 +++++++++++++++++ OvmfPkg/MptScsiDxe/MptScsiDxe.inf | 42 + OvmfPkg/OvmfPkg.dec | 7 + OvmfPkg/OvmfPkgIa32.dsc | 4 + OvmfPkg/OvmfPkgIa32.fdf | 3 + OvmfPkg/OvmfPkgIa32X64.dsc | 4 + OvmfPkg/OvmfPkgIa32X64.fdf | 3 + OvmfPkg/OvmfPkgX64.dsc | 4 + OvmfPkg/OvmfPkgX64.fdf | 3 + 11 files changed, 1431 insertions(+), 1 deletion(-) create mode 100644 OvmfPkg/Include/IndustryStandard/FusionMptScsi.h create mode 100644 OvmfPkg/MptScsiDxe/MptScsi.c create mode 100644 OvmfPkg/MptScsiDxe/MptScsiDxe.inf -- 2.20.1