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
# SPDX-License-Identifier: GPL-2.0-only
menu "IRQ chip support"

config CONFIG_IRQCHIP
	def_bool y
	depends on CONFIG_OF_IRQ

config CONFIG_ARM_GIC
	bool
	select CONFIG_IRQ_DOMAIN_HIERARCHY
	select CONFIG_GENERIC_IRQ_MULTI_HANDLER
	select CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK

config CONFIG_ARM_GIC_PM
	bool
	depends on CONFIG_PM
	select CONFIG_ARM_GIC

config CONFIG_ARM_GIC_MAX_NR
	int
	depends on CONFIG_ARM_GIC
	default 2 if CONFIG_ARCH_REALVIEW
	default 1

config CONFIG_ARM_GIC_V2M
	bool
	depends on CONFIG_PCI
	select CONFIG_ARM_GIC
	select CONFIG_PCI_MSI

config CONFIG_GIC_NON_BANKED
	bool

config CONFIG_ARM_GIC_V3
	bool
	select CONFIG_GENERIC_IRQ_MULTI_HANDLER
	select CONFIG_IRQ_DOMAIN_HIERARCHY
	select CONFIG_PARTITION_PERCPU
	select CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK

config CONFIG_ARM_GIC_V3_ITS
	bool
	select CONFIG_GENERIC_MSI_IRQ_DOMAIN
	default CONFIG_ARM_GIC_V3

config CONFIG_ARM_GIC_V3_ITS_PCI
	bool
	depends on CONFIG_ARM_GIC_V3_ITS
	depends on CONFIG_PCI
	depends on CONFIG_PCI_MSI
	default CONFIG_ARM_GIC_V3_ITS

config CONFIG_ARM_GIC_V3_ITS_FSL_MC
	bool
	depends on CONFIG_ARM_GIC_V3_ITS
	depends on CONFIG_FSL_MC_BUS
	default CONFIG_ARM_GIC_V3_ITS

config CONFIG_ARM_NVIC
	bool
	select CONFIG_IRQ_DOMAIN_HIERARCHY
	select CONFIG_GENERIC_IRQ_CHIP

config CONFIG_ARM_VIC
	bool
	select CONFIG_IRQ_DOMAIN
	select CONFIG_GENERIC_IRQ_MULTI_HANDLER

config CONFIG_ARM_VIC_NR
	int
	default 4 if CONFIG_ARCH_S5PV210
	default 2
	depends on CONFIG_ARM_VIC
	help
	  The maximum number of VICs available in the system, for
	  power management.

config CONFIG_ARMADA_370_XP_IRQ
	bool
	select CONFIG_GENERIC_IRQ_CHIP
	select CONFIG_PCI_MSI if CONFIG_PCI
	select CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK

config CONFIG_ALPINE_MSI
	bool
	depends on CONFIG_PCI
	select CONFIG_PCI_MSI
	select CONFIG_GENERIC_IRQ_CHIP

config CONFIG_AL_FIC
	bool "Amazon's Annapurna Labs Fabric Interrupt Controller"
	depends on CONFIG_OF || CONFIG_COMPILE_TEST
	select CONFIG_GENERIC_IRQ_CHIP
	select CONFIG_IRQ_DOMAIN
	help
	  Support Amazon's Annapurna Labs Fabric Interrupt Controller.

config CONFIG_ATMEL_AIC_IRQ
	bool
	select CONFIG_GENERIC_IRQ_CHIP
	select CONFIG_IRQ_DOMAIN
	select CONFIG_GENERIC_IRQ_MULTI_HANDLER
	select CONFIG_SPARSE_IRQ

config CONFIG_ATMEL_AIC5_IRQ
	bool
	select CONFIG_GENERIC_IRQ_CHIP
	select CONFIG_IRQ_DOMAIN
	select CONFIG_GENERIC_IRQ_MULTI_HANDLER
	select CONFIG_SPARSE_IRQ

config CONFIG_I8259
	bool
	select CONFIG_IRQ_DOMAIN

config CONFIG_BCM6345_L1_IRQ
	bool
	select CONFIG_GENERIC_IRQ_CHIP
	select CONFIG_IRQ_DOMAIN
	select CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK

config CONFIG_BCM7038_L1_IRQ
	bool
	select CONFIG_GENERIC_IRQ_CHIP
	select CONFIG_IRQ_DOMAIN
	select CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK

config CONFIG_BCM7120_L2_IRQ
	bool
	select CONFIG_GENERIC_IRQ_CHIP
	select CONFIG_IRQ_DOMAIN

config CONFIG_BRCMSTB_L2_IRQ
	bool
	select CONFIG_GENERIC_IRQ_CHIP
	select CONFIG_IRQ_DOMAIN

config CONFIG_DAVINCI_AINTC
	bool
	select CONFIG_GENERIC_IRQ_CHIP
	select CONFIG_IRQ_DOMAIN

config CONFIG_DAVINCI_CP_INTC
	bool
	select CONFIG_GENERIC_IRQ_CHIP
	select CONFIG_IRQ_DOMAIN

config CONFIG_DW_APB_ICTL
	bool
	select CONFIG_GENERIC_IRQ_CHIP
	select CONFIG_IRQ_DOMAIN

config CONFIG_FARADAY_FTINTC010
	bool
	select CONFIG_IRQ_DOMAIN
	select CONFIG_GENERIC_IRQ_MULTI_HANDLER
	select CONFIG_SPARSE_IRQ

config CONFIG_HISILICON_IRQ_MBIGEN
	bool
	select CONFIG_ARM_GIC_V3
	select CONFIG_ARM_GIC_V3_ITS

config CONFIG_IMGPDC_IRQ
	bool
	select CONFIG_GENERIC_IRQ_CHIP
	select CONFIG_IRQ_DOMAIN

config CONFIG_IXP4XX_IRQ
	bool
	select CONFIG_IRQ_DOMAIN
	select CONFIG_GENERIC_IRQ_MULTI_HANDLER
	select CONFIG_SPARSE_IRQ

config CONFIG_MADERA_IRQ
	tristate

config CONFIG_IRQ_MIPS_CPU
	bool
	select CONFIG_GENERIC_IRQ_CHIP
	select CONFIG_GENERIC_IRQ_IPI if CONFIG_SYS_SUPPORTS_MULTITHREADING
	select CONFIG_IRQ_DOMAIN
	select CONFIG_IRQ_DOMAIN_HIERARCHY if CONFIG_GENERIC_IRQ_IPI
	select CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK

config CONFIG_CLPS711X_IRQCHIP
	bool
	depends on CONFIG_ARCH_CLPS711X
	select CONFIG_IRQ_DOMAIN
	select CONFIG_GENERIC_IRQ_MULTI_HANDLER
	select CONFIG_SPARSE_IRQ
	default y

config CONFIG_OMPIC
	bool

config CONFIG_OR1K_PIC
	bool
	select CONFIG_IRQ_DOMAIN

config CONFIG_OMAP_IRQCHIP
	bool
	select CONFIG_GENERIC_IRQ_CHIP
	select CONFIG_IRQ_DOMAIN

config CONFIG_ORION_IRQCHIP
	bool
	select CONFIG_IRQ_DOMAIN
	select CONFIG_GENERIC_IRQ_MULTI_HANDLER

config CONFIG_PIC32_EVIC
	bool
	select CONFIG_GENERIC_IRQ_CHIP
	select CONFIG_IRQ_DOMAIN

config CONFIG_JCORE_AIC
	bool "J-Core integrated AIC" if CONFIG_COMPILE_TEST
	depends on CONFIG_OF
	select CONFIG_IRQ_DOMAIN
	help
	  Support for the J-Core integrated AIC.

config CONFIG_RDA_INTC
	bool
	select CONFIG_IRQ_DOMAIN

config CONFIG_RENESAS_INTC_IRQPIN
	bool "Renesas INTC External IRQ Pin Support" if CONFIG_COMPILE_TEST
	select CONFIG_IRQ_DOMAIN
	help
	  Enable support for the Renesas Interrupt Controller for external
	  interrupt pins, as found on SH/R-Mobile and R-Car Gen1 SoCs.

config CONFIG_RENESAS_IRQC
	bool "Renesas R-Mobile APE6 and R-Car IRQC support" if CONFIG_COMPILE_TEST
	select CONFIG_GENERIC_IRQ_CHIP
	select CONFIG_IRQ_DOMAIN
	help
	  Enable support for the Renesas Interrupt Controller for external
	  devices, as found on R-Mobile APE6, R-Car Gen2, and R-Car Gen3 SoCs.

config CONFIG_RENESAS_RZA1_IRQC
	bool "Renesas RZ/A1 IRQC support" if CONFIG_COMPILE_TEST
	select CONFIG_IRQ_DOMAIN_HIERARCHY
	help
	  Enable support for the Renesas RZ/CONFIG_A1 Interrupt Controller, to use up
	  to 8 external interrupts with configurable sense select.

config CONFIG_ST_IRQCHIP
	bool
	select CONFIG_REGMAP
	select CONFIG_MFD_SYSCON
	help
	  Enables SysCfg Controlled IRQs on STi based platforms.

config CONFIG_TANGO_IRQ
	bool
	select CONFIG_IRQ_DOMAIN
	select CONFIG_GENERIC_IRQ_CHIP

config CONFIG_TB10X_IRQC
	bool
	select CONFIG_IRQ_DOMAIN
	select CONFIG_GENERIC_IRQ_CHIP

config CONFIG_TS4800_IRQ
	tristate "TS-4800 IRQ controller"
	select CONFIG_IRQ_DOMAIN
	depends on CONFIG_HAS_IOMEM
	depends on CONFIG_SOC_IMX51 || CONFIG_COMPILE_TEST
	help
	  Support for the TS-4800 CONFIG_FPGA IRQ controller

config CONFIG_VERSATILE_FPGA_IRQ
	bool
	select CONFIG_IRQ_DOMAIN

config CONFIG_VERSATILE_FPGA_IRQ_NR
       int
       default 4
       depends on CONFIG_VERSATILE_FPGA_IRQ

config CONFIG_XTENSA_MX
	bool
	select CONFIG_IRQ_DOMAIN
	select CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK

config CONFIG_XILINX_INTC
	bool
	select CONFIG_IRQ_DOMAIN

config CONFIG_IRQ_CROSSBAR
	bool
	help
	  Support for a CROSSBAR ip that precedes the main interrupt controller.
	  The primary irqchip invokes the crossbar's callback which inturn allocates
	  a free irq and configures the IP. Thus the peripheral interrupts are
	  routed to one of the free irqchip interrupt lines.

config CONFIG_KEYSTONE_IRQ
	tristate "Keystone 2 IRQ controller IP"
	depends on CONFIG_ARCH_KEYSTONE
	help
		Support for Texas Instruments Keystone 2 IRQ controller IP which
		is part of the Keystone 2 IPC mechanism

config CONFIG_MIPS_GIC
	bool
	select CONFIG_GENERIC_IRQ_IPI
	select CONFIG_IRQ_DOMAIN_HIERARCHY
	select CONFIG_MIPS_CM

config CONFIG_INGENIC_IRQ
	bool
	depends on CONFIG_MACH_INGENIC
	default y

config CONFIG_INGENIC_TCU_IRQ
	bool "Ingenic JZ47xx TCU interrupt controller"
	default CONFIG_MACH_INGENIC
	depends on CONFIG_MIPS || CONFIG_COMPILE_TEST
	select CONFIG_MFD_SYSCON
	select CONFIG_GENERIC_IRQ_CHIP
	help
	  Support for interrupts in the Timer/Counter Unit (TCU) of the Ingenic
	  JZ47xx SoCs.

	  If unsure, say N.

config CONFIG_RENESAS_H8300H_INTC
        bool
	select CONFIG_IRQ_DOMAIN

config CONFIG_RENESAS_H8S_INTC
	bool "Renesas H8S Interrupt Controller Support" if CONFIG_COMPILE_TEST
	select CONFIG_IRQ_DOMAIN
	help
	  Enable support for the Renesas H8/300 Interrupt Controller, as found
	  on Renesas H8S SoCs.

config CONFIG_IMX_GPCV2
	bool
	select CONFIG_IRQ_DOMAIN
	help
	  Enables the wakeup IRQs for IMX platforms with GPCv2 block

config CONFIG_IRQ_MXS
	def_bool y if CONFIG_MACH_ASM9260 || CONFIG_ARCH_MXS
	select CONFIG_IRQ_DOMAIN
	select CONFIG_STMP_DEVICE

config CONFIG_MSCC_OCELOT_IRQ
	bool
	select CONFIG_IRQ_DOMAIN
	select CONFIG_GENERIC_IRQ_CHIP

config CONFIG_MVEBU_GICP
	bool

config CONFIG_MVEBU_ICU
	bool

config CONFIG_MVEBU_ODMI
	bool
	select CONFIG_GENERIC_MSI_IRQ_DOMAIN

config CONFIG_MVEBU_PIC
	bool

config CONFIG_MVEBU_SEI
        bool

config CONFIG_LS_SCFG_MSI
	def_bool y if CONFIG_SOC_LS1021A || CONFIG_ARCH_LAYERSCAPE
	depends on CONFIG_PCI && CONFIG_PCI_MSI

config CONFIG_PARTITION_PERCPU
	bool

config CONFIG_EZNPS_GIC
	bool "NPS400 Global Interrupt Manager (GIM)"
	depends on CONFIG_ARC || (CONFIG_COMPILE_TEST && !CONFIG_64BIT)
	select CONFIG_IRQ_DOMAIN
	help
	  Support the EZchip NPS400 global interrupt controller

config CONFIG_STM32_EXTI
	bool
	select CONFIG_IRQ_DOMAIN
	select CONFIG_GENERIC_IRQ_CHIP

config CONFIG_QCOM_IRQ_COMBINER
	bool "QCOM IRQ combiner support"
	depends on CONFIG_ARCH_QCOM && CONFIG_ACPI
	select CONFIG_IRQ_DOMAIN_HIERARCHY
	help
	  Say yes here to add support for the IRQ combiner devices embedded
	  in Qualcomm Technologies chips.

config CONFIG_IRQ_UNIPHIER_AIDET
	bool "UniPhier AIDET support" if CONFIG_COMPILE_TEST
	depends on CONFIG_ARCH_UNIPHIER || CONFIG_COMPILE_TEST
	default CONFIG_ARCH_UNIPHIER
	select CONFIG_IRQ_DOMAIN_HIERARCHY
	help
	  Support for the UniPhier AIDET (CONFIG_ARM Interrupt Detector).

config CONFIG_MESON_IRQ_GPIO
       bool "Meson GPIO Interrupt Multiplexer"
       depends on CONFIG_ARCH_MESON
       select CONFIG_IRQ_DOMAIN_HIERARCHY
       help
         Support Meson SoC Family GPIO Interrupt Multiplexer

config CONFIG_GOLDFISH_PIC
       bool "Goldfish programmable interrupt controller"
       depends on CONFIG_MIPS && (CONFIG_GOLDFISH || CONFIG_COMPILE_TEST)
       select CONFIG_IRQ_DOMAIN
       help
         Say yes here to enable Goldfish interrupt controller driver used
         for Goldfish based virtual platforms.

config CONFIG_QCOM_PDC
	bool "QCOM PDC"
	depends on CONFIG_ARCH_QCOM
	select CONFIG_IRQ_DOMAIN_HIERARCHY
	help
	  Power Domain Controller driver to manage and configure wakeup
	  IRQs for Qualcomm Technologies Inc (QTI) mobile chips.

config CONFIG_CSKY_MPINTC
	bool "C-SKY Multi Processor Interrupt Controller"
	depends on CONFIG_CSKY
	help
	  Say yes here to enable CONFIG_C-SKY CONFIG_SMP interrupt controller driver used
	  for CONFIG_C-SKY CONFIG_SMP system.
	  In fact it's not mmio map in hw and it use ld/st to visit the
	  controller's register inside CPU.

config CONFIG_CSKY_APB_INTC
	bool "C-SKY APB Interrupt Controller"
	depends on CONFIG_CSKY
	help
	  Say yes here to enable CONFIG_C-SKY APB interrupt controller driver used
	  by CONFIG_C-SKY single core SOC system. It use mmio map apb-bus to visit
	  the controller's register.

config CONFIG_IMX_IRQSTEER
	bool "i.MX IRQSTEER support"
	depends on CONFIG_ARCH_MXC || CONFIG_COMPILE_TEST
	default CONFIG_ARCH_MXC
	select CONFIG_IRQ_DOMAIN
	help
	  Support for the i.MX IRQSTEER interrupt multiplexer/remapper.

config CONFIG_LS1X_IRQ
	bool "Loongson-1 Interrupt Controller"
	depends on CONFIG_MACH_LOONGSON32
	default y
	select CONFIG_IRQ_DOMAIN
	select CONFIG_GENERIC_IRQ_CHIP
	help
	  Support for the Loongson-1 platform Interrupt Controller.

config CONFIG_TI_SCI_INTR_IRQCHIP
	bool
	depends on CONFIG_TI_SCI_PROTOCOL
	select CONFIG_IRQ_DOMAIN_HIERARCHY
	help
	  This enables the irqchip driver support for K3 Interrupt router
	  over TI System Control Interface available on some new TI's SoCs.
	  If you wish to use interrupt router irq resources managed by the
	  TI System Controller, say Y here. Otherwise, say N.

config CONFIG_TI_SCI_INTA_IRQCHIP
	bool
	depends on CONFIG_TI_SCI_PROTOCOL
	select CONFIG_IRQ_DOMAIN_HIERARCHY
	select CONFIG_TI_SCI_INTA_MSI_DOMAIN
	help
	  This enables the irqchip driver support for K3 Interrupt aggregator
	  over TI System Control Interface available on some new TI's SoCs.
	  If you wish to use interrupt aggregator irq resources managed by the
	  TI System Controller, say Y here. Otherwise, say N.

endmenu

config CONFIG_SIFIVE_PLIC
	bool "SiFive Platform-Level Interrupt Controller"
	depends on CONFIG_RISCV
	help
	   This enables support for the PLIC chip found in SiFive (and
	   potentially other) RISC-V systems.  The PLIC controls devices
	   interrupts and connects them to each core's local interrupt
	   controller.  Aside from timer and software interrupts, all other
	   interrupt sources are subordinate to the PLIC.

	   If you don't know what to do here, say Y.