aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/driver-model/platform.txt59
-rw-r--r--Documentation/kernel-parameters.txt40
2 files changed, 79 insertions, 20 deletions
diff --git a/Documentation/driver-model/platform.txt b/Documentation/driver-model/platform.txt
index 83009fdcbbc..2e2c2ea90ce 100644
--- a/Documentation/driver-model/platform.txt
+++ b/Documentation/driver-model/platform.txt
@@ -169,3 +169,62 @@ three different ways to find such a match:
169 be probed later if another device registers. (Which is OK, since 169 be probed later if another device registers. (Which is OK, since
170 this interface is only for use with non-hotpluggable devices.) 170 this interface is only for use with non-hotpluggable devices.)
171 171
172
173Early Platform Devices and Drivers
174~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
175The early platform interfaces provide platform data to platform device
176drivers early on during the system boot. The code is built on top of the
177early_param() command line parsing and can be executed very early on.
178
179Example: "earlyprintk" class early serial console in 6 steps
180
1811. Registering early platform device data
182~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
183The architecture code registers platform device data using the function
184early_platform_add_devices(). In the case of early serial console this
185should be hardware configuration for the serial port. Devices registered
186at this point will later on be matched against early platform drivers.
187
1882. Parsing kernel command line
189~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
190The architecture code calls parse_early_param() to parse the kernel
191command line. This will execute all matching early_param() callbacks.
192User specified early platform devices will be registered at this point.
193For the early serial console case the user can specify port on the
194kernel command line as "earlyprintk=serial.0" where "earlyprintk" is
195the class string, "serial" is the name of the platfrom driver and
1960 is the platform device id. If the id is -1 then the dot and the
197id can be omitted.
198
1993. Installing early platform drivers belonging to a certain class
200~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
201The architecture code may optionally force registration of all early
202platform drivers belonging to a certain class using the function
203early_platform_driver_register_all(). User specified devices from
204step 2 have priority over these. This step is omitted by the serial
205driver example since the early serial driver code should be disabled
206unless the user has specified port on the kernel command line.
207
2084. Early platform driver registration
209~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
210Compiled-in platform drivers making use of early_platform_init() are
211automatically registered during step 2 or 3. The serial driver example
212should use early_platform_init("earlyprintk", &platform_driver).
213
2145. Probing of early platform drivers belonging to a certain class
215~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
216The architecture code calls early_platform_driver_probe() to match
217registered early platform devices associated with a certain class with
218registered early platform drivers. Matched devices will get probed().
219This step can be executed at any point during the early boot. As soon
220as possible may be good for the serial port case.
221
2226. Inside the early platform driver probe()
223~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
224The driver code needs to take special care during early boot, especially
225when it comes to memory allocation and interrupt registration. The code
226in the probe() function can use is_early_platform_device() to check if
227it is called at early platform device or at the regular platform device
228time. The early serial driver performs register_console() at this point.
229
230For further information, see <linux/platform_device.h>.
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index 6172e4360f6..a19f021f081 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -134,7 +134,7 @@ and is between 256 and 4096 characters. It is defined in the file
134./include/asm/setup.h as COMMAND_LINE_SIZE. 134./include/asm/setup.h as COMMAND_LINE_SIZE.
135 135
136 136
137 acpi= [HW,ACPI,X86-64,i386] 137 acpi= [HW,ACPI,X86]
138 Advanced Configuration and Power Interface 138 Advanced Configuration and Power Interface
139 Format: { force | off | ht | strict | noirq | rsdt } 139 Format: { force | off | ht | strict | noirq | rsdt }
140 force -- enable ACPI if default was off 140 force -- enable ACPI if default was off
@@ -218,7 +218,7 @@ and is between 256 and 4096 characters. It is defined in the file
218 acpi_osi="!string2" # remove built-in string2 218 acpi_osi="!string2" # remove built-in string2
219 acpi_osi= # disable all strings 219 acpi_osi= # disable all strings
220 220
221 acpi_pm_good [X86-32,X86-64] 221 acpi_pm_good [X86]
222 Override the pmtimer bug detection: force the kernel 222 Override the pmtimer bug detection: force the kernel
223 to assume that this machine's pmtimer latches its value 223 to assume that this machine's pmtimer latches its value
224 and always returns good values. 224 and always returns good values.
@@ -459,7 +459,7 @@ and is between 256 and 4096 characters. It is defined in the file
459 Also note the kernel might malfunction if you disable 459 Also note the kernel might malfunction if you disable
460 some critical bits. 460 some critical bits.
461 461
462 code_bytes [IA32/X86_64] How many bytes of object code to print 462 code_bytes [X86] How many bytes of object code to print
463 in an oops report. 463 in an oops report.
464 Range: 0 - 8192 464 Range: 0 - 8192
465 Default: 64 465 Default: 64
@@ -592,7 +592,7 @@ and is between 256 and 4096 characters. It is defined in the file
592 MTRR settings. This parameter disables that behavior, 592 MTRR settings. This parameter disables that behavior,
593 possibly causing your machine to run very slowly. 593 possibly causing your machine to run very slowly.
594 594
595 disable_timer_pin_1 [i386,x86-64] 595 disable_timer_pin_1 [X86]
596 Disable PIN 1 of APIC timer 596 Disable PIN 1 of APIC timer
597 Can be useful to work around chipset bugs. 597 Can be useful to work around chipset bugs.
598 598
@@ -624,7 +624,7 @@ and is between 256 and 4096 characters. It is defined in the file
624 UART at the specified I/O port or MMIO address. 624 UART at the specified I/O port or MMIO address.
625 The options are the same as for ttyS, above. 625 The options are the same as for ttyS, above.
626 626
627 earlyprintk= [X86-32,X86-64,SH,BLACKFIN] 627 earlyprintk= [X86,SH,BLACKFIN]
628 earlyprintk=vga 628 earlyprintk=vga
629 earlyprintk=serial[,ttySn[,baudrate]] 629 earlyprintk=serial[,ttySn[,baudrate]]
630 earlyprintk=dbgp 630 earlyprintk=dbgp
@@ -659,7 +659,7 @@ and is between 256 and 4096 characters. It is defined in the file
659 See Documentation/block/as-iosched.txt and 659 See Documentation/block/as-iosched.txt and
660 Documentation/block/deadline-iosched.txt for details. 660 Documentation/block/deadline-iosched.txt for details.
661 661
662 elfcorehdr= [IA64,PPC,SH,X86-32,X86_64] 662 elfcorehdr= [IA64,PPC,SH,X86]
663 Specifies physical address of start of kernel core 663 Specifies physical address of start of kernel core
664 image elf header. Generally kexec loader will 664 image elf header. Generally kexec loader will
665 pass this option to capture kernel. 665 pass this option to capture kernel.
@@ -938,7 +938,7 @@ and is between 256 and 4096 characters. It is defined in the file
938 See comment before marvel_specify_io7 in 938 See comment before marvel_specify_io7 in
939 arch/alpha/kernel/core_marvel.c. 939 arch/alpha/kernel/core_marvel.c.
940 940
941 io_delay= [X86-32,X86-64] I/O delay method 941 io_delay= [X86] I/O delay method
942 0x80 942 0x80
943 Standard port 0x80 based delay 943 Standard port 0x80 based delay
944 0xed 944 0xed
@@ -1000,7 +1000,7 @@ and is between 256 and 4096 characters. It is defined in the file
1000 1000
1001 keepinitrd [HW,ARM] 1001 keepinitrd [HW,ARM]
1002 1002
1003 kernelcore=nn[KMG] [KNL,X86-32,IA-64,PPC,X86-64] This parameter 1003 kernelcore=nn[KMG] [KNL,X86,IA-64,PPC] This parameter
1004 specifies the amount of memory usable by the kernel 1004 specifies the amount of memory usable by the kernel
1005 for non-movable allocations. The requested amount is 1005 for non-movable allocations. The requested amount is
1006 spread evenly throughout all nodes in the system. The 1006 spread evenly throughout all nodes in the system. The
@@ -1034,7 +1034,7 @@ and is between 256 and 4096 characters. It is defined in the file
1034 Configure the RouterBoard 532 series on-chip 1034 Configure the RouterBoard 532 series on-chip
1035 Ethernet adapter MAC address. 1035 Ethernet adapter MAC address.
1036 1036
1037 kstack=N [X86-32,X86-64] Print N words from the kernel stack 1037 kstack=N [X86] Print N words from the kernel stack
1038 in oops dumps. 1038 in oops dumps.
1039 1039
1040 l2cr= [PPC] 1040 l2cr= [PPC]
@@ -1044,7 +1044,7 @@ and is between 256 and 4096 characters. It is defined in the file
1044 lapic [X86-32,APIC] Enable the local APIC even if BIOS 1044 lapic [X86-32,APIC] Enable the local APIC even if BIOS
1045 disabled it. 1045 disabled it.
1046 1046
1047 lapic_timer_c2_ok [X86-32,x86-64,APIC] trust the local apic timer 1047 lapic_timer_c2_ok [X86,APIC] trust the local apic timer
1048 in C2 power state. 1048 in C2 power state.
1049 1049
1050 libata.dma= [LIBATA] DMA control 1050 libata.dma= [LIBATA] DMA control
@@ -1229,7 +1229,7 @@ and is between 256 and 4096 characters. It is defined in the file
1229 [KNL,SH] Allow user to override the default size for 1229 [KNL,SH] Allow user to override the default size for
1230 per-device physically contiguous DMA buffers. 1230 per-device physically contiguous DMA buffers.
1231 1231
1232 memmap=exactmap [KNL,X86-32,X86_64] Enable setting of an exact 1232 memmap=exactmap [KNL,X86] Enable setting of an exact
1233 E820 memory map, as specified by the user. 1233 E820 memory map, as specified by the user.
1234 Such memmap=exactmap lines can be constructed based on 1234 Such memmap=exactmap lines can be constructed based on
1235 BIOS output or other requirements. See the memmap=nn@ss 1235 BIOS output or other requirements. See the memmap=nn@ss
@@ -1320,7 +1320,7 @@ and is between 256 and 4096 characters. It is defined in the file
1320 mousedev.yres= [MOUSE] Vertical screen resolution, used for devices 1320 mousedev.yres= [MOUSE] Vertical screen resolution, used for devices
1321 reporting absolute coordinates, such as tablets 1321 reporting absolute coordinates, such as tablets
1322 1322
1323 movablecore=nn[KMG] [KNL,X86-32,IA-64,PPC,X86-64] This parameter 1323 movablecore=nn[KMG] [KNL,X86,IA-64,PPC] This parameter
1324 is similar to kernelcore except it specifies the 1324 is similar to kernelcore except it specifies the
1325 amount of memory used for migratable allocations. 1325 amount of memory used for migratable allocations.
1326 If both kernelcore and movablecore is specified, 1326 If both kernelcore and movablecore is specified,
@@ -1422,7 +1422,7 @@ and is between 256 and 4096 characters. It is defined in the file
1422 when a NMI is triggered. 1422 when a NMI is triggered.
1423 Format: [state][,regs][,debounce][,die] 1423 Format: [state][,regs][,debounce][,die]
1424 1424
1425 nmi_watchdog= [KNL,BUGS=X86-32,X86-64] Debugging features for SMP kernels 1425 nmi_watchdog= [KNL,BUGS=X86] Debugging features for SMP kernels
1426 Format: [panic,][num] 1426 Format: [panic,][num]
1427 Valid num: 0,1,2 1427 Valid num: 0,1,2
1428 0 - turn nmi_watchdog off 1428 0 - turn nmi_watchdog off
@@ -1475,11 +1475,11 @@ and is between 256 and 4096 characters. It is defined in the file
1475 1475
1476 nodsp [SH] Disable hardware DSP at boot time. 1476 nodsp [SH] Disable hardware DSP at boot time.
1477 1477
1478 noefi [X86-32,X86-64] Disable EFI runtime services support. 1478 noefi [X86] Disable EFI runtime services support.
1479 1479
1480 noexec [IA-64] 1480 noexec [IA-64]
1481 1481
1482 noexec [X86-32,X86-64] 1482 noexec [X86]
1483 On X86-32 available only on PAE configured kernels. 1483 On X86-32 available only on PAE configured kernels.
1484 noexec=on: enable non-executable mappings (default) 1484 noexec=on: enable non-executable mappings (default)
1485 noexec=off: disable non-executable mappings 1485 noexec=off: disable non-executable mappings
@@ -1525,7 +1525,7 @@ and is between 256 and 4096 characters. It is defined in the file
1525 noirqdebug [X86-32] Disables the code which attempts to detect and 1525 noirqdebug [X86-32] Disables the code which attempts to detect and
1526 disable unhandled interrupt sources. 1526 disable unhandled interrupt sources.
1527 1527
1528 no_timer_check [X86-32,X86_64,APIC] Disables the code which tests for 1528 no_timer_check [X86,APIC] Disables the code which tests for
1529 broken timer IRQ sources. 1529 broken timer IRQ sources.
1530 1530
1531 noisapnp [ISAPNP] Disables ISA PnP code. 1531 noisapnp [ISAPNP] Disables ISA PnP code.
@@ -1689,7 +1689,7 @@ and is between 256 and 4096 characters. It is defined in the file
1689 disable the use of PCIE advanced error reporting. 1689 disable the use of PCIE advanced error reporting.
1690 nodomains [PCI] Disable support for multiple PCI 1690 nodomains [PCI] Disable support for multiple PCI
1691 root domains (aka PCI segments, in ACPI-speak). 1691 root domains (aka PCI segments, in ACPI-speak).
1692 nommconf [X86-32,X86_64] Disable use of MMCONFIG for PCI 1692 nommconf [X86] Disable use of MMCONFIG for PCI
1693 Configuration 1693 Configuration
1694 nomsi [MSI] If the PCI_MSI kernel config parameter is 1694 nomsi [MSI] If the PCI_MSI kernel config parameter is
1695 enabled, this kernel boot option can be used to 1695 enabled, this kernel boot option can be used to
@@ -2380,7 +2380,7 @@ and is between 256 and 4096 characters. It is defined in the file
2380 reported either. 2380 reported either.
2381 2381
2382 unknown_nmi_panic 2382 unknown_nmi_panic
2383 [X86-32,X86-64] 2383 [X86]
2384 Set unknown_nmi_panic=1 early on boot. 2384 Set unknown_nmi_panic=1 early on boot.
2385 2385
2386 usbcore.autosuspend= 2386 usbcore.autosuspend=
@@ -2447,12 +2447,12 @@ and is between 256 and 4096 characters. It is defined in the file
2447 medium is write-protected). 2447 medium is write-protected).
2448 Example: quirks=0419:aaf5:rl,0421:0433:rc 2448 Example: quirks=0419:aaf5:rl,0421:0433:rc
2449 2449
2450 vdso= [X86-32,SH,x86-64] 2450 vdso= [X86,SH]
2451 vdso=2: enable compat VDSO (default with COMPAT_VDSO) 2451 vdso=2: enable compat VDSO (default with COMPAT_VDSO)
2452 vdso=1: enable VDSO (default) 2452 vdso=1: enable VDSO (default)
2453 vdso=0: disable VDSO mapping 2453 vdso=0: disable VDSO mapping
2454 2454
2455 vdso32= [X86-32,X86-64] 2455 vdso32= [X86]
2456 vdso32=2: enable compat VDSO (default with COMPAT_VDSO) 2456 vdso32=2: enable compat VDSO (default with COMPAT_VDSO)
2457 vdso32=1: enable 32-bit VDSO (default) 2457 vdso32=1: enable 32-bit VDSO (default)
2458 vdso32=0: disable 32-bit VDSO mapping 2458 vdso32=0: disable 32-bit VDSO mapping