Subject: those sun4m system hangs
To: None <port-sparc@NetBSD.ORG>
From: Erik E. Fair <fair@atomic.clock.org>
List: port-sparc
Date: 04/10/1998 16:36:42
This afternoon, I tried to boot a kernel built from this morning's sup. It's
one of my configurations (ATOMIC) rather than GENERIC, and I will attach it
below. What's interesting about this one is that it died during autoconfig,
thus:

	SPARCclassic, No Keyboard
	ROM Rev. 2.9, 48 MB memory installed, Serial #153703.
	Ethernet address 8:0:20:4:d3:67, Host ID: 80025867.

	Boot device: /iommu/sbus/espdma@4,8400000/esp@4,8800000/sd@0,0   File and args:
	>> NetBSD/sparc Secondary Boot, Revision 1.7
	>> (root@atomic.clock.org, Wed Sep 24 09:30:35 PDT 1997)
	Booting netbsd @ 0x4000
	1245184+116184+144888+[78012+91922]=0x19d3a6
	pmap_bootstrap: installing kernel page tables...done.
	console is ttya
	Copyright (c) 1996, 1997, 1998
		The NetBSD Foundation, Inc.  All rights reserved.
	Copyright (c) 1982, 1986, 1989, 1991, 1993
		The Regents of the University of California.  All rights reserved.

	NetBSD 1.3E (ATOMIC) #5: Fri Apr 10 14:13:29 PDT 1998
	root@atomic.clock.org:/usr/src/sys/arch/sparc/compile/ATOMIC
	real mem = 49967104
	avail mem = 44560384
	using 609 buffers containing 2494464 bytes of memory
	bootpath: /iommu@0,10000000/sbus@0,10001000/espdma@4,8400000/esp@4,8800000/sd@0,0
	mainbus0 (root): SUNW,SPARCclassic
	cpu0 at mainbus0: TMS390S10 @ 50 MHz, on-chip FPU
	cpu0: physical 4K instruction (32 b/l), 2K data (16 b/l): cache enabled
	obio0 at mainbus0
	clock0 at obio0 slot 0 offset 0x200000: mk48t08 (eeprom)
	timer0 at obio0 slot 0 offset 0xd00000

Now, it should read:

	timer0 at obio0 slot 0 offset 0xd00000 delay constant 23
	zs0 at obio0 slot 0 offset 0x100000 level 12 softpri 6
	[remainder elided...]

So, it would appear that during the initialization of the timer's delay
constant something goes awry (usual symptoms - power cycle required).

Charles, do you have the /dev/random stuff turned on in the kernels you are
using?

	Erik E. Fair    <fair@clock.org>


# 	$NetBSD: GENERIC,v 1.63 1998/03/21 11:15:25 pk Exp $

include "arch/sparc/conf/std.sparc"

maxusers	32

## System kernel configuration.  See options(4) for more detail.


# Options for variants of the Sun SPARC architecure.
# We currently support three architecture types; at least one is required.
#options 	SUN4		# sun4/100, sun4/200, sun4/300
#options 	SUN4C		# sun4c - SS1, 1+, 2, ELC, SLC, IPC, IPX, etc.
options 	SUN4M		# sun4m - SS10, SS20, Classic, etc.

#options 	SUN4_MMU3L	# 3-level MMU on sun4/400; (incomplete)

## System options specific to the sparc machine type

# Blink the power LED on some machines to indicate the system load.
#options 	BLINK

## Use a faster console than the PROM's slow drawing routines.  Not needed
## for headless (no framebuffer) machines.
options 	RASTERCONSOLE	# fast rasterop console


#### System options that are the same for all ports

## Root device configuration: change the ?'s if you are going to use a
## nonstandard root partition (other than where the kernel is booted from)
## and/or nonstandard root type (not ffs or nfs).  Normally this can be
## automagically determined at boot time.

config		netbsd	root on ? type ?

## Virtual memory configuration.  There are two choices, the old Mach
## based VM system, or the new UVM system.
options 	OLDVM		# MACH VM
#options 	UVM		# UVM VM

## System call tracing (see ktrace(1)).
options 	KTRACE

## Collect statistics on kernel malloc's and free's.  This does have a
## significant performance hit on slower machines, so it is intended for
## diagnostic use only.
#options 	KMEMSTATS

## System V compatible IPC subsystem.  (msgctl(2), semctl(2), and shmctl(2))
options 	SYSVMSG		# System V message queues
options 	SYSVSEM		# System V semaphores
options 	SYSVSHM		# System V shared memory
#options 	SHMMAXPGS=1024	# 1024 pages is the default

## Loadable kernel module support; still under development.
#options 	LKM

## NFS boot options; default on sparc is the bootparam protocol
options 	NFS_BOOT_BOOTPARAM
#options 	NFS_BOOT_BOOTP
#options 	NFS_BOOT_DHCP

#### Debugging options

## The DDB in-kernel debugger runs at panic (unless DDB_ONPANIC=0), or at
## serial console break or keyboard reset, where the PROM would normally
## intercept.  DDB_HISTORY_SIZE adds up/down arrow command history.
#options 	DDB			# kernel dynamic debugger
#options 	DDB_HISTORY_SIZE=100	# enable history editing in DDB
#options 	DDB_ONPANIC		# see also sysctl(8): `ddb.onpanic'

## You may also use gdb, on another computer connected to this machine over
## a serial port.  Both KGDBDEV and KGDBRATE should be specified; KGDBDEV is
## a dev_t encoded device number of the serial port to use.
## (0xc01 = ttya, 0xc02 = ttyb.)
#options 	KGDB		# support for kernel gdb
#options 	KGDBDEV=0xc01	# kgdb device number (this sample is `ttyb')
#options 	KGDBRATE=38400	# baud rate


## Compile the kernel with debugging symbols (`netbsd.gdb' is the debug file),
## such that gdb(1) can be used on a kernel coredump.

makeoptions 	DEBUG="-g"


## Adds code to the kernel that does internal consistency checks, and will
## cause the kernel to panic if corruption of internal data structures
## is detected.
options 	DIAGNOSTIC	# extra kernel sanity checking

## Enable (possibly expensive) debugging code that may also display messages
## on the system console
options 	DEBUG

## Make SCSI error messages more verbose when explaining their meanings.
options 	SCSIVERBOSE

## `INSECURE' turns off the kernel security level (securelevel = 0 always).
## This allows writing to /dev/mem, loading kernel modules while multi-user,
## and other insecurities good only for development work.  Do not use this
## option on a production machine.
#options 	INSECURE

## Allow non-root users to grab /dev/console with programs such as xconsole.
## `xconsole' therefore does not need setuid root with this option enabled.
#options 	UCONSOLE

## `FDSCRIPTS' allows non-readable but executable scripts by providing a
## pre-opened opaque file to the script interpreter.  `SETUIDSCRIPTS',
## which implies FDSCRIPTS, allows scripts to be set-user-id using the same
## opaque file mechanism.  Perl calls this "secure setuid scripts."

#options 	FDSCRIPTS
#options 	SETUIDSCRIPTS

## Options for compatibility with previous releases foreign system binaries.
## In the cases of COMPAT_SUNOS and COMPAT_SVR4, you may need to set up
## additional user-level utilities or system configuration files. See
## compat_sunos(8) and compat_svr4(8).

options 	COMPAT_43	# 4.3BSD system interfaces
options 	COMPAT_10	# NetBSD 1.0 binary compatibility
options 	COMPAT_11	# NetBSD 1.1 binary compatibility
options 	COMPAT_12	# NetBSD 1.2 binary compatibility
options 	COMPAT_13	# NetBSD 1.3 binary compatibility
options 	COMPAT_SUNOS	# SunOS 4.x binary compatibility
options 	COMPAT_SVR4	# SunOS 5.x binary compatibility
options 	EXEC_ELF32	# Exec module for SunOS 5.x binaries.

## File systems.  You probably need at least one of FFS or NFS.
file-system	FFS		# Berkeley Fast Filesystem
file-system	NFS		# Sun NFS-compatible filesystem client
file-system	KERNFS		# kernel data-structure filesystem
file-system	NULLFS		# NULL layered filesystem
file-system	MFS		# memory-based filesystem
file-system	FDESC		# user file descriptor filesystem
file-system	UMAPFS		# uid/gid remapping filesystem
#file-system	LFS		# Log-based filesystem (still experimental)
#file-system	PORTAL		# portal filesystem (still experimental)
file-system	PROCFS		# /proc
file-system	CD9660		# ISO 9660 + Rock Ridge file system
#file-system	UNION		# union file system
file-system	MSDOSFS		# MS-DOS FAT filesystem(s).

## File system options.
options 	NFSSERVER	# Sun NFS-compatible filesystem server
#options 	QUOTA		# FFS quotas
#options 	FFS_EI		# FFS Endian Independent support
options 	FIFO		# POSIX fifo support (in all filesystems)

## Network protocol support.  In most environments, INET is required.
options 	INET		# IP (Internet Protocol) v4
#options 	TCP_COMPAT_42	# 4.2BSD IP implementation compatibility
options 	GATEWAY		# packet forwarding ("router switch")
options 	MROUTING	# packet forwarding of multicast packets
#options 	DIRECTED_BROADCAST	# allow broadcasts through routers
#options 	NS		# Xerox NS networking
#options 	NSIP		# Xerox NS tunneling over IP
#options 	ISO,TPIP	# OSI networking
#options 	EON		# OSI tunneling over IP
#options 	CCITT,LLC,HDLC	# X.25 packet switched protocol
options 	NETATALK	# AppleTalk (over Ethernet) protocol
options 	NTP		# Network Time Protocol in-kernel support
options 	PPS_SYNC	# Add serial line synchronization for NTP
#options 	PFIL_HOOKS	# Add pfil(9) hooks, intended for custom LKMs.
#options 	IPFILTER_LOG	# Add ipmon(8) logging for ipfilter device
#options 	PPP_BSDCOMP	# Add BSD compression to ppp device
#options 	PPP_DEFLATE	# Add deflate (libz) compression to ppp device
#options 	PPP_FILTER	# Add active filters for ppp (via bpf)



#### Main bus and CPU .. all systems.
mainbus0 at root
cpu0	at mainbus0

#### Bus types found on SPARC systems.

#sbus0	at mainbus0				# sun4c
obio0	at mainbus0				# sun4 and sun4m
#vme0	at mainbus0				# sun4
iommu0	at mainbus0				# sun4m
sbus0	at iommu0				# sun4m
#vme0	at iommu0				# sun4m

#### Standard system devices -- all required for a given architecture

## Auxiliary system registers on sun4c and sun4m
#auxreg0	at mainbus0				# sun4c
auxreg0	at obio0				# sun4m

## Power status and control register on Sun4m systems
power0	at obio0

## Mostek clock found on 4/300, sun4c, and sun4m systems.
## The Mostek clock NVRAM is the "eeprom" on sun4/300 systems.
#clock0	at mainbus0				# sun4c
clock0	at obio0				# sun4m
#clock0	at obio0 addr 0xf2000000		# sun4/300

## Intersil clock found on 4/100 and 4/200 systems.
#oclock0	at obio0 addr 0xf3000000		# sun4/200
#oclock0	at obio0 addr 0x03000000		# sun4/100

## Memory error registers.
#memreg0	at mainbus0				# sun4c
memreg0	at obio0				# sun4m
#memreg0	at obio0 addr 0xf4000000		# sun4/200 and sun4/300
#memreg0	at obio0 addr 0x04000000		# sun4/100

## Timer chip found on 4/300, sun4c, and sun4m systems.
#timer0	at mainbus0				# sun4c
timer0	at obio0				# sun4m
#timer0	at obio0 addr 0xef000000		# sun4/300

## EEPROM found on 4/100 and 4/200 systems.  Note that the 4/300
## doesn't use this driver; the `EEPROM' is in the NVRAM on the
## Mostek clock chip on 4/300 systems.
#eeprom0	at obio0 addr 0xf2000000		# sun4/200
#eeprom0	at obio0 addr 0x02000000		# sun4/100


#### Serial port configuration

## Zilog 8530 serial chips.  Each has two-channels.
## zs0 is ttya and ttyb.  zs1 is the keyboard and mouse.
#zs0	at mainbus0					# sun4c
zs0	at obio0					# sun4m
#zs0	at obio0 addr 0xf1000000 level 12 flags 0x103	# sun4/200 and sun4/300
#zs0	at obio0 addr 0x01000000 level 12 flags 0x103	# sun4/100
zstty0	at zs0 channel 0	# ttya
zstty1	at zs0 channel 1	# ttyb

#zs1	at mainbus0					# sun4c
zs1	at obio0					# sun4m
#zs1	at obio0 addr 0xf0000000 level 12 flags 0x103	# sun4/200 and sun4/300
#zs1	at obio0 addr 0x00000000 level 12 flags 0x103	# sun4/100
kbd0	at zs1 channel 0	# keyboard
ms0	at zs1 channel 1	# mouse

#zs2	at obio0 addr 0xe0000000 level 12 flags 0x103	# sun4/300
#zstty2	at zs2 channel 0	# ttyc
#zstty3	at zs2 channel 1	# ttyd

#### Disk controllers and disks

#

## The following flags may be set for the NCR53c94 based esp driver:
##	bits 0-7:  disable disconnect/reselect for the corresponding target
##	bits 8-15: disable synchronous negotiation for target [bit-8]

## sun4/300, sun4c, sun4m on-board SCSI, and FSBE/S SBus SCSI cards.
## Both `dma' and `esp' are needed in all cases.
## Two kinds of additional SBus SCSI interfaces are available.  One uses
## "esp at sbus" like the sun4c on-board; the other uses "esp at dma".

## sun4/300 SCSI - an NCR53c94 or equivalent behind
## an LSI Logic DMA controller

#dma0	at obio0 addr 0xfa001000 level 4		# sun4/300
#esp0	at obio0 addr 0xfa000000 level 4 flags 0x0000	# sun4/300

dma0	at sbus0 slot ? offset ?			# sun4c/sun4m
#esp0	at sbus0 slot ? offset ? flags 0x0000		# sun4c
esp0	at dma0 flags 0x0000				# sun4m

# FSBE/S SCSI
dma*	at sbus? slot ? offset ?			# SBus
esp*	at sbus? slot ? offset ? flags 0x0000		# SBus (older proms)
esp*	at dma? flags 0x0000				# SBus

scsibus* at esp?

## Qlogic ISP SBus SCSI Card
#isp*	at sbus? slot ? offset ?
#scsibus* at isp?

## NCR5380-based "Sun SCSI 3" VME SCSI controller.
## This driver has several flags which may be enabled by OR'ing
## the values and using the "flags" directive.
## Valid flags are:
##
##	0x01		Use DMA (may be polled)
##	0x02		Use DMA completion interrupts
##	0x04		Allow disconnect/reselect
##
## E.g. the following would enable DMA, interrupts, and reselect:
## si0	at vme0 addr 0x200000 level 3 vect 0x40 flags 0x07
##
## By default, DMA is enabled in the driver.

#si0	at vme0 addr 0x200000 pri 2 vec 0x40
#scsibus* at si?

## NCR5380-based "SCSI Weird" on-board SCSI interface found
## on sun4/100 systems.  The flags are the same as the "si"
## controller.  Note, while DMA is enabled by default, only
## polled DMA works at this time, and reselects do not work
## on this particular controller.

#sw0	at obio0 addr 0x0a000000 level 3
#scsibus* at sw?

## These entries find devices on all SCSI busses and assign
## unit numbers dynamically.
sd*	at scsibus? target ? lun ?		# SCSI disks
st*	at scsibus? target ? lun ?		# SCSI tapes
cd*	at scsibus? target ? lun ?		# SCSI CD-ROMs
ch*	at scsibus? target ? lun ?		# SCSI changer devices
ss*	at scsibus? target ? lun ?		# SCSI scanners
uk*	at scsibus? target ? lun ?		# unknown SCSI


## Xylogics 753 or 7053 VME SMD disk controllers and disks, found
## on sun4 systems.
#xdc0	at vme0 addr 0xee80 pri 3 vec 0x44
#xdc1	at vme0 addr 0xee90 pri 3 vec 0x45
#xdc2	at vme0 addr 0xeea0 pri 3 vec 0x46
#xdc3	at vme0 addr 0xeeb0 pri 3 vec 0x47
#xd*	at xdc? drive ?

## Xylogics 451 or 451 VME SMD disk controllers and disks, found
## on sun4 systems.
#xyc0	at vme0 addr 0xee40 pri 3 vec 0x48
#xyc1	at vme0 addr 0xee48 pri 3 vec 0x49
#xy*	at xyc? drive ?


## Floppy controller and drive found on SPARCstations.

#fdc0	at mainbus0				# sun4c controller
fdc0	at obio0				# sun4m controller
fd*	at fdc0					# the drive itself

## A disk-like interface to files.  Can be used to create floppy, CD,
## miniroot images, etc.

pseudo-device	vnd	4

## Concatenated and striped disks; with this, you can create a software-based
## disk array similar to a "RAID 0" setup.  See ccd(4).

pseudo-device	ccd	4

## Memory disk device, used on boot floppies with compressed
## kernel-plus-root-disk images.

#pseudo-device	md	1


#### Network interfaces

## LANCE Ethernet - an AMD 7990 LANCE behind specialized DMA glue
## Three flavors of additional SBus ethernets are available.  One attaches
## directly like the sun4c on-board, one uses the ledma device like the
## sun4m on-board, and one uses the lebuffer device.

#le0		at obio0 addr 0xf9000000 level 6	# sun4/300
#le0		at sbus0 slot ? offset ?		# sun4c on-board
ledma0		at sbus0 slot ? offset ?		# sun4m on-board
le0		at ledma0				# sun4m on-board
le*		at sbus? slot ? offset ?		# SBus
ledma*		at sbus? slot ? offset ?		# SBus
le*		at ledma?				# SBus
lebuffer0	at sbus? slot ? offset ?		# SBus
le0		at lebuffer?				# SBus
lebuffer*	at sbus? slot ? offset ?		# SBus
le*		at lebuffer?				# SBus


## sun4/100 and sun4/200 Ethernet - an Intel 82586 on-board
## or on a Multibus/VME card.
#ie0	at obio0 addr 0xf6000000 level 6		# sun4/200 on-board
#ie0	at obio0 addr 0x06000000 level 6		# sun4/100 on-board
#ie1	at vme0 addr 0xe88000 pri 3 vec 0x75		# VME
#ie2	at vme0 addr 0x31ff02 pri 3 vec 0x76		# VME
#ie3	at vme0 addr 0x35ff02 pri 3 vec 0x77		# VME
#ie4	at vme0 addr 0x2dff02 pri 3 vec 0x7c		# VME

## Loopback network interface; required
pseudo-device	loop

## SLIP and CSLIP interfaces, for IP over a serial line.
#pseudo-device	sl		2

## PPP, the successor to SLIP.  See pppd(8).
pseudo-device	ppp		2

## Starmode Radio IP, a special hardware network device.
pseudo-device	strip		1

## Network "tunnel" device, allowing protocol stacks to run in the userland.
## This is used by the third-party user-mode "ppp" program, and others.
pseudo-device	tun		4

## Berkeley Packet Filter, required to run RARPD.  A generic C-language
## interface that allows selective examining of incoming packets.
pseudo-device	bpfilter	8

## IP Filter, used in firewall and NAT applications.  See ipnat(8) for
## one example of the use of the IP Filter.
pseudo-device	ipfilter


#### Audio and video devices

## /dev/audio support (`audioamd' plus `audio')
##
#audioamd0	at mainbus0				# sun4c
#audioamd0	at obio0				# sun4m
audioamd0	at sbus0 slot ? offset ?		# sun4m
audio*		at audioamd0


## Sun "bwtwo" black and white framebuffer, found on sun4, sun4c, and sun4m
## systems.  If your sun4 system has a cgfour installed in the P4 slot,
## the P4 entries for "bwtwo" will attach to the overlay plane of the
## "cgfour".

bwtwo0		at sbus0 slot ? offset ?		# sun4c and sun4m
bwtwo*		at sbus? slot ? offset ?		#
#bwtwo0		at obio0 addr 0xfd000000 level 4	# sun4/200
#bwtwo0		at obio0 addr 0xfb300000 level 4	# sun4/300 in P4 slot
#bwtwo0		at obio0 addr 0x0b300000 level 4	# sun4/100 in P4 slot

## Sun "cgtwo" VME color framebuffer
#cgtwo0		at vme0 addr 0x400000 pri ? vec 0xa8

## Sun "cgthree" Sbus color framebuffer
cgthree0	at sbus? slot ? offset ?
cgthree*	at sbus? slot ? offset ?
#cgthree0	at obio? slot ? offset ?		# sun4m

## Sun "cgfour" color framebuffer with overlay plane.  See above comment
## regarding overlay plane.
#cgfour0		at obio0 addr 0xfb300000 level 4	# sun4/300 P4
#cgfour0		at obio0 addr 0x0b300000 level 4	# sun4/100 P4

## Sun "cgsix" accelerated color framebuffer.
cgsix0		at sbus? slot ? offset ?
cgsix*		at sbus? slot ? offset ?
#cgsix0		at obio0 addr 0xfb000000 level 4	# sun4/300 P4
#cgsix0		at obio0 addr 0x0b000000 level 4	# sun4/100 P4

## Sun "cgeight" 24-bit framebuffer
#cgeight0 	at obio0 addr 0xfb300000 level 4	# sun4/300 P4
#cgeight0	at obio0 addr 0x0b300000 level 4	# sun4/100 P4

## Sun "tcx" accelerated color framebuffer.
#tcx0		at sbus? slot ? offset ?
#tcx*		at sbus? slot ? offset ?

# Sun "cgfourteen" accelerated 24-bit framebuffer.
#cgfourteen0	at obio0			# sun4m


### Other device configuration

## Pseudo ttys, required for network logins and programs like screen.
## 32 is a good number for average systems; you may have as many as you
## like, though 256 is more or less the upper limit.  Increasing this
## number still requires you to run /dev/MAKEDEV to create the files
## for the ptys.

pseudo-device	pty		32	# pseudo-ttys (for network, etc.)

## Random device, used to implement /dev/random (a source of random noise),
## and generate randomness for some kernel formulae.
## THIS DEVICE IS EXPERIMENTAL; use at your own risk.

pseudo-device	rnd