GENERIC_601 revision 1.32
1706f2543Smrg# $NetBSD: GENERIC_601,v 1.32 2024/04/02 22:56:50 charlotte Exp $
2706f2543Smrg#
3706f2543Smrg# GENERIC machine description file
4706f2543Smrg# 
5706f2543Smrg# This machine description file is used to generate the default NetBSD
6706f2543Smrg# kernel.  The generic kernel does not include all options, subsystems
7706f2543Smrg# and device drivers, but should be useful for most applications.
8706f2543Smrg#
9706f2543Smrg# The machine description file can be customised for your specific
10706f2543Smrg# machine to reduce the kernel size and improve its performance.
11706f2543Smrg#
12706f2543Smrg# For further information on compiling NetBSD kernels, see the config(8)
13706f2543Smrg# man page.
14706f2543Smrg#
15706f2543Smrg# For further information on hardware support for this architecture, see
16706f2543Smrg# the intro(4) man page.  For further information about kernel options
17706f2543Smrg# for this architecture, see the options(4) man page.  For an explanation
18706f2543Smrg# of each device driver in this file see the section 4 man page for the
19706f2543Smrg# device.
20706f2543Smrg#
21706f2543Smrg# For PPC 601, need "CPUFLAGS+= -mcpu=601"
22706f2543Smrg#
23706f2543Smrg# Openfirmware 1.0.5 require a kernel < 4M for netbooting
24706f2543Smrg#
25706f2543Smrg# this config more or less matches a Power Macintosh 7200 with a USB card
26706f2543Smrg
27706f2543Smrginclude 	"arch/macppc/conf/std.macppc.601"
28706f2543Smrg
29706f2543Smrgoptions 	INCLUDE_CONFIG_FILE	# embed config file in kernel binary
30706f2543Smrg
31706f2543Smrgident 		"GENERIC-$Revision: 1.32 $"
32706f2543Smrg
33706f2543Smrgmaxusers	32
34706f2543Smrg
35706f2543Smrg# Standard system options
36706f2543Smrgoptions 	INSECURE	# disable kernel security levels
37706f2543Smrg
38706f2543Smrgoptions 	RTC_OFFSET=0	# hardware clock is this many mins. west of GMT
39706f2543Smrgoptions 	NTP		# NTP phase/frequency locked loop
40706f2543Smrgoptions 	KTRACE		# system call tracing via ktrace(1)
41706f2543Smrg
42706f2543Smrgoptions 	SYSVMSG		# System V message queues
43706f2543Smrgoptions 	SYSVSEM		# System V semaphores
44706f2543Smrgoptions 	SYSVSHM		# System V shared memory
45706f2543Smrg
46706f2543Smrgoptions 	MODULAR		# new style module(7) framework
47706f2543Smrgoptions 	MODULAR_DEFAULT_AUTOLOAD
48706f2543Smrg
49706f2543Smrg#options 	USERCONF	# userconf(4) support
50706f2543Smrg#options 	PIPE_SOCKETPAIR	# smaller, but slower pipe(2)
51706f2543Smrgoptions 	SYSCTL_INCLUDE_DESCR	# Include sysctl descriptions in kernel
52706f2543Smrg
53706f2543Smrg# Alternate buffer queue strategies for better responsiveness under high
54706f2543Smrg# disk I/O load.
55706f2543Smrg#options 	BUFQ_READPRIO
56706f2543Smrgoptions 	BUFQ_PRIOCSCAN
57706f2543Smrg
58706f2543Smrg# Diagnostic/debugging support options
59706f2543Smrg#options 	DIAGNOSTIC	# cheap kernel consistency checks
60706f2543Smrg#options 	DEBUG		# expensive debugging checks/support
61706f2543Smrgoptions 	ZS_CONSOLE_ABORT# allow break to get into DDB on serial
62706f2543Smrgoptions 	DDB		# in-kernel debugger
63706f2543Smrg#options 	DDB_ONPANIC=0	# don't go into ddb on panic.
64706f2543Smrgoptions 	DDB_HISTORY_SIZE=512	# enable history editing in DDB
65706f2543Smrg#options 	TRAP_PANICWAIT
66706f2543Smrg#options 	DDB_COMMANDONENTER="bt"
67706f2543Smrg
68706f2543Smrg#makeoptions 	DEBUG="-g"	# compile full symbol table
69706f2543Smrg
70706f2543Smrg# Compatibility options
71706f2543Smrginclude 	"conf/compat_netbsd50.config"
72706f2543Smrg
73706f2543Smrg#options 	COMPAT_386BSD_MBRPART # recognize old partition ID
74706f2543Smrg#options 	COMPAT_LINUX	# Linux binary compatibility
75706f2543Smrg#options 	COMPAT_OSSAUDIO	# Linux binary compatibility
76706f2543Smrg
77706f2543Smrg# Wedge support
78706f2543Smrgoptions         DKWEDGE_AUTODISCOVER    # Automatically add dk(4) instances
79706f2543Smrgoptions         DKWEDGE_METHOD_GPT      # Supports GPT partitions as wedges
80706f2543Smrg#options	DKWEDGE_METHOD_BSDLABEL # Support disklabel entries as wedges
81706f2543Smrg#options	DKWEDGE_METHOD_MBR      # Support MBR partitions as wedges
82706f2543Smrgoptions		DKWEDGE_METHOD_APPLE    # Support Apple partitions as wedges
83706f2543Smrg#options	DKWEDGE_METHOD_RDB	# Support RDB partitions as wedges
84706f2543Smrg#options	DKWEDGE_METHOD_TOS	# Support Atari "TOS" partitions as wedges
85706f2543Smrg
86706f2543Smrg# File systems
87706f2543Smrgfile-system 	FFS		# UFS
88706f2543Smrg#file-system 	EXT2FS		# second extended file system (linux)
89706f2543Smrg#file-system 	LFS		# log-structured file system
90706f2543Smrg#file-system 	MFS		# memory file system
91706f2543Smrgfile-system 	NFS		# Network File System client
92706f2543Smrgfile-system 	CD9660		# ISO 9660 + Rock Ridge file system
93706f2543Smrg#file-system 	MSDOSFS		# MS-DOS file system
94706f2543Smrgfile-system 	FDESC		# /dev/fd
95706f2543Smrgfile-system 	KERNFS		# /kern
96706f2543Smrg#file-system 	NULLFS		# loopback file system
97706f2543Smrg#file-system 	OVERLAY		# overlay file system
98706f2543Smrg#file-system	PUFFS		# Userspace file systems (e.g. ntfs-3g & sshfs)
99706f2543Smrgfile-system 	PROCFS		# /proc
100706f2543Smrg#file-system 	UMAPFS		# NULLFS + uid and gid remapping
101706f2543Smrg#file-system 	UNION		# union file system
102706f2543Smrgfile-system	PTYFS		# /dev/pts/N support
103706f2543Smrgfile-system	TMPFS		# Efficient memory file-system
104706f2543Smrg#file-system	UDF		# experimental - OSTA UDF CD/DVD file-system
105706f2543Smrg#file-system	HFS		# experimental - Apple HFS+ (read-only)
106706f2543Smrg
107706f2543Smrg# File system options
108706f2543Smrg#options 	APPLE_UFS	# Apple UFS support in FFS
109706f2543Smrg#options 	FFS_EI		# FFS Endian Independent support
110706f2543Smrg#options 	FFS_NO_SNAPSHOT	# No FFS snapshot support
111706f2543Smrg#options 	QUOTA		# legacy UFS quotas
112706f2543Smrg#options 	QUOTA2		# new, in-filesystem UFS quotas
113706f2543Smrg#options 	UFS_DIRHASH	# UFS Large Directory Hashing
114706f2543Smrg#options 	UFS_EXTATTR	# Extended attribute support for UFS1
115706f2543Smrgoptions 	WAPBL		# File system journaling support
116706f2543Smrg#options 	NFSSERVER	# Network File System server
117706f2543Smrg
118706f2543Smrgoptions 	NFS_BOOT_DHCP	# Support DHCP NFS root
119706f2543Smrg
120706f2543Smrg# Networking options
121706f2543Smrg#options 	GATEWAY		# packet forwarding
122706f2543Smrgoptions 	INET		# IP + ICMP + TCP + UDP
123706f2543Smrgoptions 	INET6		# IPV6
124706f2543Smrg#options 	IPSEC		# IP security
125706f2543Smrg#options 	IPSEC_DEBUG	# debug for IP security
126706f2543Smrg#options 	MROUTING	# IP multicast routing
127706f2543Smrg#options 	PIM		# Protocol Independent Multicast
128706f2543Smrg#options 	NETATALK	# AppleTalk networking protocols
129706f2543Smrg#options 	PPP_BSDCOMP	# BSD-Compress compression support for PPP
130706f2543Smrg#options 	PPP_DEFLATE	# Deflate compression support for PPP
131706f2543Smrg#options 	PPP_FILTER	# Active filter support for PPP (requires bpf)
132706f2543Smrg#options 	TCP_DEBUG	# Record last TCP_NDEBUG packets with SO_DEBUG
133706f2543Smrg
134706f2543Smrg#options 	ALTQ		# Manipulate network interfaces' output queues
135706f2543Smrg#options 	ALTQ_BLUE	# Stochastic Fair Blue
136706f2543Smrg#options 	ALTQ_CBQ	# Class-Based Queueing
137706f2543Smrg#options 	ALTQ_CDNR	# Diffserv Traffic Conditioner
138706f2543Smrg#options 	ALTQ_FIFOQ	# First-In First-Out Queue
139706f2543Smrg#options 	ALTQ_FLOWVALVE	# RED/flow-valve (red-penalty-box)
140706f2543Smrg#options 	ALTQ_HFSC	# Hierarchical Fair Service Curve
141706f2543Smrg#options 	ALTQ_LOCALQ	# Local queueing discipline
142706f2543Smrg#options 	ALTQ_PRIQ	# Priority Queueing
143706f2543Smrg#options 	ALTQ_RED	# Random Early Detection
144706f2543Smrg#options 	ALTQ_RIO	# RED with IN/OUT
145706f2543Smrg#options 	ALTQ_WFQ	# Weighted Fair Queueing
146706f2543Smrg
147706f2543Smrg# These options enable verbose messages for several subsystems.
148706f2543Smrg# Warning, these may compile large string tables into the kernel!
149706f2543Smrgoptions 	PCIVERBOSE	# verbose PCI device autoconfig messages
150706f2543Smrgoptions 	MIIVERBOSE	# verbose PHY autoconfig messages
151706f2543Smrg#options 	PCI_CONFIG_DUMP	# verbosely dump PCI config space
152706f2543Smrgoptions 	SCSIVERBOSE	# human readable SCSI error messages
153706f2543Smrgoptions 	USBVERBOSE	# verbose USB device autoconfig messages
154706f2543Smrg
155706f2543Smrg# wscons options
156706f2543Smrg#options 	WSEMUL_SUN			# sun terminal emulation
157706f2543Smrgoptions 	WSEMUL_VT100			# VT100 / VT220 emulation
158706f2543Smrgoptions 	WSDISPLAY_COMPAT_PCVT		# emulate some ioctls
159706f2543Smrgoptions 	WSDISPLAY_COMPAT_SYSCONS	# emulate some ioctls
160706f2543Smrgoptions 	WSDISPLAY_COMPAT_USL		# VT handling
161706f2543Smrg
162706f2543Smrgoptions 	WS_DEFAULT_FG=WSCOL_BLACK
163706f2543Smrgoptions 	WS_DEFAULT_BG=WSCOL_LIGHT_WHITE
164706f2543Smrgoptions 	WS_KERNEL_FG=WSCOL_GREEN
165706f2543Smrgoptions 	WS_KERNEL_BG=WSCOL_LIGHT_WHITE
166706f2543Smrgoptions         WSDISPLAY_SCROLLSUPPORT
167706f2543Smrg
168706f2543Smrg#options 	WSDISPLAY_COMPAT_RAWKBD		# can get raw scancodes
169706f2543Smrgoptions 	FONT_GALLANT12x22
170706f2543Smrgoptions 	FONT_QVSS8x15		# a smaller font for lower resolutions
171706f2543Smrgoptions         FONT_DROID_SANS_MONO12x22
172706f2543Smrg#options         FONT_DROID_SANS_MONO8x16
173706f2543Smrg
174706f2543Smrg# Optional Mac keyboard tweaks
175706f2543Smrg
176706f2543Smrg# Tweak the keyboard driver to treat the caps lock key on an ADB
177706f2543Smrg# keyboard as a control key; requires special remapping because of
178706f2543Smrg# ADB's strange emulation of a mechanically-locked key.
179706f2543Smrg#options 	CAPS_IS_CONTROL
180706f2543Smrg
181706f2543Smrg# On Mac laptops, several function keys double as "hot keys"
182706f2543Smrg# (brightness, volume, eject) when the Fn modifier is held down.  Mac
183706f2543Smrg# OS X likes to reprogram the keyboard controller to send hot key
184706f2543Smrg# events when Fn is not held down and send function key events when it
185706f2543Smrg# is.  This option transforms the non-keyboard "button" events back
186706f2543Smrg# into function key events.
187706f2543Smrg# enabled by default since trying to control brightness with those causes
188706f2543Smrg# trouble on pretty much all halfway recent Apple laptops
189706f2543Smrgoptions 	FORCE_FUNCTION_KEYS
190706f2543Smrg
191706f2543Smrg# Kernel root file system and dump configuration.
192706f2543Smrgconfig		netbsd	root on ? type ?
193706f2543Smrg
194706f2543Smrg#
195706f2543Smrg# Device configuration
196706f2543Smrg#
197706f2543Smrg
198706f2543Smrgmainbus* at root
199706f2543Smrg
200706f2543Smrgcpu*	at mainbus?
201706f2543Smrgbandit*	at mainbus?
202706f2543Smrg
203706f2543Smrgpci*	at bandit? bus ?
204706f2543Smrgpci*	at ppb? bus ?
205706f2543Smrg
206706f2543Smrgpchb*	at pci? dev ? function ?	# PCI-Host bridges
207706f2543Smrgppb*	at pci? dev ? function ?	# PCI-PCI bridges
208706f2543Smrg
209706f2543Smrg# PCI SCSI controllers
210706f2543Smrgahc*	at pci? dev ? function ?	# Adaptec 294x, aic78x0 SCSI
211706f2543Smrg
212706f2543Smrg# Display devices
213706f2543Smrg#
214706f2543Smrg# The 7200's onboard video is unsupported by OF so we need either a
215706f2543Smrg# graphics card that works as OF console or a serial console.
216706f2543Smrg# The only cards known to work ( so far ) are PCI Voodoo3s flashed with the
217706f2543Smrg# official Macintosh firmware from 3Dfx. The others should work but are
218706f2543Smrg# untested with OF 1.0.5
219706f2543Smrg
220706f2543Smrg# this will take over the console if output-device is set to 'platinum'.
221706f2543Smrg# It will provide a NetBSD console, but still won't work with OF
222706f2543Smrgplatinumfb0 	at mainbus?
223706f2543Smrg
224706f2543Smrg#gffb*		at pci?	function ?	# NVIDIA GeForce2 MX
225706f2543Smrg#machfb*		at pci? function ?	# ATI Mach 64, Rage, Rage Pro
226706f2543Smrg#r128fb*		at pci? function ?	# ATI Rage 128
227706f2543Smrgvoodoofb*	at pci? function ?	# 3Dfx Voodoo3 
228706f2543Smrg
229706f2543Smrg# ATI Radeon. Still has problems on some hardware
230706f2543Smrg#radeonfb*	at pci? function ?
231706f2543Smrg
232706f2543Smrg# generic PCI framebuffer, should work with everything supported by OF
233706f2543Smrggenfb*		at pci? function ?
234706f2543Smrg
235706f2543Smrg# make sure the console display is always wsdisplay0
236706f2543Smrgwsdisplay0	at wsemuldisplaydev? console 1
237706f2543Smrgwsdisplay*	at wsemuldisplaydev?
238706f2543Smrg
239706f2543Smrgobio*	at pci? dev ? function ?
240706f2543Smrg
241706f2543Smrgmc*	at obio?			# MACE ethernet
242706f2543Smrgesp*	at obio? flags 0x00ff		# 53c9x SCSI
243706f2543Smrg# the 7200 has no mesh but other PMacs with 601 cards may
244706f2543Smrgmesh*	at obio? flags 0xffff		# MESH SCSI
245706f2543Smrgnvram*	at obio?			# nvram
246706f2543Smrg
247706f2543Smrg# the new, improved ADB subsystem
248706f2543Smrg
249706f2543Smrgcuda*	at obio?			# CUDA, for Old World PowerMacs
250706f2543Smrgnadb*	at adb_bus?			# ADB bus enumerator, at cuda or pmu
251706f2543Smrgadbkbd* at nadb?			# ADB keyboard
252706f2543Smrgadbms*	at nadb?			# ADB mice and touchpads
253706f2543Smrg
254706f2543Smrgwskbd*		at wskbddev? console ?
255706f2543Smrgwsmouse*	at wsmousedev?
256706f2543Smrg
257706f2543Smrgiic0	at cuda0		# CUDA's IIC bus
258706f2543Smrg
259706f2543Smrgzsc*	at obio?
260706f2543Smrgzstty*	at zsc? channel ?
261706f2543Smrg
262706f2543Smrgawacs*	at obio?			# Apple audio device
263706f2543Smrg
264706f2543Smrg# Cryptographic Devices
265706f2543Smrg
266706f2543Smrg# PCI cryptographic devices
267706f2543Smrg# (disabled, requires opencrypto framework which requires generic softints
268706f2543Smrg#hifn*	at pci? dev ? function ?	# Hifn 7755/7811/795x
269706f2543Smrg#ubsec*	at pci? dev ? function ?	# Broadcom 5501/5601/580x/582x
270706f2543Smrg
271706f2543Smrg
272706f2543Smrgscsibus* at scsi?
273706f2543Smrg
274706f2543Smrgsd*	at scsibus? target ? lun ?	# SCSI disks
275706f2543Smrg#st*	at scsibus? target ? lun ?	# SCSI tape drives
276706f2543Smrgcd*	at scsibus? target ? lun ?	# SCSI CD-ROM drives
277706f2543Smrg#ch*	at scsibus? target ? lun ?	# SCSI autochangers
278706f2543Smrg#ss*	at scsibus? target ? lun ?	# SCSI scanners
279706f2543Smrg#uk*	at scsibus? target ? lun ?	# SCSI unknown
280706f2543Smrg
281706f2543Smrg# PCI USB controllers
282706f2543Smrgohci*	at pci? dev ? function ?	# USB Open Host Controller
283706f2543Smrg#ehci*	at pci? dev ? function ?	# USB Enhanced Host Controller
284706f2543Smrg
285706f2543Smrg#usb*	at ehci?					# USB bus support
286706f2543Smrgusb*	at ohci?					# USB bus support
287706f2543Smrguhub*	at usb?						# USB Hubs
288706f2543Smrguhub*	at uhub? port ?
289706f2543Smrg
290706f2543Smrguhidev*	at uhub? port ? configuration ? interface ?	# USB HID device
291706f2543Smrg
292706f2543Smrgums*	at uhidev? reportid ?				# USB Mice
293706f2543Smrgwsmouse* at ums? mux 0
294706f2543Smrgukbd*	at uhidev? reportid ?				# USB Keyboards
295706f2543Smrguhid*	at uhidev? reportid ?				# USB Generic HID
296706f2543Smrg
297706f2543Smrgumass*	at uhub? port ? configuration ? interface ?	# USB Mass Storage
298706f2543Smrgugen*	at uhub? port ? configuration ? interface ?	# USB Generic driver
299706f2543Smrg
300706f2543Smrg# Audio Devices
301706f2543Smrg
302706f2543Smrg# Audio support
303706f2543Smrgaudio*	at audiobus?
304706f2543Smrg
305706f2543Smrgspkr*	at audio?		# PC speaker (synthesized)
306706f2543Smrg
307706f2543Smrg#
308706f2543Smrg# accept filters
309706f2543Smrg#pseudo-device   accf_data		# "dataready" accept filter
310706f2543Smrg#pseudo-device   accf_http		# "httpready" accept filter
311706f2543Smrg
312706f2543Smrg#pseudo-device 	crypto			# /dev/crypto device
313706f2543Smrg					# (disabled, requires generic softints)
314706f2543Smrg#pseudo-device	swcrypto		# software crypto implementation
315706f2543Smrgpseudo-device	vnd			# disk-like interface to files
316706f2543Smrg#options 	VND_COMPRESSION		# compressed vnd(4)
317706f2543Smrg#pseudo-device	ccd			# concatenated/striped disk devices
318706f2543Smrg#pseudo-device	cgd			# cryptographic disk devices
319706f2543Smrg#pseudo-device	raid			# RAIDframe disk driver
320706f2543Smrg#options 	RAID_AUTOCONFIG		# auto-configuration of RAID components
321706f2543Smrg# Options to enable various other RAIDframe RAID types.
322706f2543Smrg# options 	RF_INCLUDE_EVENODD=1
323706f2543Smrg# options 	RF_INCLUDE_RAID5_RS=1
324706f2543Smrg# options 	RF_INCLUDE_PARITYLOGGING=1
325706f2543Smrg# options 	RF_INCLUDE_CHAINDECLUSTER=1
326706f2543Smrg# options 	RF_INCLUDE_INTERDECLUSTER=1
327706f2543Smrg# options 	RF_INCLUDE_PARITY_DECLUSTERING=1
328706f2543Smrg# options 	RF_INCLUDE_PARITY_DECLUSTERING_DS=1
329706f2543Smrgpseudo-device	fss			# file system snapshot device
330706f2543Smrg#pseudo-device	md			# memory disk device
331706f2543Smrgpseudo-device	loop			# network loopback
332706f2543Smrgpseudo-device	bpfilter		# packet filter
333706f2543Smrg#pseudo-device	npf			# NPF packet filter
334706f2543Smrg#pseudo-device	ppp			# Point-to-Point Protocol
335706f2543Smrg#pseudo-device	pppoe			# PPP over Ethernet (RFC 2516)
336706f2543Smrg#pseudo-device	sl			# Serial Line IP
337706f2543Smrg#pseudo-device	tun			# network tunneling over tty
338706f2543Smrg#pseudo-device	tap			# virtual Ethernet
339706f2543Smrg#pseudo-device	gre			# generic L3 over IP tunnel
340706f2543Smrg#pseudo-device	gif			# IPv[46] over IPv[46] tunnel (RFC1933)
341706f2543Smrg#pseudo-device	faith			# IPv[46] tcp relay translation i/f
342706f2543Smrg#pseudo-device	stf			# 6to4 IPv6 over IPv4 encapsulation
343706f2543Smrg#pseudo-device	vlan			# IEEE 802.1q encapsulation
344706f2543Smrg#pseudo-device	bridge			# simple inter-network bridging
345706f2543Smrg#pseudo-device	vether			# Virtual Ethernet for bridge
346706f2543Smrg#pseudo-device	agr			# IEEE 802.3ad link aggregation
347706f2543Smrgpseudo-device	pty			# pseudo-terminals
348706f2543Smrgpseudo-device	openfirm		# /dev/openfirm
349706f2543Smrgpseudo-device	wsmux			# mouse and keyboard multiplexer
350706f2543Smrg#pseudo-device	swwdog			# software watchdog driver - swwdog(4)
351706f2543Smrgpseudo-device	clockctl		# user control of clock subsystem
352706f2543Smrgpseudo-device	ksyms			# /dev/ksyms
353706f2543Smrg#pseudo-device	putter			# for puffs and pud
354706f2543Smrg
355706f2543Smrg# userland interface to drivers, including autoconf and properties retrieval
356706f2543Smrgpseudo-device   drvctl
357706f2543Smrg
358706f2543Smrg# Veriexec
359706f2543Smrg# include "dev/veriexec.config"
360706f2543Smrg
361706f2543Smrg#options PAX_MPROTECT=0			# PaX mprotect(2) restrictions
362706f2543Smrg
363706f2543Smrgrlphy*	at mii? phy ?			# Realtek 8139/8201L PHYs
364706f2543Smrgrtk*	at pci? dev ? function ?	# Realtek 8129/8139
365706f2543Smrg
366706f2543Smrg#rgephy* at mii? phy ?			# Realtek 8169S/8110S internal PHYs
367706f2543Smrg#ral*	at pci? dev ? function ?	# Ralink Technology RT25x0 802.11a/b/g
368706f2543Smrg