svn commit: r285809 - in stable/10/sys: amd64/conf conf dev/pms dev/pms/RefTisa/discovery/api dev/pms/RefTisa/discovery/dm dev/pms/RefTisa/sallsdk/api dev/pms/RefTisa/sallsdk/hda/64k dev/pms/RefTis...

Scott Long scottl at FreeBSD.org
Thu Jul 23 05:26:13 UTC 2015


Author: scottl
Date: Thu Jul 23 05:26:09 2015
New Revision: 285809
URL: https://svnweb.freebsd.org/changeset/base/285809

Log:
  Merge driver for PMC Sierra's range of SAS/SATA HBAs.
  
  Submitted by:   Achim Leubner <Achim.Leubner at pmcs.com>
  Approved by: re

Added:
  stable/10/sys/dev/pms/RefTisa/discovery/api/dm.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/discovery/api/dmapi.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/discovery/api/tddmapi.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/discovery/dm/dmdefs.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/discovery/dm/dmdisc.c   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/discovery/dm/dminit.c   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/discovery/dm/dmlist.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/discovery/dm/dmmisc.c   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/discovery/dm/dmport.c   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/discovery/dm/dmproto.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/discovery/dm/dmsmp.c   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/discovery/dm/dmtimer.c   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/discovery/dm/dmtypes.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sallsdk/api/sa.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sallsdk/api/sa_err.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sallsdk/api/sa_spec.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sallsdk/api/saapi.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sallsdk/api/saosapi.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sallsdk/hda/64k/aap18008.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sallsdk/hda/64k/aap1img.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sallsdk/hda/64k/ila8008.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sallsdk/hda/64k/ila8070.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sallsdk/hda/64k/ilaimg.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sallsdk/hda/64k/iop8008.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sallsdk/hda/64k/iop8070.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sallsdk/hda/64k/iopimg.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sallsdk/hda/64k/istrimg.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sallsdk/hda/64k/raae8070.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sallsdk/spc/mpi.c   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sallsdk/spc/mpi.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sallsdk/spc/mpidebug.c   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sallsdk/spc/mpidebug.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sallsdk/spc/sadefs.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sallsdk/spc/sadisc.c   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sallsdk/spc/saframe.c   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sallsdk/spc/saglobal.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sallsdk/spc/sahw.c   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sallsdk/spc/sahwreg.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sallsdk/spc/sainit.c   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sallsdk/spc/saint.c   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sallsdk/spc/saioctlcmd.c   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sallsdk/spc/sallist.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sallsdk/spc/samacro.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sallsdk/spc/sampicmd.c   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sallsdk/spc/sampidefs.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sallsdk/spc/sampirsp.c   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sallsdk/spc/saphy.c   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sallsdk/spc/saport.c   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sallsdk/spc/saproto.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sallsdk/spc/sasata.c   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sallsdk/spc/sasmp.c   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sallsdk/spc/sassp.c   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sallsdk/spc/satimer.c   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sallsdk/spc/satypes.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sallsdk/spc/sautil.c   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sallsdk/spc/spcdefs.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sat/api/sm.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sat/api/smapi.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sat/api/tdsmapi.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sat/src/smdefs.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sat/src/sminit.c   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sat/src/smlist.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sat/src/smmisc.c   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sat/src/smproto.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sat/src/smsat.c   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sat/src/smsatcb.c   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sat/src/smsathw.c   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sat/src/smtimer.c   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/sat/src/smtypes.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/api/ostiapi.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/api/tiapi.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/api/tidefs.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/api/tiglobal.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/api/tiscsi.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/api/titypes.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/sassata/common/ossa.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/sassata/common/ossacmnapi.c   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/sassata/common/tddefs.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/sassata/common/tddmcmnapi.c   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/sassata/common/tdesgl.c   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/sassata/common/tdhw.c   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/sassata/common/tdinit.c   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/sassata/common/tdint.c   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/sassata/common/tdioctl.c   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/sassata/common/tdioctl.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/sassata/common/tdlist.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/sassata/common/tdmisc.c   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/sassata/common/tdport.c   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/sassata/common/tdproto.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/sassata/common/tdsatypes.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/sassata/common/tdsmcmnapi.c   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/sassata/common/tdtimers.c   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/sassata/common/tdutil.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/sassata/common/wcs.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/sassata/sas/common/tdtypes.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/sassata/sas/ini/itdcb.c   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/sassata/sas/ini/itddefs.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/sassata/sas/ini/itddisc.c   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/sassata/sas/ini/itdglobl.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/sassata/sas/ini/itdinit.c   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/sassata/sas/ini/itdio.c   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/sassata/sas/ini/itdtypes.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/sassata/sas/tgt/ttdcb.c   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/sassata/sas/tgt/ttdglobl.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/sassata/sas/tgt/ttdinit.c   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/sassata/sas/tgt/ttdio.c   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/sassata/sas/tgt/ttdreset.c   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/sassata/sas/tgt/ttdsmp.c   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/sassata/sas/tgt/ttdtimer.c   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/sassata/sas/tgt/ttdtxchg.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/sassata/sas/tgt/ttdtypes.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/sassata/sata/host/ossasat.c   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/sassata/sata/host/sat.c   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/sassata/sata/host/sat.h   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/sassata/sata/host/sathw.c   (contents, props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/sassata/sata/host/satproto.h   (contents, props changed)
  stable/10/sys/dev/pms/config.h   (contents, props changed)
  stable/10/sys/dev/pms/freebsd/driver/common/encrypt_ioctl.h   (contents, props changed)
  stable/10/sys/dev/pms/freebsd/driver/common/lxcommon.h   (contents, props changed)
  stable/10/sys/dev/pms/freebsd/driver/common/lxencrypt.c   (contents, props changed)
  stable/10/sys/dev/pms/freebsd/driver/common/lxencrypt.h   (contents, props changed)
  stable/10/sys/dev/pms/freebsd/driver/common/lxosapi.c   (contents, props changed)
  stable/10/sys/dev/pms/freebsd/driver/common/lxproto.h   (contents, props changed)
  stable/10/sys/dev/pms/freebsd/driver/common/lxutil.c   (contents, props changed)
  stable/10/sys/dev/pms/freebsd/driver/common/osdebug.h   (contents, props changed)
  stable/10/sys/dev/pms/freebsd/driver/common/osenv.h   (contents, props changed)
  stable/10/sys/dev/pms/freebsd/driver/common/osstring.h   (contents, props changed)
  stable/10/sys/dev/pms/freebsd/driver/common/ostypes.h   (contents, props changed)
  stable/10/sys/dev/pms/freebsd/driver/ini/src/Readme.freebsd.txt   (contents, props changed)
  stable/10/sys/dev/pms/freebsd/driver/ini/src/agdef.h   (contents, props changed)
  stable/10/sys/dev/pms/freebsd/driver/ini/src/agtiapi.c   (contents, props changed)
  stable/10/sys/dev/pms/freebsd/driver/ini/src/agtiapi.h   (contents, props changed)
  stable/10/sys/dev/pms/freebsd/driver/ini/src/agtiproto.h   (contents, props changed)
  stable/10/sys/dev/pms/freebsd/driver/ini/src/osapi.c   (contents, props changed)
  stable/10/sys/modules/pms/
  stable/10/sys/modules/pms/Makefile   (contents, props changed)
  stable/10/sys/modules/pms/Makefile.inc   (contents, props changed)
Directory Properties:
  stable/10/sys/dev/pms/   (props changed)
  stable/10/sys/dev/pms/RefTisa/   (props changed)
  stable/10/sys/dev/pms/RefTisa/discovery/   (props changed)
  stable/10/sys/dev/pms/RefTisa/discovery/api/   (props changed)
  stable/10/sys/dev/pms/RefTisa/discovery/dm/   (props changed)
  stable/10/sys/dev/pms/RefTisa/sallsdk/   (props changed)
  stable/10/sys/dev/pms/RefTisa/sallsdk/api/   (props changed)
  stable/10/sys/dev/pms/RefTisa/sallsdk/hda/   (props changed)
  stable/10/sys/dev/pms/RefTisa/sallsdk/hda/64k/   (props changed)
  stable/10/sys/dev/pms/RefTisa/sallsdk/spc/   (props changed)
  stable/10/sys/dev/pms/RefTisa/sat/   (props changed)
  stable/10/sys/dev/pms/RefTisa/sat/api/   (props changed)
  stable/10/sys/dev/pms/RefTisa/sat/src/   (props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/   (props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/api/   (props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/sassata/   (props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/sassata/common/   (props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/sassata/sas/   (props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/sassata/sas/common/   (props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/sassata/sas/ini/   (props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/sassata/sas/tgt/   (props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/sassata/sata/   (props changed)
  stable/10/sys/dev/pms/RefTisa/tisa/sassata/sata/host/   (props changed)
  stable/10/sys/dev/pms/freebsd/   (props changed)
  stable/10/sys/dev/pms/freebsd/driver/   (props changed)
  stable/10/sys/dev/pms/freebsd/driver/common/   (props changed)
  stable/10/sys/dev/pms/freebsd/driver/ini/   (props changed)
  stable/10/sys/dev/pms/freebsd/driver/ini/src/   (props changed)
Modified:
  stable/10/sys/amd64/conf/GENERIC
  stable/10/sys/amd64/conf/NOTES
  stable/10/sys/conf/files
  stable/10/sys/i386/conf/GENERIC
  stable/10/sys/i386/conf/NOTES
  stable/10/sys/modules/Makefile

Modified: stable/10/sys/amd64/conf/GENERIC
==============================================================================
--- stable/10/sys/amd64/conf/GENERIC	Thu Jul 23 02:20:41 2015	(r285808)
+++ stable/10/sys/amd64/conf/GENERIC	Thu Jul 23 05:26:09 2015	(r285809)
@@ -160,6 +160,7 @@ device		ida			# Compaq Smart RAID
 device		mfi			# LSI MegaRAID SAS
 device		mlx			# Mylex DAC960 family
 device		mrsas			# LSI/Avago MegaRAID SAS/SATA, 6Gb/s and 12Gb/s
+device		pmspcv			# PMC-Sierra SAS/SATA Controller driver
 #XXX pointer/int warnings
 #device		pst			# Promise Supertrak SX6000
 device		twe			# 3ware ATA RAID

Modified: stable/10/sys/amd64/conf/NOTES
==============================================================================
--- stable/10/sys/amd64/conf/NOTES	Thu Jul 23 02:20:41 2015	(r285808)
+++ stable/10/sys/amd64/conf/NOTES	Thu Jul 23 05:26:09 2015	(r285809)
@@ -454,6 +454,10 @@ device         nvme    # base NVMe drive
 device         nvd     # expose NVMe namespaces as disks, depends on nvme
 
 #
+# PMC-Sierra SAS/SATA controller
+device		pmspcv
+
+#
 # SafeNet crypto driver: can be moved to the MI NOTES as soon as
 # it's tested on a big-endian machine
 #

Modified: stable/10/sys/conf/files
==============================================================================
--- stable/10/sys/conf/files	Thu Jul 23 02:20:41 2015	(r285808)
+++ stable/10/sys/conf/files	Thu Jul 23 05:26:09 2015	(r285809)
@@ -2015,6 +2015,102 @@ dev/pdq/if_fea.c		optional fea eisa
 dev/pdq/if_fpa.c		optional fpa pci
 dev/pdq/pdq.c			optional nowerror fea eisa | fpa pci
 dev/pdq/pdq_ifsubr.c		optional nowerror fea eisa | fpa pci
+dev/pms/freebsd/driver/ini/src/agtiapi.c		optional pmspcv \
+	compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w"
+dev/pms/RefTisa/sallsdk/spc/sadisc.c			optional pmspcv \
+	compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w"
+dev/pms/RefTisa/sallsdk/spc/mpi.c			optional pmspcv \
+	compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w"
+dev/pms/RefTisa/sallsdk/spc/saframe.c			optional pmspcv \
+	compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w"
+dev/pms/RefTisa/sallsdk/spc/sahw.c			optional pmspcv \
+	compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w"
+dev/pms/RefTisa/sallsdk/spc/sainit.c			optional pmspcv \
+	compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w"
+dev/pms/RefTisa/sallsdk/spc/saint.c			optional pmspcv \
+	compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w"
+dev/pms/RefTisa/sallsdk/spc/sampicmd.c			optional pmspcv \
+	compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w"
+dev/pms/RefTisa/sallsdk/spc/sampirsp.c			optional pmspcv \
+	compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w"
+dev/pms/RefTisa/sallsdk/spc/saphy.c			optional pmspcv \
+	compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w"
+dev/pms/RefTisa/sallsdk/spc/saport.c			optional pmspcv \
+	compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w"
+dev/pms/RefTisa/sallsdk/spc/sasata.c			optional pmspcv \
+	compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w"
+dev/pms/RefTisa/sallsdk/spc/sasmp.c			optional pmspcv \
+	compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w"
+dev/pms/RefTisa/sallsdk/spc/sassp.c			optional pmspcv \
+	compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w"
+dev/pms/RefTisa/sallsdk/spc/satimer.c			optional pmspcv \
+	compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w"
+dev/pms/RefTisa/sallsdk/spc/sautil.c			optional pmspcv \
+	compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w"
+dev/pms/RefTisa/sallsdk/spc/saioctlcmd.c		optional pmspcv \
+	compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w"
+dev/pms/RefTisa/sallsdk/spc/mpidebug.c			optional pmspcv \
+	compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w"
+dev/pms/RefTisa/discovery/dm/dminit.c			optional pmspcv \
+	compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w"
+dev/pms/RefTisa/discovery/dm/dmsmp.c			optional pmspcv \
+	compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w"
+dev/pms/RefTisa/discovery/dm/dmdisc.c			optional pmspcv \
+	compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w"
+dev/pms/RefTisa/discovery/dm/dmport.c			optional pmspcv \
+	compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w"
+dev/pms/RefTisa/discovery/dm/dmtimer.c			optional pmspcv \
+	compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w"
+dev/pms/RefTisa/discovery/dm/dmmisc.c			optional pmspcv \
+	compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w"
+dev/pms/RefTisa/sat/src/sminit.c			optional pmspcv \
+	compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w"
+dev/pms/RefTisa/sat/src/smmisc.c			optional pmspcv \
+	compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w"
+dev/pms/RefTisa/sat/src/smsat.c				optional pmspcv \
+	compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w"
+dev/pms/RefTisa/sat/src/smsatcb.c			optional pmspcv \
+	compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w"
+dev/pms/RefTisa/sat/src/smsathw.c			optional pmspcv \
+	compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w"
+dev/pms/RefTisa/sat/src/smtimer.c			optional pmspcv \
+	compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w"
+dev/pms/RefTisa/tisa/sassata/common/tdinit.c		optional pmspcv \
+	compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w"
+dev/pms/RefTisa/tisa/sassata/common/tdmisc.c		optional pmspcv \
+	compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w"
+dev/pms/RefTisa/tisa/sassata/common/tdesgl.c		optional pmspcv \
+	compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w"
+dev/pms/RefTisa/tisa/sassata/common/tdport.c		optional pmspcv \
+	compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w"
+dev/pms/RefTisa/tisa/sassata/common/tdint.c		optional pmspcv \
+	compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w"
+dev/pms/RefTisa/tisa/sassata/common/tdioctl.c		optional pmspcv \
+	compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w"
+dev/pms/RefTisa/tisa/sassata/common/tdhw.c		optional pmspcv \
+	compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w"
+dev/pms/RefTisa/tisa/sassata/common/ossacmnapi.c	optional pmspcv \
+	compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w"
+dev/pms/RefTisa/tisa/sassata/common/tddmcmnapi.c	optional pmspcv \
+	compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w"
+dev/pms/RefTisa/tisa/sassata/common/tdsmcmnapi.c	optional pmspcv \
+	compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w"
+dev/pms/RefTisa/tisa/sassata/common/tdtimers.c		optional pmspcv \
+	compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w"
+dev/pms/RefTisa/tisa/sassata/sas/ini/itdio.c		optional pmspcv \
+	compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w"
+dev/pms/RefTisa/tisa/sassata/sas/ini/itdcb.c		optional pmspcv \
+	compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w"
+dev/pms/RefTisa/tisa/sassata/sas/ini/itdinit.c		optional pmspcv \
+	compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w"
+dev/pms/RefTisa/tisa/sassata/sas/ini/itddisc.c		optional pmspcv \
+	compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w"
+dev/pms/RefTisa/tisa/sassata/sata/host/sat.c		optional pmspcv \
+	compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w"
+dev/pms/RefTisa/tisa/sassata/sata/host/ossasat.c	optional pmspcv \
+	compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w"
+dev/pms/RefTisa/tisa/sassata/sata/host/sathw.c		optional pmspcv \
+	compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w"
 dev/ppbus/if_plip.c		optional plip
 dev/ppbus/immio.c		optional vpo
 dev/ppbus/lpbb.c		optional lpbb

Added: stable/10/sys/dev/pms/RefTisa/discovery/api/dm.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/10/sys/dev/pms/RefTisa/discovery/api/dm.h	Thu Jul 23 05:26:09 2015	(r285809)
@@ -0,0 +1,163 @@
+/*******************************************************************************
+**
+*Copyright (c) 2014 PMC-Sierra, Inc.  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$
+*
+********************************************************************************/
+/********************************************************************************
+**    
+*   dm.h 
+*
+*   Abstract:   This module defines the contants, enum and #define definition used
+*               by Discovery Moduled (DM).
+*     
+********************************************************************************/
+
+#ifndef DM_H
+
+#define DM_H
+
+/*************************************************
+ *   constants for type field in agsaMem_t
+ *************************************************/
+#define DM_CACHED_MEM                             0x00     /**< CACHED memory type */
+#define DM_DMA_MEM                                0x01     /**< DMA memory type */
+#define DM_CACHED_DMA_MEM                         0x02     /**< CACHED DMA memory type */
+
+/*************************************************
+ *   constants for API return values
+ *************************************************/
+#define DM_RC_SUCCESS                             0x00     /**< Successful function return value */
+#define DM_RC_FAILURE                             0x01     /**< Failed function return value */
+#define DM_RC_BUSY                                0x02     /**< Busy function return value */
+#define DM_RC_VERSION_INCOMPATIBLE                0x03     /**< Version miss match */
+#define DM_RC_VERSION_UNTESTED                    0x04     /**< Version not tested */
+
+
+
+/*************************************************
+ *   Discovery option
+ *************************************************/
+#define DM_DISCOVERY_OPTION_FULL_START			0x00     /**< Full discovery */
+#define DM_DISCOVERY_OPTION_INCREMENTAL_START		0x01     /**< Incremental discovery */
+#define DM_DISCOVERY_OPTION_ABORT			0x02     /**< Discovery abort */
+
+
+/*************************************************
+ *   Discovery status
+ *************************************************/
+enum dmDiscoveryState_e
+{
+  dmDiscCompleted  = 0,
+  dmDiscFailed,
+  dmDiscAborted,
+  dmDiscAbortFailed,
+  dmDiscInProgress,
+  dmDiscAbortInvalid, /* no discovery to abort */   
+  dmDiscAbortInProgress, /* abort in progress */   
+
+};
+
+/*************************************************
+ *   Device status
+ *************************************************/
+enum dmDeviceState_e
+{
+  dmDeviceNoChange = 0,
+  dmDeviceArrival,
+  dmDeviceRemoval,
+  dmDeviceMCNChange,
+  dmDeviceRateChange,
+};
+
+typedef struct  dmContext_s {
+		void		*tdData;
+		void		*dmData;
+} dmContext_t;
+
+typedef struct{
+        bit16	smpTimeout;
+        bit16	it_NexusTimeout;
+        bit16	firstBurstSize;
+        bit8	 flag;
+        bit8	 devType_S_Rate;
+        bit8 	sasAddressHi[4]; 
+        bit8 	sasAddressLo[4];
+        bit8    initiator_ssp_stp_smp;
+        bit8    target_ssp_stp_smp;
+        /* bit8 - bit14 are set by the user of DM such as TDM for directly attached expander
+           0 - 7; PhyID 
+           8: non SMP or not
+           9 - 10: types of expander, valid only when bit8 is set
+                   10b (2): edge expander
+                   11b (3): fanout expander
+           11 - 14: MCN
+        */
+        bit16   ext;
+        bit8    sataDeviceType;
+        bit8    reserved;
+} dmDeviceInfo_t;
+
+
+typedef struct{
+	void 	*virtPtr;
+	void 	*osHandle;
+	bit32 	physAddrUpper;
+	bit32 	physAddrLower;
+	bit32 	totalLength;
+	bit32 	numElements;
+	bit32 	singleElementLength;
+	bit32 	alignment;
+	bit32 	type;
+	bit32 	reserved;
+} dmMem_t;
+
+#define DM_NUM_MEM_CHUNKS 8
+
+typedef struct{
+	bit32 		count;
+	dmMem_t 	dmMemory[DM_NUM_MEM_CHUNKS];
+} dmMemoryRequirement_t;
+
+typedef    dmContext_t    dmPortContext_t;
+
+typedef    dmContext_t    dmRoot_t;
+
+typedef struct{
+ bit32   numDevHandles;
+ bit32   tbd1;
+ bit32   tbd2;
+#ifdef DM_DEBUG
+ bit32   DMDebugLevel;
+#endif
+ bit32   itNexusTimeout;
+} dmSwConfig_t;
+
+typedef struct{
+               bit8  	sasRemoteAddressHi[4]; 
+               bit8  	sasRemoteAddressLo[4]; 
+               bit8  	sasLocalAddressHi[4]; 
+               bit8  	sasLocalAddressLo[4]; 
+               bit32    flag;
+} dmPortInfo_t;
+
+
+#endif  /* DM_H */

Added: stable/10/sys/dev/pms/RefTisa/discovery/api/dmapi.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/10/sys/dev/pms/RefTisa/discovery/api/dmapi.h	Thu Jul 23 05:26:09 2015	(r285809)
@@ -0,0 +1,89 @@
+/*******************************************************************************
+**
+*Copyright (c) 2014 PMC-Sierra, Inc.  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$
+*
+********************************************************************************/
+/********************************************************************************
+*   dmapi.h 
+*
+*   Abstract:   This module contains function prototype of the Discovery
+*               Module (DM) API for initiator.
+*******************************************************************************/
+
+#ifndef DMAPI_H
+#define DMAPI_H
+
+#include <dev/pms/RefTisa/discovery/api/dm.h>
+#include <dev/pms/RefTisa/sallsdk/api/sa.h>
+
+osGLOBAL bit32  dmCreatePort(  
+       dmRoot_t        *dmRoot,
+       dmPortContext_t *dmPortContext,
+       dmPortInfo_t    *dmPortInfo);
+
+osGLOBAL bit32  dmDestroyPort(  
+       dmRoot_t        *dmRoot,
+       dmPortContext_t *dmPortContext,
+       dmPortInfo_t    *dmPortInfo);
+
+osGLOBAL bit32  dmRegisterDevice(  
+       dmRoot_t        *dmRoot,
+       dmPortContext_t *dmPortContext,
+       dmDeviceInfo_t  *dmDeviceInfo,
+       agsaDevHandle_t *agDevHandle);
+
+osGLOBAL bit32  dmDiscover(  
+       dmRoot_t        *dmRoot,
+       dmPortContext_t *dmPortContext,
+       bit32            option);
+
+osGLOBAL void dmGetRequirements(
+       dmRoot_t              *dmRoot,
+       dmSwConfig_t          *swConfig,
+       dmMemoryRequirement_t *memoryRequirement,
+       bit32                 *usecsPerTick,
+       bit32                 *maxNumLocks);
+
+osGLOBAL void dmNotifyBC(
+       dmRoot_t        *dmRoot,
+       dmPortContext_t *dmPortContext,
+       bit32            type);
+
+osGLOBAL bit32  dmQueryDiscovery(  
+       dmRoot_t        *dmRoot,
+       dmPortContext_t *dmPortContext);
+       
+osGLOBAL bit32 	
+dmResetFailedDiscovery(  
+                 dmRoot_t               *dmRoot,
+                 dmPortContext_t        *dmPortContext);
+
+osGLOBAL bit32  dmInitialize(
+       dmRoot_t             *dmRoot,
+       agsaRoot_t           *agRoot,
+       dmMemoryRequirement_t *memoryAllocated,
+       dmSwConfig_t          *swConfig,
+       bit32                 usecsPerTick );
+
+osGLOBAL void   dmTimerTick ( dmRoot_t  *dmRoot );
+
+#endif  /* DMAPI_H */

Added: stable/10/sys/dev/pms/RefTisa/discovery/api/tddmapi.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/10/sys/dev/pms/RefTisa/discovery/api/tddmapi.h	Thu Jul 23 05:26:09 2015	(r285809)
@@ -0,0 +1,119 @@
+/*******************************************************************************
+*Copyright (c) 2014 PMC-Sierra, Inc.  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$
+*
+********************************************************************************/
+/********************************************************************************
+*   tmdmapi.h 
+*
+*   Abstract:   This module contains function prototype of the Discovery
+*               Module (DM) API callback for initiator.
+*******************************************************************************/
+
+#ifndef TDDMAPI_H
+
+#define TDDMAPI_H
+
+osGLOBAL void tddmCacheFlush(
+				dmRoot_t 	*dmRoot,
+				void 		*tdMemHandle,
+				void 		*virtPtr,
+				bit32 		length
+				);
+
+osGLOBAL void tddmCacheInvalidate(
+				dmRoot_t 	*dmRoot,
+				void 		*tdMemHandle,
+				void 		*virtPtr,
+				bit32 		length
+				);
+
+osGLOBAL void tddmCachePreFlush(
+				dmRoot_t 	*dmRoot,
+				void 		*tdMemHandle,
+				void 		*virtPtr,
+				bit32 		length
+				);
+
+osGLOBAL void tddmDiscoverCB(
+				dmRoot_t 		*dmRoot,
+				dmPortContext_t		*dmPortContext,
+				bit32			eventStatus
+				);
+
+osGLOBAL void tddmQueryDiscoveryCB(
+				dmRoot_t 		*dmRoot,
+				dmPortContext_t		*dmPortContext,
+				bit32          		discType,
+				bit32			discState
+				);
+
+osGLOBAL void tddmReportDevice(
+				dmRoot_t 		*dmRoot,
+				dmPortContext_t		*dmPortContext,
+				dmDeviceInfo_t		*dmDeviceInfo,
+                                dmDeviceInfo_t		*dmExpDeviceInfo,
+				bit32                   flag				
+				);
+
+osGLOBAL bit8 tddmSATADeviceTypeDecode(bit8 * pSignature);
+
+osGLOBAL void tddmSingleThreadedEnter(
+				       dmRoot_t 		*dmRoot,
+				       bit32    		syncLockId
+				      );
+				      
+osGLOBAL void tddmSingleThreadedLeave(
+				       dmRoot_t 		*dmRoot,
+				       bit32    		syncLockId
+				      );
+osGLOBAL bit32 tddmGetTransportParam(
+                        dmRoot_t    *dmRoot,
+                        char        *key,
+                        char        *subkey1,
+                        char        *subkey2,
+                        char        *subkey3,
+                        char        *subkey4,
+                        char        *subkey5,
+                        char        *valueName,
+                        char        *buffer,
+                        bit32       bufferLen,
+                        bit32       *lenReceived
+                        );
+osGLOBAL bit32 
+tddmRotateQnumber(
+                  dmRoot_t          *dmRoot,
+                  agsaDevHandle_t   *agDevHandle
+                 );
+#ifndef tddmLogDebugString 
+GLOBAL void tddmLogDebugString(
+                         dmRoot_t     *dmRoot,
+                         bit32        level,
+                         char         *string,
+                         void         *ptr1,
+                         void         *ptr2,
+                         bit32        value1,
+                         bit32        value2
+                         );
+#endif
+
+
+#endif  /* TDDMAPI_H */

Added: stable/10/sys/dev/pms/RefTisa/discovery/dm/dmdefs.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/10/sys/dev/pms/RefTisa/discovery/dm/dmdefs.h	Thu Jul 23 05:26:09 2015	(r285809)
@@ -0,0 +1,1229 @@
+/*******************************************************************************
+**
+* Copyright (c) 2014 PMC-Sierra, Inc.  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$
+*
+********************************************************************************/
+#ifndef __DMDEFS_H__
+#define __DMDEFS_H__
+
+#include <dev/pms/RefTisa/tisa/sassata/common/ossa.h>
+
+#define DIRECT_SMP
+//#undef DIRECT_SMP
+
+/* the index for memory requirement, must be continious */
+#define DM_ROOT_MEM_INDEX                          0                       /**< the index of dm root memory */
+#define DM_PORT_MEM_INDEX                          1                       /**< the index of port context memory */
+#define DM_DEVICE_MEM_INDEX                        2                       /**< the index of Device descriptors memory */
+#define DM_EXPANDER_MEM_INDEX                      3                       /**< the index of Expander device descriptors memory */
+#define DM_SMP_MEM_INDEX                           4                       /**< the index of SMP command descriptors memory */
+#define DM_INDIRECT_SMP_MEM_INDEX                  5                       /**< the index of Indirect SMP command descriptors memory */
+
+
+
+#define DM_MAX_NUM_PHYS                         16
+#define DM_MAX_EXPANDER_PHYS                    256
+#define DM_MAX_DEV                              2048
+#define DM_MAX_EXPANDER_DEV                     32
+#define DM_MAX_PORT_CONTEXT                     16
+#define DM_MAX_SMP                              32
+#define DM_MAX_INDIRECT_SMP                     DM_MAX_SMP
+
+#define DM_USECS_PER_TICK                       1000000                   /**< defines the heart beat of the LL layer 10ms */
+
+/*
+*  FIS type 
+*/
+#define PIO_SETUP_DEV_TO_HOST_FIS   0x5F
+#define REG_DEV_TO_HOST_FIS         0x34 
+#define SET_DEV_BITS_FIS            0xA1
+
+#define DEFAULT_KEY_BUFFER_SIZE     64
+ 
+enum dm_locks_e
+{
+  DM_PORT_LOCK = 0,
+  DM_DEVICE_LOCK,
+  DM_EXPANDER_LOCK,
+  DM_TIMER_LOCK,
+  DM_SMP_LOCK,
+  DM_MAX_LOCKS
+};
+/* default SMP timeout: 0xFFFF is the Maximum Allowed */
+#define DEFAULT_SMP_TIMEOUT       0xFFFF
+
+/* SMP direct payload size limit: IOMB direct payload size = 48 */
+#define SMP_DIRECT_PAYLOAD_LIMIT 44
+
+#define SMP_INDIRECT_PAYLOAD	512
+
+/* SMP maximum payload size allowed by SAS spec withtout CRC 4 bytes */
+#define SMP_MAXIMUM_PAYLOAD      1024
+
+/*! \def MIN(a,b)
+* \brief MIN macro
+*
+* use to find MIN of two values
+*/
+#ifndef MIN
+#define MIN(a,b) ((a) < (b) ? (a) : (b))
+#endif
+
+/*! \def MAX(a,b)
+* \brief MAX macro
+*
+* use to find MAX of two values
+*/
+#ifndef MAX
+#define MAX(a,b) ((a) < (b) ? (b) : (a))
+#endif
+
+#ifndef agNULL
+#define agNULL     ((void *)0)
+#endif
+
+/* for debugging print */
+#if defined(DM_DEBUG)
+
+/*
+* for debugging purposes.  
+*/
+extern bit32 gDMDebugLevel;
+
+#define DM_DBG0(format) tddmLogDebugString(gDMDebugLevel, 0, format)
+#define DM_DBG1(format) tddmLogDebugString(gDMDebugLevel, 1, format)
+#define DM_DBG2(format) tddmLogDebugString(gDMDebugLevel, 2, format)
+#define DM_DBG3(format) tddmLogDebugString(gDMDebugLevel, 3, format)
+#define DM_DBG4(format) tddmLogDebugString(gDMDebugLevel, 4, format)
+#define DM_DBG5(format) tddmLogDebugString(gDMDebugLevel, 5, format)
+#define DM_DBG6(format) tddmLogDebugString(gDMDebugLevel, 6, format)
+
+
+#else
+
+#define DM_DBG0(format)
+#define DM_DBG1(format)
+#define DM_DBG2(format)
+#define DM_DBG3(format)
+#define DM_DBG4(format)
+#define DM_DBG5(format)
+#define DM_DBG6(format)
+
+#endif /* DM_DEBUG */
+
+//#define DM_ASSERT OS_ASSERT
+//#define tddmLogDebugString TIDEBUG_MSG
+
+/* discovery related state */
+#define DM_DSTATE_NOT_STARTED                 0 
+#define DM_DSTATE_STARTED                     1
+#define DM_DSTATE_COMPLETED                   2
+#define DM_DSTATE_COMPLETED_WITH_FAILURE      3
+
+/* SAS/SATA discovery status */
+#define DISCOVERY_NOT_START                       0                       /**< status indicates discovery not started */
+#define DISCOVERY_UP_STREAM                       1                       /**< status indicates discover upstream */
+#define DISCOVERY_DOWN_STREAM                     2                       /**< status indicates discover downstream */
+#define DISCOVERY_CONFIG_ROUTING                  3                       /**< status indicates discovery config routing table */
+#define DISCOVERY_SAS_DONE                        4                       /**< status indicates discovery done */
+#define DISCOVERY_REPORT_PHY_SATA                 5                       /**< status indicates discovery report phy sata */
+
+/* SMP function */
+#define SMP_REPORT_GENERAL                         0x00
+#define SMP_REPORT_MANUFACTURE_INFORMATION         0x01
+#define SMP_READ_GPIO_REGISTER                     0x02
+#define SMP_DISCOVER                               0x10
+#define SMP_REPORT_PHY_ERROR_LOG                   0x11
+#define SMP_REPORT_PHY_SATA                        0x12
+#define SMP_REPORT_ROUTING_INFORMATION             0x13
+#define SMP_WRITE_GPIO_REGISTER                    0x82
+#define SMP_CONFIGURE_ROUTING_INFORMATION          0x90
+#define SMP_PHY_CONTROL                            0x91
+#define SMP_PHY_TEST_FUNCTION                      0x92
+#define SMP_PMC_SPECIFIC                           0xC0
+#define SMP_DISCOVER_LIST                          0x20
+
+
+/* SMP function results */
+#define SMP_FUNCTION_ACCEPTED                      0x00
+#define UNKNOWN_SMP_FUNCTION                       0x01
+#define SMP_FUNCTION_FAILED                        0x02
+#define INVALID_REQUEST_FRAME_LENGTH               0x03
+#define INVALID_EXPANDER_CHANGE_COUNT              0x04
+#define SMP_FN_BUSY                                0x05
+#define INCOMPLETE_DESCRIPTOR_LIST                 0x06
+#define PHY_DOES_NOT_EXIST                         0x10
+#define INDEX_DOES_NOT_EXIST                       0x11
+#define PHY_DOES_NOT_SUPPORT_SATA                  0x12
+#define UNKNOWN_PHY_OPERATION                      0x13
+#define UNKNOWN_PHY_TEST_FUNCTION                  0x14
+#define PHY_TEST_FUNCTION_IN_PROGRESS              0x15
+#define PHY_VACANT                                 0x16
+#define UNKNOWN_PHY_EVENT_SOURCE                   0x17
+#define UNKNOWN_DESCRIPTOT_TYPE                    0x18
+#define UNKNOWN_PHY_FILETER                        0x19
+#define AFFILIATION_VIOLATION                      0x1A
+#define SMP_ZONE_VIOLATION                         0x20
+#define NO_MANAGEMENT_ACCESS_RIGHTS                0x21
+#define UNKNOWN_ENABLE_DISABLE_ZONING_VALUE        0x22
+#define ZONE_LOCK_VIOLATION                        0x23
+#define NOT_ACTIVATED                              0x24
+#define ZONE_GROUP_OUT_OF_RANGE                    0x25
+#define NO_PHYSICAL_PRESENCE                       0x26
+#define SAVING_NOT_SUPPORTED                       0x27
+#define SOURCE_ZONE_GROUP_DOES_NOT_EXIST           0x28
+#define DISABLED_PASSWORD_NOT_SUPPORTED            0x29
+
+/* SMP PHY CONTROL OPERATION */
+#define SMP_PHY_CONTROL_NOP                        0x00
+#define SMP_PHY_CONTROL_LINK_RESET                 0x01
+#define SMP_PHY_CONTROL_HARD_RESET                 0x02
+#define SMP_PHY_CONTROL_DISABLE                    0x03
+#define SMP_PHY_CONTROL_CLEAR_ERROR_LOG            0x05
+#define SMP_PHY_CONTROL_CLEAR_AFFILIATION          0x06
+#define SMP_PHY_CONTROL_XMIT_SATA_PS_SIGNAL        0x07
+
+#define DM_VEN_DEV_SPC                               0x80010000
+#define DM_VEN_DEV_ADAPSPC                           0x80810000
+#define DM_VEN_DEV_SPCv                              0x80080000
+#define DM_VEN_DEV_SPCve                             0x80090000
+#define DM_VEN_DEV_SPCvplus                          0x80180000
+#define DM_VEN_DEV_SPCveplus                         0x80190000
+#define DM_VEN_DEV_ADAPvplus                         0x80880000
+#define DM_VEN_DEV_ADAPveplus                        0x80890000
+
+#define DMIsSPC(agr)           (DM_VEN_DEV_SPC        == (ossaHwRegReadConfig32(agr,0 ) & 0xFFFF0000) ? 1 : 0) /* returns true config space read is SPC */
+#define DMIsSPCADAP(agr)       (DM_VEN_DEV_SPC        == (ossaHwRegReadConfig32(agr,0 ) & 0xFFFF0000) ? 1 : 0) /* returns true config space read is SPC */
+#define DMIsSPCv(agr)          (DM_VEN_DEV_SPCv       == (ossaHwRegReadConfig32(agr,0 ) & 0xFFFF0000) ? 1 : 0) /* returns true config space read is SPCv */
+#define DMIsSPCve(agr)         (DM_VEN_DEV_SPCve      == (ossaHwRegReadConfig32(agr,0 ) & 0xFFFF0000) ? 1 : 0) /* returns true config space read is SPCve */
+#define DMIsSPCvplus(agr)      (DM_VEN_DEV_SPCvplus   == (ossaHwRegReadConfig32(agr,0 ) & 0xFFFF0000) ? 1 : 0) /* returns true config space read is SPCv+ */
+#define DMIsSPCveplus(agr)     (DM_VEN_DEV_SPCveplus  == (ossaHwRegReadConfig32(agr,0 ) & 0xFFFF0000) ? 1 : 0) /* returns true config space read is SPCve+ */
+#define DMIsSPCADAPvplus(agr)  (DM_VEN_DEV_ADAPvplus  == (ossaHwRegReadConfig32(agr,0 ) & 0xFFFF0000) ? 1 : 0) /* returns true config space read is SPCv+ */
+#define DMIsSPCADAPveplus(agr) (DM_VEN_DEV_ADAPveplus == (ossaHwRegReadConfig32(agr,0 ) & 0xFFFF0000) ? 1 : 0) /* returns true config space read is SPCve+ */
+
+/****************************************************************
+ *            SAS 1.1 Spec
+ ****************************************************************/
+/* SMP header definition */
+typedef struct dmSMPFrameHeader_s
+{
+    bit8   smpFrameType;      /* The first byte of SMP frame represents the SMP FRAME TYPE */ 
+    bit8   smpFunction;       /* The second byte of the SMP frame represents the SMP FUNCTION */
+    bit8   smpFunctionResult; /* The third byte of SMP frame represents FUNCTION RESULT of the SMP response. */
+    bit8   smpReserved;       /* reserved */
+} dmSMPFrameHeader_t;
+
+/****************************************************************
+ *            report general request
+ ****************************************************************/
+#ifdef FOR_COMPLETENESS
+typedef struct smpReqReportGeneral_s 
+{
+  /* nothing. some compiler disallowed structure with no member */
+} smpReqReportGeneral_t; 
+#endif
+
+/****************************************************************
+ *            report general response
+ ****************************************************************/
+#define REPORT_GENERAL_CONFIGURING_BIT     0x2
+#define REPORT_GENERAL_CONFIGURABLE_BIT    0x1
+#define REPORT_GENERAL_LONG_RESPONSE_BIT   0x80
+
+typedef struct smpRespReportGeneral_s
+{
+  bit8   expanderChangeCount16[2];
+  bit8   expanderRouteIndexes16[2];
+  bit8   reserved1; /* byte 9; has LONG Response for SAS 2 at bit 8 */
+  bit8   numOfPhys;
+  bit8   configuring_configurable;  
+    /* B7-2 : reserved */
+    /* B1   : configuring */
+    /* B0   : configurable */
+  bit8   reserved4[17];
+} smpRespReportGeneral_t;
+
+#define REPORT_GENERAL_IS_CONFIGURING(pResp) \
+  (((pResp)->configuring_configurable & REPORT_GENERAL_CONFIGURING_BIT) == \
+      REPORT_GENERAL_CONFIGURING_BIT)
+
+#define REPORT_GENERAL_IS_CONFIGURABLE(pResp) \
+  (((pResp)->configuring_configurable & REPORT_GENERAL_CONFIGURABLE_BIT) == \
+      REPORT_GENERAL_CONFIGURABLE_BIT)
+
+#define REPORT_GENERAL_GET_ROUTEINDEXES(pResp) \
+  DMA_BEBIT16_TO_BIT16(*(bit16 *)((pResp)->expanderRouteIndexes16))
+
+#define REPORT_GENERAL_IS_LONG_RESPONSE(pResp) \
+  (((pResp)->reserved1 & REPORT_GENERAL_LONG_RESPONSE_BIT) == \
+      REPORT_GENERAL_LONG_RESPONSE_BIT)
+            
+/****************************************************************
+ *            report manufacturer info response
+ ****************************************************************/
+typedef struct smpRespReportManufactureInfo_s 
+{
+  bit8    reserved1[8];
+  bit8    vendorIdentification[8];
+  bit8    productIdentification[16];
+  bit8    productRevisionLevel[4];
+  bit8    vendorSpecific[20];
+} smpRespReportManufactureInfo_t;
+
+/****************************************************************
+ *           discover request
+ ****************************************************************/
+typedef struct smpReqDiscover_s 
+{
+  bit32   reserved1;
+  bit8    reserved2;
+  bit8    phyIdentifier;
+  bit8    ignored;  
+  bit8    reserved3;  
+} smpReqDiscover_t;
+
+/****************************************************************
+ *           discover response
+ ****************************************************************/
+typedef struct smpRespDiscover_s
+{
+  bit8   reserved1[4];
+  bit8   reserved2;
+  bit8   phyIdentifier;
+  bit8   reserved3[2];  
+  bit8   attachedDeviceType; /* byte 12 */
+    /* B7   : reserved */
+    /* B6-4 : attachedDeviceType */
+    /* B3-0 : reserved */
+  bit8   negotiatedPhyLinkRate; /* byte 11 */
+    /* B7-4 : reserved */
+    /* B3-0 : negotiatedPhyLinkRate */
+  bit8   attached_Ssp_Stp_Smp_Sata_Initiator; /* byte 14 */
+    /* B7-4 : reserved */
+    /* B3   : attachedSspInitiator */
+    /* B2   : attachedStpInitiator */
+    /* B1   : attachedSmpInitiator */
+    /* B0   : attachedSataHost */
+  bit8   attached_SataPS_Ssp_Stp_Smp_Sata_Target; /* byte 15 */
+    /* B7   : attachedSataPortSelector */
+    /* B6-4 : reserved */
+    /* B3   : attachedSspTarget */
+    /* B2   : attachedStpTarget */
+    /* B1   : attachedSmpTarget */
+    /* B0   : attachedSatadevice */
+  bit8   sasAddressHi[4];
+  bit8   sasAddressLo[4];
+  bit8   attachedSasAddressHi[4];
+  bit8   attachedSasAddressLo[4];
+  bit8   attachedPhyIdentifier;
+  bit8   reserved9[7];
+  bit8   programmedAndHardware_MinPhyLinkRate;
+    /* B7-4 : programmedMinPhyLinkRate */
+    /* B3-0 : hardwareMinPhyLinkRate */
+  bit8   programmedAndHardware_MaxPhyLinkRate;
+    /* B7-4 : programmedMaxPhyLinkRate */
+    /* B3-0 : hardwareMaxPhyLinkRate */
+  bit8   phyChangeCount;
+  bit8   virtualPhy_partialPathwayTimeout; /* byte 43 */
+    /* B7   : virtualPhy*/
+    /* B6-4 : reserved */
+    /* B3-0 : partialPathwayTimeout */
+  bit8   routingAttribute;
+    /* B7-4 : reserved */
+    /* B3-0 : routingAttribute */
+  bit8   reserved13[5];
+  bit8   vendorSpecific[2];
+} smpRespDiscover_t;
+
+#define DISCRSP_SSP_BIT    0x08
+#define DISCRSP_STP_BIT    0x04
+#define DISCRSP_SMP_BIT    0x02
+#define DISCRSP_SATA_BIT   0x01
+
+#define DISCRSP_SATA_PS_BIT   0x80
+
+#define DISCRSP_GET_ATTACHED_DEVTYPE(pResp) \
+  (((pResp)->attachedDeviceType & 0x70) >> 4)
+#define DISCRSP_GET_LINKRATE(pResp) \
+  ((pResp)->negotiatedPhyLinkRate & 0x0F)
+
+#define DISCRSP_IS_SSP_INITIATOR(pResp) \
+  (((pResp)->attached_Ssp_Stp_Smp_Sata_Initiator & DISCRSP_SSP_BIT) == DISCRSP_SSP_BIT)
+#define DISCRSP_IS_STP_INITIATOR(pResp) \
+  (((pResp)->attached_Ssp_Stp_Smp_Sata_Initiator & DISCRSP_STP_BIT) == DISCRSP_STP_BIT)
+#define DISCRSP_IS_SMP_INITIATOR(pResp) \
+  (((pResp)->attached_Ssp_Stp_Smp_Sata_Initiator & DISCRSP_SMP_BIT) == DISCRSP_SMP_BIT)
+#define DISCRSP_IS_SATA_HOST(pResp) \
+  (((pResp)->attached_Ssp_Stp_Smp_Sata_Initiator & DISCRSP_SATA_BIT) == DISCRSP_SATA_BIT)
+
+#define DISCRSP_IS_SSP_TARGET(pResp) \
+  (((pResp)->attached_SataPS_Ssp_Stp_Smp_Sata_Target & DISCRSP_SSP_BIT) == DISCRSP_SSP_BIT)
+#define DISCRSP_IS_STP_TARGET(pResp) \
+  (((pResp)->attached_SataPS_Ssp_Stp_Smp_Sata_Target & DISCRSP_STP_BIT) == DISCRSP_STP_BIT)
+#define DISCRSP_IS_SMP_TARGET(pResp) \
+  (((pResp)->attached_SataPS_Ssp_Stp_Smp_Sata_Target & DISCRSP_SMP_BIT) == DISCRSP_SMP_BIT)
+#define DISCRSP_IS_SATA_DEVICE(pResp) \
+  (((pResp)->attached_SataPS_Ssp_Stp_Smp_Sata_Target & DISCRSP_SATA_BIT) == DISCRSP_SATA_BIT)
+#define DISCRSP_IS_SATA_PORTSELECTOR(pResp) \
+  (((pResp)->attached_SataPS_Ssp_Stp_Smp_Sata_Target & DISCRSP_SATA_PS_BIT) == DISCRSP_SATA_PS_BIT)
+
+/* bit8 array[4] -> bit32 */
+#define DISCRSP_GET_SAS_ADDRESSHI(pResp) \
+  DMA_BEBIT32_TO_BIT32(*(bit32 *)(pResp)->sasAddressHi)
+#define DISCRSP_GET_SAS_ADDRESSLO(pResp) \
+  DMA_BEBIT32_TO_BIT32(*(bit32 *)(pResp)->sasAddressLo)
+
+/* bit8 array[4] -> bit32 */
+#define DISCRSP_GET_ATTACHED_SAS_ADDRESSHI(pResp) \
+  DMA_BEBIT32_TO_BIT32(*(bit32 *)(pResp)->attachedSasAddressHi)
+#define DISCRSP_GET_ATTACHED_SAS_ADDRESSLO(pResp) \
+  DMA_BEBIT32_TO_BIT32(*(bit32 *)(pResp)->attachedSasAddressLo)
+
+#define DISCRSP_VIRTUALPHY_BIT 0x80
+#define DISCRSP_IS_VIRTUALPHY(pResp) \
+  (((pResp)->virtualPhy_partialPathwayTimeout & DISCRSP_VIRTUALPHY_BIT) == DISCRSP_VIRTUALPHY_BIT)
+
+#define DISCRSP_GET_ROUTINGATTRIB(pResp) \
+  ((pResp)->routingAttribute & 0x0F)
+
+/****************************************************************
+ *            report route table request
+ ****************************************************************/
+typedef struct smpReqReportRouteTable_s
+{
+  bit8   reserved1[2];
+  bit8   expanderRouteIndex16[20];
+  bit8   reserved2;
+  bit8   phyIdentifier;
+  bit8   reserved3[2];
+} smpReqReportRouteTable_t;
+
+/****************************************************************
+ *            report route response
+ ****************************************************************/
+typedef struct smpRespReportRouteTable_s 
+{
+  bit8   reserved1[2];
+  bit8   expanderRouteIndex16[2];
+  bit8   reserved2;
+  bit8   phyIdentifier;
+  bit8   reserved3[2];
+  bit8   disabled;
+    /* B7   : expander route entry disabled */
+    /* B6-0 : reserved */
+  bit8   reserved5[3];
+  bit8   routedSasAddressHi32[4];
+  bit8   routedSasAddressLo32[4];
+  bit8   reserved6[16];
+} smpRespReportRouteTable_t;
+
+/****************************************************************
+ *            configure route information request
+ ****************************************************************/
+typedef struct smpReqConfigureRouteInformation_s
+{
+  bit8   reserved1[2];
+  bit8   expanderRouteIndex[2];
+  bit8   reserved2;
+  bit8   phyIdentifier;
+  bit8   reserved3[2];
+  bit8   disabledBit_reserved4;
+  bit8   reserved5[3];
+  bit8   routedSasAddressHi[4];
+  bit8   routedSasAddressLo[4];
+  bit8   reserved6[16];
+} smpReqConfigureRouteInformation_t;
+
+/****************************************************************
+ *            configure route response
+ ****************************************************************/
+#ifdef FOR_COMPLETENESS
+typedef struct smpRespConfigureRouteInformation_s 
+{
+  /* nothing. some compiler disallowed structure with no member */
+} smpRespConfigureRouteInformation_t;
+#endif
+
+/****************************************************************
+ *            report Phy Sata request
+ ****************************************************************/
+typedef struct smpReqReportPhySata_s
+{
+  bit8   reserved1[4];
+  bit8   reserved2;
+  bit8   phyIdentifier;
+  bit8   reserved3[2];
+} smpReqReportPhySata_t;
+
+/****************************************************************
+ *            report Phy Sata response
+ ****************************************************************/
+typedef struct smpRespReportPhySata_s 
+{
+  bit8   reserved1[4];
+  bit8   reserved2;
+  bit8   phyIdentifier;
+  bit8   reserved3;
+  bit8   affiliations_sup_valid;
+    /* b7-2 : reserved */
+    /* b1   : Affiliations supported */
+    /* b0   : Affiliation valid */

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***


More information about the svn-src-stable-10 mailing list