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
#
#	$NetBSD: GENERIC,v 1.119 2023/05/04 13:39:51 bouyer Exp $
#
#	GENERIC ARM (aarch32) kernel
#

include	"arch/evbarm/conf/std.generic"
include "arch/evbarm/conf/files.generic"
include	"arch/evbarm/conf/GENERIC.common"

options 	CPU_CORTEX

options 	SOC_AM33XX
options 	SOC_BCM2836
options 	SOC_EXYNOS5422
options 	SOC_IMX6DL
options 	SOC_IMX6Q
options 	SOC_IMX6QDL
options 	SOC_IMX6SX
options 	SOC_IMX7D
options 	SOC_MESON8B
options 	SOC_OMAP3
options 	SOC_RK3288
options 	SOC_SUN4I_A10
options 	SOC_SUN5I_A13
options 	SOC_SUN6I_A31
options 	SOC_SUN7I_A20
options 	SOC_SUN8I_A83T
options 	SOC_SUN8I_H3
options 	SOC_SUN8I_V3S
options 	SOC_SUN9I_A80
options 	SOC_TEGRA124
options 	SOC_ZYNQ7000

options 	MULTIPROCESSOR

pseudo-device 	openfirm	# /dev/openfirm

#options 	DIAGNOSTIC	# internal consistency checks
#options 	DEBUG
#options 	LOCKDEBUG
#options 	UVMHIST		# kernhist for uvm/pmap subsystems
#options 	PCI_CONFIG_DUMP	# verbosely dump PCI config space

options 	MSGBUFSIZE=32768

#options 	VERBOSE_INIT_ARM # verbose bootstrapping messages

# EARLYCONS is required for early init messages from VERBOSE_INIT_ARM.

#options 	EARLYCONS=am33xx, CONSADDR=0x44e09000

# RaspberryPIs
#options 	EARLYCONS=bcm2835, CONSADDR=0x20201000
#options 	EARLYCONS=bcm2836, CONSADDR=0x3f201000
#options 	EARLYCONS=bcm2837, CONSADDR=0x3f215040

#options 	EARLYCONS=cycv, CONSADDR=0xffc02000

# ODROID-U3
#options 	EARLYCONS=exynos, CONSADDR=0x13810000

# ODROID-XU lite
#options 	EARLYCONS=exynos, CONSADDR=0x12c20000

#options 	EARLYCONS=imx, CONSADDR=0x02020000

# PICO-PI-IMX7
#options	EARLYCONS=imx, CONSADDR=0x30a70000 # serial4

# ODROID-C1
#options 	EARLYCONS=meson, CONSADDR=0xc81004c0

#options 	EARLYCONS=omap3, CONSADDR=0x49020000
#options 	EARLYCONS=rk3328, CONSADDR=0xff130000
#options 	EARLYCONS=sunxi, CONSADDR=0x01c28000

# TEGRA TK1
#options 	EARLYCONS=tegra, CONSADDR=0x70006300

#options 	EARLYCONS=vexpress, CONSADDR=0x1c090000
#options 	EARLYCONS=zynq, CONSADDR=0xe0001000
#options 	EARLYCONS=rk3288, CONSADDR=0xff690000

# The QEMU virt machine
#options 	EARLYCONS=plcom, CONSADDR=0x09000000

# Kernel Undefined Behavior Sanitizer (kUBSan). Use UBSAN_ALWAYS_FATAL
# if you want panics instead of warnings.
#options 	KUBSAN			# mandatory
#options 	UBSAN_ALWAYS_FATAL	# optional

# Kernel Address Sanitizer (kASan). The quarantine is optional and can
# help KASAN find more use-after-frees. Use KASAN_PANIC if you want panics
# instead of warnings.
#makeoptions 	KASAN=1		# mandatory
#options 	KASAN		# mandatory
#options 	POOL_QUARANTINE	# optional
#options 	KASAN_PANIC	# optional

# These options enable verbose messages for several subsystems.
# Warning, these may compile large string tables into the kernel!
#options 	ACPIVERBOSE	# verbose ACPI configuration messages
#options 	MIIVERBOSE	# verbose PHY autoconfig messages
#options 	PCIVERBOSE	# verbose PCI device autoconfig messages
#options 	PCMCIAVERBOSE	# verbose PCMCIA configuration messages
#options 	SCSIVERBOSE	# human readable SCSI error messages
#options 	USBVERBOSE	# verbose USB device autoconfig messages

makeoptions 	DEBUG="-g"	# compile full symbol table
makeoptions 	COPY_SYMTAB=1

config		netbsd		root on ? type ?

# EFI runtime support
options 	EFI_RUNTIME
#pseudo-device	efi		# /dev/efi

# Device tree support
armfdt0		at root
simplebus*	at fdt? pass 0

# CPUs
cpus*		at fdt? pass 0
cpu*		at fdt? pass 0

# CPU frequency scaling
tegra124cpu* 	at cpu?
cpufreqdt* 	at cpu?

# Power State Coordination Interface (PSCI)
psci* 		at fdt?

# Clock and reset controllers
am3prcm* 	at fdt? pass 1		# TI AM335x PRCM
cycvclkmgr* 	at fdt? pass 1		# Cyclone V clock manager
cycvrstmgr* 	at fdt? pass 0		# Cyclone V reset manager
exy5410clk* 	at fdt? pass 3		# Exynos5410 clock controller
exy5422clk* 	at fdt? pass 3		# Exynos5422 clock controller
imx6ccm* 	at fdt? pass 1		# i.MX6Q* CCM
imx6sxccm* 	at fdt? pass 1		# i.MX6SX CCM
imx7dccm* 	at fdt? pass 2		# i.MX7D CCM
meson8bclkc* 	at fdt? pass 2		# Amlogic Meson8b clock controller
mesonresets* 	at fdt? pass 2		# Amlogic Meson misc. clock resets
omap3cm* 	at fdt? pass 1		# TI OMAP3 CM
omap3prm* 	at fdt? pass 1		# TI OMAP3 PRM
rkcru*		at fdt? pass 2		# Rockchip RK3288 CRU
sun4ia10ccu* 	at fdt? pass 2		# Allwinner A10/A20 CCU
sun5ia13ccu* 	at fdt? pass 2		# Allwinner A13 CCU
sun6ia31ccu* 	at fdt? pass 2		# Allwinner A31 CCU
sun8ia83tccu* 	at fdt? pass 2		# Allwinner A83T CCU
sun8ih3ccu* 	at fdt? pass 2		# Allwinner H3 CCU
sun8ih3rccu* 	at fdt? pass 2		# Allwinner H3 CCU (PRCM)
sun8iv3sccu* 	at fdt? pass 2		# Allwinner V3s CCU
sun9ia80ccu* 	at fdt? pass 2		# Allwinner A80 CCU
sunxiresets* 	at fdt? pass 1		# Allwinner Misc. clock resets
sunxigates* 	at fdt? pass 1		# Allwinner Misc. clock gates
sunxigmacclk* 	at fdt? pass 2		# Allwinner GMAC MII/RGMII clock mux
sun8iapbclk* 	at fdt? pass 2		# Allwinner A23 APB0
sun9icpusclk* 	at fdt? pass 2		# Allwinner A80 CPUS
sun9immcclk* 	at fdt? pass 2		# Allwinner A80 SD/MMC-COMM
sun9iusbclk* 	at fdt? pass 2		# Allwinner A80 USB HCI
tegra124car* 	at fdt? pass 3		# NVIDIA Tegra CAR (T124)
tegra210car* 	at fdt? pass 3		# NVIDIA Tegra CAR (T210)
tidivclk* 	at fdt? pass 1		# TI divider clock
tidpllclk* 	at fdt? pass 2		# TI DPLL clock
timuxclk* 	at fdt? pass 1		# TI mux clock
zynqclk*	at fdt? pass 1		# Xilinx Zynq PS clocks

fclock* 	at fdt? pass 1
ffclock* 	at fdt? pass 1
fregulator* 	at fdt? pass 5
gregulator* 	at fdt? pass 4
gpiokeys* 	at fdt?
wskbd* 		at gpiokeys? console ? mux 1
gpioleds* 	at fdt?

# 
imxsnvs*	at fdt? pass 1		# Secure Non-Volatile Storage

# ARM Motherboard Express uATX system registers
vxsysreg* 	at fdt?

# SRAM controller
sunxisramc* 	at fdt? pass 4		# SRAM controller

# System Controller
imxocotp0 	at fdt? pass 2		# On-Chip OTP Controller
syscon*		at fdt? pass 1		# Generic System Controller
tisysc*		at fdt? pass 2		# TI sysc interconnect

# Timer
a9ptmr* 	at fdt? pass 2		# ARM Cortex A5/A9 Private Timer
arma9ptmr* 	at a9ptmr?
a9tmr* 		at fdt? pass 2		# ARM Cortex A5/A9 Timer
arma9tmr* 	at a9tmr?
gtmr* 		at fdt? pass 1		# ARM Generic Timer
armgtmr0 	at gtmr?
mct* 		at fdt? pass 2		# Exynos Multi Core Timer (MCT)
armgtmr* 	at mct?
omaptimer* 	at fdt?			# TI OMAP Timer
meson6timer* 	at fdt?			# Amlogic Timer
sunxitimer* 	at fdt?			# Allwinner async timer
sunxihstimer* 	at fdt?			# Allwinner High-Speed timer
tegratimer* 	at fdt?			# Timers

# Watchdog
a9wdt*  	at fdt? pass 2		# ARM Cortex A5/A9 Watchdog
arma9wdt* 	at a9wdt?
bcmpmwdog* 	at fdt?			# Broadcom BCM283x watchdog
dwcwdt* 	at fdt?			# DesignWare watchdog
imxwdog*	at fdt?			# NXP i.MX watchdog
mesonwdt* 	at fdt?			# Amlogic Meson watchdog
sunxiwdt* 	at fdt?			# Allwinner watchdog
tiwdt* 		at fdt?			# TI OMAP watchdog

# Interrupt controller
gic* 		at fdt? pass 1		# ARM GIC
armgic0 	at gic?
bcmicu* 	at fdt? pass 1		# Broadcom BCM283x ICU
exyointr* 	at fdt? pass 1		# Samsung Exynos ICU
imxgpc* 	at fdt? pass 2		# i.MX General Power Controller INTC
imx7gpc* 	at fdt? pass 2		# i.MX General Power Controller v2 INTC
omapintc* 	at fdt? pass 2		# TI OMAP INTC
tegralic* 	at fdt? pass 1		# NVIDIA Tegra LIC
sunxiintc* 	at fdt? pass 1		# Allwinner INTC
sunxinmi* 	at fdt? pass 2		# Allwinner NMI / R_INTC

# Level 2 Cache Controller
l2cc* 		at fdt? pass 2		# ARM Cortex A9 L2 Cache Controller
arml2cc* 	at l2cc?

# Memory controller
tegramc* 	at fdt?	pass 4		# NVIDIA Tegra MC
tigpmc* 	at fdt? pass 4		# TI OMAP2 GPMC

# Firmware devices
bcmmbox* 	at fdt?			# Broadcom VideoCore IV mailbox
qemufwcfg* 	at fdt?			# QEMU Firmware Configuration device
vcmbox* 	at bcmmbox?

# DMA controller
bcmdmac* 	at fdt?			# Broadcom BCM283x DMA controller
sun4idma* 	at fdt? pass 4		# Allwinner DMA controller (sun4i)
sun6idma* 	at fdt?	pass 4		# Allwinner DMA controller (sun6i)
tegraapbdma* 	at fdt? pass 4		# NVIDIA Tegra APB DMA
tiedma* 	at fdt? pass 4		# TI EDMA3 (TPCC)
titptc* 	at fdt? pass 3		# TI EDMA3 (TPTC)

# FUSE controller
tegrafuse* 	at fdt? pass 4		# NVIDIA Tegra FUSE

# Power management controller
imxgpc*		at fdt? pass 2
tegrapmc* 	at fdt? pass 4		# NVIDIA Tegra PMC

# Performance monitors
armpmu* 	at fdt?
pseudo-device 	tprof

# Clock and Reset controller
bcmcprman* 	at fdt? pass 1		# Broadcom BCM283x Clock Manager
bcmaux* 	at fdt? pass 1		# Broadcom BCM283x Aux Periph Clocks

# GPIO controller
bcmgpio* 	at fdt?			# Broadcom BCM283x GPIO
exyopctl* 	at fdt? pass 2		# Samsung Exynos GPIO
imxgpio* 	at fdt? pass 3		# i.MX GPIO
mesonpinctrl* 	at fdt? pass 2		# Amlogic Meson GPIO
plgpio* 	at fdt?			# ARM PrimeCell GPIO
sunxigpio* 	at fdt? pass 3		# Allwinner GPIO
rkgpio*		at rkiomux?		# Rockchip GPIO
tegragpio* 	at fdt? pass 2		# NVIDIA Tegra GPIO
tigpio* 	at fdt? pass 2		# TI GPIO
zynqgpio*	at fdt? pass 2		# Xilinx Zynq GPIO
gpio* 		at gpiobus?

# IOMUX / MPIO / Pinmux
pinctrl* 	at fdt? pass 2		# Generic pinctrl driver
imxiomux* 	at fdt? pass 2		# i.MX IOMUX
rkiomux*	at fdt? pass 3		# Rockchip IOMUX
tegrapinmux* 	at fdt?			# NVIDIA Tegra MPIO

# PWM controller
expwm* 		at fdt? pass 4		# PWM
imxpwm* 	at fdt?			# i.MX PWM
rkpwm*		at fdt? pass 3		# Rockchip PWM
sunxipwm* 	at fdt? pass 3		# Allwinner PWM

# Backlight
pwmbacklight* 	at fdt?			# PWM Backlight controls

# Fan
pwmfan* 	at fdt?			# PWM Fan controls

# XUSB PADCTL
tegra124xpad* 	at fdt?			# NVIDIA Tegra XUSB PADCTL (T124)
tegra210xpad* 	at fdt?			# NVIDIA Tegra XUSB PADCTL (T210)
tegra210xphy* 	at tegra210xpad?

# PCIE
imxpcie* 	at fdt?			# i.MX PCIE
pcihost* 	at fdt?			# Generic PCI host controller
tegrapcie0 	at fdt?			# NVIDIA Tegra PCIE
pci* 		at pcibus?
ppb* 		at pci? dev ? function ?
pci* 		at ppb?

# Ethernet
awge* 		at fdt?			# Allwinner Gigabit Ethernet (GMAC)
cemac* 		at fdt?			# Cadence EMAC/GEM ethernet controller
cpsw*		at fdt?			# TI CPSW 3-port Ethernet Switch
emac* 		at fdt?			# Allwinner Fast/Gigabit Ethernet (EMAC)
enet*		at fdt?			# i.MX FEC
smsh* 		at fdt?			# SMSC LAN9118

# PCI Ethernet
re* 		at pci? dev ? function ?	# Realtek RTL8111GS

# MII/PHY support
atphy* 		at mii? phy ?		# Attansic/Atheros 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
ihphy* 		at mii? phy ?		# Intel 82577 PHYs
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
micphy*		at mii? phy ?		# Micrel KSZ[89]xxx 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
rdcphy* 	at mii? phy ?		# RDC R6040 10/100 PHY
rgephy* 	at mii? phy ?		# Realtek 8169S/8110S internal PHYs
rlphy* 		at mii? phy ?		# Realtek 8139/8201L PHYs
smscphy* 	at mii? phy ?		# SMSC LAN87xx PHYs
sqphy* 		at mii? phy ?		# Seeq 80220/80221/80223 PHYs
tlphy* 		at mii? phy ?		# ThunderLAN PHYs
tqphy* 		at mii? phy ?		# TDK Semiconductor PHYs
urlphy* 	at mii? phy ?		# Realtek RTL8150L internal PHYs
ukphy* 		at mii? phy ?		# generic unknown PHYs

# Mini-PCIe Wireless
#options 	ATHHAL_AR5212,ATHHAL_RF2425	# AR5BHB63
#ath* 		at pci? dev ? function ?	# Atheros IEEE 802.11
#athn* 		at pci? dev ? function ?	# Atheros IEEE 802.11

# UART
com* 		at fdt?	pass 4		# UART
exuart* 	at fdt?	pass 4		# SSCOM UART
imxuart* 	at fdt?	pass 4		# i.MX UART
options 	IMXUARTCONSOLE
mesonuart* 	at fdt?	pass 4		# Amlogic Meson UART
plcom* 		at fdt?	pass 4		# ARM PL011 UART
zynquart* 	at fdt?	pass 4		# Cadence UART

# I2C controllers
options 	I2C_MAX_ADDR=0xfff
bsciic* 	at fdt?			# Broadcom BCM283x Serial Control
cdnsiic*	at fdt? pass 4		# Cadence I2C
exyoi2c* 	at fdt?			# Samsung Exynos I2C
imxi2c* 	at fdt? pass 4		# i.MX I2C
rkiic*		at fdt? pass 4		# Rockchip I2C
sunxirsb* 	at fdt? pass 4		# Allwinner RSB
sunxitwi* 	at fdt?			# Allwinner TWI
tegrai2c* 	at fdt? pass 4		# NVIDIA Tegra I2C
tiiic* 		at fdt? pass 4		# TI OMAP I2C
iicmux* 	at fdt? pass 5		# I2C mux virtual controllers
iic* 		at i2cbus?

# I2C devices
ac100ic* 	at iic?			# AC100 integrated audio codec and RTC
as3722pmic* 	at iic?
as3722reg* 	at as3722pmic?
axp20x* 	at iic?			# AXP209 Power Management IC
axp20xreg* 	at axp20x?
axp22x* 	at iic?			# AXP221 Power Management IC
axppmic* 	at iic?			# X-Powers AXP Power Management IC
axpreg* 	at axppmic?
dsrtc*		at iic?			# Dallas Semiconductor RTCs
em3027rtc* 	at iic?
lmtemp*		at iic?			# National Semiconductor LM7x
max77620pmic* 	at iic?
pcaiicmux*	at iic?			# PCA954x / PCA984x I2C switch / mux
pcf8563rtc* 	at iic?			# PCF8563 RTC
rkpmic*		at iic?			# Rockchip Power Management IC
seeprom* 	at iic?			# AT24Cxx Serial EEPROM
sy8106a* 	at iic?			# Silergy SY81061 regulator
tcakp* 		at iic?			# TI TCA8418 Keypad Scan IC
tcagpio* 	at iic?
tdahdmi* 	at iic?			# NXP TDA19988 HDMI encoder
titemp* 	at iic?
tps65217pmic* 	at iic?			# TI TPS65217 Power Management IC
tps65217reg* 	at tps65217pmic?
twl* 		at iic?			# TI TWL4030 Power Management IC
wskbd* 		at tcakp? console ?

# CAN bus
options 	CAN			# Controller Area Network protocol
pseudo-device 	canloop			# CAN loopback interface
sunxican* 	at fdt?			# A10/A20 CAN controller

# SPI
imxspi* 	at fdt?			# i.MX SPI
rkspi*		at fdt?			# Rockchip SPI
sun4ispi* 	at fdt?
sun6ispi* 	at fdt?
spi* 		at spibus?
spi* 		at imxspi?

# SPI NOR-Flash
spiflash* 	at spiflashbus?
m25p* 		at spi? slave ?

# Random number generators
bcmrng* 	at fdt?			# Broadcom BCM283x RNG
mesonrng* 	at fdt?			# Amlogic Meson RNG
tirng* 		at fdt?			# TI RNG
rkv1crypto*	at fdt?			# Rockchip Crypto v1
sun8icrypto* 	at fdt?			# Allwinner Crypto Engine

# Security ID EFUSE
sunxisid* 	at fdt? pass 4		# SID

# Low res ADC
sunxilradc* 	at fdt?

# RTC
#exyortc* 	at fdt?			# RTC
mesonrtc* 	at fdt?			# Amlogic Meson RTC
plrtc* 		at fdt?			# ARM PrimeCell RTC
sunxirtc* 	at fdt?			# Allwinner RTC
tegrartc* 	at fdt?			# NVIDIA Tegra RTC

# Thermal sensor
sunxithermal* 	at fdt?			# Thermal sensor controller
zynqxadc*	at fdt?			# Xilinx 7 series ADC

# BCM2835 VCHIQ, etc
vchiq0 		at fdt?
vcaudio0 	at vchiq0

# Audio
a64acodec* 	at fdt?			# Allwinner A64 audio codec (analog part)
aaci* 		at fdt?			# ARM PrimeCell AACI
ausoc* 		at fdt?			# Simple SoC audio card
h3codec* 	at fdt?			# Allwinner H3 audio codec (analog part)
v3scodec* 	at fdt?			# Allwinner V3s audio codec (analog part)
hdaudio* 	at fdt?			# Intel HDA
hdafg* 		at hdaudiobus?
options 	HDAUDIOVERBOSE
sun8icodec* 	at fdt?			# Audio codec (sun8i)
sunxicodec* 	at fdt?			# Allwinner audio codec
sunxii2s* 	at fdt?			# I2S/PCM
audio* 		at audiobus?
spkr* 		at audio?

# SDMMC
bcmsdhost* 	at fdt?			# Broadcom BCM283x SD Host Interface
dwcmmc* 	at fdt?			# DesignWare SDMMC
mesonsdio* 	at fdt?			# Amlogic Meson SDIO controller
mesonsdhc* 	at fdt?			# Amlogic Meson SDHC controller
mmcpwrseq* 	at fdt?			# Simple MMC power sequence provider
plmmc* 		at fdt?			# ARM PrimeCell MCI
sdhc* 		at fdt?			# SD Host Controller Interface
sunximmc* 	at fdt?			# Allwinner SD/MMC
sdmmc* 		at sdmmcbus?
ld0 		at sdmmc0
ld1 		at sdmmc1
ld2 		at sdmmc2
ld3 		at sdmmc3
ld* 		at sdmmc?
bwfm* 		at sdmmc?		# Broadcom BCM43xxx WiFi Interface

# NAND Flash
sunxinand* 	at fdt?			# Allwinner NAND flash controller
omapnand* 	at fdt?			# TI OMAP2 flash controller
nand* 		at nandbus?
flash* 		at nand? dynamic 1

# SATA
ahcisata* 	at fdt?			# AHCI SATA
ahcisata* 	at pci? dev ? function ?
atabus* 	at ata?
atabus* 	at ahcisata? channel ?
atapibus* 	at atapi?
wd* 		at atabus? drive ?

# ATAPI devices
# flags have the same meaning as for IDE drives.
cd* 		at atapibus? drive ? flags 0x0000	# 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

# NVMe
nvme* 		at pci? dev ? function ?
ld* 		at nvme? nsid ?

# SPI controllers
bcmspi* 	at fdt?			# Broadcom BCM283x SPI
spi* 		at spibus?

# HDMI CEC
tegracec0 	at fdt?			# NVIDIA Tegra HDMI CEC
hdmicec* 	at hdmicecbus?

# Display
#tegradrm* 	at fdt?			# NVIDIA Tegra Display
#tegrafb* 	at tegrafbbus?
dwhdmi* 	at fdt?			# Designware HDMI TX
genfb* 		at fdt?			# Simple Framebuffer
mesonfb* 	at fdt?			# Amlogic Meson Framebuffer
omapfb* 	at fdt?			# TI OMAP3 Framebuffer
wsdisplay* 	at wsemuldisplaydev?
sunxidebe* 	at fdt? pass 4		# Display Backend
genfb* 		at sunxidebe?
sunxitcon* 	at fdt? pass 4		# LCD LVDS/RGB controller
sunxihdmi* 	at fdt? pass 4		# HDMI controller
connector* 	at fdt? pass 4
panel* 		at fdt? pass 4
#sunxidep must be after display pipeline elements but before genfb@fdt
sunxidep* 	at fdt? pass 5		# Display Engine Pipeline
tilcdc* 	at fdt?			# TI OMAP4 LCDC
tifb* 		at tilcdc?

options 	VCONS_DRAW_INTR
options 	WSEMUL_VT100
options 	WSDISPLAY_CUSTOM_OUTPUT
options 	WS_DEFAULT_FG=WSCOL_WHITE
options 	WS_DEFAULT_BG=WSCOL_BLACK
options 	WS_KERNEL_FG=WSCOL_GREEN
options 	WS_KERNEL_BG=WSCOL_BLACK
options 	WSDISPLAY_COMPAT_PCVT
options 	WSDISPLAY_COMPAT_SYSCONS
options 	WSDISPLAY_COMPAT_USL
options 	WSDISPLAY_COMPAT_RAWKBD
options 	WSDISPLAY_DEFAULTSCREENS=4
options 	WSDISPLAY_MULTICONS
options 	WSDISPLAY_SCROLLSUPPORT
pseudo-device	wsmux
pseudo-device	wsfont
options 	FONT_BOLD8x16
options 	FONT_BOLD16x32

# GPU
#nouveau* 	at fdt?			# NVIDIA GPU

# PS/2 keyboard and mouse support
plkmi* 		at fdt?
pckbd* 		at pckbport?
wskbd* 		at pckbd? console ?
pms* 		at pckbport?
wsmouse* 	at pms? mux 0

# Touch Screen controller
sunxits* 	at fdt?			# Touch Screen controller
wsmouse* 	at sunxits? mux 0

# Thermal throttling controller
tegrasoctherm* 	at fdt?			# NVIDIA Tegra SOC_THERM

# USB
exusbphy* 	at fdt? pass 9		# Samsung Exynos USB2 PHY
exusbdrdphy* 	at fdt? pass 9		# Samsung Exynos USB3 DRD PHY
imxusbphy* 	at fdt? pass 9		# i.MX USB PHY
mesonusbphy* 	at fdt? pass 9		# Amlogic Meson USB2 PHY
rk3288usb*	at fdt? pass 9		# Rockchip USB PHY
rk3288usbphy*	at rk3288usb?
sun9iusbphy* 	at fdt? pass 9		# Allwinner A80 USB PHY
sunxiusbphy* 	at fdt? pass 9		# Allwinner USB PHY
sunxiusb3phy* 	at fdt? pass 9		# Allwinner USB3 PHY
tegrausbphy* 	at fdt?			# NVIDIA Tegra USB PHY
usbnopphy* 	at fdt? pass 9		# Generic USB PHY

imxusbc* 	at fdt?
tiotg* 		at fdt?			# TI dual port OTG
tiusb* 		at fdt? pass 9		# TI HS USB host
tiusbtll* 	at fdt? pass 8		# TI HS USB host TLL

dwctwo* 	at fdt?			# Designware USB DRD
ehci* 		at fdt?			# EHCI
ehci* 		at imxusbc?
motg* 		at fdt?			# Mentor Graphics USB OTG
ohci* 		at fdt?			# OHCI
xhci* 		at fdt?			# XHCI
usb* 		at usbus?

# Virtio devices
virtio* 	at fdt?				# Virtio MMIO device
virtio* 	at pci? dev ? function ?	# Virtio PCI device
# the balloon driver cannot 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

# SCSI
scsibus* at scsi?
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

# SPI NOR flash support
m25p* 		at spi?
spiflash* 	at spiflashbus?

include "dev/usb/usbdevices.config"
midi* 		at midibus?
pseudo-device	sequencer			# MIDI sequencer

# Bluetooth USB Controllers
ubt* at uhub? port ?

# Bluetooth Device Hub
bthub* at bcsp?
bthub* at btuart?
bthub* at bthfive?
bthub* at ubt?

include "dev/bluetooth/bluetoothdevices.config"

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