1#         $NetBSD: GENERIC32_IP2x,v 1.125 2024/01/29 18:27:15 christos Exp $
2#
3# GENERIC32_IP2x 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#
22# Currently this config file supports Indigo R4k, Indigo2 and Indy
23# (IP20, IP22 and IP24, respectively).
24#
25
26include   "arch/sgimips/conf/std.sgimips"
27
28makeoptions         TEXTADDR=0x88069000 # entry point
29
30options   INCLUDE_CONFIG_FILE # embed config file in kernel binary
31
32#ident              "GENERIC32-IP2x-$Revision: 1.125 $"
33
34maxusers  32
35
36# CPU related options
37options   MIPS3               # MIPS3 support
38options   INDY_R4600_CACHE    # Include routines to handle special
39                                                  # R4600 cache -- required for Indy.
40
41makeoptions         WANT_ECOFF="yes"    # Create an ECOFF kernel in addition
42                                                  # to an ELF kernel -- required for
43                                                  # netbooting Indigo (IP20) and some
44                                                  # Indigo2 (IP22) machines
45
46#options  BLINK               # blinkenlitzen
47
48# Standard system options
49#options  INSECURE  # disable kernel security levels
50
51#options  NTP                 # NTP phase/frequency locked loop
52options   KTRACE              # system call tracing via ktrace(1)
53
54options   SYSVMSG             # System V message queues
55options   SYSVSEM             # System V semaphores
56options   SYSVSHM             # System V shared memory
57
58options   USERCONF  # userconf(4) support
59#options  PIPE_SOCKETPAIR     # smaller, but slower pipe(2)
60options   SYSCTL_INCLUDE_DESCR          # Include sysctl descriptions in kernel
61
62# Alternate buffer queue strategies for better responsiveness under high
63# disk I/O load.
64#options  BUFQ_READPRIO
65options   BUFQ_PRIOCSCAN
66
67# Diagnostic/debugging support options
68#options  DIAGNOSTIC          # expensive kernel consistency checks
69#options  DEBUG               # expensive debugging checks/support
70options   DDB                 # in-kernel debugger
71options   DDB_HISTORY_SIZE=512          # enable history editing in DDB
72#options  KGDB                # remote debugger
73#options  KGDB_DEV=0x2301               # KGDB port - this is Serial(1)
74#options  KGDB_DEVRATE=19200  # KGDB Baud Rate
75#makeoptions        DEBUG="-g"          # compile full symbol table
76
77# Compatibility options
78include   "conf/compat_netbsd15.config"
79
80# File systems
81include "conf/filesystems.config"
82
83# File system options
84#options  FFS_EI              # FFS Endian Independent support
85#options  FFS_NO_SNAPSHOT     # No FFS snapshot support
86options   QUOTA               # legacy UFS quotas
87options   QUOTA2              # new, in-filesystem UFS quotas
88options   UFS_DIRHASH         # UFS Large Directory Hashing
89options   UFS_EXTATTR         # Extended attribute support for UFS1
90options   WAPBL               # File system journaling support
91options   NFSSERVER # Network File System server
92
93# Networking options
94#options  GATEWAY             # packet forwarding
95options   INET                # IP + ICMP + TCP + UDP
96options   INET6               # IPV6
97#options  IPSEC               # IP security
98#options  IPSEC_DEBUG         # debug for IP security
99#options  MROUTING  # IP multicast routing
100#options  PIM                 # Protocol Independent Multicast
101options   NETATALK  # AppleTalk networking protocols
102options   PPP_BSDCOMP         # BSD-Compress compression support for PPP
103options   PPP_DEFLATE         # Deflate compression support for PPP
104options   PPP_FILTER          # Active filter support for PPP (requires bpf)
105#options  TCP_DEBUG # Record last TCP_NDEBUG packets with SO_DEBUG
106
107#options  ALTQ                # Manipulate network interfaces' output queues
108#options  ALTQ_BLUE # Stochastic Fair Blue
109#options  ALTQ_CBQ  # Class-Based Queueing
110#options  ALTQ_CDNR # Diffserv Traffic Conditioner
111#options  ALTQ_FIFOQ          # First-In First-Out Queue
112#options  ALTQ_FLOWVALVE      # RED/flow-valve (red-penalty-box)
113#options  ALTQ_HFSC # Hierarchical Fair Service Curve
114#options  ALTQ_LOCALQ         # Local queueing discipline
115#options  ALTQ_PRIQ # Priority Queueing
116#options  ALTQ_RED  # Random Early Detection
117#options  ALTQ_RIO  # RED with IN/OUT
118#options  ALTQ_WFQ  # Weighted Fair Queueing
119
120# JIT compiler for bpfilter
121#options  SLJIT
122#options  BPFJIT
123
124# These options enable verbose messages for several subsystems.
125# Warning, these may compile large string tables into the kernel!
126options   MIIVERBOSE          # verbose PHY autoconfig messages
127options   SCSIVERBOSE         # human readable SCSI error messages
128
129options   NFS_BOOT_DHCP,NFS_BOOT_BOOTPARAM
130
131#options  MEMORY_DISK_HOOKS
132#options  MEMORY_DISK_IS_ROOT
133#options  MEMORY_DISK_SERVER=0
134#options  MINIROOTSIZE=8192
135
136#options  SCSI_DELAY=5
137
138#
139# wscons options
140#
141# builtin terminal emulations
142#options  WSEMUL_SUN                    # sun terminal emulation
143options   WSEMUL_VT100                  # VT100 / VT220 emulation
144options   WSDISPLAY_COMPAT_USL                    # wsconscfg VT handling
145# different kernel output - see dev/wscons/wsdisplayvar.h
146options   WS_KERNEL_FG=WSCOL_GREEN
147#options  WS_KERNEL_BG=WSCOL_BLACK
148# compatibility to other console drivers
149options   WSDISPLAY_COMPAT_RAWKBD                 # can get raw scancodes
150# see dev/pckbport/wskbdmap_mfii.c for implemented layouts
151#options  PCKBD_LAYOUT="(KB_DE | KB_NODEAD)"
152
153
154# Kernel root file system and dump configuration.
155config              netbsd    root on ? type ?
156
157# Main bus and CPU
158mainbus0  at root
159cpu0                at mainbus?
160
161sd*     at scsibus? target ? lun ?      # SCSI disks
162st*     at scsibus? target ? lun ?      # SCSI tapes
163cd*     at scsibus? target ? lun ?      # SCSI CD-ROMs
164ch*     at scsibus? target ? lun ?      # SCSI changer devices
165ss*     at scsibus? target ? lun ?      # SCSI scanners
166ses*    at scsibus? target ? lun ?      # SCSI SES/SAF-TE devices
167uk*     at scsibus? target ? lun ?      # unknown SCSI
168
169# Personal Iris / Indigo R3k
170pic0                at mainbus0 addr 0x1fa00000
171gio0                at pic0
172
173# Indy / Indigo^2
174imc0                at mainbus0 addr 0x1fa00000
175gio0                at imc0
176eisa0               at imc0
177
178int0                at mainbus0                   # Interrupt controller
179
180# Some clocks actually in HPC space, but not all
181dpclock0  at mainbus0 addr 0x1fb80e00   # IP12 / IP20
182dsclock0  at mainbus0 addr 0x1fbe0000   # IP22 / 24
183
184hpc0                at gio? addr 0x1fb80000
185hpc1                at gio? addr 0x1fb00000
186hpc2                at gio? addr 0x1f980000
187
188newport*  at gio?                       # Newport (NG1) graphics
189wsdisplay*          at newport? console ?
190
191grtwo*              at gio?                       # Express (GR2) graphics
192wsdisplay*          at grtwo? console ?
193
194light*              at gio?                       # Light/Starter/Entry (LG1/LG2) graphics
195wsdisplay*          at light? console ?
196
197# PCI Fast Ethernet cards glued to the GIO bus
198giopci*             at gio? slot?
199pci*                at giopci? bus?
200options   PCI_NETBSD_CONFIGURE
201
202tlp*                at pci? dev ? function ? # Phobos G100/130/160 Fast Ethernet
203lxtphy*             at mii? phy ?                  # Level One LXT-970 PHYs
204
205tl*                 at pci? dev ? function ? # Set Engineering GIO Fast Ethernet
206nsphy*              at mii? phy ?                  # NS83840 PHYs
207tlphy*              at mii? phy ?                  # ThunderLAN PHY (unused)
208
209# HPC devices
210sq*                 at hpc? offset ?    # On-board ethernet / E++ adapter
211wdsc*               at hpc? offset ?    # On-board SCSI / GIO32 SCSI adapter
212haltwo*         at hpc0 offset ?        # IP22 / 24
213button*             at hpc0 offset ?    # front panel buttons on Indy
214pckbc*              at hpc0 offset ?
215
216pckbd*    at pckbc?
217pms*                at pckbc?
218wskbd*              at pckbd? console ?
219wskbd*              at zskbd? console ?
220wsmouse*  at pms? mux 0
221wsmouse*  at zsms? mux 0
222
223# I/O Controller -- IP22/24
224ioc0                at mainbus0 addr 0x1fbd9800
225
226# IOC's parallel port
227pi1ppc0             at hpc0 offset ?
228options   PI1PPC_INDY_ACK_HACK          # Indy hardware bug workaround.
229ppbus*              at pi1ppc?
230lpt*                at ppbus?           # Parallel printer
231
232#
233# As always, the zs chip is wired funny, so channel 1 is actually the
234# first serial port and channel 0 is the second.
235#
236zsc0                at hpc0 offset ?
237zstty*              at zsc0 channel ?
238
239zsc1                at hpc0 offset ?    # IP20 keyboard/mouse
240zskbd0              at zsc1 channel 0
241zsms0               at zsc1 channel 1
242
243scsibus*  at scsi?            # HPC SCSI
244audio*    at audiobus?
245
246spkr*               at audio?           # PC speaker (synthesized)
247
248# Pseudo-Devices
249
250# disk/mass storage pseudo-devices
251pseudo-device       ccd                           # concatenated/striped disk devices
252#pseudo-device      cgd                           # cryptographic disk devices
253#pseudo-device      raid                          # RAIDframe disk driver
254#options  RAID_AUTOCONFIG               # auto-configuration of RAID components
255pseudo-device       fss                           # file system snapshot device
256pseudo-device       md                            # memory disk device (ramdisk)
257pseudo-device       vnd                           # disk-like interface to files
258#options  VND_COMPRESSION               # compressed vnd(4)
259
260# network pseudo-devices
261pseudo-device       bpfilter            # Berkeley packet filter
262pseudo-device       carp                          # Common Address Redundancy Protocol
263pseudo-device       npf                           # NPF packet filter
264pseudo-device       loop                          # network loopback
265pseudo-device       ppp                           # Point-to-Point Protocol
266pseudo-device       sl                            # Serial Line IP
267pseudo-device       tun                           # network tunneling over tty
268pseudo-device       tap                           # virtual Ethernet
269pseudo-device       gre                           # generic L3 over IP tunnel
270pseudo-device       gif                           # IPv[46] over IPv[46] tunnel (RFC1933)
271#pseudo-device      faith                         # IPv[46] tcp relay translation i/f
272pseudo-device       stf                           # 6to4 IPv6 over IPv4 encapsulation
273pseudo-device       vlan                          # IEEE 802.1q encapsulation
274pseudo-device       bridge                        # simple inter-network bridging
275pseudo-device       vether                        # Virtual Ethernet for bridge
276pseudo-device       agr                           # IEEE 802.3ad link aggregation
277pseudo-device   accf_data               # "dataready" accept filter
278pseudo-device   accf_http               # "httpready" accept filter
279
280# miscellaneous pseudo-devices
281pseudo-device       pty                           # pseudo-terminals
282#pseudo-device      sequencer           # MIDI sequencer
283pseudo-device       clockctl            # user control of clock subsystem
284pseudo-device       drvctl                        # user control of drive subsystem
285pseudo-device       ksyms                         # /dev/ksyms
286pseudo-device       wsmux                   # mouse & keyboard multiplexor
287pseudo-device       wsfont
288
289include "dev/veriexec.config"
290