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.b...@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 
 
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to