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
#	$NetBSD: INSTALL,v 1.109 2019/02/07 23:11:10 mrg Exp $
#
#	CATSINST -- CHALTECH CATS Install kernel
#

include	"arch/cats/conf/std.cats"

#options 	INCLUDE_CONFIG_FILE	# embed config file in kernel binary

# estimated number of users

maxusers	8

# Standard system options

options 	INSECURE	# disable kernel securelevel

options 	RTC_OFFSET=0	# hardware clock is this many mins. west of GMT
#options 	NTP		# NTP phase/frequency locked loop

# CPU options

# For StrongARM systems
options 	CPU_SA110	# Support the SA110 core
makeoptions	COPTS="-Os -march=armv4 -mtune=strongarm" # optimise for space

# File systems

file-system	FFS		# UFS
#file-system	LFS		# log-structured file system
file-system	MFS		# memory file system
file-system	NFS		# Network file system
#file-system 	ADOSFS		# AmigaDOS-compatible file system
#file-system 	EXT2FS		# second extended file system (linux)
file-system	CD9660		# ISO 9660 + Rock Ridge file system
file-system	MSDOSFS		# MS-DOS file system
#file-system	FDESC		# /dev/fd
file-system	KERNFS		# /kern
#file-system	NULLFS		# loopback file system
#file-system 	OVERLAY		# overlay filesystem
#file-system	PROCFS		# /proc
#file-system	UMAPFS		# NULLFS + uid and gid remapping
#file-system	UNION		# union file system
#file-system	CODA		# Coda File System; also needs vcode (below)
file-system	PTYFS		# /dev/pts/N support

# File system options
#options 	QUOTA		# legacy UFS quotas
#options 	QUOTA2		# new, in-filesystem UFS quotas
#options 	FFS_EI		# FFS Endian Independent support
#options 	NFSSERVER
options 	WAPBL		# File system journaling support
options 	FFS_NO_SNAPSHOT	# No FFS snapshot support

# Networking options

#options 	GATEWAY		# packet forwarding
options 	INET		# IP + ICMP + TCP + UDP
#options 	INET6		# IPV6
#options 	IPSEC		# IP security
#options 	IPSEC_DEBUG	# debug for IP security
#options 	MROUTING	# IP multicast routing
#options 	PIM		# Protocol Independent Multicast
#options 	NETATALK	# AppleTalk networking
#options 	PPP_BSDCOMP	# BSD-Compress compression support for PPP
#options 	PPP_DEFLATE	# Deflate compression support for PPP
#options 	PPP_FILTER	# Active filter support for PPP (requires bpf)
#options 	TCP_DEBUG	# Record last TCP_NDEBUG packets with SO_DEBUG

options 	NFS_BOOT_BOOTP
options 	NFS_BOOT_DHCP
#options 	NFS_BOOT_BOOTPARAM

# Compatibility options

include 	"conf/compat_netbsd13.config"

# Shared memory options

#options 	SYSVMSG		# System V-like message queues
#options 	SYSVSEM		# System V-like semaphores
#options 	SYSVSHM		# System V-like memory sharing

# Device options

options 	MEMORY_DISK_HOOKS	# boottime setup of ramdisk
options 	MEMORY_DISK_ROOT_SIZE=5000	# Size in blocks
options 	MEMORY_DISK_IS_ROOT	# use memory disk as root
options 	MEMORY_DISK_SERVER=0	# no userspace memory disk support
options 	MEMORY_DISK_RBFLAGS=RB_SINGLE	# boot in single-user mode

# Miscellaneous kernel options
#options 	KTRACE		# system call tracing, a la ktrace(1)
#options 	IRQSTATS	# manage IRQ statistics
#options 	SCSIVERBOSE	# Verbose SCSI errors
#options 	PCIVERBOSE	# Verbose PCI descriptions
#options 	MIIVERBOSE	# verbose PHY autoconfig messages
#options 	PCI_CONFIG_DUMP	# verbosely dump PCI config space
#options 	USBVERBOSE	# verbose USB device autoconfig messages
#options 	DDB_KEYCODE=0x40
options 	USERCONF	# userconf(4) support
options		PIPE_SOCKETPAIR		# smaller, but slower pipe(2)
#options 	SYSCTL_INCLUDE_DESCR	# Include sysctl descriptions in kernel

# wscons options
#options 	WSEMUL_SUN		# sun terminal emulation
options 	WSEMUL_VT100		# VT100 / VT220 emulation
# different kernel output - see dev/wscons/wsdisplayvar.h
options 	WS_KERNEL_FG=WSCOL_GREEN
options 	WSDISPLAY_COMPAT_PCVT		# emulate some ioctls
options 	WSDISPLAY_COMPAT_SYSCONS	# emulate some ioctls
options 	WSDISPLAY_COMPAT_USL		# wsconscfg VT handling
options 	WSDISPLAY_COMPAT_RAWKBD		# can get raw scancodes
# see dev/wscons/wskbdmap_mfii.h for implemented layouts
#options 	PCKBD_LAYOUT="(KB_DE | KB_NODEAD)"

# Development and Debugging options

#options 	ARM700BUGTRACK	# track the ARM700 swi bug
#options 	PORTMASTER	# Enable PortMaster only options
#options 	DIAGNOSTIC	# internal consistency checks
#options 	PMAP_DEBUG	# Enable pmap_debug_level code
options 	DDB		# in-kernel debugger
pseudo-device	ksyms
options 	DDB_HISTORY_SIZE=100	# Enable history editing in DDB
#makeoptions	DEBUG="-g"	# compile full symbol table

config		netbsd	root on ? type ?

# The main bus device
mainbus0 at root

# The boot CPU
cpu0 at mainbus?

# Core logic
footbridge0	at mainbus?

# footbridge uart
fcom0	at footbridge?

# system clock via footbridge
#clock*	at footbridge?

# PCI bus support
# PCI bus via footbridge
pci0	at footbridge?			# PCI bus

pci*	at ppb? bus ?

# PCI bridges
ppb*	at pci? dev ? function ?	# PCI-PCI bridges
# 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

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

# PCI parallel printer interfaces
#lpt*	at puc? port ?			# || ports on "universal" comm boards

# PCI SCSI Controllers and Buses
adv*	at pci? dev ? function ?	# AdvanSys 1200[A,B], ULTRA SCSI
scsibus* at adv?
#adw*	at pci? dev ? function ?	# AdvanSys 9xxUW SCSI
#scsibus* at adw?
ahc*	at pci? dev ? function ?	# Adaptec [23]94x, aic78x0 SCSI controllers
scsibus* at ahc?
#bha*	at pci? dev ? function ?	# BusLogic 9xx SCSI
#scsibus* at bha?
iha*	at pci? dev ? function ?	# Initio INIC-940/950 SCSI
scsibus* at iha?
#isp*	at pci? dev ? function ?	# Qlogic ISP 10x0 SCSI controllers
#scsibus* at isp?
pcscp*	at pci? dev ? function ?	# AMD 53c974 PCscsi-PCI SCSI
scsibus* at pcscp?
siop*	at pci? dev ? function ?	# NCR 53c8xx SCSI
scsibus* at siop?

# SCSI devices
sd*	at scsibus? target ? lun ?	# SCSI disk drives
st*	at scsibus? target ? lun ?	# SCSI tape drives
cd*	at scsibus? target ? lun ?	# SCSI CD-ROM drives
#ch*	at scsibus? target ? lun ?	# SCSI auto-changers
#uk*	at scsibus? target ? lun ?	# SCSI unknown device
#ss*	at scsibus? target ? lun ?	# SCSI scanner

# PCI IDE Controllers and 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
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?

# 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	# the drives themselves

# ATAPI bus support
atapibus* at atapi?

# ATAPI devices
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

# PCI network interfaces
ep*	at pci? dev ? function ?	# 3C590 ethernet cards
ex*	at pci? dev ? function ?	# 3Com 90x[B]
epic*	at pci? dev ? function ?	# SMC EPIC/100 Ethernet
#esh*	at pci? dev ? function ?	# Essential HIPPI card
#fpa*	at pci? dev ? function ?	# DEC DEFPA FDDI
fxp*	at pci? dev ? function ?	# Intel EtherExpress PRO 10+/100B
#le*	at pci? dev ? function ?	# PCnet-PCI Ethernet
ne*	at pci? dev ? function ?	# NE2000 compat ethernet
#ntwoc*	at pci? dev ? function ?	# Riscom/N2 PCI Sync Serial
sip*	at pci? dev ? function ?	# SiS 900 Ethernet
#tl*	at pci? dev ? function ?	# ThunderLAN-based Ethernet
#de*	at pci? dev ? function ?	# DECchip 21x4x and clones
tlp*	at pci? dev ? function ?	# DECchip 21x4x and clones
vr*	at pci? dev ? function ?	# VIA Rhine Fast Ethernet
rtk*	at pci? dev ? function ?	# Realtek 8129/8139

# MII/PHY support
exphy*	at mii? phy ?			# 3Com internal PHYs
#icsphy* at mii? phy ?			# Integrated Circuit Systems ICS189x
inphy*	at mii? phy ?			# Intel 82555 PHYs
#iophy*	at mii? phy ?			# Intel 82553 PHYs
#lxtphy*	at mii? phy ?			# Level One LXT-970 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/8211 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

# USB Controller and Devices

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

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

# USB Hubs
#uhub*	at usb?
#uhub*	at uhub? port ?

# USB HID device
#uhidev*	at uhub? port ? configuration ? interface ?

# USB Mice
#ums*	at uhidev? reportid ?
#wsmouse*	at ums?

# USB Keyboards
#ukbd*	at uhidev? reportid ?
#wskbd*	at ukbd? console ?

# USB serial adapter
#ucycom*	at uhidev? reportid ?

# USB Generic HID devices
#uhid*	at uhidev? reportid ?

# USB Printer
#ulpt*	at uhub? port ? configuration ? interface ?

# USB Modem
#umodem*	at uhub? port ? configuration ?
#ucom*	at umodem?

# Option N.V. Wireless WAN modems
#uhso*	at uhub? port ? configuration ?

# USB Mass Storage
#umass*	at uhub? port ? configuration ? interface ?
#atapibus* at umass?
#scsibus* at umass? channel ?

# USB audio
#uaudio*	at uhub? port ? configuration ?
#audio*	at uaudio?

# USB Ethernet adapters
#aue*	at uhub? port ?		# ADMtek AN986 Pegasus based adapters
#axe*	at uhub? port ?		# ASIX AX88172 based adapters
#cue*	at uhub? port ?		# CATC USB-EL1201A based adapters
#kue*	at uhub? port ?		# Kawasaki LSI KL5KUSB101B based adapters
#mue*	at uhub? port ?		# Microchip LAN75xx/LAN78xx based adapters
#ure*	at uhub? port ?		# Realtek RTL8152/RTL8153 based adapters
#url*	at uhub? port ?		# Realtek RTL8150L based adapters

# USB Generic driver
#ugen* at uhub? port ?

# Audio Devices

# PCI audio devices
#eap*	at pci? dev ? function ?	# Ensoniq AudioPCI
#sv*	at pci? dev ? function ?	# S3 SonicVibes

# Audio support
#audio*	at eap?
#audio*	at sv?

vga*		at pci?
wsdisplay*	at vga? console ?

# ISA bus bridging

pcib*	at pci? dev ? function ?	# PCI-ISA bridge
isa*	at pcib?			# ISA bus

# ISA Plug-and-Play bus support
isapnp0	at isa?

# wscons
pckbc0	at isa?			# pc keyboard controller
pckbd*	at pckbc?		# PC keyboard
pms*		at pckbc?		# PS/2 mouse for wsmouse
wskbd*		at pckbd? console ?
wsmouse*	at pms?

attimer0	at isa?
pcppi0	at isa?
sysbeep0	at pcppi?

# ISA Plug-and-Play serial interfaces
com*	at isapnp?			# Modems and serial boards

# ISA Plug-and-Play network interfaces
ep*	at isapnp?			# 3Com 3c509 Ethernet
fmv*	at isapnp?			# Fujitsu FMV-183
ne*	at isapnp?			# NE2000 compat

# ISA serial interfaces
com0	at isa? port 0x3f8 irq 4	# Standard PC serial ports
com1	at isa? port 0x2f8 irq 3
#com2	at isa? port 0x3e8 irq 9
#com3	at isa? port 0x2e8 irq 10

# ISA parallel printer interfaces
lpt0	at isa? port 0x378 irq 7	# standard PC parallel ports
lpt1	at isa? port 0x278 irq 5
#lpt2	at isa? port 0x3bc

# ISA floppy
#fdc0	at isa? port 0x3f0 irq 6 drq 2	# standard PC floppy controllers
#fdc1	at isa? port 0x370 irq ? drq ?
#fd*	at fdc? drive ?			# the drives themselves

# ISA network interface
#ne0	at isa? port 0x280 irq 9
#ne1	at isa? port 0x300 irq 10
#ep*	at isa? port ? irq ?

# The spkr driver provides a simple tone interface to the built in speaker.
#spkr*	at pcppi?			# PC speaker
#spkr*	at audio?			# PC speaker (synthesized)

ds1687rtc0	at isa? port 0x72	# Dallas RTC

# ISA Plug-and-Play audio devices
#ess*	at isapnp?			# ESS Tech ES1887, ES1888, ES888 audio
#sb*	at isapnp?			# SoundBlaster-compatible audio
#wss*	at isapnp?			# Windows Sound System

# OPL[23] FM syntheziers
#opl*	at ess?
#opl*	at sb?

# Audio support
#audio*	at ess?
#audio*	at sb?
#audio*	at wss?

# MPU 401 UARTs
#mpu*	at sb?

# MIDI support
#midi*	at pcppi?		# MIDI interface to the PC speaker
#midi*	at sb?			# SB MPU401 port
#midi*	at opl?			# OPL FM synth
#midi*	at mpu?			# MPU 401

# Joysticks

# ISA Plug-and-Play joysticks
#joy*	at isapnp?			# Game ports (usually on audio cards)

# ISA joysticks. Probe is a little strange; add only if you have one.
#joy0	at isa? port 0x201

# Pseudo-Devices

# disk/mass storage pseudo-devices
pseudo-device	ccd			# concatenated/striped disk devices
#pseudo-device	fss			# file system snapshot device
pseudo-device	md			# memory disk device (ramdisk)
#pseudo-device	vnd			# disk-like interface to files

# network pseudo-devices
pseudo-device	bpfilter		# Berkeley packet filter
#pseudo-device	npf			# NPF packet filter
pseudo-device	loop			# network loopback
#pseudo-device	ppp			# Point-to-Point Protocol
#pseudo-device	sl			# Serial Line IP
#pseudo-device	strip			# Starmode Radio IP (Metricom)
#pseudo-device	tun			# network tunneling over tty

# miscellaneous pseudo-devices
pseudo-device	pty			# pseudo-terminals
#pseudo-device	sequencer		# MIDI sequencer
#options 	RND_COM			# use "com" randomness as well (BROKEN)
#pseudo-device	vcoda			# coda minicache <-> venus comm.

# mouse & keyboard multiplexor pseudo-devices
pseudo-device	wsmux
pseudo-device	wsfont

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