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
#	$NetBSD: files.usb,v 1.156.2.2 2020/04/12 08:44:42 martin Exp $
#
# Config file and device description for machine-independent USB code.
# Included by ports that need it.  Ports that use it must provide
# their own "major" declarations for the appropriate devices.

defflag	USBVERBOSE
defflag	opt_usb.h	USB_FRAG_DMA_WORKAROUND

# HC controllers
defflag	opt_usb.h	EHCI_DEBUG: USB_DEBUG
defflag	opt_usb.h	OHCI_DEBUG: USB_DEBUG
defflag	opt_usb.h	UHCI_DEBUG: USB_DEBUG
defflag	opt_usb.h	DWC2_DEBUG: USB_DEBUG
defflag	opt_usb.h	XHCI_DEBUG: USB_DEBUG
defflag	opt_usb.h	MOTG_DEBUG: USB_DEBUG
defflag	opt_usb.h	SLHCI_DEBUG: USB_DEBUG

# HUB driver
defflag opt_usb.h	UHUB_DEBUG: USB_DEBUG

# Device drivers

defflag opt_usb.h	ATU_DEBUG: USB_DEBUG
defflag opt_usb.h	AUE_DEBUG: USB_DEBUG
defflag opt_usb.h	AUVITEK_I2C_DEBUG: USB_DEBUG
defflag opt_usb.h	AXE_DEBUG: USB_DEBUG
defflag opt_usb.h	AXEN_DEBUG: USB_DEBUG
defflag opt_usb.h	CUE_DEBUG: USB_DEBUG
defflag opt_usb.h	EZLOAD_DEBUG: USB_DEBUG
defflag opt_usb.h	KUE_DEBUG: USB_DEBUG
defflag opt_usb.h	OTUS_DEBUG: USB_DEBUG
defflag opt_usb.h	RUM_DEBUG: USB_DEBUG
defflag opt_usb.h	RUN_DEBUG: USB_DEBUG
defflag opt_usb.h	UARK_DEBUG: USB_DEBUG
defflag opt_usb.h	UATP_DEBUG: USB_DEBUG
defflag opt_usb.h	UAUDIO_DEBUG: USB_DEBUG
defflag opt_usb.h	UBERRY_DEBUG: USB_DEBUG
defflag opt_usb.h	UBSA_DEBUG: USB_DEBUG
defflag opt_usb.h	UBT_DEBUG: USB_DEBUG
defflag opt_usb.h	UCHCOM_DEBUG: USB_DEBUG
defflag opt_usb.h	UCOM_DEBUG: USB_DEBUG
defflag opt_usb.h	UCYCOM_DEBUG: USB_DEBUG
defflag opt_usb.h	UDAV_DEBUG: USB_DEBUG
defflag opt_usb.h	UDL_DEBUG: USB_DEBUG
defflag opt_usb.h	UDSBR_DEBUG: USB_DEBUG
defflag opt_usb.h	UFTDI_DEBUG: USB_DEBUG
defflag opt_usb.h	UGENSA_DEBUG: USB_DEBUG
defflag opt_usb.h	UGEN_DEBUG: USB_DEBUG
defflag opt_usb.h	UHIDEV_DEBUG: USB_DEBUG
defflag opt_usb.h	UHID_DEBUG: USB_DEBUG
defflag opt_usb.h	UHMODEM_DEBUG: USB_DEBUG
defflag opt_usb.h	UHSO_DEBUG: USB_DEBUG
defflag opt_usb.h	UIPAD_DEBUG: USB_DEBUG
defflag opt_usb.h	UIPAQ_DEBUG: USB_DEBUG
defflag opt_usb.h	UIRDA_DEBUG: USB_DEBUG
defflag opt_usb.h	UISDATA_DEBUG: USB_DEBUG
defflag opt_usb.h	UKBD_DEBUG: USB_DEBUG
defflag opt_usb.h	UKYOPON_DEBUG: USB_DEBUG
defflag opt_usb.h	ULPT_DEBUG: USB_DEBUG
defflag opt_usb.h	UMASS_DEBUG: USB_DEBUG
defflag opt_usb.h	UMCT_DEBUG: USB_DEBUG
defflag opt_usb.h	UMIDIQUIRK_DEBUG: USB_DEBUG
defflag opt_usb.h	UMIDI_DEBUG: USB_DEBUG
defflag opt_usb.h	UMODEM_DEBUG: USB_DEBUG
defflag opt_usb.h	UMS_DEBUG: USB_DEBUG
defflag opt_usb.h	UPGT_DEBUG: USB_DEBUG
defflag opt_usb.h	UPLCOM_DEBUG: USB_DEBUG
defflag opt_usb.h	UPL_DEBUG: USB_DEBUG
defflag opt_usb.h	URAL_DEBUG: USB_DEBUG
defflag opt_usb.h	URIO_DEBUG: USB_DEBUG
defflag opt_usb.h	URL_DEBUG: USB_DEBUG
defflag opt_usb.h	URNDIS_DEBUG: USB_DEBUG
defflag opt_usb.h	URTWN_DEBUG: USB_DEBUG
defflag opt_usb.h	URTW_DEBUG: USB_DEBUG
defflag opt_usb.h	USCANNER_DEBUG: USB_DEBUG
defflag opt_usb.h	USLSA_DEBUG: USB_DEBUG
defflag opt_usb.h	USMSC_DEBUG: USB_DEBUG
defflag opt_usb.h	USSCANNER_DEBUG: USB_DEBUG
defflag opt_usb.h	USTIR_DEBUG: USB_DEBUG
defflag opt_usb.h	UTHUM_DEBUG: USB_DEBUG
defflag opt_usb.h	UTOPPY_DEBUG: USB_DEBUG
defflag opt_usb.h	UTS_DEBUG: USB_DEBUG
defflag opt_usb.h	UVIDEO_DEBUG: USB_DEBUG
defflag opt_usb.h	UVISOR_DEBUG: USB_DEBUG
defflag opt_usb.h	UVSCOM_DEBUG: USB_DEBUG
defflag opt_usb.h	UYUREX_DEBUG: USB_DEBUG
defflag opt_usb.h	ZYD_DEBUG: USB_DEBUG

define	usbroothubif { }
define	usbdevif { [port = -1], [configuration = -1], [interface = -1],
		   [vendor = -1], [product = -1], [release = -1] }
define	usbifif { [port = -1], [configuration = -1], [interface = -1],
		  [vendor = -1], [product = -1], [release = -1] }

device	usb: usbroothubif
attach	usb at usbus
file	dev/usb/usb.c			usb			needs-flag
file	dev/usb/usbdi.c			usb
file	dev/usb/usbdi_util.c		usb
file	dev/usb/usb_subr.c		usb
file	dev/usb/usb_quirks.c		usb

define	usb_dma: usb
file	dev/usb/usb_mem.c		usb_dma			needs-flag

define	usbnet: usb
file	dev/usb/usbnet.c		usbnet

file	dev/usb/usb_verbose.c		usbverbose & usb

# Hub driver
device	uhub: usbdevif, usbifif
attach	uhub at usbroothubif with uroothub
attach	uhub at usbdevif
file	dev/usb/uhub.c			usb

# Modem and com serial port "bus"
define	ucombus {[ portno = -1 ]}

# EZ-USB firmware loader
define	ezload
file	dev/usb/ezload.c		ezload

# Audio devices
device	uaudio: audiobus
attach	uaudio at usbifif
file	dev/usb/uaudio.c		uaudio

# MIDI devices
device	umidi: midibus
attach	umidi at usbifif
file	dev/usb/umidi.c			umidi
file	dev/usb/umidi_quirks.c		umidi

# Modem and com serial port
device	ucom
attach	ucom at ucombus
file	dev/usb/ucom.c			ucom | ucombus		needs-flag


# Generic devices
device	ugen
attach	ugen at usbdevif
device	ugenif
attach	ugenif at usbifif
file	dev/usb/ugen.c			ugen | ugenif		needs-flag


# HID
# HID "bus"
define	uhidbus {[ reportid = -1 ]}

# HID root device for multiple report IDs
device	uhidev: hid, uhidbus
attach	uhidev at usbifif
file	dev/usb/uhidev.c		uhidev

# Generic HID devices
device	uhid: hid
attach	uhid at uhidbus
file	dev/usb/uhid.c			uhid			needs-flag

# Keyboards
defparam	UKBD_LAYOUT
# Gdium's Fn key needs software translation
defflag		opt_ukbd.h 	GDIUM_KEYBOARD_HACK
device	ukbd: hid, wskbddev
attach	ukbd at uhidbus
file	dev/usb/ukbd.c			ukbd			needs-flag

# Mice
device	ums: hid, hidms, wsmousedev
attach	ums at uhidbus
file	dev/usb/ums.c			ums

# USB Apple trackpad
device	uatp: hid, wsmousedev
attach	uatp at uhidbus
file	dev/usb/uatp.c			uatp

# Touchscreens
device	uts: hid, wsmousedev, tpcalib
attach	uts at uhidbus
file	dev/usb/uts.c			uts

# eGalax USB Touch Panel
device	uep: wsmousedev, tpcalib
attach	uep at usbdevif
file	dev/usb/uep.c			uep			needs-flag

# Cypress microcontroller based serial adapters
device	ucycom: hid
attach	ucycom at uhidbus
file	dev/usb/ucycom.c		ucycom			needs-flag

# Printers
device	ulpt
attach	ulpt at usbifif
file	dev/usb/ulpt.c			ulpt			needs-flag


# Mass storage
device	umass: scsi, atapi, ata_hl
attach	umass at usbifif
file	dev/usb/umass.c			umass
file	dev/usb/umass_isdata.c		umass & wd & atabus
file	dev/usb/umass_quirks.c		umass
file	dev/usb/umass_scsipi.c		umass & (scsibus | atapibus)


# IrDA bridges
device	uirda: irbus
attach	uirda at usbifif
file	dev/usb/uirda.c			uirda | stuirda

# SigmaTel not quite UIRDA IrDA bridge
device	stuirda: irbus,firmload
attach	stuirda at usbifif
file	dev/usb/stuirda.c		stuirda

# SigmaTel IrDA bridge
device	ustir: irbus, irdasir
attach	ustir at usbdevif
file	dev/usb/ustir.c			ustir

# Windows Media Center IR tranceivers
device	irmce: irbus
attach	irmce at usbifif
file	dev/usb/irmce.c			irmce


# Bluetooth controllers
device	ubt: btbus, bluetooth
attach	ubt at usbdevif
file	dev/usb/ubt.c			ubt

# Atheros USB Bluetooth firmware load
device	aubtfwl: firmload
attach	aubtfwl at usbdevif
file	dev/usb/aubtfwl.c		aubtfwl

#
# Capture devices
#

# Sony PLAYSTATION(R) Eye
device	pseye: videobus
attach	pseye at usbifif
file	dev/usb/pseye.c			pseye

# USB Video Class capture devices
device	uvideo: videobus
attach	uvideo at usbifif
file	dev/usb/uvideo.c		uvideo

# Auvitek AU0828
device	auvitek: videobus, dtvbus, i2cbus, i2cexec, usbifif, au8522, xc5k
attach	auvitek at usbdevif
file	dev/usb/auvitek.c		auvitek
file	dev/usb/auvitek_audio.c		auvitek
file	dev/usb/auvitek_board.c		auvitek
file	dev/usb/auvitek_dtv.c		auvitek
file	dev/usb/auvitek_i2c.c		auvitek
file	dev/usb/auvitek_video.c		auvitek

# Empia EM28xx
device	emdtv: dtvbus, irbus, i2cexec, lg3303, xc3028
attach	emdtv at usbdevif
file	dev/usb/emdtv.c			emdtv
file	dev/usb/emdtv_board.c		emdtv
file	dev/usb/emdtv_dtv.c		emdtv
file	dev/usb/emdtv_i2c.c		emdtv
file	dev/usb/emdtv_ir.c		emdtv

#
# Misc
#

# Mode switch usb driver
device	umodeswitch
attach	umodeswitch at usbdevif
file	dev/usb/umodeswitch.c		umodeswitch

# Diamond Multimedia Rio 500
device	urio
attach	urio at usbdevif
file	dev/usb/urio.c			urio			needs-flag

# Apple iPad
device	uipad
attach	uipad at usbdevif
file	dev/usb/uipad.c				uipad

# BlackBerries
device	uberry
attach	uberry at usbdevif
file	dev/usb/uberry.c			uberry

# Handspring Visor
device	uvisor: ucombus
attach	uvisor at usbdevif
file	dev/usb/uvisor.c		uvisor

# Generic Serial Adapter
device	ugensa: ucombus
attach	ugensa at usbdevif
file	dev/usb/ugensa.c		ugensa

# 3G Modem
device	u3g: ucombus, umodeswitch
attach	u3g at usbifif
file	dev/usb/u3g.c			u3g

# YAP phone firmware loader
device	uyap: ezload
attach	uyap at usbdevif
file	dev/usb/uyap.c			uyap

# D-Link DSB-R100 FM radio
device	udsbr: radiodev
attach	udsbr at usbdevif
file	dev/usb/udsbr.c			udsbr

# Silicon Labs USB radio module (FM)
device	slurm: radiodev
attach	slurm at usbifif
file	dev/usb/slurm.c			slurm

# TEMPerHUM HID
device	uthum: hid, sysmon_envsys
attach	uthum at uhidbus
file	dev/usb/uthum.c			uthum

# Ethernet adapters
# ADMtek AN986 Pegasus
device	aue: arp, ether, ifnet, mii, mii_phy, usbnet
attach	aue at usbdevif
file	dev/usb/if_aue.c		aue

# CDC Ethernet
device	cdce: arp, ether, ifnet, usbnet
attach	cdce at usbifif
file	dev/usb/if_cdce.c		cdce

# CATC USB-EL1201A
device	cue: arp, ether, ifnet, usbnet
attach	cue at usbdevif
file	dev/usb/if_cue.c		cue

# Kawasaki LSI KL5KUSB101B
device	kue: arp, ether, ifnet, usbnet
attach	kue at usbdevif
file	dev/usb/if_kue.c		kue

# Prolific PL2302 host-host
device	upl: ifnet, usbnet
attach	upl at usbdevif
file	dev/usb/if_upl.c		upl

# Realtek RTL8150L(M)
device	url: arp, ether, ifnet, mii, usbnet
attach	url at usbdevif
file	dev/usb/if_url.c		url

# ASIX AX88172
device	axe: arp, ether, ifnet, mii, mii_phy, usbnet
attach	axe at usbdevif
file	dev/usb/if_axe.c		axe

# ASIX AX88178a and AX88179
device	axen: arp, ether, ifnet, mii, usbnet
attach	axen at usbdevif
file	dev/usb/if_axen.c		axen

# Microchip LAN750x and LAN85xx
device	mue: arp, ether, ifnet, mii, mii_phy, usbnet
attach	mue at usbdevif
file	dev/usb/if_mue.c		mue

# DAVICOM DM9601
device	udav: arp, ether, ifnet, mii, mii_phy, usbnet
attach	udav at usbdevif
file	dev/usb/if_udav.c		udav

# Atheros AR9170
device	otus: arp, ether, firmload, ifnet, wlan
attach	otus at usbdevif
file	dev/usb/if_otus.c		otus

# Mobile Broadband Interface Model
device	umb: ifnet
attach	umb at usbifif
file	dev/usb/if_umb.c		umb

# RealTek RTL8152 and RTL8153
device	ure: arp, ether, ifnet, mii, mii_phy, usbnet
attach	ure at usbdevif
file	dev/usb/if_ure.c		ure

# Serial drivers
# Modems
define	umodem_common
file	dev/usb/umodem_common.c		umodem_common
device	umodem: ucombus, umodem_common
attach	umodem at usbifif
file	dev/usb/umodem.c		umodem

# FTDI serial driver
device	uftdi: ucombus
attach	uftdi at usbifif
file	dev/usb/uftdi.c			uftdi

# Prolific PL2303 serial driver
device	uplcom: ucombus
attach	uplcom at usbdevif
file	dev/usb/uplcom.c		uplcom

# MCT USB-232 serial driver
device	umct: ucombus
attach	umct at usbdevif
file	dev/usb/umct.c			umct

# MOSCHIP MCS7xxx serial driver
device	umcs: ucombus
attach	umcs at usbdevif
file	dev/usb/umcs.c			umcs

# SUNTAC Slipper U VS-10U driver
device	uvscom: ucombus
attach	uvscom at usbdevif
file	dev/usb/uvscom.c		uvscom

# Exar XR21V141x serial driver (mostly CDC)
device	uxrcom: ucombus, umodem_common
attach	uxrcom at usbifif
file	dev/usb/uxrcom.c		uxrcom

# Belkin & other serial driver
define	ubsa_common
file	dev/usb/ubsa_common.c		ubsa_common
device	ubsa: ucombus, ubsa_common
attach	ubsa at usbdevif
file	dev/usb/ubsa.c			ubsa

# Huawei E220 3G/HSDPA modem (ubsa)
device	uhmodem: ucombus, ubsa_common
attach	uhmodem at usbifif
file	dev/usb/uhmodem.c		uhmodem

# iPAQ PDAs
device	uipaq: ucombus
attach	uipaq at usbdevif
file	dev/usb/uipaq.c			uipaq

# Kyocera AIR-EDGE PHONE
device	ukyopon: ucombus, umodem_common
attach	ukyopon at usbifif
file	dev/usb/ukyopon.c		ukyopon

# ArkMicroChips 3116 based serial (used with some Nokia USB cables too)
device	uark: ucombus
attach	uark at usbdevif
file	dev/usb/uark.c		uark

# Silicon Labs CP210x serial driver
device	uslsa: ucombus
attach	uslsa at usbifif
file	dev/usb/uslsa.c			uslsa

# WinChipHead CH341/340 serial driver
device	uchcom: ucombus
attach	uchcom at usbdevif
file	dev/usb/uchcom.c		uchcom

# Scanners
# Generic scanner support
device	uscanner
attach	uscanner at usbdevif
file	dev/usb/uscanner.c		uscanner		needs-flag

# Avision SCSI over USB, HP5300
device	usscanner: scsi
attach	usscanner at usbdevif
file	dev/usb/usscanner.c		usscanner

# Atmel AT76c503 / AT76c503a / AT76c505 / AT76c505a @ USB
device	atu: ether, ifnet, arp, wlan
attach	atu at usbdevif
file	dev/usb/if_atu.c		atu

# Intersil PrismGT
device	upgt: ether, ifnet, arp, wlan, firmload
attach	upgt at usbdevif
file	dev/usb/if_upgt.c		upgt

# SMSC LAN95xx
device	usmsc: arp, ether, ifnet, mii, mii_phy, usbnet
attach	usmsc at usbdevif
file	dev/usb/if_smsc.c		usmsc

# Ralink Technology RT2500USB
device	ural: arp, ether, ifnet, wlan, firmload
attach	ural at usbdevif
file	dev/usb/if_ural.c		ural

device	rum: ether, ifnet, arp, wlan, firmload
attach	rum at usbdevif
file	dev/usb/if_rum.c		rum

# Topfield digital PVRs
device	utoppy
attach	utoppy at usbdevif
file	dev/usb/utoppy.c		utoppy

# Zydas ZD1211
device	zyd: ether, ifnet, arp, wlan, firmload
attach	zyd at usbdevif
file	dev/usb/if_zyd.c		zyd

# DisplayLink DL-1x0/DL-1x5
device	udl: wsemuldisplaydev, rasops16, edid, firmload
attach	udl at usbdevif
file	dev/usb/udl.c			udl

# Wireless WAN modems from Option N.V.
device	uhso: ifnet
attach	uhso at usbdevif
file	dev/usb/uhso.c			uhso

# Maywa-denki/Kayac YUREX
device	uyurex: hid
attach	uyurex at uhidbus
file	dev/usb/uyurex.c		uyurex

# Microsoft RNDIS
device	urndis: arp, ether, ifnet, usbnet
attach	urndis at usbifif
file	dev/usb/if_urndis.c		urndis

# Realtek RTL8188CU/RTL8192CU
device	urtwn: ether, ifnet, arp, wlan, firmload
attach	urtwn at usbdevif
file	dev/usb/if_urtwn.c              urtwn

# Realtek RTL8187/RTL8187B 802.11b/g USB wireless adapter
device	urtw: ether, ifnet, arp, wlan
attach	urtw at usbdevif
file	dev/usb/if_urtw.c		urtw

# Ralink Technology RT2700U/RT2800U/RT3000U
device	run: ether, ifnet, arp, wlan, firmload
attach	run at usbdevif
file	dev/usb/if_run.c		run

# Atheros AR9002U
attach	athn at usbdevif with athn_usb: firmload
file	dev/usb/if_athn_usb.c		athn_usb		needs-flag

# Realtek RTL8188SU/RTL8191SU/RTL8192SU
device	rsu: arp, ether, firmload, ifnet, wlan
attach	rsu at usbdevif
file	dev/usb/if_rsu.c		rsu

# KingSun/DonShine IrDA adaptors
device	udsir: irbus, irdasir
attach	udsir at usbifif
file	dev/usb/udsir.c			udsir

# Araneus Alea II TRNG
device	ualea
attach	ualea at usbifif
file	dev/usb/ualea.c			ualea

# Broadcom FullMAC USB wireless adapter
attach	bwfm at usbdevif with bwfm_usb: firmload
file	dev/usb/if_bwfm_usb.c		bwfm_usb