hc
2023-12-09 b22da3d8526a935aa31e086e63f60ff3246cb61c
kernel/drivers/char/Kconfig
....@@ -7,55 +7,11 @@
77
88 source "drivers/tty/Kconfig"
99
10
-config DEVMEM
11
- bool "/dev/mem virtual device support"
12
- default y
13
- help
14
- Say Y here if you want to support the /dev/mem device.
15
- The /dev/mem device is used to access areas of physical
16
- memory.
17
- When in doubt, say "Y".
18
-
19
-config DEVKMEM
20
- bool "/dev/kmem virtual device support"
21
- # On arm64, VMALLOC_START < PAGE_OFFSET, which confuses kmem read/write
22
- depends on !ARM64
23
- help
24
- Say Y here if you want to support the /dev/kmem device. The
25
- /dev/kmem device is rarely used, but can be used for certain
26
- kind of kernel debugging operations.
27
- When in doubt, say "N".
28
-
29
-config SGI_SNSC
30
- bool "SGI Altix system controller communication support"
31
- depends on (IA64_SGI_SN2 || IA64_GENERIC)
32
- help
33
- If you have an SGI Altix and you want to enable system
34
- controller communication from user space (you want this!),
35
- say Y. Otherwise, say N.
36
-
37
-config SGI_TIOCX
38
- bool "SGI TIO CX driver support"
39
- depends on (IA64_SGI_SN2 || IA64_GENERIC)
40
- help
41
- If you have an SGI Altix and you have fpga devices attached
42
- to your TIO, say Y here, otherwise say N.
43
-
44
-config SGI_MBCS
45
- tristate "SGI FPGA Core Services driver support"
46
- depends on SGI_TIOCX
47
- help
48
- If you have an SGI Altix with an attached SABrick
49
- say Y or M here, otherwise say N.
50
-
51
-source "drivers/tty/serial/Kconfig"
52
-source "drivers/tty/serdev/Kconfig"
53
-
5410 config TTY_PRINTK
5511 tristate "TTY driver to output user messages via printk"
5612 depends on EXPERT && TTY
5713 default n
58
- ---help---
14
+ help
5915 If you say Y here, the support for writing user messages (i.e.
6016 console messages) via printk is available.
6117
....@@ -66,15 +22,23 @@
6622
6723 If unsure, say N.
6824
25
+config TTY_PRINTK_LEVEL
26
+ depends on TTY_PRINTK
27
+ int "ttyprintk log level (1-7)"
28
+ range 1 7
29
+ default "6"
30
+ help
31
+ Printk log level to use for ttyprintk messages.
32
+
6933 config PRINTER
7034 tristate "Parallel printer support"
7135 depends on PARPORT
72
- ---help---
36
+ help
7337 If you intend to attach a printer to the parallel port of your Linux
7438 box (as opposed to using a serial printer; if the connector at the
7539 printer has 9 or 25 holes ["female"], then it's serial), say Y.
7640 Also read the Printing-HOWTO, available from
77
- <http://www.tldp.org/docs.html#howto>.
41
+ <https://www.tldp.org/docs.html#howto>.
7842
7943 It is possible to share one parallel port among several devices
8044 (e.g. printer and ZIP drive) and it is safe to compile the
....@@ -95,7 +59,7 @@
9559 config LP_CONSOLE
9660 bool "Support for console on line printer"
9761 depends on PRINTER
98
- ---help---
62
+ help
9963 If you want kernel messages to be printed out as they occur, you
10064 can have a console on the printer. This option adds support for
10165 doing that; to actually get it to happen you need to pass the
....@@ -112,7 +76,7 @@
11276 config PPDEV
11377 tristate "Support for user-space parallel port device drivers"
11478 depends on PARPORT
115
- ---help---
79
+ help
11680 Saying Y to this adds support for /dev/parport device nodes. This
11781 is needed for programs that want portable access to the parallel
11882 port, for instance deviceid (which displays Plug-and-Play device
....@@ -127,12 +91,11 @@
12791
12892 If unsure, say N.
12993
130
-source "drivers/tty/hvc/Kconfig"
131
-
13294 config VIRTIO_CONSOLE
13395 tristate "Virtio console"
134
- depends on VIRTIO && TTY
96
+ depends on TTY
13597 select HVC_DRIVER
98
+ select VIRTIO
13699 help
137100 Virtio console for use with hypervisors.
138101
....@@ -184,7 +147,7 @@
184147 config NWBUTTON
185148 tristate "NetWinder Button"
186149 depends on ARCH_NETWINDER
187
- ---help---
150
+ help
188151 If you say Y here and create a character device node /dev/nwbutton
189152 with major and minor numbers 10 and 158 ("man mknod"), then every
190153 time the orange button is pressed a number of times, the number of
....@@ -220,7 +183,7 @@
220183 config NWFLASH
221184 tristate "NetWinder flash support"
222185 depends on ARCH_NETWINDER
223
- ---help---
186
+ help
224187 If you say Y here and create a character device /dev/flash with
225188 major 10 and minor 160 you can manipulate the flash ROM containing
226189 the NetWinder firmware. Be careful as accidentally overwriting the
....@@ -234,98 +197,12 @@
234197
235198 source "drivers/char/hw_random/Kconfig"
236199
237
-config NVRAM
238
- tristate "/dev/nvram support"
239
- depends on ATARI || X86 || GENERIC_NVRAM
240
- ---help---
241
- If you say Y here and create a character special file /dev/nvram
242
- with major number 10 and minor number 144 using mknod ("man mknod"),
243
- you get read and write access to the extra bytes of non-volatile
244
- memory in the real time clock (RTC), which is contained in every PC
245
- and most Ataris. The actual number of bytes varies, depending on the
246
- nvram in the system, but is usually 114 (128-14 for the RTC).
247
-
248
- This memory is conventionally called "CMOS RAM" on PCs and "NVRAM"
249
- on Ataris. /dev/nvram may be used to view settings there, or to
250
- change them (with some utility). It could also be used to frequently
251
- save a few bits of very important data that may not be lost over
252
- power-off and for which writing to disk is too insecure. Note
253
- however that most NVRAM space in a PC belongs to the BIOS and you
254
- should NEVER idly tamper with it. See Ralf Brown's interrupt list
255
- for a guide to the use of CMOS bytes by your BIOS.
256
-
257
- On Atari machines, /dev/nvram is always configured and does not need
258
- to be selected.
259
-
260
- To compile this driver as a module, choose M here: the
261
- module will be called nvram.
262
-
263
-#
264
-# These legacy RTC drivers just cause too many conflicts with the generic
265
-# RTC framework ... let's not even try to coexist any more.
266
-#
267
-if RTC_LIB=n
268
-
269
-config RTC
270
- tristate "Enhanced Real Time Clock Support (legacy PC RTC driver)"
271
- depends on ALPHA || (MIPS && MACH_LOONGSON64)
272
- ---help---
273
- If you say Y here and create a character special file /dev/rtc with
274
- major number 10 and minor number 135 using mknod ("man mknod"), you
275
- will get access to the real time clock (or hardware clock) built
276
- into your computer.
277
-
278
- Every PC has such a clock built in. It can be used to generate
279
- signals from as low as 1Hz up to 8192Hz, and can also be used
280
- as a 24 hour alarm. It reports status information via the file
281
- /proc/driver/rtc and its behaviour is set by various ioctls on
282
- /dev/rtc.
283
-
284
- If you run Linux on a multiprocessor machine and said Y to
285
- "Symmetric Multi Processing" above, you should say Y here to read
286
- and set the RTC in an SMP compatible fashion.
287
-
288
- If you think you have a use for such a device (such as periodic data
289
- sampling), then say Y here, and read <file:Documentation/rtc.txt>
290
- for details.
291
-
292
- To compile this driver as a module, choose M here: the
293
- module will be called rtc.
294
-
295
-config JS_RTC
296
- tristate "Enhanced Real Time Clock Support"
297
- depends on SPARC32 && PCI
298
- ---help---
299
- If you say Y here and create a character special file /dev/rtc with
300
- major number 10 and minor number 135 using mknod ("man mknod"), you
301
- will get access to the real time clock (or hardware clock) built
302
- into your computer.
303
-
304
- Every PC has such a clock built in. It can be used to generate
305
- signals from as low as 1Hz up to 8192Hz, and can also be used
306
- as a 24 hour alarm. It reports status information via the file
307
- /proc/driver/rtc and its behaviour is set by various ioctls on
308
- /dev/rtc.
309
-
310
- If you think you have a use for such a device (such as periodic data
311
- sampling), then say Y here, and read <file:Documentation/rtc.txt>
312
- for details.
313
-
314
- To compile this driver as a module, choose M here: the
315
- module will be called js-rtc.
316
-
317
-config EFI_RTC
318
- bool "EFI Real Time Clock Services"
319
- depends on IA64
320
-
321
-endif # RTC_LIB
322
-
323200 config DTLK
324201 tristate "Double Talk PC internal speech card support"
325202 depends on ISA
326203 help
327204 This driver is for the DoubleTalk PC, a speech synthesizer
328
- manufactured by RC Systems (<http://www.rcsys.com/>). It is also
205
+ manufactured by RC Systems (<https://www.rcsys.com/>). It is also
329206 called the `internal DoubleTalk'.
330207
331208 To compile this driver as a module, choose M here: the
....@@ -333,7 +210,7 @@
333210
334211 config XILINX_HWICAP
335212 tristate "Xilinx HWICAP Support"
336
- depends on XILINX_VIRTEX || MICROBLAZE
213
+ depends on MICROBLAZE
337214 help
338215 This option enables support for Xilinx Internal Configuration
339216 Access Port (ICAP) driver. The ICAP is used on Xilinx Virtex
....@@ -344,7 +221,7 @@
344221 config R3964
345222 tristate "Siemens R3964 line discipline"
346223 depends on TTY && BROKEN
347
- ---help---
224
+ help
348225 This driver allows synchronous communication with devices using the
349226 Siemens R3964 packet protocol. Unless you are dealing with special
350227 hardware like PLCs, you are unlikely to need this.
....@@ -357,11 +234,11 @@
357234 config APPLICOM
358235 tristate "Applicom intelligent fieldbus card support"
359236 depends on PCI
360
- ---help---
237
+ help
361238 This driver provides the kernel-side support for the intelligent
362239 fieldbus cards made by Applicom International. More information
363240 about these cards can be found on the WWW at the address
364
- <http://www.applicom-int.com/>, or by email from David Woodhouse
241
+ <https://www.applicom-int.com/>, or by email from David Woodhouse
365242 <dwmw2@infradead.org>.
366243
367244 To compile this driver as a module, choose M here: the
....@@ -372,12 +249,12 @@
372249 config SONYPI
373250 tristate "Sony Vaio Programmable I/O Control Device support"
374251 depends on X86_32 && PCI && INPUT
375
- ---help---
252
+ help
376253 This driver enables access to the Sony Programmable I/O Control
377254 Device which can be found in many (all ?) Sony Vaio laptops.
378255
379256 If you have one of those laptops, read
380
- <file:Documentation/laptops/sonypi.txt>, and say Y or M here.
257
+ <file:Documentation/admin-guide/laptops/sonypi.rst>, and say Y or M here.
381258
382259 To compile this driver as a module, choose M here: the
383260 module will be called sonypi.
....@@ -393,7 +270,7 @@
393270 tristate "ACP Modem (Mwave) support"
394271 depends on X86 && TTY
395272 select SERIAL_8250
396
- ---help---
273
+ help
397274 The ACP modem (Mwave) for Linux is a WinModem. It is composed of a
398275 kernel driver and a user level application. Together these components
399276 support direct attachment to public switched telephone networks (PSTNs)
....@@ -448,6 +325,48 @@
448325 pc8736x_gpio drivers. If those drivers are built as
449326 modules, this one will be too, named nsc_gpio
450327
328
+config DEVMEM
329
+ bool "/dev/mem virtual device support"
330
+ default y
331
+ help
332
+ Say Y here if you want to support the /dev/mem device.
333
+ The /dev/mem device is used to access areas of physical
334
+ memory.
335
+ When in doubt, say "Y".
336
+
337
+config DEVKMEM
338
+ bool "/dev/kmem virtual device support"
339
+ # On arm64, VMALLOC_START < PAGE_OFFSET, which confuses kmem read/write
340
+ depends on !ARM64
341
+ help
342
+ Say Y here if you want to support the /dev/kmem device. The
343
+ /dev/kmem device is rarely used, but can be used for certain
344
+ kind of kernel debugging operations.
345
+ When in doubt, say "N".
346
+
347
+config NVRAM
348
+ tristate "/dev/nvram support"
349
+ depends on X86 || HAVE_ARCH_NVRAM_OPS
350
+ default M68K || PPC
351
+ help
352
+ If you say Y here and create a character special file /dev/nvram
353
+ with major number 10 and minor number 144 using mknod ("man mknod"),
354
+ you get read and write access to the non-volatile memory.
355
+
356
+ /dev/nvram may be used to view settings in NVRAM or to change them
357
+ (with some utility). It could also be used to frequently
358
+ save a few bits of very important data that may not be lost over
359
+ power-off and for which writing to disk is too insecure. Note
360
+ however that most NVRAM space in a PC belongs to the BIOS and you
361
+ should NEVER idly tamper with it. See Ralf Brown's interrupt list
362
+ for a guide to the use of CMOS bytes by your BIOS.
363
+
364
+ This memory is conventionally called "NVRAM" on PowerPC machines,
365
+ "CMOS RAM" on PCs, "NVRAM" on Ataris and "PRAM" on Macintoshes.
366
+
367
+ To compile this driver as a module, choose M here: the
368
+ module will be called nvram.
369
+
451370 config RAW_DRIVER
452371 tristate "RAW driver (/dev/raw/rawN)"
453372 depends on BLOCK
....@@ -456,8 +375,8 @@
456375 Once bound, I/O against /dev/raw/rawN uses efficient zero-copy I/O.
457376 See the raw(8) manpage for more details.
458377
459
- Applications should preferably open the device (eg /dev/hda1)
460
- with the O_DIRECT flag.
378
+ Applications should preferably open the device (eg /dev/hda1)
379
+ with the O_DIRECT flag.
461380
462381 config MAX_RAW_DEVS
463382 int "Maximum number of RAW devices to support (1-65536)"
....@@ -468,6 +387,14 @@
468387 The maximum number of RAW devices that are supported.
469388 Default is 256. Increase this number in case you need lots of
470389 raw devices.
390
+
391
+config DEVPORT
392
+ bool "/dev/port character device"
393
+ depends on ISA || PCI
394
+ default y
395
+ help
396
+ Say Y here if you want to support the /dev/port device. The /dev/port
397
+ device is similar to /dev/mem, but for I/O ports.
471398
472399 config HPET
473400 bool "HPET - High Precision Event Timer" if (X86 || IA64)
....@@ -528,14 +455,6 @@
528455 /sys/devices/platform/telco_clock, with a number of files for
529456 controlling the behavior of this hardware.
530457
531
-config DEVPORT
532
- bool "/dev/port character device"
533
- depends on ISA || PCI
534
- default y
535
- help
536
- Say Y here if you want to support the /dev/port device. The /dev/port
537
- device is similar to /dev/mem, but for I/O ports.
538
-
539458 source "drivers/s390/char/Kconfig"
540459
541460 source "drivers/char/xillybus/Kconfig"
....@@ -552,28 +471,41 @@
552471 and SSM (Silicon Secured Memory). Intended consumers of this
553472 driver include crash and makedumpfile.
554473
555
-endmenu
556
-
557474 config RANDOM_TRUST_CPU
558
- bool "Trust the CPU manufacturer to initialize Linux's CRNG"
559
- depends on X86 || S390 || PPC
560
- default n
475
+ bool "Initialize RNG using CPU RNG instructions"
476
+ default y
477
+ depends on ARCH_RANDOM
561478 help
562
- Assume that CPU manufacturer (e.g., Intel or AMD for RDSEED or
563
- RDRAND, IBM for the S390 and Power PC architectures) is trustworthy
564
- for the purposes of initializing Linux's CRNG. Since this is not
565
- something that can be independently audited, this amounts to trusting
566
- that CPU manufacturer (perhaps with the insistence or mandate
567
- of a Nation State's intelligence or law enforcement agencies)
568
- has not installed a hidden back door to compromise the CPU's
569
- random number generation facilities. This can also be configured
570
- at boot with "random.trust_cpu=on/off".
479
+ Initialize the RNG using random numbers supplied by the CPU's
480
+ RNG instructions (e.g. RDRAND), if supported and available. These
481
+ random numbers are never used directly, but are rather hashed into
482
+ the main input pool, and this happens regardless of whether or not
483
+ this option is enabled. Instead, this option controls whether the
484
+ they are credited and hence can initialize the RNG. Additionally,
485
+ other sources of randomness are always used, regardless of this
486
+ setting. Enabling this implies trusting that the CPU can supply high
487
+ quality and non-backdoored random numbers.
488
+
489
+ Say Y here unless you have reason to mistrust your CPU or believe
490
+ its RNG facilities may be faulty. This may also be configured at
491
+ boot time with "random.trust_cpu=on/off".
571492
572493 config RANDOM_TRUST_BOOTLOADER
573
- bool "Trust the bootloader to initialize Linux's CRNG"
494
+ bool "Initialize RNG using bootloader-supplied seed"
495
+ default y
574496 help
575
- Some bootloaders can provide entropy to increase the kernel's initial
576
- device randomness. Say Y here to assume the entropy provided by the
577
- booloader is trustworthy so it will be added to the kernel's entropy
578
- pool. Otherwise, say N here so it will be regarded as device input that
579
- only mixes the entropy pool.
497
+ Initialize the RNG using a seed supplied by the bootloader or boot
498
+ environment (e.g. EFI or a bootloader-generated device tree). This
499
+ seed is not used directly, but is rather hashed into the main input
500
+ pool, and this happens regardless of whether or not this option is
501
+ enabled. Instead, this option controls whether the seed is credited
502
+ and hence can initialize the RNG. Additionally, other sources of
503
+ randomness are always used, regardless of this setting. Enabling
504
+ this implies trusting that the bootloader can supply high quality and
505
+ non-backdoored seeds.
506
+
507
+ Say Y here unless you have reason to mistrust your bootloader or
508
+ believe its RNG facilities may be faulty. This may also be configured
509
+ at boot time with "random.trust_bootloader=on/off".
510
+
511
+endmenu