Subject: Re: UVM for sun3?
To: None <port-sun3@NetBSD.ORG>
From: Greg A. Woods <woods@kuma.web.net>
List: port-sun3
Date: 02/15/1998 22:18:24
[ On Sun, February 15, 1998 at 13:55:16 (-0800), Jason Thorpe wrote: ]
> Subject: Re: UVM for sun3?
>
> So, FWIW, I just committed the m68k bits... should appear in tomorrow's
> SUP .. if you want help getting the sun3 up w/ UVM, feel free to send
> me mail, and I'll answer whatever questions you might have to the best
> of my ability :-)
Wonderbar! Thanks!
> Hint: The first thing you'll have to do is implement MACHINE_NEW_NONCONTIG,
> which can be done using the old VM system.
Yeah, I thought so. I think there are already the beginnings of hints
as to how to do this in sun3/pmap.c too, at least in what needs
replacing....
However first off I need to get the current kernel running as-is. It's
dying because of a test that results in a panic() that's only there when
DIAGNOSTIC is set. At the moment because of my unfamiliarity with the
BSD kernel autoconf code I'm not even sure where this state that fails
the test is getting set.
The test is at the opening of bus_scan() in sun3/autoconf.c:
#ifdef DIAGNOSTIC
if (cf->cf_fstate == FSTATE_STAR)
panic("bus_scan: FSTATE_STAR");
#endif
The panic occurs just after it utters "obmem0 at mainbus0"
The backtrace (manually copied and thus missing parameters):
Debugger()
panic()
bus_scan()
mapply()
config_search()
obmem_attach()
config_attach()
config_found_sm()
main_attach()
config_attach()
config_rootfound()
configure()
cpu_startup()
main()
The system in question is a diskless 3/60C (i.e. w/CG4). The kernel
config file I used follows:
# $NetBSD: GENERIC,v 1.50 1998/02/08 05:10:49 gwr Exp $
# GENERIC Sun3 (3/50, 3/60, 3/110, 3/160, 3/260, 3/E)
# Supports root on: ie0, le0, sd*, ...
include "arch/sun3/conf/std.sun3"
# Machines to be supported by this kernel
options FPU_EMULATE
options HAVECACHE # Sun3/260 VAC
# Needs to be set per system. i.e change these as you see fit
maxusers 64
options MAXUPRC=120 # defaults to CHILD_MAX (80)
#options NVNODE=integer # namei cache
# Standard system options
options KTRACE # system call tracing
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
#options LKM # loadable kernel modules
#options INSECURE # disable kernel security level
#options UCONSOLE # Allow non-root TIOCCONS
# Which kernel debugger? Uncomment either this:
options DDB
# ... or these for KGDB (gdb remote target)
#makeoptions DEBUG="-g" # debugging symbols for gdb
#options KGDB
#options KGDBDEV=0x0C01 # ttya=0C00 ttyb=0C01
# Other debugging options
options DDB_HISTORY_SIZE=100 # enable history editing in DDB
options DEBUG # kernel debugging code
options DIAGNOSTIC # extra kernel sanity checking
options KMEMSTATS # kernel memory statistics (vmstat -m)
options PMAP_DEBUG
options SWAPDEBUG
options SCSIDEBUG
options SCSIVERBOSE # Verbose SCSI errors
# kernel printf message buffer size...
#options MSGBUFSIZE=integer
# Compatability options
options COMPAT_SUNOS # can run SunOS 4.1.1 executables
#options COMPAT_43 # and 4.3BSD and ...
#options COMPAT_10 # NetBSD 1.0
#options COMPAT_11 # NetBSD 1.1
#options COMPAT_12 # NetBSD 1.2
options COMPAT_13 # NetBSD 1.3
# Filesystem options
file-system FFS # Berkeley Fast Filesystem
file-system NFS # Sun NFS client support
file-system CD9660 # ISO 9660 + Rock Ridge file system
file-system FDESC # /dev/fd/*
file-system KERNFS # /kern
#file-system NULLFS # loopback file system
file-system PROCFS # /proc
#file-system UNION # union file system
#file-system MFS # memory-based filesystem
options FIFO # FIFOs; RECOMMENDED
options NFSSERVER # nfs server support
options QUOTA # FFS quotas
# Networking options
options INET # IP prototol stack support
#options TCP_COMPAT_42 # compatibility with 4.2BSD TCP/IP
options GATEWAY # IP packet forwarding
#options ISO,TPIP # OSI networking
#options EON # OSI tunneling over IP
#options CCITT,LLC,HDLC # X.25
options PFIL_HOOKS # pfil(9) packet filter hooks.
# Other networking options
#options IPFORWSRCRT=0 # IP forwarding of source routed packets
#options MROUTING # multicast routing support (req INET)
#options NETATALKA # Appletalk stack
#options PPP_FILTER # pcap(3) PPP filter hooks.
options NTP # kernel NTP support
# options for pseudo-device ipfilter
options IPFILTER_LOG # ipfilter logging
#options IPFILTER_DEFAULT_BLOCK # ipfilter starts blocked
# Work-around for root on slow servers (insurance...)
options NFS_BOOT_RWSIZE=1024
options NFS_BOOT_BOOTPARAM
config netbsd root on ? type ?
# On-board I/O space (required)
include "arch/sun3/conf/obio.sun3"
# On-board memory (optional)
# See frame-buffers
obmem0 at mainbus?
# VME bus support (optional)
# One unit for each address space
vme0 at mainbus? # A16/D16
vme1 at mainbus? # A16/D32
vme2 at mainbus? # A24/D16
vme3 at mainbus? # A24/D32
vme4 at mainbus? # A32/D16
vme5 at mainbus? # A32/D32
#
# Serial ports
#
zstty0 at zsc1 channel 0 # ttya
zstty1 at zsc1 channel 1 # ttyb
kbd0 at zsc0 channel 0 # keyboard
ms0 at zsc0 channel 1 # mouse
#
# Network devices
#
# Intel Ethernet (onboard, or VME)
ie0 at obio0 addr 0x0C0000 ipl 3
ie1 at vme2 addr 0xe88000 ipl 3 vect 0x75
# Lance Ethernet (only onboard)
le0 at obio0 addr 0x120000 ipl 3
# All Sun3 machines with an "le" (3/50, 3/60) should be
# presumed to have the old, buggy LANCE chip. (Rev. C)
#options LANCE_REVC_BUG
#
# Disk and tape devices
#
# Sun3 "si" SCSI controller (NCR 5380)
# This driver has several flags which may be enabled using
# the "flags" directive. Valid flags are:
#
# 0x000ff Set (1<<target) to disable disconnect/reselect
# 0x0ff00 Set (1<<(target+8)) to disable parity checking
# 0x10000 Set this bit to disable DMA interrupts (poll)
# 0x20000 Set this bit to disable DMA entirely (use PIO)
#
# For example: "flags 0x1000f" would disable DMA interrupts,
# and disable disconnect/reselect for targets 0-3
si0 at obio0 addr 0x140000 ipl 2 flags 0x0
si0 at vme2 addr 0x200000 ipl 2 vect 0x40 flags 0x0
si1 at vme2 addr 0x204000 ipl 2 vect 0x41 flags 0x0
# Xylogics 450/451 controllers (VME A16/D16)
#xyc0 at vme0 addr 0xee40 ipl 2 vect 0x48
#xyc1 at vme0 addr 0xee48 ipl 2 vect 0x49
#xy* at xyc? drive ?
# Xylogics 7053 controllers (VME A16/D32)
#xdc0 at vme1 addr 0xee80 ipl 2 vect 0x44
#xdc1 at vme1 addr 0xee90 ipl 2 vect 0x45
#xd* at xdc? drive ?
# Xylogics 472 tape controllers?
# Sun3/E SCSI+Ethernet board (VME A24/D16)
# Note: the board uses vect and vect+1
#sebuf0 at vme2 addr 0x300000 ipl 2 vect 0x74 # and 0x75
#sebuf1 at vme2 addr 0x340000 ipl 2 vect 0x76 # and 0x77
#si* at sebuf?
#ie* at sebuf?
#
# Frame buffer devices
#
include "arch/sun3/conf/bw2.sun3"
include "arch/sun3/conf/cg4.sun3"
# 3/60 P4 accelerated 8-bit color frame buffer
#cgsix0 at obmem0 addr 0xff000000
# 3/60 P4 24-bit color frame buffer
#cgeight0 at obmem0 addr 0xff300000
# Sun-3 color board, or CG5 8-bit frame buffer (VME A24/D16).
cgtwo0 at vme2 addr 0x400000 ipl 4 vect 0xA8
# Support for the CG9 24-bit frame buffer (VME A32/D32).
#cgnine0 at vme5 addr 0x08000000 ipl 4 vect 0xAA
#
# SCSI infrastructure
#
scsibus* at scsi?
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 devices
# Memory-disk drivers
pseudo-device md 2
# Misc.
pseudo-device loop 1 # network loopback
pseudo-device bpfilter 8 # packet filter
#pseudo-device sl 2 # CSLIP
#pseudo-device ppp 2 # PPP
pseudo-device tun 2 # network tunneling over tty
pseudo-device ipfilter # ip filter
# rnd is EXPERIMENTAL
pseudo-device rnd # /dev/random and in-kernel generator
pseudo-device pty 128 # pseudo-terminals
pseudo-device vnd 4 # paging to files
#pseudo-device ccd 4 # concatenated disks
--
Greg A. Woods
+1 416 443-1734 VE3TCP robohack!woods
Planix, Inc. <woods@planix.com>; Secrets Of The Weird <woods@weird.com>