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
#	$NetBSD: files.hpcmips,v 1.108 2014/07/20 10:22:54 alnsn Exp $

# maxpartitions must be first item in files.${ARCH}.
maxpartitions 8

maxusers 2 8 64

#
# Stack-less Just-In-Time compiler
#

include	"external/bsd/sljit/conf/files.sljit"

#
# Machine-independent I2O drivers.
#

include "dev/i2o/files.i2o"

#
# Machine-independent SCSI drivers
#

include "dev/scsipi/files.scsipi"

#
# Machine-independent ATA drivers
#

include "dev/ata/files.ata"

#
# APM emulation
#

include "dev/hpc/files.hpcapm"
file	arch/hpcmips/hpcmips/hpcapm_machdep.c	hpcapm

#
# Bus-independent devices
#
device mainbus { [platform = -1] }: hpcapmif
attach mainbus at root

device cpu				# not optional
attach cpu at mainbus
file arch/hpcmips/hpcmips/cpu.c		cpu

# CPU support option headers
defflag	opt_vr41xx.h	VR41XX VR4101 VR4102 VR4111 VR4121 VR4122 VR4181 VR4131
defflag	opt_tx39xx.h	TX39XX TX3911 TX3912 TX3922

#
# CPU-dependent files
#
file	arch/hpcmips/vr/vr.c		vr41xx	# NEC VR4000 series
file	arch/hpcmips/vr/vr_idle.S	vr41xx
file	arch/hpcmips/tx/tx39.c		tx39xx	# TOSHIBA TX3900 series

file	arch/hpcmips/hpcmips/autoconf.c
file	arch/hpcmips/hpcmips/bus_dma.c
file	arch/hpcmips/hpcmips/bus_space.c
file	arch/hpcmips/hpcmips/bus_space_notimpl.c
file	arch/hpcmips/hpcmips/bus_space_through.c
file	arch/hpcmips/hpcmips/interrupt.c
file	arch/hpcmips/hpcmips/machdep.c
file	arch/hpcmips/hpcmips/mainbus.c

file	dev/bus_dma/bus_dmamem_common.c

file	dev/kloader.c				kloader
file	arch/hpcmips/hpcmips/kloader_machdep.c	kloader
file	arch/hpcmips/hpcmips/kloader_vr41.S	vr41xx & kloader
file	arch/hpcmips/hpcmips/kloader_tx39.S	tx39xx & kloader
defflag	opt_no_symbolsz_entry.h		NO_SYMBOLSZ_ENTRY
defflag	opt_kloader.h			KLOADER
defflag	debug_kloader.h			KLOADER_DEBUG
defparam opt_kloader_kernel_path.h	KLOADER_KERNEL_PATH

defparam opt_memsize.h			MEMSIZE

#
# H/PC Platform common files.
#
include "arch/hpc/conf/files.hpc"
file	arch/hpc/hpc/disksubr.c			disk
include "dev/hpc/files.bicons"
include "dev/hpc/files.hpcfb"
include "dev/hpc/files.hpckbd"
include "dev/hpc/files.hpctp"

#
# Debug utility
#
include "arch/hpc/conf/files.debug"

# Console autoconfiguration code: selects between a framebuffers
file	dev/cons.c

#
# ISA bus support
#
include "dev/pci/files.pci"	# XXX some ISA devs are 'at pci' too.
include "dev/isa/files.isa"

#
#  Vr41xx integrated peripherals
#
device vripif { [addr=-1], [size=-1], [addr2=-1], [size2=-1], [unit=-1], [pwctl=-1], [platform = -1] }
define vrip_common
file arch/hpcmips/vr/vrip.c		vrip_common needs-flag
file arch/hpcmips/vr/vrip_spl.S		vrip_common
device vrip: vripif
attach vrip at mainbus: vrip_common
device vr4102ip: vripif
attach vr4102ip at mainbus: vrip_common
file arch/hpcmips/vr/vr4102ip.c		vr4102ip
device vr4122ip: vripif
attach vr4122ip at mainbus: vrip_common
file arch/hpcmips/vr/vr4122ip.c		vr4122ip
device vr4181ip: vripif
attach vr4181ip at mainbus: vrip_common
file arch/hpcmips/vr/vr4181ip.c		vr4181ip

device vrbcu
attach vrbcu at vripif
file arch/hpcmips/vr/bcu_vrip.c			vrbcu needs-flag

device vrrtc
attach vrrtc at vripif
file arch/hpcmips/vr/rtc.c			vrrtc needs-flag

device vrcmu
attach vrcmu at vripif
file arch/hpcmips/vr/cmu.c			vrcmu needs-flag

include "dev/hpc/files.hpcio"
device	vrisabif {[platform = -1], [isaportoffset=0], [isamemoffset=0]}		# GIU attachment

device vrgiu: vrisabif, hpcioif
attach vrgiu at vripif
file arch/hpcmips/vr/vrgiu.c			vrgiu

device vr4181giu: vrisabif, hpcioif
attach vr4181giu at vripif
file arch/hpcmips/vr/vr4181giu.c		vr4181giu

device vrisab: isabus
attach vrisab at vrisabif
file arch/hpcmips/isa/isa_machdep.c		vrisab

device vrkiu: hpckbdif
attach vrkiu at vripif
file arch/hpcmips/vr/vrkiu.c			vrkiu needs-flag

device vrpmu
attach vrpmu at vripif
file arch/hpcmips/vr/vrpmu.c			vrpmu needs-flag

device vrdsu
attach vrdsu at vripif
file arch/hpcmips/vr/vrdsu.c			vrdsu needs-flag

device vrled
attach vrled at vripif
file arch/hpcmips/vr/vrled.c			vrled needs-flag

define	vrpiu_common
file arch/hpcmips/vr/vrpiu.c			vrpiu_common
device vrpiu: wsmousedev
attach vrpiu at vripif: hpctpanel, vrpiu_common
device vrc4173piu: wsmousedev
attach vrc4173piu at vripif: hpctpanel, vrpiu_common

device vrdsiu_mouse: wsmousedev
attach vrdsiu_mouse at vripif
file arch/hpcmips/vr/vrdsiu_mouse.c		vrdsiu_mouse

attach ohci at vripif with ohci_vrip
file arch/hpcmips/dev/ohci_vrip.c		ohci_vrip

device vrpciu: pcibus
attach vrpciu at vripif
file arch/hpcmips/vr/vrpciu.c			vrpciu needs-flag

defflag opt_mq200.h	MQ200_DEBUG MQ200_USECRT
device mqvideo: hpcfbif
attach mqvideo at vripif with mqvideo_vrip
file arch/hpcmips/vr/mq200_vrip.c		mqvideo_vrip
file arch/hpcmips/dev/mq200.c			mqvideo
file arch/hpcmips/dev/mq200subr.c		mqvideo
file arch/hpcmips/dev/mq200debug.c		mqvideo
file arch/hpcmips/dev/mq200machdep.c		mqvideo

attach mqvideo at pci with mqvideo_pci
file arch/hpcmips/dev/mq200_pci.c		mqvideo_pci

device ite8181video: hpcfbif, hpccmap
attach ite8181video at vripif with ite8181video_vrip
file arch/hpcmips/vr/ite8181_vrip.c		ite8181video_vrip
file arch/hpcmips/dev/ite8181.c			ite8181video

defflag opt_vrc4172pci.h	VRC4172PCI_MCR700_SUPPORT
device vrc4172pci: pcibus
attach vrc4172pci at vripif
file arch/hpcmips/vr/vrc4172pci.c		vrc4172pci

device vrc4172pwm
attach vrc4172pwm at vripif
file arch/hpcmips/vr/vrc4172pwm.c		vrc4172pwm needs-flag

device vrc4172gpio: hpcioif, vrisabif
attach vrc4172gpio at hpcioif
file arch/hpcmips/vr/vrc4172gpio.c		vrc4172gpio

device vrc4173cardu: pcmciabus
attach vrc4173cardu at pci
file arch/hpcmips/pci/vrc4173cardu.c		vrc4173cardu

device vrc4173bcu: vripif
attach vrc4173bcu at pci
file arch/hpcmips/vr/vrc4173bcu.c		vrc4173bcu

#
#	TOSHIBA TX3912/3922
#
defflag			TX39_WATCHDOGTIMER
defflag			TX39ICU_DEBUG
defflag			TX39CLOCK_DEBUG
defflag			TX39BIU_DEBUG
defflag			TX39POWER_DEBUG
defflag			TX39UART_DEBUG
defflag			USE_POLL

device txsim { }
device txcsbusif {[platform = -1]}
device txcomif {[slot = -1]}
device txsibif {[slot = -1]}
device txspiif {[slot = -1]}
device ucbif { }
device irif { }

attach txsim at mainbus
file arch/hpcmips/tx/txsim.c		txsim
file arch/hpcmips/tx/txsnd.c		txsim

device tx39biu: txcsbusif
attach tx39biu at txsim
file arch/hpcmips/tx/tx39biu.c		tx39biu

device txcsbus {[regcs=-1], [regcsbase=0], [regcssize=-1], [regcswidth=-1], [iocs=-1], [iocsbase=0], [iocssize=-1], [iocswidth=-1], [memcs=-1], [memcsbase=0], [memcssize=-1], [memcswidth=-1], [irq1=-1], [irq2=-1], [irq3=-1]}
attach txcsbus at txcsbusif
file arch/hpcmips/tx/txcsbus.c		txcsbus

device tx39icu
attach tx39icu at txsim
file arch/hpcmips/tx/tx39icu.c		tx39icu

device tx39power
attach tx39power at txsim
file arch/hpcmips/tx/tx39power.c	tx39power

device tx39clock
attach tx39clock at txsim
file arch/hpcmips/tx/tx39clock.c	tx39clock

device tx3912video: hpcfbif
attach tx3912video at txsim
file arch/hpcmips/tx/tx3912video.c	tx3912video

device tx39io
attach tx39io at txsim
file arch/hpcmips/tx/tx39io.c		tx39io

device txioman: hpcioif
attach txioman at txsim
file arch/hpcmips/tx/txioman.c		txioman

device tx39sib: txsibif
attach tx39sib at txsim
file arch/hpcmips/tx/tx39sib.c		tx39sib

device tx39spi: txspiif
attach tx39spi at txsim
file arch/hpcmips/tx/tx39spi.c		tx39spi

#	PHILIPS UCB1200 / TOSHIBA TC35413F (modem/audio analog front-end)
device ucb: ucbif
attach ucb at txsibif
file arch/hpcmips/dev/ucb1200.c		ucb

device ucbtp: wsmousedev
attach ucbtp at ucbif: hpctpanel
file arch/hpcmips/dev/ucbtp.c		ucbtp

device ucbsnd
attach ucbsnd at ucbif
file arch/hpcmips/dev/ucbsnd.c		ucbsnd		needs-flag

device ucbio
attach ucbio at ucbif
file arch/hpcmips/dev/ucbio.c		ucbio

device tx39uart: txcomif
attach tx39uart at txsim
file arch/hpcmips/tx/tx39uart.c		tx39uart	needs-flag

device txcom: irif
attach txcom at txcomif
file arch/hpcmips/tx/txcom.c		txcom

device tx39ir
attach tx39ir at irif
file arch/hpcmips/tx/tx39ir.c		tx39ir

#	ITE IT8368E PCMCIA / TOSHIBA TC6345AF buffer chip (PCMCIA)
device it8368e: pcmciabus
attach it8368e at txcsbus
file arch/hpcmips/dev/it8368.c		it8368e

#	MITUBISHI M38813 keryboard controller
device m38813c: hpckbdif
attach m38813c at txcsbus
file arch/hpcmips/dev/m38813c.c		m38813c		needs-flag

#	PHILIPS 74ALVC16241 / TOSHIBA TC5165BTFS buffer driver (keyboard)
device tc5165buf: hpckbdif
attach tc5165buf at txcsbus
file arch/hpcmips/dev/tc5165buf.c	tc5165buf	needs-flag

#	TOSHIBA TC6358E(Plum2)
device plumif {}
device plum: plumif
attach plum at txcsbus
file arch/hpcmips/dev/plum.c		plum

device plumicu
attach plumicu at plumif
file arch/hpcmips/dev/plumicu.c		plumicu

device plumpower
attach plumpower at plumif
file arch/hpcmips/dev/plumpower.c	plumpower

device plumvideo: hpcfbif
attach plumvideo at plumif
file arch/hpcmips/dev/plumvideo.c	plumvideo

device plumpcmcia: pcmciabus
attach plumpcmcia at plumif
file arch/hpcmips/dev/plumpcmcia.c	plumpcmcia

device plumiobusif {[platform = -1], [slot = -1]}
device plumiobus: plumiobusif
attach plumiobus at plumif
file arch/hpcmips/dev/plumiobus.c	plumiobus

device plumisab: isabus
attach plumisab at plumiobusif
file arch/hpcmips/isa/plumisa_machdep.c	plumisab

# OHCI USB controller
attach	ohci at plumif with plumohci
file	arch/hpcmips/dev/plumohci.c	plumohci	needs-flag

#device txisab: isabus
#attach txisab at txcsbus
#file arch/hpcmips/isa/txisa_machdep.c	txisab

file	dev/hpc/video_subr.c		tx3912video | plumvideo

# Sharp Telios LCD and battery control driver
device	teliosio
attach	teliosio at txcsbus
file	arch/hpcmips/dev/teliosio.c	teliosio

#
#	Real-time clock (not optional)
#
file	arch/hpcmips/hpcmips/clock.c

# Floppy disk controller
device	fdc {drive = -1}
#attach	fdc at isa
#device	fd: disk, isadma
device	fd: disk
#attach	fd at fdc
file	arch/i386/isa/fd.c		fdc needs-flag

# XXXX pcic here because it needs to be late.  The catch: pcic needs
# to be late, so devices which attach to it are attached late.  But it
# needs to be before its isa and pci attachments.  This answer is
# non-optimal, but I don't have a better answer right now.

# PCIC pcmcia contoller
# XXX this needs to be done very late, so it's done here.  This feels
# like a kludge, but it might be for the best.

defparam		PCIC_ISA_ALLOC_IOBASE
defparam		PCIC_ISA_ALLOC_IOSIZE
defparam		PCIC_ISA_INTR_ALLOC_MASK

device	pcic: pcmciabus
file	dev/ic/i82365.c			pcic

#
# PCIC pcmcia controller
#
attach	pcic at isa with pcic_isa
file	dev/isa/i82365_isa.c			pcic_isa
file	dev/isa/i82365_isasubr.c		pcic_isa

# PCIC pcmcia controller on vrip bus.
attach	pcic at vripif with pcic_vrip
file	arch/hpcmips/vr/vrecu.c			pcic_vrip

#
# Machine-independent PCMCIA drivers
#
include "dev/pcmcia/files.pcmcia"

# Serial Interface Unit
attach com at vripif with com_vrip
file	arch/hpcmips/vr/com_vrip.c		com_vrip needs-flag

attach com at hpcioif with com_hpcio
file arch/hpcmips/dev/com_hpcio.c		com_hpcio needs-flag

# Memory Disk for boot tape
file dev/md_root.c				memory_disk_hooks

include "dev/usb/files.usb"

# DMA Address Unit
device vrdmaau
attach vrdmaau at vripif
file arch/hpcmips/vr/vrdmaau.c	vrdmaau

# DMA Controll Unit
device vrdcu
attach vrdcu at vripif
file arch/hpcmips/vr/vrdcu.c	vrdcu

# Audio Interface Unit
device vraiu: audiobus
attach vraiu at vripif
file arch/hpcmips/vr/vraiu.c	vraiu

# VR4181 Audio Interface Unit
device vr4181aiu
attach vr4181aiu at vripif
file arch/hpcmips/vr/vr4181aiu.c	vr4181aiu	needs-flag

# Flash memory on L-card+	XXX should not be here
device vrflash
attach vrflash at vripif with flash_vrip
file arch/hpcmips/vr/flash_vrip.c	flash_vrip	needs-flag

# OptPoint on Telios HC-AJ2
device optpoint : wsmousedev
attach optpoint at txspiif
file arch/hpcmips/dev/optpoint.c	optpoint

file arch/hpcmips/pci/pci_machdep.c

include "arch/hpcmips/conf/majors.hpcmips"