Subject: port-pmax/2739: kernel compilation error for DS 5000/1xx
To: None <gnats-bugs@gnats.netbsd.org>
From: Erik Bertelsen <erik@aarhus1.uni-c.dk>
List: netbsd-bugs
Date: 09/09/1996 09:59:36
>Number:         2739
>Category:       port-pmax
>Synopsis:       Kernel compilation fails for DS5000/1xx-only kernel
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    gnats-admin (GNATS administrator)
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Sep  9 01:05:00 1996
>Last-Modified:
>Originator:     Erik Bertelsen
>Organization:
UNI-C
>Release:        1.2_BETA, supped 9 September 1996
>Environment:
System: NetBSD aarhus1.uni-c.dk 1.2_BETA NetBSD 1.2_BETA (AARHUS1) #5: Wed Aug 14 07:40:07 MET DST 1996 erik@aarhus1.uni-c.dk:/usr/src/sys/arch/pmax/compile/AARHUS1 pmax


>Description:
Configured a kernel just for a DS5000/133 to test diskless booting. Compilation
running on a DS3100 running NetBSD 1.2_Beta.

******This looks like a show-stopper for the 1.2 release for DS5000/1xx users.

Compilation failed at line 1594 in pmax/machdep.c with a diagnostic telling
that kn03_tc3_imask is undefined.

Looking at the code (see extracts below), I notice that this variable is
only defined for a DS5000_240, but used in code for a DS5000_100.

#ifdef DS5000_240
u_long	kn03_tc3_imask;
extern u_long latched_cycle_cnt;
#endif

----text cutted----

#ifdef DS5000_100
----text cutted-----
void
kmin_enable_intr(slotno, handler, sc, on)

----more text cutted--------
#if defined(DEBUG) || defined(DIAGNOSTIC)
	printf("3MIN: imask %x, %sabling slot %d, sc %x addr 0x%x\n",
	       kn03_tc3_imask, (on? "en" : "dis"), slotno, sc, handler);
#endif


>How-To-Repeat:
Define a kernel configuration file that is targeted at a DS5000/1xx, but
not at a DS5000/2xx.
>Fix:
	Either remove the diagnostic printout around line 1594 or make the
variable declaration for kn03_tc3_imask available for all cpus that need it.

Further info:
My kernel configuration file that displays the problem:
#
# DECstation 5000/xxx)
#
include		"std.pmax"

maxusers	8

#options		GENERIC

options		CPU_R3000		# R2000/R3000 support

options		DS5000_100		# 3MIN (kn02ba/kmin) support

# Standard system options
options		SWAPPAGER		# swap pager (anonymous and swap space)
options		VNODEPAGER		# vnode pager (mapped files)
options		DEVPAGER		# device pager (mapped devices)
options		DEBUG			# extra kernel debugging support
options		"COMPAT_43"		# compatibility with 4.3BSD binaries
options		KTRACE			# system call tracing support
options		"NKMEMCLUSTERS=1024"	# 4K pages in kernel malloc pool

# Filesystem options
options		FIFO		# POSIX fifo support (in all filesystems)
options		FFS,QUOTA	# fast filesystem with user and group quotas
options		MFS		# memory-based filesystem
options		NFSCLIENT	# Sun NFS-compatible filesystem (client)
options		KERNFS		# kernel data-structure filesystem
options		NULLFS		# null layer filesystem

# Networking options
options		INET		# Internet protocols
options		"TCP_COMPAT_42"	# compatibility with 4.2BSD TCP/IP

# pmax specific
options		COMPAT_ULTRIX	# ultrix compatibility
options		"HZ=256"	# RTC rate required

# Note that this configuration is unlikely to work, yet...
config		netbsd root on rz0a swap on rz0b and rz1b dumps on rz0b
config		rz1netbsd root on rz1a swap on rz0b and rz1b dumps on rz0b
#config		gennetbsd	swap generic


########################################################################
#                                                                      #
# DECstation Turbochannel configuration and options                    #
#                                                                      #
########################################################################

tc*		at	mainbus0	# All but PMAXes have a turbochannel


########################################################################
# Common configuration for machines with IO ASIC chips                 #
# (3MIN, MAXINE, 3MAXPLUS)                                             #
########################################################################
ioasic0		at	tc?
clock0	at ioasic? 			# RTC
asc0	at ioasic?			# system SCSI subslot
scc0	at ioasic?
le0	at ioasic?			# tc onboard lance
scc1	at ioasic?			# Not present on Maxine

########################################################################
#  Supported turbochannel option cards			               #
########################################################################
cfb0	at tc?
mfb0	at tc?
sfb0	at tc?
le*	at tc? #slot ?  offset ?		# TC ether option

########################################################################
# SCSI configuration                                                   #
########################################################################

#
# SCSI configuration for new-config machine-independent SCSI driver
#
scsibus*	at asc?

sd*	at	scsibus?	target ? lun ?
st*	at	scsibus?	target ? lun ?
cd*	at	scsibus?	target ? lun ?


#
# SCSI configuration for old DECstation SCSI driver
#
oldscsibus*	at asc?

rz0	at	oldscsibus?	target ? drive ?
rz1	at	oldscsibus?	target ? drive ?
rz2	at	oldscsibus?	target ? drive ?
rz3	at	oldscsibus?	target ? drive ?
rz4	at	oldscsibus?	target ? drive ?
rz5	at	oldscsibus?	target ? drive ?
tz0	at	oldscsibus?	target?  drive ?
tz1	at	oldscsibus?	target?  drive ?


#
# pseudo-devices
#

pseudo-device	pty		64	# pseudo ptys
pseudo-device	bpfilter	16	# packet filter ports
pseudo-device	loop
pseudo-device	vnd		4	# virtual disk ick

pseudo-device	rasterconsole	1 	# NB: raster console requires "fb"
pseudo-device	fb		3	# up to 3 framebuffers

>Audit-Trail:
>Unformatted: