#! /bin/sh # # CDDL HEADER START # # The contents of this file are subject to the terms of the # Common Development and Distribution License (the "License"). # You may not use this file except in compliance with the License. # # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE # or http://www.opensolaris.org/os/licensing. # See the License for the specific language governing permissions # and limitations under the License. # # When distributing Covered Code, include this CDDL HEADER in each # file and include the License file at usr/src/OPENSOLARIS.LICENSE. # If applicable, add the following below this CDDL HEADER, with the # fields enclosed by brackets "[]" replaced with your own identifying # information: Portions Copyright [yyyy] [name of copyright owner] # # CDDL HEADER END # # # Copyright 2009 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # # SUNWagp postinstall script PATH=/usr/bin:/usr/sbin:${PATH} export PATH BRALIAS="\ \"pci8086,7124\" \ \"pci8086,7122\" \ \"pci8086,7120\" \ \"pci1022,7454\" \ \"pci8086,3580\" \ \"pci8086,3575\" \ \"pci8086,2560\" \ \"pci8086,2570\" \ \"pci8086,2580\" \ \"pci8086,2590\" \ \"pci8086,2770\" \ \"pci8086,27a0\" \ \"pci8086,27ac\" \ \"pci8086,2970\" \ \"pci8086,2980\" \ \"pci8086,2990\" \ \"pci8086,29a0\" \ \"pci8086,29b0\" \ \"pci8086,29c0\" \ \"pci8086,29d0\" \ \"pci8086,2a00\" \ \"pci8086,2a10\" \ \"pci8086,2a40\" \ \"pci8086,2e00\" \ \"pci8086,2e10\" \ \"pci8086,2e20\" \ \"pci8086,2e30\" \ \"pci8086,2e40\" \ \"pci8086,40\" \ \"pci8086,44\" \ \"pci8086,62\" \ \"pci8086,6a\" \ \"pci8086,1130\" \ " CPUGART='"pci1022,1103"' DRVPERM='* 0644 root sys' # Function: check_add_drv() # # This function will check if the module has an entry in etc/name_to_major # If not simply calls add_drv with the arguments given. If there is # such an entry in name_to_major file, it adds entries in driver_aliases # and minor_perm if necessary. # The syntax of this function is the same as add_drv. check_add_drv() { alias="" ADD_ALIAS=0 ADD_MINOR=0 OPTIND=1 cmd="add_drv" while getopts i:b:m: opt do case $opt in i ) ADD_ALIAS=1 alias=$OPTARG cmd=$cmd" -i '$alias'" ;; m ) ADD_MINOR=1 minor=$OPTARG cmd=$cmd" -m '$minor'" ;; b) BASEDIR=$OPTARG cmd=$cmd" -b $BASEDIR" ;; \?) echo "check_add_drv can not handle this option" return ;; esac done shift `/usr/bin/expr $OPTIND - 1` drvname=$1 cmd=$cmd" "$drvname /usr/bin/grep "^$drvname[ ]" $BASEDIR/etc/name_to_major > /dev/null 2>&1 if [ $? -ne 0 ] then eval $cmd else # entry already in name_to_major, add alias, minorperm # if necessary if [ $ADD_ALIAS = 1 ] then for i in $alias do /usr/bin/egrep "$i" $BASEDIR/etc/driver_aliases>/dev/null 2>&1 if [ $? -ne 0 ] then echo "$drvname $i" >> $BASEDIR/etc/driver_aliases else /usr/bin/egrep "^$drvname[ ]+$i" $BASEDIR/etc/driver_aliases>/dev/null 2>&1 if [ $? -ne 0 ] then return 1 fi fi done fi if [ $ADD_MINOR = 1 ] then /usr/bin/grep "^$drvname:" $BASEDIR/etc/minor_perm > /dev/null 2>&1 if [ $? -ne 0 ] then minorentry="$drvname:$minor" echo $minorentry >> $BASEDIR/etc/minor_perm fi fi fi } EXIT=0 if [ "${BASEDIR:=/}" = "/" ] then ADD_DRV="check_add_drv" else ADD_DRV="check_add_drv -b ${BASEDIR}" fi ${ADD_DRV} -m "${DRVPERM}" -i "${BRALIAS}" agptarget || EXIT=1 # amd64_gart is only needed in AMD64 system ${ADD_DRV} -m "${DRVPERM}" -i "${CPUGART}" amd64_gart || EXIT=1 ${ADD_DRV} -m "${DRVPERM}" agpgart || EXIT=1 exit ${EXIT}