6862533 Solaris need support HP's smart array HBA
authorColin Yi <Colin.Yi@Sun.COM>
Wed Dec 30 15:37:42 2009 +0800 (2 months ago)
changeset 114086966deaa0775
parent 11407a911350b5377
child 114099c3328f8d226
6862533 Solaris need support HP's smart array HBA
6886346 CPQary3 driver has no quiesce
usr/src/pkgdefs/CPQary3/Makefile
usr/src/pkgdefs/CPQary3/lic_HP
usr/src/pkgdefs/CPQary3/pkginfo.tmpl
usr/src/pkgdefs/CPQary3/postinstall
usr/src/pkgdefs/CPQary3/postremove
usr/src/pkgdefs/CPQary3/prototype_com
usr/src/pkgdefs/CPQary3/prototype_i386
usr/src/pkgdefs/Makefile
usr/src/uts/intel/Makefile.intel.shared
       1 --- a/usr/src/pkgdefs/Makefile	Tue Dec 29 17:43:51 2009 +0000
       2 +++ b/usr/src/pkgdefs/Makefile	Wed Dec 30 15:37:42 2009 +0800
       3 @@ -121,6 +121,7 @@
       4  	SUNWcar.i  \
       5  	SUNWcarx.i  \
       6  	SUNWcpc.i \
       7 +	CPQary3 \
       8  	SUNWcpr.i \
       9  	SUNWdrmr \
      10  	SUNWgrub \
     1.1 --- a/usr/src/uts/intel/Makefile.intel.shared	Tue Dec 29 17:43:51 2009 +0000
     1.2 +++ b/usr/src/uts/intel/Makefile.intel.shared	Wed Dec 30 15:37:42 2009 +0800
     1.3 @@ -385,6 +385,7 @@
     1.4  $(CLOSED_BUILD)CLOSED_DRV_KMODS		+= intel_nhmex
     1.5  $(CLOSED_BUILD)CLOSED_DRV_KMODS		+= iprb
     1.6  $(CLOSED_BUILD)CLOSED_DRV_KMODS		+= llc2
     1.7 +$(CLOSED_BUILD)CLOSED_DRV_KMODS		+= cpqary3
     1.8  $(CLOSED_BUILD)CLOSED_DRV_KMODS		+= marvell88sx
     1.9  $(CLOSED_BUILD)CLOSED_DRV_KMODS		+= bcm_sata
    1.10  $(CLOSED_BUILD)CLOSED_DRV_KMODS		+= memtest
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/usr/src/pkgdefs/CPQary3/Makefile	Wed Dec 30 15:37:42 2009 +0800
     2.3 @@ -0,0 +1,37 @@
     2.4 +#
     2.5 +# CDDL HEADER START
     2.6 +#
     2.7 +# The contents of this file are subject to the terms of the
     2.8 +# Common Development and Distribution License (the "License").
     2.9 +# You may not use this file except in compliance with the License.
    2.10 +#
    2.11 +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
    2.12 +# or http://www.opensolaris.org/os/licensing.
    2.13 +# See the License for the specific language governing permissions
    2.14 +# and limitations under the License.
    2.15 +#
    2.16 +# When distributing Covered Code, include this CDDL HEADER in each
    2.17 +# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
    2.18 +# If applicable, add the following below this CDDL HEADER, with the
    2.19 +# fields enclosed by brackets "[]" replaced with your own identifying
    2.20 +# information: Portions Copyright [yyyy] [name of copyright owner]
    2.21 +#
    2.22 +# CDDL HEADER END
    2.23 +#
    2.24 +# Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
    2.25 +# Use is subject to license terms.
    2.26 +#
    2.27 +
    2.28 +include ../Makefile.com
    2.29 +
    2.30 +LICENSEFILES = $(SUN) $(PKGDEFS)/CPQary3/lic_HP
    2.31 +
    2.32 +DATAFILES += depend
    2.33 +
    2.34 +.KEEP_STATE:
    2.35 +
    2.36 +all: $(FILES) postinstall postremove
    2.37 +
    2.38 +install: all pkg
    2.39 +
    2.40 +include ../Makefile.targ
     3.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.2 +++ b/usr/src/pkgdefs/CPQary3/lic_HP	Wed Dec 30 15:37:42 2009 +0800
     3.3 @@ -0,0 +1,1 @@
     3.4 +Copyright 2009 Hewlett-Packard Development Company, L.P.
     4.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.2 +++ b/usr/src/pkgdefs/CPQary3/pkginfo.tmpl	Wed Dec 30 15:37:42 2009 +0800
     4.3 @@ -0,0 +1,43 @@
     4.4 +#
     4.5 +# CDDL HEADER START
     4.6 +#
     4.7 +# The contents of this file are subject to the terms of the
     4.8 +# Common Development and Distribution License (the "License").
     4.9 +# You may not use this file except in compliance with the License.
    4.10 +#
    4.11 +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
    4.12 +# or http://www.opensolaris.org/os/licensing.
    4.13 +# See the License for the specific language governing permissions
    4.14 +# and limitations under the License.
    4.15 +#
    4.16 +# When distributing Covered Code, include this CDDL HEADER in each
    4.17 +# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
    4.18 +# If applicable, add the following below this CDDL HEADER, with the
    4.19 +# fields enclosed by brackets "[]" replaced with your own identifying
    4.20 +# information: Portions Copyright [yyyy] [name of copyright owner]
    4.21 +#
    4.22 +# CDDL HEADER END
    4.23 +#
    4.24 +# Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
    4.25 +# Use is subject to license terms.
    4.26 +#
    4.27 +
    4.28 +PKG=CPQary3
    4.29 +NAME="HP Smart Array HBA Driver 2.2.0.1"
    4.30 +ARCH="ISA"
    4.31 +VERSION="ONVERS,REV=0.0.0"
    4.32 +SUNW_PRODNAME="SunOS"
    4.33 +SUNW_PRODVERS="RELEASE/VERSION"
    4.34 +SUNW_PKGVERS="1.0"
    4.35 +SUNW_PKGTYPE="root"
    4.36 +MAXINST="1000"
    4.37 +CATEGORY=system
    4.38 +VENDOR="Sun Microsystems, Inc."
    4.39 +DESC="HP Smart Array HBA Driver 2.2.0.1"
    4.40 +CLASSES="none"
    4.41 +HOTLINE="Please contact your local service provider"
    4.42 +EMAIL=""
    4.43 +BASEDIR=/
    4.44 +SUNW_PKG_ALLZONES="true"
    4.45 +SUNW_PKG_HOLLOW="true"
    4.46 +SUNW_PKG_THISZONE="false"
     5.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.2 +++ b/usr/src/pkgdefs/CPQary3/postinstall	Wed Dec 30 15:37:42 2009 +0800
     5.3 @@ -0,0 +1,153 @@
     5.4 +#!/sbin/sh
     5.5 +#
     5.6 +# CDDL HEADER START
     5.7 +#
     5.8 +# The contents of this file are subject to the terms of the
     5.9 +# Common Development and Distribution License (the "License").
    5.10 +# You may not use this file except in compliance with the License.
    5.11 +#
    5.12 +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
    5.13 +# or http://www.opensolaris.org/os/licensing.
    5.14 +# See the License for the specific language governing permissions
    5.15 +# and limitations under the License.
    5.16 +#
    5.17 +# When distributing Covered Code, include this CDDL HEADER in each
    5.18 +# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
    5.19 +# If applicable, add the following below this CDDL HEADER, with the
    5.20 +# fields enclosed by brackets "[]" replaced with your own identifying
    5.21 +# information: Portions Copyright [yyyy] [name of copyright owner]
    5.22 +#
    5.23 +# CDDL HEADER END
    5.24 +#
    5.25 +#
    5.26 +# Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
    5.27 +# Use is subject to license terms.
    5.28 +#
    5.29 +
    5.30 +if [ "${BASEDIR:=/}" != "/" ]
    5.31 +then
    5.32 +        BASEDIR_OPT="-b $BASEDIR"
    5.33 +fi
    5.34 +
    5.35 +check_add_drv()
    5.36 +{
    5.37 +	if [ "$BASEDIR" = "" ]; then
    5.38 +		BASEDIR=/  
    5.39 +		DEVLINK_TAB="/etc/devlink.tab"
    5.40 +	else
    5.41 +		DEVLINK_TAB="$BASEDIR/etc/devlink.tab"
    5.42 +		
    5.43 +	fi
    5.44 +	alias=""
    5.45 +	class=""
    5.46 +	ADD_ALIAS=0
    5.47 +	ADD_CLASS=0
    5.48 +	ADD_MINOR=0
    5.49 +	OPTIND=1
    5.50 +	IS_NET_DRIVER=0
    5.51 +
    5.52 +	cmd="add_drv"
    5.53 +
    5.54 +	while getopts i:b:m:c:n  opt; do
    5.55 +		case $opt in
    5.56 +			i )	ADD_ALIAS=1	
    5.57 +				alias=$OPTARG
    5.58 +				cmd=$cmd" -i '$alias'"
    5.59 +				;;
    5.60 +			m )	ADD_MINOR=1
    5.61 +				minor=$OPTARG
    5.62 +				cmd=$cmd" -m '$minor'"
    5.63 +				;;
    5.64 +			c)	ADD_CLASS=1
    5.65 +				class=$OPTARG
    5.66 +				cmd=$cmd" -c $class"
    5.67 +				;;
    5.68 +			b)	BASEDIR_OPT="-b $BASEDIR"
    5.69 +				cmd=$cmd" $BASEDIR_OPT"
    5.70 +				;;
    5.71 +			n)	IS_NET_DRIVER=1
    5.72 +				;;
    5.73 +			\?) 	echo "check_add_drv can not handle this option"
    5.74 +				return
    5.75 +				;;
    5.76 +			esac
    5.77 +	done 
    5.78 +	shift `/usr/bin/expr $OPTIND - 1`
    5.79 +	
    5.80 +	drvname=$1
    5.81 +
    5.82 +	cmd=$cmd" "$drvname
    5.83 +
    5.84 +	drvname=`echo $drvname | /usr/bin/sed 's;.*/;;g'`
    5.85 +
    5.86 +	/usr/bin/grep "^$drvname[ 	]" $BASEDIR/etc/name_to_major >  /dev/null 2>&1
    5.87 +
    5.88 +	if [ $? -ne 0 ] ; then
    5.89 +		eval $cmd
    5.90 +	else	
    5.91 +		# entry already in name_to_major, add alias, class, minorperm
    5.92 +		# if necessary
    5.93 +		if [ $ADD_ALIAS = 1 ]; then
    5.94 +			for i in $alias; do
    5.95 +				/usr/bin/egrep "^$drvname[ 	]+$i" $BASEDIR/etc/driver_aliases>/dev/null 2>&1
    5.96 +				if [ $? -ne 0 ]; then
    5.97 +					echo "$drvname $i" >> $BASEDIR/etc/driver_aliases	
    5.98 +				fi
    5.99 +			done
   5.100 +		fi
   5.101 +
   5.102 +		if [ $ADD_CLASS = 1 ]; then
   5.103 +			/usr/bin/egrep "^$drvname[ 	]+$class( |	|$)" $BASEDIR/etc/driver_classes > /dev/null 2>&1
   5.104 +			if [ $? -ne 0 ]; then
   5.105 +				echo "$drvname\t$class" >> $BASEDIR/etc/driver_classes
   5.106 +			fi
   5.107 +		fi
   5.108 +
   5.109 +		if [ $ADD_MINOR = 1 ]; then
   5.110 +			/usr/bin/grep "^$drvname:" $BASEDIR/etc/minor_perm > /dev/null 2>&1
   5.111 +			if [ $? -ne 0 ]; then
   5.112 +				minorentry="$drvname:$minor"
   5.113 +				echo $minorentry >> $BASEDIR/etc/minor_perm
   5.114 +			fi
   5.115 +		fi
   5.116 +
   5.117 +	fi
   5.118 +
   5.119 +	# The following clone device/dev is needed for Custom Jumpstart
   5.120 +
   5.121 +	if [ $IS_NET_DRIVER -eq 1 ]; then
   5.122 +		CLONE_DEVICE=devices/pseudo/clone@0:$drvname
   5.123 +		set `/usr/bin/grep "^clone[ 	]" $BASEDIR/etc/name_to_major`
   5.124 +		CLONE_MAJ=$2
   5.125 +		set `/usr/bin/grep "^$drvname[ 	]" $BASEDIR/etc/name_to_major`
   5.126 +		DRIVER_MAJ=$2
   5.127 +		mknod $BASEDIR/$CLONE_DEVICE c $CLONE_MAJ $DRIVER_MAJ
   5.128 +		chmod 600 $BASEDIR/$CLONE_DEVICE
   5.129 +		chgrp sys $BASEDIR/$CLONE_DEVICE
   5.130 +		chown root $BASEDIR/$CLONE_DEVICE
   5.131 +		ln -s ../$CLONE_DEVICE $BASEDIR/dev/$drvname
   5.132 +	fi
   5.133 +	
   5.134 +}
   5.135 +
   5.136 +add_devlink()
   5.137 +{
   5.138 +        PATTERN="$1"
   5.139 +        LINK="$2"
   5.140 +        PLINK="`echo $LINK | sed 's/[$*^|\]/\\\&/g'`"
   5.141 +	TMP=/tmp/$$
   5.142 +        grep -v "^$PATTERN      $PLINK$" ${DEVLINK_TAB} >$TMP.devlink
   5.143 +        echo "$PATTERN\t$LINK" >>$TMP.devlink
   5.144 +        cp $TMP.devlink ${DEVLINK_TAB}
   5.145 +        rm -f $TMP.devlink
   5.146 +}
   5.147 +
   5.148 +check_add_drv -i '"pcie11,4070" "pcie11,4082" "pcie11,4083" "pcie11,409a"
   5.149 +"pcie11,409b" "pcie11,409c" "pcie11,409d" "pcie11,4091" "pcie11,4080"
   5.150 +"pci103c,3225" "pci103c,3211" "pci103c,3212" "pci103c,3234" "pci103c,3235"
   5.151 +"pci103c,3223" "pci103c,3237" "pci103c,323d" "pci103c,3245" "pci103c,3241"
   5.152 +"pci103c,3243" "pci103c,3247" "pci103c,324b" "pci103c,324a" "pci103c,3249"' $BASEDIR_OPT -c scsi cpqary3
   5.153 +
   5.154 +add_devlink 'type=ddi_pseudo;minor1=cpqary3'	'cpqary3\\M2'
   5.155 +
   5.156 +exit 0
     6.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     6.2 +++ b/usr/src/pkgdefs/CPQary3/postremove	Wed Dec 30 15:37:42 2009 +0800
     6.3 @@ -0,0 +1,63 @@
     6.4 +#!/sbin/sh
     6.5 +#
     6.6 +# CDDL HEADER START
     6.7 +#
     6.8 +# The contents of this file are subject to the terms of the
     6.9 +# Common Development and Distribution License (the "License").
    6.10 +# You may not use this file except in compliance with the License.
    6.11 +#
    6.12 +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
    6.13 +# or http://www.opensolaris.org/os/licensing.
    6.14 +# See the License for the specific language governing permissions
    6.15 +# and limitations under the License.
    6.16 +#
    6.17 +# When distributing Covered Code, include this CDDL HEADER in each
    6.18 +# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
    6.19 +# If applicable, add the following below this CDDL HEADER, with the
    6.20 +# fields enclosed by brackets "[]" replaced with your own identifying
    6.21 +# information: Portions Copyright [yyyy] [name of copyright owner]
    6.22 +#
    6.23 +# CDDL HEADER END
    6.24 +#
    6.25 +#
    6.26 +# Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
    6.27 +# Use is subject to license terms.
    6.28 +#
    6.29 +
    6.30 +PATH="/usr/bin:/usr/sbin:${PATH}"
    6.31 +export PATH
    6.32 +TMP=/tmp/$$
    6.33 +
    6.34 +BASEDIR=${BASEDIR:-/}
    6.35 +
    6.36 +# Select the correct rem_drv options to execute.
    6.37 +# Only attempt to unload the driver on a running system
    6.38 +if [ "$BASEDIR" = "/" ]; then
    6.39 +        REM_DRV="rem_drv"
    6.40 +        DEVLINK_TAB="/etc/devlink.tab"
    6.41 +
    6.42 +else
    6.43 +        REM_DRV="rem_drv -b ${BASEDIR}"
    6.44 +        DEVLINK_TAB="${BASEDIR}/etc/devlink.tab"
    6.45 +fi
    6.46 +
    6.47 +# Make sure rem_drv has not been previously executed
    6.48 +# before attempting to remove the driver
    6.49 +if grep "\<cpqary3\>" $BASEDIR/etc/name_to_major > /dev/null 2>&1
    6.50 +then
    6.51 +        $REM_DRV cpqary3
    6.52 +fi
    6.53 +
    6.54 +
    6.55 +# Remove our entry from /etc/devlink.tab
    6.56 +# Note: the tab after ${DRV} here is important.
    6.57 +
    6.58 +grep -v "^type=ddi_pseudo;minor1=cpqary3" ${DEVLINK_TAB} >$TMP.devlink
    6.59 +
    6.60 +# Must use 'cp' here in order to preserve the original
    6.61 +# mode, owner and group of devlink.tab
    6.62 +
    6.63 +cp $TMP.devlink ${DEVLINK_TAB}
    6.64 +rm -f $TMP.devlink
    6.65 +
    6.66 +exit 0
     7.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     7.2 +++ b/usr/src/pkgdefs/CPQary3/prototype_com	Wed Dec 30 15:37:42 2009 +0800
     7.3 @@ -0,0 +1,34 @@
     7.4 +#
     7.5 +# CDDL HEADER START
     7.6 +#
     7.7 +# The contents of this file are subject to the terms of the
     7.8 +# Common Development and Distribution License (the "License").
     7.9 +# You may not use this file except in compliance with the License.
    7.10 +#
    7.11 +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
    7.12 +# or http://www.opensolaris.org/os/licensing.
    7.13 +# See the License for the specific language governing permissions
    7.14 +# and limitations under the License.
    7.15 +#
    7.16 +# When distributing Covered Code, include this CDDL HEADER in each
    7.17 +# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
    7.18 +# If applicable, add the following below this CDDL HEADER, with the
    7.19 +# fields enclosed by brackets "[]" replaced with your own identifying
    7.20 +# information: Portions Copyright [yyyy] [name of copyright owner]
    7.21 +#
    7.22 +# CDDL HEADER END
    7.23 +#
    7.24 +#
    7.25 +# Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
    7.26 +# Use is subject to license terms.
    7.27 +#
    7.28 +# This required package information file contains a list of package contents.
    7.29 +# The 'pkgmk' command uses this file to identify the contents of a package
    7.30 +# and their location on the development machine when building the package.
    7.31 +# Can be created via a text editor or through use of the 'pkgproto' command.
    7.32 +
    7.33 +#!search <pathname pathname ...>        # where to find pkg objects
    7.34 +#!include <filename>                    # include another 'prototype' file
    7.35 +#!default <mode> <owner> <group>        # default used if not specified on entry
    7.36 +#!<param>=<value>                       # puts parameter in pkg environment
    7.37 +
     8.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     8.2 +++ b/usr/src/pkgdefs/CPQary3/prototype_i386	Wed Dec 30 15:37:42 2009 +0800
     8.3 @@ -0,0 +1,55 @@
     8.4 +#
     8.5 +# CDDL HEADER START
     8.6 +#
     8.7 +# The contents of this file are subject to the terms of the
     8.8 +# Common Development and Distribution License (the "License").
     8.9 +# You may not use this file except in compliance with the License.
    8.10 +#
    8.11 +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
    8.12 +# or http://www.opensolaris.org/os/licensing.
    8.13 +# See the License for the specific language governing permissions
    8.14 +# and limitations under the License.
    8.15 +#
    8.16 +# When distributing Covered Code, include this CDDL HEADER in each
    8.17 +# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
    8.18 +# If applicable, add the following below this CDDL HEADER, with the
    8.19 +# fields enclosed by brackets "[]" replaced with your own identifying
    8.20 +# information: Portions Copyright [yyyy] [name of copyright owner]
    8.21 +#
    8.22 +# CDDL HEADER END
    8.23 +#
    8.24 +#
    8.25 +# Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
    8.26 +# Use is subject to license terms.
    8.27 +#
    8.28 +
    8.29 +#
    8.30 +# This required package information file contains a list of package contents.
    8.31 +# The 'pkgmk' command uses this file to identify the contents of a package
    8.32 +# and their location on the development machine when building the package.
    8.33 +# Can be created via a text editor or through use of the 'pkgproto' command.
    8.34 +
    8.35 +#!search <pathname pathname ...>        # where to find pkg objects
    8.36 +#!include <filename>                    # include another 'prototype' file
    8.37 +#!default <mode> <owner> <group>        # default used if not specified on entry
    8.38 +#!<param>=<value>                       # puts parameter in pkg environment
    8.39 +
    8.40 +#
    8.41 +# Include ISA independent files (prototype_com)
    8.42 +#
    8.43 +!include prototype_com
    8.44 +#
    8.45 +#
    8.46 +i pkginfo
    8.47 +i copyright
    8.48 +i depend
    8.49 +i postinstall
    8.50 +i postremove
    8.51 +
    8.52 +# HP Smart Array driver
    8.53 +d none kernel	0755	root	sys
    8.54 +d none kernel/drv	0755	root	sys
    8.55 +d none kernel/drv/amd64	0755	root	sys
    8.56 +f none kernel/drv/cpqary3	0755	root	sys
    8.57 +f none kernel/drv/cpqary3.conf	0644	root	sys
    8.58 +f none kernel/drv/amd64/cpqary3	0755	root	sys