mirror of https://gitee.com/openkylin/linux.git
Merge branch 'imx/dt' into next/dt
This commit is contained in:
commit
6124a4e430
|
@ -45,6 +45,11 @@ modules.builtin
|
|||
/Module.markers
|
||||
/Module.symvers
|
||||
|
||||
#
|
||||
# Debian directory (make deb-pkg)
|
||||
#
|
||||
/debian/
|
||||
|
||||
#
|
||||
# git files that we don't want to ignore even it they are dot-files
|
||||
#
|
||||
|
|
3
.mailmap
3
.mailmap
|
@ -73,8 +73,7 @@ Linas Vepstas <linas@austin.ibm.com>
|
|||
Mark Brown <broonie@sirena.org.uk>
|
||||
Matthieu CASTET <castet.matthieu@free.fr>
|
||||
Mayuresh Janorkar <mayur@ti.com>
|
||||
Michael Buesch <mb@bu3sch.de>
|
||||
Michael Buesch <mbuesch@freenet.de>
|
||||
Michael Buesch <m@bues.ch>
|
||||
Michel Dänzer <michel@tungstengraphics.com>
|
||||
Mitesh shah <mshah@teja.com>
|
||||
Morten Welinder <terra@gnome.org>
|
||||
|
|
|
@ -14,7 +14,7 @@ Why: /proc/<pid>/oom_adj allows userspace to influence the oom killer's
|
|||
|
||||
A much more powerful interface, /proc/<pid>/oom_score_adj, was
|
||||
introduced with the oom killer rewrite that allows users to increase or
|
||||
decrease the badness() score linearly. This interface will replace
|
||||
decrease the badness score linearly. This interface will replace
|
||||
/proc/<pid>/oom_adj.
|
||||
|
||||
A warning will be emitted to the kernel log if an application uses this
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
What: /sys/bus/i2c/devices/.../device
|
||||
Date: February 2011
|
||||
Contact: Minkyu Kang <mk7.kang@samsung.com>
|
||||
Description:
|
||||
show what device is attached
|
||||
NONE - no device
|
||||
USB - USB device is attached
|
||||
UART - UART is attached
|
||||
CHARGER - Charger is attaced
|
||||
JIG - JIG is attached
|
||||
|
||||
What: /sys/bus/i2c/devices/.../switch
|
||||
Date: February 2011
|
||||
Contact: Minkyu Kang <mk7.kang@samsung.com>
|
||||
Description:
|
||||
show or set the state of manual switch
|
||||
VAUDIO - switch to VAUDIO path
|
||||
UART - switch to UART path
|
||||
AUDIO - switch to AUDIO path
|
||||
DHOST - switch to DHOST path
|
||||
AUTO - switch automatically by device
|
|
@ -10,3 +10,26 @@ KernelVersion: 2.6.35
|
|||
Contact: masa-korg@dsn.okisemi.com
|
||||
Description: Write/read Option ROM data.
|
||||
|
||||
|
||||
What: /sys/module/ehci_hcd/drivers/.../uframe_periodic_max
|
||||
Date: July 2011
|
||||
KernelVersion: 3.1
|
||||
Contact: Kirill Smelkov <kirr@mns.spb.ru>
|
||||
Description: Maximum time allowed for periodic transfers per microframe (μs)
|
||||
|
||||
[ USB 2.0 sets maximum allowed time for periodic transfers per
|
||||
microframe to be 80%, that is 100 microseconds out of 125
|
||||
microseconds (full microframe).
|
||||
|
||||
However there are cases, when 80% max isochronous bandwidth is
|
||||
too limiting. For example two video streams could require 110
|
||||
microseconds of isochronous bandwidth per microframe to work
|
||||
together. ]
|
||||
|
||||
Through this setting it is possible to raise the limit so that
|
||||
the host controller would allow allocating more than 100
|
||||
microseconds of periodic bandwidth per microframe.
|
||||
|
||||
Beware, non-standard modes are usually not thoroughly tested by
|
||||
hardware designers, and the hardware can malfunction when this
|
||||
setting differ from default 100.
|
||||
|
|
|
@ -613,13 +613,13 @@ to use the dma_sync_*() interfaces.
|
|||
pass_to_upper_layers(cp->rx_buf);
|
||||
make_and_setup_new_rx_buf(cp);
|
||||
} else {
|
||||
/* Just sync the buffer and give it back
|
||||
* to the card.
|
||||
/* CPU should not write to
|
||||
* DMA_FROM_DEVICE-mapped area,
|
||||
* so dma_sync_single_for_device() is
|
||||
* not needed here. It would be required
|
||||
* for DMA_BIDIRECTIONAL mapping if
|
||||
* the memory was modified.
|
||||
*/
|
||||
dma_sync_single_for_device(&cp->dev,
|
||||
cp->rx_dma,
|
||||
cp->rx_len,
|
||||
DMA_FROM_DEVICE);
|
||||
give_rx_buf_to_card(cp);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -210,7 +210,7 @@ for (i = 0; i < reqbuf.count; i++)
|
|||
<programlisting>
|
||||
&v4l2-requestbuffers; reqbuf;
|
||||
/* Our current format uses 3 planes per buffer */
|
||||
#define FMT_NUM_PLANES = 3;
|
||||
#define FMT_NUM_PLANES = 3
|
||||
|
||||
struct {
|
||||
void *start[FMT_NUM_PLANES];
|
||||
|
|
|
@ -5,8 +5,8 @@ Although RCU is usually used to protect read-mostly data structures,
|
|||
it is possible to use RCU to provide dynamic non-maskable interrupt
|
||||
handlers, as well as dynamic irq handlers. This document describes
|
||||
how to do this, drawing loosely from Zwane Mwaikambo's NMI-timer
|
||||
work in "arch/i386/oprofile/nmi_timer_int.c" and in
|
||||
"arch/i386/kernel/traps.c".
|
||||
work in "arch/x86/oprofile/nmi_timer_int.c" and in
|
||||
"arch/x86/kernel/traps.c".
|
||||
|
||||
The relevant pieces of code are listed below, each followed by a
|
||||
brief explanation.
|
||||
|
|
|
@ -53,8 +53,8 @@ kernel patches.
|
|||
|
||||
12: Has been tested with CONFIG_PREEMPT, CONFIG_DEBUG_PREEMPT,
|
||||
CONFIG_DEBUG_SLAB, CONFIG_DEBUG_PAGEALLOC, CONFIG_DEBUG_MUTEXES,
|
||||
CONFIG_DEBUG_SPINLOCK, CONFIG_DEBUG_ATOMIC_SLEEP all simultaneously
|
||||
enabled.
|
||||
CONFIG_DEBUG_SPINLOCK, CONFIG_DEBUG_ATOMIC_SLEEP, CONFIG_PROVE_RCU
|
||||
and CONFIG_DEBUG_OBJECTS_RCU_HEAD all simultaneously enabled.
|
||||
|
||||
13: Has been build- and runtime tested with and without CONFIG_SMP and
|
||||
CONFIG_PREEMPT.
|
||||
|
|
|
@ -8,10 +8,13 @@ Introduction
|
|||
|
||||
The Samsung S3C24XX range of ARM9 System-on-Chip CPUs are supported
|
||||
by the 's3c2410' architecture of ARM Linux. Currently the S3C2410,
|
||||
S3C2412, S3C2413, S3C2416 S3C2440, S3C2442, S3C2443 and S3C2450 devices
|
||||
S3C2412, S3C2413, S3C2416, S3C2440, S3C2442, S3C2443 and S3C2450 devices
|
||||
are supported.
|
||||
|
||||
Support for the S3C2400 and S3C24A0 series are in progress.
|
||||
Support for the S3C2400 and S3C24A0 series was never completed and the
|
||||
corresponding code has been removed after a while. If someone wishes to
|
||||
revive this effort, partial support can be retrieved from earlier Linux
|
||||
versions.
|
||||
|
||||
The S3C2416 and S3C2450 devices are very similar and S3C2450 support is
|
||||
included under the arch/arm/mach-s3c2416 directory. Note, whilst core
|
||||
|
|
|
@ -45,9 +45,13 @@ device.
|
|||
|
||||
rq_affinity (RW)
|
||||
----------------
|
||||
If this option is enabled, the block layer will migrate request completions
|
||||
to the CPU that originally submitted the request. For some workloads
|
||||
this provides a significant reduction in CPU cycles due to caching effects.
|
||||
If this option is '1', the block layer will migrate request completions to the
|
||||
cpu "group" that originally submitted the request. For some workloads this
|
||||
provides a significant reduction in CPU cycles due to caching effects.
|
||||
|
||||
For storage configurations that need to maximize distribution of completion
|
||||
processing setting this option to '2' forces the completion to run on the
|
||||
requesting cpu (bypassing the "group" aggregation logic).
|
||||
|
||||
scheduler (RW)
|
||||
--------------
|
||||
|
|
|
@ -214,7 +214,7 @@ replacing "/usr/src" with wherever you keep your Linux kernel source tree:
|
|||
make config
|
||||
make bzImage (or zImage)
|
||||
|
||||
Then install "arch/i386/boot/bzImage" or "arch/i386/boot/zImage" as your
|
||||
Then install "arch/x86/boot/bzImage" or "arch/x86/boot/zImage" as your
|
||||
standard kernel, run lilo if appropriate, and reboot.
|
||||
|
||||
To create the necessary devices in /dev, the "make_rd" script included in
|
||||
|
|
|
@ -64,9 +64,9 @@ the RAM disk dynamically grows as data is being written into it, a size field
|
|||
is not required. Bits 11 to 13 are not currently used and may as well be zero.
|
||||
These numbers are no magical secrets, as seen below:
|
||||
|
||||
./arch/i386/kernel/setup.c:#define RAMDISK_IMAGE_START_MASK 0x07FF
|
||||
./arch/i386/kernel/setup.c:#define RAMDISK_PROMPT_FLAG 0x8000
|
||||
./arch/i386/kernel/setup.c:#define RAMDISK_LOAD_FLAG 0x4000
|
||||
./arch/x86/kernel/setup.c:#define RAMDISK_IMAGE_START_MASK 0x07FF
|
||||
./arch/x86/kernel/setup.c:#define RAMDISK_PROMPT_FLAG 0x8000
|
||||
./arch/x86/kernel/setup.c:#define RAMDISK_LOAD_FLAG 0x4000
|
||||
|
||||
Consider a typical two floppy disk setup, where you will have the
|
||||
kernel on disk one, and have already put a RAM disk image onto disk #2.
|
||||
|
@ -85,7 +85,7 @@ The command line equivalent is: "prompt_ramdisk=1"
|
|||
Putting that together gives 2^15 + 2^14 + 0 = 49152 for an rdev word.
|
||||
So to create disk one of the set, you would do:
|
||||
|
||||
/usr/src/linux# cat arch/i386/boot/zImage > /dev/fd0
|
||||
/usr/src/linux# cat arch/x86/boot/zImage > /dev/fd0
|
||||
/usr/src/linux# rdev /dev/fd0 /dev/fd0
|
||||
/usr/src/linux# rdev -r /dev/fd0 49152
|
||||
|
||||
|
|
|
@ -380,7 +380,7 @@ will be charged as a new owner of it.
|
|||
|
||||
5.2 stat file
|
||||
|
||||
memory.stat file includes following statistics
|
||||
5.2.1 memory.stat file includes following statistics
|
||||
|
||||
# per-memory cgroup local status
|
||||
cache - # of bytes of page cache memory.
|
||||
|
@ -438,6 +438,89 @@ Note:
|
|||
file_mapped is accounted only when the memory cgroup is owner of page
|
||||
cache.)
|
||||
|
||||
5.2.2 memory.vmscan_stat
|
||||
|
||||
memory.vmscan_stat includes statistics information for memory scanning and
|
||||
freeing, reclaiming. The statistics shows memory scanning information since
|
||||
memory cgroup creation and can be reset to 0 by writing 0 as
|
||||
|
||||
#echo 0 > ../memory.vmscan_stat
|
||||
|
||||
This file contains following statistics.
|
||||
|
||||
[param]_[file_or_anon]_pages_by_[reason]_[under_heararchy]
|
||||
[param]_elapsed_ns_by_[reason]_[under_hierarchy]
|
||||
|
||||
For example,
|
||||
|
||||
scanned_file_pages_by_limit indicates the number of scanned
|
||||
file pages at vmscan.
|
||||
|
||||
Now, 3 parameters are supported
|
||||
|
||||
scanned - the number of pages scanned by vmscan
|
||||
rotated - the number of pages activated at vmscan
|
||||
freed - the number of pages freed by vmscan
|
||||
|
||||
If "rotated" is high against scanned/freed, the memcg seems busy.
|
||||
|
||||
Now, 2 reason are supported
|
||||
|
||||
limit - the memory cgroup's limit
|
||||
system - global memory pressure + softlimit
|
||||
(global memory pressure not under softlimit is not handled now)
|
||||
|
||||
When under_hierarchy is added in the tail, the number indicates the
|
||||
total memcg scan of its children and itself.
|
||||
|
||||
elapsed_ns is a elapsed time in nanosecond. This may include sleep time
|
||||
and not indicates CPU usage. So, please take this as just showing
|
||||
latency.
|
||||
|
||||
Here is an example.
|
||||
|
||||
# cat /cgroup/memory/A/memory.vmscan_stat
|
||||
scanned_pages_by_limit 9471864
|
||||
scanned_anon_pages_by_limit 6640629
|
||||
scanned_file_pages_by_limit 2831235
|
||||
rotated_pages_by_limit 4243974
|
||||
rotated_anon_pages_by_limit 3971968
|
||||
rotated_file_pages_by_limit 272006
|
||||
freed_pages_by_limit 2318492
|
||||
freed_anon_pages_by_limit 962052
|
||||
freed_file_pages_by_limit 1356440
|
||||
elapsed_ns_by_limit 351386416101
|
||||
scanned_pages_by_system 0
|
||||
scanned_anon_pages_by_system 0
|
||||
scanned_file_pages_by_system 0
|
||||
rotated_pages_by_system 0
|
||||
rotated_anon_pages_by_system 0
|
||||
rotated_file_pages_by_system 0
|
||||
freed_pages_by_system 0
|
||||
freed_anon_pages_by_system 0
|
||||
freed_file_pages_by_system 0
|
||||
elapsed_ns_by_system 0
|
||||
scanned_pages_by_limit_under_hierarchy 9471864
|
||||
scanned_anon_pages_by_limit_under_hierarchy 6640629
|
||||
scanned_file_pages_by_limit_under_hierarchy 2831235
|
||||
rotated_pages_by_limit_under_hierarchy 4243974
|
||||
rotated_anon_pages_by_limit_under_hierarchy 3971968
|
||||
rotated_file_pages_by_limit_under_hierarchy 272006
|
||||
freed_pages_by_limit_under_hierarchy 2318492
|
||||
freed_anon_pages_by_limit_under_hierarchy 962052
|
||||
freed_file_pages_by_limit_under_hierarchy 1356440
|
||||
elapsed_ns_by_limit_under_hierarchy 351386416101
|
||||
scanned_pages_by_system_under_hierarchy 0
|
||||
scanned_anon_pages_by_system_under_hierarchy 0
|
||||
scanned_file_pages_by_system_under_hierarchy 0
|
||||
rotated_pages_by_system_under_hierarchy 0
|
||||
rotated_anon_pages_by_system_under_hierarchy 0
|
||||
rotated_file_pages_by_system_under_hierarchy 0
|
||||
freed_pages_by_system_under_hierarchy 0
|
||||
freed_anon_pages_by_system_under_hierarchy 0
|
||||
freed_file_pages_by_system_under_hierarchy 0
|
||||
elapsed_ns_by_system_under_hierarchy 0
|
||||
|
||||
5.3 swappiness
|
||||
|
||||
Similar to /proc/sys/vm/swappiness, but affecting a hierarchy of groups only.
|
||||
|
|
|
@ -168,7 +168,7 @@ in-chipset dynamic frequency switching to policy->min, the upper limit
|
|||
to policy->max, and -if supported- select a performance-oriented
|
||||
setting when policy->policy is CPUFREQ_POLICY_PERFORMANCE, and a
|
||||
powersaving-oriented setting when CPUFREQ_POLICY_POWERSAVE. Also check
|
||||
the reference implementation in arch/i386/kernel/cpu/cpufreq/longrun.c
|
||||
the reference implementation in drivers/cpufreq/longrun.c
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
prima2 "cb" evalutation board
|
||||
Required root node properties:
|
||||
- compatible = "sirf,prima2-cb", "sirf,prima2";
|
|
@ -0,0 +1,7 @@
|
|||
Xilinx Zynq EP107 Emulation Platform board
|
||||
|
||||
This board is an emulation platform for the Zynq product which is
|
||||
based on an ARM Cortex A9 processor.
|
||||
|
||||
Required root node properties:
|
||||
- compatible = "xlnx,zynq-ep107";
|
|
@ -0,0 +1,17 @@
|
|||
* Freescale Smart Direct Memory Access (SDMA) Controller for i.MX
|
||||
|
||||
Required properties:
|
||||
- compatible : Should be "fsl,<chip>-sdma"
|
||||
- reg : Should contain SDMA registers location and length
|
||||
- interrupts : Should contain SDMA interrupt
|
||||
- fsl,sdma-ram-script-name : Should contain the full path of SDMA RAM
|
||||
scripts firmware
|
||||
|
||||
Examples:
|
||||
|
||||
sdma@83fb0000 {
|
||||
compatible = "fsl,imx51-sdma", "fsl,imx35-sdma";
|
||||
reg = <0x83fb0000 0x4000>;
|
||||
interrupts = <6>;
|
||||
fsl,sdma-ram-script-name = "sdma-imx51.bin";
|
||||
};
|
|
@ -0,0 +1,34 @@
|
|||
* Freescale Enhanced Secure Digital Host Controller (eSDHC) for i.MX
|
||||
|
||||
The Enhanced Secure Digital Host Controller on Freescale i.MX family
|
||||
provides an interface for MMC, SD, and SDIO types of memory cards.
|
||||
|
||||
Required properties:
|
||||
- compatible : Should be "fsl,<chip>-esdhc"
|
||||
- reg : Should contain eSDHC registers location and length
|
||||
- interrupts : Should contain eSDHC interrupt
|
||||
|
||||
Optional properties:
|
||||
- fsl,card-wired : Indicate the card is wired to host permanently
|
||||
- fsl,cd-internal : Indicate to use controller internal card detection
|
||||
- fsl,wp-internal : Indicate to use controller internal write protection
|
||||
- cd-gpios : Specify GPIOs for card detection
|
||||
- wp-gpios : Specify GPIOs for write protection
|
||||
|
||||
Examples:
|
||||
|
||||
esdhc@70004000 {
|
||||
compatible = "fsl,imx51-esdhc";
|
||||
reg = <0x70004000 0x4000>;
|
||||
interrupts = <1>;
|
||||
fsl,cd-internal;
|
||||
fsl,wp-internal;
|
||||
};
|
||||
|
||||
esdhc@70008000 {
|
||||
compatible = "fsl,imx51-esdhc";
|
||||
reg = <0x70008000 0x4000>;
|
||||
interrupts = <2>;
|
||||
cd-gpios = <&gpio0 6 0>; /* GPIO1_6 */
|
||||
wp-gpios = <&gpio0 5 0>; /* GPIO1_5 */
|
||||
};
|
|
@ -0,0 +1,24 @@
|
|||
* Freescale Fast Ethernet Controller (FEC)
|
||||
|
||||
Required properties:
|
||||
- compatible : Should be "fsl,<soc>-fec"
|
||||
- reg : Address and length of the register set for the device
|
||||
- interrupts : Should contain fec interrupt
|
||||
- phy-mode : String, operation mode of the PHY interface.
|
||||
Supported values are: "mii", "gmii", "sgmii", "tbi", "rmii",
|
||||
"rgmii", "rgmii-id", "rgmii-rxid", "rgmii-txid", "rtbi", "smii".
|
||||
- phy-reset-gpios : Should specify the gpio for phy reset
|
||||
|
||||
Optional properties:
|
||||
- local-mac-address : 6 bytes, mac address
|
||||
|
||||
Example:
|
||||
|
||||
fec@83fec000 {
|
||||
compatible = "fsl,imx51-fec", "fsl,imx27-fec";
|
||||
reg = <0x83fec000 0x4000>;
|
||||
interrupts = <87>;
|
||||
phy-mode = "mii";
|
||||
phy-reset-gpios = <&gpio1 14 0>; /* GPIO2_14 */
|
||||
local-mac-address = [00 04 9F 01 1B B9];
|
||||
};
|
|
@ -0,0 +1,5 @@
|
|||
OLPC XO-1 RTC
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
Required properties:
|
||||
- compatible : "olpc,xo1-rtc"
|
|
@ -0,0 +1,19 @@
|
|||
* Freescale i.MX Universal Asynchronous Receiver/Transmitter (UART)
|
||||
|
||||
Required properties:
|
||||
- compatible : Should be "fsl,<soc>-uart"
|
||||
- reg : Address and length of the register set for the device
|
||||
- interrupts : Should contain uart interrupt
|
||||
|
||||
Optional properties:
|
||||
- fsl,uart-has-rtscts : Indicate the uart has rts and cts
|
||||
- fsl,irda-mode : Indicate the uart supports irda mode
|
||||
|
||||
Example:
|
||||
|
||||
uart@73fbc000 {
|
||||
compatible = "fsl,imx51-uart", "fsl,imx21-uart";
|
||||
reg = <0x73fbc000 0x4000>;
|
||||
interrupts = <31>;
|
||||
fsl,uart-has-rtscts;
|
||||
};
|
|
@ -104,4 +104,4 @@ Then in the module init function is would do:
|
|||
|
||||
And assuming 'dev' is the struct device passed into the probe hook, the driver
|
||||
probe function would do something like:
|
||||
create_device(&mydriver_class, dev, chrdev, &private_data, "my_name");
|
||||
device_create(&mydriver_class, dev, chrdev, &private_data, "my_name");
|
||||
|
|
|
@ -30,7 +30,7 @@ management, and hot plug. In particular, the model dictated by Intel and
|
|||
Microsoft (namely ACPI) ensures that almost every device on almost any bus
|
||||
on an x86-compatible system can work within this paradigm. Of course,
|
||||
not every bus is able to support all such operations, although most
|
||||
buses support a most of those operations.
|
||||
buses support most of those operations.
|
||||
|
||||
|
||||
Downstream Access
|
||||
|
@ -46,25 +46,29 @@ struct pci_dev now looks like this:
|
|||
struct pci_dev {
|
||||
...
|
||||
|
||||
struct device dev;
|
||||
struct device dev; /* Generic device interface */
|
||||
...
|
||||
};
|
||||
|
||||
Note first that it is statically allocated. This means only one allocation on
|
||||
device discovery. Note also that it is at the _end_ of struct pci_dev. This is
|
||||
to make people think about what they're doing when switching between the bus
|
||||
driver and the global driver; and to prevent against mindless casts between
|
||||
the two.
|
||||
Note first that the struct device dev within the struct pci_dev is
|
||||
statically allocated. This means only one allocation on device discovery.
|
||||
|
||||
Note also that that struct device dev is not necessarily defined at the
|
||||
front of the pci_dev structure. This is to make people think about what
|
||||
they're doing when switching between the bus driver and the global driver,
|
||||
and to discourage meaningless and incorrect casts between the two.
|
||||
|
||||
The PCI bus layer freely accesses the fields of struct device. It knows about
|
||||
the structure of struct pci_dev, and it should know the structure of struct
|
||||
device. Individual PCI device drivers that have been converted to the current
|
||||
driver model generally do not and should not touch the fields of struct device,
|
||||
unless there is a strong compelling reason to do so.
|
||||
unless there is a compelling reason to do so.
|
||||
|
||||
This abstraction is prevention of unnecessary pain during transitional phases.
|
||||
If the name of the field changes or is removed, then every downstream driver
|
||||
will break. On the other hand, if only the bus layer (and not the device
|
||||
layer) accesses struct device, it is only that layer that needs to change.
|
||||
The above abstraction prevents unnecessary pain during transitional phases.
|
||||
If it were not done this way, then when a field was renamed or removed, every
|
||||
downstream driver would break. On the other hand, if only the bus layer
|
||||
(and not the device layer) accesses the struct device, it is only the bus
|
||||
layer that needs to change.
|
||||
|
||||
|
||||
User Interface
|
||||
|
@ -73,15 +77,27 @@ User Interface
|
|||
By virtue of having a complete hierarchical view of all the devices in the
|
||||
system, exporting a complete hierarchical view to userspace becomes relatively
|
||||
easy. This has been accomplished by implementing a special purpose virtual
|
||||
file system named sysfs. It is hence possible for the user to mount the
|
||||
whole sysfs filesystem anywhere in userspace.
|
||||
file system named sysfs.
|
||||
|
||||
This can be done permanently by providing the following entry into the
|
||||
/etc/fstab (under the provision that the mount point does exist, of course):
|
||||
Almost all mainstream Linux distros mount this filesystem automatically; you
|
||||
can see some variation of the following in the output of the "mount" command:
|
||||
|
||||
none /sys sysfs defaults 0 0
|
||||
$ mount
|
||||
...
|
||||
none on /sys type sysfs (rw,noexec,nosuid,nodev)
|
||||
...
|
||||
$
|
||||
|
||||
Or by hand on the command line:
|
||||
The auto-mounting of sysfs is typically accomplished by an entry similar to
|
||||
the following in the /etc/fstab file:
|
||||
|
||||
none /sys sysfs defaults 0 0
|
||||
|
||||
or something similar in the /lib/init/fstab file on Debian-based systems:
|
||||
|
||||
none /sys sysfs nodev,noexec,nosuid 0 0
|
||||
|
||||
If sysfs is not automatically mounted, you can always do it manually with:
|
||||
|
||||
# mount -t sysfs sysfs /sys
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@ in a video= option, fbmem considers that to be a global video mode option.
|
|||
|
||||
Valid mode specifiers (mode_option argument):
|
||||
|
||||
<xres>x<yres>[M][R][-<bpp>][@<refresh>][i][m]
|
||||
<xres>x<yres>[M][R][-<bpp>][@<refresh>][i][m][eDd]
|
||||
<name>[-<bpp>][@<refresh>]
|
||||
|
||||
with <xres>, <yres>, <bpp> and <refresh> decimal numbers and <name> a string.
|
||||
|
@ -36,6 +36,21 @@ pixels and 1.8% of yres).
|
|||
|
||||
Sample usage: 1024x768M@60m - CVT timing with margins
|
||||
|
||||
DRM drivers also add options to enable or disable outputs:
|
||||
|
||||
'e' will force the display to be enabled, i.e. it will override the detection
|
||||
if a display is connected. 'D' will force the display to be enabled and use
|
||||
digital output. This is useful for outputs that have both analog and digital
|
||||
signals (e.g. HDMI and DVI-I). For other outputs it behaves like 'e'. If 'd'
|
||||
is specified the output is disabled.
|
||||
|
||||
You can additionally specify which output the options matches to.
|
||||
To force the VGA output to be enabled and drive a specific mode say:
|
||||
video=VGA-1:1280x1024@60me
|
||||
|
||||
Specifying the option multiple times for different ports is possible, e.g.:
|
||||
video=LVDS-1:d video=HDMI-1:D
|
||||
|
||||
***** oOo ***** oOo ***** oOo ***** oOo ***** oOo ***** oOo ***** oOo *****
|
||||
|
||||
What is the VESA(TM) Coordinated Video Timings (CVT)?
|
||||
|
@ -132,5 +147,5 @@ There may be more modes.
|
|||
tridentfb - Trident (Cyber)blade chipset frame buffer
|
||||
vt8623fb - VIA 8623 frame buffer
|
||||
|
||||
BTW, only a few drivers use this at the moment. Others are to follow
|
||||
(feel free to send patches).
|
||||
BTW, only a few fb drivers use this at the moment. Others are to follow
|
||||
(feel free to send patches). The DRM drivers also support this.
|
||||
|
|
|
@ -184,7 +184,7 @@ Why: /proc/<pid>/oom_adj allows userspace to influence the oom killer's
|
|||
|
||||
A much more powerful interface, /proc/<pid>/oom_score_adj, was
|
||||
introduced with the oom killer rewrite that allows users to increase or
|
||||
decrease the badness() score linearly. This interface will replace
|
||||
decrease the badness score linearly. This interface will replace
|
||||
/proc/<pid>/oom_adj.
|
||||
|
||||
A warning will be emitted to the kernel log if an application uses this
|
||||
|
@ -193,20 +193,6 @@ Why: /proc/<pid>/oom_adj allows userspace to influence the oom killer's
|
|||
|
||||
---------------------------
|
||||
|
||||
What: CS5535/CS5536 obsolete GPIO driver
|
||||
When: June 2011
|
||||
Files: drivers/staging/cs5535_gpio/*
|
||||
Check: drivers/staging/cs5535_gpio/cs5535_gpio.c
|
||||
Why: A newer driver replaces this; it is drivers/gpio/cs5535-gpio.c, and
|
||||
integrates with the Linux GPIO subsystem. The old driver has been
|
||||
moved to staging, and will be removed altogether around 2.6.40.
|
||||
Please test the new driver, and ensure that the functionality you
|
||||
need and any bugfixes from the old driver are available in the new
|
||||
one.
|
||||
Who: Andres Salomon <dilinger@queued.net>
|
||||
|
||||
--------------------------
|
||||
|
||||
What: remove EXPORT_SYMBOL(kernel_thread)
|
||||
When: August 2006
|
||||
Files: arch/*/kernel/*_ksyms.c
|
||||
|
@ -294,7 +280,7 @@ When: The schedule was July 2008, but it was decided that we are going to keep t
|
|||
Why: The support code for the old firmware hurts code readability/maintainability
|
||||
and slightly hurts runtime performance. Bugfixes for the old firmware
|
||||
are not provided by Broadcom anymore.
|
||||
Who: Michael Buesch <mb@bu3sch.de>
|
||||
Who: Michael Buesch <m@bues.ch>
|
||||
|
||||
---------------------------
|
||||
|
||||
|
@ -430,7 +416,7 @@ Who: Avi Kivity <avi@redhat.com>
|
|||
----------------------------
|
||||
|
||||
What: iwlwifi 50XX module parameters
|
||||
When: 2.6.40
|
||||
When: 3.0
|
||||
Why: The "..50" modules parameters were used to configure 5000 series and
|
||||
up devices; different set of module parameters also available for 4965
|
||||
with same functionalities. Consolidate both set into single place
|
||||
|
@ -441,7 +427,7 @@ Who: Wey-Yi Guy <wey-yi.w.guy@intel.com>
|
|||
----------------------------
|
||||
|
||||
What: iwl4965 alias support
|
||||
When: 2.6.40
|
||||
When: 3.0
|
||||
Why: Internal alias support has been present in module-init-tools for some
|
||||
time, the MODULE_ALIAS("iwl4965") boilerplate aliases can be removed
|
||||
with no impact.
|
||||
|
@ -474,15 +460,8 @@ Who: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|||
|
||||
----------------------------
|
||||
|
||||
What: DMA_xxBIT_MASK macros
|
||||
When: Jun 2011
|
||||
Why: DMA_xxBIT_MASK macros were replaced with DMA_BIT_MASK() macros.
|
||||
Who: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
||||
|
||||
----------------------------
|
||||
|
||||
What: iwlwifi disable_hw_scan module parameters
|
||||
When: 2.6.40
|
||||
When: 3.0
|
||||
Why: Hareware scan is the prefer method for iwlwifi devices for
|
||||
scanning operation. Remove software scan support for all the
|
||||
iwlwifi devices.
|
||||
|
@ -491,16 +470,6 @@ Who: Wey-Yi Guy <wey-yi.w.guy@intel.com>
|
|||
|
||||
----------------------------
|
||||
|
||||
What: access to nfsd auth cache through sys_nfsservctl or '.' files
|
||||
in the 'nfsd' filesystem.
|
||||
When: 2.6.40
|
||||
Why: This is a legacy interface which have been replaced by a more
|
||||
dynamic cache. Continuing to maintain this interface is an
|
||||
unnecessary burden.
|
||||
Who: NeilBrown <neilb@suse.de>
|
||||
|
||||
----------------------------
|
||||
|
||||
What: Legacy, non-standard chassis intrusion detection interface.
|
||||
When: June 2011
|
||||
Why: The adm9240, w83792d and w83793 hardware monitoring drivers have
|
||||
|
@ -518,22 +487,6 @@ Files: net/netfilter/xt_connlimit.c
|
|||
|
||||
----------------------------
|
||||
|
||||
What: noswapaccount kernel command line parameter
|
||||
When: 2.6.40
|
||||
Why: The original implementation of memsw feature enabled by
|
||||
CONFIG_CGROUP_MEM_RES_CTLR_SWAP could be disabled by the noswapaccount
|
||||
kernel parameter (introduced in 2.6.29-rc1). Later on, this decision
|
||||
turned out to be not ideal because we cannot have the feature compiled
|
||||
in and disabled by default and let only interested to enable it
|
||||
(e.g. general distribution kernels might need it). Therefore we have
|
||||
added swapaccount[=0|1] parameter (introduced in 2.6.37) which provides
|
||||
the both possibilities. If we remove noswapaccount we will have
|
||||
less command line parameters with the same functionality and we
|
||||
can also cleanup the parameter handling a bit ().
|
||||
Who: Michal Hocko <mhocko@suse.cz>
|
||||
|
||||
----------------------------
|
||||
|
||||
What: ipt_addrtype match include file
|
||||
When: 2012
|
||||
Why: superseded by xt_addrtype
|
||||
|
@ -552,7 +505,7 @@ Who: Jean Delvare <khali@linux-fr.org>
|
|||
----------------------------
|
||||
|
||||
What: Support for UVCIOC_CTRL_ADD in the uvcvideo driver
|
||||
When: 2.6.42
|
||||
When: 3.2
|
||||
Why: The information passed to the driver by this ioctl is now queried
|
||||
dynamically from the device.
|
||||
Who: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
||||
|
@ -560,7 +513,7 @@ Who: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|||
----------------------------
|
||||
|
||||
What: Support for UVCIOC_CTRL_MAP_OLD in the uvcvideo driver
|
||||
When: 2.6.42
|
||||
When: 3.2
|
||||
Why: Used only by applications compiled against older driver versions.
|
||||
Superseded by UVCIOC_CTRL_MAP which supports V4L2 menu controls.
|
||||
Who: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
||||
|
@ -568,7 +521,7 @@ Who: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|||
----------------------------
|
||||
|
||||
What: Support for UVCIOC_CTRL_GET and UVCIOC_CTRL_SET in the uvcvideo driver
|
||||
When: 2.6.42
|
||||
When: 3.2
|
||||
Why: Superseded by the UVCIOC_CTRL_QUERY ioctl.
|
||||
Who: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
||||
|
||||
|
@ -595,3 +548,10 @@ Why: Just opening a V4L device should not change the state of the hardware
|
|||
Who: Hans Verkuil <hans.verkuil@cisco.com>
|
||||
|
||||
----------------------------
|
||||
|
||||
What: g_file_storage driver
|
||||
When: 3.8
|
||||
Why: This driver has been superseded by g_mass_storage.
|
||||
Who: Alan Stern <stern@rowland.harvard.edu>
|
||||
|
||||
----------------------------
|
||||
|
|
|
@ -52,7 +52,7 @@ ata *);
|
|||
void (*put_link) (struct dentry *, struct nameidata *, void *);
|
||||
void (*truncate) (struct inode *);
|
||||
int (*permission) (struct inode *, int, unsigned int);
|
||||
int (*check_acl)(struct inode *, int);
|
||||
int (*get_acl)(struct inode *, int);
|
||||
int (*setattr) (struct dentry *, struct iattr *);
|
||||
int (*getattr) (struct vfsmount *, struct dentry *, struct kstat *);
|
||||
int (*setxattr) (struct dentry *, const char *,const void *,size_t,int);
|
||||
|
@ -80,7 +80,7 @@ put_link: no
|
|||
truncate: yes (see below)
|
||||
setattr: yes
|
||||
permission: no (may not block if called in rcu-walk mode)
|
||||
check_acl: no
|
||||
get_acl: no
|
||||
getattr: no
|
||||
setxattr: yes
|
||||
getxattr: no
|
||||
|
@ -338,21 +338,21 @@ fl_release_private: maybe no
|
|||
|
||||
----------------------- lock_manager_operations ---------------------------
|
||||
prototypes:
|
||||
int (*fl_compare_owner)(struct file_lock *, struct file_lock *);
|
||||
void (*fl_notify)(struct file_lock *); /* unblock callback */
|
||||
int (*fl_grant)(struct file_lock *, struct file_lock *, int);
|
||||
void (*fl_release_private)(struct file_lock *);
|
||||
void (*fl_break)(struct file_lock *); /* break_lease callback */
|
||||
int (*fl_change)(struct file_lock **, int);
|
||||
int (*lm_compare_owner)(struct file_lock *, struct file_lock *);
|
||||
void (*lm_notify)(struct file_lock *); /* unblock callback */
|
||||
int (*lm_grant)(struct file_lock *, struct file_lock *, int);
|
||||
void (*lm_release_private)(struct file_lock *);
|
||||
void (*lm_break)(struct file_lock *); /* break_lease callback */
|
||||
int (*lm_change)(struct file_lock **, int);
|
||||
|
||||
locking rules:
|
||||
file_lock_lock may block
|
||||
fl_compare_owner: yes no
|
||||
fl_notify: yes no
|
||||
fl_grant: no no
|
||||
fl_release_private: maybe no
|
||||
fl_break: yes no
|
||||
fl_change yes no
|
||||
lm_compare_owner: yes no
|
||||
lm_notify: yes no
|
||||
lm_grant: no no
|
||||
lm_release_private: maybe no
|
||||
lm_break: yes no
|
||||
lm_change yes no
|
||||
|
||||
--------------------------- buffer_head -----------------------------------
|
||||
prototypes:
|
||||
|
|
|
@ -73,8 +73,8 @@ the following functions can be used instead:
|
|||
struct dentry *parent, u16 *value);
|
||||
struct dentry *debugfs_create_x32(const char *name, mode_t mode,
|
||||
struct dentry *parent, u32 *value);
|
||||
|
||||
Note that there is no debugfs_create_x64().
|
||||
struct dentry *debugfs_create_x64(const char *name, mode_t mode,
|
||||
struct dentry *parent, u64 *value);
|
||||
|
||||
These functions are useful as long as the developer knows the size of the
|
||||
value to be exported. Some types can have different widths on different
|
||||
|
|
|
@ -147,15 +147,6 @@ grpjquota=<file> during journal replay. They replace the above
|
|||
package for more details
|
||||
(http://sourceforge.net/projects/linuxquota).
|
||||
|
||||
bh (*) ext3 associates buffer heads to data pages to
|
||||
nobh (a) cache disk block mapping information
|
||||
(b) link pages into transaction to provide
|
||||
ordering guarantees.
|
||||
"bh" option forces use of buffer heads.
|
||||
"nobh" option tries to avoid associating buffer
|
||||
heads (supported only for "writeback" mode).
|
||||
|
||||
|
||||
Specification
|
||||
=============
|
||||
Ext3 shares all disk implementation with the ext2 filesystem, and adds
|
||||
|
@ -227,5 +218,5 @@ kernel source: <file:fs/ext3/>
|
|||
programs: http://e2fsprogs.sourceforge.net/
|
||||
http://ext2resize.sourceforge.net
|
||||
|
||||
useful links: http://www.ibm.com/developerworks/library/l-fs7.html
|
||||
http://www.ibm.com/developerworks/library/l-fs8.html
|
||||
useful links: http://www.ibm.com/developerworks/library/l-fs7/index.html
|
||||
http://www.ibm.com/developerworks/library/l-fs8/index.html
|
||||
|
|
|
@ -68,12 +68,12 @@ Note: More extensive information for getting started with ext4 can be
|
|||
'-o barriers=[0|1]' mount option for both ext3 and ext4 filesystems
|
||||
for a fair comparison. When tuning ext3 for best benchmark numbers,
|
||||
it is often worthwhile to try changing the data journaling mode; '-o
|
||||
data=writeback,nobh' can be faster for some workloads. (Note
|
||||
however that running mounted with data=writeback can potentially
|
||||
leave stale data exposed in recently written files in case of an
|
||||
unclean shutdown, which could be a security exposure in some
|
||||
situations.) Configuring the filesystem with a large journal can
|
||||
also be helpful for metadata-intensive workloads.
|
||||
data=writeback' can be faster for some workloads. (Note however that
|
||||
running mounted with data=writeback can potentially leave stale data
|
||||
exposed in recently written files in case of an unclean shutdown,
|
||||
which could be a security exposure in some situations.) Configuring
|
||||
the filesystem with a large journal can also be helpful for
|
||||
metadata-intensive workloads.
|
||||
|
||||
2. Features
|
||||
===========
|
||||
|
@ -272,14 +272,6 @@ grpjquota=<file> during journal replay. They replace the above
|
|||
package for more details
|
||||
(http://sourceforge.net/projects/linuxquota).
|
||||
|
||||
bh (*) ext4 associates buffer heads to data pages to
|
||||
nobh (a) cache disk block mapping information
|
||||
(b) link pages into transaction to provide
|
||||
ordering guarantees.
|
||||
"bh" option forces use of buffer heads.
|
||||
"nobh" option tries to avoid associating buffer
|
||||
heads (supported only for "writeback" mode).
|
||||
|
||||
stripe=n Number of filesystem blocks that mballoc will try
|
||||
to use for allocation size and alignment. For RAID5/6
|
||||
systems this should be the number of data
|
||||
|
@ -393,8 +385,7 @@ dioread_nolock locking. If the dioread_nolock option is specified
|
|||
write and convert the extent to initialized after IO
|
||||
completes. This approach allows ext4 code to avoid
|
||||
using inode mutex, which improves scalability on high
|
||||
speed storages. However this does not work with nobh
|
||||
option and the mount will fail. Nor does it work with
|
||||
speed storages. However this does not work with
|
||||
data journaling and dioread_nolock option will be
|
||||
ignored with kernel warning. Note that dioread_nolock
|
||||
code path is only used for extent-based files.
|
||||
|
|
|
@ -39,27 +39,17 @@ interoperability problems with future clients. Known issues:
|
|||
from a linux client are possible, but we aren't really
|
||||
conformant with the spec (for example, we don't use kerberos
|
||||
on the backchannel correctly).
|
||||
- no trunking support: no clients currently take advantage of
|
||||
trunking, but this is a mandatory feature, and its use is
|
||||
recommended to clients in a number of places. (E.g. to ensure
|
||||
timely renewal in case an existing connection's retry timeouts
|
||||
have gotten too long; see section 8.3 of the RFC.)
|
||||
Therefore, lack of this feature may cause future clients to
|
||||
fail.
|
||||
- Incomplete backchannel support: incomplete backchannel gss
|
||||
support and no support for BACKCHANNEL_CTL mean that
|
||||
callbacks (hence delegations and layouts) may not be
|
||||
available and clients confused by the incomplete
|
||||
implementation may fail.
|
||||
- Server reboot recovery is unsupported; if the server reboots,
|
||||
clients may fail.
|
||||
- We do not support SSV, which provides security for shared
|
||||
client-server state (thus preventing unauthorized tampering
|
||||
with locks and opens, for example). It is mandatory for
|
||||
servers to support this, though no clients use it yet.
|
||||
- Mandatory operations which we do not support, such as
|
||||
DESTROY_CLIENTID, FREE_STATEID, SECINFO_NO_NAME, and
|
||||
TEST_STATEID, are not currently used by clients, but will be
|
||||
DESTROY_CLIENTID, are not currently used by clients, but will be
|
||||
(and the spec recommends their uses in common cases), and
|
||||
clients should not be expected to know how to recover from the
|
||||
case where they are not supported. This will eventually cause
|
||||
|
@ -69,8 +59,9 @@ In addition, some limitations are inherited from the current NFSv4
|
|||
implementation:
|
||||
|
||||
- Incomplete delegation enforcement: if a file is renamed or
|
||||
unlinked, a client holding a delegation may continue to
|
||||
indefinitely allow opens of the file under the old name.
|
||||
unlinked by a local process, a client holding a delegation may
|
||||
continue to indefinitely allow opens of the file under the old
|
||||
name.
|
||||
|
||||
The table below, taken from the NFSv4.1 document, lists
|
||||
the operations that are mandatory to implement (REQ), optional
|
||||
|
@ -99,7 +90,7 @@ Operations
|
|||
+----------------------+------------+--------------+----------------+
|
||||
| ACCESS | REQ | | Section 18.1 |
|
||||
NS | BACKCHANNEL_CTL | REQ | | Section 18.33 |
|
||||
NS | BIND_CONN_TO_SESSION | REQ | | Section 18.34 |
|
||||
I | BIND_CONN_TO_SESSION | REQ | | Section 18.34 |
|
||||
| CLOSE | REQ | | Section 18.2 |
|
||||
| COMMIT | REQ | | Section 18.3 |
|
||||
| CREATE | REQ | | Section 18.4 |
|
||||
|
@ -111,7 +102,7 @@ NS*| DELEGPURGE | OPT | FDELG (REQ) | Section 18.5 |
|
|||
NS | DESTROY_CLIENTID | REQ | | Section 18.50 |
|
||||
I | DESTROY_SESSION | REQ | | Section 18.37 |
|
||||
I | EXCHANGE_ID | REQ | | Section 18.35 |
|
||||
NS | FREE_STATEID | REQ | | Section 18.38 |
|
||||
I | FREE_STATEID | REQ | | Section 18.38 |
|
||||
| GETATTR | REQ | | Section 18.7 |
|
||||
P | GETDEVICEINFO | OPT | pNFS (REQ) | Section 18.40 |
|
||||
P | GETDEVICELIST | OPT | pNFS (OPT) | Section 18.41 |
|
||||
|
@ -145,14 +136,14 @@ NS*| OPENATTR | OPT | | Section 18.17 |
|
|||
| RESTOREFH | REQ | | Section 18.27 |
|
||||
| SAVEFH | REQ | | Section 18.28 |
|
||||
| SECINFO | REQ | | Section 18.29 |
|
||||
NS | SECINFO_NO_NAME | REC | pNFS files | Section 18.45, |
|
||||
I | SECINFO_NO_NAME | REC | pNFS files | Section 18.45, |
|
||||
| | | layout (REQ) | Section 13.12 |
|
||||
I | SEQUENCE | REQ | | Section 18.46 |
|
||||
| SETATTR | REQ | | Section 18.30 |
|
||||
| SETCLIENTID | MNI | | N/A |
|
||||
| SETCLIENTID_CONFIRM | MNI | | N/A |
|
||||
NS | SET_SSV | REQ | | Section 18.47 |
|
||||
NS | TEST_STATEID | REQ | | Section 18.48 |
|
||||
I | TEST_STATEID | REQ | | Section 18.48 |
|
||||
| VERIFY | REQ | | Section 18.31 |
|
||||
NS*| WANT_DELEGATION | OPT | FDELG (OPT) | Section 18.49 |
|
||||
| WRITE | REQ | | Section 18.32 |
|
||||
|
@ -206,12 +197,6 @@ CREATE_SESSION:
|
|||
SEQUENCE:
|
||||
* no support for dynamic slot table renegotiation (optional)
|
||||
|
||||
nfsv4.1 COMPOUND rules:
|
||||
The following cases aren't supported yet:
|
||||
* Enforcing of NFS4ERR_NOT_ONLY_OP for: BIND_CONN_TO_SESSION, CREATE_SESSION,
|
||||
DESTROY_CLIENTID, DESTROY_SESSION, EXCHANGE_ID.
|
||||
* DESTROY_SESSION MUST be the final operation in the COMPOUND request.
|
||||
|
||||
Nonstandard compound limitations:
|
||||
* No support for a sessions fore channel RPC compound that requires both a
|
||||
ca_maxrequestsize request and a ca_maxresponsesize reply, so we may
|
||||
|
@ -219,3 +204,5 @@ Nonstandard compound limitations:
|
|||
negotiation.
|
||||
* No more than one IO operation (read, write, readdir) allowed per
|
||||
compound.
|
||||
|
||||
See also http://wiki.linux-nfs.org/wiki/index.php/Server_4.0_and_4.1_issues.
|
||||
|
|
|
@ -226,7 +226,7 @@ They depend on various facilities being available:
|
|||
cdrecord.
|
||||
|
||||
e.g.
|
||||
cdrecord dev=ATAPI:1,0,0 arch/i386/boot/image.iso
|
||||
cdrecord dev=ATAPI:1,0,0 arch/x86/boot/image.iso
|
||||
|
||||
For more information on isolinux, including how to create bootdisks
|
||||
for prebuilt kernels, see http://syslinux.zytor.com/
|
||||
|
|
|
@ -407,10 +407,11 @@ to some pointer to returning that pointer. On errors return ERR_PTR(...).
|
|||
|
||||
--
|
||||
[mandatory]
|
||||
->permission(), generic_permission() and ->check_acl() have lost flags
|
||||
->permission() and generic_permission()have lost flags
|
||||
argument; instead of passing IPERM_FLAG_RCU we add MAY_NOT_BLOCK into mask.
|
||||
generic_permission() has also lost the check_acl argument; if you want
|
||||
non-NULL to be used for that inode, put it into ->i_op->check_acl.
|
||||
generic_permission() has also lost the check_acl argument; ACL checking
|
||||
has been taken to VFS and filesystems need to provide a non-NULL ->i_op->get_acl
|
||||
to read an ACL from disk.
|
||||
|
||||
--
|
||||
[mandatory]
|
||||
|
|
|
@ -2,7 +2,7 @@ SQUASHFS 4.0 FILESYSTEM
|
|||
=======================
|
||||
|
||||
Squashfs is a compressed read-only filesystem for Linux.
|
||||
It uses zlib/lzo compression to compress files, inodes and directories.
|
||||
It uses zlib/lzo/xz compression to compress files, inodes and directories.
|
||||
Inodes in the system are very small and all blocks are packed to minimise
|
||||
data overhead. Block sizes greater than 4K are supported up to a maximum
|
||||
of 1Mbytes (default block size 128K).
|
||||
|
@ -55,6 +55,8 @@ create populated squashfs filesystems. This and other squashfs utilities
|
|||
can be obtained from http://www.squashfs.org. Usage instructions can be
|
||||
obtained from this site also.
|
||||
|
||||
The squashfs-tools development tree is now located on kernel.org
|
||||
git://git.kernel.org/pub/scm/fs/squashfs/squashfs-tools.git
|
||||
|
||||
3. SQUASHFS FILESYSTEM DESIGN
|
||||
-----------------------------
|
||||
|
|
|
@ -356,7 +356,7 @@ struct inode_operations {
|
|||
void (*put_link) (struct dentry *, struct nameidata *, void *);
|
||||
void (*truncate) (struct inode *);
|
||||
int (*permission) (struct inode *, int);
|
||||
int (*check_acl)(struct inode *, int);
|
||||
int (*get_acl)(struct inode *, int);
|
||||
int (*setattr) (struct dentry *, struct iattr *);
|
||||
int (*getattr) (struct vfsmount *mnt, struct dentry *, struct kstat *);
|
||||
int (*setxattr) (struct dentry *, const char *,const void *,size_t,int);
|
||||
|
|
|
@ -76,7 +76,8 @@ IT8718F, IT8720F, IT8721F, IT8726F, IT8758E and SiS950 chips.
|
|||
These chips are 'Super I/O chips', supporting floppy disks, infrared ports,
|
||||
joysticks and other miscellaneous stuff. For hardware monitoring, they
|
||||
include an 'environment controller' with 3 temperature sensors, 3 fan
|
||||
rotation speed sensors, 8 voltage sensors, and associated alarms.
|
||||
rotation speed sensors, 8 voltage sensors, associated alarms, and chassis
|
||||
intrusion detection.
|
||||
|
||||
The IT8712F and IT8716F additionally feature VID inputs, used to report
|
||||
the Vcore voltage of the processor. The early IT8712F have 5 VID pins,
|
||||
|
|
|
@ -13,7 +13,8 @@ Supported chips:
|
|||
Datasheet: Publicly available at the National Semiconductor website
|
||||
http://www.national.com/
|
||||
|
||||
Author: Frodo Looijaard <frodol@dds.nl>
|
||||
Authors: Frodo Looijaard <frodol@dds.nl>
|
||||
Jean Delvare <khali@linux-fr.org>
|
||||
|
||||
Description
|
||||
-----------
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
Kernel driver sch5636
|
||||
=====================
|
||||
|
||||
Supported chips:
|
||||
* SMSC SCH5636
|
||||
Prefix: 'sch5636'
|
||||
Addresses scanned: none, address read from Super I/O config space
|
||||
|
||||
Author: Hans de Goede <hdegoede@redhat.com>
|
||||
|
||||
|
||||
Description
|
||||
-----------
|
||||
|
||||
SMSC SCH5636 Super I/O chips include an embedded microcontroller for
|
||||
hardware monitoring solutions, allowing motherboard manufacturers to create
|
||||
their own custom hwmon solution based upon the SCH5636.
|
||||
|
||||
Currently the sch5636 driver only supports the Fujitsu Theseus SCH5636 based
|
||||
hwmon solution. The sch5636 driver runs a sanity check on loading to ensure
|
||||
it is dealing with a Fujitsu Theseus and not with another custom SCH5636 based
|
||||
hwmon solution.
|
||||
|
||||
The Fujitsu Theseus can monitor up to 5 voltages, 8 fans and 16
|
||||
temperatures. Note that the driver detects how many fan headers /
|
||||
temperature sensors are actually implemented on the motherboard, so you will
|
||||
likely see fewer temperature and fan inputs.
|
||||
|
||||
An application note describing the Theseus' registers, as well as an
|
||||
application note describing the protocol for communicating with the
|
||||
microcontroller is available upon request. Please mail me if you want a copy.
|
|
@ -110,7 +110,7 @@ V. Getting Logical Configuration Table
|
|||
ENOBUFS Buffer not large enough. If this occurs, the required
|
||||
buffer length is written into *(lct->reslen)
|
||||
|
||||
VI. Settting Parameters
|
||||
VI. Setting Parameters
|
||||
|
||||
SYNOPSIS
|
||||
|
||||
|
|
|
@ -301,6 +301,7 @@ Code Seq#(hex) Include File Comments
|
|||
<mailto:rusty@rustcorp.com.au>
|
||||
0xAE all linux/kvm.h Kernel-based Virtual Machine
|
||||
<mailto:kvm@vger.kernel.org>
|
||||
0xAF 00-1F linux/fsl_hypervisor.h Freescale hypervisor
|
||||
0xB0 all RATIO devices in development:
|
||||
<mailto:vgo@ratio.de>
|
||||
0xB1 00-1F PPPoX <mailto:mostrows@styx.uwaterloo.ca>
|
||||
|
|
|
@ -506,7 +506,7 @@ to e.g. the Internet:
|
|||
<ISDN subsystem - ISDN support -- HiSax>
|
||||
make clean; make zImage; make modules; make modules_install
|
||||
2. Install the new kernel
|
||||
cp /usr/src/linux/arch/i386/boot/zImage /etc/kernel/linux.isdn
|
||||
cp /usr/src/linux/arch/x86/boot/zImage /etc/kernel/linux.isdn
|
||||
vi /etc/lilo.conf
|
||||
<add new kernel in the bootable image section>
|
||||
lilo
|
||||
|
|
|
@ -11,16 +11,18 @@ for non English (read: Japanese) speakers and is not intended as a
|
|||
fork. So if you have any comments or updates of this file, please try
|
||||
to update the original English file first.
|
||||
|
||||
Last Updated: 2007/10/24
|
||||
Last Updated: 2011/06/09
|
||||
|
||||
==================================
|
||||
これは、
|
||||
linux-2.6.23/Documentation/SubmittingPatches の和訳
|
||||
linux-2.6.39/Documentation/SubmittingPatches の和訳
|
||||
です。
|
||||
翻訳団体: JF プロジェクト < http://www.linux.or.jp/JF/ >
|
||||
翻訳日: 2007/10/17
|
||||
翻訳日: 2011/06/09
|
||||
翻訳者: Keiichi Kii <k-keiichi at bx dot jp dot nec dot com>
|
||||
校正者: Masanari Kobayashi さん <zap03216 at nifty dot ne dot jp>
|
||||
Matsukura さん <nbh--mats at nifty dot com>
|
||||
Takeshi Hamasaki さん <hmatrjp at users dot sourceforge dot jp>
|
||||
==================================
|
||||
|
||||
Linux カーネルに変更を加えるための Howto
|
||||
|
@ -97,7 +99,7 @@ Quilt:
|
|||
http://savannah.nongnu.org/projects/quilt
|
||||
|
||||
Andrew Morton's patch scripts:
|
||||
http://userweb.kernel.org/~akpm/stuff/tpp.txt
|
||||
http://userweb.kernel.org/~akpm/stuff/patch-scripts.tar.gz
|
||||
このリンクの先のスクリプトの代わりとして、quilt がパッチマネジメント
|
||||
ツールとして推奨されています(上のリンクを見てください)。
|
||||
|
||||
|
@ -109,9 +111,25 @@ http://userweb.kernel.org/~akpm/stuff/tpp.txt
|
|||
「ドライバー X に対するバグフィックス」あるいは「このパッチはサブシス
|
||||
テム X に対する更新を含んでいます。どうか取り入れてください。」などです。
|
||||
|
||||
パッチの説明を Linux カーネルのソースコードマネジメントシステム「 git 」の
|
||||
コミットログとして簡単に引用できる形で書けば、メンテナから感謝されるでしょう。
|
||||
以下の #15 を見てください。
|
||||
|
||||
説明が長くなりだしたのであれば、おそらくそれはパッチを分ける必要がある
|
||||
という兆候です。次の #3 を見てください。
|
||||
|
||||
パッチ(シリーズ)を(再)投稿する時、十分なパッチの説明とそのパッチが必要な理由を
|
||||
パッチに含めてください。ただ「これはパッチ(シリーズ)のバージョン N」とだけ
|
||||
書かないでください。そして、パッチをマージする人にパッチの説明を探させそれを
|
||||
パッチに追記させるため、過去のバージョンのパッチやそのパッチの URL を参照する
|
||||
手間をかけさせないでください。
|
||||
つまり、パッチシリーズとその説明は一緒にあるべきです。これはパッチをマージする
|
||||
人、レビューする人、どちらのためにもなります。レビューする人の中には、おそらく
|
||||
過去のバージョンのパッチを受け取ってもいない人がいます。
|
||||
|
||||
登録済みのバグエントリを修正するパッチであれば、そのバグエントリを示すバグ ID
|
||||
や URL を明記してください。
|
||||
|
||||
3) パッチの分割
|
||||
|
||||
意味のあるひとまとまりごとに変更を個々のパッチファイルに分けてください。
|
||||
|
@ -141,7 +159,7 @@ http://userweb.kernel.org/~akpm/stuff/tpp.txt
|
|||
拒否されるでしょう。
|
||||
|
||||
あなたはパッチを投稿する前に最低限パッチスタイルチェッカー
|
||||
( scripts/patchcheck.pl )を利用してパッチをチェックすべきです。
|
||||
( scripts/checkpatch.pl )を利用してパッチをチェックすべきです。
|
||||
もしパッチに違反がのこっているならば、それらの全てについてあなたは正当な
|
||||
理由を示せるようにしておく必要があります。
|
||||
|
||||
|
@ -192,13 +210,13 @@ VGER.KERNEL.ORG でホスティングされているメーリングリストの
|
|||
情報がマニュアルページの中に入ってくるように、変更が起きたという
|
||||
通知を送ってください。
|
||||
|
||||
たとえ、メンテナが #4 で反応がなかったとしても、メンテナのコードに変更を
|
||||
たとえ、メンテナが #5 で反応がなかったとしても、メンテナのコードに変更を
|
||||
加えたときには、いつもメンテナに CC するのを忘れないようにしてください。
|
||||
|
||||
小さなパッチであれば、Adrian Bunk が管理している Trivial Patch Monkey
|
||||
(ちょっとしたパッチを集めている)<trivial@kernel.org>に CC してもいい
|
||||
です。ちょっとしたパッチとは以下のルールのどれか1つを満たしていなけ
|
||||
ればなりません。
|
||||
小さなパッチであれば、Trivial Patch Monkey(ちょっとしたパッチを集めている)
|
||||
<trivial@kernel.org>に CC してもいいです。その現管理者については MAINTAINERS
|
||||
ファイルを見てください。ちょっとしたパッチとは以下のルールのどれか1つを満たして
|
||||
いなければなりません。
|
||||
・ドキュメントのスペルミスの修正
|
||||
・grep(1) コマンドによる検索を困難にしているスペルの修正
|
||||
・コンパイル時の警告の修正(無駄な警告が散乱することは好ましくないた
|
||||
|
@ -210,7 +228,6 @@ VGER.KERNEL.ORG でホスティングされているメーリングリストの
|
|||
・移植性のないコードから移植性のあるコードへの置き換え(小さい範囲で
|
||||
あればアーキテクチャ特有のことでも他の人がコピーできます)
|
||||
・作者やメンテナによる修正(すなわち patch monkey の再転送モード)
|
||||
EMAIL: <trivial@kernel.org>
|
||||
|
||||
7) MIME やリンクや圧縮ファイルや添付ファイルではなくプレインテキストのみ
|
||||
|
||||
|
@ -233,26 +250,15 @@ MIME 形式の添付ファイルは Linus に手間を取らせることにな
|
|||
例外:お使いの電子メールクライアントがパッチをめちゃくちゃにするので
|
||||
あれば、誰かが MIME 形式のパッチを再送するよう求めるかもしれません。
|
||||
|
||||
警告: Mozilla のような特定の電子メールクライアントは電子メールの
|
||||
ヘッダに以下のものを付加して送ります。
|
||||
---- message header ----
|
||||
Content-Type: text/plain; charset=us-ascii; format=flowed
|
||||
---- message header ----
|
||||
問題は、「 format=flowed 」が付いた電子メールを特定の受信側の電子メール
|
||||
クライアントがタブをスペースに置き換えるというような変更をすることです。
|
||||
したがって送られてきたパッチは壊れているように見えるでしょう。
|
||||
|
||||
これを修正するには、mozilla の defaults/pref/mailnews.js ファイルを
|
||||
以下のように修正します。
|
||||
pref("mailnews.send_plaintext_flowed", false); // RFC 2646=======
|
||||
pref("mailnews.display.disable_format_flowed_support", true);
|
||||
余計な変更を加えずにあなたのパッチを送信するための電子メールクライアントの設定
|
||||
のヒントについては Documentation/email-clients.txt を参照してください。
|
||||
|
||||
8) 電子メールのサイズ
|
||||
|
||||
パッチを Linus へ送るときは常に #7 の手順に従ってください。
|
||||
|
||||
大きなパッチはメーリングリストやメンテナにとって不親切です。パッチが
|
||||
未圧縮で 40KB を超えるようであるなら、インターネット上のアクセス可能な
|
||||
未圧縮で 300KB を超えるようであるなら、インターネット上のアクセス可能な
|
||||
サーバに保存し、保存場所を示す URL を伝えるほうが適切です。
|
||||
|
||||
9) カーネルバージョンの明記
|
||||
|
@ -324,7 +330,7 @@ Linus や LKML への大量の電子メールのために、サブジェクト
|
|||
(c) 本寄与は(a)、(b)、(c)を証明する第3者から私へ直接提供された
|
||||
ものであり、私はそれに変更を加えていない。
|
||||
|
||||
(d) 私はこのプロジェクトと本寄与が公のものであることに理解及び同意す
|
||||
(d) 私はこのプロジェクトと本寄与が公のものであることに理解及び同意す
|
||||
る。同時に、関与した記録(投稿の際の全ての個人情報と sign-off を
|
||||
含む)が無期限に保全されることと、当該プロジェクト又は関連する
|
||||
オープンソースライセンスに沿った形で再配布されることに理解及び
|
||||
|
@ -340,7 +346,51 @@ Linus や LKML への大量の電子メールのために、サブジェクト
|
|||
無視されますが、あなたはそのタグを社内の手続きに利用したり、sign-off に特別
|
||||
な情報を示したりすることができます。
|
||||
|
||||
13) いつ Acked-by: を使うのか
|
||||
あなたがサブシステムまたはブランチのメンテナであれば、受け取ったパッチを自身の
|
||||
ツリーにマージするために、わずかに変更が必要となる場合があります。なぜなら
|
||||
あなたのツリーの中のコードと投稿者のツリーの中のコードは同一ではないためです。
|
||||
もし、あなたが厳密に上記ルール(c)にこだわるのであれば、投稿者に再度差分を
|
||||
とるよう依頼すべきです。しかし、これは時間とエネルギーを非生産的に浪費する
|
||||
ことになります。ルール(b)はあなたにコードを修正する権利を与えてくれます。
|
||||
しかし、投稿者のコードを修正し、その修正によるバグを投稿者に押し付けてしまう
|
||||
ことはとても失礼なことです。この問題を解決するために、末尾の投稿者の
|
||||
Signed-off-by とあなたがその末尾に追加する Signed-off-by の間に、修正を
|
||||
加えたことを示す1行を追加することが推奨されています。
|
||||
(その1行の書き方に)決まりはありませんが、大括弧の中に電子メールアドレスや氏名
|
||||
と修正内容を記載するやり方は目につきやすく、最終段階での変更の責任があなたに
|
||||
あることを明確にするのに十分な方法のようです。例えば、
|
||||
|
||||
Signed-off-by: Random J Developer <random@developer.example.org>
|
||||
[lucky@maintainer.example.org: struct foo moved from foo.c to foo.h]
|
||||
Signed-off-by: Lucky K Maintainer <lucky@maintainer.example.org>
|
||||
|
||||
あなたが安定版のブランチを管理しており、作成者のクレジット、変更の追跡、
|
||||
修正のマージ、と同時に苦情からの投稿者の保護を行いたい場合、この慣習は特に
|
||||
有用となります。いかなる事情があってもチェンジログに出てくる作成者の
|
||||
アイデンティティ情報(From ヘッダ)は変更できないことに注意してください。
|
||||
|
||||
バックポートする人のための特別な注意事項。追跡を容易に行うために、コミット
|
||||
メッセージのトップ(サブジェクト行のすぐ後)にパッチの起源を示す情報を記述する
|
||||
ことは一般的で有用な慣習です。例えば、これは 2.6-stable ツリーでの一例です。
|
||||
|
||||
Date: Tue May 13 19:10:30 2008 +0000
|
||||
|
||||
SCSI: libiscsi regression in 2.6.25: fix nop timer handling
|
||||
|
||||
commit 4cf1043593db6a337f10e006c23c69e5fc93e722 upstream
|
||||
|
||||
そして、これは 2.4 ツリーでの一例です。
|
||||
|
||||
Date: Tue May 13 22:12:27 2008 +0200
|
||||
|
||||
wireless, airo: waitbusy() won't delay
|
||||
|
||||
[backport of 2.6 commit b7acbdfbd1f277c1eb23f344f899cfa4cd0bf36a]
|
||||
|
||||
どんな形式であれ、この情報はあなたのツリーを追跡する人やあなたのツリーのバグを
|
||||
解決しようとしている人にとって価値のある支援となります。
|
||||
|
||||
13) いつ Acked-by: と Cc: を使うのか
|
||||
|
||||
「 Signed-off-by: 」タグはその署名者がパッチの開発に関わっていたことやパッチ
|
||||
の伝播パスにいたことを示しています。
|
||||
|
@ -354,7 +404,7 @@ Linus や LKML への大量の電子メールのために、サブジェクト
|
|||
|
||||
Acked-by: は Signed-off-by: のように公式なタグではありません。それはメンテナが
|
||||
少なくともパッチをレビューし、同意を示しているという記録です。そのような
|
||||
ことからパッチの統合者がメンテナの「うん、良いと思うよ」という発言を
|
||||
ことからパッチをマージする人がメンテナの「うん、良いと思うよ」という発言を
|
||||
Acked-by: へ置き換えることがあります。
|
||||
|
||||
Acked-by: が必ずしもパッチ全体の承認を示しているわけではありません。例えば、
|
||||
|
@ -364,7 +414,62 @@ Acked-by: が必ずしもパッチ全体の承認を示しているわけでは
|
|||
この点は、ご自分で判断してください。(その Acked-by: が)疑わしい場合は、
|
||||
メーリングリストアーカイブの中の大元の議論を参照すべきです。
|
||||
|
||||
14) 標準的なパッチのフォーマット
|
||||
パッチにコメントする機会を持っていたが、その時にコメントしなかった人がいれば、
|
||||
その人を指す「Cc:」タグを任意で追加してもかまいません。これは指定された人からの
|
||||
明確なアクションなしに付与できる唯一のタグです。
|
||||
このタグはパッチに関心があると思われる人達がそのパッチの議論に含まれていたこと
|
||||
を明文化します。
|
||||
|
||||
14) Reported-by と Tested-by: と Reviewed-by: の利用
|
||||
|
||||
他の誰かによって報告された問題を修正するパッチであれば、問題報告者という寄与を
|
||||
クレジットするために、Reported-by: タグを追加することを検討してください。
|
||||
こまめにバグ報告者をクレジットしていくことで、うまくいけばその人たちが将来再び
|
||||
コミュニティの力となってくれるでしょう。
|
||||
ただし、報告者の許可無くこのタグを追加しないように注意してください。特に、
|
||||
問題が公の場で報告されていなかったのであれば。
|
||||
|
||||
Tested-by: タグはタグで指定された人によって(ある環境下で)パッチのテストに成功
|
||||
していることを示します。このタグはメンテナにテストが実施済みであることを
|
||||
知らせ、将来の関連パッチのテスト協力者を見つける方法を提供し、テスト実施者に
|
||||
対するクレジットを保証します。
|
||||
|
||||
Reviewed-by: タグは、それとは異なり、下記のレビューア宣言の下にレビューされ、
|
||||
受け入れ可能とみなされたパッチであることを示します。
|
||||
|
||||
レビューアによる監督宣言
|
||||
|
||||
私は Reviewed-by: タグを提示することによって、以下のことを明言する。
|
||||
|
||||
(a) 私はメインラインカーネルへの統合に向け、その妥当性及び「即応性
|
||||
(訳注)」を検証し、技術的側面からパッチをレビュー済みである。
|
||||
|
||||
訳注:
|
||||
「即応性」の原文は "readiness"。
|
||||
パッチが十分な品質を持っており、メインラインカーネルへの統合を即座に
|
||||
行うことができる状態であるかどうかを "readiness" という単語で表現
|
||||
している。
|
||||
|
||||
(b) パッチに関するあらゆる問題、懸念、あるいは、疑問は投稿者へ伝達済み
|
||||
である。私はそれらのコメントに対する投稿者の返答に満足している。
|
||||
|
||||
(c) 投稿に伴い改良されるコードがある一方で、現時点で、私は(1)それが
|
||||
カーネルにとって価値のある変更であること、そして、(2)統合に際して
|
||||
議論になり得るような問題はないものと確信している。
|
||||
|
||||
(d) 私はパッチをレビューし適切であると確信している一方で、あらゆる
|
||||
状況においてその宣言した目的や機能が正しく実現することに関して、
|
||||
いかなる保証もしない(特にどこかで明示しない限り)。
|
||||
|
||||
Reviewd-by タグはそのパッチがカーネルに対して適切な修正であって、深刻な技術的
|
||||
問題を残していないという意見の宣言です。興味のあるレビューアは誰でも(レビュー
|
||||
作業を終えたら)パッチに対して Reviewed-by タグを提示できます。このタグは
|
||||
レビューアの寄与をクレジットする働き、レビューの進捗の度合いをメンテナに
|
||||
知らせる働きを持ちます。そのパッチの領域に詳しく、そして、しっかりとした
|
||||
レビューを実施したレビューアによって提供される時、Reviewed-by: タグがあなたの
|
||||
パッチをカーネルにマージする可能性を高めるでしょう。
|
||||
|
||||
15) 標準的なパッチのフォーマット
|
||||
|
||||
標準的なパッチのサブジェクトは以下のとおりです。
|
||||
|
||||
|
@ -396,18 +501,37 @@ Acked-by: が必ずしもパッチ全体の承認を示しているわけでは
|
|||
電子メールのサブジェクト内のサブシステム表記は、パッチが適用される
|
||||
分野またはサブシステムを識別できるようにすべきです。
|
||||
|
||||
電子メールのサブジェクトの「概要の言い回し」はそのパッチの概要を正確
|
||||
に表現しなければなりません。「概要の言い回し」をファイル名にしてはい
|
||||
けません。一連のパッチ中でそれぞれのパッチは同じ「概要の言い回し」を
|
||||
使ってはいけません(「一連のパッチ」とは順序付けられた関連のある複数の
|
||||
電子メールのサブジェクトの「summary phrase」はそのパッチの概要を正確
|
||||
に表現しなければなりません。「summary phrase」をファイル名にしてはい
|
||||
けません。パッチシリーズ中でそれぞれのパッチは同じ「summary phrase」を
|
||||
使ってはいけません(「パッチシリーズ」とは順序付けられた関連のある複数の
|
||||
パッチ群です)。
|
||||
|
||||
あなたの電子メールの「概要の言い回し」がそのパッチにとって世界で唯
|
||||
一の識別子になるように心がけてください。「概要の言い回し」は git の
|
||||
チェンジログの中へずっと伝播していきます。「概要の言い回し」は、開
|
||||
発者が後でパッチを参照するために議論の中で利用するかもしれません。
|
||||
人々はそのパッチに関連した議論を読むために「概要の言い回し」を使って
|
||||
google で検索したがるでしょう。
|
||||
あなたの電子メールの「summary phrase」がそのパッチにとって世界で唯一の識別子に
|
||||
なるように心がけてください。「summary phrase」は git のチェンジログの中へ
|
||||
ずっと伝播していきます。「summary phrase」は、開発者が後でパッチを参照する
|
||||
ために議論の中で利用するかもしれません。
|
||||
人々はそのパッチに関連した議論を読むために「summary phrase」を使って google で
|
||||
検索したがるでしょう。それはまた2、3ヶ月あとで、人々が「gitk」や
|
||||
「git log --oneline」のようなツールを使用して何千ものパッチに目を通す時、
|
||||
唯一目にとまる情報となるでしょう。
|
||||
|
||||
これらの理由のため、「summary phrase」はなぜパッチが必要であるか、パッチが何を
|
||||
変更するかの2つの情報をせいぜい70〜75文字で表現していなければなりません。
|
||||
「summary phrase」は簡潔であり説明的である表現を目指しつつ、うまく
|
||||
まとめられている概要となるべきです。
|
||||
|
||||
「summary phrase」は「Subject: [PATCH tag] <summary phrase>」のように、
|
||||
大括弧で閉じられたタグを接頭辞として付加してもかまいません。このタグは
|
||||
「summary phrase」の一部とは考えませんが、パッチをどのように取り扱うべきかを
|
||||
表現します。
|
||||
一般的には「v1, v2, v3」のようなバージョン情報を表すタグ(過去のパッチに対する
|
||||
コメントを反映するために複数のバージョンのパッチが投稿されているのであれば)、
|
||||
「RFC」のようなコメントを要求するタグが挙げられます。パッチシリーズとして4つの
|
||||
パッチがあれば、個々のパッチに「1/4, 2/4, 3/4, 4/4」のように番号を付けても
|
||||
かまいません。これは開発者がパッチを適用する順番を確実に把握するためです。
|
||||
そして、開発者がパッチシリーズの中のすべてのパッチをもらさずレビュー或いは
|
||||
適用するのを保証するためです。
|
||||
|
||||
サブジェクトの例を二つ
|
||||
|
||||
|
@ -426,7 +550,12 @@ google で検索したがるでしょう。
|
|||
|
||||
説明本体は無期限のソースのチェンジログにコミットされます。なので、説明
|
||||
本体はそのパッチに至った議論の詳細を忘れているある程度の技量を持っている人
|
||||
がその詳細を思い出すことができるものでなければなりません。
|
||||
がその詳細を思い出すことができるものでなければなりません。パッチが対処する
|
||||
障害の症状(カーネルログメッセージや oops メッセージ等)を記載することは問題に
|
||||
対処可能なパッチを求めてコミットログを検索する人々にとって特に有用です。
|
||||
パッチがコンパイル問題を解決するのであれば、そのパッチを探している人が見つける
|
||||
ことができる情報だけで十分であり、コンパイル時の全てのエラーを含める必要は
|
||||
ありません。「summary phrase」と同様に、簡潔であり説明的であることが重要です。
|
||||
|
||||
「 --- 」マーカー行はパッチ処理ツールに対して、チェンジログメッセージの終端
|
||||
部分を認識させるという重要な役目を果たします。
|
||||
|
@ -436,14 +565,46 @@ google で検索したがるでしょう。
|
|||
追加され何行消されたかを示すものです。diffstat コマンドは特に大きなパッチに
|
||||
おいて役立ちます。その時点でだけ又はメンテナにとってのみ関係のあるコメント
|
||||
は無期限に保存されるチェンジログにとって適切ではありません。そのため、この
|
||||
ようなコメントもマーカー行の後に書かれるべきです。ファイル名はカーネルソー
|
||||
スツリーのトップディレクトリからの表記でリストされるため、横方向のスペース
|
||||
をとり過ぎないように、diffstat コマンドにオプション「 -p 1 -w 70 」を指定し
|
||||
てください(インデントを含めてちょうど80列に合うでしょう)。
|
||||
ようなコメントもマーカー行の後に書かれるべきです。
|
||||
このようなコメントの良い例として、v1 と v2 のバージョン間で何が変更されたかを
|
||||
表す「パッチの変更履歴」が挙げられます。
|
||||
|
||||
「 --- 」マーカー行の後に diffstat コマンドの結果を含めるのであれば、ファイル
|
||||
名はカーネルソースツリーのトップディレクトリからの表記で列記されるため、横方向
|
||||
のスペースをとり過ぎないように、diffstat コマンドにオプション「 -p 1 -w 70 」
|
||||
を指定してください(インデントを含めてちょうど80列に合うでしょう)。
|
||||
|
||||
適切なパッチのフォーマットの詳細についてはセクション3の参考文献を参照して
|
||||
ください。
|
||||
|
||||
16) 「git pull」要求の送り方(Linus の電子メールから)
|
||||
|
||||
間違ったブランチから引っ張るのを防ぐために、git リポジトリのアドレスと
|
||||
ブランチ名を同じ行に1行で記載してください。そうすることで、3回の連続クリック
|
||||
で全て選択できます。
|
||||
|
||||
正しい形式は下記の通りです。
|
||||
|
||||
"Please pull from
|
||||
|
||||
git://jdelvare.pck.nerim.net/jdelvare-2.6 i2c-for-linus
|
||||
|
||||
to get these changes:"
|
||||
|
||||
その結果、アドレスを自分自身でタイピングして間違えることはなくなります(実際に、
|
||||
何度か間違ったブランチから引っ張ってきてしまい、その時に diffstat の結果を
|
||||
検証して間違っていることに気づいたことがあります。どこから何を引っ張るべきかを
|
||||
「探したり」、正しいブランチ名かどうかを重ねてチェックしたりする必要が
|
||||
なくなればより快適になるでしょう)。
|
||||
|
||||
diffstat の結果を生成するために「 git diff -M --stat --summary 」を使って
|
||||
ください。-M オプションはファイル名の変更を検知でき、--summary オプションは
|
||||
新規ファイル、削除されたファイル、名前が変更されたファイルの概要を生成します。
|
||||
|
||||
-M オプション(ファイル名の変更検知)を指定すると、diffstat の結果はかなり
|
||||
異なってきます。git は大規模な変更(追加と削除のペア)をファイル名の変更と
|
||||
判断するためです。
|
||||
|
||||
------------------------------------
|
||||
セクション2 - ヒントとTIPSと小技
|
||||
------------------------------------
|
||||
|
@ -459,7 +620,7 @@ google で検索したがるでしょう。
|
|||
も逸脱していると、レビューやコメントなしに受け取ってもらえないかもし
|
||||
れません。
|
||||
|
||||
唯一の特筆すべき例外は、コードをあるファイルから別のファイルに移動
|
||||
特筆すべき例外は、コードをあるファイルから別のファイルに移動
|
||||
するときです。この場合、コードを移動するパッチでは、移動されるコード
|
||||
に関して移動以外の変更を一切加えるべきではありません。これにより、
|
||||
コードの移動とあなたが行ったコードの修正を明確に区別できるようにな
|
||||
|
@ -553,4 +714,11 @@ Kernel Documentation/CodingStyle:
|
|||
|
||||
Linus Torvalds's mail on the canonical patch format:
|
||||
<http://lkml.org/lkml/2005/4/7/183>
|
||||
|
||||
Andi Kleen, "On submitting kernel patches"
|
||||
Some strategies to get difficult or controversial changes in.
|
||||
http://halobates.de/on-submitting-patches.pdf
|
||||
|
||||
--
|
||||
|
||||
|
||||
|
|
|
@ -441,7 +441,7 @@ more details, with real examples.
|
|||
specified if first option are not supported.
|
||||
|
||||
Example:
|
||||
#arch/i386/kernel/Makefile
|
||||
#arch/x86/kernel/Makefile
|
||||
vsyscall-flags += $(call cc-ldoption, -Wl$(comma)--hash-style=sysv)
|
||||
|
||||
In the above example, vsyscall-flags will be assigned the option
|
||||
|
@ -460,7 +460,7 @@ more details, with real examples.
|
|||
supported to use an optional second option.
|
||||
|
||||
Example:
|
||||
#arch/i386/Makefile
|
||||
#arch/x86/Makefile
|
||||
cflags-y += $(call cc-option,-march=pentium-mmx,-march=i586)
|
||||
|
||||
In the above example, cflags-y will be assigned the option
|
||||
|
@ -522,7 +522,7 @@ more details, with real examples.
|
|||
even though the option was accepted by gcc.
|
||||
|
||||
Example:
|
||||
#arch/i386/Makefile
|
||||
#arch/x86/Makefile
|
||||
cflags-y += $(shell \
|
||||
if [ $(call cc-version) -ge 0300 ] ; then \
|
||||
echo "-mregparm=3"; fi ;)
|
||||
|
@ -802,7 +802,7 @@ but in the architecture makefiles where the kbuild infrastructure
|
|||
is not sufficient this sometimes needs to be explicit.
|
||||
|
||||
Example:
|
||||
#arch/i386/boot/Makefile
|
||||
#arch/x86/boot/Makefile
|
||||
subdir- := compressed/
|
||||
|
||||
The above assignment instructs kbuild to descend down in the
|
||||
|
@ -812,12 +812,12 @@ To support the clean infrastructure in the Makefiles that builds the
|
|||
final bootimage there is an optional target named archclean:
|
||||
|
||||
Example:
|
||||
#arch/i386/Makefile
|
||||
#arch/x86/Makefile
|
||||
archclean:
|
||||
$(Q)$(MAKE) $(clean)=arch/i386/boot
|
||||
$(Q)$(MAKE) $(clean)=arch/x86/boot
|
||||
|
||||
When "make clean" is executed, make will descend down in arch/i386/boot,
|
||||
and clean as usual. The Makefile located in arch/i386/boot/ may use
|
||||
When "make clean" is executed, make will descend down in arch/x86/boot,
|
||||
and clean as usual. The Makefile located in arch/x86/boot/ may use
|
||||
the subdir- trick to descend further down.
|
||||
|
||||
Note 1: arch/$(ARCH)/Makefile cannot use "subdir-", because that file is
|
||||
|
@ -882,7 +882,7 @@ When kbuild executes, the following steps are followed (roughly):
|
|||
LDFLAGS_vmlinux uses the LDFLAGS_$@ support.
|
||||
|
||||
Example:
|
||||
#arch/i386/Makefile
|
||||
#arch/x86/Makefile
|
||||
LDFLAGS_vmlinux := -e stext
|
||||
|
||||
OBJCOPYFLAGS objcopy flags
|
||||
|
@ -920,14 +920,14 @@ When kbuild executes, the following steps are followed (roughly):
|
|||
Often, the KBUILD_CFLAGS variable depends on the configuration.
|
||||
|
||||
Example:
|
||||
#arch/i386/Makefile
|
||||
#arch/x86/Makefile
|
||||
cflags-$(CONFIG_M386) += -march=i386
|
||||
KBUILD_CFLAGS += $(cflags-y)
|
||||
|
||||
Many arch Makefiles dynamically run the target C compiler to
|
||||
probe supported options:
|
||||
|
||||
#arch/i386/Makefile
|
||||
#arch/x86/Makefile
|
||||
|
||||
...
|
||||
cflags-$(CONFIG_MPENTIUMII) += $(call cc-option,\
|
||||
|
@ -1038,8 +1038,8 @@ When kbuild executes, the following steps are followed (roughly):
|
|||
into the arch/$(ARCH)/boot/Makefile.
|
||||
|
||||
Example:
|
||||
#arch/i386/Makefile
|
||||
boot := arch/i386/boot
|
||||
#arch/x86/Makefile
|
||||
boot := arch/x86/boot
|
||||
bzImage: vmlinux
|
||||
$(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
|
||||
|
||||
|
@ -1051,7 +1051,7 @@ When kbuild executes, the following steps are followed (roughly):
|
|||
To support this, $(archhelp) must be defined.
|
||||
|
||||
Example:
|
||||
#arch/i386/Makefile
|
||||
#arch/x86/Makefile
|
||||
define archhelp
|
||||
echo '* bzImage - Image (arch/$(ARCH)/boot/bzImage)'
|
||||
endif
|
||||
|
@ -1065,7 +1065,7 @@ When kbuild executes, the following steps are followed (roughly):
|
|||
from vmlinux.
|
||||
|
||||
Example:
|
||||
#arch/i386/Makefile
|
||||
#arch/x86/Makefile
|
||||
all: bzImage
|
||||
|
||||
When "make" is executed without arguments, bzImage will be built.
|
||||
|
@ -1083,7 +1083,7 @@ When kbuild executes, the following steps are followed (roughly):
|
|||
2) kbuild knows what files to delete during "make clean"
|
||||
|
||||
Example:
|
||||
#arch/i386/kernel/Makefile
|
||||
#arch/x86/kernel/Makefile
|
||||
extra-y := head.o init_task.o
|
||||
|
||||
In this example, extra-y is used to list object files that
|
||||
|
@ -1133,7 +1133,7 @@ When kbuild executes, the following steps are followed (roughly):
|
|||
Compress target. Use maximum compression to compress target.
|
||||
|
||||
Example:
|
||||
#arch/i386/boot/Makefile
|
||||
#arch/x86/boot/Makefile
|
||||
LDFLAGS_bootsect := -Ttext 0x0 -s --oformat binary
|
||||
LDFLAGS_setup := -Ttext 0x0 -s --oformat binary -e begtext
|
||||
|
||||
|
@ -1193,7 +1193,7 @@ When kbuild executes, the following steps are followed (roughly):
|
|||
|
||||
When updating the $(obj)/bzImage target, the line
|
||||
|
||||
BUILD arch/i386/boot/bzImage
|
||||
BUILD arch/x86/boot/bzImage
|
||||
|
||||
will be displayed with "make KBUILD_VERBOSE=0".
|
||||
|
||||
|
@ -1207,7 +1207,7 @@ When kbuild executes, the following steps are followed (roughly):
|
|||
kbuild knows .lds files and includes a rule *lds.S -> *lds.
|
||||
|
||||
Example:
|
||||
#arch/i386/kernel/Makefile
|
||||
#arch/x86/kernel/Makefile
|
||||
always := vmlinux.lds
|
||||
|
||||
#Makefile
|
||||
|
|
|
@ -1846,7 +1846,9 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
|
|||
See Documentation/sound/oss/oss-parameters.txt
|
||||
|
||||
panic= [KNL] Kernel behaviour on panic: delay <timeout>
|
||||
seconds before rebooting
|
||||
timeout > 0: seconds before rebooting
|
||||
timeout = 0: wait forever
|
||||
timeout < 0: reboot immediately
|
||||
Format: <timeout>
|
||||
|
||||
parkbd.port= [HW] Parallel port number the keyboard adapter is
|
||||
|
@ -2526,6 +2528,11 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
|
|||
<port#>,<js1>,<js2>,<js3>,<js4>,<js5>,<js6>,<js7>
|
||||
See also Documentation/input/joystick-parport.txt
|
||||
|
||||
udbg-immortal [PPC] When debugging early kernel crashes that
|
||||
happen after console_init() and before a proper
|
||||
console driver takes over, this boot options might
|
||||
help "seeing" what's going on.
|
||||
|
||||
uhash_entries= [KNL,NET]
|
||||
Set number of hash buckets for UDP/UDP-Lite connections
|
||||
|
||||
|
@ -2540,6 +2547,11 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
|
|||
unknown_nmi_panic
|
||||
[X86] Cause panic on unknown NMI.
|
||||
|
||||
usbcore.authorized_default=
|
||||
[USB] Default USB device authorization:
|
||||
(default -1 = authorized except for wireless USB,
|
||||
0 = not authorized, 1 = authorized)
|
||||
|
||||
usbcore.autosuspend=
|
||||
[USB] The autosuspend time delay (in seconds) used
|
||||
for newly-detected USB devices (default 2). This
|
||||
|
|
|
@ -66,7 +66,7 @@ MKISS_DRIVER_MAGIC 0x04bf mkiss_channel drivers/net/mkiss.h
|
|||
RISCOM8_MAGIC 0x0907 riscom_port drivers/char/riscom8.h
|
||||
SPECIALIX_MAGIC 0x0907 specialix_port drivers/char/specialix_io8.h
|
||||
HDLC_MAGIC 0x239e n_hdlc drivers/char/n_hdlc.c
|
||||
APM_BIOS_MAGIC 0x4101 apm_user arch/i386/kernel/apm.c
|
||||
APM_BIOS_MAGIC 0x4101 apm_user arch/x86/kernel/apm_32.c
|
||||
CYCLADES_MAGIC 0x4359 cyclades_port include/linux/cyclades.h
|
||||
DB_MAGIC 0x4442 fc_info drivers/net/iph5526_novram.c
|
||||
DL_MAGIC 0x444d fc_info drivers/net/iph5526_novram.c
|
||||
|
|
|
@ -11,7 +11,7 @@ Adapter Detection
|
|||
|
||||
The ideal MCA adapter detection is done through the use of the
|
||||
Programmable Option Select registers. Generic functions for doing
|
||||
this have been added in include/linux/mca.h and arch/i386/kernel/mca.c.
|
||||
this have been added in include/linux/mca.h and arch/x86/kernel/mca_32.c.
|
||||
Everything needed to detect adapters and read (and write) configuration
|
||||
information is there. A number of MCA-specific drivers already use
|
||||
this. The typical probe code looks like the following:
|
||||
|
@ -81,7 +81,7 @@ more people use shared IRQs on PCI machines.
|
|||
In general, an interrupt must be acknowledged not only at the ICU (which
|
||||
is done automagically by the kernel), but at the device level. In
|
||||
particular, IRQ 0 must be reset after a timer interrupt (now done in
|
||||
arch/i386/kernel/time.c) or the first timer interrupt hangs the system.
|
||||
arch/x86/kernel/time.c) or the first timer interrupt hangs the system.
|
||||
There were also problems with the 1.3.x floppy drivers, but that seems
|
||||
to have been fixed.
|
||||
|
||||
|
|
|
@ -66,7 +66,7 @@ Your cpu_idle routines need to obey the following rules:
|
|||
barrier issued (followed by a test of need_resched with
|
||||
interrupts disabled, as explained in 3).
|
||||
|
||||
arch/i386/kernel/process.c has examples of both polling and
|
||||
arch/x86/kernel/process.c has examples of both polling and
|
||||
sleeping idle functions.
|
||||
|
||||
|
||||
|
|
|
@ -553,7 +553,7 @@ replacing "/usr/src" with wherever you keep your Linux kernel source tree:
|
|||
make config
|
||||
make zImage
|
||||
|
||||
Then install "arch/i386/boot/zImage" as your standard kernel, run lilo if
|
||||
Then install "arch/x86/boot/zImage" as your standard kernel, run lilo if
|
||||
appropriate, and reboot.
|
||||
|
||||
|
||||
|
|
|
@ -87,7 +87,7 @@ c) Set address on ISA cards then:
|
|||
edit /usr/src/linux/drivers/char/ip2.c
|
||||
(Optional - may be specified on kernel command line now)
|
||||
d) Run "make zImage" or whatever target you prefer.
|
||||
e) mv /usr/src/linux/arch/i386/boot/zImage to /boot.
|
||||
e) mv /usr/src/linux/arch/x86/boot/zImage to /boot.
|
||||
f) Add new config for this kernel into /etc/lilo.conf, run "lilo"
|
||||
or copy to a floppy disk and boot from that floppy disk.
|
||||
g) Reboot using this kernel
|
||||
|
|
|
@ -61,6 +61,7 @@ show up in /proc/sys/kernel:
|
|||
- rtsig-nr
|
||||
- sem
|
||||
- sg-big-buff [ generic SCSI device (sg) ]
|
||||
- shm_rmid_forced
|
||||
- shmall
|
||||
- shmmax [ sysv ipc ]
|
||||
- shmmni
|
||||
|
@ -518,6 +519,27 @@ kernel. This value defaults to SHMMAX.
|
|||
|
||||
==============================================================
|
||||
|
||||
shm_rmid_forced:
|
||||
|
||||
Linux lets you set resource limits, including how much memory one
|
||||
process can consume, via setrlimit(2). Unfortunately, shared memory
|
||||
segments are allowed to exist without association with any process, and
|
||||
thus might not be counted against any resource limits. If enabled,
|
||||
shared memory segments are automatically destroyed when their attach
|
||||
count becomes zero after a detach or a process termination. It will
|
||||
also destroy segments that were created, but never attached to, on exit
|
||||
from the process. The only use left for IPC_RMID is to immediately
|
||||
destroy an unattached segment. Of course, this breaks the way things are
|
||||
defined, so some applications might stop working. Note that this
|
||||
feature will do you no good unless you also configure your resource
|
||||
limits (in particular, RLIMIT_AS and RLIMIT_NPROC). Most systems don't
|
||||
need this.
|
||||
|
||||
Note that if you change this from 0 to 1, already created segments
|
||||
without users and with a dead originative process will be destroyed.
|
||||
|
||||
==============================================================
|
||||
|
||||
softlockup_thresh:
|
||||
|
||||
This value can be used to lower the softlockup tolerance threshold. The
|
||||
|
|
|
@ -210,3 +210,5 @@ TBD: Interrupt and ISO transfer performance issues. Those periodic
|
|||
transfers are fully scheduled, so the main issue is likely to be how
|
||||
to trigger "high bandwidth" modes.
|
||||
|
||||
TBD: More than standard 80% periodic bandwidth allocation is possible
|
||||
through sysfs uframe_periodic_max parameter. Describe that.
|
||||
|
|
|
@ -81,8 +81,8 @@ Send and receive HID reports
|
|||
to do this.
|
||||
|
||||
hid_gadget_test is a small interactive program to test the HID
|
||||
gadget driver. To use, point it at a hidg device and set the
|
||||
device type (keyboard / mouse / joystick) - E.G.:
|
||||
gadget driver. To use, point it at a hidg device and set the
|
||||
device type (keyboard / mouse / joystick) - E.G.:
|
||||
|
||||
# hid_gadget_test /dev/hidg0 keyboard
|
||||
|
||||
|
@ -97,7 +97,7 @@ Send and receive HID reports
|
|||
HID gadget.
|
||||
|
||||
Another interesting example is the caps lock test. Type
|
||||
-–caps-lock and hit return. A report is then sent by the
|
||||
--caps-lock and hit return. A report is then sent by the
|
||||
gadget and you should receive the host answer, corresponding
|
||||
to the caps lock LED status.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
锘?Chinese translated version of Documentation/email-clients.txt
|
||||
Chinese translated version of Documentation/email-clients.txt
|
||||
|
||||
If you have any comment or update to the content, please contact the
|
||||
original document maintainer directly. However, if you have a problem
|
||||
|
@ -8,203 +8,203 @@ or if there is a problem with the translation.
|
|||
|
||||
Chinese maintainer: Harry Wei <harryxiyou@gmail.com>
|
||||
---------------------------------------------------------------------
|
||||
Documentation/email-clients.txt ???涓????缈昏??
|
||||
Documentation/email-clients.txt 的中文翻译
|
||||
|
||||
濡??????宠??璁烘????存?版???????????瀹癸??璇风?存?ヨ??绯诲?????妗g??缁存?よ?????濡????浣?浣跨?ㄨ?辨??
|
||||
浜ゆ???????伴?剧??璇?锛?涔????浠ュ??涓???????缁存?よ??姹???┿??濡???????缈昏????存?颁???????舵?????缈?
|
||||
璇?瀛???ㄩ??棰?锛?璇疯??绯讳腑??????缁存?よ?????
|
||||
如果想评论或更新本文的内容,请直接联系原文档的维护者。如果你使用英文
|
||||
交流有困难的话,也可以向中文版维护者求助。如果本翻译更新不及时或者翻
|
||||
译存在问题,请联系中文版维护者。
|
||||
|
||||
涓???????缁存?よ??锛? 璐惧??濞? Harry Wei <harryxiyou@gmail.com>
|
||||
涓???????缈昏?????锛? 璐惧??濞? Harry Wei <harryxiyou@gmail.com>
|
||||
涓?????????¤?????锛? Yinglin Luan <synmyth@gmail.com>
|
||||
中文版维护者: 贾威威 Harry Wei <harryxiyou@gmail.com>
|
||||
中文版翻译者: 贾威威 Harry Wei <harryxiyou@gmail.com>
|
||||
中文版校译者: Yinglin Luan <synmyth@gmail.com>
|
||||
Xiaochen Wang <wangxiaochen0@gmail.com>
|
||||
yaxinsn <yaxinsn@163.com>
|
||||
|
||||
浠ヤ??涓烘?f??
|
||||
以下为正文
|
||||
---------------------------------------------------------------------
|
||||
|
||||
Linux???浠跺?㈡?风?????缃?淇℃??
|
||||
Linux邮件客户端配置信息
|
||||
======================================================================
|
||||
|
||||
?????????缃?
|
||||
普通配置
|
||||
----------------------------------------------------------------------
|
||||
Linux?????歌ˉ涓???????杩????浠惰?????浜ょ??锛????濂芥??琛ヤ??浣?涓洪??浠朵????????宓?????????????浜?缁存?よ??
|
||||
??ユ?堕??浠讹??浣???????浠剁?????瀹规?煎??搴?璇ユ??"text/plain"?????惰??锛????浠朵????????涓?璧???????锛?
|
||||
???涓鸿??浼?浣胯ˉ涓????寮???ㄩ?ㄥ????ㄨ??璁鸿??绋?涓???????寰???伴?俱??
|
||||
Linux内核补丁是通过邮件被提交的,最好把补丁作为邮件体的内嵌文本。有些维护者
|
||||
接收附件,但是附件的内容格式应该是"text/plain"。然而,附件一般是不赞成的,
|
||||
因为这会使补丁的引用部分在评论过程中变的很困难。
|
||||
|
||||
??ㄦ?ュ?????Linux?????歌ˉ涓???????浠跺?㈡?风????ㄥ?????琛ヤ????跺??璇ュ??浜?????????????濮???舵?????渚?濡?锛?
|
||||
浠?浠?涓???芥?瑰?????????????ゅ?惰〃绗???????绌烘?硷???????虫????ㄦ??涓?琛????寮?澶存?????缁?灏俱??
|
||||
用来发送Linux内核补丁的邮件客户端在发送补丁时应该处于文本的原始状态。例如,
|
||||
他们不能改变或者删除制表符或者空格,甚至是在每一行的开头或者结尾。
|
||||
|
||||
涓?瑕????杩?"format=flowed"妯″????????琛ヤ?????杩???蜂??寮?璧蜂?????棰????浠ュ?????瀹崇?????琛????
|
||||
不要通过"format=flowed"模式发送补丁。这样会引起不可预期以及有害的断行。
|
||||
|
||||
涓?瑕?璁╀????????浠跺?㈡?风??杩?琛??????ㄦ?㈣?????杩???蜂??浼???村??浣????琛ヤ?????
|
||||
不要让你的邮件客户端进行自动换行。这样也会破坏你的补丁。
|
||||
|
||||
???浠跺?㈡?风??涓???芥?瑰???????????瀛?绗????缂??????瑰?????瑕??????????琛ヤ???????芥??ASCII??????UTF-8缂??????瑰??锛?
|
||||
濡????浣?浣跨??UTF-8缂??????瑰???????????浠讹????d??浣?灏?浼???垮??涓?浜??????藉????????瀛?绗???????棰????
|
||||
邮件客户端不能改变文本的字符集编码方式。要发送的补丁只能是ASCII或者UTF-8编码方式,
|
||||
如果你使用UTF-8编码方式发送邮件,那么你将会避免一些可能发生的字符集问题。
|
||||
|
||||
???浠跺?㈡?风??搴?璇ュ舰???骞朵??淇???? References: ?????? In-Reply-To: ???棰?锛???d??
|
||||
???浠惰??棰?灏变??浼?涓???????
|
||||
邮件客户端应该形成并且保持 References: 或者 In-Reply-To: 标题,那么
|
||||
邮件话题就不会中断。
|
||||
|
||||
澶???剁??甯?(?????????璐寸??甯?)???甯镐????界?ㄤ??琛ヤ??锛????涓哄?惰〃绗?浼?杞????涓虹┖??笺??浣跨??xclipboard, xclip
|
||||
??????xcutsel涔?璁稿??浠ワ??浣???????濂芥??璇?涓?涓?????????垮??浣跨?ㄥ????剁??甯????
|
||||
复制粘帖(或者剪贴粘帖)通常不能用于补丁,因为制表符会转换为空格。使用xclipboard, xclip
|
||||
或者xcutsel也许可以,但是最好测试一下或者避免使用复制粘帖。
|
||||
|
||||
涓?瑕???ㄤ娇???PGP/GPG缃插????????浠朵腑??????琛ヤ?????杩???蜂??浣垮??寰?澶???????涓???借?诲??????????ㄤ??浣????琛ヤ?????
|
||||
锛?杩?涓????棰?搴?璇ユ?????浠ヤ慨澶????锛?
|
||||
不要在使用PGP/GPG署名的邮件中包含补丁。这样会使得很多脚本不能读取和适用于你的补丁。
|
||||
(这个问题应该是可以修复的)
|
||||
|
||||
??ㄧ???????搁??浠跺??琛ㄥ?????琛ヤ??涔????锛?缁????宸卞?????涓?涓?琛ヤ?????涓?涓???????涓绘??锛?淇?瀛???ユ?跺?扮??
|
||||
???浠讹??灏?琛ヤ?????'patch'??戒护???涓?锛?濡??????????浜?锛????缁??????搁??浠跺??琛ㄥ????????
|
||||
在给内核邮件列表发送补丁之前,给自己发送一个补丁是个不错的主意,保存接收到的
|
||||
邮件,将补丁用'patch'命令打上,如果成功了,再给内核邮件列表发送。
|
||||
|
||||
|
||||
涓?浜????浠跺?㈡?风?????绀?
|
||||
一些邮件客户端提示
|
||||
----------------------------------------------------------------------
|
||||
杩????缁???轰??浜?璇?缁????MUA???缃????绀猴?????浠ョ?ㄤ??缁?Linux?????稿?????琛ヤ?????杩?浜?骞朵???????虫??
|
||||
?????????杞?浠跺?????缃???荤?????
|
||||
这里给出一些详细的MUA配置提示,可以用于给Linux内核发送补丁。这些并不意味是
|
||||
所有的软件包配置总结。
|
||||
|
||||
璇存??锛?
|
||||
TUI = 浠ユ?????涓哄?虹???????ㄦ?锋?ュ??
|
||||
GUI = ??惧舰?????㈢?ㄦ?锋?ュ??
|
||||
说明:
|
||||
TUI = 以文本为基础的用户接口
|
||||
GUI = 图形界面用户接口
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Alpine (TUI)
|
||||
|
||||
???缃????椤癸??
|
||||
???"Sending Preferences"??ㄥ??锛?
|
||||
配置选项:
|
||||
在"Sending Preferences"部分:
|
||||
|
||||
- "Do Not Send Flowed Text"蹇?椤诲?????
|
||||
- "Strip Whitespace Before Sending"蹇?椤诲?抽??
|
||||
- "Do Not Send Flowed Text"必须开启
|
||||
- "Strip Whitespace Before Sending"必须关闭
|
||||
|
||||
褰???????浠舵?讹????????搴?璇ユ?惧?ㄨˉ涓?浼???虹?扮????版?癸????跺?????涓?CTRL-R缁???????锛?浣挎??瀹????
|
||||
琛ヤ?????浠跺????ュ?伴??浠朵腑???
|
||||
当写邮件时,光标应该放在补丁会出现的地方,然后按下CTRL-R组合键,使指定的
|
||||
补丁文件嵌入到邮件中。
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Evolution (GUI)
|
||||
|
||||
涓?浜?寮????????????????浣跨?ㄥ????????琛ヤ??
|
||||
一些开发者成功的使用它发送补丁
|
||||
|
||||
褰??????╅??浠堕??椤癸??Preformat
|
||||
浠?Format->Heading->Preformatted (Ctrl-7)??????宸ュ?锋??
|
||||
当选择邮件选项:Preformat
|
||||
从Format->Heading->Preformatted (Ctrl-7)或者工具栏
|
||||
|
||||
??跺??浣跨??锛?
|
||||
Insert->Text File... (Alt-n x)?????ヨˉ涓????浠躲??
|
||||
然后使用:
|
||||
Insert->Text File... (Alt-n x)插入补丁文件。
|
||||
|
||||
浣?杩????浠?"diff -Nru old.c new.c | xclip"锛???????Preformat锛???跺??浣跨?ㄤ腑??撮??杩?琛?绮?甯????
|
||||
你还可以"diff -Nru old.c new.c | xclip",选择Preformat,然后使用中间键进行粘帖。
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Kmail (GUI)
|
||||
|
||||
涓?浜?寮????????????????浣跨?ㄥ????????琛ヤ?????
|
||||
一些开发者成功的使用它发送补丁。
|
||||
|
||||
榛?璁よ?剧疆涓?涓?HTML??煎??????????????锛?涓?瑕??????ㄥ?????
|
||||
默认设置不为HTML格式是合适的;不要启用它。
|
||||
|
||||
褰?涔????涓?灏????浠剁????跺??锛???ㄩ??椤逛?????涓?瑕??????╄????ㄦ?㈣????????涓????缂虹?瑰氨???浣???ㄩ??浠朵腑杈???ョ??浠讳????????
|
||||
??戒??浼?琚??????ㄦ?㈣??锛????姝や??蹇?椤诲?ㄥ?????琛ヤ??涔?????????ㄦ?㈣????????绠?????????规??灏辨???????ㄨ????ㄦ?㈣????ヤ功??????浠讹??
|
||||
??跺?????瀹?淇?瀛?涓鸿??绋裤??涓????浣???ㄨ??绋夸腑???娆℃??寮?瀹?锛?瀹?宸茬????ㄩ?ㄨ????ㄦ?㈣??浜?锛???d??浣???????浠惰?界?舵病???
|
||||
?????╄????ㄦ?㈣??锛?浣????杩?涓?浼?澶卞?诲凡???????????ㄦ?㈣?????
|
||||
当书写一封邮件的时候,在选项下面不要选择自动换行。唯一的缺点就是你在邮件中输入的任何文本
|
||||
都不会被自动换行,因此你必须在发送补丁之前手动换行。最简单的方法就是启用自动换行来书写邮件,
|
||||
然后把它保存为草稿。一旦你在草稿中再次打开它,它已经全部自动换行了,那么你的邮件虽然没有
|
||||
选择自动换行,但是还不会失去已有的自动换行。
|
||||
|
||||
??ㄩ??浠剁??搴????锛??????ヨˉ涓?涔????锛???句??甯哥?ㄧ??琛ヤ??瀹????绗?锛?涓?涓?杩?瀛????(---)???
|
||||
在邮件的底部,插入补丁之前,放上常用的补丁定界符:三个连字号(---)。
|
||||
|
||||
??跺?????"Message"????????$??锛??????╂????ユ??浠讹????ョ????????浣????琛ヤ?????浠躲??杩????涓?涓?棰?澶???????椤癸??浣????浠?
|
||||
???杩?瀹????缃?浣???????浠跺缓绔?宸ュ?锋????????锛?杩????浠ュ甫涓?"insert file"??炬?????
|
||||
然后在"Message"菜单条目,选择插入文件,接着选取你的补丁文件。还有一个额外的选项,你可以
|
||||
通过它配置你的邮件建立工具栏菜单,还可以带上"insert file"图标。
|
||||
|
||||
浣????浠ュ????ㄥ?伴??杩?GPG???璁伴??浠讹??浣???????宓?琛ヤ?????濂戒??瑕?浣跨??GPG???璁板??浠????浣?涓哄??宓??????????绛惧??琛ヤ??锛?
|
||||
褰?浠?GPG涓???????7浣?缂??????朵??浣夸??浠?????????村??澶???????
|
||||
你可以安全地通过GPG标记附件,但是内嵌补丁最好不要使用GPG标记它们。作为内嵌文本的签发补丁,
|
||||
当从GPG中提取7位编码时会使他们变的更加复杂。
|
||||
|
||||
濡????浣????瑕?浠ラ??浠剁??褰㈠????????琛ヤ??锛???d??灏卞?抽????瑰?婚??浠讹????跺?????涓?灞???э??绐????"Suggest automatic
|
||||
display"锛?杩???峰??宓????浠舵?村?规??璁╄?昏???????般??
|
||||
如果你非要以附件的形式发送补丁,那么就右键点击附件,然后选中属性,突出"Suggest automatic
|
||||
display",这样内嵌附件更容易让读者看到。
|
||||
|
||||
褰?浣?瑕?淇?瀛?灏?瑕?????????????宓???????琛ヤ??锛?浣????浠ヤ??娑???????琛ㄧ????奸????╁?????琛ヤ????????浠讹????跺????冲?婚?????
|
||||
"save as"???浣????浠ヤ娇??ㄤ??涓?娌℃????存?圭????????琛ヤ????????浠讹??濡????瀹????浠ユ?g‘???褰㈠??缁???????褰?浣?姝g????ㄥ??
|
||||
???宸辩??绐???d??涓?瀵????锛???f?舵病??????椤瑰??浠ヤ??瀛????浠?--宸茬?????涓?涓?杩???风??bug琚?姹???ュ?颁??kmail???bugzilla
|
||||
骞朵??甯????杩?灏?浼?琚?澶??????????浠舵??浠ュ?????瀵规??涓???ㄦ?峰??璇诲???????????琚?淇?瀛????锛????浠ュ?????浣???虫?????浠跺????跺?板?朵????版?癸??
|
||||
浣?涓?寰?涓????浠?浠????????????逛负缁?????????翠?????璇汇??
|
||||
当你要保存将要发送的内嵌文本补丁,你可以从消息列表窗格选择包含补丁的邮件,然后右击选择
|
||||
"save as"。你可以使用一个没有更改的包含补丁的邮件,如果它是以正确的形式组成。当你正真在它
|
||||
自己的窗口之下察看,那时没有选项可以保存邮件--已经有一个这样的bug被汇报到了kmail的bugzilla
|
||||
并且希望这将会被处理。邮件是以只针对某个用户可读写的权限被保存的,所以如果你想把邮件复制到其他地方,
|
||||
你不得不把他们的权限改为组或者整体可读。
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Lotus Notes (GUI)
|
||||
|
||||
涓?瑕?浣跨?ㄥ?????
|
||||
不要使用它。
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Mutt (TUI)
|
||||
|
||||
寰?澶?Linux寮????浜哄??浣跨??mutt瀹㈡?风??锛????浠ヨ?????瀹????瀹?宸ヤ????????甯告??浜????
|
||||
很多Linux开发人员使用mutt客户端,所以证明它肯定工作的非常漂亮。
|
||||
|
||||
Mutt涓????甯?缂?杈????锛????浠ヤ??绠′??浣跨?ㄤ??涔?缂?杈???ㄩ?戒??搴?璇ュ甫????????ㄦ??琛????澶у????扮??杈???ㄩ?藉甫???
|
||||
涓?涓?"insert file"???椤癸??瀹????浠ラ??杩?涓???瑰?????浠跺??瀹圭????瑰???????ユ??浠躲??
|
||||
Mutt不自带编辑器,所以不管你使用什么编辑器都不应该带有自动断行。大多数编辑器都带有
|
||||
一个"insert file"选项,它可以通过不改变文件内容的方式插入文件。
|
||||
|
||||
'vim'浣?涓?mutt???缂?杈????锛?
|
||||
'vim'作为mutt的编辑器:
|
||||
set editor="vi"
|
||||
|
||||
濡????浣跨??xclip锛???插?ヤ互涓???戒护
|
||||
如果使用xclip,敲入以下命令
|
||||
:set paste
|
||||
???涓????涔??????????shift-insert??????浣跨??
|
||||
按中键之前或者shift-insert或者使用
|
||||
:r filename
|
||||
|
||||
濡??????宠?????琛ヤ??浣?涓哄??宓??????????
|
||||
(a)ttach宸ヤ?????寰?濂斤??涓?甯????"set paste"???
|
||||
如果想要把补丁作为内嵌文本。
|
||||
(a)ttach工作的很好,不带有"set paste"。
|
||||
|
||||
???缃????椤癸??
|
||||
瀹?搴?璇ヤ互榛?璁よ?剧疆???褰㈠??宸ヤ?????
|
||||
??惰??锛????"send_charset"璁剧疆涓?"us-ascii::utf-8"涔????涓?涓?涓???????涓绘?????
|
||||
配置选项:
|
||||
它应该以默认设置的形式工作。
|
||||
然而,把"send_charset"设置为"us-ascii::utf-8"也是一个不错的主意。
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Pine (TUI)
|
||||
|
||||
Pine杩???绘??涓?浜?绌烘?煎????????棰?锛?浣????杩?浜???板?ㄥ??璇ラ?借??淇?澶?浜????
|
||||
Pine过去有一些空格删减问题,但是这些现在应该都被修复了。
|
||||
|
||||
濡???????浠ワ??璇蜂娇???alpine(pine???缁ф?胯??)
|
||||
如果可以,请使用alpine(pine的继承者)
|
||||
|
||||
???缃????椤癸??
|
||||
- ???杩?????????????瑕?娑???ゆ??绋???????
|
||||
- "no-strip-whitespace-before-send"???椤逛????????瑕???????
|
||||
配置选项:
|
||||
- 最近的版本需要消除流程文本
|
||||
- "no-strip-whitespace-before-send"选项也是需要的。
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Sylpheed (GUI)
|
||||
|
||||
- ???宓??????????浠ュ??濂界??宸ヤ??锛???????浣跨?ㄩ??浠讹?????
|
||||
- ???璁镐娇??ㄥ????ㄧ??缂?杈???ㄣ??
|
||||
- 瀵逛?????褰?杈?澶???堕??甯告?????
|
||||
- 濡???????杩?non-SSL杩???ワ?????娉?浣跨??TLS SMTP?????????
|
||||
- ??ㄧ?????绐???d腑???涓?涓?寰??????ㄧ??ruler bar???
|
||||
- 缁???板?????涓?娣诲????板??灏变??浼?姝g‘???浜?瑙f?剧ず??????
|
||||
- 内嵌文本可以很好的工作(或者使用附件)。
|
||||
- 允许使用外部的编辑器。
|
||||
- 对于目录较多时非常慢。
|
||||
- 如果通过non-SSL连接,无法使用TLS SMTP授权。
|
||||
- 在组成窗口中有一个很有用的ruler bar。
|
||||
- 给地址本中添加地址就不会正确的了解显示名。
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Thunderbird (GUI)
|
||||
|
||||
榛?璁ゆ????典??锛?thunderbird寰?瀹规??????????????锛?浣????杩????涓?浜???规?????浠ュ己??跺?????寰???村ソ???
|
||||
默认情况下,thunderbird很容易损坏文本,但是还有一些方法可以强制它变得更好。
|
||||
|
||||
- ??ㄧ?ㄦ?峰????疯?剧疆???锛?缁???????瀵诲??锛?涓?瑕???????"Compose messages in HTML format"???
|
||||
- 在用户帐号设置里,组成和寻址,不要选择"Compose messages in HTML format"。
|
||||
|
||||
- 缂?杈?浣????Thunderbird???缃?璁剧疆??ヤ娇瀹?涓?瑕????琛?浣跨??锛?user_pref("mailnews.wraplength", 0);
|
||||
- 编辑你的Thunderbird配置设置来使它不要拆行使用:user_pref("mailnews.wraplength", 0);
|
||||
|
||||
- 缂?杈?浣????Thunderbird???缃?璁剧疆锛?浣垮??涓?瑕?浣跨??"format=flowed"??煎??锛?user_pref("mailnews.
|
||||
- 编辑你的Thunderbird配置设置,使它不要使用"format=flowed"格式:user_pref("mailnews.
|
||||
send_plaintext_flowed", false);
|
||||
|
||||
- 浣????瑕?浣?Thunderbird???涓洪???????煎????瑰??锛?
|
||||
濡????榛?璁ゆ????典??浣?涔??????????HTML??煎??锛???d?????寰???俱??浠?浠?浠????棰???????涓????妗?涓???????"Preformat"??煎?????
|
||||
濡????榛?璁ゆ????典??浣?涔??????????????????煎??锛?浣?涓?寰????瀹???逛负HTML??煎??锛?浠?浠?浣?涓轰??娆℃?х??锛???ヤ功?????扮??娑????锛?
|
||||
??跺??寮哄?朵娇瀹??????版???????煎??锛???????瀹?灏变?????琛????瑕?瀹???板??锛???ㄥ??淇$????炬??涓?浣跨??shift?????ヤ娇瀹????涓?HTML
|
||||
??煎??锛???跺?????棰???????涓????妗?涓???????"Preformat"??煎?????
|
||||
- 你需要使Thunderbird变为预先格式方式:
|
||||
如果默认情况下你书写的是HTML格式,那不是很难。仅仅从标题栏的下拉框中选择"Preformat"格式。
|
||||
如果默认情况下你书写的是文本格式,你不得把它改为HTML格式(仅仅作为一次性的)来书写新的消息,
|
||||
然后强制使它回到文本格式,否则它就会拆行。要实现它,在写信的图标上使用shift键来使它变为HTML
|
||||
格式,然后标题栏的下拉框中选择"Preformat"格式。
|
||||
|
||||
- ???璁镐娇??ㄥ????ㄧ??缂?杈????锛?
|
||||
???瀵?Thunderbird???琛ヤ?????绠?????????规??灏辨??浣跨?ㄤ??涓?"external editor"??╁??锛???跺??浣跨?ㄤ????????娆㈢??
|
||||
$EDITOR??ヨ?诲???????????骞惰ˉ涓???版?????涓????瑕?瀹???板??锛????浠ヤ??杞藉苟涓?瀹?瑁?杩?涓???╁??锛???跺??娣诲??涓?涓?浣跨?ㄥ?????
|
||||
??????View->Toolbars->Customize...??????褰?浣?涔????淇℃???????跺??浠?浠???瑰?诲??灏卞??浠ヤ?????
|
||||
- 允许使用外部的编辑器:
|
||||
针对Thunderbird打补丁最简单的方法就是使用一个"external editor"扩展,然后使用你最喜欢的
|
||||
$EDITOR来读取或者合并补丁到文本中。要实现它,可以下载并且安装这个扩展,然后添加一个使用它的
|
||||
按键View->Toolbars->Customize...最后当你书写信息的时候仅仅点击它就可以了。
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
TkRat (GUI)
|
||||
|
||||
???浠ヤ娇??ㄥ?????浣跨??"Insert file..."??????澶???ㄧ??缂?杈???ㄣ??
|
||||
可以使用它。使用"Insert file..."或者外部的编辑器。
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Gmail (Web GUI)
|
||||
|
||||
涓?瑕?浣跨?ㄥ????????琛ヤ?????
|
||||
不要使用它发送补丁。
|
||||
|
||||
Gmail缃?椤靛?㈡?风???????ㄥ?版????惰〃绗?杞????涓虹┖??笺??
|
||||
Gmail网页客户端自动地把制表符转换为空格。
|
||||
|
||||
??界?跺?惰〃绗?杞????涓虹┖??奸??棰????浠ヨ??澶???ㄧ??杈???ㄨВ??筹???????跺??杩?浼?浣跨?ㄥ??杞???㈣?????姣?琛???????涓?78涓?瀛?绗????
|
||||
虽然制表符转换为空格问题可以被外部编辑器解决,同时它还会使用回车换行把每行拆分为78个字符。
|
||||
|
||||
???涓?涓????棰????Gmail杩?浼????浠讳??涓????ASCII???瀛?绗????淇℃????逛负base64缂???????瀹????涓?瑗垮????????娆ф床浜虹?????瀛????
|
||||
另一个问题是Gmail还会把任何不是ASCII的字符的信息改为base64编码。它把东西变的像欧洲人的名字。
|
||||
|
||||
###
|
||||
|
|
|
@ -66,7 +66,7 @@ MKISS_DRIVER_MAGIC 0x04bf mkiss_channel drivers/net/mkiss.h
|
|||
RISCOM8_MAGIC 0x0907 riscom_port drivers/char/riscom8.h
|
||||
SPECIALIX_MAGIC 0x0907 specialix_port drivers/char/specialix_io8.h
|
||||
HDLC_MAGIC 0x239e n_hdlc drivers/char/n_hdlc.c
|
||||
APM_BIOS_MAGIC 0x4101 apm_user arch/i386/kernel/apm.c
|
||||
APM_BIOS_MAGIC 0x4101 apm_user arch/x86/kernel/apm_32.c
|
||||
CYCLADES_MAGIC 0x4359 cyclades_port include/linux/cyclades.h
|
||||
DB_MAGIC 0x4442 fc_info drivers/net/iph5526_novram.c
|
||||
DL_MAGIC 0x444d fc_info drivers/net/iph5526_novram.c
|
||||
|
|
186
MAINTAINERS
186
MAINTAINERS
|
@ -696,7 +696,7 @@ T: git git://git.infradead.org/users/cbou/linux-cns3xxx.git
|
|||
|
||||
ARM/CIRRUS LOGIC EP93XX ARM ARCHITECTURE
|
||||
M: Hartley Sweeten <hsweeten@visionengravers.com>
|
||||
M: Ryan Mallon <ryan@bluewatersys.com>
|
||||
M: Ryan Mallon <rmallon@gmail.com>
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
S: Maintained
|
||||
F: arch/arm/mach-ep93xx/
|
||||
|
@ -734,6 +734,12 @@ T: git git://git.berlios.de/gemini-board
|
|||
S: Maintained
|
||||
F: arch/arm/mach-gemini/
|
||||
|
||||
ARM/CSR SIRFPRIMA2 MACHINE SUPPORT
|
||||
M: Barry Song <baohua.song@csr.com>
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
S: Maintained
|
||||
F: arch/arm/mach-prima2/
|
||||
|
||||
ARM/EBSA110 MACHINE SUPPORT
|
||||
M: Russell King <linux@arm.linux.org.uk>
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
|
@ -1546,9 +1552,10 @@ F: drivers/net/tg3.*
|
|||
BROADCOM BRCM80211 IEEE802.11n WIRELESS DRIVER
|
||||
M: Brett Rudley <brudley@broadcom.com>
|
||||
M: Henry Ptasinski <henryp@broadcom.com>
|
||||
M: Dowan Kim <dowan@broadcom.com>
|
||||
M: Roland Vossen <rvossen@broadcom.com>
|
||||
M: Arend van Spriel <arend@broadcom.com>
|
||||
M: Franky (Zhenhui) Lin <frankyl@broadcom.com>
|
||||
M: Kan Yan <kanyan@broadcom.com>
|
||||
L: linux-wireless@vger.kernel.org
|
||||
S: Supported
|
||||
F: drivers/staging/brcm80211/
|
||||
|
@ -1588,7 +1595,7 @@ F: Documentation/sound/alsa/Bt87x.txt
|
|||
F: sound/pci/bt87x.c
|
||||
|
||||
BT8XXGPIO DRIVER
|
||||
M: Michael Buesch <mb@bu3sch.de>
|
||||
M: Michael Buesch <m@bues.ch>
|
||||
W: http://bu3sch.de/btgpio.php
|
||||
S: Maintained
|
||||
F: drivers/gpio/bt8xxgpio.c
|
||||
|
@ -3012,7 +3019,7 @@ F: kernel/hrtimer.c
|
|||
F: kernel/time/clockevents.c
|
||||
F: kernel/time/tick*.*
|
||||
F: kernel/time/timer_*.c
|
||||
F: include/linux/clockevents.h
|
||||
F: include/linux/clockchips.h
|
||||
F: include/linux/hrtimer.h
|
||||
|
||||
HIGH-SPEED SCC DRIVER FOR AX.25
|
||||
|
@ -3895,7 +3902,7 @@ F: arch/powerpc/platforms/512x/
|
|||
F: arch/powerpc/platforms/52xx/
|
||||
|
||||
LINUX FOR POWERPC EMBEDDED PPC4XX
|
||||
M: Josh Boyer <jwboyer@linux.vnet.ibm.com>
|
||||
M: Josh Boyer <jwboyer@gmail.com>
|
||||
M: Matt Porter <mporter@kernel.crashing.org>
|
||||
W: http://www.penguinppc.org/
|
||||
L: linuxppc-dev@lists.ozlabs.org
|
||||
|
@ -3927,6 +3934,7 @@ W: http://www.penguinppc.org/
|
|||
L: linuxppc-dev@lists.ozlabs.org
|
||||
S: Maintained
|
||||
F: arch/powerpc/platforms/83xx/
|
||||
F: arch/powerpc/platforms/85xx/
|
||||
|
||||
LINUX FOR POWERPC PA SEMI PWRFICIENT
|
||||
M: Olof Johansson <olof@lixom.net>
|
||||
|
@ -3960,6 +3968,13 @@ L: lm-sensors@lm-sensors.org
|
|||
S: Maintained
|
||||
F: drivers/hwmon/lm73.c
|
||||
|
||||
LM78 HARDWARE MONITOR DRIVER
|
||||
M: Jean Delvare <khali@linux-fr.org>
|
||||
L: lm-sensors@lm-sensors.org
|
||||
S: Maintained
|
||||
F: Documentation/hwmon/lm78
|
||||
F: drivers/hwmon/lm78.c
|
||||
|
||||
LM83 HARDWARE MONITOR DRIVER
|
||||
M: Jean Delvare <khali@linux-fr.org>
|
||||
L: lm-sensors@lm-sensors.org
|
||||
|
@ -4106,6 +4121,12 @@ S: Maintained
|
|||
F: drivers/net/mv643xx_eth.*
|
||||
F: include/linux/mv643xx.h
|
||||
|
||||
MARVELL MWIFIEX WIRELESS DRIVER
|
||||
M: Bing Zhao <bzhao@marvell.com>
|
||||
L: linux-wireless@vger.kernel.org
|
||||
S: Maintained
|
||||
F: drivers/net/wireless/mwifiex/
|
||||
|
||||
MARVELL MWL8K WIRELESS DRIVER
|
||||
M: Lennert Buytenhek <buytenh@wantstofly.org>
|
||||
L: linux-wireless@vger.kernel.org
|
||||
|
@ -4202,9 +4223,10 @@ F: drivers/usb/image/microtek.*
|
|||
|
||||
MIPS
|
||||
M: Ralf Baechle <ralf@linux-mips.org>
|
||||
W: http://www.linux-mips.org/
|
||||
L: linux-mips@linux-mips.org
|
||||
W: http://www.linux-mips.org/
|
||||
T: git git://git.linux-mips.org/pub/scm/linux.git
|
||||
Q: http://patchwork.linux-mips.org/project/linux-mips/list/
|
||||
S: Supported
|
||||
F: Documentation/mips/
|
||||
F: arch/mips/
|
||||
|
@ -5904,7 +5926,7 @@ S: Maintained
|
|||
F: drivers/net/sonic.*
|
||||
|
||||
SONICS SILICON BACKPLANE DRIVER (SSB)
|
||||
M: Michael Buesch <mb@bu3sch.de>
|
||||
M: Michael Buesch <m@bues.ch>
|
||||
L: netdev@vger.kernel.org
|
||||
S: Maintained
|
||||
F: drivers/ssb/
|
||||
|
@ -6078,6 +6100,145 @@ L: devel@driverdev.osuosl.org
|
|||
S: Maintained
|
||||
F: drivers/staging/
|
||||
|
||||
STAGING - AGERE HERMES II and II.5 WIRELESS DRIVERS
|
||||
M: Henk de Groot <pe1dnn@amsat.org>
|
||||
S: Odd Fixes
|
||||
F: drivers/staging/wlags49_h2/
|
||||
F: drivers/staging/wlags49_h25/
|
||||
|
||||
STAGING - ASUS OLED
|
||||
M: Jakub Schmidtke <sjakub@gmail.com>
|
||||
S: Odd Fixes
|
||||
F: drivers/staging/asus_oled/
|
||||
|
||||
STAGING - ATHEROS ATH6KL WIRELESS DRIVER
|
||||
M: Luis R. Rodriguez <mcgrof@gmail.com>
|
||||
M: Naveen Singh <nsingh@atheros.com>
|
||||
S: Odd Fixes
|
||||
F: drivers/staging/ath6kl/
|
||||
|
||||
STAGING - COMEDI
|
||||
M: Ian Abbott <abbotti@mev.co.uk>
|
||||
M: Mori Hess <fmhess@users.sourceforge.net>
|
||||
S: Odd Fixes
|
||||
F: drivers/staging/comedi/
|
||||
|
||||
STAGING - CRYSTAL HD VIDEO DECODER
|
||||
M: Naren Sankar <nsankar@broadcom.com>
|
||||
M: Jarod Wilson <jarod@wilsonet.com>
|
||||
M: Scott Davilla <davilla@4pi.com>
|
||||
M: Manu Abraham <abraham.manu@gmail.com>
|
||||
S: Odd Fixes
|
||||
F: drivers/staging/crystalhd/
|
||||
|
||||
STAGING - CYPRESS WESTBRIDGE SUPPORT
|
||||
M: David Cross <david.cross@cypress.com>
|
||||
S: Odd Fixes
|
||||
F: drivers/staging/westbridge/
|
||||
|
||||
STAGING - ECHO CANCELLER
|
||||
M: Steve Underwood <steveu@coppice.org>
|
||||
M: David Rowe <david@rowetel.com>
|
||||
S: Odd Fixes
|
||||
F: drivers/staging/echo/
|
||||
|
||||
STAGING - FLARION FT1000 DRIVERS
|
||||
M: Marek Belisko <marek.belisko@gmail.com>
|
||||
S: Odd Fixes
|
||||
F: drivers/staging/ft1000/
|
||||
|
||||
STAGING - FRONTIER TRANZPORT AND ALPHATRACK
|
||||
M: David Täht <d@teklibre.com>
|
||||
S: Odd Fixes
|
||||
F: drivers/staging/frontier/
|
||||
|
||||
STAGING - HYPER-V (MICROSOFT)
|
||||
M: Hank Janssen <hjanssen@microsoft.com>
|
||||
M: Haiyang Zhang <haiyangz@microsoft.com>
|
||||
S: Odd Fixes
|
||||
F: drivers/staging/hv/
|
||||
|
||||
STAGING - INDUSTRIAL IO
|
||||
M: Jonathan Cameron <jic23@cam.ac.uk>
|
||||
L: linux-iio@vger.kernel.org
|
||||
S: Odd Fixes
|
||||
F: drivers/staging/iio/
|
||||
|
||||
STAGING - LIRC (LINUX INFRARED REMOTE CONTROL) DRIVERS
|
||||
M: Jarod Wilson <jarod@wilsonet.com>
|
||||
W: http://www.lirc.org/
|
||||
S: Odd Fixes
|
||||
F: drivers/staging/lirc/
|
||||
|
||||
STAGING - OLPC SECONDARY DISPLAY CONTROLLER (DCON)
|
||||
M: Andres Salomon <dilinger@queued.net>
|
||||
M: Chris Ball <cjb@laptop.org>
|
||||
M: Jon Nettleton <jon.nettleton@gmail.com>
|
||||
W: http://wiki.laptop.org/go/DCON
|
||||
S: Odd Fixes
|
||||
F: drivers/staging/olpc_dcon/
|
||||
|
||||
STAGING - PARALLEL LCD/KEYPAD PANEL DRIVER
|
||||
M: Willy Tarreau <willy@meta-x.org>
|
||||
S: Odd Fixes
|
||||
F: drivers/staging/panel/
|
||||
|
||||
STAGING - REALTEK RTL8712U DRIVERS
|
||||
M: Larry Finger <Larry.Finger@lwfinger.net>
|
||||
M: Florian Schilhabel <florian.c.schilhabel@googlemail.com>.
|
||||
S: Odd Fixes
|
||||
F: drivers/staging/rtl8712/
|
||||
|
||||
STAGING - SILICON MOTION SM7XX FRAME BUFFER DRIVER
|
||||
M: Teddy Wang <teddy.wang@siliconmotion.com.cn>
|
||||
S: Odd Fixes
|
||||
F: drivers/staging/sm7xx/
|
||||
|
||||
STAGING - SOFTLOGIC 6x10 MPEG CODEC
|
||||
M: Ben Collins <bcollins@bluecherry.net>
|
||||
S: Odd Fixes
|
||||
F: drivers/staging/solo6x10/
|
||||
|
||||
STAGING - SPEAKUP CONSOLE SPEECH DRIVER
|
||||
M: William Hubbs <w.d.hubbs@gmail.com>
|
||||
M: Chris Brannon <chris@the-brannons.com>
|
||||
M: Kirk Reiser <kirk@braille.uwo.ca>
|
||||
M: Samuel Thibault <samuel.thibault@ens-lyon.org>
|
||||
L: speakup@braille.uwo.ca
|
||||
W: http://www.linux-speakup.org/
|
||||
S: Odd Fixes
|
||||
F: drivers/staging/speakup/
|
||||
|
||||
STAGING - TI DSP BRIDGE DRIVERS
|
||||
M: Omar Ramirez Luna <omar.ramirez@ti.com>
|
||||
S: Odd Fixes
|
||||
F: drivers/staging/tidspbridge/
|
||||
|
||||
STAGING - TRIDENT TVMASTER TMxxxx USB VIDEO CAPTURE DRIVERS
|
||||
L: linux-media@vger.kernel.org
|
||||
S: Odd Fixes
|
||||
F: drivers/staging/tm6000/
|
||||
|
||||
STAGING - USB ENE SM/MS CARD READER DRIVER
|
||||
M: Al Cho <acho@novell.com>
|
||||
S: Odd Fixes
|
||||
F: drivers/staging/keucr/
|
||||
|
||||
STAGING - VIA VT665X DRIVERS
|
||||
M: Forest Bond <forest@alittletooquiet.net>
|
||||
S: Odd Fixes
|
||||
F: drivers/staging/vt665?/
|
||||
|
||||
STAGING - WINBOND IS89C35 WLAN USB DRIVER
|
||||
M: Pavel Machek <pavel@ucw.cz>
|
||||
S: Odd Fixes
|
||||
F: drivers/staging/winbond/
|
||||
|
||||
STAGING - XGI Z7,Z9,Z11 PCI DISPLAY DRIVER
|
||||
M: Arnaud Patard <apatard@mandriva.com>
|
||||
S: Odd Fixes
|
||||
F: drivers/staging/xgifb/
|
||||
|
||||
STARFIRE/DURALAN NETWORK DRIVER
|
||||
M: Ion Badulescu <ionut@badula.org>
|
||||
S: Odd Fixes
|
||||
|
@ -6580,13 +6741,6 @@ W: http://pegasus2.sourceforge.net/
|
|||
S: Maintained
|
||||
F: drivers/net/usb/rtl8150.c
|
||||
|
||||
USB SE401 DRIVER
|
||||
L: linux-usb@vger.kernel.org
|
||||
W: http://www.chello.nl/~j.vreeken/se401/
|
||||
S: Orphan
|
||||
F: Documentation/video4linux/se401.txt
|
||||
F: drivers/staging/se401/
|
||||
|
||||
USB SERIAL BELKIN F5U103 DRIVER
|
||||
M: William Greathouse <wgreathouse@smva.com>
|
||||
L: linux-usb@vger.kernel.org
|
||||
|
@ -6972,9 +7126,9 @@ S: Maintained
|
|||
F: drivers/input/misc/wistron_btns.c
|
||||
|
||||
WL1251 WIRELESS DRIVER
|
||||
M: Kalle Valo <kvalo@adurom.com>
|
||||
M: Luciano Coelho <coelho@ti.com>
|
||||
L: linux-wireless@vger.kernel.org
|
||||
W: http://wireless.kernel.org
|
||||
W: http://wireless.kernel.org/en/users/Drivers/wl1251
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git
|
||||
S: Maintained
|
||||
F: drivers/net/wireless/wl1251/*
|
||||
|
|
|
@ -176,15 +176,15 @@ static __inline__ long atomic64_sub_return(long i, atomic64_t * v)
|
|||
#define atomic_xchg(v, new) (xchg(&((v)->counter), new))
|
||||
|
||||
/**
|
||||
* atomic_add_unless - add unless the number is a given value
|
||||
* __atomic_add_unless - add unless the number is a given value
|
||||
* @v: pointer of type atomic_t
|
||||
* @a: the amount to add to v...
|
||||
* @u: ...unless v is equal to u.
|
||||
*
|
||||
* Atomically adds @a to @v, so long as it was not @u.
|
||||
* Returns non-zero if @v was not @u, and zero otherwise.
|
||||
* Returns the old value of @v.
|
||||
*/
|
||||
static __inline__ int atomic_add_unless(atomic_t *v, int a, int u)
|
||||
static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u)
|
||||
{
|
||||
int c, old;
|
||||
c = atomic_read(v);
|
||||
|
@ -196,10 +196,9 @@ static __inline__ int atomic_add_unless(atomic_t *v, int a, int u)
|
|||
break;
|
||||
c = old;
|
||||
}
|
||||
return c != (u);
|
||||
return c;
|
||||
}
|
||||
|
||||
#define atomic_inc_not_zero(v) atomic_add_unless((v), 1, 0)
|
||||
|
||||
/**
|
||||
* atomic64_add_unless - add unless the number is a given value
|
||||
|
@ -208,7 +207,7 @@ static __inline__ int atomic_add_unless(atomic_t *v, int a, int u)
|
|||
* @u: ...unless v is equal to u.
|
||||
*
|
||||
* Atomically adds @a to @v, so long as it was not @u.
|
||||
* Returns non-zero if @v was not @u, and zero otherwise.
|
||||
* Returns the old value of @v.
|
||||
*/
|
||||
static __inline__ int atomic64_add_unless(atomic64_t *v, long a, long u)
|
||||
{
|
||||
|
@ -256,5 +255,4 @@ static __inline__ int atomic64_add_unless(atomic64_t *v, long a, long u)
|
|||
#define smp_mb__before_atomic_inc() smp_mb()
|
||||
#define smp_mb__after_atomic_inc() smp_mb()
|
||||
|
||||
#include <asm-generic/atomic-long.h>
|
||||
#endif /* _ALPHA_ATOMIC_H */
|
||||
|
|
|
@ -456,8 +456,7 @@ sched_find_first_bit(const unsigned long b[2])
|
|||
|
||||
#include <asm-generic/bitops/le.h>
|
||||
|
||||
#define ext2_set_bit_atomic(l,n,a) test_and_set_bit(n,a)
|
||||
#define ext2_clear_bit_atomic(l,n,a) test_and_clear_bit(n,a)
|
||||
#include <asm-generic/bitops/ext2-atomic-setbit.h>
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
#define fd_cacheflush(addr,size) /* nothing */
|
||||
#define fd_request_irq() request_irq(FLOPPY_IRQ, floppy_interrupt,\
|
||||
IRQF_DISABLED, "floppy", NULL)
|
||||
#define fd_free_irq() free_irq(FLOPPY_IRQ, NULL);
|
||||
#define fd_free_irq() free_irq(FLOPPY_IRQ, NULL)
|
||||
|
||||
#ifdef CONFIG_PCI
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
#define _ALPHA_LOCAL_H
|
||||
|
||||
#include <linux/percpu.h>
|
||||
#include <asm/atomic.h>
|
||||
#include <linux/atomic.h>
|
||||
|
||||
typedef struct
|
||||
{
|
||||
|
|
|
@ -72,7 +72,6 @@ struct switch_stack {
|
|||
#define user_mode(regs) (((regs)->ps & 8) != 0)
|
||||
#define instruction_pointer(regs) ((regs)->pc)
|
||||
#define profile_pc(regs) instruction_pointer(regs)
|
||||
extern void show_regs(struct pt_regs *);
|
||||
|
||||
#define task_pt_regs(task) \
|
||||
((struct pt_regs *) (task_stack_page(task) + 2*PAGE_SIZE) - 1)
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
#include <linux/init.h>
|
||||
|
||||
#include <asm/hwrpb.h>
|
||||
#include <asm/atomic.h>
|
||||
#include <linux/atomic.h>
|
||||
#include <asm/irq.h>
|
||||
#include <asm/irq_regs.h>
|
||||
#include <asm/pal.h>
|
||||
|
|
|
@ -200,7 +200,6 @@ show_regs(struct pt_regs *regs)
|
|||
void
|
||||
start_thread(struct pt_regs * regs, unsigned long pc, unsigned long sp)
|
||||
{
|
||||
set_fs(USER_DS);
|
||||
regs->pc = pc;
|
||||
regs->ps = 8;
|
||||
wrusp(sp);
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
|
||||
#include <asm/hwrpb.h>
|
||||
#include <asm/ptrace.h>
|
||||
#include <asm/atomic.h>
|
||||
#include <linux/atomic.h>
|
||||
|
||||
#include <asm/io.h>
|
||||
#include <asm/irq.h>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/spinlock.h>
|
||||
#include <asm/atomic.h>
|
||||
#include <linux/atomic.h>
|
||||
|
||||
asm (".text \n\
|
||||
.global _atomic_dec_and_lock \n\
|
||||
|
|
|
@ -242,6 +242,7 @@ config ARCH_INTEGRATOR
|
|||
select ARM_AMBA
|
||||
select ARCH_HAS_CPUFREQ
|
||||
select CLKDEV_LOOKUP
|
||||
select HAVE_MACH_CLKDEV
|
||||
select ICST
|
||||
select GENERIC_CLOCKEVENTS
|
||||
select PLAT_VERSATILE
|
||||
|
@ -253,6 +254,7 @@ config ARCH_REALVIEW
|
|||
bool "ARM Ltd. RealView family"
|
||||
select ARM_AMBA
|
||||
select CLKDEV_LOOKUP
|
||||
select HAVE_MACH_CLKDEV
|
||||
select ICST
|
||||
select GENERIC_CLOCKEVENTS
|
||||
select ARCH_WANT_OPTIONAL_GPIOLIB
|
||||
|
@ -268,6 +270,7 @@ config ARCH_VERSATILE
|
|||
select ARM_AMBA
|
||||
select ARM_VIC
|
||||
select CLKDEV_LOOKUP
|
||||
select HAVE_MACH_CLKDEV
|
||||
select ICST
|
||||
select GENERIC_CLOCKEVENTS
|
||||
select ARCH_WANT_OPTIONAL_GPIOLIB
|
||||
|
@ -284,6 +287,7 @@ config ARCH_VEXPRESS
|
|||
select ARM_AMBA
|
||||
select ARM_TIMER_SP804
|
||||
select CLKDEV_LOOKUP
|
||||
select HAVE_MACH_CLKDEV
|
||||
select GENERIC_CLOCKEVENTS
|
||||
select HAVE_CLK
|
||||
select HAVE_PATA_PLATFORM
|
||||
|
@ -324,7 +328,7 @@ config ARCH_CLPS711X
|
|||
|
||||
config ARCH_CNS3XXX
|
||||
bool "Cavium Networks CNS3XXX family"
|
||||
select CPU_V6
|
||||
select CPU_V6K
|
||||
select GENERIC_CLOCKEVENTS
|
||||
select ARM_GIC
|
||||
select MIGHT_HAVE_PCI
|
||||
|
@ -340,6 +344,19 @@ config ARCH_GEMINI
|
|||
help
|
||||
Support for the Cortina Systems Gemini family SoCs
|
||||
|
||||
config ARCH_PRIMA2
|
||||
bool "CSR SiRFSoC PRIMA2 ARM Cortex A9 Platform"
|
||||
select CPU_V7
|
||||
select GENERIC_TIME
|
||||
select NO_IOPORT
|
||||
select GENERIC_CLOCKEVENTS
|
||||
select CLKDEV_LOOKUP
|
||||
select GENERIC_IRQ_CHIP
|
||||
select USE_OF
|
||||
select ZONE_DMA
|
||||
help
|
||||
Support for CSR SiRFSoC ARM Cortex A9 Platform
|
||||
|
||||
config ARCH_EBSA110
|
||||
bool "EBSA-110"
|
||||
select CPU_SA110
|
||||
|
@ -379,6 +396,7 @@ config ARCH_MXC
|
|||
select ARCH_REQUIRE_GPIOLIB
|
||||
select CLKDEV_LOOKUP
|
||||
select CLKSRC_MMIO
|
||||
select GENERIC_IRQ_CHIP
|
||||
select HAVE_SCHED_CLOCK
|
||||
help
|
||||
Support for Freescale MXC/iMX-based family of processors
|
||||
|
@ -493,14 +511,6 @@ config ARCH_KIRKWOOD
|
|||
Support for the following Marvell Kirkwood series SoCs:
|
||||
88F6180, 88F6192 and 88F6281.
|
||||
|
||||
config ARCH_LOKI
|
||||
bool "Marvell Loki (88RC8480)"
|
||||
select CPU_FEROCEON
|
||||
select GENERIC_CLOCKEVENTS
|
||||
select PLAT_ORION
|
||||
help
|
||||
Support for the Marvell Loki (88RC8480) SoC.
|
||||
|
||||
config ARCH_LPC32XX
|
||||
bool "NXP LPC32XX"
|
||||
select CLKSRC_MMIO
|
||||
|
@ -594,7 +604,6 @@ config ARCH_TEGRA
|
|||
select GENERIC_GPIO
|
||||
select HAVE_CLK
|
||||
select HAVE_SCHED_CLOCK
|
||||
select ARCH_HAS_BARRIERS if CACHE_L2X0
|
||||
select ARCH_HAS_CPUFREQ
|
||||
help
|
||||
This enables support for NVIDIA Tegra based systems (Tegra APX,
|
||||
|
@ -621,6 +630,8 @@ config ARCH_PXA
|
|||
select TICK_ONESHOT
|
||||
select PLAT_PXA
|
||||
select SPARSE_IRQ
|
||||
select AUTO_ZRELADDR
|
||||
select MULTI_IRQ_HANDLER
|
||||
help
|
||||
Support for Intel/Marvell's PXA2xx/PXA3xx processor line.
|
||||
|
||||
|
@ -641,6 +652,7 @@ config ARCH_SHMOBILE
|
|||
bool "Renesas SH-Mobile / R-Mobile"
|
||||
select HAVE_CLK
|
||||
select CLKDEV_LOOKUP
|
||||
select HAVE_MACH_CLKDEV
|
||||
select GENERIC_CLOCKEVENTS
|
||||
select NO_IOPORT
|
||||
select SPARSE_IRQ
|
||||
|
@ -686,6 +698,7 @@ config ARCH_S3C2410
|
|||
select GENERIC_GPIO
|
||||
select ARCH_HAS_CPUFREQ
|
||||
select HAVE_CLK
|
||||
select CLKDEV_LOOKUP
|
||||
select ARCH_USES_GETTIMEOFFSET
|
||||
select HAVE_S3C2410_I2C if I2C
|
||||
help
|
||||
|
@ -703,6 +716,7 @@ config ARCH_S3C64XX
|
|||
select CPU_V6
|
||||
select ARM_VIC
|
||||
select HAVE_CLK
|
||||
select CLKDEV_LOOKUP
|
||||
select NO_IOPORT
|
||||
select ARCH_USES_GETTIMEOFFSET
|
||||
select ARCH_HAS_CPUFREQ
|
||||
|
@ -727,6 +741,8 @@ config ARCH_S5P64X0
|
|||
select CPU_V6
|
||||
select GENERIC_GPIO
|
||||
select HAVE_CLK
|
||||
select CLKDEV_LOOKUP
|
||||
select CLKSRC_MMIO
|
||||
select HAVE_S3C2410_WATCHDOG if WATCHDOG
|
||||
select GENERIC_CLOCKEVENTS
|
||||
select HAVE_SCHED_CLOCK
|
||||
|
@ -740,6 +756,7 @@ config ARCH_S5PC100
|
|||
bool "Samsung S5PC100"
|
||||
select GENERIC_GPIO
|
||||
select HAVE_CLK
|
||||
select CLKDEV_LOOKUP
|
||||
select CPU_V7
|
||||
select ARM_L1_CACHE_SHIFT_6
|
||||
select ARCH_USES_GETTIMEOFFSET
|
||||
|
@ -753,8 +770,11 @@ config ARCH_S5PV210
|
|||
bool "Samsung S5PV210/S5PC110"
|
||||
select CPU_V7
|
||||
select ARCH_SPARSEMEM_ENABLE
|
||||
select ARCH_HAS_HOLES_MEMORYMODEL
|
||||
select GENERIC_GPIO
|
||||
select HAVE_CLK
|
||||
select CLKDEV_LOOKUP
|
||||
select CLKSRC_MMIO
|
||||
select ARM_L1_CACHE_SHIFT_6
|
||||
select ARCH_HAS_CPUFREQ
|
||||
select GENERIC_CLOCKEVENTS
|
||||
|
@ -769,8 +789,10 @@ config ARCH_EXYNOS4
|
|||
bool "Samsung EXYNOS4"
|
||||
select CPU_V7
|
||||
select ARCH_SPARSEMEM_ENABLE
|
||||
select ARCH_HAS_HOLES_MEMORYMODEL
|
||||
select GENERIC_GPIO
|
||||
select HAVE_CLK
|
||||
select CLKDEV_LOOKUP
|
||||
select ARCH_HAS_CPUFREQ
|
||||
select GENERIC_CLOCKEVENTS
|
||||
select HAVE_S3C_RTC if RTC_CLASS
|
||||
|
@ -812,6 +834,7 @@ config ARCH_U300
|
|||
select ARM_VIC
|
||||
select GENERIC_CLOCKEVENTS
|
||||
select CLKDEV_LOOKUP
|
||||
select HAVE_MACH_CLKDEV
|
||||
select GENERIC_GPIO
|
||||
help
|
||||
Support for ST-Ericsson U300 series mobile platforms.
|
||||
|
@ -856,6 +879,7 @@ config ARCH_OMAP
|
|||
select HAVE_CLK
|
||||
select ARCH_REQUIRE_GPIOLIB
|
||||
select ARCH_HAS_CPUFREQ
|
||||
select CLKSRC_MMIO
|
||||
select GENERIC_CLOCKEVENTS
|
||||
select HAVE_SCHED_CLOCK
|
||||
select ARCH_HAS_HOLES_MEMORYMODEL
|
||||
|
@ -883,6 +907,19 @@ config ARCH_VT8500
|
|||
select HAVE_PWM
|
||||
help
|
||||
Support for VIA/WonderMedia VT8500/WM85xx System-on-Chip.
|
||||
|
||||
config ARCH_ZYNQ
|
||||
bool "Xilinx Zynq ARM Cortex A9 Platform"
|
||||
select CPU_V7
|
||||
select GENERIC_TIME
|
||||
select GENERIC_CLOCKEVENTS
|
||||
select CLKDEV_LOOKUP
|
||||
select ARM_GIC
|
||||
select ARM_AMBA
|
||||
select ICST
|
||||
select USE_OF
|
||||
help
|
||||
Support for Xilinx Zynq ARM Cortex A9 Platform
|
||||
endchoice
|
||||
|
||||
#
|
||||
|
@ -928,8 +965,6 @@ source "arch/arm/mach-kirkwood/Kconfig"
|
|||
|
||||
source "arch/arm/mach-ks8695/Kconfig"
|
||||
|
||||
source "arch/arm/mach-loki/Kconfig"
|
||||
|
||||
source "arch/arm/mach-lpc32xx/Kconfig"
|
||||
|
||||
source "arch/arm/mach-msm/Kconfig"
|
||||
|
@ -973,7 +1008,6 @@ source "arch/arm/plat-spear/Kconfig"
|
|||
source "arch/arm/plat-tcc/Kconfig"
|
||||
|
||||
if ARCH_S3C2410
|
||||
source "arch/arm/mach-s3c2400/Kconfig"
|
||||
source "arch/arm/mach-s3c2410/Kconfig"
|
||||
source "arch/arm/mach-s3c2412/Kconfig"
|
||||
source "arch/arm/mach-s3c2416/Kconfig"
|
||||
|
@ -1896,10 +1930,6 @@ config CPU_FREQ_PXA
|
|||
default y
|
||||
select CPU_FREQ_DEFAULT_GOV_USERSPACE
|
||||
|
||||
config CPU_FREQ_S3C64XX
|
||||
bool "CPUfreq support for Samsung S3C64XX CPUs"
|
||||
depends on CPU_FREQ && CPU_S3C6410
|
||||
|
||||
config CPU_FREQ_S3C
|
||||
bool
|
||||
help
|
||||
|
|
|
@ -150,7 +150,6 @@ machine-$(CONFIG_ARCH_IXP23XX) := ixp23xx
|
|||
machine-$(CONFIG_ARCH_IXP4XX) := ixp4xx
|
||||
machine-$(CONFIG_ARCH_KIRKWOOD) := kirkwood
|
||||
machine-$(CONFIG_ARCH_KS8695) := ks8695
|
||||
machine-$(CONFIG_ARCH_LOKI) := loki
|
||||
machine-$(CONFIG_ARCH_LPC32XX) := lpc32xx
|
||||
machine-$(CONFIG_ARCH_MMP) := mmp
|
||||
machine-$(CONFIG_ARCH_MSM) := msm
|
||||
|
@ -169,11 +168,11 @@ machine-$(CONFIG_ARCH_OMAP3) := omap2
|
|||
machine-$(CONFIG_ARCH_OMAP4) := omap2
|
||||
machine-$(CONFIG_ARCH_ORION5X) := orion5x
|
||||
machine-$(CONFIG_ARCH_PNX4008) := pnx4008
|
||||
machine-$(CONFIG_ARCH_PRIMA2) := prima2
|
||||
machine-$(CONFIG_ARCH_PXA) := pxa
|
||||
machine-$(CONFIG_ARCH_REALVIEW) := realview
|
||||
machine-$(CONFIG_ARCH_RPC) := rpc
|
||||
machine-$(CONFIG_ARCH_S3C2410) := s3c2410 s3c2400 s3c2412 s3c2416 s3c2440 s3c2443
|
||||
machine-$(CONFIG_ARCH_S3C24A0) := s3c24a0
|
||||
machine-$(CONFIG_ARCH_S3C2410) := s3c2410 s3c2412 s3c2416 s3c2440 s3c2443
|
||||
machine-$(CONFIG_ARCH_S3C64XX) := s3c64xx
|
||||
machine-$(CONFIG_ARCH_S5P64X0) := s5p64x0
|
||||
machine-$(CONFIG_ARCH_S5PC100) := s5pc100
|
||||
|
@ -196,6 +195,7 @@ machine-$(CONFIG_MACH_SPEAR300) := spear3xx
|
|||
machine-$(CONFIG_MACH_SPEAR310) := spear3xx
|
||||
machine-$(CONFIG_MACH_SPEAR320) := spear3xx
|
||||
machine-$(CONFIG_MACH_SPEAR600) := spear6xx
|
||||
machine-$(CONFIG_ARCH_ZYNQ) := zynq
|
||||
|
||||
# Platform directory name. This list is sorted alphanumerically
|
||||
# by CONFIG_* macro name.
|
||||
|
@ -203,6 +203,7 @@ plat-$(CONFIG_ARCH_MXC) := mxc
|
|||
plat-$(CONFIG_ARCH_OMAP) := omap
|
||||
plat-$(CONFIG_ARCH_S3C64XX) := samsung
|
||||
plat-$(CONFIG_ARCH_TCC_926) := tcc
|
||||
plat-$(CONFIG_ARCH_ZYNQ) := versatile
|
||||
plat-$(CONFIG_PLAT_IOP) := iop
|
||||
plat-$(CONFIG_PLAT_NOMADIK) := nomadik
|
||||
plat-$(CONFIG_PLAT_ORION) := orion
|
||||
|
|
|
@ -0,0 +1,416 @@
|
|||
/dts-v1/;
|
||||
/ {
|
||||
model = "SiRF Prima2 eVB";
|
||||
compatible = "sirf,prima2-cb", "sirf,prima2";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
interrupt-parent = <&intc>;
|
||||
|
||||
memory {
|
||||
reg = <0x00000000 0x20000000>;
|
||||
};
|
||||
|
||||
chosen {
|
||||
bootargs = "mem=512M real_root=/dev/mmcblk0p2 console=ttyS0 panel=1 bootsplash=true bpp=16 androidboot.console=ttyS1";
|
||||
linux,stdout-path = &uart1;
|
||||
};
|
||||
|
||||
cpus {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
cpu@0 {
|
||||
reg = <0x0>;
|
||||
d-cache-line-size = <32>;
|
||||
i-cache-line-size = <32>;
|
||||
d-cache-size = <32768>;
|
||||
i-cache-size = <32768>;
|
||||
/* from bootloader */
|
||||
timebase-frequency = <0>;
|
||||
bus-frequency = <0>;
|
||||
clock-frequency = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
axi {
|
||||
compatible = "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges = <0x40000000 0x40000000 0x80000000>;
|
||||
|
||||
l2-cache-controller@80040000 {
|
||||
compatible = "arm,pl310-cache";
|
||||
reg = <0x80040000 0x1000>;
|
||||
interrupts = <59>;
|
||||
};
|
||||
|
||||
intc: interrupt-controller@80020000 {
|
||||
#interrupt-cells = <1>;
|
||||
interrupt-controller;
|
||||
compatible = "sirf,prima2-intc";
|
||||
reg = <0x80020000 0x1000>;
|
||||
};
|
||||
|
||||
sys-iobg {
|
||||
compatible = "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges = <0x88000000 0x88000000 0x40000>;
|
||||
|
||||
clock-controller@88000000 {
|
||||
compatible = "sirf,prima2-clkc";
|
||||
reg = <0x88000000 0x1000>;
|
||||
interrupts = <3>;
|
||||
};
|
||||
|
||||
reset-controller@88010000 {
|
||||
compatible = "sirf,prima2-rstc";
|
||||
reg = <0x88010000 0x1000>;
|
||||
};
|
||||
};
|
||||
|
||||
mem-iobg {
|
||||
compatible = "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges = <0x90000000 0x90000000 0x10000>;
|
||||
|
||||
memory-controller@90000000 {
|
||||
compatible = "sirf,prima2-memc";
|
||||
reg = <0x90000000 0x10000>;
|
||||
interrupts = <27>;
|
||||
};
|
||||
};
|
||||
|
||||
disp-iobg {
|
||||
compatible = "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges = <0x90010000 0x90010000 0x30000>;
|
||||
|
||||
display@90010000 {
|
||||
compatible = "sirf,prima2-lcd";
|
||||
reg = <0x90010000 0x20000>;
|
||||
interrupts = <30>;
|
||||
};
|
||||
|
||||
vpp@90020000 {
|
||||
compatible = "sirf,prima2-vpp";
|
||||
reg = <0x90020000 0x10000>;
|
||||
interrupts = <31>;
|
||||
};
|
||||
};
|
||||
|
||||
graphics-iobg {
|
||||
compatible = "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges = <0x98000000 0x98000000 0x8000000>;
|
||||
|
||||
graphics@98000000 {
|
||||
compatible = "powervr,sgx531";
|
||||
reg = <0x98000000 0x8000000>;
|
||||
interrupts = <6>;
|
||||
};
|
||||
};
|
||||
|
||||
multimedia-iobg {
|
||||
compatible = "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges = <0xa0000000 0xa0000000 0x8000000>;
|
||||
|
||||
multimedia@a0000000 {
|
||||
compatible = "sirf,prima2-video-codec";
|
||||
reg = <0xa0000000 0x8000000>;
|
||||
interrupts = <5>;
|
||||
};
|
||||
};
|
||||
|
||||
dsp-iobg {
|
||||
compatible = "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges = <0xa8000000 0xa8000000 0x2000000>;
|
||||
|
||||
dspif@a8000000 {
|
||||
compatible = "sirf,prima2-dspif";
|
||||
reg = <0xa8000000 0x10000>;
|
||||
interrupts = <9>;
|
||||
};
|
||||
|
||||
gps@a8010000 {
|
||||
compatible = "sirf,prima2-gps";
|
||||
reg = <0xa8010000 0x10000>;
|
||||
interrupts = <7>;
|
||||
};
|
||||
|
||||
dsp@a9000000 {
|
||||
compatible = "sirf,prima2-dsp";
|
||||
reg = <0xa9000000 0x1000000>;
|
||||
interrupts = <8>;
|
||||
};
|
||||
};
|
||||
|
||||
peri-iobg {
|
||||
compatible = "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges = <0xb0000000 0xb0000000 0x180000>;
|
||||
|
||||
timer@b0020000 {
|
||||
compatible = "sirf,prima2-tick";
|
||||
reg = <0xb0020000 0x1000>;
|
||||
interrupts = <0>;
|
||||
};
|
||||
|
||||
nand@b0030000 {
|
||||
compatible = "sirf,prima2-nand";
|
||||
reg = <0xb0030000 0x10000>;
|
||||
interrupts = <41>;
|
||||
};
|
||||
|
||||
audio@b0040000 {
|
||||
compatible = "sirf,prima2-audio";
|
||||
reg = <0xb0040000 0x10000>;
|
||||
interrupts = <35>;
|
||||
};
|
||||
|
||||
uart0: uart@b0050000 {
|
||||
cell-index = <0>;
|
||||
compatible = "sirf,prima2-uart";
|
||||
reg = <0xb0050000 0x10000>;
|
||||
interrupts = <17>;
|
||||
};
|
||||
|
||||
uart1: uart@b0060000 {
|
||||
cell-index = <1>;
|
||||
compatible = "sirf,prima2-uart";
|
||||
reg = <0xb0060000 0x10000>;
|
||||
interrupts = <18>;
|
||||
};
|
||||
|
||||
uart2: uart@b0070000 {
|
||||
cell-index = <2>;
|
||||
compatible = "sirf,prima2-uart";
|
||||
reg = <0xb0070000 0x10000>;
|
||||
interrupts = <19>;
|
||||
};
|
||||
|
||||
usp0: usp@b0080000 {
|
||||
cell-index = <0>;
|
||||
compatible = "sirf,prima2-usp";
|
||||
reg = <0xb0080000 0x10000>;
|
||||
interrupts = <20>;
|
||||
};
|
||||
|
||||
usp1: usp@b0090000 {
|
||||
cell-index = <1>;
|
||||
compatible = "sirf,prima2-usp";
|
||||
reg = <0xb0090000 0x10000>;
|
||||
interrupts = <21>;
|
||||
};
|
||||
|
||||
usp2: usp@b00a0000 {
|
||||
cell-index = <2>;
|
||||
compatible = "sirf,prima2-usp";
|
||||
reg = <0xb00a0000 0x10000>;
|
||||
interrupts = <22>;
|
||||
};
|
||||
|
||||
dmac0: dma-controller@b00b0000 {
|
||||
cell-index = <0>;
|
||||
compatible = "sirf,prima2-dmac";
|
||||
reg = <0xb00b0000 0x10000>;
|
||||
interrupts = <12>;
|
||||
};
|
||||
|
||||
dmac1: dma-controller@b0160000 {
|
||||
cell-index = <1>;
|
||||
compatible = "sirf,prima2-dmac";
|
||||
reg = <0xb0160000 0x10000>;
|
||||
interrupts = <13>;
|
||||
};
|
||||
|
||||
vip@b00C0000 {
|
||||
compatible = "sirf,prima2-vip";
|
||||
reg = <0xb00C0000 0x10000>;
|
||||
};
|
||||
|
||||
spi0: spi@b00d0000 {
|
||||
cell-index = <0>;
|
||||
compatible = "sirf,prima2-spi";
|
||||
reg = <0xb00d0000 0x10000>;
|
||||
interrupts = <15>;
|
||||
};
|
||||
|
||||
spi1: spi@b0170000 {
|
||||
cell-index = <1>;
|
||||
compatible = "sirf,prima2-spi";
|
||||
reg = <0xb0170000 0x10000>;
|
||||
interrupts = <16>;
|
||||
};
|
||||
|
||||
i2c0: i2c@b00e0000 {
|
||||
cell-index = <0>;
|
||||
compatible = "sirf,prima2-i2c";
|
||||
reg = <0xb00e0000 0x10000>;
|
||||
interrupts = <24>;
|
||||
};
|
||||
|
||||
i2c1: i2c@b00f0000 {
|
||||
cell-index = <1>;
|
||||
compatible = "sirf,prima2-i2c";
|
||||
reg = <0xb00f0000 0x10000>;
|
||||
interrupts = <25>;
|
||||
};
|
||||
|
||||
tsc@b0110000 {
|
||||
compatible = "sirf,prima2-tsc";
|
||||
reg = <0xb0110000 0x10000>;
|
||||
interrupts = <33>;
|
||||
};
|
||||
|
||||
gpio: gpio-controller@b0120000 {
|
||||
#gpio-cells = <2>;
|
||||
#interrupt-cells = <2>;
|
||||
compatible = "sirf,prima2-gpio";
|
||||
reg = <0xb0120000 0x10000>;
|
||||
gpio-controller;
|
||||
interrupt-controller;
|
||||
};
|
||||
|
||||
pwm@b0130000 {
|
||||
compatible = "sirf,prima2-pwm";
|
||||
reg = <0xb0130000 0x10000>;
|
||||
};
|
||||
|
||||
efusesys@b0140000 {
|
||||
compatible = "sirf,prima2-efuse";
|
||||
reg = <0xb0140000 0x10000>;
|
||||
};
|
||||
|
||||
pulsec@b0150000 {
|
||||
compatible = "sirf,prima2-pulsec";
|
||||
reg = <0xb0150000 0x10000>;
|
||||
interrupts = <48>;
|
||||
};
|
||||
|
||||
pci-iobg {
|
||||
compatible = "sirf,prima2-pciiobg", "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges = <0x56000000 0x56000000 0x1b00000>;
|
||||
|
||||
sd0: sdhci@56000000 {
|
||||
cell-index = <0>;
|
||||
compatible = "sirf,prima2-sdhc";
|
||||
reg = <0x56000000 0x100000>;
|
||||
interrupts = <38>;
|
||||
};
|
||||
|
||||
sd1: sdhci@56100000 {
|
||||
cell-index = <1>;
|
||||
compatible = "sirf,prima2-sdhc";
|
||||
reg = <0x56100000 0x100000>;
|
||||
interrupts = <38>;
|
||||
};
|
||||
|
||||
sd2: sdhci@56200000 {
|
||||
cell-index = <2>;
|
||||
compatible = "sirf,prima2-sdhc";
|
||||
reg = <0x56200000 0x100000>;
|
||||
interrupts = <23>;
|
||||
};
|
||||
|
||||
sd3: sdhci@56300000 {
|
||||
cell-index = <3>;
|
||||
compatible = "sirf,prima2-sdhc";
|
||||
reg = <0x56300000 0x100000>;
|
||||
interrupts = <23>;
|
||||
};
|
||||
|
||||
sd4: sdhci@56400000 {
|
||||
cell-index = <4>;
|
||||
compatible = "sirf,prima2-sdhc";
|
||||
reg = <0x56400000 0x100000>;
|
||||
interrupts = <39>;
|
||||
};
|
||||
|
||||
sd5: sdhci@56500000 {
|
||||
cell-index = <5>;
|
||||
compatible = "sirf,prima2-sdhc";
|
||||
reg = <0x56500000 0x100000>;
|
||||
interrupts = <39>;
|
||||
};
|
||||
|
||||
pci-copy@57900000 {
|
||||
compatible = "sirf,prima2-pcicp";
|
||||
reg = <0x57900000 0x100000>;
|
||||
interrupts = <40>;
|
||||
};
|
||||
|
||||
rom-interface@57a00000 {
|
||||
compatible = "sirf,prima2-romif";
|
||||
reg = <0x57a00000 0x100000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
rtc-iobg {
|
||||
compatible = "sirf,prima2-rtciobg", "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
reg = <0x80030000 0x10000>;
|
||||
|
||||
gpsrtc@1000 {
|
||||
compatible = "sirf,prima2-gpsrtc";
|
||||
reg = <0x1000 0x1000>;
|
||||
interrupts = <55 56 57>;
|
||||
};
|
||||
|
||||
sysrtc@2000 {
|
||||
compatible = "sirf,prima2-sysrtc";
|
||||
reg = <0x2000 0x1000>;
|
||||
interrupts = <52 53 54>;
|
||||
};
|
||||
|
||||
pwrc@3000 {
|
||||
compatible = "sirf,prima2-pwrc";
|
||||
reg = <0x3000 0x1000>;
|
||||
interrupts = <32>;
|
||||
};
|
||||
};
|
||||
|
||||
uus-iobg {
|
||||
compatible = "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges = <0xb8000000 0xb8000000 0x40000>;
|
||||
|
||||
usb0: usb@b00e0000 {
|
||||
compatible = "chipidea,ci13611a-prima2";
|
||||
reg = <0xb8000000 0x10000>;
|
||||
interrupts = <10>;
|
||||
};
|
||||
|
||||
usb1: usb@b00f0000 {
|
||||
compatible = "chipidea,ci13611a-prima2";
|
||||
reg = <0xb8010000 0x10000>;
|
||||
interrupts = <11>;
|
||||
};
|
||||
|
||||
sata@b00f0000 {
|
||||
compatible = "synopsys,dwc-ahsata";
|
||||
reg = <0xb8020000 0x10000>;
|
||||
interrupts = <37>;
|
||||
};
|
||||
|
||||
security@b00f0000 {
|
||||
compatible = "sirf,prima2-security";
|
||||
reg = <0xb8030000 0x10000>;
|
||||
interrupts = <42>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
|
@ -0,0 +1,52 @@
|
|||
/*
|
||||
* Copyright (C) 2011 Xilinx
|
||||
*
|
||||
* This software is licensed under the terms of the GNU General Public
|
||||
* License version 2, as published by the Free Software Foundation, and
|
||||
* may be copied, distributed, and modified under those terms.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/ {
|
||||
model = "Xilinx Zynq EP107";
|
||||
compatible = "xlnx,zynq-ep107";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
interrupt-parent = <&intc>;
|
||||
|
||||
memory {
|
||||
device_type = "memory";
|
||||
reg = <0x0 0x10000000>;
|
||||
};
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttyPS0,9600 root=/dev/ram rw initrd=0x800000,8M earlyprintk";
|
||||
linux,stdout-path = &uart0;
|
||||
};
|
||||
|
||||
amba {
|
||||
compatible = "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges;
|
||||
|
||||
intc: interrupt-controller@f8f01000 {
|
||||
interrupt-controller;
|
||||
compatible = "arm,gic";
|
||||
reg = <0xF8F01000 0x1000>;
|
||||
#interrupt-cells = <2>;
|
||||
};
|
||||
|
||||
uart0: uart@e0000000 {
|
||||
compatible = "xlnx,xuartps";
|
||||
reg = <0xE0000000 0x1000>;
|
||||
interrupts = <59 0>;
|
||||
clock = <50000000>;
|
||||
};
|
||||
};
|
||||
};
|
|
@ -38,12 +38,6 @@ static DEFINE_SPINLOCK(irq_controller_lock);
|
|||
/* Address of GIC 0 CPU interface */
|
||||
void __iomem *gic_cpu_base_addr __read_mostly;
|
||||
|
||||
struct gic_chip_data {
|
||||
unsigned int irq_offset;
|
||||
void __iomem *dist_base;
|
||||
void __iomem *cpu_base;
|
||||
};
|
||||
|
||||
/*
|
||||
* Supported arch specific GIC irq extension.
|
||||
* Default make them NULL.
|
||||
|
|
|
@ -193,7 +193,7 @@ static int __devinit scoop_probe(struct platform_device *pdev)
|
|||
spin_lock_init(&devptr->scoop_lock);
|
||||
|
||||
inf = pdev->dev.platform_data;
|
||||
devptr->base = ioremap(mem->start, mem->end - mem->start + 1);
|
||||
devptr->base = ioremap(mem->start, resource_size(mem));
|
||||
|
||||
if (!devptr->base) {
|
||||
ret = -ENOMEM;
|
||||
|
|
|
@ -5,7 +5,6 @@ CONFIG_SYSVIPC=y
|
|||
CONFIG_IKCONFIG=y
|
||||
CONFIG_IKCONFIG_PROC=y
|
||||
CONFIG_LOG_BUF_SHIFT=18
|
||||
CONFIG_SYSFS_DEPRECATED_V2=y
|
||||
CONFIG_BLK_DEV_INITRD=y
|
||||
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
|
||||
CONFIG_MODULES=y
|
||||
|
@ -13,6 +12,7 @@ CONFIG_MODULE_UNLOAD=y
|
|||
CONFIG_MODULE_FORCE_UNLOAD=y
|
||||
# CONFIG_BLK_DEV_BSG is not set
|
||||
CONFIG_ARCH_PXA=y
|
||||
CONFIG_GPIO_PCA953X=y
|
||||
CONFIG_MACH_CM_X300=y
|
||||
CONFIG_NO_HZ=y
|
||||
CONFIG_AEABI=y
|
||||
|
@ -23,7 +23,6 @@ CONFIG_CMDLINE="root=/dev/mtdblock5 rootfstype=ubifs console=ttyS2,38400"
|
|||
CONFIG_CPU_FREQ=y
|
||||
CONFIG_CPU_FREQ_GOV_USERSPACE=y
|
||||
CONFIG_FPE_NWFPE=y
|
||||
CONFIG_PM=y
|
||||
CONFIG_APM_EMULATION=y
|
||||
CONFIG_NET=y
|
||||
CONFIG_PACKET=y
|
||||
|
@ -40,8 +39,8 @@ CONFIG_IP_PNP_RARP=y
|
|||
# CONFIG_INET_DIAG is not set
|
||||
# CONFIG_IPV6 is not set
|
||||
CONFIG_BT=m
|
||||
CONFIG_BT_L2CAP=m
|
||||
CONFIG_BT_SCO=m
|
||||
CONFIG_BT_L2CAP=y
|
||||
CONFIG_BT_SCO=y
|
||||
CONFIG_BT_RFCOMM=m
|
||||
CONFIG_BT_RFCOMM_TTY=y
|
||||
CONFIG_BT_BNEP=m
|
||||
|
@ -60,7 +59,6 @@ CONFIG_MTD_NAND_PXA3xx=y
|
|||
CONFIG_MTD_UBI=y
|
||||
CONFIG_BLK_DEV_LOOP=y
|
||||
CONFIG_BLK_DEV_RAM=y
|
||||
# CONFIG_MISC_DEVICES is not set
|
||||
CONFIG_SCSI=y
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
CONFIG_NETDEVICES=y
|
||||
|
@ -81,16 +79,15 @@ CONFIG_TOUCHSCREEN_WM97XX=m
|
|||
# CONFIG_TOUCHSCREEN_WM9705 is not set
|
||||
# CONFIG_TOUCHSCREEN_WM9713 is not set
|
||||
# CONFIG_SERIO is not set
|
||||
# CONFIG_LEGACY_PTYS is not set
|
||||
CONFIG_SERIAL_PXA=y
|
||||
CONFIG_SERIAL_PXA_CONSOLE=y
|
||||
# CONFIG_LEGACY_PTYS is not set
|
||||
# CONFIG_HW_RANDOM is not set
|
||||
CONFIG_I2C=y
|
||||
CONFIG_I2C_PXA=y
|
||||
CONFIG_SPI=y
|
||||
CONFIG_SPI_GPIO=y
|
||||
CONFIG_GPIO_SYSFS=y
|
||||
CONFIG_GPIO_PCA953X=y
|
||||
# CONFIG_HWMON is not set
|
||||
CONFIG_PMIC_DA903X=y
|
||||
CONFIG_REGULATOR=y
|
||||
|
@ -102,7 +99,6 @@ CONFIG_LCD_CLASS_DEVICE=y
|
|||
CONFIG_LCD_TDO24M=y
|
||||
# CONFIG_BACKLIGHT_GENERIC is not set
|
||||
CONFIG_BACKLIGHT_DA903X=m
|
||||
# CONFIG_VGA_CONSOLE is not set
|
||||
CONFIG_FRAMEBUFFER_CONSOLE=y
|
||||
CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
|
||||
CONFIG_FONTS=y
|
||||
|
@ -131,7 +127,6 @@ CONFIG_HID_GREENASIA=y
|
|||
CONFIG_HID_SMARTJOYPLUS=y
|
||||
CONFIG_HID_TOPSEED=y
|
||||
CONFIG_HID_THRUSTMASTER=y
|
||||
CONFIG_HID_WACOM=m
|
||||
CONFIG_HID_ZEROPLUS=y
|
||||
CONFIG_USB=y
|
||||
CONFIG_USB_DEVICEFS=y
|
||||
|
@ -152,7 +147,6 @@ CONFIG_RTC_DRV_PXA=y
|
|||
CONFIG_EXT2_FS=y
|
||||
CONFIG_EXT3_FS=y
|
||||
# CONFIG_EXT3_FS_XATTR is not set
|
||||
CONFIG_INOTIFY=y
|
||||
CONFIG_MSDOS_FS=m
|
||||
CONFIG_VFAT_FS=m
|
||||
CONFIG_TMPFS=y
|
||||
|
@ -164,7 +158,6 @@ CONFIG_NFS_V3=y
|
|||
CONFIG_NFS_V3_ACL=y
|
||||
CONFIG_NFS_V4=y
|
||||
CONFIG_ROOT_NFS=y
|
||||
CONFIG_SMB_FS=m
|
||||
CONFIG_CIFS=m
|
||||
CONFIG_CIFS_WEAK_PW_HASH=y
|
||||
CONFIG_PARTITION_ADVANCED=y
|
||||
|
@ -172,9 +165,7 @@ CONFIG_NLS_CODEPAGE_437=m
|
|||
CONFIG_NLS_ISO8859_1=m
|
||||
CONFIG_DEBUG_FS=y
|
||||
CONFIG_DEBUG_KERNEL=y
|
||||
# CONFIG_DETECT_SOFTLOCKUP is not set
|
||||
# CONFIG_SCHED_DEBUG is not set
|
||||
# CONFIG_RCU_CPU_STALL_DETECTOR is not set
|
||||
CONFIG_SYSCTL_SYSCALL_CHECK=y
|
||||
# CONFIG_FTRACE is not set
|
||||
CONFIG_DEBUG_USER=y
|
||||
|
@ -182,7 +173,6 @@ CONFIG_DEBUG_LL=y
|
|||
CONFIG_CRYPTO_ECB=m
|
||||
CONFIG_CRYPTO_MICHAEL_MIC=m
|
||||
CONFIG_CRYPTO_AES=m
|
||||
CONFIG_CRYPTO_ARC4=m
|
||||
# CONFIG_CRYPTO_ANSI_CPRNG is not set
|
||||
# CONFIG_CRYPTO_HW is not set
|
||||
CONFIG_CRC_T10DIF=y
|
||||
|
|
|
@ -1,120 +0,0 @@
|
|||
CONFIG_EXPERIMENTAL=y
|
||||
CONFIG_SYSVIPC=y
|
||||
CONFIG_LOG_BUF_SHIFT=14
|
||||
CONFIG_EXPERT=y
|
||||
CONFIG_SLAB=y
|
||||
CONFIG_MODULES=y
|
||||
CONFIG_MODULE_UNLOAD=y
|
||||
# CONFIG_BLK_DEV_BSG is not set
|
||||
CONFIG_ARCH_LOKI=y
|
||||
CONFIG_MACH_LB88RC8480=y
|
||||
# CONFIG_CPU_FEROCEON_OLD_ID is not set
|
||||
CONFIG_NO_HZ=y
|
||||
CONFIG_HIGH_RES_TIMERS=y
|
||||
CONFIG_PREEMPT=y
|
||||
CONFIG_AEABI=y
|
||||
CONFIG_ZBOOT_ROM_TEXT=0x0
|
||||
CONFIG_ZBOOT_ROM_BSS=0x0
|
||||
CONFIG_NET=y
|
||||
CONFIG_PACKET=y
|
||||
CONFIG_UNIX=y
|
||||
CONFIG_INET=y
|
||||
CONFIG_IP_MULTICAST=y
|
||||
CONFIG_IP_PNP=y
|
||||
CONFIG_IP_PNP_DHCP=y
|
||||
CONFIG_IP_PNP_BOOTP=y
|
||||
# CONFIG_IPV6 is not set
|
||||
CONFIG_NET_PKTGEN=m
|
||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||
CONFIG_MTD=y
|
||||
CONFIG_MTD_PARTITIONS=y
|
||||
CONFIG_MTD_CMDLINE_PARTS=y
|
||||
CONFIG_MTD_CHAR=y
|
||||
CONFIG_MTD_BLOCK=y
|
||||
CONFIG_FTL=y
|
||||
CONFIG_NFTL=y
|
||||
CONFIG_MTD_CFI=y
|
||||
CONFIG_MTD_JEDECPROBE=y
|
||||
CONFIG_MTD_CFI_ADV_OPTIONS=y
|
||||
CONFIG_MTD_CFI_GEOMETRY=y
|
||||
CONFIG_MTD_CFI_I4=y
|
||||
CONFIG_MTD_CFI_INTELEXT=y
|
||||
CONFIG_MTD_CFI_AMDSTD=y
|
||||
CONFIG_MTD_CFI_STAA=y
|
||||
CONFIG_MTD_PHYSMAP=y
|
||||
CONFIG_MTD_M25P80=y
|
||||
CONFIG_MTD_NAND=y
|
||||
CONFIG_MTD_NAND_VERIFY_WRITE=y
|
||||
CONFIG_MTD_NAND_ORION=y
|
||||
CONFIG_BLK_DEV_LOOP=y
|
||||
# CONFIG_MISC_DEVICES is not set
|
||||
# CONFIG_SCSI_PROC_FS is not set
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
CONFIG_BLK_DEV_SR=m
|
||||
CONFIG_CHR_DEV_SG=m
|
||||
CONFIG_ATA=y
|
||||
CONFIG_SATA_MV=y
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_NET_ETHERNET=y
|
||||
CONFIG_MII=y
|
||||
CONFIG_MV643XX_ETH=y
|
||||
# CONFIG_NETDEV_10000 is not set
|
||||
# CONFIG_INPUT_KEYBOARD is not set
|
||||
# CONFIG_INPUT_MOUSE is not set
|
||||
# CONFIG_SERIO is not set
|
||||
CONFIG_SERIAL_8250=y
|
||||
CONFIG_SERIAL_8250_CONSOLE=y
|
||||
CONFIG_SERIAL_8250_RUNTIME_UARTS=2
|
||||
CONFIG_LEGACY_PTY_COUNT=16
|
||||
CONFIG_I2C=y
|
||||
CONFIG_I2C_CHARDEV=y
|
||||
CONFIG_I2C_MV64XXX=y
|
||||
CONFIG_SPI=y
|
||||
# CONFIG_HWMON is not set
|
||||
# CONFIG_VGA_CONSOLE is not set
|
||||
CONFIG_USB=y
|
||||
CONFIG_USB_DEVICEFS=y
|
||||
CONFIG_USB_PRINTER=y
|
||||
CONFIG_USB_STORAGE=y
|
||||
CONFIG_USB_STORAGE_DATAFAB=y
|
||||
CONFIG_USB_STORAGE_FREECOM=y
|
||||
CONFIG_USB_STORAGE_SDDR09=y
|
||||
CONFIG_USB_STORAGE_SDDR55=y
|
||||
CONFIG_USB_STORAGE_JUMPSHOT=y
|
||||
CONFIG_NEW_LEDS=y
|
||||
CONFIG_EXT2_FS=y
|
||||
CONFIG_EXT3_FS=y
|
||||
# CONFIG_EXT3_FS_XATTR is not set
|
||||
CONFIG_XFS_FS=y
|
||||
CONFIG_INOTIFY=y
|
||||
CONFIG_ISO9660_FS=y
|
||||
CONFIG_UDF_FS=m
|
||||
CONFIG_MSDOS_FS=y
|
||||
CONFIG_VFAT_FS=y
|
||||
CONFIG_TMPFS=y
|
||||
CONFIG_JFFS2_FS=y
|
||||
CONFIG_CRAMFS=y
|
||||
CONFIG_NFS_FS=y
|
||||
CONFIG_NFS_V3=y
|
||||
CONFIG_ROOT_NFS=y
|
||||
CONFIG_PARTITION_ADVANCED=y
|
||||
CONFIG_BSD_DISKLABEL=y
|
||||
CONFIG_MINIX_SUBPARTITION=y
|
||||
CONFIG_SOLARIS_X86_PARTITION=y
|
||||
CONFIG_UNIXWARE_DISKLABEL=y
|
||||
CONFIG_LDM_PARTITION=y
|
||||
CONFIG_LDM_DEBUG=y
|
||||
CONFIG_SUN_PARTITION=y
|
||||
CONFIG_NLS_CODEPAGE_437=y
|
||||
CONFIG_NLS_CODEPAGE_850=y
|
||||
CONFIG_NLS_ISO8859_1=y
|
||||
CONFIG_NLS_ISO8859_2=y
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
CONFIG_SYSCTL_SYSCALL_CHECK=y
|
||||
CONFIG_DEBUG_USER=y
|
||||
CONFIG_CRYPTO_CBC=m
|
||||
CONFIG_CRYPTO_ECB=m
|
||||
CONFIG_CRYPTO_PCBC=m
|
||||
CONFIG_CRC_CCITT=y
|
||||
CONFIG_CRC16=y
|
||||
CONFIG_LIBCRC32C=y
|
|
@ -106,6 +106,7 @@ CONFIG_GPIO_SYSFS=y
|
|||
CONFIG_USB=y
|
||||
CONFIG_USB_EHCI_HCD=y
|
||||
CONFIG_USB_EHCI_MXC=y
|
||||
CONFIG_USB_STORAGE=y
|
||||
CONFIG_MMC=y
|
||||
CONFIG_MMC_BLOCK=m
|
||||
CONFIG_MMC_SDHCI=m
|
||||
|
@ -145,7 +146,7 @@ CONFIG_ROOT_NFS=y
|
|||
CONFIG_NLS_DEFAULT="cp437"
|
||||
CONFIG_NLS_CODEPAGE_437=y
|
||||
CONFIG_NLS_ASCII=y
|
||||
CONFIG_NLS_ISO8859_1=m
|
||||
CONFIG_NLS_ISO8859_1=y
|
||||
CONFIG_NLS_ISO8859_15=m
|
||||
CONFIG_NLS_UTF8=y
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
|
|
|
@ -22,6 +22,8 @@ CONFIG_BLK_DEV_INTEGRITY=y
|
|||
# CONFIG_IOSCHED_DEADLINE is not set
|
||||
# CONFIG_IOSCHED_CFQ is not set
|
||||
CONFIG_ARCH_MXS=y
|
||||
CONFIG_MACH_MX23EVK=y
|
||||
CONFIG_MACH_MX28EVK=y
|
||||
CONFIG_MACH_STMP378X_DEVB=y
|
||||
CONFIG_MACH_TX28=y
|
||||
# CONFIG_ARM_THUMB is not set
|
||||
|
@ -89,7 +91,7 @@ CONFIG_DISPLAY_SUPPORT=m
|
|||
# CONFIG_USB_SUPPORT is not set
|
||||
CONFIG_MMC=y
|
||||
CONFIG_MMC_MXS=y
|
||||
CONFIG_RTC_CLASS=m
|
||||
CONFIG_RTC_CLASS=y
|
||||
CONFIG_RTC_DRV_DS1307=m
|
||||
CONFIG_DMADEVICES=y
|
||||
CONFIG_MXS_DMA=y
|
||||
|
|
|
@ -11,12 +11,12 @@ CONFIG_ARCH_U8500=y
|
|||
CONFIG_UX500_SOC_DB5500=y
|
||||
CONFIG_UX500_SOC_DB8500=y
|
||||
CONFIG_MACH_U8500=y
|
||||
CONFIG_MACH_SNOWBALL=y
|
||||
CONFIG_MACH_U5500=y
|
||||
CONFIG_NO_HZ=y
|
||||
CONFIG_HIGH_RES_TIMERS=y
|
||||
CONFIG_SMP=y
|
||||
CONFIG_NR_CPUS=2
|
||||
CONFIG_HOTPLUG_CPU=y
|
||||
CONFIG_PREEMPT=y
|
||||
CONFIG_AEABI=y
|
||||
CONFIG_CMDLINE="root=/dev/ram0 console=ttyAMA2,115200n8"
|
||||
|
@ -25,8 +25,13 @@ CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
|
|||
CONFIG_VFP=y
|
||||
CONFIG_NEON=y
|
||||
CONFIG_NET=y
|
||||
CONFIG_PACKET=y
|
||||
CONFIG_UNIX=y
|
||||
CONFIG_INET=y
|
||||
CONFIG_IP_PNP=y
|
||||
CONFIG_IP_PNP_DHCP=y
|
||||
CONFIG_NETFILTER=y
|
||||
CONFIG_PHONET=y
|
||||
CONFIG_PHONET_PIPECTRLR=y
|
||||
# CONFIG_WIRELESS is not set
|
||||
CONFIG_CAIF=y
|
||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||
|
@ -35,6 +40,13 @@ CONFIG_BLK_DEV_RAM_SIZE=65536
|
|||
CONFIG_MISC_DEVICES=y
|
||||
CONFIG_AB8500_PWM=y
|
||||
CONFIG_SENSORS_BH1780=y
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_SMSC_PHY=y
|
||||
CONFIG_NET_ETHERNET=y
|
||||
CONFIG_SMSC911X=y
|
||||
# CONFIG_NETDEV_1000 is not set
|
||||
# CONFIG_NETDEV_10000 is not set
|
||||
# CONFIG_WLAN is not set
|
||||
# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
|
||||
CONFIG_INPUT_EVDEV=y
|
||||
# CONFIG_KEYBOARD_ATKBD is not set
|
||||
|
@ -49,9 +61,9 @@ CONFIG_INPUT_MISC=y
|
|||
CONFIG_INPUT_AB8500_PONKEY=y
|
||||
# CONFIG_SERIO is not set
|
||||
CONFIG_VT_HW_CONSOLE_BINDING=y
|
||||
# CONFIG_LEGACY_PTYS is not set
|
||||
CONFIG_SERIAL_AMBA_PL011=y
|
||||
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
|
||||
# CONFIG_LEGACY_PTYS is not set
|
||||
CONFIG_HW_RANDOM=y
|
||||
CONFIG_HW_RANDOM_NOMADIK=y
|
||||
CONFIG_I2C=y
|
||||
|
@ -64,14 +76,19 @@ CONFIG_GPIO_TC3589X=y
|
|||
CONFIG_MFD_STMPE=y
|
||||
CONFIG_MFD_TC3589X=y
|
||||
CONFIG_AB8500_CORE=y
|
||||
CONFIG_REGULATOR=y
|
||||
CONFIG_REGULATOR_AB8500=y
|
||||
# CONFIG_HID_SUPPORT is not set
|
||||
# CONFIG_USB_SUPPORT is not set
|
||||
CONFIG_USB_MUSB_HDRC=y
|
||||
CONFIG_USB_GADGET_MUSB_HDRC=y
|
||||
CONFIG_MUSB_PIO_ONLY=y
|
||||
CONFIG_USB_GADGET=y
|
||||
CONFIG_AB8500_USB=y
|
||||
CONFIG_MMC=y
|
||||
CONFIG_MMC_CLKGATE=y
|
||||
CONFIG_MMC_ARMMMCI=y
|
||||
CONFIG_NEW_LEDS=y
|
||||
CONFIG_LEDS_CLASS=y
|
||||
CONFIG_LEDS_LM3530=y
|
||||
CONFIG_LEDS_LP5521=y
|
||||
CONFIG_RTC_CLASS=y
|
||||
CONFIG_RTC_DRV_AB8500=y
|
||||
|
@ -79,7 +96,6 @@ CONFIG_RTC_DRV_PL031=y
|
|||
CONFIG_DMADEVICES=y
|
||||
CONFIG_STE_DMA40=y
|
||||
CONFIG_STAGING=y
|
||||
# CONFIG_STAGING_EXCLUDE_BUILD is not set
|
||||
CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4=y
|
||||
CONFIG_EXT2_FS=y
|
||||
CONFIG_EXT2_FS_XATTR=y
|
||||
|
@ -91,6 +107,8 @@ CONFIG_TMPFS=y
|
|||
CONFIG_TMPFS_POSIX_ACL=y
|
||||
CONFIG_CONFIGFS_FS=m
|
||||
# CONFIG_MISC_FILESYSTEMS is not set
|
||||
CONFIG_NFS_FS=y
|
||||
CONFIG_ROOT_NFS=y
|
||||
CONFIG_NLS_CODEPAGE_437=y
|
||||
CONFIG_NLS_ISO8859_1=y
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
|
@ -99,7 +117,5 @@ CONFIG_DEBUG_KERNEL=y
|
|||
# CONFIG_SCHED_DEBUG is not set
|
||||
# CONFIG_DEBUG_PREEMPT is not set
|
||||
CONFIG_DEBUG_INFO=y
|
||||
# CONFIG_RCU_CPU_STALL_DETECTOR is not set
|
||||
# CONFIG_FTRACE is not set
|
||||
CONFIG_DEBUG_USER=y
|
||||
CONFIG_DEBUG_ERRORS=y
|
||||
|
|
|
@ -208,16 +208,15 @@ static inline void atomic_clear_mask(unsigned long mask, unsigned long *addr)
|
|||
|
||||
#define atomic_xchg(v, new) (xchg(&((v)->counter), new))
|
||||
|
||||
static inline int atomic_add_unless(atomic_t *v, int a, int u)
|
||||
static inline int __atomic_add_unless(atomic_t *v, int a, int u)
|
||||
{
|
||||
int c, old;
|
||||
|
||||
c = atomic_read(v);
|
||||
while (c != u && (old = atomic_cmpxchg((v), c, c + a)) != c)
|
||||
c = old;
|
||||
return c != u;
|
||||
return c;
|
||||
}
|
||||
#define atomic_inc_not_zero(v) atomic_add_unless((v), 1, 0)
|
||||
|
||||
#define atomic_inc(v) atomic_add(1, v)
|
||||
#define atomic_dec(v) atomic_sub(1, v)
|
||||
|
@ -460,9 +459,6 @@ static inline int atomic64_add_unless(atomic64_t *v, u64 a, u64 u)
|
|||
#define atomic64_dec_and_test(v) (atomic64_dec_return((v)) == 0)
|
||||
#define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1LL, 0LL)
|
||||
|
||||
#else /* !CONFIG_GENERIC_ATOMIC64 */
|
||||
#include <asm-generic/atomic64.h>
|
||||
#endif
|
||||
#include <asm-generic/atomic-long.h>
|
||||
#endif /* !CONFIG_GENERIC_ATOMIC64 */
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
@ -310,10 +310,7 @@ static inline int find_next_bit_le(const void *p, int size, int offset)
|
|||
/*
|
||||
* Ext2 is defined to use little-endian byte ordering.
|
||||
*/
|
||||
#define ext2_set_bit_atomic(lock, nr, p) \
|
||||
test_and_set_bit_le(nr, p)
|
||||
#define ext2_clear_bit_atomic(lock, nr, p) \
|
||||
test_and_clear_bit_le(nr, p)
|
||||
#include <asm-generic/bitops/ext2-atomic-setbit.h>
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
|
|
|
@ -14,7 +14,12 @@
|
|||
|
||||
#include <linux/slab.h>
|
||||
|
||||
#ifdef CONFIG_HAVE_MACH_CLKDEV
|
||||
#include <mach/clkdev.h>
|
||||
#else
|
||||
#define __clk_get(clk) ({ 1; })
|
||||
#define __clk_put(clk) do { } while (0)
|
||||
#endif
|
||||
|
||||
static inline struct clk_lookup_alloc *__clkdev_alloc(size_t size)
|
||||
{
|
||||
|
|
|
@ -41,6 +41,12 @@ void gic_secondary_init(unsigned int);
|
|||
void gic_cascade_irq(unsigned int gic_nr, unsigned int irq);
|
||||
void gic_raise_softirq(const struct cpumask *mask, unsigned int irq);
|
||||
void gic_enable_ppi(unsigned int);
|
||||
|
||||
struct gic_chip_data {
|
||||
unsigned int irq_offset;
|
||||
void __iomem *dist_base;
|
||||
void __iomem *cpu_base;
|
||||
};
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
|
@ -61,7 +61,6 @@ struct scoop_pcmcia_dev {
|
|||
struct scoop_pcmcia_config {
|
||||
struct scoop_pcmcia_dev *devs;
|
||||
int num_devs;
|
||||
void (*pcmcia_init)(void);
|
||||
void (*power_ctrl)(struct device *scoop, unsigned short cpr, int nr);
|
||||
};
|
||||
|
||||
|
|
|
@ -23,6 +23,7 @@ struct pt_regs;
|
|||
extern void migrate_irqs(void);
|
||||
|
||||
extern void asm_do_IRQ(unsigned int, struct pt_regs *);
|
||||
void handle_IRQ(unsigned int, struct pt_regs *);
|
||||
void init_IRQ(void);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -3,9 +3,19 @@
|
|||
|
||||
#ifdef __KERNEL__
|
||||
#include <asm-generic/pci-dma-compat.h>
|
||||
#include <asm-generic/pci-bridge.h>
|
||||
|
||||
#include <asm/mach/pci.h> /* for pci_sys_data */
|
||||
#include <mach/hardware.h> /* for PCIBIOS_MIN_* */
|
||||
|
||||
extern unsigned long pcibios_min_io;
|
||||
#define PCIBIOS_MIN_IO pcibios_min_io
|
||||
extern unsigned long pcibios_min_mem;
|
||||
#define PCIBIOS_MIN_MEM pcibios_min_mem
|
||||
|
||||
static inline int pcibios_assign_all_busses(void)
|
||||
{
|
||||
return pci_has_flag(PCI_REASSIGN_ALL_RSRC);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PCI_DOMAINS
|
||||
static inline int pci_domain_nr(struct pci_bus *bus)
|
||||
|
|
|
@ -2,9 +2,10 @@
|
|||
#define ASMARM_VGA_H
|
||||
|
||||
#include <linux/io.h>
|
||||
#include <mach/hardware.h>
|
||||
|
||||
#define VGA_MAP_MEM(x,s) (PCIMEM_BASE + (x))
|
||||
extern unsigned long vga_base;
|
||||
|
||||
#define VGA_MAP_MEM(x,s) (vga_base + (x))
|
||||
|
||||
#define vga_readb(x) (*((volatile unsigned char *)x))
|
||||
#define vga_writeb(x,y) (*((volatile unsigned char *)y) = (x))
|
||||
|
|
|
@ -67,12 +67,12 @@ int arch_show_interrupts(struct seq_file *p, int prec)
|
|||
}
|
||||
|
||||
/*
|
||||
* do_IRQ handles all hardware IRQ's. Decoded IRQs should not
|
||||
* come via this function. Instead, they should provide their
|
||||
* own 'handler'
|
||||
* handle_IRQ handles all hardware IRQ's. Decoded IRQs should
|
||||
* not come via this function. Instead, they should provide their
|
||||
* own 'handler'. Used by platform code implementing C-based 1st
|
||||
* level decoding.
|
||||
*/
|
||||
asmlinkage void __exception_irq_entry
|
||||
asm_do_IRQ(unsigned int irq, struct pt_regs *regs)
|
||||
void handle_IRQ(unsigned int irq, struct pt_regs *regs)
|
||||
{
|
||||
struct pt_regs *old_regs = set_irq_regs(regs);
|
||||
|
||||
|
@ -97,6 +97,15 @@ asm_do_IRQ(unsigned int irq, struct pt_regs *regs)
|
|||
set_irq_regs(old_regs);
|
||||
}
|
||||
|
||||
/*
|
||||
* asm_do_IRQ is the interface to be used from assembly code.
|
||||
*/
|
||||
asmlinkage void __exception_irq_entry
|
||||
asm_do_IRQ(unsigned int irq, struct pt_regs *regs)
|
||||
{
|
||||
handle_IRQ(irq, regs);
|
||||
}
|
||||
|
||||
void set_irq_flags(unsigned int irq, unsigned int iflags)
|
||||
{
|
||||
unsigned long clr = 0, set = IRQ_NOREQUEST | IRQ_NOPROBE | IRQ_NOAUTOEN;
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
#include <linux/clockchips.h>
|
||||
#include <linux/completion.h>
|
||||
|
||||
#include <asm/atomic.h>
|
||||
#include <linux/atomic.h>
|
||||
#include <asm/cacheflush.h>
|
||||
#include <asm/cpu.h>
|
||||
#include <asm/cputype.h>
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
#include <linux/init.h>
|
||||
#include <linux/sched.h>
|
||||
|
||||
#include <asm/atomic.h>
|
||||
#include <linux/atomic.h>
|
||||
#include <asm/cacheflush.h>
|
||||
#include <asm/system.h>
|
||||
#include <asm/unistd.h>
|
||||
|
|
|
@ -12,7 +12,6 @@
|
|||
*/
|
||||
#include <linux/linkage.h>
|
||||
#include <asm/assembler.h>
|
||||
#include <mach/hardware.h>
|
||||
|
||||
#define CPSR2SPSR(rt) \
|
||||
mrs rt, cpsr; \
|
||||
|
|
|
@ -9,7 +9,6 @@
|
|||
*/
|
||||
#include <linux/linkage.h>
|
||||
#include <asm/assembler.h>
|
||||
#include <mach/hardware.h>
|
||||
|
||||
.Linsw_bad_alignment:
|
||||
adr r0, .Linsw_bad_align_msg
|
||||
|
|
|
@ -9,7 +9,6 @@
|
|||
*/
|
||||
#include <linux/linkage.h>
|
||||
#include <asm/assembler.h>
|
||||
#include <mach/hardware.h>
|
||||
|
||||
.Loutsw_bad_alignment:
|
||||
adr r0, .Loutsw_bad_align_msg
|
||||
|
|
|
@ -525,7 +525,7 @@ void __init at91_add_device_lcdc(struct atmel_lcdfb_info *data)
|
|||
if (ARRAY_SIZE(lcdc_resources) > 2) {
|
||||
void __iomem *fb;
|
||||
struct resource *fb_res = &lcdc_resources[2];
|
||||
size_t fb_len = fb_res->end - fb_res->start + 1;
|
||||
size_t fb_len = resource_size(fb_res);
|
||||
|
||||
fb = ioremap(fb_res->start, fb_len);
|
||||
if (fb) {
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
* Copyright (C) 2010 Bluewater System Ltd
|
||||
*
|
||||
* Author: Andre Renaud <andre@bluewatersys.com>
|
||||
* Author: Ryan Mallon <ryan@bluewatersys.com>
|
||||
* Author: Ryan Mallon
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
|
|
@ -1,7 +0,0 @@
|
|||
#ifndef __ASM_MACH_CLKDEV_H
|
||||
#define __ASM_MACH_CLKDEV_H
|
||||
|
||||
#define __clk_get(clk) ({ 1; })
|
||||
#define __clk_put(clk) do { } while (0)
|
||||
|
||||
#endif
|
|
@ -20,7 +20,7 @@
|
|||
#include <linux/io.h>
|
||||
|
||||
#include <asm/irq.h>
|
||||
#include <asm/atomic.h>
|
||||
#include <linux/atomic.h>
|
||||
#include <asm/mach/time.h>
|
||||
#include <asm/mach/irq.h>
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
|
||||
#include <linux/mm.h>
|
||||
#include <linux/pfn.h>
|
||||
#include <asm/atomic.h>
|
||||
#include <linux/atomic.h>
|
||||
#include <mach/dma.h>
|
||||
|
||||
/* I don't quite understand why dc4 fails when this is set to 1 and DMA is enabled */
|
||||
|
@ -835,7 +835,7 @@ int dma_init(void)
|
|||
|
||||
/* Create /proc/dma/channels and /proc/dma/devices */
|
||||
|
||||
gDmaDir = create_proc_entry("dma", S_IFDIR | S_IRUGO | S_IXUGO, NULL);
|
||||
gDmaDir = proc_mkdir("dma", NULL);
|
||||
|
||||
if (gDmaDir == NULL) {
|
||||
printk(KERN_ERR "Unable to create /proc/dma\n");
|
||||
|
|
|
@ -1,7 +0,0 @@
|
|||
#ifndef __ASM_MACH_CLKDEV_H
|
||||
#define __ASM_MACH_CLKDEV_H
|
||||
|
||||
#define __clk_get(clk) ({ 1; })
|
||||
#define __clk_put(clk) do { } while (0)
|
||||
|
||||
#endif
|
|
@ -36,8 +36,6 @@
|
|||
#define RAM_SIZE (CFG_GLOBAL_RAM_SIZE-CFG_GLOBAL_RAM_SIZE_RESERVED)
|
||||
#define RAM_BASE PAGE_OFFSET
|
||||
|
||||
#define pcibios_assign_all_busses() 1
|
||||
|
||||
/* Macros to make managing spinlocks a bit more controlled in terms of naming. */
|
||||
/* See reg_gpio.h, reg_irq.h, arch.c, gpio.c for example usage. */
|
||||
#if defined(__KERNEL__)
|
||||
|
|
|
@ -29,7 +29,6 @@
|
|||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/map.h>
|
||||
#include <asm/mach/time.h>
|
||||
#include <mach/hardware.h>
|
||||
#include <mach/cns3xxx.h>
|
||||
#include <mach/irqs.h>
|
||||
#include "core.h"
|
||||
|
@ -170,6 +169,8 @@ static struct platform_device *cns3420_pdevs[] __initdata = {
|
|||
|
||||
static void __init cns3420_init(void)
|
||||
{
|
||||
cns3xxx_l2x0_init();
|
||||
|
||||
platform_add_devices(cns3420_pdevs, ARRAY_SIZE(cns3420_pdevs));
|
||||
|
||||
cns3xxx_ahci_init();
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
#include <asm/mach/time.h>
|
||||
#include <asm/mach/irq.h>
|
||||
#include <asm/hardware/gic.h>
|
||||
#include <asm/hardware/cache-l2x0.h>
|
||||
#include <mach/cns3xxx.h>
|
||||
#include "core.h"
|
||||
|
||||
|
@ -244,3 +245,45 @@ static void __init cns3xxx_timer_init(void)
|
|||
struct sys_timer cns3xxx_timer = {
|
||||
.init = cns3xxx_timer_init,
|
||||
};
|
||||
|
||||
#ifdef CONFIG_CACHE_L2X0
|
||||
|
||||
void __init cns3xxx_l2x0_init(void)
|
||||
{
|
||||
void __iomem *base = ioremap(CNS3XXX_L2C_BASE, SZ_4K);
|
||||
u32 val;
|
||||
|
||||
if (WARN_ON(!base))
|
||||
return;
|
||||
|
||||
/*
|
||||
* Tag RAM Control register
|
||||
*
|
||||
* bit[10:8] - 1 cycle of write accesses latency
|
||||
* bit[6:4] - 1 cycle of read accesses latency
|
||||
* bit[3:0] - 1 cycle of setup latency
|
||||
*
|
||||
* 1 cycle of latency for setup, read and write accesses
|
||||
*/
|
||||
val = readl(base + L2X0_TAG_LATENCY_CTRL);
|
||||
val &= 0xfffff888;
|
||||
writel(val, base + L2X0_TAG_LATENCY_CTRL);
|
||||
|
||||
/*
|
||||
* Data RAM Control register
|
||||
*
|
||||
* bit[10:8] - 1 cycles of write accesses latency
|
||||
* bit[6:4] - 1 cycles of read accesses latency
|
||||
* bit[3:0] - 1 cycle of setup latency
|
||||
*
|
||||
* 1 cycle of latency for setup, read and write accesses
|
||||
*/
|
||||
val = readl(base + L2X0_DATA_LATENCY_CTRL);
|
||||
val &= 0xfffff888;
|
||||
writel(val, base + L2X0_DATA_LATENCY_CTRL);
|
||||
|
||||
/* 32 KiB, 8-way, parity disable */
|
||||
l2x0_init(base, 0x00540000, 0xfe000fff);
|
||||
}
|
||||
|
||||
#endif /* CONFIG_CACHE_L2X0 */
|
||||
|
|
|
@ -13,6 +13,12 @@
|
|||
|
||||
extern struct sys_timer cns3xxx_timer;
|
||||
|
||||
#ifdef CONFIG_CACHE_L2X0
|
||||
void __init cns3xxx_l2x0_init(void);
|
||||
#else
|
||||
static inline void cns3xxx_l2x0_init(void) {}
|
||||
#endif /* CONFIG_CACHE_L2X0 */
|
||||
|
||||
void __init cns3xxx_map_io(void);
|
||||
void __init cns3xxx_init_irq(void);
|
||||
void cns3xxx_power_off(void);
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue