Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 9 May 2018 16:14:13 +0000 (UTC)
From:      Sean Bruno <sbruno@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject:   svn commit: r333417 - in stable/11: share/man/man4 sys/amd64/conf sys/conf sys/dev/smartpqi sys/modules sys/modules/smartpqi
Message-ID:  <201805091614.w49GEDcG038007@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: sbruno
Date: Wed May  9 16:14:12 2018
New Revision: 333417
URL: https://svnweb.freebsd.org/changeset/base/333417

Log:
  MFC r333019 r333046 r333085 r333086 r333132
  
  smartpqi(4):
  - Microsemi SCSI driver for PQI controllers.
  - Found on newer model HP servers.
  - Restrict to AMD64 only as per developer request.
  
  The driver provides support for the new generation of PQI controllers
  from Microsemi. This driver is the first SCSI driver to implement the
  PQI queuing model and it will replace the aacraid driver for Adaptec
  Series 9 controllers.  HARDWARE Controllers supported by the driver include:
  
      HPE Gen10 Smart Array Controller Family
      OEM Controllers based on the Microsemi Chipset.
  
  Approved by:	re (gjb@)
  Relnotes:	yes

Added:
  stable/11/share/man/man4/smartpqi.4
     - copied unchanged from r333019, head/share/man/man4/smartpqi.4
  stable/11/sys/dev/smartpqi/
     - copied from r333019, head/sys/dev/smartpqi/
  stable/11/sys/modules/smartpqi/
     - copied from r333019, head/sys/modules/smartpqi/
Modified:
  stable/11/share/man/man4/Makefile
  stable/11/sys/amd64/conf/GENERIC
  stable/11/sys/amd64/conf/NOTES
  stable/11/sys/conf/files.amd64
  stable/11/sys/dev/smartpqi/smartpqi_cam.c
  stable/11/sys/dev/smartpqi/smartpqi_ioctl.c
  stable/11/sys/dev/smartpqi/smartpqi_main.c
  stable/11/sys/dev/smartpqi/smartpqi_prototypes.h
  stable/11/sys/modules/Makefile
  stable/11/sys/modules/smartpqi/Makefile
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/share/man/man4/Makefile
==============================================================================
--- stable/11/share/man/man4/Makefile	Wed May  9 15:25:26 2018	(r333416)
+++ stable/11/share/man/man4/Makefile	Wed May  9 16:14:12 2018	(r333417)
@@ -483,6 +483,7 @@ MAN=	aac.4 \
 	sio.4 \
 	sis.4 \
 	sk.4 \
+	${_smartpqi.4} \
 	smb.4 \
 	smbus.4 \
 	smp.4 \
@@ -875,6 +876,7 @@ _qlxgb.4=	qlxgb.4
 _qlxgbe.4=	qlxgbe.4
 _qlnxe.4=	qlnxe.4
 _sfxge.4=	sfxge.4
+_smartpqi.4=	smartpqi.4
 
 MLINKS+=qlxge.4 if_qlxge.4
 MLINKS+=qlxgb.4 if_qlxgb.4

Copied: stable/11/share/man/man4/smartpqi.4 (from r333019, head/share/man/man4/smartpqi.4)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/11/share/man/man4/smartpqi.4	Wed May  9 16:14:12 2018	(r333417, copy of r333019, head/share/man/man4/smartpqi.4)
@@ -0,0 +1,102 @@
+.\" Copyright (c) 2018 Murthy Bhat
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD$ stable/10/share/man/man4/smartpqi.4 195614 2017-01-11 08:10:18Z jkim $
+.Dd April 06, 2018
+.Dt SMARTPQI 4
+.Os
+.Sh NAME
+.Nm smartpqi
+.Nd Microsemi smartpqi SCSI driver for PQI controllers
+.Sh SYNOPSIS
+To compile this driver into the kernel,
+place the following lines in your
+kernel configuration file:
+.Bd -ragged -offset indent
+.Cd device pci
+.Cd device scbus
+.Cd device smartpqi
+.Pp
+Alternatively, to load the driver as a
+module at boot time, place the following line in
+.Xr loader.conf 5 :
+.Bd -literal -offset indent
+smartpqi_load="YES"
+.Ed
+.Sh DESCRIPTION
+The
+.Nm
+SCSI driver provides support for the new generation of PQI controllers from
+Microsemi.
+The
+.Nm
+driver is the first SCSI driver to implement the PQI queuing model.
+.Pp
+The
+.Nm
+driver will replace the aacraid driver for Adaptec Series 9 controllers.
+.Pp
+The
+.Pa /dev/smartpqi?
+device nodes provide access to the management interface of the controller.
+One node exists per installed card.
+.Sh HARDWARE
+Controllers supported by the
+.Nm
+driver include:
+.Pp
+.Bl -bullet -compact
+.It
+HPE Gen10 Smart Array Controller Family
+.It
+OEM Controllers based on the Microsemi Chipset  
+.El
+.Sh FILES
+.Bl -tag -width /boot/kernel/aac.ko -compact
+.It Pa /dev/smartpqi?
+smartpqi management interface
+.El
+.Sh SEE ALSO
+.Xr kld 4 ,
+.Xr linux 4 ,
+.Xr scsi 4 ,
+.Xr kldload 8
+.Xr pass 4
+.Xr xpt 4
+.Xr loader.conf 5
+.Xr camcontrol 8
+.Rs
+.%T "Microsemi Website"
+.%U http://www.microsemi.com/
+.Re
+.Sh HISTORY
+The
+.Nm
+driver first appeared in
+.Fx 11.1 .
+.Sh AUTHOR
+.An Murthy Bhat
+.Aq murthy.bhat@microsemi.com
+.Sh BUGS
+The controller is not actually paused on suspend/resume.

Modified: stable/11/sys/amd64/conf/GENERIC
==============================================================================
--- stable/11/sys/amd64/conf/GENERIC	Wed May  9 15:25:26 2018	(r333416)
+++ stable/11/sys/amd64/conf/GENERIC	Wed May  9 16:14:12 2018	(r333417)
@@ -155,6 +155,7 @@ device		iir			# Intel Integrated RAID
 device		ips			# IBM (Adaptec) ServeRAID
 device		mly			# Mylex AcceleRAID/eXtremeRAID
 device		twa			# 3ware 9000 series PATA/SATA RAID
+device          smartpqi                # Microsemi smartpqi driver
 device		tws			# LSI 3ware 9750 SATA+SAS 6Gb/s RAID controller
 
 # RAID controllers

Modified: stable/11/sys/amd64/conf/NOTES
==============================================================================
--- stable/11/sys/amd64/conf/NOTES	Wed May  9 15:25:26 2018	(r333416)
+++ stable/11/sys/amd64/conf/NOTES	Wed May  9 16:14:12 2018	(r333417)
@@ -423,6 +423,13 @@ device		ntb_hw_plx	# PLX NTB hardware driver
 device		arcmsr		# Areca SATA II RAID
 
 #
+# Microsemi smartpqi controllers.
+# These controllers have a SCSI-like interface, and require the
+# CAM infrastructure.
+#
+device		smartpqi
+
+#
 # 3ware 9000 series PATA/SATA RAID controller driver and options.
 # The driver is implemented as a SIM, and so, needs the CAM infrastructure.
 #

Modified: stable/11/sys/conf/files.amd64
==============================================================================
--- stable/11/sys/conf/files.amd64	Wed May  9 15:25:26 2018	(r333416)
+++ stable/11/sys/conf/files.amd64	Wed May  9 16:14:12 2018	(r333417)
@@ -449,6 +449,22 @@ dev/sio/sio_isa.c		optional	sio isa
 dev/sio/sio_pccard.c		optional	sio pccard
 dev/sio/sio_pci.c		optional	sio pci
 dev/sio/sio_puc.c		optional	sio puc
+dev/smartpqi/smartpqi_cam.c     optional 	smartpqi
+dev/smartpqi/smartpqi_cmd.c     optional 	smartpqi
+dev/smartpqi/smartpqi_discovery.c	optional	smartpqi
+dev/smartpqi/smartpqi_event.c   optional 	smartpqi
+dev/smartpqi/smartpqi_helper.c  optional 	smartpqi
+dev/smartpqi/smartpqi_init.c    optional 	smartpqi
+dev/smartpqi/smartpqi_intr.c    optional 	smartpqi
+dev/smartpqi/smartpqi_ioctl.c   optional 	smartpqi
+dev/smartpqi/smartpqi_main.c    optional 	smartpqi
+dev/smartpqi/smartpqi_mem.c     optional 	smartpqi
+dev/smartpqi/smartpqi_misc.c    optional 	smartpqi
+dev/smartpqi/smartpqi_queue.c   optional 	smartpqi
+dev/smartpqi/smartpqi_request.c optional 	smartpqi
+dev/smartpqi/smartpqi_response.c	optional 	smartpqi
+dev/smartpqi/smartpqi_sis.c     optional 	smartpqi
+dev/smartpqi/smartpqi_tag.c     optional 	smartpqi
 dev/speaker/spkr.c		optional	speaker
 dev/syscons/apm/apm_saver.c	optional	apm_saver apm
 dev/syscons/scterm-teken.c	optional	sc

Modified: stable/11/sys/dev/smartpqi/smartpqi_cam.c
==============================================================================
--- head/sys/dev/smartpqi/smartpqi_cam.c	Thu Apr 26 16:59:06 2018	(r333019)
+++ stable/11/sys/dev/smartpqi/smartpqi_cam.c	Wed May  9 16:14:12 2018	(r333417)
@@ -1199,7 +1199,3 @@ void deregister_sim(struct pqisrc_softstate *softs)
 
 	DBG_FUNC("OUT\n");
 }
-
-static void smartpqi_cam_action(struct cam_sim *, union ccb *);
-static void smartpqi_poll(struct cam_sim *);
-

Modified: stable/11/sys/dev/smartpqi/smartpqi_ioctl.c
==============================================================================
--- head/sys/dev/smartpqi/smartpqi_ioctl.c	Thu Apr 26 16:59:06 2018	(r333019)
+++ stable/11/sys/dev/smartpqi/smartpqi_ioctl.c	Wed May  9 16:14:12 2018	(r333417)
@@ -166,10 +166,6 @@ static int smartpqi_ioctl(struct cdev *cdev, u_long cm
 	return error;
 }
 
-static d_open_t         smartpqi_open;
-static d_ioctl_t        smartpqi_ioctl;
-static d_close_t        smartpqi_close;
-
 static struct cdevsw smartpqi_cdevsw =
 {
 	.d_version = D_VERSION,

Modified: stable/11/sys/dev/smartpqi/smartpqi_main.c
==============================================================================
--- head/sys/dev/smartpqi/smartpqi_main.c	Thu Apr 26 16:59:06 2018	(r333019)
+++ stable/11/sys/dev/smartpqi/smartpqi_main.c	Wed May  9 16:14:12 2018	(r333417)
@@ -467,13 +467,6 @@ smartpqi_shutdown(void *arg)
 	return rval;
 }
 
-
-static int      smartpqi_probe(device_t dev);
-static int      smartpqi_attach(device_t dev);
-static int      smartpqi_detach(device_t dev);
-static int      smartpqi_suspend(device_t dev);
-static int      smartpqi_resume(device_t dev);
-
 /*
  * PCI bus interface.
  */
@@ -496,5 +489,3 @@ static driver_t smartpqi_pci_driver = {
 
 DRIVER_MODULE(smartpqi, pci, smartpqi_pci_driver, pqi_devclass, 0, 0);
 MODULE_DEPEND(smartpqi, pci, 1, 1, 1);
-
-

Modified: stable/11/sys/dev/smartpqi/smartpqi_prototypes.h
==============================================================================
--- head/sys/dev/smartpqi/smartpqi_prototypes.h	Thu Apr 26 16:59:06 2018	(r333019)
+++ stable/11/sys/dev/smartpqi/smartpqi_prototypes.h	Wed May  9 16:14:12 2018	(r333417)
@@ -131,9 +131,6 @@ int pqisrc_process_event_intr_src(pqisrc_softstate_t *
 void pqisrc_ack_all_events(void *arg);
 
 
-void pqisrc_event_worker(void *, int);
-int pqisrc_scsi_setup(struct pqisrc_softstate *);
-void pqisrc_scsi_cleanup(struct pqisrc_softstate *);
 boolean_t pqisrc_update_scsi_sense(const uint8_t *, int,
                               struct sense_header_scsi *);
 int pqisrc_build_send_raid_request(pqisrc_softstate_t *,  pqisrc_raid_req_t *,
@@ -180,7 +177,6 @@ int pqisrc_create_op_aio_ibq(pqisrc_softstate_t *, ib_
 int pqisrc_create_op_raid_ibq(pqisrc_softstate_t *, ib_queue_t *);
 int pqisrc_alloc_and_create_event_queue(pqisrc_softstate_t *);
 int pqisrc_alloc_and_create_ib_queues(pqisrc_softstate_t *);
-int pqisrc_alloc_and_create_ib_queues(pqisrc_softstate_t *);
 int pqisrc_alloc_and_create_ob_queues(pqisrc_softstate_t *);
 int pqisrc_process_task_management_response(pqisrc_softstate_t *,
                                 pqi_tmf_resp_t *);
@@ -231,10 +227,7 @@ void os_stop_heartbeat_timer(pqisrc_softstate_t *);
 void os_start_heartbeat_timer(void *);
 
 /* FreeBSD_cam.c */
-int pqisrc_scsi_setup(struct pqisrc_softstate *);
-void pqisrc_scsi_cleanup(struct pqisrc_softstate *);
 uint8_t os_get_task_attr(rcb_t *);
-void os_wellness_periodic(void *);
 void smartpqi_target_rescan(struct pqisrc_softstate *);
 
 /* FreeBSD_intr.c FreeBSD_main.c */

Modified: stable/11/sys/modules/Makefile
==============================================================================
--- stable/11/sys/modules/Makefile	Wed May  9 15:25:26 2018	(r333416)
+++ stable/11/sys/modules/Makefile	Wed May  9 16:14:12 2018	(r333417)
@@ -356,6 +356,7 @@ SUBDIR=	\
 	siis \
 	sis \
 	sk \
+	${_smartpqi} \
 	smbfs \
 	sn \
 	${_snc} \
@@ -727,6 +728,7 @@ _qlxgbe=	qlxgbe
 _qlnx=		qlnx
 .endif
 _sfxge=		sfxge
+_smartpqi=	smartpqi
 
 .if ${MK_BHYVE} != "no" || defined(ALL_MODULES)
 _vmm=		vmm

Modified: stable/11/sys/modules/smartpqi/Makefile
==============================================================================
--- head/sys/modules/smartpqi/Makefile	Thu Apr 26 16:59:06 2018	(r333019)
+++ stable/11/sys/modules/smartpqi/Makefile	Wed May  9 16:14:12 2018	(r333417)
@@ -3,7 +3,7 @@
 
 KMOD = smartpqi
 
-.PATH:          ${.CURDIR}/../../dev/${KMOD}
+.PATH:          ${SRCTOP}/sys/dev/${KMOD}
 
 SRCS=smartpqi_mem.c smartpqi_intr.c smartpqi_main.c smartpqi_cam.c smartpqi_ioctl.c smartpqi_misc.c smartpqi_sis.c smartpqi_init.c smartpqi_queue.c smartpqi_tag.c smartpqi_cmd.c smartpqi_request.c smartpqi_response.c smartpqi_event.c smartpqi_helper.c smartpqi_discovery.c 
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201805091614.w49GEDcG038007>