From grandi@archive.tuc.noao.edu  Tue Apr  8 19:01:32 2003
Return-Path: <grandi@archive.tuc.noao.edu>
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
	by hub.freebsd.org (Postfix) with ESMTP id EE88D37B401
	for <FreeBSD-gnats-submit@freebsd.org>; Tue,  8 Apr 2003 19:01:32 -0700 (PDT)
Received: from noao.edu (email.tuc.noao.edu [140.252.1.54])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 25DD643FDD
	for <FreeBSD-gnats-submit@freebsd.org>; Tue,  8 Apr 2003 19:01:31 -0700 (PDT)
	(envelope-from grandi@archive.tuc.noao.edu)
Received: from archive.tuc.noao.edu ([140.252.1.17] verified)
  by noao.edu (CommuniGate Pro SMTP 4.0.6)
  with ESMTP-TLS id 7037981 for FreeBSD-gnats-submit@freebsd.org; Tue, 08 Apr 2003 19:01:31 -0700
Received: from archive.tuc.noao.edu (localhost [127.0.0.1])
	by archive.tuc.noao.edu (8.12.8p1/8.12.8) with ESMTP id h3921VcH053171
	for <FreeBSD-gnats-submit@freebsd.org>; Tue, 8 Apr 2003 19:01:31 -0700 (MST)
	(envelope-from grandi@archive.tuc.noao.edu)
Received: (from grandi@localhost)
	by archive.tuc.noao.edu (8.12.8p1/8.12.8/Submit) id h3921V9P053170;
	Tue, 8 Apr 2003 19:01:31 -0700 (MST)
Message-Id: <200304090201.h3921V9P053170@archive.tuc.noao.edu>
Date: Tue, 8 Apr 2003 19:01:31 -0700 (MST)
From: Steve Grandi <grandi@noao.edu>
Reply-To: Steve Grandi <grandi@noao.edu>
To: FreeBSD-gnats-submit@freebsd.org
Cc:
Subject: "wiring down SCSI devices" as described in LINT doesn't work
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         50741
>Category:       kern
>Synopsis:       "wiring down SCSI devices" as described in LINT doesn't work
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    scottl
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Apr 08 19:10:01 PDT 2003
>Closed-Date:    Tue Jun 29 15:42:04 GMT 2004
>Last-Modified:  Tue Jun 29 15:42:04 GMT 2004
>Originator:     Steve Grandi
>Release:        FreeBSD 4.8-RELEASE i386
>Organization:
National Optical Astronomy Observatory, Tucson AZ, USA
>Environment:
System: FreeBSD archive.tuc.noao.edu 4.8-RELEASE FreeBSD 4.8-RELEASE #6: Mon Mar 31 09:35:35 MST 2003 grandi@new-archive.tuc.noao.edu:/usr/obj/usr/src/sys/ARCHIVE i386


>Description:
	LINT in STABLE provides a procedure to "wire down" SCSI devices so a
given bus, target and LUN always has the same device name.  A very useful
tool.  Unfortunately, the procedure in LINT doesn't work!

Given the config file below, the results of "make buildkernel" is:

archive# cd /usr/src
archive# make buildkernel

--------------------------------------------------------------
>How-To-Repeat:
	try to build a kernel with the procedure in LINT
>Fix:

	The most obvious fix is to excise that portion of LINT; but it sure
would be nice if there was a working procedure in STABLE to wire down SCSI
devices.

--- ARCHIVE begins here ---
#
# GENERIC -- Generic kernel configuration file for FreeBSD/i386
#
# For more information on this file, please read the handbook section on
# Kernel Configuration Files:
#
#    http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig-config.html
#
# The handbook is also available locally in /usr/share/doc/handbook
# if you've installed the doc distribution, otherwise always see the
# FreeBSD World Wide Web server (http://www.FreeBSD.org/) for the
# latest information.
#
# An exhaustive list of options and more detailed explanations of the
# device lines is also present in the ./LINT configuration file. If you are
# in doubt as to the purpose or necessity of a line, check first in LINT.
#
# $FreeBSD: src/sys/i386/conf/GENERIC,v 1.246.2.50 2002/12/30 19:04:31 rwatson Exp $

machine		i386
#cpu		I386_CPU
#cpu		I486_CPU
#cpu		I586_CPU
cpu		I686_CPU
ident		ARCHIVE
maxusers	0

#makeoptions	DEBUG=-g		#Build kernel with gdb(1) debug symbols

#options 	MATH_EMULATE		#Support for x87 emulation
options 	INET			#InterNETworking
#options 	INET6			#IPv6 communications protocols
options 	FFS			#Berkeley Fast Filesystem
options 	FFS_ROOT		#FFS usable as root device [keep this!]
options 	SOFTUPDATES		#Enable FFS soft updates support
options 	UFS_DIRHASH		#Improve performance on big directories
options 	MFS			#Memory Filesystem
options 	MD_ROOT			#MD is a potential root device
options 	NFS			#Network Filesystem
#options 	NFS_ROOT		#NFS usable as root device, NFS required
options 	MSDOSFS			#MSDOS Filesystem
options 	CD9660			#ISO 9660 Filesystem
options 	CD9660_ROOT		#CD-ROM usable as root, CD9660 required
options 	PROCFS			#Process filesystem
options 	COMPAT_43		#Compatible with BSD 4.3 [KEEP THIS!]
options 	SCSI_DELAY=5000		#Delay (in ms) before probing SCSI
options 	UCONSOLE		#Allow users to grab the console
options 	USERCONFIG		#boot -c editor
options 	VISUAL_USERCONFIG	#visual boot -c editor
options 	KTRACE			#ktrace(1) support
options 	SYSVSHM			#SYSV-style shared memory
options 	SYSVMSG			#SYSV-style message queues
options 	SYSVSEM			#SYSV-style semaphores
options 	P1003_1B		#Posix P1003_1B real-time extensions
options 	_KPOSIX_PRIORITY_SCHEDULING
options 	ICMP_BANDLIM		#Rate limit bad replies
options 	KBD_INSTALL_CDEV	# install a CDEV entry in /dev
options 	AHC_REG_PRETTY_PRINT	# Print register bitfields in debug
					# output.  Adds ~128k to driver.
options 	AHD_REG_PRETTY_PRINT	# Print register bitfields in debug 
					# output.  Adds ~215k to driver.

# To make an SMP kernel, the next two are needed
options 	SMP			# Symmetric MultiProcessor Kernel
options 	APIC_IO			# Symmetric (APIC) I/O
options		HTT			# HyperThreading Technology

device		isa
#device		eisa
device		pci

# Floppy drives
device		fdc0	at isa? port IO_FD1 irq 6 drq 2
device		fd0	at fdc0 drive 0
device		fd1	at fdc0 drive 1
#
# If you have a Toshiba Libretto with its Y-E Data PCMCIA floppy,
# don't use the above line for fdc0 but the following one:
#device		fdc0

# ATA and ATAPI devices
device		ata0	at isa? port IO_WD1 irq 14
device		ata1	at isa? port IO_WD2 irq 15
device		ata
device		atadisk			# ATA disk drives
device		atapicd			# ATAPI CDROM drives
device		atapifd			# ATAPI floppy drives
device		atapist			# ATAPI tape drives
options 	ATA_STATIC_ID		#Static device numbering

# SCSI Controllers
#device		ahb		# EISA AHA1742 family
device		ahc		# AHA2940 and onboard AIC7xxx devices
device		ahd		# AHA39320/29320 and onboard AIC79xx devices
#device		amd		# AMD 53C974 (Tekram DC-390(T))
#device		isp		# Qlogic family
#device		mpt		# LSI-Logic MPT/Fusion
device		ncr		# NCR/Symbios Logic
device		sym		# NCR/Symbios Logic (newer chipsets)
options 	SYM_SETUP_LP_PROBE_MAP=0x40
				# Allow ncr to attach legacy NCR devices when 
				# both sym and ncr are configured

#device		adv0	at isa?
#device		adw
#device		bt0	at isa?
#device		aha0	at isa?
#device		aic0	at isa?

#device		ncv		# NCR 53C500
#device		nsp		# Workbit Ninja SCSI-3
#device		stg		# TMC 18C30/18C50

# SCSI peripherals
device		scbus		# SCSI bus (required)
device		da		# Direct Access (disks)
device		sa		# Sequential Access (tape etc)
device		cd		# CD
device		pass		# Passthrough device (direct SCSI access)
device		scbus0 at ahc0
device		scbus1 at ahd0
device		scbus2 at ahd
device 		da0 at scbus1 target 0
device		da1 at scbus1 target 1
device		da2 at scbus1 target 2
device		da3 at scbus0 target 2

# RAID controllers interfaced to the SCSI subsystem
#device		asr		# DPT SmartRAID V, VI and Adaptec SCSI RAID
#device		dpt		# DPT Smartcache - See LINT for options!
#device		iir		# Intel Integrated RAID
#device		mly		# Mylex AcceleRAID/eXtremeRAID
#device		ciss		# Compaq SmartRAID 5* series

# RAID controllers
#device		aac		# Adaptec FSA RAID, Dell PERC2/PERC3
#device		aacp		# SCSI passthrough for aac (requires CAM)
#device		ida		# Compaq Smart RAID
#device		amr		# AMI MegaRAID
#device		mlx		# Mylex DAC960 family
#device		twe		# 3ware Escalade

# atkbdc0 controls both the keyboard and the PS/2 mouse
device		atkbdc0	at isa? port IO_KBD
device		atkbd0	at atkbdc? irq 1 flags 0x1
device		psm0	at atkbdc? irq 12

device		vga0	at isa?

# splash screen/screen saver
pseudo-device	splash

# syscons is the default console driver, resembling an SCO console
device		sc0	at isa? flags 0x100

# Enable this and PCVT_FREEBSD for pcvt vt220 compatible console driver
#device		vt0	at isa?
#options 	XSERVER			# support for X server on a vt console
#options 	FAT_CURSOR		# start with block cursor
# If you have a ThinkPAD, uncomment this along with the rest of the PCVT lines
#options 	PCVT_SCANSET=2		# IBM keyboards are non-std

device		agp		# support several AGP chipsets

# Floating point support - do not disable.
device		npx0	at nexus? port IO_NPX irq 13

# Power management support (see LINT for more options)
#device		apm0	at nexus? disable flags 0x20 # Advanced Power Management

# PCCARD (PCMCIA) support
#device		card
#device		pcic0	at isa? irq 0 port 0x3e0 iomem 0xd0000
#device		pcic1	at isa? irq 0 port 0x3e2 iomem 0xd4000 disable

# Serial (COM) ports
device		sio0	at isa? port IO_COM1 flags 0x10 irq 4
device		sio1	at isa? port IO_COM2 irq 3
#device		sio2	at isa? disable port IO_COM3 irq 5
#device		sio3	at isa? disable port IO_COM4 irq 9

# Parallel port
#device		ppc0	at isa? irq 7
#device		ppbus		# Parallel port bus (required)
#device		lpt		# Printer
#device		plip		# TCP/IP over parallel
#device		ppi		# Parallel port interface device
#device		vpo		# Requires scbus and da


# PCI Ethernet NICs.
#device		de		# DEC/Intel DC21x4x (``Tulip'')
device		em		# Intel PRO/1000 adapter Gigabit Ethernet Card (``Wiseman'')
#device		txp		# 3Com 3cR990 (``Typhoon'')
#device		vx		# 3Com 3c590, 3c595 (``Vortex'')

# PCI Ethernet NICs that use the common MII bus controller code.
# NOTE: Be sure to keep the 'device miibus' line in order to use these NICs!
device		miibus		# MII bus support
#device		dc		# DEC/Intel 21143 and various workalikes
device		fxp		# Intel EtherExpress PRO/100B (82557, 82558)
#device		pcn		# AMD Am79C97x PCI 10/100 NICs
#device		rl		# RealTek 8129/8139
#device		sf		# Adaptec AIC-6915 (``Starfire'')
#device		sis		# Silicon Integrated Systems SiS 900/SiS 7016
#device		ste		# Sundance ST201 (D-Link DFE-550TX)
#device		tl		# Texas Instruments ThunderLAN
#device		tx		# SMC EtherPower II (83c170 ``EPIC'')
#device		vr		# VIA Rhine, Rhine II
#device		wb		# Winbond W89C840F
device		xl		# 3Com 3c90x (``Boomerang'', ``Cyclone'')
#device		bge		# Broadcom BCM570x (``Tigon III'')

# ISA Ethernet NICs.
# 'device ed' requires 'device miibus'
#device		ed0	at isa? port 0x280 irq 10 iomem 0xd8000
#device		ex
#device		ep
#device		fe0	at isa? port 0x300
# Xircom Ethernet
#device		xe
# PRISM I IEEE 802.11b wireless NIC.
#device		awi
# WaveLAN/IEEE 802.11 wireless NICs. Note: the WaveLAN/IEEE really
# exists only as a PCMCIA device, so there is no ISA attachment needed
# and resources will always be dynamically assigned by the pccard code.
#device		wi
# Aironet 4500/4800 802.11 wireless NICs. Note: the declaration below will
# work for PCMCIA and PCI cards, as well as ISA cards set to ISA PnP
# mode (the factory default). If you set the switches on your ISA
# card for a manually chosen I/O address and IRQ, you must specify
# those parameters here.
#device		an
# The probe order of these is presently determined by i386/isa/isa_compat.c.
#device		ie0	at isa? port 0x300 irq 10 iomem 0xd0000
#device		le0	at isa? port 0x300 irq 5 iomem 0xd0000
#device		lnc0	at isa? port 0x280 irq 10 drq 0
#device		cs0	at isa? port 0x300
#device		sn0	at isa? port 0x300 irq 10

# Pseudo devices - the number indicates how many units to allocate.
pseudo-device	loop		# Network loopback
pseudo-device	ether		# Ethernet support
pseudo-device	sl	1	# Kernel SLIP
pseudo-device	ppp	1	# Kernel PPP
pseudo-device	tun		# Packet tunnel.
pseudo-device	pty		# Pseudo-ttys (telnet etc)
pseudo-device	md		# Memory "disks"
#pseudo-device	gif		# IPv6 and IPv4 tunneling
#pseudo-device	faith	1	# IPv6-to-IPv4 relaying (translation)

# The `bpf' pseudo-device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
#pseudo-device	bpf		#Berkeley packet filter

# USB support
#device		uhci		# UHCI PCI->USB interface
#device		ohci		# OHCI PCI->USB interface
#device		usb		# USB Bus (required)
#device		ugen		# Generic
#device		uhid		# "Human Interface Devices"
#device		ukbd		# Keyboard
#device		ulpt		# Printer
#device		umass		# Disks/Mass storage - Requires scbus and da
#device		ums		# Mouse
#device		uscanner	# Scanners
#device		urio		# Diamond Rio MP3 Player
# USB Ethernet, requires mii
#device		aue		# ADMtek USB ethernet
#device		cue		# CATC USB ethernet
#device		kue		# Kawasaki LSI USB ethernet
--- ARCHIVE ends here ---


>Release-Note:
>Audit-Trail:

From: Steve Grandi <grandi@noao.edu>
To: freebsd-gnats-submit@FreeBSD.org, grandi@noao.edu
Cc:  
Subject: Re: kern/50741: "wiring down SCSI devices" as described in LINT
 doesn't work
Date: Wed, 9 Apr 2003 10:49:43 -0700 (US Mountain Standard Time)

 Thanks to Scott Long and Wilko Bulte who both supplied the trick to get
 this working.  Following is a context diff for LINT to properly describe
 reality.
 
 *** LINT	Wed Apr  9 10:37:37 2003
 --- LINT.new	Wed Apr  9 10:47:33 2003
 ***************
 *** 887,892 ****
 --- 887,904 ----
   # device	sa1 at scbus1 target 6
   # device	cd
 
 + # NOTE: for this example syntax to work, the device entry for ahc must
 + # be changed to device entres for ahc0, ahc1 and ahc2.  In other words
 + # instead of:
 +
 + #device		ahc		# AHA2940 and onboard AIC7xxx devices
 +
 + # use the following:
 +
 + #device		ahc0		# AHA2940 and onboard AIC7xxx devices
 + #device		ahc1		# AHA2940 and onboard AIC7xxx devices
 + #device		ahc2		# AHA2940 and onboard AIC7xxx devices
 +
   # "units" (SCSI logical unit number) that are not specified are
   # treated as if specified as LUN 0.
 
 
 -- 
 Steve Grandi
 National Optical Astronomy Observatory/AURA Inc., Tucson AZ USA
 Internet: grandi@noao.edu  Voice: +1 520 318-8228  FAX: +1 520 318-8360
Responsible-Changed-From-To: freebsd-bugs->scottl 
Responsible-Changed-By: kris 
Responsible-Changed-When: Mon Jul 14 02:13:46 PDT 2003 
Responsible-Changed-Why:  
Assign to scottl to consider the patch 

http://www.freebsd.org/cgi/query-pr.cgi?pr=50741 
State-Changed-From-To: open->closed 
State-Changed-By: scottl 
State-Changed-When: Tue Jun 29 15:26:08 GMT 2004 
State-Changed-Why:  
RELENG_4 LINT updated 

http://www.freebsd.org/cgi/query-pr.cgi?pr=50741 
>Unformatted:
 >>> Kernel build for ARCHIVE started on Tue Apr  8 18:57:03 MST 2003
 --------------------------------------------------------------
 ===> ARCHIVE
 mkdir -p /usr/obj/usr/src/sys
 cd /usr/src/sys/i386/conf;
 PATH=/usr/obj/usr/src/i386/usr/sbin:/usr/obj/usr/src/i386/usr/bin:/usr/obj/usr/src/i386/usr/games:/sbin:/bin:/usr/sbin:/usr/bin
 config  -d /usr/obj/usr/src/sys/ARCHIVE  /usr/src/sys/i386/conf/ARCHIVE
 config: line 120: ahc 0 not defined
 *** Error code 1
 
 Stop in /usr/src.
 *** Error code 1
 
 Stop in /usr/src.
 
 
