Skip to content

Commit 22fd67c

Browse files
committed
Merge branches 'sh/earlytimer' and 'sh/shmobile-r2r-staging'
3 parents b8c193f + 28fde68 + bc9f3d4 commit 22fd67c

File tree

406 files changed

+9525
-4341
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

406 files changed

+9525
-4341
lines changed

Documentation/driver-model/platform.txt

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,3 +169,62 @@ three different ways to find such a match:
169169
be probed later if another device registers. (Which is OK, since
170170
this interface is only for use with non-hotpluggable devices.)
171171

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>.

Documentation/filesystems/pohmelfs/design_notes.txt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,10 @@ workloads and can fully utilize the bandwidth to the servers when doing bulk
5656
data transfers.
5757

5858
POHMELFS clients operate with a working set of servers and are capable of balancing read-only
59-
operations (like lookups or directory listings) between them.
59+
operations (like lookups or directory listings) between them according to IO priorities.
6060
Administrators can add or remove servers from the set at run-time via special commands (described
61-
in Documentation/pohmelfs/info.txt file). Writes are replicated to all servers.
61+
in Documentation/pohmelfs/info.txt file). Writes are replicated to all servers, which are connected
62+
with write permission turned on. IO priority and permissions can be changed in run-time.
6263

6364
POHMELFS is capable of full data channel encryption and/or strong crypto hashing.
6465
One can select any kernel supported cipher, encryption mode, hash type and operation mode

Documentation/filesystems/pohmelfs/info.txt

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
POHMELFS usage information.
22

3-
Mount options:
3+
Mount options.
4+
All but index, number of crypto threads and maximum IO size can changed via remount.
5+
46
idx=%u
57
Each mountpoint is associated with a special index via this option.
68
Administrator can add or remove servers from the given index, so all mounts,
@@ -52,16 +54,27 @@ mcache_timeout=%u
5254

5355
Usage examples.
5456

55-
Add (or remove if it already exists) server server1.net:1025 into the working set with index $idx
57+
Add server server1.net:1025 into the working set with index $idx
5658
with appropriate hash algorithm and key file and cipher algorithm, mode and key file:
57-
$cfg -a server1.net -p 1025 -i $idx -K $hash_key -k $cipher_key
59+
$cfg A add -a server1.net -p 1025 -i $idx -K $hash_key -k $cipher_key
5860

5961
Mount filesystem with given index $idx to /mnt mountpoint.
6062
Client will connect to all servers specified in the working set via previous command:
6163
mount -t pohmel -o idx=$idx q /mnt
6264

63-
One can add or remove servers from working set after mounting too.
65+
Change permissions to read-only (-I 1 option, '-I 2' - write-only, 3 - rw):
66+
$cfg A modify -a server1.net -p 1025 -i $idx -I 1
67+
68+
Change IO priority to 123 (node with the highest priority gets read requests).
69+
$cfg A modify -a server1.net -p 1025 -i $idx -P 123
6470

71+
One can check currect status of all connections in the mountstats file:
72+
# cat /proc/$PID/mountstats
73+
...
74+
device none mounted on /mnt with fstype pohmel
75+
idx addr(:port) socket_type protocol active priority permissions
76+
0 server1.net:1026 1 6 1 250 1
77+
0 server2.net:1025 1 6 1 123 3
6578

6679
Server installation.
6780

Documentation/kernel-parameters.txt

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ and is between 256 and 4096 characters. It is defined in the file
134134
./include/asm/setup.h as COMMAND_LINE_SIZE.
135135

136136

137-
acpi= [HW,ACPI,X86-64,i386]
137+
acpi= [HW,ACPI,X86]
138138
Advanced Configuration and Power Interface
139139
Format: { force | off | ht | strict | noirq | rsdt }
140140
force -- enable ACPI if default was off
@@ -218,7 +218,7 @@ and is between 256 and 4096 characters. It is defined in the file
218218
acpi_osi="!string2" # remove built-in string2
219219
acpi_osi= # disable all strings
220220

221-
acpi_pm_good [X86-32,X86-64]
221+
acpi_pm_good [X86]
222222
Override the pmtimer bug detection: force the kernel
223223
to assume that this machine's pmtimer latches its value
224224
and always returns good values.
@@ -459,7 +459,7 @@ and is between 256 and 4096 characters. It is defined in the file
459459
Also note the kernel might malfunction if you disable
460460
some critical bits.
461461

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
463463
in an oops report.
464464
Range: 0 - 8192
465465
Default: 64
@@ -592,7 +592,7 @@ and is between 256 and 4096 characters. It is defined in the file
592592
MTRR settings. This parameter disables that behavior,
593593
possibly causing your machine to run very slowly.
594594

595-
disable_timer_pin_1 [i386,x86-64]
595+
disable_timer_pin_1 [X86]
596596
Disable PIN 1 of APIC timer
597597
Can be useful to work around chipset bugs.
598598

@@ -624,7 +624,7 @@ and is between 256 and 4096 characters. It is defined in the file
624624
UART at the specified I/O port or MMIO address.
625625
The options are the same as for ttyS, above.
626626

627-
earlyprintk= [X86-32,X86-64,SH,BLACKFIN]
627+
earlyprintk= [X86,SH,BLACKFIN]
628628
earlyprintk=vga
629629
earlyprintk=serial[,ttySn[,baudrate]]
630630
earlyprintk=dbgp
@@ -659,7 +659,7 @@ and is between 256 and 4096 characters. It is defined in the file
659659
See Documentation/block/as-iosched.txt and
660660
Documentation/block/deadline-iosched.txt for details.
661661

662-
elfcorehdr= [IA64,PPC,SH,X86-32,X86_64]
662+
elfcorehdr= [IA64,PPC,SH,X86]
663663
Specifies physical address of start of kernel core
664664
image elf header. Generally kexec loader will
665665
pass this option to capture kernel.
@@ -938,7 +938,7 @@ and is between 256 and 4096 characters. It is defined in the file
938938
See comment before marvel_specify_io7 in
939939
arch/alpha/kernel/core_marvel.c.
940940

941-
io_delay= [X86-32,X86-64] I/O delay method
941+
io_delay= [X86] I/O delay method
942942
0x80
943943
Standard port 0x80 based delay
944944
0xed
@@ -1000,7 +1000,7 @@ and is between 256 and 4096 characters. It is defined in the file
10001000

10011001
keepinitrd [HW,ARM]
10021002

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
10041004
specifies the amount of memory usable by the kernel
10051005
for non-movable allocations. The requested amount is
10061006
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
10341034
Configure the RouterBoard 532 series on-chip
10351035
Ethernet adapter MAC address.
10361036

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
10381038
in oops dumps.
10391039

10401040
l2cr= [PPC]
@@ -1044,7 +1044,7 @@ and is between 256 and 4096 characters. It is defined in the file
10441044
lapic [X86-32,APIC] Enable the local APIC even if BIOS
10451045
disabled it.
10461046

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
10481048
in C2 power state.
10491049

10501050
libata.dma= [LIBATA] DMA control
@@ -1229,7 +1229,7 @@ and is between 256 and 4096 characters. It is defined in the file
12291229
[KNL,SH] Allow user to override the default size for
12301230
per-device physically contiguous DMA buffers.
12311231

1232-
memmap=exactmap [KNL,X86-32,X86_64] Enable setting of an exact
1232+
memmap=exactmap [KNL,X86] Enable setting of an exact
12331233
E820 memory map, as specified by the user.
12341234
Such memmap=exactmap lines can be constructed based on
12351235
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
13201320
mousedev.yres= [MOUSE] Vertical screen resolution, used for devices
13211321
reporting absolute coordinates, such as tablets
13221322

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
13241324
is similar to kernelcore except it specifies the
13251325
amount of memory used for migratable allocations.
13261326
If both kernelcore and movablecore is specified,
@@ -1422,7 +1422,7 @@ and is between 256 and 4096 characters. It is defined in the file
14221422
when a NMI is triggered.
14231423
Format: [state][,regs][,debounce][,die]
14241424

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
14261426
Format: [panic,][num]
14271427
Valid num: 0,1,2
14281428
0 - turn nmi_watchdog off
@@ -1475,11 +1475,11 @@ and is between 256 and 4096 characters. It is defined in the file
14751475

14761476
nodsp [SH] Disable hardware DSP at boot time.
14771477

1478-
noefi [X86-32,X86-64] Disable EFI runtime services support.
1478+
noefi [X86] Disable EFI runtime services support.
14791479

14801480
noexec [IA-64]
14811481

1482-
noexec [X86-32,X86-64]
1482+
noexec [X86]
14831483
On X86-32 available only on PAE configured kernels.
14841484
noexec=on: enable non-executable mappings (default)
14851485
noexec=off: disable non-executable mappings
@@ -1525,7 +1525,7 @@ and is between 256 and 4096 characters. It is defined in the file
15251525
noirqdebug [X86-32] Disables the code which attempts to detect and
15261526
disable unhandled interrupt sources.
15271527

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
15291529
broken timer IRQ sources.
15301530

15311531
noisapnp [ISAPNP] Disables ISA PnP code.
@@ -1689,7 +1689,7 @@ and is between 256 and 4096 characters. It is defined in the file
16891689
disable the use of PCIE advanced error reporting.
16901690
nodomains [PCI] Disable support for multiple PCI
16911691
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
16931693
Configuration
16941694
nomsi [MSI] If the PCI_MSI kernel config parameter is
16951695
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
23802380
reported either.
23812381

23822382
unknown_nmi_panic
2383-
[X86-32,X86-64]
2383+
[X86]
23842384
Set unknown_nmi_panic=1 early on boot.
23852385

23862386
usbcore.autosuspend=
@@ -2447,12 +2447,12 @@ and is between 256 and 4096 characters. It is defined in the file
24472447
medium is write-protected).
24482448
Example: quirks=0419:aaf5:rl,0421:0433:rc
24492449

2450-
vdso= [X86-32,SH,x86-64]
2450+
vdso= [X86,SH]
24512451
vdso=2: enable compat VDSO (default with COMPAT_VDSO)
24522452
vdso=1: enable VDSO (default)
24532453
vdso=0: disable VDSO mapping
24542454

2455-
vdso32= [X86-32,X86-64]
2455+
vdso32= [X86]
24562456
vdso32=2: enable compat VDSO (default with COMPAT_VDSO)
24572457
vdso32=1: enable 32-bit VDSO (default)
24582458
vdso32=0: disable 32-bit VDSO mapping

Documentation/networking/bonding.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1242,7 +1242,7 @@ monitoring is enabled, and vice-versa.
12421242
To add ARP targets:
12431243
# echo +192.168.0.100 > /sys/class/net/bond0/bonding/arp_ip_target
12441244
# echo +192.168.0.101 > /sys/class/net/bond0/bonding/arp_ip_target
1245-
NOTE: up to 10 target addresses may be specified.
1245+
NOTE: up to 16 target addresses may be specified.
12461246

12471247
To remove an ARP target:
12481248
# echo -192.168.0.100 > /sys/class/net/bond0/bonding/arp_ip_target

0 commit comments

Comments
 (0)