1# $NetBSD: GENERIC_601,v 1.34 2025/02/16 18:04:57 jakllsch Exp $
2#
3# GENERIC machine description file
4#
5# This machine description file is used to generate the default NetBSD
6# kernel.  The generic kernel does not include all options, subsystems
7# and device drivers, but should be useful for most applications.
8#
9# The machine description file can be customised for your specific
10# machine to reduce the kernel size and improve its performance.
11#
12# For further information on compiling NetBSD kernels, see the config(8)
13# man page.
14#
15# For further information on hardware support for this architecture, see
16# the intro(4) man page.  For further information about kernel options
17# for this architecture, see the options(4) man page.  For an explanation
18# of each device driver in this file see the section 4 man page for the
19# device.
20#
21# For PPC 601, need "CPUFLAGS+= -mcpu=601"
22#
23# Openfirmware 1.0.5 require a kernel < 4M for netbooting
24#
25# this config more or less matches a Power Macintosh 7200 with a USB card
26
27include   "arch/macppc/conf/std.macppc.601"
28
29options   INCLUDE_CONFIG_FILE # embed config file in kernel binary
30
31ident               "GENERIC-$Revision: 1.34 $"
32
33maxusers  32
34
35# Standard system options
36options   INSECURE  # disable kernel security levels
37
38options   RTC_OFFSET=0        # hardware clock is this many mins. west of GMT
39options   NTP                 # NTP phase/frequency locked loop
40options   KTRACE              # system call tracing via ktrace(1)
41
42options   SYSVMSG             # System V message queues
43options   SYSVSEM             # System V semaphores
44options   SYSVSHM             # System V shared memory
45
46options   MODULAR             # new style module(7) framework
47options   MODULAR_DEFAULT_AUTOLOAD
48
49#options  USERCONF  # userconf(4) support
50#options  PIPE_SOCKETPAIR     # smaller, but slower pipe(2)
51options   SYSCTL_INCLUDE_DESCR          # Include sysctl descriptions in kernel
52
53# Alternate buffer queue strategies for better responsiveness under high
54# disk I/O load.
55#options  BUFQ_READPRIO
56options   BUFQ_PRIOCSCAN
57
58# Diagnostic/debugging support options
59#options  DIAGNOSTIC          # cheap kernel consistency checks
60#options  DEBUG               # expensive debugging checks/support
61options   ZS_CONSOLE_ABORT# allow break to get into DDB on serial
62options   DDB                 # in-kernel debugger
63#options  DDB_ONPANIC=0       # don't go into ddb on panic.
64options   DDB_HISTORY_SIZE=512          # enable history editing in DDB
65#options  TRAP_PANICWAIT
66#options  DDB_COMMANDONENTER="bt"
67
68#makeoptions        DEBUG="-g"          # compile full symbol table
69
70# Compatibility options
71include   "conf/compat_netbsd50.config"
72
73#options  COMPAT_386BSD_MBRPART # recognize old partition ID
74#options  COMPAT_LINUX        # Linux binary compatibility
75#options  COMPAT_OSSAUDIO     # Linux binary compatibility
76
77# Wedge support
78options         DKWEDGE_AUTODISCOVER    # Automatically add dk(4) instances
79options         DKWEDGE_METHOD_GPT      # Supports GPT partitions as wedges
80#options  DKWEDGE_METHOD_BSDLABEL # Support disklabel entries as wedges
81#options  DKWEDGE_METHOD_MBR      # Support MBR partitions as wedges
82options             DKWEDGE_METHOD_APPLE    # Support Apple partitions as wedges
83#options  DKWEDGE_METHOD_RDB  # Support RDB partitions as wedges
84#options  DKWEDGE_METHOD_TOS  # Support Atari "TOS" partitions as wedges
85
86# File systems
87file-system         FFS                 # UFS
88#file-system        EXT2FS              # second extended file system (linux)
89#file-system        LFS                 # log-structured file system
90#file-system        MFS                 # memory file system
91file-system         NFS                 # Network File System client
92file-system         CD9660              # ISO 9660 + Rock Ridge file system
93#file-system        MSDOSFS             # MS-DOS file system
94file-system         FDESC               # /dev/fd
95file-system         KERNFS              # /kern
96#file-system        NULLFS              # loopback file system
97#file-system        OVERLAY             # overlay file system
98#file-system        PUFFS               # Userspace file systems (e.g. ntfs-3g & sshfs)
99file-system         PROCFS              # /proc
100#file-system        UMAPFS              # NULLFS + uid and gid remapping
101#file-system        UNION               # union file system
102file-system         PTYFS               # /dev/pts/N support
103file-system         TMPFS               # Efficient memory file-system
104#file-system        UDF                 # experimental - OSTA UDF CD/DVD file-system
105#file-system        HFS                 # experimental - Apple HFS+ (read-only)
106
107# File system options
108#options  APPLE_UFS # Apple UFS support in FFS
109#options  FFS_EI              # FFS Endian Independent support
110#options  FFS_NO_SNAPSHOT     # No FFS snapshot support
111#options  QUOTA               # legacy UFS quotas
112#options  QUOTA2              # new, in-filesystem UFS quotas
113#options  UFS_DIRHASH         # UFS Large Directory Hashing
114#options  UFS_EXTATTR         # Extended attribute support for UFS1
115options   WAPBL               # File system journaling support
116#options  NFSSERVER # Network File System server
117
118options   NFS_BOOT_DHCP       # Support DHCP NFS root
119
120# Networking options
121#options  GATEWAY             # packet forwarding
122options   INET                # IP + ICMP + TCP + UDP
123options   INET6               # IPV6
124#options  IPSEC               # IP security
125#options  IPSEC_DEBUG         # debug for IP security
126#options  MROUTING  # IP multicast routing
127#options  PIM                 # Protocol Independent Multicast
128#options  NETATALK  # AppleTalk networking protocols
129#options  PPP_BSDCOMP         # BSD-Compress compression support for PPP
130#options  PPP_DEFLATE         # Deflate compression support for PPP
131#options  PPP_FILTER          # Active filter support for PPP (requires bpf)
132#options  TCP_DEBUG # Record last TCP_NDEBUG packets with SO_DEBUG
133
134#options  ALTQ                # Manipulate network interfaces' output queues
135#options  ALTQ_BLUE # Stochastic Fair Blue
136#options  ALTQ_CBQ  # Class-Based Queueing
137#options  ALTQ_CDNR # Diffserv Traffic Conditioner
138#options  ALTQ_FIFOQ          # First-In First-Out Queue
139#options  ALTQ_FLOWVALVE      # RED/flow-valve (red-penalty-box)
140#options  ALTQ_HFSC # Hierarchical Fair Service Curve
141#options  ALTQ_LOCALQ         # Local queueing discipline
142#options  ALTQ_PRIQ # Priority Queueing
143#options  ALTQ_RED  # Random Early Detection
144#options  ALTQ_RIO  # RED with IN/OUT
145#options  ALTQ_WFQ  # Weighted Fair Queueing
146
147# These options enable verbose messages for several subsystems.
148# Warning, these may compile large string tables into the kernel!
149options   PCIVERBOSE          # verbose PCI device autoconfig messages
150options   MIIVERBOSE          # verbose PHY autoconfig messages
151#options  PCI_CONFIG_DUMP     # verbosely dump PCI config space
152options   SCSIVERBOSE         # human readable SCSI error messages
153options   USBVERBOSE          # verbose USB device autoconfig messages
154
155# wscons options
156#options  WSEMUL_SUN                              # sun terminal emulation
157options   WSEMUL_VT100                            # VT100 / VT220 emulation
158options   WSDISPLAY_COMPAT_PCVT                   # emulate some ioctls
159options   WSDISPLAY_COMPAT_SYSCONS      # emulate some ioctls
160options   WSDISPLAY_COMPAT_USL                    # VT handling
161
162options   WS_DEFAULT_FG=WSCOL_BLACK
163options   WS_DEFAULT_BG=WSCOL_LIGHT_WHITE
164options   WS_KERNEL_FG=WSCOL_GREEN
165options   WS_KERNEL_BG=WSCOL_LIGHT_WHITE
166options   WSDISPLAY_SCROLLSUPPORT
167
168#options  WSDISPLAY_COMPAT_RAWKBD                 # can get raw scancodes
169options   WSDISPLAY_CUSTOM_OUTPUT                 # color customization from wsconsctl(8)
170options   FONT_GALLANT12x22
171options   FONT_QVSS8x15                 # a smaller font for lower resolutions
172options         FONT_DROID_SANS_MONO12x22
173#options         FONT_DROID_SANS_MONO8x16
174
175# Optional Mac keyboard tweaks
176
177# Tweak the keyboard driver to treat the caps lock key on an ADB
178# keyboard as a control key; requires special remapping because of
179# ADB's strange emulation of a mechanically-locked key.
180#options  CAPS_IS_CONTROL
181
182# On Mac laptops, several function keys double as "hot keys"
183# (brightness, volume, eject) when the Fn modifier is held down.  Mac
184# OS X likes to reprogram the keyboard controller to send hot key
185# events when Fn is not held down and send function key events when it
186# is.  This option transforms the non-keyboard "button" events back
187# into function key events.
188# enabled by default since trying to control brightness with those causes
189# trouble on pretty much all halfway recent Apple laptops
190options   FORCE_FUNCTION_KEYS
191
192# Kernel root file system and dump configuration.
193config              netbsd    root on ? type ?
194
195#
196# Device configuration
197#
198
199mainbus* at root
200
201cpu*      at mainbus?
202bandit*   at mainbus?
203
204pci*      at bandit? bus ?
205pci*      at ppb? bus ?
206
207pchb*     at pci? dev ? function ?      # PCI-Host bridges
208ppb*      at pci? dev ? function ?      # PCI-PCI bridges
209
210# PCI SCSI controllers
211ahc*      at pci? dev ? function ?      # Adaptec 294x, aic78x0 SCSI
212
213# Display devices
214#
215# The 7200's onboard video is unsupported by OF so we need either a
216# graphics card that works as OF console or a serial console.
217# The only cards known to work ( so far ) are PCI Voodoo3s flashed with the
218# official Macintosh firmware from 3Dfx. The others should work but are
219# untested with OF 1.0.5
220
221# this will take over the console if output-device is set to 'platinum'.
222# It will provide a NetBSD console, but still won't work with OF
223platinumfb0         at mainbus?
224
225#gffb*              at pci?   function ?          # NVIDIA GeForce2 MX
226#machfb*            at pci? function ?  # ATI Mach 64, Rage, Rage Pro
227#r128fb*            at pci? function ?  # ATI Rage 128
228voodoofb* at pci? function ?  # 3Dfx Voodoo3
229
230# ATI Radeon. Still has problems on some hardware
231#radeonfb*          at pci? function ?
232
233# generic PCI framebuffer, should work with everything supported by OF
234genfb*              at pci? function ?
235
236# make sure the console display is always wsdisplay0
237wsdisplay0          at wsemuldisplaydev? console 1
238wsdisplay*          at wsemuldisplaydev?
239
240obio*     at pci? dev ? function ?
241
242mc*       at obio?                      # MACE ethernet
243esp*      at obio? flags 0x00ff                   # 53c9x SCSI
244# the 7200 has no mesh but other PMacs with 601 cards may
245mesh*     at obio? flags 0xffff                   # MESH SCSI
246nvram*    at obio?                      # nvram
247
248# the new, improved ADB subsystem
249
250cuda*     at obio?                      # CUDA, for Old World PowerMacs
251nadb*     at adb_bus?                             # ADB bus enumerator, at cuda or pmu
252adbkbd* at nadb?                        # ADB keyboard
253adbms*    at nadb?                      # ADB mice and touchpads
254
255wskbd*              at wskbddev? console ?
256wsmouse*  at wsmousedev?
257
258iic0      at cuda0            # CUDA's IIC bus
259
260zsc*      at obio?
261zstty*    at zsc? channel ?
262
263awacs*    at obio?                      # Apple audio device
264
265# Cryptographic Devices
266
267# PCI cryptographic devices
268# (disabled, requires opencrypto framework which requires generic softints
269#hifn*    at pci? dev ? function ?      # Hifn 7755/7811/795x
270#ubsec*   at pci? dev ? function ?      # Broadcom 5501/5601/580x/582x
271
272
273scsibus* at scsi?
274
275sd*       at scsibus? target ? lun ?    # SCSI disks
276#st*      at scsibus? target ? lun ?    # SCSI tape drives
277cd*       at scsibus? target ? lun ?    # SCSI CD-ROM drives
278#ch*      at scsibus? target ? lun ?    # SCSI autochangers
279#ss*      at scsibus? target ? lun ?    # SCSI scanners
280#uk*      at scsibus? target ? lun ?    # SCSI unknown
281
282# PCI USB controllers
283ohci*     at pci? dev ? function ?      # USB Open Host Controller
284#ehci*    at pci? dev ? function ?      # USB Enhanced Host Controller
285
286#usb*     at ehci?                                          # USB bus support
287usb*      at ohci?                                          # USB bus support
288uhub*     at usb?                                                     # USB Hubs
289uhub*     at uhub? port ?
290
291uhidev*   at uhub? port ? configuration ? interface ?       # USB HID device
292
293ums*      at uhidev? reportid ?                                       # USB Mice
294wsmouse* at ums? mux 0
295ukbd*     at uhidev? reportid ?                                       # USB Keyboards
296uhid*     at uhidev? reportid ?                                       # USB Generic HID
297
298umass*    at uhub? port ? configuration ? interface ?       # USB Mass Storage
299ugen*     at uhub? port ? configuration ? interface ?       # USB Generic driver
300
301# Audio Devices
302
303# Audio support
304audio*    at audiobus?
305
306spkr*     at audio?           # PC speaker (synthesized)
307
308#
309# accept filters
310#pseudo-device   accf_data              # "dataready" accept filter
311#pseudo-device   accf_http              # "httpready" accept filter
312
313#pseudo-device      crypto                        # /dev/crypto device
314                                                  # (disabled, requires generic softints)
315#pseudo-device      swcrypto            # software crypto implementation
316pseudo-device       vnd                           # disk-like interface to files
317#options  VND_COMPRESSION               # compressed vnd(4)
318#pseudo-device      ccd                           # concatenated/striped disk devices
319#pseudo-device      cgd                           # cryptographic disk devices
320#pseudo-device      raid                          # RAIDframe disk driver
321#options  RAID_AUTOCONFIG               # auto-configuration of RAID components
322# Options to enable various other RAIDframe RAID types.
323# options           RF_INCLUDE_EVENODD=1
324# options           RF_INCLUDE_RAID5_RS=1
325# options           RF_INCLUDE_PARITYLOGGING=1
326# options           RF_INCLUDE_CHAINDECLUSTER=1
327# options           RF_INCLUDE_INTERDECLUSTER=1
328# options           RF_INCLUDE_PARITY_DECLUSTERING=1
329# options           RF_INCLUDE_PARITY_DECLUSTERING_DS=1
330pseudo-device       fss                           # file system snapshot device
331#pseudo-device      md                            # memory disk device
332pseudo-device       loop                          # network loopback
333pseudo-device       bpfilter            # packet filter
334#pseudo-device      npf                           # NPF packet filter
335#pseudo-device      ppp                           # Point-to-Point Protocol
336#pseudo-device      pppoe                         # PPP over Ethernet (RFC 2516)
337#pseudo-device      sl                            # Serial Line IP
338#pseudo-device      tun                           # network tunneling over tty
339#pseudo-device      tap                           # virtual Ethernet
340#pseudo-device      gre                           # generic L3 over IP tunnel
341#pseudo-device      gif                           # IPv[46] over IPv[46] tunnel (RFC1933)
342#pseudo-device      faith                         # IPv[46] tcp relay translation i/f
343#pseudo-device      stf                           # 6to4 IPv6 over IPv4 encapsulation
344#pseudo-device      vlan                          # IEEE 802.1q encapsulation
345#pseudo-device      bridge                        # simple inter-network bridging
346#pseudo-device      vether                        # Virtual Ethernet for bridge
347#pseudo-device      agr                           # IEEE 802.3ad link aggregation
348pseudo-device       pty                           # pseudo-terminals
349pseudo-device       openfirm            # /dev/openfirm
350pseudo-device       wsmux                         # mouse and keyboard multiplexer
351#pseudo-device      swwdog                        # software watchdog driver - swwdog(4)
352pseudo-device       clockctl            # user control of clock subsystem
353pseudo-device       ksyms                         # /dev/ksyms
354#pseudo-device      putter                        # for puffs and pud
355
356# userland interface to drivers, including autoconf and properties retrieval
357pseudo-device   drvctl
358
359# Veriexec
360# include "dev/veriexec.config"
361
362#options PAX_MPROTECT=0                           # PaX mprotect(2) restrictions
363
364rlphy*    at mii? phy ?                           # Realtek 8139/8201L PHYs
365rtk*      at pci? dev ? function ?      # Realtek 8129/8139
366
367#rgephy* at mii? phy ?                            # Realtek 8169S/8110S internal PHYs
368#ral*     at pci? dev ? function ?      # Ralink Technology RT25x0 802.11a/b/g
369