hc
2023-11-06 15ade055295d13f95d49e3d99b09f3bbfb4a43e7
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
# SPDX-License-Identifier: GPL-2.0
#
# Character device configuration
#
 
menu "Character devices"
 
source "drivers/tty/Kconfig"
 
config DEVMEM
   bool "/dev/mem virtual device support"
   default y
   help
     Say Y here if you want to support the /dev/mem device.
     The /dev/mem device is used to access areas of physical
     memory.
     When in doubt, say "Y".
 
config DEVKMEM
   bool "/dev/kmem virtual device support"
   # On arm64, VMALLOC_START < PAGE_OFFSET, which confuses kmem read/write
   depends on !ARM64
   help
     Say Y here if you want to support the /dev/kmem device. The
     /dev/kmem device is rarely used, but can be used for certain
     kind of kernel debugging operations.
     When in doubt, say "N".
 
config SGI_SNSC
   bool "SGI Altix system controller communication support"
   depends on (IA64_SGI_SN2 || IA64_GENERIC)
   help
     If you have an SGI Altix and you want to enable system
     controller communication from user space (you want this!),
     say Y.  Otherwise, say N.
 
config SGI_TIOCX
       bool "SGI TIO CX driver support"
       depends on (IA64_SGI_SN2 || IA64_GENERIC)
       help
         If you have an SGI Altix and you have fpga devices attached
         to your TIO, say Y here, otherwise say N.
 
config SGI_MBCS
       tristate "SGI FPGA Core Services driver support"
       depends on SGI_TIOCX
       help
         If you have an SGI Altix with an attached SABrick
         say Y or M here, otherwise say N.
 
source "drivers/tty/serial/Kconfig"
source "drivers/tty/serdev/Kconfig"
 
config TTY_PRINTK
   tristate "TTY driver to output user messages via printk"
   depends on EXPERT && TTY
   default n
   ---help---
     If you say Y here, the support for writing user messages (i.e.
     console messages) via printk is available.
 
     The feature is useful to inline user messages with kernel
     messages.
     In order to use this feature, you should output user messages
     to /dev/ttyprintk or redirect console to this TTY.
 
     If unsure, say N.
 
config PRINTER
   tristate "Parallel printer support"
   depends on PARPORT
   ---help---
     If you intend to attach a printer to the parallel port of your Linux
     box (as opposed to using a serial printer; if the connector at the
     printer has 9 or 25 holes ["female"], then it's serial), say Y.
     Also read the Printing-HOWTO, available from
     <http://www.tldp.org/docs.html#howto>.
 
     It is possible to share one parallel port among several devices
     (e.g. printer and ZIP drive) and it is safe to compile the
     corresponding drivers into the kernel.
 
     To compile this driver as a module, choose M here and read
     <file:Documentation/admin-guide/parport.rst>.  The module will be called lp.
 
     If you have several parallel ports, you can specify which ports to
     use with the "lp" kernel command line option.  (Try "man bootparam"
     or see the documentation of your boot loader (lilo or loadlin) about
     how to pass options to the kernel at boot time.)  The syntax of the
     "lp" command line option can be found in <file:drivers/char/lp.c>.
 
     If you have more than 8 printers, you need to increase the LP_NO
     macro in lp.c and the PARPORT_MAX macro in parport.h.
 
config LP_CONSOLE
   bool "Support for console on line printer"
   depends on PRINTER
   ---help---
     If you want kernel messages to be printed out as they occur, you
     can have a console on the printer. This option adds support for
     doing that; to actually get it to happen you need to pass the
     option "console=lp0" to the kernel at boot time.
 
     If the printer is out of paper (or off, or unplugged, or too
     busy..) the kernel will stall until the printer is ready again.
     By defining CONSOLE_LP_STRICT to 0 (at your own risk) you
     can make the kernel continue when this happens,
     but it'll lose the kernel messages.
 
     If unsure, say N.
 
config PPDEV
   tristate "Support for user-space parallel port device drivers"
   depends on PARPORT
   ---help---
     Saying Y to this adds support for /dev/parport device nodes.  This
     is needed for programs that want portable access to the parallel
     port, for instance deviceid (which displays Plug-and-Play device
     IDs).
 
     This is the parallel port equivalent of SCSI generic support (sg).
     It is safe to say N to this -- it is not needed for normal printing
     or parallel port CD-ROM/disk support.
 
     To compile this driver as a module, choose M here: the
     module will be called ppdev.
 
     If unsure, say N.
 
source "drivers/tty/hvc/Kconfig"
 
config VIRTIO_CONSOLE
   tristate "Virtio console"
   depends on VIRTIO && TTY
   select HVC_DRIVER
   help
     Virtio console for use with hypervisors.
 
     Also serves as a general-purpose serial device for data
     transfer between the guest and host.  Character devices at
     /dev/vportNpn will be created when corresponding ports are
     found, where N is the device number and n is the port number
     within that device.  If specified by the host, a sysfs
     attribute called 'name' will be populated with a name for
     the port which can be used by udev scripts to create a
     symlink to the device.
 
config IBM_BSR
   tristate "IBM POWER Barrier Synchronization Register support"
   depends on PPC_PSERIES
   help
     This devices exposes a hardware mechanism for fast synchronization
     of threads across a large system which avoids bouncing a cacheline
     between several cores on a system
 
config POWERNV_OP_PANEL
   tristate "IBM POWERNV Operator Panel Display support"
   depends on PPC_POWERNV
   default m
   help
     If you say Y here, a special character device node, /dev/op_panel,
     will be created which exposes the operator panel display on IBM
     Power Systems machines with FSPs.
 
     If you don't require access to the operator panel display from user
     space, say N.
 
     If unsure, say M here to build it as a module called powernv-op-panel.
 
source "drivers/char/ipmi/Kconfig"
 
config DS1620
   tristate "NetWinder thermometer support"
   depends on ARCH_NETWINDER
   help
     Say Y here to include support for the thermal management hardware
     found in the NetWinder. This driver allows the user to control the
     temperature set points and to read the current temperature.
 
     It is also possible to say M here to build it as a module (ds1620)
     It is recommended to be used on a NetWinder, but it is not a
     necessity.
 
config NWBUTTON
   tristate "NetWinder Button"
   depends on ARCH_NETWINDER
   ---help---
     If you say Y here and create a character device node /dev/nwbutton
     with major and minor numbers 10 and 158 ("man mknod"), then every
     time the orange button is pressed a number of times, the number of
     times the button was pressed will be written to that device.
 
     This is most useful for applications, as yet unwritten, which
     perform actions based on how many times the button is pressed in a
     row.
 
     Do not hold the button down for too long, as the driver does not
     alter the behaviour of the hardware reset circuitry attached to the
     button; it will still execute a hard reset if the button is held
     down for longer than approximately five seconds.
 
     To compile this driver as a module, choose M here: the
     module will be called nwbutton.
 
     Most people will answer Y to this question and "Reboot Using Button"
     below to be able to initiate a system shutdown from the button.
 
config NWBUTTON_REBOOT
   bool "Reboot Using Button"
   depends on NWBUTTON
   help
     If you say Y here, then you will be able to initiate a system
     shutdown and reboot by pressing the orange button a number of times.
     The number of presses to initiate the shutdown is two by default,
     but this can be altered by modifying the value of NUM_PRESSES_REBOOT
     in nwbutton.h and recompiling the driver or, if you compile the
     driver as a module, you can specify the number of presses at load
     time with "insmod button reboot_count=<something>".
 
config NWFLASH
   tristate "NetWinder flash support"
   depends on ARCH_NETWINDER
   ---help---
     If you say Y here and create a character device /dev/flash with
     major 10 and minor 160 you can manipulate the flash ROM containing
     the NetWinder firmware. Be careful as accidentally overwriting the
     flash contents can render your computer unbootable. On no account
     allow random users access to this device. :-)
 
     To compile this driver as a module, choose M here: the
     module will be called nwflash.
 
     If you're not sure, say N.
 
source "drivers/char/hw_random/Kconfig"
 
config NVRAM
   tristate "/dev/nvram support"
   depends on ATARI || X86 || GENERIC_NVRAM
   ---help---
     If you say Y here and create a character special file /dev/nvram
     with major number 10 and minor number 144 using mknod ("man mknod"),
     you get read and write access to the extra bytes of non-volatile
     memory in the real time clock (RTC), which is contained in every PC
     and most Ataris.  The actual number of bytes varies, depending on the
     nvram in the system, but is usually 114 (128-14 for the RTC).
 
     This memory is conventionally called "CMOS RAM" on PCs and "NVRAM"
     on Ataris. /dev/nvram may be used to view settings there, or to
     change them (with some utility). It could also be used to frequently
     save a few bits of very important data that may not be lost over
     power-off and for which writing to disk is too insecure. Note
     however that most NVRAM space in a PC belongs to the BIOS and you
     should NEVER idly tamper with it. See Ralf Brown's interrupt list
     for a guide to the use of CMOS bytes by your BIOS.
 
     On Atari machines, /dev/nvram is always configured and does not need
     to be selected.
 
     To compile this driver as a module, choose M here: the
     module will be called nvram.
 
#
# These legacy RTC drivers just cause too many conflicts with the generic
# RTC framework ... let's not even try to coexist any more.
#
if RTC_LIB=n
 
config RTC
   tristate "Enhanced Real Time Clock Support (legacy PC RTC driver)"
   depends on ALPHA || (MIPS && MACH_LOONGSON64)
   ---help---
     If you say Y here and create a character special file /dev/rtc with
     major number 10 and minor number 135 using mknod ("man mknod"), you
     will get access to the real time clock (or hardware clock) built
     into your computer.
 
     Every PC has such a clock built in. It can be used to generate
     signals from as low as 1Hz up to 8192Hz, and can also be used
     as a 24 hour alarm. It reports status information via the file
     /proc/driver/rtc and its behaviour is set by various ioctls on
     /dev/rtc.
 
     If you run Linux on a multiprocessor machine and said Y to
     "Symmetric Multi Processing" above, you should say Y here to read
     and set the RTC in an SMP compatible fashion.
 
     If you think you have a use for such a device (such as periodic data
     sampling), then say Y here, and read <file:Documentation/rtc.txt>
     for details.
 
     To compile this driver as a module, choose M here: the
     module will be called rtc.
 
config JS_RTC
   tristate "Enhanced Real Time Clock Support"
   depends on SPARC32 && PCI
   ---help---
     If you say Y here and create a character special file /dev/rtc with
     major number 10 and minor number 135 using mknod ("man mknod"), you
     will get access to the real time clock (or hardware clock) built
     into your computer.
 
     Every PC has such a clock built in. It can be used to generate
     signals from as low as 1Hz up to 8192Hz, and can also be used
     as a 24 hour alarm. It reports status information via the file
     /proc/driver/rtc and its behaviour is set by various ioctls on
     /dev/rtc.
 
     If you think you have a use for such a device (such as periodic data
     sampling), then say Y here, and read <file:Documentation/rtc.txt>
     for details.
 
     To compile this driver as a module, choose M here: the
     module will be called js-rtc.
 
config EFI_RTC
   bool "EFI Real Time Clock Services"
   depends on IA64
 
endif # RTC_LIB
 
config DTLK
   tristate "Double Talk PC internal speech card support"
   depends on ISA
   help
     This driver is for the DoubleTalk PC, a speech synthesizer
     manufactured by RC Systems (<http://www.rcsys.com/>).  It is also
     called the `internal DoubleTalk'.
 
     To compile this driver as a module, choose M here: the
     module will be called dtlk.
 
config XILINX_HWICAP
   tristate "Xilinx HWICAP Support"
   depends on XILINX_VIRTEX || MICROBLAZE
   help
     This option enables support for Xilinx Internal Configuration
     Access Port (ICAP) driver.  The ICAP is used on Xilinx Virtex
     FPGA platforms to partially reconfigure the FPGA at runtime.
 
     If unsure, say N.
 
config R3964
   tristate "Siemens R3964 line discipline"
   depends on TTY && BROKEN
   ---help---
     This driver allows synchronous communication with devices using the
     Siemens R3964 packet protocol. Unless you are dealing with special
     hardware like PLCs, you are unlikely to need this.
 
     To compile this driver as a module, choose M here: the
     module will be called n_r3964.
 
     If unsure, say N.
 
config APPLICOM
   tristate "Applicom intelligent fieldbus card support"
   depends on PCI
   ---help---
     This driver provides the kernel-side support for the intelligent
     fieldbus cards made by Applicom International. More information
     about these cards can be found on the WWW at the address
     <http://www.applicom-int.com/>, or by email from David Woodhouse
     <dwmw2@infradead.org>.
 
     To compile this driver as a module, choose M here: the
     module will be called applicom.
 
     If unsure, say N.
 
config SONYPI
   tristate "Sony Vaio Programmable I/O Control Device support"
   depends on X86_32 && PCI && INPUT
   ---help---
     This driver enables access to the Sony Programmable I/O Control
     Device which can be found in many (all ?) Sony Vaio laptops.
 
     If you have one of those laptops, read
     <file:Documentation/laptops/sonypi.txt>, and say Y or M here.
 
     To compile this driver as a module, choose M here: the
     module will be called sonypi.
 
config GPIO_TB0219
   tristate "TANBAC TB0219 GPIO support"
   depends on TANBAC_TB022X
   select GPIO_VR41XX
 
source "drivers/char/pcmcia/Kconfig"
 
config MWAVE
   tristate "ACP Modem (Mwave) support"
   depends on X86 && TTY
   select SERIAL_8250
   ---help---
     The ACP modem (Mwave) for Linux is a WinModem. It is composed of a
     kernel driver and a user level application. Together these components
     support direct attachment to public switched telephone networks (PSTNs)
     and support selected world wide countries.
 
     This version of the ACP Modem driver supports the IBM Thinkpad 600E,
     600, and 770 that include on board ACP modem hardware.
 
     The modem also supports the standard communications port interface
     (ttySx) and is compatible with the Hayes AT Command Set.
 
     The user level application needed to use this driver can be found at
     the IBM Linux Technology Center (LTC) web site:
     <http://www.ibm.com/linux/ltc/>.
 
     If you own one of the above IBM Thinkpads which has the Mwave chipset
     in it, say Y.
 
     To compile this driver as a module, choose M here: the
     module will be called mwave.
 
config SCx200_GPIO
   tristate "NatSemi SCx200 GPIO Support"
   depends on SCx200
   select NSC_GPIO
   help
     Give userspace access to the GPIO pins on the National
     Semiconductor SCx200 processors.
 
     If compiled as a module, it will be called scx200_gpio.
 
config PC8736x_GPIO
   tristate "NatSemi PC8736x GPIO Support"
   depends on X86_32 && !UML
   default SCx200_GPIO    # mostly N
   select NSC_GPIO        # needed for support routines
   help
     Give userspace access to the GPIO pins on the National
     Semiconductor PC-8736x (x=[03456]) SuperIO chip.  The chip
     has multiple functional units, inc several managed by
     hwmon/pc87360 driver.  Tested with PC-87366
 
     If compiled as a module, it will be called pc8736x_gpio.
 
config NSC_GPIO
   tristate "NatSemi Base GPIO Support"
   depends on X86_32
   # selected by SCx200_GPIO and PC8736x_GPIO
   # what about 2 selectors differing: m != y
   help
     Common support used (and needed) by scx200_gpio and
     pc8736x_gpio drivers.  If those drivers are built as
     modules, this one will be too, named nsc_gpio
 
config RAW_DRIVER
   tristate "RAW driver (/dev/raw/rawN)"
   depends on BLOCK
   help
     The raw driver permits block devices to be bound to /dev/raw/rawN.
     Once bound, I/O against /dev/raw/rawN uses efficient zero-copy I/O.
     See the raw(8) manpage for more details.
 
          Applications should preferably open the device (eg /dev/hda1)
          with the O_DIRECT flag.
 
config MAX_RAW_DEVS
   int "Maximum number of RAW devices to support (1-65536)"
   depends on RAW_DRIVER
   range 1 65536
   default "256"
   help
     The maximum number of RAW devices that are supported.
     Default is 256. Increase this number in case you need lots of
     raw devices.
 
config HPET
   bool "HPET - High Precision Event Timer" if (X86 || IA64)
   default n
   depends on ACPI
   help
     If you say Y here, you will have a miscdevice named "/dev/hpet/".  Each
     open selects one of the timers supported by the HPET.  The timers are
     non-periodic and/or periodic.
 
config HPET_MMAP
   bool "Allow mmap of HPET"
   default y
   depends on HPET
   help
     If you say Y here, user applications will be able to mmap
     the HPET registers.
 
config HPET_MMAP_DEFAULT
   bool "Enable HPET MMAP access by default"
   default y
   depends on HPET_MMAP
   help
     In some hardware implementations, the page containing HPET
     registers may also contain other things that shouldn't be
     exposed to the user.  This option selects the default (if
     kernel parameter hpet_mmap is not set) user access to the
     registers for applications that require it.
 
config HANGCHECK_TIMER
   tristate "Hangcheck timer"
   depends on X86 || IA64 || PPC64 || S390
   help
     The hangcheck-timer module detects when the system has gone
     out to lunch past a certain margin.  It can reboot the system
     or merely print a warning.
 
config UV_MMTIMER
   tristate "UV_MMTIMER Memory mapped RTC for SGI UV"
   depends on X86_UV
   default m
   help
     The uv_mmtimer device allows direct userspace access to the
     UV system timer.
 
source "drivers/char/tpm/Kconfig"
 
config TELCLOCK
   tristate "Telecom clock driver for ATCA SBC"
   depends on X86
   default n
   help
     The telecom clock device is specific to the MPCBL0010 and MPCBL0050
     ATCA computers and allows direct userspace access to the
     configuration of the telecom clock configuration settings.  This
     device is used for hardware synchronization across the ATCA backplane
     fabric.  Upon loading, the driver exports a sysfs directory,
     /sys/devices/platform/telco_clock, with a number of files for
     controlling the behavior of this hardware.
 
config DEVPORT
   bool "/dev/port character device"
   depends on ISA || PCI
   default y
   help
     Say Y here if you want to support the /dev/port device. The /dev/port
     device is similar to /dev/mem, but for I/O ports.
 
source "drivers/s390/char/Kconfig"
 
source "drivers/char/xillybus/Kconfig"
 
config ADI
   tristate "SPARC Privileged ADI driver"
   depends on SPARC64
   default m
   help
     SPARC M7 and newer processors utilize ADI (Application Data
     Integrity) to version and protect memory.  This driver provides
     read/write access to the ADI versions for privileged processes.
     This feature is also known as MCD (Memory Corruption Detection)
     and SSM (Silicon Secured Memory).  Intended consumers of this
     driver include crash and makedumpfile.
 
endmenu
 
config RANDOM_TRUST_CPU
   bool "Trust the CPU manufacturer to initialize Linux's CRNG"
   depends on X86 || S390 || PPC
   default n
   help
   Assume that CPU manufacturer (e.g., Intel or AMD for RDSEED or
   RDRAND, IBM for the S390 and Power PC architectures) is trustworthy
   for the purposes of initializing Linux's CRNG.  Since this is not
   something that can be independently audited, this amounts to trusting
   that CPU manufacturer (perhaps with the insistence or mandate
   of a Nation State's intelligence or law enforcement agencies)
   has not installed a hidden back door to compromise the CPU's
   random number generation facilities. This can also be configured
   at boot with "random.trust_cpu=on/off".
 
config RANDOM_TRUST_BOOTLOADER
   bool "Trust the bootloader to initialize Linux's CRNG"
   help
   Some bootloaders can provide entropy to increase the kernel's initial
   device randomness. Say Y here to assume the entropy provided by the
   booloader is trustworthy so it will be added to the kernel's entropy
   pool. Otherwise, say N here so it will be regarded as device input that
   only mixes the entropy pool.