Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
# $NetBSD: GENERIC,v 1.239 2023/02/09 14:09:49 abs Exp $
#
# GENERIC machine description file
#
# This machine description file is used to generate the default NetBSD
# kernel.  The generic kernel does not include all options, subsystems
# and device drivers, but should be useful for most applications.
#
# The machine description file can be customised for your specific
# machine to reduce the kernel size and improve its performance.
#
# For further information on compiling NetBSD kernels, see the config(8)
# man page.
#
# For further information on hardware support for this architecture, see
# the intro(4) man page.  For further information about kernel options
# for this architecture, see the options(4) man page.  For an explanation
# of each device driver in this file see the section 4 man page for the
# device.

include 	"arch/sparc64/conf/std.sparc64"

options 	INCLUDE_CONFIG_FILE	# embed config file in kernel binary

#ident		"GENERIC-$Revision: 1.239 $"

maxusers	64

## System kernel configuration.  See options(4) for more detail.


# Options for variants of the Sun SPARC architecure.
options 	SUN4U		# sun4u - UltraSPARC
options 	SUN4V		# sun4v - UltraSPARC T1/T2+/T3/T4/T5
#options 	BLINK		# blink the system LED

#### System options that are the same for all ports

## Root device configuration: change the ?'s if you are going to use a
## nonstandard root partition (other than where the kernel is booted from)
## and/or nonstandard root type (not ffs or nfs).  Normally this can be
## automagically determined at boot time.

config		netbsd	root on ? type ?

## UVM options.
#options 	UVM_PAGE_TRKOWN
#options 	UVMHIST
#options 	UVMHIST_PRINT	# Loud!

## System call tracing (see ktrace(1)).
options 	KTRACE

## System V compatible IPC subsystem.  (msgctl(2), semctl(2), and shmctl(2))
options 	SYSVMSG		# System V message queues
options 	SYSVSEM		# System V semaphores
options 	SYSVSHM		# System V shared memory

options 	MODULAR		# new style module(7) framework
options 	MODULAR_DEFAULT_AUTOLOAD

options 	USERCONF	# userconf(4) support
#options 	PIPE_SOCKETPAIR	# smaller, but slower pipe(2)
options 	SYSCTL_INCLUDE_DESCR	# Include sysctl descriptions in kernel

# Alternate buffer queue strategies for better responsiveness under high
# disk I/O load.
#options 	BUFQ_READPRIO
options 	BUFQ_PRIOCSCAN

## NFS boot options; tries DHCP/BOOTP then BOOTPARAM
options 	NFS_BOOT_BOOTPARAM
#options 	NFS_BOOT_BOOTP
options 	NFS_BOOT_DHCP

#### Debugging options

## The DDB in-kernel debugger runs at panic (unless DDB_ONPANIC=0), or at
## serial console break or keyboard reset, where the PROM would normally
## intercept.  DDB_HISTORY_SIZE adds up/down arrow command history.
# we enable DDB in GENERIC for now.
options 	DDB			# kernel dynamic debugger
options 	DDB_HISTORY_SIZE=100	# enable history editing in DDB
options 	DDB_VERBOSE_HELP	# enable verbose online help
#options 	DDB_ONPANIC=1		# see also sysctl(7): `ddb.onpanic'

## You may also use gdb, on another computer connected to this machine over
## a serial port.
# options 	KGDB
# options 	KGDB_DEVNAME="\"sabtty1\""	# kgdb device name
# options 	KGDB_DEVRATE=38400		# baud rate (defaults to 9600)


## Compile the kernel with debugging symbols (`netbsd.gdb' is the debug file),
## such that gdb(1) can be used on a kernel coredump.

#makeoptions	DEBUG="-g"


## Adds code to the kernel that does internal consistency checks, and will
## cause the kernel to panic if corruption of internal data structures
## is detected.
options 	DIAGNOSTIC	# extra kernel sanity checking

## Enable (possibly expensive) debugging code that may also display messages
## on the system console
#options 	DEBUG
#options 	LOCKDEBUG
#options 	SYSCALL_DEBUG

## Make SCSI error messages more verbose when explaining their meanings.
options 	SCSIVERBOSE
options 	PCIVERBOSE
options 	MIIVERBOSE	# verbose PHY autoconfig messages
#options 	PCI_CONFIG_DUMP	# verbosely dump PCI config space

## `INSECURE' turns off the kernel security level (securelevel = 0 always).
## This allows writing to /dev/mem, loading kernel modules while multi-user,
## and other insecurities good only for development work.  Do not use this
## option on a production machine.
#options 	INSECURE

## `FDSCRIPTS' allows non-readable but executable scripts by providing a
## pre-opened opaque file to the script interpreter.  `SETUIDSCRIPTS',
## which implies FDSCRIPTS, allows scripts to be set-user-id using the same
## opaque file mechanism.  Perl calls this "secure setuid scripts."

#options 	FDSCRIPTS
#options 	SETUIDSCRIPTS

## Options for compatibility with previous releases foreign system binaries.
## In the cases of COMPAT_SUNOS, you may need to set up additional user-level
## utilities or system configuration files. See compat_sunos(8).

include 	"conf/compat_netbsd09.config"
options 	COMPAT_SUNOS	# SunOS 4.x binary compatibility
options 	COMPAT_NETBSD32	# NetBSD/sparc binary compatibility -- 64-bit only
options 	EXEC_AOUT	# execve(2) support for a.out binaries
options 	EXEC_ELF32	# Exec module for SunOS 5.x binaries.

# Wedge support
options 	DKWEDGE_AUTODISCOVER	# Automatically add dk(4) instances
options 	DKWEDGE_METHOD_GPT	# Supports GPT partitions as wedges
#options 	DKWEDGE_METHOD_BSDLABEL	# Support disklabel entries as wedges
#options 	DKWEDGE_METHOD_MBR	# Support MBR partitions as wedges
#options 	DKWEDGE_METHOD_APPLE	# Support Apple partitions as wedges
#options 	DKWEDGE_METHOD_RDB	# Support RDB partitions as wedges

## File systems.
include "conf/filesystems.config"

## File system options.
options 	FFS_EI		# FFS Endian Independent support
#options 	FFS_NO_SNAPSHOT	# No FFS snapshot support
options 	QUOTA		# legacy UFS quotas
options 	QUOTA2		# new, in-filesystem UFS quotas
options 	UFS_DIRHASH	# UFS Large Directory Hashing
options 	UFS_EXTATTR	# Extended attribute support for UFS1
options 	WAPBL		# File system journaling support
options 	NFSSERVER	# Network File System server

## Network protocol support.  In most environments, INET is required.
options 	INET		# IP (Internet Protocol) v4
options 	INET6		# IPV6
#options 	IPSEC		# IP security
#options 	IPSEC_DEBUG	# debug for IP security
#options 	GATEWAY		# packet forwarding ("router switch")
options 	MROUTING	# packet forwarding of multicast packets
options 	PIM		# Protocol Independent Multicast
options 	NETATALK	# AppleTalk (over Ethernet) protocol
options 	NTP		# Network Time Protocol in-kernel support
#options 	PPS_SYNC	# Add serial line synchronization for NTP
options 	PPP_BSDCOMP	# Add BSD compression to ppp device
options 	PPP_DEFLATE	# Add deflate (libz) compression to ppp device
options 	PPP_FILTER	# Add active filters for ppp (via bpf)
#options 	TCP_DEBUG	# Record last TCP_NDEBUG packets with SO_DEBUG

#options 	ALTQ		# Manipulate network interfaces' output queues
#options 	ALTQ_BLUE	# Stochastic Fair Blue
#options 	ALTQ_CBQ	# Class-Based Queueing
#options 	ALTQ_CDNR	# Diffserv Traffic Conditioner
#options 	ALTQ_FIFOQ	# First-In First-Out Queue
#options 	ALTQ_FLOWVALVE	# RED/flow-valve (red-penalty-box)
#options 	ALTQ_HFSC	# Hierarchical Fair Service Curve
#options 	ALTQ_LOCALQ	# Local queueing discipline
#options 	ALTQ_PRIQ	# Priority Queueing
#options 	ALTQ_RED	# Random Early Detection
#options 	ALTQ_RIO	# RED with IN/OUT
#options 	ALTQ_WFQ	# Weighted Fair Queueing


#### Main bus and CPUs .. all systems.
mainbus0 at root
options 	MULTIPROCESSOR		# include multiprocessor support
cpu*		at mainbus0		# declare additional CPUs

#### Bus types found on SPARC systems.

sbus*	at mainbus0				# SBus-based systems
psycho* at mainbus0				# PCI-based systems
schizo* at mainbus?
pyro*	at mainbus?
vpci*	at mainbus0
central* at mainbus?
fhc*	at mainbus?
pci*	at psycho?
pci*	at schizo?
pci*	at pyro?
pci*	at vpci?
pci*	at ppb?
ppb*	at pci?
fhc*	at central?
ebus*	at mainbus0				# ebus devices
ebus*	at pci?					# ebus devices
# XXX 'puc's aren't really bridges, but there's no better place for them here
puc*	at pci? dev ? function ?		# PCI "universal" comm. cards
vbus0	at mainbus0
cbus*	at vbus?

#### Standard system devices -- all required for a given architecture

## PROM console driver -- if all else fails
pcons0	at mainbus0				# PROM console

## Auxiliary system registers -- We use the OBP for power management
auxio*	at ebus?				# auxio registers
auxio*	at sbus? slot ? offset ?		# auxio registers

# We also need:
bpp*	at sbus? slot ? offset ?		# parallel port
lpt*	at ebus?				# parallel port

## Mostek clock found on sbus on Ultra-1,2 systems
## and found on ebus on Ultra-5 and other systems.
clock*	at sbus? slot ? offset ?
clock*	at fhc?
clock*	at ebus?

## DS1287 compatible clock found on ebus on Netra X1 and other systems.
rtc*	at ebus?

## Timer chip found on 4/300, sun4c, sun4m and (some) sun4u systems.
timer*	at mainbus0				# sun4c

## found in schizo-based systems
jbusi2c* 	at mainbus0
iic* 	at jbusi2c?

# Virtual devices for sun4v systems.
vrtc0	at vbus?
vdsk*	at cbus?
vnet*	at cbus?

#### Serial port configuration

## Zilog 8530 serial chips.  Each has two-channels.
## zs0 is ttya and ttyb.  zs1 is the keyboard and mouse.
zs*	at sbus? slot ? offset ?
zs*	at fhc?
zstty*	at zs? channel ?			# ttys
kbd0	at zstty?
ms0	at zstty?

## PCI machines have serial ports:
##	Siemens SAB82532 controller: ttya and ttyb (`su'; sab)
##	Part of NS PC87332VLJ Super I/O controller: kbd/mouse (`se'; com)

## The SAB82532 controller has two serial ports
sab*	at ebus?				# ttya/ttyb
sabtty* at sab? channel ?

## Part of a PC87332VLJ
com*	at ebus?				# `com' driver for `su'
kbd0	at com?					# keyboard
ms0	at com?					# mouse

## Tadpole SPARCle PS/2 keyboard and mouse
pckbc*		at ebus?		# PC keyboard controller
options 	HAVE_TADPMU		# include support for Tadpole Viper PMU
pckbd*		at pckbc?		# PC keyboard
pms*		at pckbc?		# PS/2 mouse for wsmouse
options 	PMS_SYNAPTICS_TOUCHPAD	# Enable support for Synaptics Touchpads
wskbd*		at pckbd? console ?
wsmouse*	at pms? mux 0

## Tadpole SPARCle SD card
wb* 		at ebus?		# Winbond W83L518D SD/MMC reader
sdmmc* 		at wb?
ld* 		at sdmmc?

## Magma Serial/Parallel driver (not tested)
#magma*	at sbus? slot ? offset ?
#mtty*	at magma?
#mbpp*	at magma?

## SUNW,spif Serial/Parallel driver
spif*	at sbus? slot ? offset ?
stty*	at spif?
sbpp*	at spif?

## PCI serial interfaces
com*	at puc? port ?			# 16x50s on "universal" comm boards
cy*	at pci? dev ? function ?	# Cyclades Cyclom-Y serial boards
cz*	at pci? dev ? function ?	# Cyclades-Z multi-port serial boards

# PCI cryptographic devices
hifn*	at pci? dev ? function ?	# Hifn 7755/7811/795x
ubsec*	at pci? dev ? function ?	# Broadcom 5501/5601/580x/582x


#### Disk controllers and disks

## The following flags may be set for the NCR53c94 based esp driver:
##	bits 0-7:  disable disconnect/reselect for the corresponding target
##	bits 8-15: disable synchronous negotiation for target [bit-8]
##	bits 16-23: disable tagged queuing for target [bit-16]

## sun4u on-board SCSI, and FSBE/S SBus SCSI cards, an NCR53c94 or
## equivalent behind an LSI Logic DMA controller

dma*	at sbus? slot ? offset ?		# SBus
esp*	at dma?					# SBus

esp*	at sbus? slot ? offset ?
isp*	at sbus? slot ? offset ?
isp*	at pci? dev ? function ?	# Qlogic ISP [12]0x0 SCSI/FibreChannel
siop*	at pci?				# 53C8xx ("glm" compatible)
esiop*	at pci?				# 53C875 and newer ("glm" compatible)

# PCI SCSI controllers
#	UT marks untested.
adv*	at pci? dev ? function ?	# AdvanSys 1200[A,B], 9xx[U,UA] SCSI UT
adw*	at pci? dev ? function ?	# AdvanSys 9x0UW[D], 3940U[2,3]W SCSI UT
ahc*	at pci? dev ? function ?	# Adaptec [23]94x, aic78x0 SCSI
bha*	at pci? dev ? function ?	# BusLogic 9xx SCSI UT
dpt*	at pci? dev ? function ?	# DPT SmartCache/SmartRAID UT
iha*	at pci? dev ? function ?	# Initio INIC-940/950 SCSI
mpt*	at pci? dev ? function ?	# LSILogic 9x9 and 53c1030
njs*	at pci? dev ? function ?	# Workbit NinjaSCSI-32
pcscp*	at pci? dev ? function ?	# AMD 53c974 PCscsi-PCI SCSI
trm*	at pci? dev ? function ?	# Tekram DC-395U/UW/F, DC-315/U SCSI

scsibus* at scsi?

## These entries find devices on all SCSI busses and assign
## unit numbers dynamically.
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
ses*	at scsibus? target ? lun ?		# SCSI SES/SAF-TE devices
uk*	at scsibus? target ? lun ?		# unknown SCSI

# IDE and related devices
# PCI IDE controllers - see pciide(4) for supported hardware.
# The 0x0001 flag force the driver to use DMA, even if the driver doesn't know
# how to set up DMA modes for this chip. This may work, or may cause
# a machine hang with some controllers.
pciide* at pci? dev ? function ? flags 0x0000	# GENERIC pciide driver
acardide* at pci? dev ? function ?	# Acard IDE controllers
aceride* at pci? dev ? function ?	# Acer Lab IDE controllers
artsata* at pci? dev ? function ?	# Intel i31244 SATA controller
cmdide* at pci? dev ? function ?	# CMD tech IDE controllers
cypide* at pci? dev ? function ?	# Cypress IDE controllers
hptide* at pci? dev ? function ?	# Triones/HighPoint IDE controllers
optiide* at pci? dev ? function ?	# Opti IDE controllers
pdcide* at pci? dev ? function ?	# Promise IDE controllers
pdcsata* at pci? dev ? function ?	# Promise SATA150 controllers
satalink* at pci? dev ? function ?	# SiI SATALink controllers
siisata* at pci? dev ? function ?	# SiI SteelVine controllers
siside* at pci? dev ? function ?	# SiS IDE controllers
slide*	at pci? dev ? function ?	# Symphony Labs IDE controllers
viaide* at pci? dev ? function ?	# VIA/AMD/Nvidia IDE controllers

# ATA (IDE) bus support
atabus* at ata?
atapibus* at atapi?

# IDE drives
# Flags are used only with controllers that support DMA operations
# and mode settings (e.g. some pciide controllers)
# The lowest order four bits (rightmost digit) of the flags define the PIO
# mode to use, the next set of four bits the DMA mode and the third set the
# UltraDMA mode. For each set of four bits, the 3 lower bits define the mode
# to use, and the last bit must be 1 for this setting to be used.
# For DMA and UDMA, 0xf (1111) means 'disable'.
# 0x0fac means 'use PIO mode 4, DMA mode 2, disable UltraDMA'.
# (0xc=1100, 0xa=1010, 0xf=1111)
# 0x0000 means "use whatever the drive claims to support".
wd*	at atabus? drive ? flags 0x0000

cd*	at atapibus? drive ? flags 0x0000	# ATAPI CD-ROM drives
sd*	at atapibus? drive ? flags 0x0000	# ATAPI disk drives
uk*	at atapibus? drive ? flags 0x0000	# ATAPI unknown

# RAID controllers and devices (untested)
cac*	at pci? dev ? function ?	# Compaq PCI array controllers
mlx*	at pci? dev ? function ?	# Mylex DAC960 & DEC SWXCR family
twe*	at pci? dev ? function ?	# 3ware Escalade RAID controllers

ld*	at cac? unit ?			# logical disk devices
ld*	at twe? unit ?
ld*	at mlx? unit ?

# Virtio devices
virtio* at pci? dev ? function ?	# Virtio PCI device
# the baloon driver can not work on machines with non-4k pages
#viomb*	at virtio?			# Virtio memory balloon device
ld*	at virtio?			# Virtio disk device
vioif*	at virtio?			# Virtio network device
viornd* at virtio?			# Virtio entropy device
vioscsi* at virtio?			# Virtio SCSI device

## Floppy controller and drive found on SPARCstations.

# need share with the sparc, and everyone else.  needs to use auxio.
# actually, the ebus version has (will have) direct access to its AUXIO
# register space (it is mapped in to fdthree not auxio).
fdc0	at sbus? slot ? offset ?		# SUNW,fdtwo
#fdc0	at ebus?				# fdthree, EXPERIMENTAL
fd*	at fdc0					# the drive itself

#
# accept filters
pseudo-device	accf_data		# "dataready" accept filter
pseudo-device	accf_http		# "httpready" accept filter

## A disk-like interface to files.  Can be used to create floppy, CD,
## miniroot images, etc.

pseudo-device	vnd
#options 	VND_COMPRESSION		# compressed vnd(4)

## Concatenated and striped disks; with this, you can create a software-based
## disk array similar to a "RAID 0" setup.  See ccd(4).

pseudo-device	ccd

## Cryptographic disk devices.  See cgd(4).

pseudo-device	cgd

## RAIDframe disk driver: software RAID driver.  See raid(4).

pseudo-device	raid
options 	RAID_AUTOCONFIG		# auto-configuration of RAID components
# Options to enable various other RAIDframe RAID types.
# options 	RF_INCLUDE_EVENODD=1
# options 	RF_INCLUDE_RAID5_RS=1
# options 	RF_INCLUDE_PARITYLOGGING=1
# options 	RF_INCLUDE_CHAINDECLUSTER=1
# options 	RF_INCLUDE_INTERDECLUSTER=1
# options 	RF_INCLUDE_PARITY_DECLUSTERING=1
# options 	RF_INCLUDE_PARITY_DECLUSTERING_DS=1


## Memory disk device, used on boot floppies with compressed
## kernel-plus-root-disk images.

pseudo-device	md


#### Network interfaces

## LANCE Ethernet - an AMD 7990 LANCE behind specialized DMA glue
## Three flavors of additional SBus ethernets are available.  One attaches
## directly like the sun4c on-board, one uses the ledma device like the
## sun4m on-board, and one uses the lebuffer device.

ledma0		at sbus? slot ? offset ?	# sun4m on-board
le0		at ledma0			# sun4m on-board
le*		at sbus? slot ? offset ?	# SBus
ledma*		at sbus? slot ? offset ?	# SBus
le*		at ledma?			# SBus
lebuffer0	at sbus? slot ? offset ?	# SBus
le0		at lebuffer?			# SBus
lebuffer*	at sbus? slot ? offset ?	# SBus
le*		at lebuffer?			# SBus

## Happy Meal Ethernet
hme*		at sbus? slot ? offset ?
hme*		at pci? dev ? function ?	# network "hme" compatible

## qec/be, qec/hme
qec*		at sbus? slot ? offset ?
be*		at qec?
qe*		at qec?

# PCI network interfaces
#	UT marks untested.
an*	at pci? dev ? function ?	# Aironet PC4500/PC4800 (802.11) UT
ath*	at pci? dev ? function ?	# Atheros 5210/5211/5212 802.11 UT
bge*	at pci? dev ? function ?	# Broadcom 570x gigabit Ethernet
bnx*	at pci? dev ? function ?	# Broadcom NetXtreme II Ethernet
cas*	at pci? dev ? function ?	# Sun Cassini/Cassini+ Ethernet
# XXX causes ICE
#ep*	at pci? dev ? function ?	# 3Com 3c59x
epic*	at pci? dev ? function ?	# SMC EPIC/100 Ethernet
ex*	at pci? dev ? function ?	# 3Com 90x[B]
fxp*	at pci? dev ? function ?	# Intel EtherExpress PRO 10+/100B
gem*	at pci? dev ? function ?	# Apple GMAC and Sun ERI gigabit enet
gem*	at sbus? slot ? offset ?
gsip*	at pci? dev ? function ?	# National Semiconductor DP83820 GigE
ixg*	at pci? dev ? function ?	# Intel 8259x 10 gigabit
mskc*	at pci? dev ? function ?	# Marvell Yukon 2 Gigabit Ethernet
msk*	at mskc?			# Marvell Yukon 2 Gigabit Ethernet
ne*	at pci? dev ? function ?	# NE2000-compatible Ethernet UT
ntwoc*	at pci? dev ? function ?	# Riscom/N2 PCI Sync Serial UT
# XXX cause uncorrectable DMA error
#pcn*	at pci? dev ? function ?	# PCnet-PCI Ethernet
ral*	at pci? dev ? function ?	# ralink wifi UT
re*	at pci? dev ? function ?	# Realtek 8139C+/8169/8169S/8110S
rtk*	at pci? dev ? function ?	# Realtek 8129/8139
sip*	at pci? dev ? function ?	# SiS 900 Ethernet
skc*	at pci? dev ? function ?	# SysKonnect SK9821 Gigabit Ethernet
sk*	at skc?				# SysKonnect SK9821 Gigabit Ethernet
ti*	at pci? dev ? function ?	# Alteon ACEnic gigabit Ethernet UT
tl*	at pci? dev ? function ?	# ThunderLAN-based Ethernet
tlp*	at pci? dev ? function ?	# DECchip 21x4x and clones
vge*	at pci? dev ? function ?	# VIA VT612X Gigabit Ethernet
vr*	at pci? dev ? function ?	# VIA Rhine Fast Ethernet
wi*	at pci? dev ? function ?	# Lucent/Intersil WaveLAN/IEEE
wm*	at pci? dev ? function ?	# Intel 8254x gigabit

# MII/PHY support
acphy*	at mii? phy ?			# Altima AC101 and AMD Am79c874 PHYs
bmtphy* at mii? phy ?			# Broadcom BCM5201 and BCM5202 PHYs
brgphy* at mii? phy ?			# Broadcom BCM5400-family PHYs
ciphy*	at mii? phy ?			# Cicada CS8201 Gig-E PHYs
dmphy*	at mii? phy ?			# Davicom DM9101 PHYs
exphy*	at mii? phy ?			# 3Com internal PHYs
gentbi* at mii? phy ?			# Generic Ten-Bit 1000BASE-[CLS]X PHYs
gphyter* at mii? phy ?			# NS83861 Gig-E PHY
icsphy* at mii? phy ?			# Integrated Circuit Systems ICS189x
igphy*	at mii? phy ?			# Intel IGP01E1000
ikphy*	at mii? phy ?			# Intel 82563 PHYs
inphy*	at mii? phy ?			# Intel 82555 PHYs
iophy*	at mii? phy ?			# Intel 82553 PHYs
lxtphy* at mii? phy ?			# Level One LXT-970 PHYs
makphy* at mii? phy ?			# Marvell Semiconductor 88E1000 PHYs
nsphy*	at mii? phy ?			# NS83840 PHYs
nsphyter* at mii? phy ? 		# NS83843 PHYs
qsphy*	at mii? phy ?			# Quality Semiconductor QS6612 PHYs
rgephy* at mii? phy ?			# Realtek 8169S/8110S internal PHYs
rlphy*	at mii? phy ?			# Realtek 8139/8201L PHYs
sqphy*	at mii? phy ?			# Seeq 80220/80221/80223 PHYs
tlphy*	at mii? phy ?			# ThunderLAN PHYs
tqphy*	at mii? phy ?			# TDK Semiconductor PHYs
ukphy*	at mii? phy ?			# generic unknown PHYs

# PCI USB controllers
ehci*	at pci? dev ? function ?	# Enhanced Host Controller
ohci*	at pci? dev ? function ?	# Open Host Controller
uhci*	at pci? dev ? function ?	# Universal Host Controller (Intel)

# USB bus support
usb*	at ehci?
usb*	at ohci?
usb*	at uhci?
#usb*	at slhci?

# USB device drivers
include "dev/usb/usbdevices.config"

# Firewire support
fwohci* at pci? dev ? function ?	# IEEE1394 Open Host Controller
ieee1394if* at fwohci?
fwip*	at ieee1394if?			# IP over IEEE1394
sbp*	at ieee1394if? euihi ? euilo ?

## Loopback network interface; required
pseudo-device	loop

## SLIP and CSLIP interfaces, for IP over a serial line.
pseudo-device	sl

## PPP, the successor to SLIP.  See pppd(8).
pseudo-device	ppp

## PPP over Ethernet (RFC 2516)
pseudo-device	pppoe

## Network "tunnel" device, allowing protocol stacks to run in the userland.
## This is used by the third-party user-mode "ppp" program, and others.
pseudo-device	tun
pseudo-device	tap			# virtual Ethernet

## Generic L3 over IP tunnel
pseudo-device	gre			# generic L3 over IP tunnel

## Berkeley Packet Filter, required to run RARPD.  A generic C-language
## interface that allows selective examining of incoming packets.
pseudo-device	bpfilter

pseudo-device	carp			# Common Address Redundancy Protocol

## IEEE 802.1q encapsulation
pseudo-device	vlan

## Simple inter-network traffic bridging
pseudo-device	bridge
pseudo-device	vether			# Virtual Ethernet for bridge
pseudo-device	agr			# IEEE 802.3ad link aggregation

pseudo-device	npf			# NPF packet filter

## for IPv6
pseudo-device	gif			# IPv[46] over IPv[46] tunnel (RFC1933)
#pseudo-device	faith			# IPv[46] tcp relay translation i/f
pseudo-device	stf			# 6to4 IPv6 over IPv4 encapsulation


#### CardBus and PCMCIA devices

# PCI CardBus bridge support
#cbb*	at pci? dev ? function ?
#cardslot* at cbb?

# CardBus bus support
#cardbus* at cardslot?
#pcmcia* at cardslot?

## SBus to PCMCIA bridge
#nell*	at sbus? slot ? offset ?		# PCMCIA bridge
#pcmcia* at nell?

## CardBus cards; UT marks untested.

# CardBus serial interfaces
#com*	at cardbus? function ?	# Modems and serial cards UT

# CardBus SCSI controllers
#adv*	at cardbus? function ?	# AdvanSys 1200[A,B], 9xx[U,UA] SCSI UT
#ahc*	at cardbus? function ?	# Adaptec ADP-1480 UT
#njs*	at cardbus? function ?	# Workbit NinjaSCSI-32

# CardBus IDE controllers
#njata*	at cardbus? function ? flags 0x01	# Workbit NinjaATA-32

# CardBus network interfaces
#ath*	at cardbus? function ?	# Atheros 5210/5211/5212 802.11
#athn*	at cardbus? function ?	# Atheros AR9k (802.11a/g/n) UT
#atw*	at cardbus? function ?	# ADMtek ADM8211 (802.11) UT
#bwi*	at cardbus? function ?	# Broadcom BCM43xx wireless
#ex*	at cardbus? function ?	# 3Com 3C575TX
#fxp*	at cardbus? function ?	# Intel i8255x UT
#ral*	at cardbus? function ?	# Ralink Technology RT25x0 802.11a/b/g UT
#re*	at cardbus? function ?	# Realtek 8139C+/8169/8169S/8110S UT
#rtk*	at cardbus? function ?	# Realtek 8129/8139 UT
#rtw*	at cardbus? function ?	# Realtek 8180L (802.11) UT
#tlp*	at cardbus? function ?	# DECchip 21143

# CardBus USB controllers
#ehci*	at cardbus? function ?	# Enhanced Host Controller
#ohci*	at cardbus? function ?	# Open Host Controller
#uhci*	at cardbus? function ?	# Universal Host Controller (Intel) UT

# CardBus IEEE1394 controllers
#fwohci* at cardbus? function ?	# IEEE1394 Open Host Controller UT

## PCMCIA cards; UT marks untested.

# PCMCIA serial interfaces
#com*	at pcmcia? function ?		# Modems and serial cards

#pcmcom* at pcmcia? function ?		# PCMCIA multi-port serial cards UT
#com*	at pcmcom? slave ?		# ...and the slave devices

# PCMCIA SCSI controllers
#aic*	at pcmcia? function ?		# Adaptec APA-1460 SCSI UT
#esp*	at pcmcia? function ?		# Qlogic ESP406/FAS408 SCSI UT
#spc*	at pcmcia? function ?		# Fujitsu MB87030/MB89352 SCSI

# PCMCIA IDE controllers
#wdc*	at pcmcia? function ?

# PCMCIA network interfaces
#an*	at pcmcia? function ?		# Aironet PC4500/PC4800 (802.11) UT
#awi*	at pcmcia? function ?		# BayStack 650/660 (802.11FH/DS) UT
#cnw*	at pcmcia? function ?		# Xircom/Netwave AirSurfer UT
#cs*	at pcmcia? function ?		# CS89xx Ethernet UT
#ep*	at pcmcia? function ?		# 3Com 3c589 and 3c562 Ethernet
#mbe*	at pcmcia? function ?		# MB8696x based Ethernet UT
#ne*	at pcmcia? function ?		# NE2000-compatible Ethernet
#ray*	at pcmcia? function ?		# Raytheon Raylink (802.11) UT
#sm*	at pcmcia? function ?		# Megahertz Ethernet UT
#wi*	at pcmcia? function ?		# Lucent/Intersil WaveLan IEEE (802.11)
#xirc*	at pcmcia? function ?		# Xircom CreditCard Ethernet UT
#com*	at xirc?
#xi*	at xirc?
#mhzc*	at pcmcia? function ?		# Megahertz Ethernet/Modem combo cards
#com*	at mhzc?
#sm*	at mhzc?

# PCMCIA USB controllers
#slhci*	at pcmcia? function ?		# ScanLogic SL811HS UT

#### Bluetooth Controller and Device support

## Bluetooth PCMCIA Controllers
#bt3c* at pcmcia? function ?		# 3Com 3CRWB6096-A
#btbc* at pcmcia? function ?		# AnyCom BlueCard LSE041/039/139

## Bluetooth USB Controllers
ubt* at uhub? port ?
aubtfwl* at uhub? port ?

## Bluetooth Device Hub
#bthub* at bcsp?
#bthub* at bt3c?
#bthub* at btbc?
#bthub* at btuart?
bthub* at ubt?

## Bluetooth HID support
bthidev* at bthub?

## Bluetooth Mouse
btms* at bthidev? reportid ?
wsmouse* at btms? mux 0

## Bluetooth Keyboard
btkbd* at bthidev? reportid ?
wskbd* at btkbd? console ? mux 1

## Bluetooth Apple Magic Mouse
btmagic* at bthub?
wsmouse* at btmagic? mux 0

## Bluetooth Audio support
btsco* at bthub?

#### Audio and video devices

## /dev/audio support (`audiocs' plus `audio')
##
audiocs*	at sbus? slot ? offset ?	# SUNW,CS4231
audiocs*	at ebus?			# SUNW,CS4231 in U5/U10
autri*		at pci? dev ? function ?	# Blade 100 'sound'
auacer* 	at pci? dev ? function ?	# Ultra45

audio*		at audiobus?

spkr*		at audio?			# PC speaker (synthesized)

midi*		at midibus?


## Sun "bwtwo" black and white framebuffer
bwtwo0		at sbus? slot ? offset ?
bwtwo*		at sbus? slot ? offset ?

## Sun "cgthree" Sbus color framebuffer
cgthree0	at sbus? slot ? offset ?
cgthree*	at sbus? slot ? offset ?

## Sun "cgsix" accelerated color framebuffer.
cgsix*		at sbus? slot ? offset ?

## Southland Media Systems (now Quantum 3D) MGX
mgx*		at sbus? slot ? offset ?

## Sun FFB
ffb*		at mainbus0
upa*		at mainbus?
ffb*		at upa?

## Sun XVR-1000
gfb*		at mainbus0

# On board vga on U5/U10 etc.
machfb* 	at pci?

# Sun XVR-100
radeonfb*	at pci?

# Sun PGX32 / TechSource Raptor GFX 8P
pm2fb*		at pci?

# 3Dlabs Wildcat based boards like XVR-500, 1200 etc.
wcfb*		at pci?

# generic PCI framebuffers
genfb*		at pci?
genfb*		at sbus? slot ? offset ?

# make sure the console display is always wsdisplay0
wsdisplay0	at wsemuldisplaydev? console 1
wsdisplay*	at wsemuldisplaydev?

# wsmouse for sun ms
wsmouse*	at ms0

# wskbd for sun kbd
wskbd0		at kbd0

# various options for wscons - we try to look as much like a standard
# sun console as possible
#options 	WSEMUL_SUN		# sun terminal emulation
options 	WSEMUL_VT100		# allow us to be wsvt25
options 	WS_DEFAULT_FG=WSCOL_BLACK
options 	WS_DEFAULT_BG=WSCOL_LIGHT_WHITE
options 	WSDISPLAY_COMPAT_PCVT		# emulate some ioctls
options 	WSDISPLAY_COMPAT_SYSCONS	# emulate some more ioctls
options 	WSDISPLAY_COMPAT_USL		# wsconscfg VT handling
options 	WSDISPLAY_COMPAT_RAWKBD		# can get raw scancodes
options 	WSDISPLAY_DEFAULTSCREENS=4
options 	FONT_GALLANT12x22		# PROM font look-alike
options 	FONT_DROID_SANS_MONO12x22	# antialiased font

#### Other device configuration

psm*		at ebus?		# Ultrabook IIi microcontroller
pcfiic* 	at ebus?		# various environmental monitoring
iic*		at pcfiic?
lom*		at ebus?		# LOMlite lights out management

# Netra X1 / T1 style environmental monitoring
alipm*		at pci?
iic*		at alipm?

spdmem* 	at iic? addr?
admtemp*	at iic? addr?
adm1026hm*	at iic? addr?
ecadc*		at iic? addr?	# envctrl/envctrltwo on E250/E450
lmtemp* 	at iic? addr?
tda*		at iic? addr?	# fan control on SB1000/2000
dbcool* 	at iic? addr?	# SB25000
seeprom*	at iic? addr?	# i2c-at24c64 fru's
pcagpio* 	at iic? addr?	# V210/V240 GPIO's
pcf8574io* 	at iic? addr?	# E250 GPIO's

### Other pseudo-devices

pseudo-device	crypto			# /dev/crypto device
pseudo-device	swcrypto		# software crypto implementation

## Pseudo ttys, required for network logins and programs like screen.

pseudo-device	pty			# pseudo-ttys (for network, etc.)

## Random device, used to implement /dev/random (a source of random noise),
## and generate randomness for some kernel formulae.


pseudo-device	wsmux			# mouse & keyboard multiplexor
pseudo-device	wsfont
pseudo-device	clockctl		# user control of clock subsystem
pseudo-device	ksyms			# /dev/ksyms
pseudo-device	fss			# file system snapshot device
#pseudo-device	bcsp			# BlueCore Serial Protocol
#pseudo-device	btuart			# Bluetooth HCI UART (H4)
pseudo-device	lockstat		# lock profiling
pseudo-device 	swwdog			# software watchdog timer -- swwdog(4)

# drvctl - needed to show device dictionary via drvctl(8)
pseudo-device	drvctl

include "dev/veriexec.config"

options 	PAX_ASLR_DEBUG=1	# PaX ASLR debug
options 	PAX_SEGVGUARD=0		# PaX Segmentation fault guard
# XXX: there is no PLT format for sparc64 that cooperates with
# MPROTECT, so disable it for now
# options 	PAX_MPROTECT=0		# PaX mprotect(2) restrictions
# options 	PAX_MPROTECT_DEBUG=1	# PaX mprotect debug
options 	PAX_ASLR=1		# PaX Address Space Layout Randomization

# Pull in optional local configuration - always at end
cinclude	"arch/sparc64/conf/GENERIC.local"