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
#	$NetBSD: TS7200,v 1.73.4.1 2019/11/21 18:17:59 martin Exp $
#
#	TS7200 - Kernel for Technologic Systems TS7200 ARM hardware
#
#	Note - the kernel size for this hardware has two limitations:
#
#	1) The total size of the kernel (text, data, and bss) must fit
#	   within 8MB.  This is mainly an issue for the INSTALL kernel
#	   (TS7200_INSTALL)
#	2) If you wish to install this kernel in flash, the compressed size
#	   (including the gunzip booter) must fit within 1441792 bytes.
#
#	If you add new devices to this kernel, please check these limitations.
#

include	"arch/evbarm/conf/std.tsarm"

#options 	INCLUDE_CONFIG_FILE	# embed config file in kernel binary
options 	MSGBUFSIZE=65536
#options 	KSTACK_CHECK_MAGIC

# estimated number of users
maxusers	32

# Standard system options

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

# CPU options

options 	CPU_ARM9	# Support the ARM9TDMI core

# 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    FILECORE        # Acorn filecore file system
file-system	KERNFS		# /kern
#file-system	NULLFS		# loopback file system
file-system	PROCFS		# /proc
#file-system	PUFFS		# Userspace file systems (e.g. ntfs-3g & sshfs)
#file-system	UMAPFS		# NULLFS + uid and gid remapping
#file-system	UNION		# union file system
file-system	PTYFS		# /dev/pts/N support

# File system options
#options 	QUOTA		# legacy UFS quotas
#options 	QUOTA2		# new, in-filesystem UFS quotas
#options 	DISKLABEL_EI	# disklabel Endian Independent support
#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 	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_netbsd20.config"
options 	COMPAT_NETBSD32	# allow running arm (e.g. non-earm) binaries

# 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=3400	# Size in blocks
#options 	MEMORY_DISK_IS_ROOT	# use memory disk as root

# Console options.  The default console is speed is 115200 baud.
#options 	CONSPEED=9600		# Console speed

# 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 MII autoconfuration messages
#options 	PCI_CONFIG_DUMP	# verbosely dump PCI config space
#options 	DDB_KEYCODE=0x40
#options 	USERCONF	# userconf(4) support
#options	PIPE_SOCKETPAIR	# smaller, but slower pipe(2)

# Development and Debugging options

#options 	DIAGNOSTIC	# internal consistency checks
#options 	DEBUG
#options 	PMAP_DEBUG	# Enable pmap_debug_level code
#options 	VERBOSE_INIT_ARM # verbose bootstraping messages
options 	DDB		# in-kernel debugger
options 	DDB_ONPANIC=1
options 	DDB_HISTORY_SIZE=100	# Enable history editing in DDB
#makeoptions	DEBUG="-g"	# compile full symbol table
makeoptions	COPY_SYMTAB=1

##options 	PMAP_INCLUDE_PTE_SYNC
##options 	LOCKDEBUG

config		netbsd		root on ? type ?
config		netbsd-epe0	root on epe0 type nfs
config		netbsd-wd0	root on wd0 type ffs
#config		netbsd-sd0	root on sd0 type ffs

# The main bus device
mainbus0	at root

# The boot cpu
cpu0		at mainbus?

# Cirrus Logic EP93xx System-on-chip
epsoc0		at mainbus?
# On-chip timers
epclk0		at epsoc? addr 0x80810000 size 0x90 intr 35
# On-chip serial UARTS
epcom0		at epsoc? addr 0x808c0000 size 0x1000 intr 52
epcom1		at epsoc? addr 0x808d0000 size 0x1000 intr 54
# On-chip USB 1.1
ohci*		at epsoc? addr 0x80020000 size 0x1000 intr 56
# On-chip 10/100 Ethernet
epe0		at epsoc? addr 0x80010000 size 0x10000 intr 39
# On-board TS-7200 CPLD
tspld0		at mainbus?
# PC/104 bus
isa0		at tspld?
# CompactFlash interface
wdc0		at tspld?
# TS-5620 battery-backed real-time clock
tsrtc*		at tspld?
# On-board GPIO ports.  Note that only 20 total GPIO pins are available
# across all ports
epgpio0		at epsoc? addr 0x80840000 size 0xcc intr 59
gpio*		at epgpio?
options 	EPGPIO_PORT_C_MASK=0x00
options 	EPGPIO_PORT_D_MASK=0x00
options 	EPGPIO_PORT_E_MASK=0x00
options 	EPGPIO_PORT_F_MASK=0x02
options 	EPGPIO_PORT_G_MASK=0x00
options 	EPGPIO_PORT_H_MASK=0x38

# HD44780 LCD on LCD header
#tslcd*		at tspld?
#wsdisplay*	at tslcd? console ?

# 4x4 Matrix Keypad on DIO header
#tskp*		at tspld?
#wskbd*	at tskp? console ? mux 1

# TS-SER[1,2,4] multiport serial PC/104 cards
com0		at isa? port 0x3f8 irq 6        # Standard PC serial ports
com1		at isa? port 0x2f8 irq 6
com2		at isa? port 0x3e8 irq 6
com3		at isa? port 0x2e8 irq 6

wdc1	at isa? port 0x1f0 irq 7 flags 0x00
wdc2	at isa? port 0x170 irq 7 flags 0x00

tscs0	at isa? port 0x300 iomem ? irq ? drq ?  # TS-ETH10 PC/104 ethernet
tscs1	at isa? port 0x310 iomem ? irq ? drq ?
tscs2	at isa? port 0x320 iomem ? irq ? drq ?
tscs3	at isa? port 0x330 iomem ? irq ? drq ?

tsdio0  at isa? port 0x100 # TS-DIO24 general-purpose I/O
tsdio1  at isa? port 0x108
tsdio2  at isa? port 0x110
tsdio3  at isa? port 0x118

# PCMCIA bus support
#pcmcia* at pcic? controller ? socket ?

#options PCIC_ISA_INTR_ALLOC_MASK=0xe0
# ISA PCMCIA controllers
#pcic0	at isa? port 0x3e0 iomem 0xd0000 iosiz 0x10000
#pcic1	at isa? port 0x3e2 iomem 0xe0000 iosiz 0x4000
#pcic2	at isa? port 0x3e4 iomem 0xe0000 iosiz 0x4000

# 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 0x00ff

# ATAPI bus support
#atapibus* at atapi?

# ATAPI devices
# flags have the same meaning as for IDE drives.
# XXX No DMA on IDE devices for now
#cd*	at atapibus? drive ? flags 0x0ff0	# ATAPI CD-ROM drives
#sd*	at atapibus? drive ? flags 0x0000	# ATAPI disk drives
#st*	at atapibus? drive ? flags 0x0000	# ATAPI tape drives
#uk*	at atapibus? drive ? flags 0x0000	# ATAPI unknown

# MII/PHY support
#acphy*	at mii? phy ?			# Altima AC101 and AMD Am79c874 PHYs
#amhphy* at mii? phy ?			# AMD 79c901 Ethernet PHYs
#bmtphy* at mii? phy ?			# Broadcom BCM5201 and BCM5202 PHYs
#brgphy* at mii? phy ?			# Broadcom BCM5400-family 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
#glxtphy* at mii? phy ?			# Level One LXT-1000 PHYs
#gphyter* at mii? phy ?			# NS83861 Gig-E PHY
#icsphy* at mii? phy ?			# Integrated Circuit Systems ICS189x
#igphy*	at mii? phy ?			# Intel IGP01E1000
#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
#pnaphy* at mii? phy ?			# generic HomePNA 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
#urlphy* at mii? phy ?			# Realtek RTL8150L internal PHYs

# USB Controller and Devices

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

# 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? mux 0

# USB eGalax touch-panel
# uep*	at uhub? port ?
# wsmouse* at uep? mux 0

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

# 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 ?
#scsibus* at umass?
# 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 autochangers
#ses*    at scsibus? target ? lun ?      # SCSI Enclosure Services devices
#ss*     at scsibus? target ? lun ?      # SCSI scanners
#uk*     at scsibus? target ? lun ?      # SCSI unknown

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

# USB MIDI
#umidi* at uhub? port ? configuration ?

# USB IrDA
# USB-IrDA bridge spec
#uirda* at uhub? port ? configuration ? interface ?
#irframe* at uirda?

# SigmaTel STIr4200 USB/IrDA Bridge
#ustir* at uhub? port ?
#irframe* at ustir?

# 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
#udav*	at uhub? port ?		# Davicom DM9601 based adapters
#ure*	at uhub? port ?		# Realtek RTL8152/RTL8153 based adapters
#url*	at uhub? port ?		# Realtek RTL8150L based adapters

# Prolific PL2301/PL2302 host-to-host adapter
#upl*	at uhub? port ?

# Serial adapters
#ubsa*	at uhub? port ?		# Belkin serial adapter
#ucom*	at ubsa? portno ?

#uftdi*	at uhub? port ?		# FTDI FT8U100AX serial adapter
#ucom*	at uftdi? portno ?

#umct*	at uhub? port ?		# MCT USB-RS232 serial adapter
#ucom*	at umct? portno ?

#uplcom* at uhub? port ? 	# I/O DATA USB-RSAQ2 serial adapter
#ucom*	at uplcom? portno ?

#uvscom* at uhub? port ? 	# SUNTAC Slipper U VS-10U serial adapter
#ucom*	at uvscom? portno ?
#atu*	at uhub? port ?		# Atmel AT76C50XX 802.11b adapter

# Diamond Multimedia Rio 500
# urio*	at uhub? port ?

# USB Handspring Visor
# uvisor*	at uhub? port ?
# ucom*	at uvisor?

# Kyocera AIR-EDGE PHONE
#ukyopon* at uhub? port ?
#ucom*	at ukyopon? portno ?

# USB scanners
# uscanner* at uhub? port ?

# USB scanners that use SCSI emulation, e.g., HP5300
# usscanner* at uhub? port ?

# Y@P firmware loader
# uyap* at uhub? port ?

# D-Link DSB-R100 USB radio
# udsbr*	at uhub? port ?
# radio*	at udsbr?

# USB Generic driver
ugen*	at uhub? port ?

# IrDA and Consumer Ir devices

# Toshiba Oboe
# oboe* 	at pci? dev ? function ?
# irframe* at oboe?

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

#fw*	at fwbus?			# IP over 1394

# IEEE1394 nodes
#fwnode* at fwbus? idhi ? idlo ?
#sbpscsi* at fwnode?
#scsibus* at sbpscsi?

# Audio Devices

# OPL[23] FM synthesizers
#opl*	at cmpci? flags 1
#opl*	at eso?
#opl*	at fms?
#opl*	at sv?
#opl*	at yds?

# Audio support
#audio*	at audiobus?

#spkr*	at audio?			# PC speaker (synthesized)

# MPU 401 UARTs
#mpu*	at cmpci?
#mpu*	at eso?
#mpu*	at fms?
#mpu*	at yds?

# MIDI support
#midi*	at midibus?

# Pseudo-Devices

# disk/mass storage pseudo-devices
#pseudo-device	md			# memory disk device (ramdisk)
pseudo-device	vnd			# disk-like interface to files
#pseudo-device	fss			# file system snapshot device
#pseudo-device	putter			# for puffs and pud

# network pseudo-devices
pseudo-device	bpfilter		# Berkeley packet filter
pseudo-device	loop			# network loopback
pseudo-device	kttcp			# network loopback

# miscellaneous pseudo-devices
pseudo-device	pty			# pseudo-terminals
#options	RND_COM
pseudo-device	clockctl		# user control of clock subsystem
pseudo-device	ksyms			# /dev/ksyms

# data mover pseudo-devices
#pseudo-device	swdmover		# software dmover(9) back-end
#pseudo-device	dmoverio		# /dev/dmover dmover(9) interface

#
# wscons options
#
# builtin terminal emulations
#options 	WSEMUL_SUN		# sun terminal emulation
#options 	WSEMUL_VT100		# VT100 / VT220 emulation
# customization of console and kernel output - see dev/wscons/wsdisplayvar.h
#options 	WSDISPLAY_CUSTOM_OUTPUT	# color customization from wsconsctl(8)
#options 	WS_DEFAULT_FG=WSCOL_WHITE
#options 	WS_DEFAULT_BG=WSCOL_BLACK
#options 	WS_DEFAULT_COLATTR="(0)"
#options 	WS_DEFAULT_MONOATTR="(0)"
#options 	WS_KERNEL_FG=WSCOL_GREEN
#options 	WS_KERNEL_BG=WSCOL_BLACK
#options 	WS_KERNEL_COLATTR=""
#options 	WS_KERNEL_MONOATTR=""
# customization of console border color
#options 	WSDISPLAY_CUSTOM_BORDER	# border customization from wsconsctl(8)
#options 	WSDISPLAY_BORDER_COLOR=WSCOL_BLUE	# default color
# compatibility to other console drivers
#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/pckbport/wskbdmap_mfii.c for implemented layouts
#options 	PCKBD_LAYOUT="(KB_DE | KB_NODEAD)"
# allocate a number of virtual screens at autoconfiguration time
#options 	WSDISPLAY_DEFAULTSCREENS=4
# use a large software cursor that doesn't blink
#options 	PCDISPLAY_SOFTCURSOR
# modify the screen type of the console; defaults to "80x25"
#options 	VGA_CONSOLE_SCREENTYPE="\"80x24\""
# work around a hardware bug that loaded fonts don't work; found on ATI cards
#options 	VGA_CONSOLE_ATI_BROKEN_FONTSEL
# console scrolling support.
#options 	WSDISPLAY_SCROLLSUPPORT
# enable VGA raster mode capable of displaying multilingual text on console
#options 	VGA_RASTERCONSOLE

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