1# $NetBSD: CUBOX,v 1.23 2024/01/29 18:27:11 christos Exp $
2#
3#         CUBOX -- SolidRun Ltd. Cubox kernel
4#
5
6include   "arch/evbarm/conf/std.marvell"
7
8#options  INCLUDE_CONFIG_FILE # embed config file in kernel binary
9
10# estimated number of users
11
12maxusers  32
13
14# Board Type
15makeoptions         BOARDTYPE="cubox"
16options   EVBARM_BOARDTYPE=cubox
17
18# CPU options
19options   CPU_PJ4B  # XXXX: CPU is PJ4
20options   ARM_HAS_VBAR
21options   FPU_VFP
22makeoptions         CPUFLAGS="-march=armv7-a -mfpu=vfpv3"
23
24# Marvell SoC options
25options   DOVE
26
27# Standard system options
28
29options   INSECURE  # disable kernel security levels - X needs this
30
31options   RTC_OFFSET=0        # hardware clock is this many mins. west of GMT
32#options  NTP                 # NTP phase/frequency locked loop
33options   KTRACE              # system call tracing via ktrace(1)
34
35# Note: SysV IPC parameters can be changed dynamically; see sysctl(8).
36options   SYSVMSG             # System V-like message queues
37options   SYSVSEM             # System V-like semaphores
38options   SYSVSHM             # System V-like memory sharing
39
40#options  USERCONF  # userconf(4) support
41#options  PIPE_SOCKETPAIR     # smaller, but slower pipe(2)
42options   SYSCTL_INCLUDE_DESCR          # Include sysctl descriptions in kernel
43
44# Alternate buffer queue strategies for better responsiveness under high
45# disk I/O load.
46#options  BUFQ_READPRIO
47options   BUFQ_PRIOCSCAN
48
49# Diagnostic/debugging support options
50#options  VERBOSE_INIT_ARM # verbose bootstraping messages
51options   DIAGNOSTIC          # internally consistency checks
52
53#options  DEBUG
54#options  UVMHIST             # kernhist for uvm/pmap subsystems
55options   LOCKDEBUG # expensive locking checks/support
56options   IRQSTATS  # manage IRQ statistics
57#options  NO_POWERSAVE        # uncomment this to run under ICE
58
59#makeoptions        COPTS="-O2"
60options   DDB                           # in-kernel debugger
61#options  DDB_KEYCODE=0x1d    # ^]
62#options  DDB_COMMANDONENTER="bt"       # execute command when ddb is entered
63options   DDB_ONPANIC=1                 # see also sysctl(7): `ddb.onpanic'
64options   DDB_HISTORY_SIZE=100          # Enable history editing in DDB
65options   DDB_VERBOSE_HELP
66#options  KGDB
67#options  KGDB_DEVRATE=115200
68makeoptions         DEBUG="-g"                    # compile full symbol table
69makeoptions         COPY_SYMTAB=1
70#options  SYSCALL_STATS                           # per syscall counts
71#options  SYSCALL_TIMES                           # per syscall times
72#options  SYSCALL_TIMES_HASCOUNTER      # use 'broken' rdtsc (soekris)
73
74
75# Compatibility options
76
77include   "conf/compat_netbsd60.config"
78options   COMPAT_NETBSD32     # allow running arm (e.g. non-earm) binaries
79
80# Wedge support
81options   DKWEDGE_AUTODISCOVER          # Automatically add dk(4) instances
82options   DKWEDGE_METHOD_GPT  # Supports GPT partitions as wedges
83
84# File systems
85file-system         FFS                 # UFS
86file-system         MFS                 # memory file system
87file-system         NFS                 # Network File System client
88file-system         TMPFS               # Efficient memory file-system
89file-system         EXT2FS              # second extended file system (linux)
90file-system         LFS                 # log-structured file system
91file-system         NTFS                # Windows/NT file system (experimental)
92file-system         CD9660              # ISO 9660 + Rock Ridge file system
93file-system         MSDOSFS             # MS-DOS file system
94file-system         FDESC               # /dev/fd
95file-system         KERNFS              # /kern
96file-system         NULLFS              # loopback file system
97file-system         OVERLAY             # overlay file system
98file-system         PROCFS              # /proc
99file-system         PUFFS               # Userspace file systems (e.g. ntfs-3g & sshfs)
100file-system         UMAPFS              # NULLFS + uid and gid remapping
101file-system         UNION               # union file system
102file-system         CODA                # Coda File System; also needs vcoda (below)
103file-system         PTYFS               # /dev/ptm support
104#file-system        UDF                 # experimental - OSTA UDF CD/DVD file-system
105#file-system        HFS                 # experimental - Apple HFS+ (read-only)
106#file-system        NILFS               # experimental - NTT's NiLFS(2)
107
108# File system options
109options   FFS_EI              # FFS Endian Independent support
110#options  FFS_NO_SNAPSHOT     # No FFS snapshot support
111options   QUOTA               # legacy UFS quotas
112options   QUOTA2              # new, in-filesystem UFS quotas
113options   UFS_DIRHASH         # UFS Large Directory Hashing
114options   UFS_EXTATTR         # Extended attribute support for UFS1
115options   WAPBL               # File system journaling support
116options   LFS_DIRHASH         # LFS version of UFS_DIRHASH - experimental
117#options  DISKLABEL_EI        # disklabel Endian Independent support
118options   NFSSERVER # Network File System server
119
120# Networking options
121#options  GATEWAY             # packet forwarding
122options   INET                # IP + ICMP + TCP + UDP
123options   INET6               # IPv6
124options   IPSEC               # IP security
125#options  IPSEC_DEBUG         # debug for IP security
126#options  MPLS                # MultiProtocol Label Switching (needs ifmpls)
127#options  MROUTING  # IP multicast routing
128#options  PIM                 # Protocol Independent Multicast
129options   NETATALK  # AppleTalk networking protocols
130options   PPP_BSDCOMP         # BSD-Compress compression support for PPP
131options   PPP_DEFLATE         # Deflate compression support for PPP
132options   PPP_FILTER          # Active filter support for PPP (requires bpf)
133#options  TCP_DEBUG # Record last TCP_NDEBUG packets with SO_DEBUG
134
135#options  ALTQ                # Manipulate network interfaces' output queues
136#options  ALTQ_BLUE # Stochastic Fair Blue
137#options  ALTQ_CBQ  # Class-Based Queueing
138#options  ALTQ_CDNR # Diffserv Traffic Conditioner
139#options  ALTQ_FIFOQ          # First-In First-Out Queue
140#options  ALTQ_FLOWVALVE      # RED/flow-valve (red-penalty-box)
141#options  ALTQ_HFSC # Hierarchical Fair Service Curve
142#options  ALTQ_LOCALQ         # Local queueing discipline
143#options  ALTQ_PRIQ # Priority Queueing
144#options  ALTQ_RED  # Random Early Detection
145#options  ALTQ_RIO  # RED with IN/OUT
146#options  ALTQ_WFQ  # Weighted Fair Queueing
147
148# Device options
149
150# These options enable verbose messages for several subsystems.
151# Warning, these may compile large string tables into the kernel!
152options   MIIVERBOSE          # verbose PHY autoconfig messages
153#options  PCIVERBOSE          # verbose PCI device autoconfig messages
154#options  PCI_CONFIG_DUMP     # verbosely dump PCI config space
155#options  PCMCIAVERBOSE       # verbose PCMCIA configuration messages
156#options  SCSIVERBOSE         # Verbose SCSI errors
157#options  USBVERBOSE          # verbose USB device autoconfig messages
158
159# Kernel root file system and dump configuration.
160config              netbsd    root on ? type ?
161
162options             NFS_BOOT_BOOTP
163options             NFS_BOOT_DHCP
164#options            NFS_BOOT_BOOTPARAM
165#options            NFS_BOOT_BOOTSTATIC
166#options            NFS_BOOTSTATIC_MYIP="\"192.168.0.2\""
167#options            NFS_BOOTSTATIC_GWIP="\"192.168.0.1\""
168#options            NFS_BOOTSTATIC_MASK="\"255.255.255.0\""
169#options            NFS_BOOTSTATIC_SERVADDR="\"192.168.0.3\""
170#options            NFS_BOOTSTATIC_SERVER="\"192.168.0.3:/nfs/cubox\""
171
172
173#
174# Device configuration
175#
176
177mainbus0  at root
178
179cpu*                at mainbus?
180
181# Marvell 88AP510 Dove System-on-chip
182mvsoc0  at mainbus?
183#options  MVSOC_CONSOLE_EARLY
184
185# On-chip Power Management Unit
186mvsocpmu* at mvsoc? offset ? irq ?
187
188# On-chip Gigabit Ethernet Controller
189mvgbec* at mvsoc? offset ?
190mvgbe*    at mvgbec? port ? irq ?
191
192# MII/PHY support
193makphy* at mii? phy ?
194
195# On-chip Cryptographic Engines and Security Accelerator (CESA)
196mvcesa* at mvsoc? offset ? irq ?
197
198# On-chip XOR DMA Engine
199gtidmac* at mvsoc? offset ? irq ?
200
201# On-chip PCI Express Interface
202mvpex*    at mvsoc? offset ? irq ?
203pci*      at mvpex?
204
205# PCI bus support
206options   PCI_NETBSD_CONFIGURE
207#options  PCI_CONFIG_DUMP               # verbosely dump PCI config space
208
209pchb*     at pci? dev ? function ?      # PCI-Host bridges
210
211# On-chip Serial-ATA (SATA) II Interface
212mvsata* at mvsoc? offset ? irq ?
213
214# ATA (IDE) bus support
215atabus* at ata?
216#options  ATADEBUG
217
218# IDE drives
219wd*       at atabus? drive ? flags 0x0000
220
221# On-chip USB 2.0 Interface
222ehci*     at mvsoc? offset ? irq ?
223
224# On-chip Secure Digital Input/Output Host Controller
225sdhc*     at mvsoc? offset ? irq ?
226sdmmc*    at sdhc?
227
228ld*       at sdmmc?
229
230# On-chip Serial Peripheral Interface (SPI)
231mvspi*    at mvsoc? offset ? irq ?
232spi*      at mvspi?
233
234m25p0     at spi? slave 0
235spiflash0 at spiflashbus?
236
237# On-chip Two-Wire Serial Interface (TWSI)
238gttwsi* at mvsoc? offset ? irq ?
239iic*      at gttwsi?
240
241#TDA998x at iic? addr 0x34 # HDMI transmitters
242#Si5351A at iic? addr 0x60 # Programmable Any-Frequency CMOS Clock Generator
243#lcdc at iic? addr 0x70
244
245# On-chip UART Interface
246com*      at mvsoc? offset ? irq ?
247
248# On-chip Real Time Clock (RTC)
249mvsocrtc* at mvsoc? offset ? irq ?
250
251# On-chip Timers
252mvsoctmr* at mvsoc? offset ? irq ?
253
254
255# USB bus support
256usb*      at ehci?
257
258# USB Hubs
259uhub*     at usb?
260uhub*     at uhub? port ?
261
262# USB HID device
263uhidev* at uhub? port ? configuration ? interface ?
264
265# USB Mice
266ums*      at uhidev? reportid ?
267wsmouse* at ums? mux 0
268
269# USB Keyboards
270ukbd*     at uhidev? reportid ?
271wskbd*    at ukbd? console ? mux 1
272
273# USB Mass Storage
274umass*    at uhub? port ? configuration ? interface ?
275scsibus* at scsi?
276sd*       at scsibus? target ? lun ?    # SCSI disk drives
277cd*       at scsibus? target ? lun ?    # SCSI CD-ROM drives
278
279# Serial adapters
280uftdi*    at uhub? port ?               # FTDI FT8U100AX serial adapter
281ucom*     at uftdi? portno ?
282
283uplcom* at uhub? port ?       # I/O DATA USB-RSAQ2 serial adapter
284ucom*     at uplcom? portno ?
285
286# USB Generic driver
287ugen*     at uhub? port ?
288
289
290# Pseudo-Devices
291
292pseudo-device       crypto                        # /dev/crypto device
293pseudo-device       swcrypto            # software crypto implementation
294
295# disk/mass storage pseudo-devices
296pseudo-device       bio                           # RAID control device driver
297pseudo-device       ccd                           # concatenated/striped disk devices
298pseudo-device       cgd                           # cryptographic disk devices
299pseudo-device       raid                          # RAIDframe disk driver
300#options  RAID_AUTOCONFIG               # auto-configuration of RAID components
301#Options to enable various other RAIDframe RAID types.
302#options  RF_INCLUDE_EVENODD=1
303#options  RF_INCLUDE_RAID5_RS=1
304#options  RF_INCLUDE_PARITYLOGGING=1
305#options  RF_INCLUDE_CHAINDECLUSTER=1
306#options  RF_INCLUDE_INTERDECLUSTER=1
307#options  RF_INCLUDE_PARITY_DECLUSTERING=1
308#options  RF_INCLUDE_PARITY_DECLUSTERING_DS=1
309pseudo-device       fss                           # file system snapshot device
310pseudo-device       putter                        # for puffs and pud
311
312pseudo-device       vnd                           # disk-like interface to files
313options   VND_COMPRESSION               # compressed vnd(4)
314
315
316# network pseudo-devices
317pseudo-device       bpfilter            # Berkeley packet filter
318#pseudo-device      carp                          # Common Address Redundancy Protocol
319#pseudo-device      npf                           # NPF packet filter
320pseudo-device       loop                          # network loopback
321#pseudo-device      ifmpls                        # MPLS pseudo-interface
322pseudo-device       ppp                           # Point-to-Point Protocol
323pseudo-device       pppoe                         # PPP over Ethernet (RFC 2516)
324pseudo-device       sl                            # Serial Line IP
325pseudo-device       irframetty                    # IrDA frame line discipline
326pseudo-device       tun                           # network tunneling over tty
327pseudo-device       tap                           # virtual Ethernet
328pseudo-device       gre                           # generic L3 over IP tunnel
329pseudo-device       gif                           # IPv[46] over IPv[46] tunnel (RFC1933)
330#pseudo-device      faith                         # IPv[46] tcp relay translation i/f
331pseudo-device       stf                           # 6to4 IPv6 over IPv4 encapsulation
332pseudo-device       vlan                          # IEEE 802.1q encapsulation
333pseudo-device       bridge                        # simple inter-network bridging
334pseudo-device       vether                        # Virtual Ethernet for bridge
335pseudo-device       agr                           # IEEE 802.3ad link aggregation
336#pseudo-device      npf                           # NPF packet filter
337
338#
339# accept filters
340pseudo-device       accf_data           # "dataready" accept filter
341pseudo-device       accf_http           # "httpready" accept filter
342
343# miscellaneous pseudo-devices
344pseudo-device       pty                           # pseudo-terminals
345#pseudo-device      sequencer           # MIDI sequencer
346#options  RND_COM                       # use "com" randomness as well (BROKEN)
347pseudo-device       clockctl            # user control of clock subsystem
348pseudo-device       ksyms                         # /dev/ksyms
349
350# a pseudo device needed for Coda       # also needs CODA (above)
351pseudo-device       vcoda                         # coda minicache <-> venus comm.
352
353# wscons pseudo-devices
354pseudo-device       wsmux                         # mouse & keyboard multiplexor
355pseudo-device       wsfont
356
357# pseudo audio device driver
358#pseudo-device      pad
359
360# userland interface to drivers, including autoconf and properties retrieval
361pseudo-device       drvctl
362
363# Veriexec
364include "dev/veriexec.config"
365
366options   PAX_MPROTECT=0                # PaX mprotect(2) restrictions
367options   PAX_ASLR=0                    # PaX Address Space Layout Randomization
368