diff options
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/driver-model/platform.txt | 59 | ||||
-rw-r--r-- | Documentation/kernel-parameters.txt | 40 |
2 files changed, 79 insertions, 20 deletions
diff --git a/Documentation/driver-model/platform.txt b/Documentation/driver-model/platform.txt index 83009fdcbbc8..2e2c2ea90ceb 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 | |||
173 | Early Platform Devices and Drivers | ||
174 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
175 | The early platform interfaces provide platform data to platform device | ||
176 | drivers early on during the system boot. The code is built on top of the | ||
177 | early_param() command line parsing and can be executed very early on. | ||
178 | |||
179 | Example: "earlyprintk" class early serial console in 6 steps | ||
180 | |||
181 | 1. Registering early platform device data | ||
182 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
183 | The architecture code registers platform device data using the function | ||
184 | early_platform_add_devices(). In the case of early serial console this | ||
185 | should be hardware configuration for the serial port. Devices registered | ||
186 | at this point will later on be matched against early platform drivers. | ||
187 | |||
188 | 2. Parsing kernel command line | ||
189 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
190 | The architecture code calls parse_early_param() to parse the kernel | ||
191 | command line. This will execute all matching early_param() callbacks. | ||
192 | User specified early platform devices will be registered at this point. | ||
193 | For the early serial console case the user can specify port on the | ||
194 | kernel command line as "earlyprintk=serial.0" where "earlyprintk" is | ||
195 | the class string, "serial" is the name of the platfrom driver and | ||
196 | 0 is the platform device id. If the id is -1 then the dot and the | ||
197 | id can be omitted. | ||
198 | |||
199 | 3. Installing early platform drivers belonging to a certain class | ||
200 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
201 | The architecture code may optionally force registration of all early | ||
202 | platform drivers belonging to a certain class using the function | ||
203 | early_platform_driver_register_all(). User specified devices from | ||
204 | step 2 have priority over these. This step is omitted by the serial | ||
205 | driver example since the early serial driver code should be disabled | ||
206 | unless the user has specified port on the kernel command line. | ||
207 | |||
208 | 4. Early platform driver registration | ||
209 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
210 | Compiled-in platform drivers making use of early_platform_init() are | ||
211 | automatically registered during step 2 or 3. The serial driver example | ||
212 | should use early_platform_init("earlyprintk", &platform_driver). | ||
213 | |||
214 | 5. Probing of early platform drivers belonging to a certain class | ||
215 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
216 | The architecture code calls early_platform_driver_probe() to match | ||
217 | registered early platform devices associated with a certain class with | ||
218 | registered early platform drivers. Matched devices will get probed(). | ||
219 | This step can be executed at any point during the early boot. As soon | ||
220 | as possible may be good for the serial port case. | ||
221 | |||
222 | 6. Inside the early platform driver probe() | ||
223 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
224 | The driver code needs to take special care during early boot, especially | ||
225 | when it comes to memory allocation and interrupt registration. The code | ||
226 | in the probe() function can use is_early_platform_device() to check if | ||
227 | it is called at early platform device or at the regular platform device | ||
228 | time. The early serial driver performs register_console() at this point. | ||
229 | |||
230 | For further information, see <linux/platform_device.h>. | ||
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index 6172e4360f60..a19f021f081a 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 |