Merge /spare/repo/linux-2.6/
This commit is contained in:
commit
a3536c839f
26
CREDITS
26
CREDITS
|
@ -2211,6 +2211,15 @@ D: OV511 driver
|
||||||
S: (address available on request)
|
S: (address available on request)
|
||||||
S: USA
|
S: USA
|
||||||
|
|
||||||
|
N: Ian McDonald
|
||||||
|
E: iam4@cs.waikato.ac.nz
|
||||||
|
E: imcdnzl@gmail.com
|
||||||
|
W: http://wand.net.nz/~iam4
|
||||||
|
W: http://imcdnzl.blogspot.com
|
||||||
|
D: DCCP, CCID3
|
||||||
|
S: Hamilton
|
||||||
|
S: New Zealand
|
||||||
|
|
||||||
N: Patrick McHardy
|
N: Patrick McHardy
|
||||||
E: kaber@trash.net
|
E: kaber@trash.net
|
||||||
P: 1024D/12155E80 B128 7DE6 FF0A C2B2 48BE AB4C C9D4 964E 1215 5E80
|
P: 1024D/12155E80 B128 7DE6 FF0A C2B2 48BE AB4C C9D4 964E 1215 5E80
|
||||||
|
@ -2246,19 +2255,12 @@ S: D-90453 Nuernberg
|
||||||
S: Germany
|
S: Germany
|
||||||
|
|
||||||
N: Arnaldo Carvalho de Melo
|
N: Arnaldo Carvalho de Melo
|
||||||
E: acme@conectiva.com.br
|
E: acme@mandriva.com
|
||||||
E: acme@kernel.org
|
E: acme@ghostprotocols.net
|
||||||
E: acme@gnu.org
|
W: http://oops.ghostprotocols.net:81/blog/
|
||||||
W: http://bazar2.conectiva.com.br/~acme
|
|
||||||
W: http://advogato.org/person/acme
|
|
||||||
P: 1024D/9224DF01 D5DF E3BB E3C8 BCBB F8AD 841A B6AB 4681 9224 DF01
|
P: 1024D/9224DF01 D5DF E3BB E3C8 BCBB F8AD 841A B6AB 4681 9224 DF01
|
||||||
D: wanrouter hacking
|
D: IPX, LLC, DCCP, cyc2x, wl3501_cs, net/ hacks
|
||||||
D: misc Makefile, Config.in, drivers and network stacks fixes
|
S: Mandriva
|
||||||
D: IPX & LLC network stacks maintainer
|
|
||||||
D: Cyclom 2X synchronous card driver
|
|
||||||
D: wl3501 PCMCIA wireless card driver
|
|
||||||
D: i18n for minicom, net-tools, util-linux, fetchmail, etc
|
|
||||||
S: Conectiva S.A.
|
|
||||||
S: R. Tocantins, 89 - Cristo Rei
|
S: R. Tocantins, 89 - Cristo Rei
|
||||||
S: 80050-430 - Curitiba - Paraná
|
S: 80050-430 - Curitiba - Paraná
|
||||||
S: Brazil
|
S: Brazil
|
||||||
|
|
|
@ -410,7 +410,26 @@ Kernel messages do not have to be terminated with a period.
|
||||||
Printing numbers in parentheses (%d) adds no value and should be avoided.
|
Printing numbers in parentheses (%d) adds no value and should be avoided.
|
||||||
|
|
||||||
|
|
||||||
Chapter 13: References
|
Chapter 13: Allocating memory
|
||||||
|
|
||||||
|
The kernel provides the following general purpose memory allocators:
|
||||||
|
kmalloc(), kzalloc(), kcalloc(), and vmalloc(). Please refer to the API
|
||||||
|
documentation for further information about them.
|
||||||
|
|
||||||
|
The preferred form for passing a size of a struct is the following:
|
||||||
|
|
||||||
|
p = kmalloc(sizeof(*p), ...);
|
||||||
|
|
||||||
|
The alternative form where struct name is spelled out hurts readability and
|
||||||
|
introduces an opportunity for a bug when the pointer variable type is changed
|
||||||
|
but the corresponding sizeof that is passed to a memory allocator is not.
|
||||||
|
|
||||||
|
Casting the return value which is a void pointer is redundant. The conversion
|
||||||
|
from void pointer to any other pointer type is guaranteed by the C programming
|
||||||
|
language.
|
||||||
|
|
||||||
|
|
||||||
|
Chapter 14: References
|
||||||
|
|
||||||
The C Programming Language, Second Edition
|
The C Programming Language, Second Edition
|
||||||
by Brian W. Kernighan and Dennis M. Ritchie.
|
by Brian W. Kernighan and Dennis M. Ritchie.
|
||||||
|
|
|
@ -1105,7 +1105,7 @@ static struct block_device_operations opt_fops = {
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Function names as strings (__func__).
|
Function names as strings (__FUNCTION__).
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
|
|
|
@ -13,6 +13,8 @@ the BIOS on Dell servers (starting from servers sold since 1999), desktops
|
||||||
and notebooks (starting from those sold in 2005).
|
and notebooks (starting from those sold in 2005).
|
||||||
Please go to http://support.dell.com register and you can find info on
|
Please go to http://support.dell.com register and you can find info on
|
||||||
OpenManage and Dell Update packages (DUP).
|
OpenManage and Dell Update packages (DUP).
|
||||||
|
Libsmbios can also be used to update BIOS on Dell systems go to
|
||||||
|
http://linux.dell.com/libsmbios/ for details.
|
||||||
|
|
||||||
Dell_RBU driver supports BIOS update using the monilothic image and packetized
|
Dell_RBU driver supports BIOS update using the monilothic image and packetized
|
||||||
image methods. In case of moniolithic the driver allocates a contiguous chunk
|
image methods. In case of moniolithic the driver allocates a contiguous chunk
|
||||||
|
@ -22,8 +24,8 @@ would place each packet in contiguous physical memory. The driver also
|
||||||
maintains a link list of packets for reading them back.
|
maintains a link list of packets for reading them back.
|
||||||
If the dell_rbu driver is unloaded all the allocated memory is freed.
|
If the dell_rbu driver is unloaded all the allocated memory is freed.
|
||||||
|
|
||||||
The rbu driver needs to have an application which will inform the BIOS to
|
The rbu driver needs to have an application (as mentioned above)which will
|
||||||
enable the update in the next system reboot.
|
inform the BIOS to enable the update in the next system reboot.
|
||||||
|
|
||||||
The user should not unload the rbu driver after downloading the BIOS image
|
The user should not unload the rbu driver after downloading the BIOS image
|
||||||
or updating.
|
or updating.
|
||||||
|
@ -42,9 +44,11 @@ In case of packet mechanism the single memory can be broken in smaller chuks
|
||||||
of contiguous memory and the BIOS image is scattered in these packets.
|
of contiguous memory and the BIOS image is scattered in these packets.
|
||||||
|
|
||||||
By default the driver uses monolithic memory for the update type. This can be
|
By default the driver uses monolithic memory for the update type. This can be
|
||||||
changed to contiguous during the driver load time by specifying the load
|
changed to packets during the driver load time by specifying the load
|
||||||
parameter image_type=packet. This can also be changed later as below
|
parameter image_type=packet. This can also be changed later as below
|
||||||
echo packet > /sys/devices/platform/dell_rbu/image_type
|
echo packet > /sys/devices/platform/dell_rbu/image_type
|
||||||
|
Also echoing either mono ,packet or init in to image_type will free up the
|
||||||
|
memory allocated by the driver.
|
||||||
|
|
||||||
Do the steps below to download the BIOS image.
|
Do the steps below to download the BIOS image.
|
||||||
1) echo 1 > /sys/class/firmware/dell_rbu/loading
|
1) echo 1 > /sys/class/firmware/dell_rbu/loading
|
||||||
|
@ -53,9 +57,13 @@ Do the steps below to download the BIOS image.
|
||||||
|
|
||||||
The /sys/class/firmware/dell_rbu/ entries will remain till the following is
|
The /sys/class/firmware/dell_rbu/ entries will remain till the following is
|
||||||
done.
|
done.
|
||||||
echo -1 > /sys/class/firmware/dell_rbu/loading
|
echo -1 > /sys/class/firmware/dell_rbu/loading.
|
||||||
|
|
||||||
Until this step is completed the drivr cannot be unloaded.
|
Until this step is completed the drivr cannot be unloaded.
|
||||||
|
If an user by accident executes steps 1 and 3 above without executing step 2;
|
||||||
|
it will make the /sys/class/firmware/dell_rbu/ entries to disappear.
|
||||||
|
The entries can be recreated by doing the following
|
||||||
|
echo init > /sys/devices/platform/dell_rbu/image_type
|
||||||
|
NOTE: echoing init in image_type does not change it original value.
|
||||||
|
|
||||||
Also the driver provides /sys/devices/platform/dell_rbu/data readonly file to
|
Also the driver provides /sys/devices/platform/dell_rbu/data readonly file to
|
||||||
read back the image downloaded. This is useful in case of packet update
|
read back the image downloaded. This is useful in case of packet update
|
||||||
|
|
|
@ -15,7 +15,7 @@ retrieve the data as it becomes available.
|
||||||
|
|
||||||
The format of the data logged into the channel buffers is completely
|
The format of the data logged into the channel buffers is completely
|
||||||
up to the relayfs client; relayfs does however provide hooks which
|
up to the relayfs client; relayfs does however provide hooks which
|
||||||
allow clients to impose some stucture on the buffer data. Nor does
|
allow clients to impose some structure on the buffer data. Nor does
|
||||||
relayfs implement any form of data filtering - this also is left to
|
relayfs implement any form of data filtering - this also is left to
|
||||||
the client. The purpose is to keep relayfs as simple as possible.
|
the client. The purpose is to keep relayfs as simple as possible.
|
||||||
|
|
||||||
|
|
194
Documentation/ia64/mca.txt
Normal file
194
Documentation/ia64/mca.txt
Normal file
|
@ -0,0 +1,194 @@
|
||||||
|
An ad-hoc collection of notes on IA64 MCA and INIT processing. Feel
|
||||||
|
free to update it with notes about any area that is not clear.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
MCA/INIT are completely asynchronous. They can occur at any time, when
|
||||||
|
the OS is in any state. Including when one of the cpus is already
|
||||||
|
holding a spinlock. Trying to get any lock from MCA/INIT state is
|
||||||
|
asking for deadlock. Also the state of structures that are protected
|
||||||
|
by locks is indeterminate, including linked lists.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
The complicated ia64 MCA process. All of this is mandated by Intel's
|
||||||
|
specification for ia64 SAL, error recovery and and unwind, it is not as
|
||||||
|
if we have a choice here.
|
||||||
|
|
||||||
|
* MCA occurs on one cpu, usually due to a double bit memory error.
|
||||||
|
This is the monarch cpu.
|
||||||
|
|
||||||
|
* SAL sends an MCA rendezvous interrupt (which is a normal interrupt)
|
||||||
|
to all the other cpus, the slaves.
|
||||||
|
|
||||||
|
* Slave cpus that receive the MCA interrupt call down into SAL, they
|
||||||
|
end up spinning disabled while the MCA is being serviced.
|
||||||
|
|
||||||
|
* If any slave cpu was already spinning disabled when the MCA occurred
|
||||||
|
then it cannot service the MCA interrupt. SAL waits ~20 seconds then
|
||||||
|
sends an unmaskable INIT event to the slave cpus that have not
|
||||||
|
already rendezvoused.
|
||||||
|
|
||||||
|
* Because MCA/INIT can be delivered at any time, including when the cpu
|
||||||
|
is down in PAL in physical mode, the registers at the time of the
|
||||||
|
event are _completely_ undefined. In particular the MCA/INIT
|
||||||
|
handlers cannot rely on the thread pointer, PAL physical mode can
|
||||||
|
(and does) modify TP. It is allowed to do that as long as it resets
|
||||||
|
TP on return. However MCA/INIT events expose us to these PAL
|
||||||
|
internal TP changes. Hence curr_task().
|
||||||
|
|
||||||
|
* If an MCA/INIT event occurs while the kernel was running (not user
|
||||||
|
space) and the kernel has called PAL then the MCA/INIT handler cannot
|
||||||
|
assume that the kernel stack is in a fit state to be used. Mainly
|
||||||
|
because PAL may or may not maintain the stack pointer internally.
|
||||||
|
Because the MCA/INIT handlers cannot trust the kernel stack, they
|
||||||
|
have to use their own, per-cpu stacks. The MCA/INIT stacks are
|
||||||
|
preformatted with just enough task state to let the relevant handlers
|
||||||
|
do their job.
|
||||||
|
|
||||||
|
* Unlike most other architectures, the ia64 struct task is embedded in
|
||||||
|
the kernel stack[1]. So switching to a new kernel stack means that
|
||||||
|
we switch to a new task as well. Because various bits of the kernel
|
||||||
|
assume that current points into the struct task, switching to a new
|
||||||
|
stack also means a new value for current.
|
||||||
|
|
||||||
|
* Once all slaves have rendezvoused and are spinning disabled, the
|
||||||
|
monarch is entered. The monarch now tries to diagnose the problem
|
||||||
|
and decide if it can recover or not.
|
||||||
|
|
||||||
|
* Part of the monarch's job is to look at the state of all the other
|
||||||
|
tasks. The only way to do that on ia64 is to call the unwinder,
|
||||||
|
as mandated by Intel.
|
||||||
|
|
||||||
|
* The starting point for the unwind depends on whether a task is
|
||||||
|
running or not. That is, whether it is on a cpu or is blocked. The
|
||||||
|
monarch has to determine whether or not a task is on a cpu before it
|
||||||
|
knows how to start unwinding it. The tasks that received an MCA or
|
||||||
|
INIT event are no longer running, they have been converted to blocked
|
||||||
|
tasks. But (and its a big but), the cpus that received the MCA
|
||||||
|
rendezvous interrupt are still running on their normal kernel stacks!
|
||||||
|
|
||||||
|
* To distinguish between these two cases, the monarch must know which
|
||||||
|
tasks are on a cpu and which are not. Hence each slave cpu that
|
||||||
|
switches to an MCA/INIT stack, registers its new stack using
|
||||||
|
set_curr_task(), so the monarch can tell that the _original_ task is
|
||||||
|
no longer running on that cpu. That gives us a decent chance of
|
||||||
|
getting a valid backtrace of the _original_ task.
|
||||||
|
|
||||||
|
* MCA/INIT can be nested, to a depth of 2 on any cpu. In the case of a
|
||||||
|
nested error, we want diagnostics on the MCA/INIT handler that
|
||||||
|
failed, not on the task that was originally running. Again this
|
||||||
|
requires set_curr_task() so the MCA/INIT handlers can register their
|
||||||
|
own stack as running on that cpu. Then a recursive error gets a
|
||||||
|
trace of the failing handler's "task".
|
||||||
|
|
||||||
|
[1] My (Keith Owens) original design called for ia64 to separate its
|
||||||
|
struct task and the kernel stacks. Then the MCA/INIT data would be
|
||||||
|
chained stacks like i386 interrupt stacks. But that required
|
||||||
|
radical surgery on the rest of ia64, plus extra hard wired TLB
|
||||||
|
entries with its associated performance degradation. David
|
||||||
|
Mosberger vetoed that approach. Which meant that separate kernel
|
||||||
|
stacks meant separate "tasks" for the MCA/INIT handlers.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
INIT is less complicated than MCA. Pressing the nmi button or using
|
||||||
|
the equivalent command on the management console sends INIT to all
|
||||||
|
cpus. SAL picks one one of the cpus as the monarch and the rest are
|
||||||
|
slaves. All the OS INIT handlers are entered at approximately the same
|
||||||
|
time. The OS monarch prints the state of all tasks and returns, after
|
||||||
|
which the slaves return and the system resumes.
|
||||||
|
|
||||||
|
At least that is what is supposed to happen. Alas there are broken
|
||||||
|
versions of SAL out there. Some drive all the cpus as monarchs. Some
|
||||||
|
drive them all as slaves. Some drive one cpu as monarch, wait for that
|
||||||
|
cpu to return from the OS then drive the rest as slaves. Some versions
|
||||||
|
of SAL cannot even cope with returning from the OS, they spin inside
|
||||||
|
SAL on resume. The OS INIT code has workarounds for some of these
|
||||||
|
broken SAL symptoms, but some simply cannot be fixed from the OS side.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
The scheduler hooks used by ia64 (curr_task, set_curr_task) are layer
|
||||||
|
violations. Unfortunately MCA/INIT start off as massive layer
|
||||||
|
violations (can occur at _any_ time) and they build from there.
|
||||||
|
|
||||||
|
At least ia64 makes an attempt at recovering from hardware errors, but
|
||||||
|
it is a difficult problem because of the asynchronous nature of these
|
||||||
|
errors. When processing an unmaskable interrupt we sometimes need
|
||||||
|
special code to cope with our inability to take any locks.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
How is ia64 MCA/INIT different from x86 NMI?
|
||||||
|
|
||||||
|
* x86 NMI typically gets delivered to one cpu. MCA/INIT gets sent to
|
||||||
|
all cpus.
|
||||||
|
|
||||||
|
* x86 NMI cannot be nested. MCA/INIT can be nested, to a depth of 2
|
||||||
|
per cpu.
|
||||||
|
|
||||||
|
* x86 has a separate struct task which points to one of multiple kernel
|
||||||
|
stacks. ia64 has the struct task embedded in the single kernel
|
||||||
|
stack, so switching stack means switching task.
|
||||||
|
|
||||||
|
* x86 does not call the BIOS so the NMI handler does not have to worry
|
||||||
|
about any registers having changed. MCA/INIT can occur while the cpu
|
||||||
|
is in PAL in physical mode, with undefined registers and an undefined
|
||||||
|
kernel stack.
|
||||||
|
|
||||||
|
* i386 backtrace is not very sensitive to whether a process is running
|
||||||
|
or not. ia64 unwind is very, very sensitive to whether a process is
|
||||||
|
running or not.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
What happens when MCA/INIT is delivered what a cpu is running user
|
||||||
|
space code?
|
||||||
|
|
||||||
|
The user mode registers are stored in the RSE area of the MCA/INIT on
|
||||||
|
entry to the OS and are restored from there on return to SAL, so user
|
||||||
|
mode registers are preserved across a recoverable MCA/INIT. Since the
|
||||||
|
OS has no idea what unwind data is available for the user space stack,
|
||||||
|
MCA/INIT never tries to backtrace user space. Which means that the OS
|
||||||
|
does not bother making the user space process look like a blocked task,
|
||||||
|
i.e. the OS does not copy pt_regs and switch_stack to the user space
|
||||||
|
stack. Also the OS has no idea how big the user space RSE and memory
|
||||||
|
stacks are, which makes it too risky to copy the saved state to a user
|
||||||
|
mode stack.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
How do we get a backtrace on the tasks that were running when MCA/INIT
|
||||||
|
was delivered?
|
||||||
|
|
||||||
|
mca.c:::ia64_mca_modify_original_stack(). That identifies and
|
||||||
|
verifies the original kernel stack, copies the dirty registers from
|
||||||
|
the MCA/INIT stack's RSE to the original stack's RSE, copies the
|
||||||
|
skeleton struct pt_regs and switch_stack to the original stack, fills
|
||||||
|
in the skeleton structures from the PAL minstate area and updates the
|
||||||
|
original stack's thread.ksp. That makes the original stack look
|
||||||
|
exactly like any other blocked task, i.e. it now appears to be
|
||||||
|
sleeping. To get a backtrace, just start with thread.ksp for the
|
||||||
|
original task and unwind like any other sleeping task.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
How do we identify the tasks that were running when MCA/INIT was
|
||||||
|
delivered?
|
||||||
|
|
||||||
|
If the previous task has been verified and converted to a blocked
|
||||||
|
state, then sos->prev_task on the MCA/INIT stack is updated to point to
|
||||||
|
the previous task. You can look at that field in dumps or debuggers.
|
||||||
|
To help distinguish between the handler and the original tasks,
|
||||||
|
handlers have _TIF_MCA_INIT set in thread_info.flags.
|
||||||
|
|
||||||
|
The sos data is always in the MCA/INIT handler stack, at offset
|
||||||
|
MCA_SOS_OFFSET. You can get that value from mca_asm.h or calculate it
|
||||||
|
as KERNEL_STACK_SIZE - sizeof(struct pt_regs) - sizeof(struct
|
||||||
|
ia64_sal_os_state), with 16 byte alignment for all structures.
|
||||||
|
|
||||||
|
Also the comm field of the MCA/INIT task is modified to include the pid
|
||||||
|
of the original task, for humans to use. For example, a comm field of
|
||||||
|
'MCA 12159' means that pid 12159 was running when the MCA was
|
||||||
|
delivered.
|
19
MAINTAINERS
19
MAINTAINERS
|
@ -686,6 +686,13 @@ P: Guennadi Liakhovetski
|
||||||
M: g.liakhovetski@gmx.de
|
M: g.liakhovetski@gmx.de
|
||||||
S: Maintained
|
S: Maintained
|
||||||
|
|
||||||
|
DCCP PROTOCOL
|
||||||
|
P: Arnaldo Carvalho de Melo
|
||||||
|
M: acme@mandriva.com
|
||||||
|
L: dccp@vger.kernel.org
|
||||||
|
W: http://www.wlug.org.nz/DCCP
|
||||||
|
S: Maintained
|
||||||
|
|
||||||
DECnet NETWORK LAYER
|
DECnet NETWORK LAYER
|
||||||
P: Patrick Caulfield
|
P: Patrick Caulfield
|
||||||
M: patrick@tykepenguin.com
|
M: patrick@tykepenguin.com
|
||||||
|
@ -2259,6 +2266,12 @@ M: kristen.c.accardi@intel.com
|
||||||
L: pcihpd-discuss@lists.sourceforge.net
|
L: pcihpd-discuss@lists.sourceforge.net
|
||||||
S: Maintained
|
S: Maintained
|
||||||
|
|
||||||
|
SKGE, SKY2 10/100/1000 GIGABIT ETHERNET DRIVERS
|
||||||
|
P: Stephen Hemminger
|
||||||
|
M: shemminger@osdl.org
|
||||||
|
L: netdev@vger.kernel.org
|
||||||
|
S: Maintained
|
||||||
|
|
||||||
SPARC (sparc32):
|
SPARC (sparc32):
|
||||||
P: William L. Irwin
|
P: William L. Irwin
|
||||||
M: wli@holomorphy.com
|
M: wli@holomorphy.com
|
||||||
|
@ -2271,12 +2284,6 @@ M: R.E.Wolff@BitWizard.nl
|
||||||
L: linux-kernel@vger.kernel.org ?
|
L: linux-kernel@vger.kernel.org ?
|
||||||
S: Supported
|
S: Supported
|
||||||
|
|
||||||
SPX NETWORK LAYER
|
|
||||||
P: Jay Schulist
|
|
||||||
M: jschlst@samba.org
|
|
||||||
L: netdev@vger.kernel.org
|
|
||||||
S: Supported
|
|
||||||
|
|
||||||
SRM (Alpha) environment access
|
SRM (Alpha) environment access
|
||||||
P: Jan-Benedict Glaw
|
P: Jan-Benedict Glaw
|
||||||
M: jbglaw@lug-owl.de
|
M: jbglaw@lug-owl.de
|
||||||
|
|
2
Makefile
2
Makefile
|
@ -1,7 +1,7 @@
|
||||||
VERSION = 2
|
VERSION = 2
|
||||||
PATCHLEVEL = 6
|
PATCHLEVEL = 6
|
||||||
SUBLEVEL = 14
|
SUBLEVEL = 14
|
||||||
EXTRAVERSION =-rc1
|
EXTRAVERSION =-rc2
|
||||||
NAME=Affluent Albatross
|
NAME=Affluent Albatross
|
||||||
|
|
||||||
# *DOCUMENTATION*
|
# *DOCUMENTATION*
|
||||||
|
|
9
README
9
README
|
@ -149,6 +149,9 @@ CONFIGURING the kernel:
|
||||||
"make gconfig" X windows (Gtk) based configuration tool.
|
"make gconfig" X windows (Gtk) based configuration tool.
|
||||||
"make oldconfig" Default all questions based on the contents of
|
"make oldconfig" Default all questions based on the contents of
|
||||||
your existing ./.config file.
|
your existing ./.config file.
|
||||||
|
"make silentoldconfig"
|
||||||
|
Like above, but avoids cluttering the screen
|
||||||
|
with question already answered.
|
||||||
|
|
||||||
NOTES on "make config":
|
NOTES on "make config":
|
||||||
- having unnecessary drivers will make the kernel bigger, and can
|
- having unnecessary drivers will make the kernel bigger, and can
|
||||||
|
@ -169,9 +172,6 @@ CONFIGURING the kernel:
|
||||||
should probably answer 'n' to the questions for
|
should probably answer 'n' to the questions for
|
||||||
"development", "experimental", or "debugging" features.
|
"development", "experimental", or "debugging" features.
|
||||||
|
|
||||||
- Check the top Makefile for further site-dependent configuration
|
|
||||||
(default SVGA mode etc).
|
|
||||||
|
|
||||||
COMPILING the kernel:
|
COMPILING the kernel:
|
||||||
|
|
||||||
- Make sure you have gcc 2.95.3 available.
|
- Make sure you have gcc 2.95.3 available.
|
||||||
|
@ -199,6 +199,9 @@ COMPILING the kernel:
|
||||||
are installing a new kernel with the same version number as your
|
are installing a new kernel with the same version number as your
|
||||||
working kernel, make a backup of your modules directory before you
|
working kernel, make a backup of your modules directory before you
|
||||||
do a "make modules_install".
|
do a "make modules_install".
|
||||||
|
In alternative, before compiling, edit your Makefile and change the
|
||||||
|
"EXTRAVERSION" line - its content is appended to the regular kernel
|
||||||
|
version.
|
||||||
|
|
||||||
- In order to boot your new kernel, you'll need to copy the kernel
|
- In order to boot your new kernel, you'll need to copy the kernel
|
||||||
image (e.g. .../linux/arch/i386/boot/bzImage after compilation)
|
image (e.g. .../linux/arch/i386/boot/bzImage after compilation)
|
||||||
|
|
|
@ -37,6 +37,7 @@
|
||||||
#include <linux/namei.h>
|
#include <linux/namei.h>
|
||||||
#include <linux/uio.h>
|
#include <linux/uio.h>
|
||||||
#include <linux/vfs.h>
|
#include <linux/vfs.h>
|
||||||
|
#include <linux/rcupdate.h>
|
||||||
|
|
||||||
#include <asm/fpu.h>
|
#include <asm/fpu.h>
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
|
@ -975,6 +976,7 @@ osf_select(int n, fd_set __user *inp, fd_set __user *outp, fd_set __user *exp,
|
||||||
long timeout;
|
long timeout;
|
||||||
int ret = -EINVAL;
|
int ret = -EINVAL;
|
||||||
struct fdtable *fdt;
|
struct fdtable *fdt;
|
||||||
|
int max_fdset;
|
||||||
|
|
||||||
timeout = MAX_SCHEDULE_TIMEOUT;
|
timeout = MAX_SCHEDULE_TIMEOUT;
|
||||||
if (tvp) {
|
if (tvp) {
|
||||||
|
@ -996,8 +998,11 @@ osf_select(int n, fd_set __user *inp, fd_set __user *outp, fd_set __user *exp,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
rcu_read_lock();
|
||||||
fdt = files_fdtable(current->files);
|
fdt = files_fdtable(current->files);
|
||||||
if (n < 0 || n > fdt->max_fdset)
|
max_fdset = fdt->max_fdset;
|
||||||
|
rcu_read_unlock();
|
||||||
|
if (n < 0 || n > max_fdset)
|
||||||
goto out_nofds;
|
goto out_nofds;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -394,6 +394,22 @@ clipper_init_irq(void)
|
||||||
* 10 64 bit PCI option slot 3 (not bus 0)
|
* 10 64 bit PCI option slot 3 (not bus 0)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
static int __init
|
||||||
|
isa_irq_fixup(struct pci_dev *dev, int irq)
|
||||||
|
{
|
||||||
|
u8 irq8;
|
||||||
|
|
||||||
|
if (irq > 0)
|
||||||
|
return irq;
|
||||||
|
|
||||||
|
/* This interrupt is routed via ISA bridge, so we'll
|
||||||
|
just have to trust whatever value the console might
|
||||||
|
have assigned. */
|
||||||
|
pci_read_config_byte(dev, PCI_INTERRUPT_LINE, &irq8);
|
||||||
|
|
||||||
|
return irq8 & 0xf;
|
||||||
|
}
|
||||||
|
|
||||||
static int __init
|
static int __init
|
||||||
dp264_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
|
dp264_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
|
||||||
{
|
{
|
||||||
|
@ -407,25 +423,13 @@ dp264_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
|
||||||
{ 16+ 3, 16+ 3, 16+ 2, 16+ 1, 16+ 0} /* IdSel 10 slot 3 */
|
{ 16+ 3, 16+ 3, 16+ 2, 16+ 1, 16+ 0} /* IdSel 10 slot 3 */
|
||||||
};
|
};
|
||||||
const long min_idsel = 5, max_idsel = 10, irqs_per_slot = 5;
|
const long min_idsel = 5, max_idsel = 10, irqs_per_slot = 5;
|
||||||
|
|
||||||
struct pci_controller *hose = dev->sysdata;
|
struct pci_controller *hose = dev->sysdata;
|
||||||
int irq = COMMON_TABLE_LOOKUP;
|
int irq = COMMON_TABLE_LOOKUP;
|
||||||
|
|
||||||
if (irq > 0) {
|
if (irq > 0)
|
||||||
irq += 16 * hose->index;
|
irq += 16 * hose->index;
|
||||||
} else {
|
|
||||||
/* ??? The Contaq IDE controller on the ISA bridge uses
|
|
||||||
"legacy" interrupts 14 and 15. I don't know if anything
|
|
||||||
can wind up at the same slot+pin on hose1, so we'll
|
|
||||||
just have to trust whatever value the console might
|
|
||||||
have assigned. */
|
|
||||||
|
|
||||||
u8 irq8;
|
return isa_irq_fixup(dev, irq);
|
||||||
pci_read_config_byte(dev, PCI_INTERRUPT_LINE, &irq8);
|
|
||||||
irq = irq8;
|
|
||||||
}
|
|
||||||
|
|
||||||
return irq;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int __init
|
static int __init
|
||||||
|
@ -453,7 +457,8 @@ monet_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
|
||||||
{ 24, 24, 25, 26, 27} /* IdSel 15 slot 5 PCI2*/
|
{ 24, 24, 25, 26, 27} /* IdSel 15 slot 5 PCI2*/
|
||||||
};
|
};
|
||||||
const long min_idsel = 3, max_idsel = 15, irqs_per_slot = 5;
|
const long min_idsel = 3, max_idsel = 15, irqs_per_slot = 5;
|
||||||
return COMMON_TABLE_LOOKUP;
|
|
||||||
|
return isa_irq_fixup(dev, COMMON_TABLE_LOOKUP);
|
||||||
}
|
}
|
||||||
|
|
||||||
static u8 __init
|
static u8 __init
|
||||||
|
@ -507,7 +512,8 @@ webbrick_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
|
||||||
{ 47, 47, 46, 45, 44}, /* IdSel 17 slot 3 */
|
{ 47, 47, 46, 45, 44}, /* IdSel 17 slot 3 */
|
||||||
};
|
};
|
||||||
const long min_idsel = 7, max_idsel = 17, irqs_per_slot = 5;
|
const long min_idsel = 7, max_idsel = 17, irqs_per_slot = 5;
|
||||||
return COMMON_TABLE_LOOKUP;
|
|
||||||
|
return isa_irq_fixup(dev, COMMON_TABLE_LOOKUP);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int __init
|
static int __init
|
||||||
|
@ -524,14 +530,13 @@ clipper_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
|
||||||
{ -1, -1, -1, -1, -1} /* IdSel 7 ISA Bridge */
|
{ -1, -1, -1, -1, -1} /* IdSel 7 ISA Bridge */
|
||||||
};
|
};
|
||||||
const long min_idsel = 1, max_idsel = 7, irqs_per_slot = 5;
|
const long min_idsel = 1, max_idsel = 7, irqs_per_slot = 5;
|
||||||
|
|
||||||
struct pci_controller *hose = dev->sysdata;
|
struct pci_controller *hose = dev->sysdata;
|
||||||
int irq = COMMON_TABLE_LOOKUP;
|
int irq = COMMON_TABLE_LOOKUP;
|
||||||
|
|
||||||
if (irq > 0)
|
if (irq > 0)
|
||||||
irq += 16 * hose->index;
|
irq += 16 * hose->index;
|
||||||
|
|
||||||
return irq;
|
return isa_irq_fixup(dev, irq);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __init
|
static void __init
|
||||||
|
|
|
@ -256,5 +256,5 @@ asmlinkage void ofw_init(ofw_handle_t o, int *nomr, int *pointer)
|
||||||
temp[11]='\0';
|
temp[11]='\0';
|
||||||
mem_len = OF_getproplen(o,phandle, temp);
|
mem_len = OF_getproplen(o,phandle, temp);
|
||||||
OF_getprop(o,phandle, temp, buffer, mem_len);
|
OF_getprop(o,phandle, temp, buffer, mem_len);
|
||||||
(unsigned char) pointer[32] = ((unsigned char *) buffer)[mem_len-2];
|
* ((unsigned char *) &pointer[32]) = ((unsigned char *) buffer)[mem_len-2];
|
||||||
}
|
}
|
||||||
|
|
|
@ -551,7 +551,7 @@ struct locomo_save_data {
|
||||||
u16 LCM_SPIMD;
|
u16 LCM_SPIMD;
|
||||||
};
|
};
|
||||||
|
|
||||||
static int locomo_suspend(struct device *dev, u32 pm_message_t, u32 level)
|
static int locomo_suspend(struct device *dev, pm_message_t state, u32 level)
|
||||||
{
|
{
|
||||||
struct locomo *lchip = dev_get_drvdata(dev);
|
struct locomo *lchip = dev_get_drvdata(dev);
|
||||||
struct locomo_save_data *save;
|
struct locomo_save_data *save;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#
|
#
|
||||||
# Automatically generated make config: don't edit
|
# Automatically generated make config: don't edit
|
||||||
# Linux kernel version: 2.6.13-rc2
|
# Linux kernel version: 2.6.13
|
||||||
# Thu Jul 7 16:41:21 2005
|
# Wed Sep 14 10:51:52 2005
|
||||||
#
|
#
|
||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_MMU=y
|
CONFIG_MMU=y
|
||||||
|
@ -135,7 +135,6 @@ CONFIG_PCI_NAMES=y
|
||||||
#
|
#
|
||||||
# Kernel Features
|
# Kernel Features
|
||||||
#
|
#
|
||||||
# CONFIG_SMP is not set
|
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
# CONFIG_NO_IDLE_HZ is not set
|
# CONFIG_NO_IDLE_HZ is not set
|
||||||
# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
|
# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
|
||||||
|
@ -178,6 +177,68 @@ CONFIG_BINFMT_ELF=y
|
||||||
#
|
#
|
||||||
# CONFIG_PM is not set
|
# CONFIG_PM is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Networking
|
||||||
|
#
|
||||||
|
CONFIG_NET=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Networking options
|
||||||
|
#
|
||||||
|
CONFIG_PACKET=y
|
||||||
|
CONFIG_PACKET_MMAP=y
|
||||||
|
CONFIG_UNIX=y
|
||||||
|
# CONFIG_NET_KEY is not set
|
||||||
|
CONFIG_INET=y
|
||||||
|
# CONFIG_IP_MULTICAST is not set
|
||||||
|
# CONFIG_IP_ADVANCED_ROUTER is not set
|
||||||
|
CONFIG_IP_FIB_HASH=y
|
||||||
|
CONFIG_IP_PNP=y
|
||||||
|
CONFIG_IP_PNP_DHCP=y
|
||||||
|
CONFIG_IP_PNP_BOOTP=y
|
||||||
|
# CONFIG_IP_PNP_RARP is not set
|
||||||
|
# CONFIG_NET_IPIP is not set
|
||||||
|
# CONFIG_NET_IPGRE is not set
|
||||||
|
# CONFIG_ARPD is not set
|
||||||
|
CONFIG_SYN_COOKIES=y
|
||||||
|
# CONFIG_INET_AH is not set
|
||||||
|
# CONFIG_INET_ESP is not set
|
||||||
|
# CONFIG_INET_IPCOMP is not set
|
||||||
|
# CONFIG_INET_TUNNEL is not set
|
||||||
|
# CONFIG_IP_TCPDIAG is not set
|
||||||
|
# CONFIG_IP_TCPDIAG_IPV6 is not set
|
||||||
|
# CONFIG_TCP_CONG_ADVANCED is not set
|
||||||
|
CONFIG_TCP_CONG_BIC=y
|
||||||
|
# CONFIG_IPV6 is not set
|
||||||
|
# CONFIG_NETFILTER is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# SCTP Configuration (EXPERIMENTAL)
|
||||||
|
#
|
||||||
|
# CONFIG_IP_SCTP is not set
|
||||||
|
# CONFIG_ATM is not set
|
||||||
|
# CONFIG_BRIDGE is not set
|
||||||
|
# CONFIG_VLAN_8021Q is not set
|
||||||
|
# CONFIG_DECNET is not set
|
||||||
|
# CONFIG_LLC2 is not set
|
||||||
|
# CONFIG_IPX is not set
|
||||||
|
# CONFIG_ATALK is not set
|
||||||
|
# CONFIG_X25 is not set
|
||||||
|
# CONFIG_LAPB is not set
|
||||||
|
# CONFIG_NET_DIVERT is not set
|
||||||
|
# CONFIG_ECONET is not set
|
||||||
|
# CONFIG_WAN_ROUTER is not set
|
||||||
|
# CONFIG_NET_SCHED is not set
|
||||||
|
# CONFIG_NET_CLS_ROUTE is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Network testing
|
||||||
|
#
|
||||||
|
# CONFIG_NET_PKTGEN is not set
|
||||||
|
# CONFIG_HAMRADIO is not set
|
||||||
|
# CONFIG_IRDA is not set
|
||||||
|
# CONFIG_BT is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Device Drivers
|
# Device Drivers
|
||||||
#
|
#
|
||||||
|
@ -248,6 +309,7 @@ CONFIG_MTD_COMPLEX_MAPPINGS=y
|
||||||
CONFIG_MTD_IXP2000=y
|
CONFIG_MTD_IXP2000=y
|
||||||
# CONFIG_MTD_EDB7312 is not set
|
# CONFIG_MTD_EDB7312 is not set
|
||||||
# CONFIG_MTD_PCI is not set
|
# CONFIG_MTD_PCI is not set
|
||||||
|
# CONFIG_MTD_PLATRAM is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Self-contained MTD device drivers
|
# Self-contained MTD device drivers
|
||||||
|
@ -334,72 +396,8 @@ CONFIG_IOSCHED_CFQ=y
|
||||||
# CONFIG_I2O is not set
|
# CONFIG_I2O is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Networking support
|
# Network device support
|
||||||
#
|
#
|
||||||
CONFIG_NET=y
|
|
||||||
|
|
||||||
#
|
|
||||||
# Networking options
|
|
||||||
#
|
|
||||||
CONFIG_PACKET=y
|
|
||||||
CONFIG_PACKET_MMAP=y
|
|
||||||
CONFIG_UNIX=y
|
|
||||||
# CONFIG_NET_KEY is not set
|
|
||||||
CONFIG_INET=y
|
|
||||||
# CONFIG_IP_MULTICAST is not set
|
|
||||||
# CONFIG_IP_ADVANCED_ROUTER is not set
|
|
||||||
CONFIG_IP_FIB_HASH=y
|
|
||||||
CONFIG_IP_PNP=y
|
|
||||||
CONFIG_IP_PNP_DHCP=y
|
|
||||||
CONFIG_IP_PNP_BOOTP=y
|
|
||||||
# CONFIG_IP_PNP_RARP is not set
|
|
||||||
# CONFIG_NET_IPIP is not set
|
|
||||||
# CONFIG_NET_IPGRE is not set
|
|
||||||
# CONFIG_ARPD is not set
|
|
||||||
CONFIG_SYN_COOKIES=y
|
|
||||||
# CONFIG_INET_AH is not set
|
|
||||||
# CONFIG_INET_ESP is not set
|
|
||||||
# CONFIG_INET_IPCOMP is not set
|
|
||||||
# CONFIG_INET_TUNNEL is not set
|
|
||||||
# CONFIG_IP_TCPDIAG is not set
|
|
||||||
# CONFIG_IP_TCPDIAG_IPV6 is not set
|
|
||||||
# CONFIG_TCP_CONG_ADVANCED is not set
|
|
||||||
CONFIG_TCP_CONG_BIC=y
|
|
||||||
# CONFIG_IPV6 is not set
|
|
||||||
# CONFIG_NETFILTER is not set
|
|
||||||
|
|
||||||
#
|
|
||||||
# SCTP Configuration (EXPERIMENTAL)
|
|
||||||
#
|
|
||||||
# CONFIG_IP_SCTP is not set
|
|
||||||
# CONFIG_ATM is not set
|
|
||||||
# CONFIG_BRIDGE is not set
|
|
||||||
# CONFIG_VLAN_8021Q is not set
|
|
||||||
# CONFIG_DECNET is not set
|
|
||||||
# CONFIG_LLC2 is not set
|
|
||||||
# CONFIG_IPX is not set
|
|
||||||
# CONFIG_ATALK is not set
|
|
||||||
# CONFIG_X25 is not set
|
|
||||||
# CONFIG_LAPB is not set
|
|
||||||
# CONFIG_NET_DIVERT is not set
|
|
||||||
# CONFIG_ECONET is not set
|
|
||||||
# CONFIG_WAN_ROUTER is not set
|
|
||||||
|
|
||||||
#
|
|
||||||
# QoS and/or fair queueing
|
|
||||||
#
|
|
||||||
# CONFIG_NET_SCHED is not set
|
|
||||||
# CONFIG_NET_CLS_ROUTE is not set
|
|
||||||
|
|
||||||
#
|
|
||||||
# Network testing
|
|
||||||
#
|
|
||||||
# CONFIG_NET_PKTGEN is not set
|
|
||||||
# CONFIG_NETPOLL is not set
|
|
||||||
# CONFIG_NET_POLL_CONTROLLER is not set
|
|
||||||
# CONFIG_HAMRADIO is not set
|
|
||||||
# CONFIG_IRDA is not set
|
|
||||||
# CONFIG_BT is not set
|
|
||||||
CONFIG_NETDEVICES=y
|
CONFIG_NETDEVICES=y
|
||||||
CONFIG_DUMMY=y
|
CONFIG_DUMMY=y
|
||||||
# CONFIG_BONDING is not set
|
# CONFIG_BONDING is not set
|
||||||
|
@ -509,6 +507,8 @@ CONFIG_DLCI_MAX=8
|
||||||
# CONFIG_SLIP is not set
|
# CONFIG_SLIP is not set
|
||||||
# CONFIG_SHAPER is not set
|
# CONFIG_SHAPER is not set
|
||||||
# CONFIG_NETCONSOLE is not set
|
# CONFIG_NETCONSOLE is not set
|
||||||
|
# CONFIG_NETPOLL is not set
|
||||||
|
# CONFIG_NET_POLL_CONTROLLER is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# ISDN subsystem
|
# ISDN subsystem
|
||||||
|
@ -635,7 +635,7 @@ CONFIG_I2C_ALGOBIT=y
|
||||||
# CONFIG_I2C_I810 is not set
|
# CONFIG_I2C_I810 is not set
|
||||||
# CONFIG_I2C_PIIX4 is not set
|
# CONFIG_I2C_PIIX4 is not set
|
||||||
# CONFIG_I2C_ISA is not set
|
# CONFIG_I2C_ISA is not set
|
||||||
# CONFIG_I2C_IXP2000 is not set
|
CONFIG_I2C_IXP2000=y
|
||||||
# CONFIG_I2C_NFORCE2 is not set
|
# CONFIG_I2C_NFORCE2 is not set
|
||||||
# CONFIG_I2C_PARPORT_LIGHT is not set
|
# CONFIG_I2C_PARPORT_LIGHT is not set
|
||||||
# CONFIG_I2C_PROSAVAGE is not set
|
# CONFIG_I2C_PROSAVAGE is not set
|
||||||
|
@ -649,11 +649,28 @@ CONFIG_I2C_ALGOBIT=y
|
||||||
# CONFIG_I2C_VIAPRO is not set
|
# CONFIG_I2C_VIAPRO is not set
|
||||||
# CONFIG_I2C_VOODOO3 is not set
|
# CONFIG_I2C_VOODOO3 is not set
|
||||||
# CONFIG_I2C_PCA_ISA is not set
|
# CONFIG_I2C_PCA_ISA is not set
|
||||||
|
CONFIG_I2C_SENSOR=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# Hardware Sensors Chip support
|
# Miscellaneous I2C Chip support
|
||||||
#
|
#
|
||||||
CONFIG_I2C_SENSOR=y
|
# CONFIG_SENSORS_DS1337 is not set
|
||||||
|
# CONFIG_SENSORS_DS1374 is not set
|
||||||
|
CONFIG_SENSORS_EEPROM=y
|
||||||
|
# CONFIG_SENSORS_PCF8574 is not set
|
||||||
|
# CONFIG_SENSORS_PCA9539 is not set
|
||||||
|
# CONFIG_SENSORS_PCF8591 is not set
|
||||||
|
# CONFIG_SENSORS_RTC8564 is not set
|
||||||
|
# CONFIG_SENSORS_MAX6875 is not set
|
||||||
|
# CONFIG_I2C_DEBUG_CORE is not set
|
||||||
|
# CONFIG_I2C_DEBUG_ALGO is not set
|
||||||
|
# CONFIG_I2C_DEBUG_BUS is not set
|
||||||
|
# CONFIG_I2C_DEBUG_CHIP is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Hardware Monitoring support
|
||||||
|
#
|
||||||
|
CONFIG_HWMON=y
|
||||||
# CONFIG_SENSORS_ADM1021 is not set
|
# CONFIG_SENSORS_ADM1021 is not set
|
||||||
# CONFIG_SENSORS_ADM1025 is not set
|
# CONFIG_SENSORS_ADM1025 is not set
|
||||||
# CONFIG_SENSORS_ADM1026 is not set
|
# CONFIG_SENSORS_ADM1026 is not set
|
||||||
|
@ -679,30 +696,15 @@ CONFIG_I2C_SENSOR=y
|
||||||
# CONFIG_SENSORS_LM92 is not set
|
# CONFIG_SENSORS_LM92 is not set
|
||||||
# CONFIG_SENSORS_MAX1619 is not set
|
# CONFIG_SENSORS_MAX1619 is not set
|
||||||
# CONFIG_SENSORS_PC87360 is not set
|
# CONFIG_SENSORS_PC87360 is not set
|
||||||
# CONFIG_SENSORS_SMSC47B397 is not set
|
|
||||||
# CONFIG_SENSORS_SIS5595 is not set
|
# CONFIG_SENSORS_SIS5595 is not set
|
||||||
# CONFIG_SENSORS_SMSC47M1 is not set
|
# CONFIG_SENSORS_SMSC47M1 is not set
|
||||||
|
# CONFIG_SENSORS_SMSC47B397 is not set
|
||||||
# CONFIG_SENSORS_VIA686A is not set
|
# CONFIG_SENSORS_VIA686A is not set
|
||||||
# CONFIG_SENSORS_W83781D is not set
|
# CONFIG_SENSORS_W83781D is not set
|
||||||
# CONFIG_SENSORS_W83L785TS is not set
|
# CONFIG_SENSORS_W83L785TS is not set
|
||||||
# CONFIG_SENSORS_W83627HF is not set
|
# CONFIG_SENSORS_W83627HF is not set
|
||||||
# CONFIG_SENSORS_W83627EHF is not set
|
# CONFIG_SENSORS_W83627EHF is not set
|
||||||
|
# CONFIG_HWMON_DEBUG_CHIP is not set
|
||||||
#
|
|
||||||
# Other I2C Chip support
|
|
||||||
#
|
|
||||||
# CONFIG_SENSORS_DS1337 is not set
|
|
||||||
# CONFIG_SENSORS_DS1374 is not set
|
|
||||||
CONFIG_SENSORS_EEPROM=y
|
|
||||||
# CONFIG_SENSORS_PCF8574 is not set
|
|
||||||
# CONFIG_SENSORS_PCA9539 is not set
|
|
||||||
# CONFIG_SENSORS_PCF8591 is not set
|
|
||||||
# CONFIG_SENSORS_RTC8564 is not set
|
|
||||||
# CONFIG_SENSORS_MAX6875 is not set
|
|
||||||
# CONFIG_I2C_DEBUG_CORE is not set
|
|
||||||
# CONFIG_I2C_DEBUG_ALGO is not set
|
|
||||||
# CONFIG_I2C_DEBUG_BUS is not set
|
|
||||||
# CONFIG_I2C_DEBUG_CHIP is not set
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Misc devices
|
# Misc devices
|
||||||
|
@ -770,6 +772,7 @@ CONFIG_FS_POSIX_ACL=y
|
||||||
# CONFIG_XFS_FS is not set
|
# CONFIG_XFS_FS is not set
|
||||||
# CONFIG_MINIX_FS is not set
|
# CONFIG_MINIX_FS is not set
|
||||||
# CONFIG_ROMFS_FS is not set
|
# CONFIG_ROMFS_FS is not set
|
||||||
|
CONFIG_INOTIFY=y
|
||||||
# CONFIG_QUOTA is not set
|
# CONFIG_QUOTA is not set
|
||||||
CONFIG_DNOTIFY=y
|
CONFIG_DNOTIFY=y
|
||||||
# CONFIG_AUTOFS_FS is not set
|
# CONFIG_AUTOFS_FS is not set
|
||||||
|
@ -812,8 +815,7 @@ CONFIG_RAMFS=y
|
||||||
# CONFIG_JFFS_FS is not set
|
# CONFIG_JFFS_FS is not set
|
||||||
CONFIG_JFFS2_FS=y
|
CONFIG_JFFS2_FS=y
|
||||||
CONFIG_JFFS2_FS_DEBUG=0
|
CONFIG_JFFS2_FS_DEBUG=0
|
||||||
# CONFIG_JFFS2_FS_NAND is not set
|
CONFIG_JFFS2_FS_WRITEBUFFER=y
|
||||||
# CONFIG_JFFS2_FS_NOR_ECC is not set
|
|
||||||
# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
|
# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
|
||||||
CONFIG_JFFS2_ZLIB=y
|
CONFIG_JFFS2_ZLIB=y
|
||||||
CONFIG_JFFS2_RTIME=y
|
CONFIG_JFFS2_RTIME=y
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#
|
#
|
||||||
# Automatically generated make config: don't edit
|
# Automatically generated make config: don't edit
|
||||||
# Linux kernel version: 2.6.13-rc2
|
# Linux kernel version: 2.6.13
|
||||||
# Thu Jul 7 16:49:01 2005
|
# Wed Sep 14 10:52:01 2005
|
||||||
#
|
#
|
||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_MMU=y
|
CONFIG_MMU=y
|
||||||
|
@ -136,7 +136,6 @@ CONFIG_PCI_NAMES=y
|
||||||
#
|
#
|
||||||
# Kernel Features
|
# Kernel Features
|
||||||
#
|
#
|
||||||
# CONFIG_SMP is not set
|
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
# CONFIG_NO_IDLE_HZ is not set
|
# CONFIG_NO_IDLE_HZ is not set
|
||||||
# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
|
# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
|
||||||
|
@ -179,6 +178,68 @@ CONFIG_BINFMT_ELF=y
|
||||||
#
|
#
|
||||||
# CONFIG_PM is not set
|
# CONFIG_PM is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Networking
|
||||||
|
#
|
||||||
|
CONFIG_NET=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Networking options
|
||||||
|
#
|
||||||
|
CONFIG_PACKET=y
|
||||||
|
CONFIG_PACKET_MMAP=y
|
||||||
|
CONFIG_UNIX=y
|
||||||
|
# CONFIG_NET_KEY is not set
|
||||||
|
CONFIG_INET=y
|
||||||
|
# CONFIG_IP_MULTICAST is not set
|
||||||
|
# CONFIG_IP_ADVANCED_ROUTER is not set
|
||||||
|
CONFIG_IP_FIB_HASH=y
|
||||||
|
CONFIG_IP_PNP=y
|
||||||
|
CONFIG_IP_PNP_DHCP=y
|
||||||
|
CONFIG_IP_PNP_BOOTP=y
|
||||||
|
# CONFIG_IP_PNP_RARP is not set
|
||||||
|
# CONFIG_NET_IPIP is not set
|
||||||
|
# CONFIG_NET_IPGRE is not set
|
||||||
|
# CONFIG_ARPD is not set
|
||||||
|
CONFIG_SYN_COOKIES=y
|
||||||
|
# CONFIG_INET_AH is not set
|
||||||
|
# CONFIG_INET_ESP is not set
|
||||||
|
# CONFIG_INET_IPCOMP is not set
|
||||||
|
# CONFIG_INET_TUNNEL is not set
|
||||||
|
# CONFIG_IP_TCPDIAG is not set
|
||||||
|
# CONFIG_IP_TCPDIAG_IPV6 is not set
|
||||||
|
# CONFIG_TCP_CONG_ADVANCED is not set
|
||||||
|
CONFIG_TCP_CONG_BIC=y
|
||||||
|
# CONFIG_IPV6 is not set
|
||||||
|
# CONFIG_NETFILTER is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# SCTP Configuration (EXPERIMENTAL)
|
||||||
|
#
|
||||||
|
# CONFIG_IP_SCTP is not set
|
||||||
|
# CONFIG_ATM is not set
|
||||||
|
# CONFIG_BRIDGE is not set
|
||||||
|
# CONFIG_VLAN_8021Q is not set
|
||||||
|
# CONFIG_DECNET is not set
|
||||||
|
# CONFIG_LLC2 is not set
|
||||||
|
# CONFIG_IPX is not set
|
||||||
|
# CONFIG_ATALK is not set
|
||||||
|
# CONFIG_X25 is not set
|
||||||
|
# CONFIG_LAPB is not set
|
||||||
|
# CONFIG_NET_DIVERT is not set
|
||||||
|
# CONFIG_ECONET is not set
|
||||||
|
# CONFIG_WAN_ROUTER is not set
|
||||||
|
# CONFIG_NET_SCHED is not set
|
||||||
|
# CONFIG_NET_CLS_ROUTE is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Network testing
|
||||||
|
#
|
||||||
|
# CONFIG_NET_PKTGEN is not set
|
||||||
|
# CONFIG_HAMRADIO is not set
|
||||||
|
# CONFIG_IRDA is not set
|
||||||
|
# CONFIG_BT is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Device Drivers
|
# Device Drivers
|
||||||
#
|
#
|
||||||
|
@ -249,6 +310,7 @@ CONFIG_MTD_COMPLEX_MAPPINGS=y
|
||||||
CONFIG_MTD_IXP2000=y
|
CONFIG_MTD_IXP2000=y
|
||||||
# CONFIG_MTD_EDB7312 is not set
|
# CONFIG_MTD_EDB7312 is not set
|
||||||
# CONFIG_MTD_PCI is not set
|
# CONFIG_MTD_PCI is not set
|
||||||
|
# CONFIG_MTD_PLATRAM is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Self-contained MTD device drivers
|
# Self-contained MTD device drivers
|
||||||
|
@ -335,72 +397,8 @@ CONFIG_IOSCHED_CFQ=y
|
||||||
# CONFIG_I2O is not set
|
# CONFIG_I2O is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Networking support
|
# Network device support
|
||||||
#
|
#
|
||||||
CONFIG_NET=y
|
|
||||||
|
|
||||||
#
|
|
||||||
# Networking options
|
|
||||||
#
|
|
||||||
CONFIG_PACKET=y
|
|
||||||
CONFIG_PACKET_MMAP=y
|
|
||||||
CONFIG_UNIX=y
|
|
||||||
# CONFIG_NET_KEY is not set
|
|
||||||
CONFIG_INET=y
|
|
||||||
# CONFIG_IP_MULTICAST is not set
|
|
||||||
# CONFIG_IP_ADVANCED_ROUTER is not set
|
|
||||||
CONFIG_IP_FIB_HASH=y
|
|
||||||
CONFIG_IP_PNP=y
|
|
||||||
CONFIG_IP_PNP_DHCP=y
|
|
||||||
CONFIG_IP_PNP_BOOTP=y
|
|
||||||
# CONFIG_IP_PNP_RARP is not set
|
|
||||||
# CONFIG_NET_IPIP is not set
|
|
||||||
# CONFIG_NET_IPGRE is not set
|
|
||||||
# CONFIG_ARPD is not set
|
|
||||||
CONFIG_SYN_COOKIES=y
|
|
||||||
# CONFIG_INET_AH is not set
|
|
||||||
# CONFIG_INET_ESP is not set
|
|
||||||
# CONFIG_INET_IPCOMP is not set
|
|
||||||
# CONFIG_INET_TUNNEL is not set
|
|
||||||
# CONFIG_IP_TCPDIAG is not set
|
|
||||||
# CONFIG_IP_TCPDIAG_IPV6 is not set
|
|
||||||
# CONFIG_TCP_CONG_ADVANCED is not set
|
|
||||||
CONFIG_TCP_CONG_BIC=y
|
|
||||||
# CONFIG_IPV6 is not set
|
|
||||||
# CONFIG_NETFILTER is not set
|
|
||||||
|
|
||||||
#
|
|
||||||
# SCTP Configuration (EXPERIMENTAL)
|
|
||||||
#
|
|
||||||
# CONFIG_IP_SCTP is not set
|
|
||||||
# CONFIG_ATM is not set
|
|
||||||
# CONFIG_BRIDGE is not set
|
|
||||||
# CONFIG_VLAN_8021Q is not set
|
|
||||||
# CONFIG_DECNET is not set
|
|
||||||
# CONFIG_LLC2 is not set
|
|
||||||
# CONFIG_IPX is not set
|
|
||||||
# CONFIG_ATALK is not set
|
|
||||||
# CONFIG_X25 is not set
|
|
||||||
# CONFIG_LAPB is not set
|
|
||||||
# CONFIG_NET_DIVERT is not set
|
|
||||||
# CONFIG_ECONET is not set
|
|
||||||
# CONFIG_WAN_ROUTER is not set
|
|
||||||
|
|
||||||
#
|
|
||||||
# QoS and/or fair queueing
|
|
||||||
#
|
|
||||||
# CONFIG_NET_SCHED is not set
|
|
||||||
# CONFIG_NET_CLS_ROUTE is not set
|
|
||||||
|
|
||||||
#
|
|
||||||
# Network testing
|
|
||||||
#
|
|
||||||
# CONFIG_NET_PKTGEN is not set
|
|
||||||
# CONFIG_NETPOLL is not set
|
|
||||||
# CONFIG_NET_POLL_CONTROLLER is not set
|
|
||||||
# CONFIG_HAMRADIO is not set
|
|
||||||
# CONFIG_IRDA is not set
|
|
||||||
# CONFIG_BT is not set
|
|
||||||
CONFIG_NETDEVICES=y
|
CONFIG_NETDEVICES=y
|
||||||
CONFIG_DUMMY=y
|
CONFIG_DUMMY=y
|
||||||
# CONFIG_BONDING is not set
|
# CONFIG_BONDING is not set
|
||||||
|
@ -510,6 +508,8 @@ CONFIG_DLCI_MAX=8
|
||||||
# CONFIG_SLIP is not set
|
# CONFIG_SLIP is not set
|
||||||
# CONFIG_SHAPER is not set
|
# CONFIG_SHAPER is not set
|
||||||
# CONFIG_NETCONSOLE is not set
|
# CONFIG_NETCONSOLE is not set
|
||||||
|
# CONFIG_NETPOLL is not set
|
||||||
|
# CONFIG_NET_POLL_CONTROLLER is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# ISDN subsystem
|
# ISDN subsystem
|
||||||
|
@ -636,7 +636,7 @@ CONFIG_I2C_ALGOBIT=y
|
||||||
# CONFIG_I2C_I810 is not set
|
# CONFIG_I2C_I810 is not set
|
||||||
# CONFIG_I2C_PIIX4 is not set
|
# CONFIG_I2C_PIIX4 is not set
|
||||||
# CONFIG_I2C_ISA is not set
|
# CONFIG_I2C_ISA is not set
|
||||||
# CONFIG_I2C_IXP2000 is not set
|
CONFIG_I2C_IXP2000=y
|
||||||
# CONFIG_I2C_NFORCE2 is not set
|
# CONFIG_I2C_NFORCE2 is not set
|
||||||
# CONFIG_I2C_PARPORT_LIGHT is not set
|
# CONFIG_I2C_PARPORT_LIGHT is not set
|
||||||
# CONFIG_I2C_PROSAVAGE is not set
|
# CONFIG_I2C_PROSAVAGE is not set
|
||||||
|
@ -650,11 +650,28 @@ CONFIG_I2C_ALGOBIT=y
|
||||||
# CONFIG_I2C_VIAPRO is not set
|
# CONFIG_I2C_VIAPRO is not set
|
||||||
# CONFIG_I2C_VOODOO3 is not set
|
# CONFIG_I2C_VOODOO3 is not set
|
||||||
# CONFIG_I2C_PCA_ISA is not set
|
# CONFIG_I2C_PCA_ISA is not set
|
||||||
|
CONFIG_I2C_SENSOR=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# Hardware Sensors Chip support
|
# Miscellaneous I2C Chip support
|
||||||
#
|
#
|
||||||
CONFIG_I2C_SENSOR=y
|
# CONFIG_SENSORS_DS1337 is not set
|
||||||
|
# CONFIG_SENSORS_DS1374 is not set
|
||||||
|
CONFIG_SENSORS_EEPROM=y
|
||||||
|
# CONFIG_SENSORS_PCF8574 is not set
|
||||||
|
# CONFIG_SENSORS_PCA9539 is not set
|
||||||
|
# CONFIG_SENSORS_PCF8591 is not set
|
||||||
|
# CONFIG_SENSORS_RTC8564 is not set
|
||||||
|
# CONFIG_SENSORS_MAX6875 is not set
|
||||||
|
# CONFIG_I2C_DEBUG_CORE is not set
|
||||||
|
# CONFIG_I2C_DEBUG_ALGO is not set
|
||||||
|
# CONFIG_I2C_DEBUG_BUS is not set
|
||||||
|
# CONFIG_I2C_DEBUG_CHIP is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Hardware Monitoring support
|
||||||
|
#
|
||||||
|
CONFIG_HWMON=y
|
||||||
# CONFIG_SENSORS_ADM1021 is not set
|
# CONFIG_SENSORS_ADM1021 is not set
|
||||||
# CONFIG_SENSORS_ADM1025 is not set
|
# CONFIG_SENSORS_ADM1025 is not set
|
||||||
# CONFIG_SENSORS_ADM1026 is not set
|
# CONFIG_SENSORS_ADM1026 is not set
|
||||||
|
@ -680,30 +697,15 @@ CONFIG_I2C_SENSOR=y
|
||||||
# CONFIG_SENSORS_LM92 is not set
|
# CONFIG_SENSORS_LM92 is not set
|
||||||
# CONFIG_SENSORS_MAX1619 is not set
|
# CONFIG_SENSORS_MAX1619 is not set
|
||||||
# CONFIG_SENSORS_PC87360 is not set
|
# CONFIG_SENSORS_PC87360 is not set
|
||||||
# CONFIG_SENSORS_SMSC47B397 is not set
|
|
||||||
# CONFIG_SENSORS_SIS5595 is not set
|
# CONFIG_SENSORS_SIS5595 is not set
|
||||||
# CONFIG_SENSORS_SMSC47M1 is not set
|
# CONFIG_SENSORS_SMSC47M1 is not set
|
||||||
|
# CONFIG_SENSORS_SMSC47B397 is not set
|
||||||
# CONFIG_SENSORS_VIA686A is not set
|
# CONFIG_SENSORS_VIA686A is not set
|
||||||
# CONFIG_SENSORS_W83781D is not set
|
# CONFIG_SENSORS_W83781D is not set
|
||||||
# CONFIG_SENSORS_W83L785TS is not set
|
# CONFIG_SENSORS_W83L785TS is not set
|
||||||
# CONFIG_SENSORS_W83627HF is not set
|
# CONFIG_SENSORS_W83627HF is not set
|
||||||
# CONFIG_SENSORS_W83627EHF is not set
|
# CONFIG_SENSORS_W83627EHF is not set
|
||||||
|
# CONFIG_HWMON_DEBUG_CHIP is not set
|
||||||
#
|
|
||||||
# Other I2C Chip support
|
|
||||||
#
|
|
||||||
# CONFIG_SENSORS_DS1337 is not set
|
|
||||||
# CONFIG_SENSORS_DS1374 is not set
|
|
||||||
CONFIG_SENSORS_EEPROM=y
|
|
||||||
# CONFIG_SENSORS_PCF8574 is not set
|
|
||||||
# CONFIG_SENSORS_PCA9539 is not set
|
|
||||||
# CONFIG_SENSORS_PCF8591 is not set
|
|
||||||
# CONFIG_SENSORS_RTC8564 is not set
|
|
||||||
# CONFIG_SENSORS_MAX6875 is not set
|
|
||||||
# CONFIG_I2C_DEBUG_CORE is not set
|
|
||||||
# CONFIG_I2C_DEBUG_ALGO is not set
|
|
||||||
# CONFIG_I2C_DEBUG_BUS is not set
|
|
||||||
# CONFIG_I2C_DEBUG_CHIP is not set
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Misc devices
|
# Misc devices
|
||||||
|
@ -771,6 +773,7 @@ CONFIG_FS_POSIX_ACL=y
|
||||||
# CONFIG_XFS_FS is not set
|
# CONFIG_XFS_FS is not set
|
||||||
# CONFIG_MINIX_FS is not set
|
# CONFIG_MINIX_FS is not set
|
||||||
# CONFIG_ROMFS_FS is not set
|
# CONFIG_ROMFS_FS is not set
|
||||||
|
CONFIG_INOTIFY=y
|
||||||
# CONFIG_QUOTA is not set
|
# CONFIG_QUOTA is not set
|
||||||
CONFIG_DNOTIFY=y
|
CONFIG_DNOTIFY=y
|
||||||
# CONFIG_AUTOFS_FS is not set
|
# CONFIG_AUTOFS_FS is not set
|
||||||
|
@ -813,8 +816,7 @@ CONFIG_RAMFS=y
|
||||||
# CONFIG_JFFS_FS is not set
|
# CONFIG_JFFS_FS is not set
|
||||||
CONFIG_JFFS2_FS=y
|
CONFIG_JFFS2_FS=y
|
||||||
CONFIG_JFFS2_FS_DEBUG=0
|
CONFIG_JFFS2_FS_DEBUG=0
|
||||||
# CONFIG_JFFS2_FS_NAND is not set
|
CONFIG_JFFS2_FS_WRITEBUFFER=y
|
||||||
# CONFIG_JFFS2_FS_NOR_ECC is not set
|
|
||||||
# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
|
# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
|
||||||
CONFIG_JFFS2_ZLIB=y
|
CONFIG_JFFS2_ZLIB=y
|
||||||
CONFIG_JFFS2_RTIME=y
|
CONFIG_JFFS2_RTIME=y
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#
|
#
|
||||||
# Automatically generated make config: don't edit
|
# Automatically generated make config: don't edit
|
||||||
# Linux kernel version: 2.6.13-rc2
|
# Linux kernel version: 2.6.13
|
||||||
# Thu Jul 7 16:49:08 2005
|
# Wed Sep 14 10:52:10 2005
|
||||||
#
|
#
|
||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_MMU=y
|
CONFIG_MMU=y
|
||||||
|
@ -136,7 +136,6 @@ CONFIG_PCI_NAMES=y
|
||||||
#
|
#
|
||||||
# Kernel Features
|
# Kernel Features
|
||||||
#
|
#
|
||||||
# CONFIG_SMP is not set
|
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
# CONFIG_NO_IDLE_HZ is not set
|
# CONFIG_NO_IDLE_HZ is not set
|
||||||
# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
|
# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
|
||||||
|
@ -179,6 +178,68 @@ CONFIG_BINFMT_ELF=y
|
||||||
#
|
#
|
||||||
# CONFIG_PM is not set
|
# CONFIG_PM is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Networking
|
||||||
|
#
|
||||||
|
CONFIG_NET=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Networking options
|
||||||
|
#
|
||||||
|
CONFIG_PACKET=y
|
||||||
|
CONFIG_PACKET_MMAP=y
|
||||||
|
CONFIG_UNIX=y
|
||||||
|
# CONFIG_NET_KEY is not set
|
||||||
|
CONFIG_INET=y
|
||||||
|
# CONFIG_IP_MULTICAST is not set
|
||||||
|
# CONFIG_IP_ADVANCED_ROUTER is not set
|
||||||
|
CONFIG_IP_FIB_HASH=y
|
||||||
|
CONFIG_IP_PNP=y
|
||||||
|
CONFIG_IP_PNP_DHCP=y
|
||||||
|
CONFIG_IP_PNP_BOOTP=y
|
||||||
|
# CONFIG_IP_PNP_RARP is not set
|
||||||
|
# CONFIG_NET_IPIP is not set
|
||||||
|
# CONFIG_NET_IPGRE is not set
|
||||||
|
# CONFIG_ARPD is not set
|
||||||
|
CONFIG_SYN_COOKIES=y
|
||||||
|
# CONFIG_INET_AH is not set
|
||||||
|
# CONFIG_INET_ESP is not set
|
||||||
|
# CONFIG_INET_IPCOMP is not set
|
||||||
|
# CONFIG_INET_TUNNEL is not set
|
||||||
|
CONFIG_IP_TCPDIAG=y
|
||||||
|
# CONFIG_IP_TCPDIAG_IPV6 is not set
|
||||||
|
# CONFIG_TCP_CONG_ADVANCED is not set
|
||||||
|
CONFIG_TCP_CONG_BIC=y
|
||||||
|
# CONFIG_IPV6 is not set
|
||||||
|
# CONFIG_NETFILTER is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# SCTP Configuration (EXPERIMENTAL)
|
||||||
|
#
|
||||||
|
# CONFIG_IP_SCTP is not set
|
||||||
|
# CONFIG_ATM is not set
|
||||||
|
# CONFIG_BRIDGE is not set
|
||||||
|
# CONFIG_VLAN_8021Q is not set
|
||||||
|
# CONFIG_DECNET is not set
|
||||||
|
# CONFIG_LLC2 is not set
|
||||||
|
# CONFIG_IPX is not set
|
||||||
|
# CONFIG_ATALK is not set
|
||||||
|
# CONFIG_X25 is not set
|
||||||
|
# CONFIG_LAPB is not set
|
||||||
|
# CONFIG_NET_DIVERT is not set
|
||||||
|
# CONFIG_ECONET is not set
|
||||||
|
# CONFIG_WAN_ROUTER is not set
|
||||||
|
# CONFIG_NET_SCHED is not set
|
||||||
|
# CONFIG_NET_CLS_ROUTE is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Network testing
|
||||||
|
#
|
||||||
|
# CONFIG_NET_PKTGEN is not set
|
||||||
|
# CONFIG_HAMRADIO is not set
|
||||||
|
# CONFIG_IRDA is not set
|
||||||
|
# CONFIG_BT is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Device Drivers
|
# Device Drivers
|
||||||
#
|
#
|
||||||
|
@ -249,6 +310,7 @@ CONFIG_MTD_COMPLEX_MAPPINGS=y
|
||||||
CONFIG_MTD_IXP2000=y
|
CONFIG_MTD_IXP2000=y
|
||||||
# CONFIG_MTD_EDB7312 is not set
|
# CONFIG_MTD_EDB7312 is not set
|
||||||
# CONFIG_MTD_PCI is not set
|
# CONFIG_MTD_PCI is not set
|
||||||
|
# CONFIG_MTD_PLATRAM is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Self-contained MTD device drivers
|
# Self-contained MTD device drivers
|
||||||
|
@ -335,72 +397,8 @@ CONFIG_IOSCHED_CFQ=y
|
||||||
# CONFIG_I2O is not set
|
# CONFIG_I2O is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Networking support
|
# Network device support
|
||||||
#
|
#
|
||||||
CONFIG_NET=y
|
|
||||||
|
|
||||||
#
|
|
||||||
# Networking options
|
|
||||||
#
|
|
||||||
CONFIG_PACKET=y
|
|
||||||
CONFIG_PACKET_MMAP=y
|
|
||||||
CONFIG_UNIX=y
|
|
||||||
# CONFIG_NET_KEY is not set
|
|
||||||
CONFIG_INET=y
|
|
||||||
# CONFIG_IP_MULTICAST is not set
|
|
||||||
# CONFIG_IP_ADVANCED_ROUTER is not set
|
|
||||||
CONFIG_IP_FIB_HASH=y
|
|
||||||
CONFIG_IP_PNP=y
|
|
||||||
CONFIG_IP_PNP_DHCP=y
|
|
||||||
CONFIG_IP_PNP_BOOTP=y
|
|
||||||
# CONFIG_IP_PNP_RARP is not set
|
|
||||||
# CONFIG_NET_IPIP is not set
|
|
||||||
# CONFIG_NET_IPGRE is not set
|
|
||||||
# CONFIG_ARPD is not set
|
|
||||||
CONFIG_SYN_COOKIES=y
|
|
||||||
# CONFIG_INET_AH is not set
|
|
||||||
# CONFIG_INET_ESP is not set
|
|
||||||
# CONFIG_INET_IPCOMP is not set
|
|
||||||
# CONFIG_INET_TUNNEL is not set
|
|
||||||
CONFIG_IP_TCPDIAG=y
|
|
||||||
# CONFIG_IP_TCPDIAG_IPV6 is not set
|
|
||||||
# CONFIG_TCP_CONG_ADVANCED is not set
|
|
||||||
CONFIG_TCP_CONG_BIC=y
|
|
||||||
# CONFIG_IPV6 is not set
|
|
||||||
# CONFIG_NETFILTER is not set
|
|
||||||
|
|
||||||
#
|
|
||||||
# SCTP Configuration (EXPERIMENTAL)
|
|
||||||
#
|
|
||||||
# CONFIG_IP_SCTP is not set
|
|
||||||
# CONFIG_ATM is not set
|
|
||||||
# CONFIG_BRIDGE is not set
|
|
||||||
# CONFIG_VLAN_8021Q is not set
|
|
||||||
# CONFIG_DECNET is not set
|
|
||||||
# CONFIG_LLC2 is not set
|
|
||||||
# CONFIG_IPX is not set
|
|
||||||
# CONFIG_ATALK is not set
|
|
||||||
# CONFIG_X25 is not set
|
|
||||||
# CONFIG_LAPB is not set
|
|
||||||
# CONFIG_NET_DIVERT is not set
|
|
||||||
# CONFIG_ECONET is not set
|
|
||||||
# CONFIG_WAN_ROUTER is not set
|
|
||||||
|
|
||||||
#
|
|
||||||
# QoS and/or fair queueing
|
|
||||||
#
|
|
||||||
# CONFIG_NET_SCHED is not set
|
|
||||||
# CONFIG_NET_CLS_ROUTE is not set
|
|
||||||
|
|
||||||
#
|
|
||||||
# Network testing
|
|
||||||
#
|
|
||||||
# CONFIG_NET_PKTGEN is not set
|
|
||||||
# CONFIG_NETPOLL is not set
|
|
||||||
# CONFIG_NET_POLL_CONTROLLER is not set
|
|
||||||
# CONFIG_HAMRADIO is not set
|
|
||||||
# CONFIG_IRDA is not set
|
|
||||||
# CONFIG_BT is not set
|
|
||||||
CONFIG_NETDEVICES=y
|
CONFIG_NETDEVICES=y
|
||||||
CONFIG_DUMMY=y
|
CONFIG_DUMMY=y
|
||||||
# CONFIG_BONDING is not set
|
# CONFIG_BONDING is not set
|
||||||
|
@ -511,6 +509,8 @@ CONFIG_DLCI_MAX=8
|
||||||
# CONFIG_SLIP is not set
|
# CONFIG_SLIP is not set
|
||||||
# CONFIG_SHAPER is not set
|
# CONFIG_SHAPER is not set
|
||||||
# CONFIG_NETCONSOLE is not set
|
# CONFIG_NETCONSOLE is not set
|
||||||
|
# CONFIG_NETPOLL is not set
|
||||||
|
# CONFIG_NET_POLL_CONTROLLER is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# ISDN subsystem
|
# ISDN subsystem
|
||||||
|
@ -637,7 +637,7 @@ CONFIG_I2C_ALGOBIT=y
|
||||||
# CONFIG_I2C_I810 is not set
|
# CONFIG_I2C_I810 is not set
|
||||||
# CONFIG_I2C_PIIX4 is not set
|
# CONFIG_I2C_PIIX4 is not set
|
||||||
# CONFIG_I2C_ISA is not set
|
# CONFIG_I2C_ISA is not set
|
||||||
# CONFIG_I2C_IXP2000 is not set
|
CONFIG_I2C_IXP2000=y
|
||||||
# CONFIG_I2C_NFORCE2 is not set
|
# CONFIG_I2C_NFORCE2 is not set
|
||||||
# CONFIG_I2C_PARPORT_LIGHT is not set
|
# CONFIG_I2C_PARPORT_LIGHT is not set
|
||||||
# CONFIG_I2C_PROSAVAGE is not set
|
# CONFIG_I2C_PROSAVAGE is not set
|
||||||
|
@ -651,11 +651,28 @@ CONFIG_I2C_ALGOBIT=y
|
||||||
# CONFIG_I2C_VIAPRO is not set
|
# CONFIG_I2C_VIAPRO is not set
|
||||||
# CONFIG_I2C_VOODOO3 is not set
|
# CONFIG_I2C_VOODOO3 is not set
|
||||||
# CONFIG_I2C_PCA_ISA is not set
|
# CONFIG_I2C_PCA_ISA is not set
|
||||||
|
CONFIG_I2C_SENSOR=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# Hardware Sensors Chip support
|
# Miscellaneous I2C Chip support
|
||||||
#
|
#
|
||||||
CONFIG_I2C_SENSOR=y
|
# CONFIG_SENSORS_DS1337 is not set
|
||||||
|
# CONFIG_SENSORS_DS1374 is not set
|
||||||
|
CONFIG_SENSORS_EEPROM=y
|
||||||
|
# CONFIG_SENSORS_PCF8574 is not set
|
||||||
|
# CONFIG_SENSORS_PCA9539 is not set
|
||||||
|
# CONFIG_SENSORS_PCF8591 is not set
|
||||||
|
# CONFIG_SENSORS_RTC8564 is not set
|
||||||
|
# CONFIG_SENSORS_MAX6875 is not set
|
||||||
|
# CONFIG_I2C_DEBUG_CORE is not set
|
||||||
|
# CONFIG_I2C_DEBUG_ALGO is not set
|
||||||
|
# CONFIG_I2C_DEBUG_BUS is not set
|
||||||
|
# CONFIG_I2C_DEBUG_CHIP is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Hardware Monitoring support
|
||||||
|
#
|
||||||
|
CONFIG_HWMON=y
|
||||||
# CONFIG_SENSORS_ADM1021 is not set
|
# CONFIG_SENSORS_ADM1021 is not set
|
||||||
# CONFIG_SENSORS_ADM1025 is not set
|
# CONFIG_SENSORS_ADM1025 is not set
|
||||||
# CONFIG_SENSORS_ADM1026 is not set
|
# CONFIG_SENSORS_ADM1026 is not set
|
||||||
|
@ -681,30 +698,15 @@ CONFIG_I2C_SENSOR=y
|
||||||
# CONFIG_SENSORS_LM92 is not set
|
# CONFIG_SENSORS_LM92 is not set
|
||||||
# CONFIG_SENSORS_MAX1619 is not set
|
# CONFIG_SENSORS_MAX1619 is not set
|
||||||
# CONFIG_SENSORS_PC87360 is not set
|
# CONFIG_SENSORS_PC87360 is not set
|
||||||
# CONFIG_SENSORS_SMSC47B397 is not set
|
|
||||||
# CONFIG_SENSORS_SIS5595 is not set
|
# CONFIG_SENSORS_SIS5595 is not set
|
||||||
# CONFIG_SENSORS_SMSC47M1 is not set
|
# CONFIG_SENSORS_SMSC47M1 is not set
|
||||||
|
# CONFIG_SENSORS_SMSC47B397 is not set
|
||||||
# CONFIG_SENSORS_VIA686A is not set
|
# CONFIG_SENSORS_VIA686A is not set
|
||||||
# CONFIG_SENSORS_W83781D is not set
|
# CONFIG_SENSORS_W83781D is not set
|
||||||
# CONFIG_SENSORS_W83L785TS is not set
|
# CONFIG_SENSORS_W83L785TS is not set
|
||||||
# CONFIG_SENSORS_W83627HF is not set
|
# CONFIG_SENSORS_W83627HF is not set
|
||||||
# CONFIG_SENSORS_W83627EHF is not set
|
# CONFIG_SENSORS_W83627EHF is not set
|
||||||
|
# CONFIG_HWMON_DEBUG_CHIP is not set
|
||||||
#
|
|
||||||
# Other I2C Chip support
|
|
||||||
#
|
|
||||||
# CONFIG_SENSORS_DS1337 is not set
|
|
||||||
# CONFIG_SENSORS_DS1374 is not set
|
|
||||||
CONFIG_SENSORS_EEPROM=y
|
|
||||||
# CONFIG_SENSORS_PCF8574 is not set
|
|
||||||
# CONFIG_SENSORS_PCA9539 is not set
|
|
||||||
# CONFIG_SENSORS_PCF8591 is not set
|
|
||||||
# CONFIG_SENSORS_RTC8564 is not set
|
|
||||||
# CONFIG_SENSORS_MAX6875 is not set
|
|
||||||
# CONFIG_I2C_DEBUG_CORE is not set
|
|
||||||
# CONFIG_I2C_DEBUG_ALGO is not set
|
|
||||||
# CONFIG_I2C_DEBUG_BUS is not set
|
|
||||||
# CONFIG_I2C_DEBUG_CHIP is not set
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Misc devices
|
# Misc devices
|
||||||
|
@ -772,6 +774,7 @@ CONFIG_FS_POSIX_ACL=y
|
||||||
# CONFIG_XFS_FS is not set
|
# CONFIG_XFS_FS is not set
|
||||||
# CONFIG_MINIX_FS is not set
|
# CONFIG_MINIX_FS is not set
|
||||||
# CONFIG_ROMFS_FS is not set
|
# CONFIG_ROMFS_FS is not set
|
||||||
|
CONFIG_INOTIFY=y
|
||||||
# CONFIG_QUOTA is not set
|
# CONFIG_QUOTA is not set
|
||||||
CONFIG_DNOTIFY=y
|
CONFIG_DNOTIFY=y
|
||||||
# CONFIG_AUTOFS_FS is not set
|
# CONFIG_AUTOFS_FS is not set
|
||||||
|
@ -814,8 +817,7 @@ CONFIG_RAMFS=y
|
||||||
# CONFIG_JFFS_FS is not set
|
# CONFIG_JFFS_FS is not set
|
||||||
CONFIG_JFFS2_FS=y
|
CONFIG_JFFS2_FS=y
|
||||||
CONFIG_JFFS2_FS_DEBUG=0
|
CONFIG_JFFS2_FS_DEBUG=0
|
||||||
# CONFIG_JFFS2_FS_NAND is not set
|
CONFIG_JFFS2_FS_WRITEBUFFER=y
|
||||||
# CONFIG_JFFS2_FS_NOR_ECC is not set
|
|
||||||
# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
|
# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
|
||||||
CONFIG_JFFS2_ZLIB=y
|
CONFIG_JFFS2_ZLIB=y
|
||||||
CONFIG_JFFS2_RTIME=y
|
CONFIG_JFFS2_RTIME=y
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#
|
#
|
||||||
# Automatically generated make config: don't edit
|
# Automatically generated make config: don't edit
|
||||||
# Linux kernel version: 2.6.13-rc2
|
# Linux kernel version: 2.6.13
|
||||||
# Thu Jul 7 16:49:20 2005
|
# Wed Sep 14 10:52:23 2005
|
||||||
#
|
#
|
||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_MMU=y
|
CONFIG_MMU=y
|
||||||
|
@ -136,7 +136,6 @@ CONFIG_PCI_NAMES=y
|
||||||
#
|
#
|
||||||
# Kernel Features
|
# Kernel Features
|
||||||
#
|
#
|
||||||
# CONFIG_SMP is not set
|
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
# CONFIG_NO_IDLE_HZ is not set
|
# CONFIG_NO_IDLE_HZ is not set
|
||||||
# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
|
# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
|
||||||
|
@ -179,6 +178,68 @@ CONFIG_BINFMT_ELF=y
|
||||||
#
|
#
|
||||||
# CONFIG_PM is not set
|
# CONFIG_PM is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Networking
|
||||||
|
#
|
||||||
|
CONFIG_NET=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Networking options
|
||||||
|
#
|
||||||
|
CONFIG_PACKET=y
|
||||||
|
CONFIG_PACKET_MMAP=y
|
||||||
|
CONFIG_UNIX=y
|
||||||
|
# CONFIG_NET_KEY is not set
|
||||||
|
CONFIG_INET=y
|
||||||
|
# CONFIG_IP_MULTICAST is not set
|
||||||
|
# CONFIG_IP_ADVANCED_ROUTER is not set
|
||||||
|
CONFIG_IP_FIB_HASH=y
|
||||||
|
CONFIG_IP_PNP=y
|
||||||
|
CONFIG_IP_PNP_DHCP=y
|
||||||
|
CONFIG_IP_PNP_BOOTP=y
|
||||||
|
# CONFIG_IP_PNP_RARP is not set
|
||||||
|
# CONFIG_NET_IPIP is not set
|
||||||
|
# CONFIG_NET_IPGRE is not set
|
||||||
|
# CONFIG_ARPD is not set
|
||||||
|
CONFIG_SYN_COOKIES=y
|
||||||
|
# CONFIG_INET_AH is not set
|
||||||
|
# CONFIG_INET_ESP is not set
|
||||||
|
# CONFIG_INET_IPCOMP is not set
|
||||||
|
# CONFIG_INET_TUNNEL is not set
|
||||||
|
# CONFIG_IP_TCPDIAG is not set
|
||||||
|
# CONFIG_IP_TCPDIAG_IPV6 is not set
|
||||||
|
# CONFIG_TCP_CONG_ADVANCED is not set
|
||||||
|
CONFIG_TCP_CONG_BIC=y
|
||||||
|
# CONFIG_IPV6 is not set
|
||||||
|
# CONFIG_NETFILTER is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# SCTP Configuration (EXPERIMENTAL)
|
||||||
|
#
|
||||||
|
# CONFIG_IP_SCTP is not set
|
||||||
|
# CONFIG_ATM is not set
|
||||||
|
# CONFIG_BRIDGE is not set
|
||||||
|
# CONFIG_VLAN_8021Q is not set
|
||||||
|
# CONFIG_DECNET is not set
|
||||||
|
# CONFIG_LLC2 is not set
|
||||||
|
# CONFIG_IPX is not set
|
||||||
|
# CONFIG_ATALK is not set
|
||||||
|
# CONFIG_X25 is not set
|
||||||
|
# CONFIG_LAPB is not set
|
||||||
|
# CONFIG_NET_DIVERT is not set
|
||||||
|
# CONFIG_ECONET is not set
|
||||||
|
# CONFIG_WAN_ROUTER is not set
|
||||||
|
# CONFIG_NET_SCHED is not set
|
||||||
|
# CONFIG_NET_CLS_ROUTE is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Network testing
|
||||||
|
#
|
||||||
|
# CONFIG_NET_PKTGEN is not set
|
||||||
|
# CONFIG_HAMRADIO is not set
|
||||||
|
# CONFIG_IRDA is not set
|
||||||
|
# CONFIG_BT is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Device Drivers
|
# Device Drivers
|
||||||
#
|
#
|
||||||
|
@ -249,6 +310,7 @@ CONFIG_MTD_COMPLEX_MAPPINGS=y
|
||||||
CONFIG_MTD_IXP2000=y
|
CONFIG_MTD_IXP2000=y
|
||||||
# CONFIG_MTD_EDB7312 is not set
|
# CONFIG_MTD_EDB7312 is not set
|
||||||
# CONFIG_MTD_PCI is not set
|
# CONFIG_MTD_PCI is not set
|
||||||
|
# CONFIG_MTD_PLATRAM is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Self-contained MTD device drivers
|
# Self-contained MTD device drivers
|
||||||
|
@ -335,72 +397,8 @@ CONFIG_IOSCHED_CFQ=y
|
||||||
# CONFIG_I2O is not set
|
# CONFIG_I2O is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Networking support
|
# Network device support
|
||||||
#
|
#
|
||||||
CONFIG_NET=y
|
|
||||||
|
|
||||||
#
|
|
||||||
# Networking options
|
|
||||||
#
|
|
||||||
CONFIG_PACKET=y
|
|
||||||
CONFIG_PACKET_MMAP=y
|
|
||||||
CONFIG_UNIX=y
|
|
||||||
# CONFIG_NET_KEY is not set
|
|
||||||
CONFIG_INET=y
|
|
||||||
# CONFIG_IP_MULTICAST is not set
|
|
||||||
# CONFIG_IP_ADVANCED_ROUTER is not set
|
|
||||||
CONFIG_IP_FIB_HASH=y
|
|
||||||
CONFIG_IP_PNP=y
|
|
||||||
CONFIG_IP_PNP_DHCP=y
|
|
||||||
CONFIG_IP_PNP_BOOTP=y
|
|
||||||
# CONFIG_IP_PNP_RARP is not set
|
|
||||||
# CONFIG_NET_IPIP is not set
|
|
||||||
# CONFIG_NET_IPGRE is not set
|
|
||||||
# CONFIG_ARPD is not set
|
|
||||||
CONFIG_SYN_COOKIES=y
|
|
||||||
# CONFIG_INET_AH is not set
|
|
||||||
# CONFIG_INET_ESP is not set
|
|
||||||
# CONFIG_INET_IPCOMP is not set
|
|
||||||
# CONFIG_INET_TUNNEL is not set
|
|
||||||
# CONFIG_IP_TCPDIAG is not set
|
|
||||||
# CONFIG_IP_TCPDIAG_IPV6 is not set
|
|
||||||
# CONFIG_TCP_CONG_ADVANCED is not set
|
|
||||||
CONFIG_TCP_CONG_BIC=y
|
|
||||||
# CONFIG_IPV6 is not set
|
|
||||||
# CONFIG_NETFILTER is not set
|
|
||||||
|
|
||||||
#
|
|
||||||
# SCTP Configuration (EXPERIMENTAL)
|
|
||||||
#
|
|
||||||
# CONFIG_IP_SCTP is not set
|
|
||||||
# CONFIG_ATM is not set
|
|
||||||
# CONFIG_BRIDGE is not set
|
|
||||||
# CONFIG_VLAN_8021Q is not set
|
|
||||||
# CONFIG_DECNET is not set
|
|
||||||
# CONFIG_LLC2 is not set
|
|
||||||
# CONFIG_IPX is not set
|
|
||||||
# CONFIG_ATALK is not set
|
|
||||||
# CONFIG_X25 is not set
|
|
||||||
# CONFIG_LAPB is not set
|
|
||||||
# CONFIG_NET_DIVERT is not set
|
|
||||||
# CONFIG_ECONET is not set
|
|
||||||
# CONFIG_WAN_ROUTER is not set
|
|
||||||
|
|
||||||
#
|
|
||||||
# QoS and/or fair queueing
|
|
||||||
#
|
|
||||||
# CONFIG_NET_SCHED is not set
|
|
||||||
# CONFIG_NET_CLS_ROUTE is not set
|
|
||||||
|
|
||||||
#
|
|
||||||
# Network testing
|
|
||||||
#
|
|
||||||
# CONFIG_NET_PKTGEN is not set
|
|
||||||
# CONFIG_NETPOLL is not set
|
|
||||||
# CONFIG_NET_POLL_CONTROLLER is not set
|
|
||||||
# CONFIG_HAMRADIO is not set
|
|
||||||
# CONFIG_IRDA is not set
|
|
||||||
# CONFIG_BT is not set
|
|
||||||
CONFIG_NETDEVICES=y
|
CONFIG_NETDEVICES=y
|
||||||
CONFIG_DUMMY=y
|
CONFIG_DUMMY=y
|
||||||
# CONFIG_BONDING is not set
|
# CONFIG_BONDING is not set
|
||||||
|
@ -510,6 +508,8 @@ CONFIG_DLCI_MAX=8
|
||||||
# CONFIG_SLIP is not set
|
# CONFIG_SLIP is not set
|
||||||
# CONFIG_SHAPER is not set
|
# CONFIG_SHAPER is not set
|
||||||
# CONFIG_NETCONSOLE is not set
|
# CONFIG_NETCONSOLE is not set
|
||||||
|
# CONFIG_NETPOLL is not set
|
||||||
|
# CONFIG_NET_POLL_CONTROLLER is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# ISDN subsystem
|
# ISDN subsystem
|
||||||
|
@ -636,7 +636,7 @@ CONFIG_I2C_ALGOBIT=y
|
||||||
# CONFIG_I2C_I810 is not set
|
# CONFIG_I2C_I810 is not set
|
||||||
# CONFIG_I2C_PIIX4 is not set
|
# CONFIG_I2C_PIIX4 is not set
|
||||||
# CONFIG_I2C_ISA is not set
|
# CONFIG_I2C_ISA is not set
|
||||||
# CONFIG_I2C_IXP2000 is not set
|
CONFIG_I2C_IXP2000=y
|
||||||
# CONFIG_I2C_NFORCE2 is not set
|
# CONFIG_I2C_NFORCE2 is not set
|
||||||
# CONFIG_I2C_PARPORT_LIGHT is not set
|
# CONFIG_I2C_PARPORT_LIGHT is not set
|
||||||
# CONFIG_I2C_PROSAVAGE is not set
|
# CONFIG_I2C_PROSAVAGE is not set
|
||||||
|
@ -650,11 +650,28 @@ CONFIG_I2C_ALGOBIT=y
|
||||||
# CONFIG_I2C_VIAPRO is not set
|
# CONFIG_I2C_VIAPRO is not set
|
||||||
# CONFIG_I2C_VOODOO3 is not set
|
# CONFIG_I2C_VOODOO3 is not set
|
||||||
# CONFIG_I2C_PCA_ISA is not set
|
# CONFIG_I2C_PCA_ISA is not set
|
||||||
|
CONFIG_I2C_SENSOR=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# Hardware Sensors Chip support
|
# Miscellaneous I2C Chip support
|
||||||
#
|
#
|
||||||
CONFIG_I2C_SENSOR=y
|
# CONFIG_SENSORS_DS1337 is not set
|
||||||
|
# CONFIG_SENSORS_DS1374 is not set
|
||||||
|
CONFIG_SENSORS_EEPROM=y
|
||||||
|
# CONFIG_SENSORS_PCF8574 is not set
|
||||||
|
# CONFIG_SENSORS_PCA9539 is not set
|
||||||
|
# CONFIG_SENSORS_PCF8591 is not set
|
||||||
|
# CONFIG_SENSORS_RTC8564 is not set
|
||||||
|
# CONFIG_SENSORS_MAX6875 is not set
|
||||||
|
# CONFIG_I2C_DEBUG_CORE is not set
|
||||||
|
# CONFIG_I2C_DEBUG_ALGO is not set
|
||||||
|
# CONFIG_I2C_DEBUG_BUS is not set
|
||||||
|
# CONFIG_I2C_DEBUG_CHIP is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Hardware Monitoring support
|
||||||
|
#
|
||||||
|
CONFIG_HWMON=y
|
||||||
# CONFIG_SENSORS_ADM1021 is not set
|
# CONFIG_SENSORS_ADM1021 is not set
|
||||||
# CONFIG_SENSORS_ADM1025 is not set
|
# CONFIG_SENSORS_ADM1025 is not set
|
||||||
# CONFIG_SENSORS_ADM1026 is not set
|
# CONFIG_SENSORS_ADM1026 is not set
|
||||||
|
@ -680,30 +697,15 @@ CONFIG_I2C_SENSOR=y
|
||||||
# CONFIG_SENSORS_LM92 is not set
|
# CONFIG_SENSORS_LM92 is not set
|
||||||
# CONFIG_SENSORS_MAX1619 is not set
|
# CONFIG_SENSORS_MAX1619 is not set
|
||||||
# CONFIG_SENSORS_PC87360 is not set
|
# CONFIG_SENSORS_PC87360 is not set
|
||||||
# CONFIG_SENSORS_SMSC47B397 is not set
|
|
||||||
# CONFIG_SENSORS_SIS5595 is not set
|
# CONFIG_SENSORS_SIS5595 is not set
|
||||||
# CONFIG_SENSORS_SMSC47M1 is not set
|
# CONFIG_SENSORS_SMSC47M1 is not set
|
||||||
|
# CONFIG_SENSORS_SMSC47B397 is not set
|
||||||
# CONFIG_SENSORS_VIA686A is not set
|
# CONFIG_SENSORS_VIA686A is not set
|
||||||
# CONFIG_SENSORS_W83781D is not set
|
# CONFIG_SENSORS_W83781D is not set
|
||||||
# CONFIG_SENSORS_W83L785TS is not set
|
# CONFIG_SENSORS_W83L785TS is not set
|
||||||
# CONFIG_SENSORS_W83627HF is not set
|
# CONFIG_SENSORS_W83627HF is not set
|
||||||
# CONFIG_SENSORS_W83627EHF is not set
|
# CONFIG_SENSORS_W83627EHF is not set
|
||||||
|
# CONFIG_HWMON_DEBUG_CHIP is not set
|
||||||
#
|
|
||||||
# Other I2C Chip support
|
|
||||||
#
|
|
||||||
# CONFIG_SENSORS_DS1337 is not set
|
|
||||||
# CONFIG_SENSORS_DS1374 is not set
|
|
||||||
CONFIG_SENSORS_EEPROM=y
|
|
||||||
# CONFIG_SENSORS_PCF8574 is not set
|
|
||||||
# CONFIG_SENSORS_PCA9539 is not set
|
|
||||||
# CONFIG_SENSORS_PCF8591 is not set
|
|
||||||
# CONFIG_SENSORS_RTC8564 is not set
|
|
||||||
# CONFIG_SENSORS_MAX6875 is not set
|
|
||||||
# CONFIG_I2C_DEBUG_CORE is not set
|
|
||||||
# CONFIG_I2C_DEBUG_ALGO is not set
|
|
||||||
# CONFIG_I2C_DEBUG_BUS is not set
|
|
||||||
# CONFIG_I2C_DEBUG_CHIP is not set
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Misc devices
|
# Misc devices
|
||||||
|
@ -771,6 +773,7 @@ CONFIG_FS_POSIX_ACL=y
|
||||||
# CONFIG_XFS_FS is not set
|
# CONFIG_XFS_FS is not set
|
||||||
# CONFIG_MINIX_FS is not set
|
# CONFIG_MINIX_FS is not set
|
||||||
# CONFIG_ROMFS_FS is not set
|
# CONFIG_ROMFS_FS is not set
|
||||||
|
CONFIG_INOTIFY=y
|
||||||
# CONFIG_QUOTA is not set
|
# CONFIG_QUOTA is not set
|
||||||
CONFIG_DNOTIFY=y
|
CONFIG_DNOTIFY=y
|
||||||
# CONFIG_AUTOFS_FS is not set
|
# CONFIG_AUTOFS_FS is not set
|
||||||
|
@ -813,8 +816,7 @@ CONFIG_RAMFS=y
|
||||||
# CONFIG_JFFS_FS is not set
|
# CONFIG_JFFS_FS is not set
|
||||||
CONFIG_JFFS2_FS=y
|
CONFIG_JFFS2_FS=y
|
||||||
CONFIG_JFFS2_FS_DEBUG=0
|
CONFIG_JFFS2_FS_DEBUG=0
|
||||||
# CONFIG_JFFS2_FS_NAND is not set
|
CONFIG_JFFS2_FS_WRITEBUFFER=y
|
||||||
# CONFIG_JFFS2_FS_NOR_ECC is not set
|
|
||||||
# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
|
# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
|
||||||
CONFIG_JFFS2_ZLIB=y
|
CONFIG_JFFS2_ZLIB=y
|
||||||
CONFIG_JFFS2_RTIME=y
|
CONFIG_JFFS2_RTIME=y
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#
|
#
|
||||||
# Automatically generated make config: don't edit
|
# Automatically generated make config: don't edit
|
||||||
# Linux kernel version: 2.6.13-rc2
|
# Linux kernel version: 2.6.13
|
||||||
# Thu Jul 7 16:49:13 2005
|
# Wed Sep 14 10:52:16 2005
|
||||||
#
|
#
|
||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_MMU=y
|
CONFIG_MMU=y
|
||||||
|
@ -136,7 +136,6 @@ CONFIG_PCI_NAMES=y
|
||||||
#
|
#
|
||||||
# Kernel Features
|
# Kernel Features
|
||||||
#
|
#
|
||||||
# CONFIG_SMP is not set
|
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
# CONFIG_NO_IDLE_HZ is not set
|
# CONFIG_NO_IDLE_HZ is not set
|
||||||
# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
|
# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
|
||||||
|
@ -179,6 +178,68 @@ CONFIG_BINFMT_ELF=y
|
||||||
#
|
#
|
||||||
# CONFIG_PM is not set
|
# CONFIG_PM is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Networking
|
||||||
|
#
|
||||||
|
CONFIG_NET=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Networking options
|
||||||
|
#
|
||||||
|
CONFIG_PACKET=y
|
||||||
|
CONFIG_PACKET_MMAP=y
|
||||||
|
CONFIG_UNIX=y
|
||||||
|
# CONFIG_NET_KEY is not set
|
||||||
|
CONFIG_INET=y
|
||||||
|
# CONFIG_IP_MULTICAST is not set
|
||||||
|
# CONFIG_IP_ADVANCED_ROUTER is not set
|
||||||
|
CONFIG_IP_FIB_HASH=y
|
||||||
|
CONFIG_IP_PNP=y
|
||||||
|
CONFIG_IP_PNP_DHCP=y
|
||||||
|
CONFIG_IP_PNP_BOOTP=y
|
||||||
|
# CONFIG_IP_PNP_RARP is not set
|
||||||
|
# CONFIG_NET_IPIP is not set
|
||||||
|
# CONFIG_NET_IPGRE is not set
|
||||||
|
# CONFIG_ARPD is not set
|
||||||
|
CONFIG_SYN_COOKIES=y
|
||||||
|
# CONFIG_INET_AH is not set
|
||||||
|
# CONFIG_INET_ESP is not set
|
||||||
|
# CONFIG_INET_IPCOMP is not set
|
||||||
|
# CONFIG_INET_TUNNEL is not set
|
||||||
|
# CONFIG_IP_TCPDIAG is not set
|
||||||
|
# CONFIG_IP_TCPDIAG_IPV6 is not set
|
||||||
|
# CONFIG_TCP_CONG_ADVANCED is not set
|
||||||
|
CONFIG_TCP_CONG_BIC=y
|
||||||
|
# CONFIG_IPV6 is not set
|
||||||
|
# CONFIG_NETFILTER is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# SCTP Configuration (EXPERIMENTAL)
|
||||||
|
#
|
||||||
|
# CONFIG_IP_SCTP is not set
|
||||||
|
# CONFIG_ATM is not set
|
||||||
|
# CONFIG_BRIDGE is not set
|
||||||
|
# CONFIG_VLAN_8021Q is not set
|
||||||
|
# CONFIG_DECNET is not set
|
||||||
|
# CONFIG_LLC2 is not set
|
||||||
|
# CONFIG_IPX is not set
|
||||||
|
# CONFIG_ATALK is not set
|
||||||
|
# CONFIG_X25 is not set
|
||||||
|
# CONFIG_LAPB is not set
|
||||||
|
# CONFIG_NET_DIVERT is not set
|
||||||
|
# CONFIG_ECONET is not set
|
||||||
|
# CONFIG_WAN_ROUTER is not set
|
||||||
|
# CONFIG_NET_SCHED is not set
|
||||||
|
# CONFIG_NET_CLS_ROUTE is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Network testing
|
||||||
|
#
|
||||||
|
# CONFIG_NET_PKTGEN is not set
|
||||||
|
# CONFIG_HAMRADIO is not set
|
||||||
|
# CONFIG_IRDA is not set
|
||||||
|
# CONFIG_BT is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Device Drivers
|
# Device Drivers
|
||||||
#
|
#
|
||||||
|
@ -249,6 +310,7 @@ CONFIG_MTD_COMPLEX_MAPPINGS=y
|
||||||
CONFIG_MTD_IXP2000=y
|
CONFIG_MTD_IXP2000=y
|
||||||
# CONFIG_MTD_EDB7312 is not set
|
# CONFIG_MTD_EDB7312 is not set
|
||||||
# CONFIG_MTD_PCI is not set
|
# CONFIG_MTD_PCI is not set
|
||||||
|
# CONFIG_MTD_PLATRAM is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Self-contained MTD device drivers
|
# Self-contained MTD device drivers
|
||||||
|
@ -335,72 +397,8 @@ CONFIG_IOSCHED_CFQ=y
|
||||||
# CONFIG_I2O is not set
|
# CONFIG_I2O is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Networking support
|
# Network device support
|
||||||
#
|
#
|
||||||
CONFIG_NET=y
|
|
||||||
|
|
||||||
#
|
|
||||||
# Networking options
|
|
||||||
#
|
|
||||||
CONFIG_PACKET=y
|
|
||||||
CONFIG_PACKET_MMAP=y
|
|
||||||
CONFIG_UNIX=y
|
|
||||||
# CONFIG_NET_KEY is not set
|
|
||||||
CONFIG_INET=y
|
|
||||||
# CONFIG_IP_MULTICAST is not set
|
|
||||||
# CONFIG_IP_ADVANCED_ROUTER is not set
|
|
||||||
CONFIG_IP_FIB_HASH=y
|
|
||||||
CONFIG_IP_PNP=y
|
|
||||||
CONFIG_IP_PNP_DHCP=y
|
|
||||||
CONFIG_IP_PNP_BOOTP=y
|
|
||||||
# CONFIG_IP_PNP_RARP is not set
|
|
||||||
# CONFIG_NET_IPIP is not set
|
|
||||||
# CONFIG_NET_IPGRE is not set
|
|
||||||
# CONFIG_ARPD is not set
|
|
||||||
CONFIG_SYN_COOKIES=y
|
|
||||||
# CONFIG_INET_AH is not set
|
|
||||||
# CONFIG_INET_ESP is not set
|
|
||||||
# CONFIG_INET_IPCOMP is not set
|
|
||||||
# CONFIG_INET_TUNNEL is not set
|
|
||||||
# CONFIG_IP_TCPDIAG is not set
|
|
||||||
# CONFIG_IP_TCPDIAG_IPV6 is not set
|
|
||||||
# CONFIG_TCP_CONG_ADVANCED is not set
|
|
||||||
CONFIG_TCP_CONG_BIC=y
|
|
||||||
# CONFIG_IPV6 is not set
|
|
||||||
# CONFIG_NETFILTER is not set
|
|
||||||
|
|
||||||
#
|
|
||||||
# SCTP Configuration (EXPERIMENTAL)
|
|
||||||
#
|
|
||||||
# CONFIG_IP_SCTP is not set
|
|
||||||
# CONFIG_ATM is not set
|
|
||||||
# CONFIG_BRIDGE is not set
|
|
||||||
# CONFIG_VLAN_8021Q is not set
|
|
||||||
# CONFIG_DECNET is not set
|
|
||||||
# CONFIG_LLC2 is not set
|
|
||||||
# CONFIG_IPX is not set
|
|
||||||
# CONFIG_ATALK is not set
|
|
||||||
# CONFIG_X25 is not set
|
|
||||||
# CONFIG_LAPB is not set
|
|
||||||
# CONFIG_NET_DIVERT is not set
|
|
||||||
# CONFIG_ECONET is not set
|
|
||||||
# CONFIG_WAN_ROUTER is not set
|
|
||||||
|
|
||||||
#
|
|
||||||
# QoS and/or fair queueing
|
|
||||||
#
|
|
||||||
# CONFIG_NET_SCHED is not set
|
|
||||||
# CONFIG_NET_CLS_ROUTE is not set
|
|
||||||
|
|
||||||
#
|
|
||||||
# Network testing
|
|
||||||
#
|
|
||||||
# CONFIG_NET_PKTGEN is not set
|
|
||||||
# CONFIG_NETPOLL is not set
|
|
||||||
# CONFIG_NET_POLL_CONTROLLER is not set
|
|
||||||
# CONFIG_HAMRADIO is not set
|
|
||||||
# CONFIG_IRDA is not set
|
|
||||||
# CONFIG_BT is not set
|
|
||||||
CONFIG_NETDEVICES=y
|
CONFIG_NETDEVICES=y
|
||||||
CONFIG_DUMMY=y
|
CONFIG_DUMMY=y
|
||||||
# CONFIG_BONDING is not set
|
# CONFIG_BONDING is not set
|
||||||
|
@ -511,6 +509,8 @@ CONFIG_DLCI_MAX=8
|
||||||
# CONFIG_SLIP is not set
|
# CONFIG_SLIP is not set
|
||||||
# CONFIG_SHAPER is not set
|
# CONFIG_SHAPER is not set
|
||||||
# CONFIG_NETCONSOLE is not set
|
# CONFIG_NETCONSOLE is not set
|
||||||
|
# CONFIG_NETPOLL is not set
|
||||||
|
# CONFIG_NET_POLL_CONTROLLER is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# ISDN subsystem
|
# ISDN subsystem
|
||||||
|
@ -637,7 +637,7 @@ CONFIG_I2C_ALGOBIT=y
|
||||||
# CONFIG_I2C_I810 is not set
|
# CONFIG_I2C_I810 is not set
|
||||||
# CONFIG_I2C_PIIX4 is not set
|
# CONFIG_I2C_PIIX4 is not set
|
||||||
# CONFIG_I2C_ISA is not set
|
# CONFIG_I2C_ISA is not set
|
||||||
# CONFIG_I2C_IXP2000 is not set
|
CONFIG_I2C_IXP2000=y
|
||||||
# CONFIG_I2C_NFORCE2 is not set
|
# CONFIG_I2C_NFORCE2 is not set
|
||||||
# CONFIG_I2C_PARPORT_LIGHT is not set
|
# CONFIG_I2C_PARPORT_LIGHT is not set
|
||||||
# CONFIG_I2C_PROSAVAGE is not set
|
# CONFIG_I2C_PROSAVAGE is not set
|
||||||
|
@ -651,11 +651,28 @@ CONFIG_I2C_ALGOBIT=y
|
||||||
# CONFIG_I2C_VIAPRO is not set
|
# CONFIG_I2C_VIAPRO is not set
|
||||||
# CONFIG_I2C_VOODOO3 is not set
|
# CONFIG_I2C_VOODOO3 is not set
|
||||||
# CONFIG_I2C_PCA_ISA is not set
|
# CONFIG_I2C_PCA_ISA is not set
|
||||||
|
CONFIG_I2C_SENSOR=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# Hardware Sensors Chip support
|
# Miscellaneous I2C Chip support
|
||||||
#
|
#
|
||||||
CONFIG_I2C_SENSOR=y
|
# CONFIG_SENSORS_DS1337 is not set
|
||||||
|
# CONFIG_SENSORS_DS1374 is not set
|
||||||
|
CONFIG_SENSORS_EEPROM=y
|
||||||
|
# CONFIG_SENSORS_PCF8574 is not set
|
||||||
|
# CONFIG_SENSORS_PCA9539 is not set
|
||||||
|
# CONFIG_SENSORS_PCF8591 is not set
|
||||||
|
# CONFIG_SENSORS_RTC8564 is not set
|
||||||
|
# CONFIG_SENSORS_MAX6875 is not set
|
||||||
|
# CONFIG_I2C_DEBUG_CORE is not set
|
||||||
|
# CONFIG_I2C_DEBUG_ALGO is not set
|
||||||
|
# CONFIG_I2C_DEBUG_BUS is not set
|
||||||
|
# CONFIG_I2C_DEBUG_CHIP is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Hardware Monitoring support
|
||||||
|
#
|
||||||
|
CONFIG_HWMON=y
|
||||||
# CONFIG_SENSORS_ADM1021 is not set
|
# CONFIG_SENSORS_ADM1021 is not set
|
||||||
# CONFIG_SENSORS_ADM1025 is not set
|
# CONFIG_SENSORS_ADM1025 is not set
|
||||||
# CONFIG_SENSORS_ADM1026 is not set
|
# CONFIG_SENSORS_ADM1026 is not set
|
||||||
|
@ -681,30 +698,15 @@ CONFIG_I2C_SENSOR=y
|
||||||
# CONFIG_SENSORS_LM92 is not set
|
# CONFIG_SENSORS_LM92 is not set
|
||||||
# CONFIG_SENSORS_MAX1619 is not set
|
# CONFIG_SENSORS_MAX1619 is not set
|
||||||
# CONFIG_SENSORS_PC87360 is not set
|
# CONFIG_SENSORS_PC87360 is not set
|
||||||
# CONFIG_SENSORS_SMSC47B397 is not set
|
|
||||||
# CONFIG_SENSORS_SIS5595 is not set
|
# CONFIG_SENSORS_SIS5595 is not set
|
||||||
# CONFIG_SENSORS_SMSC47M1 is not set
|
# CONFIG_SENSORS_SMSC47M1 is not set
|
||||||
|
# CONFIG_SENSORS_SMSC47B397 is not set
|
||||||
# CONFIG_SENSORS_VIA686A is not set
|
# CONFIG_SENSORS_VIA686A is not set
|
||||||
# CONFIG_SENSORS_W83781D is not set
|
# CONFIG_SENSORS_W83781D is not set
|
||||||
# CONFIG_SENSORS_W83L785TS is not set
|
# CONFIG_SENSORS_W83L785TS is not set
|
||||||
# CONFIG_SENSORS_W83627HF is not set
|
# CONFIG_SENSORS_W83627HF is not set
|
||||||
# CONFIG_SENSORS_W83627EHF is not set
|
# CONFIG_SENSORS_W83627EHF is not set
|
||||||
|
# CONFIG_HWMON_DEBUG_CHIP is not set
|
||||||
#
|
|
||||||
# Other I2C Chip support
|
|
||||||
#
|
|
||||||
# CONFIG_SENSORS_DS1337 is not set
|
|
||||||
# CONFIG_SENSORS_DS1374 is not set
|
|
||||||
CONFIG_SENSORS_EEPROM=y
|
|
||||||
# CONFIG_SENSORS_PCF8574 is not set
|
|
||||||
# CONFIG_SENSORS_PCA9539 is not set
|
|
||||||
# CONFIG_SENSORS_PCF8591 is not set
|
|
||||||
# CONFIG_SENSORS_RTC8564 is not set
|
|
||||||
# CONFIG_SENSORS_MAX6875 is not set
|
|
||||||
# CONFIG_I2C_DEBUG_CORE is not set
|
|
||||||
# CONFIG_I2C_DEBUG_ALGO is not set
|
|
||||||
# CONFIG_I2C_DEBUG_BUS is not set
|
|
||||||
# CONFIG_I2C_DEBUG_CHIP is not set
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Misc devices
|
# Misc devices
|
||||||
|
@ -772,6 +774,7 @@ CONFIG_FS_POSIX_ACL=y
|
||||||
# CONFIG_XFS_FS is not set
|
# CONFIG_XFS_FS is not set
|
||||||
# CONFIG_MINIX_FS is not set
|
# CONFIG_MINIX_FS is not set
|
||||||
# CONFIG_ROMFS_FS is not set
|
# CONFIG_ROMFS_FS is not set
|
||||||
|
CONFIG_INOTIFY=y
|
||||||
# CONFIG_QUOTA is not set
|
# CONFIG_QUOTA is not set
|
||||||
CONFIG_DNOTIFY=y
|
CONFIG_DNOTIFY=y
|
||||||
# CONFIG_AUTOFS_FS is not set
|
# CONFIG_AUTOFS_FS is not set
|
||||||
|
@ -814,8 +817,7 @@ CONFIG_RAMFS=y
|
||||||
# CONFIG_JFFS_FS is not set
|
# CONFIG_JFFS_FS is not set
|
||||||
CONFIG_JFFS2_FS=y
|
CONFIG_JFFS2_FS=y
|
||||||
CONFIG_JFFS2_FS_DEBUG=0
|
CONFIG_JFFS2_FS_DEBUG=0
|
||||||
# CONFIG_JFFS2_FS_NAND is not set
|
CONFIG_JFFS2_FS_WRITEBUFFER=y
|
||||||
# CONFIG_JFFS2_FS_NOR_ECC is not set
|
|
||||||
# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
|
# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
|
||||||
CONFIG_JFFS2_ZLIB=y
|
CONFIG_JFFS2_ZLIB=y
|
||||||
CONFIG_JFFS2_RTIME=y
|
CONFIG_JFFS2_RTIME=y
|
||||||
|
|
|
@ -178,7 +178,7 @@ int __down_trylock(struct semaphore * sem)
|
||||||
* registers (r0 to r3 and lr), but not ip, as we use it as a return
|
* registers (r0 to r3 and lr), but not ip, as we use it as a return
|
||||||
* value in some cases..
|
* value in some cases..
|
||||||
*/
|
*/
|
||||||
asm(" .section .sched.text,\"ax\" \n\
|
asm(" .section .sched.text,\"ax\",%progbits \n\
|
||||||
.align 5 \n\
|
.align 5 \n\
|
||||||
.globl __down_failed \n\
|
.globl __down_failed \n\
|
||||||
__down_failed: \n\
|
__down_failed: \n\
|
||||||
|
|
|
@ -624,6 +624,9 @@ void __attribute__((noreturn)) __bug(const char *file, int line, void *data)
|
||||||
printk(" - extra data = %p", data);
|
printk(" - extra data = %p", data);
|
||||||
printk("\n");
|
printk("\n");
|
||||||
*(int *)0 = 0;
|
*(int *)0 = 0;
|
||||||
|
|
||||||
|
/* Avoid "noreturn function does return" */
|
||||||
|
for (;;);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(__bug);
|
EXPORT_SYMBOL(__bug);
|
||||||
|
|
||||||
|
|
|
@ -23,20 +23,20 @@ SECTIONS
|
||||||
*(.init.text)
|
*(.init.text)
|
||||||
_einittext = .;
|
_einittext = .;
|
||||||
__proc_info_begin = .;
|
__proc_info_begin = .;
|
||||||
*(.proc.info)
|
*(.proc.info.init)
|
||||||
__proc_info_end = .;
|
__proc_info_end = .;
|
||||||
__arch_info_begin = .;
|
__arch_info_begin = .;
|
||||||
*(.arch.info)
|
*(.arch.info.init)
|
||||||
__arch_info_end = .;
|
__arch_info_end = .;
|
||||||
__tagtable_begin = .;
|
__tagtable_begin = .;
|
||||||
*(.taglist)
|
*(.taglist.init)
|
||||||
__tagtable_end = .;
|
__tagtable_end = .;
|
||||||
. = ALIGN(16);
|
. = ALIGN(16);
|
||||||
__setup_start = .;
|
__setup_start = .;
|
||||||
*(.init.setup)
|
*(.init.setup)
|
||||||
__setup_end = .;
|
__setup_end = .;
|
||||||
__early_begin = .;
|
__early_begin = .;
|
||||||
*(__early_param)
|
*(.early_param.init)
|
||||||
__early_end = .;
|
__early_end = .;
|
||||||
__initcall_start = .;
|
__initcall_start = .;
|
||||||
*(.initcall1.init)
|
*(.initcall1.init)
|
||||||
|
|
|
@ -123,6 +123,7 @@ static void __init ixdp425_init(void)
|
||||||
platform_add_devices(ixdp425_devices, ARRAY_SIZE(ixdp425_devices));
|
platform_add_devices(ixdp425_devices, ARRAY_SIZE(ixdp425_devices));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef CONFIG_ARCH_IXDP465
|
||||||
MACHINE_START(IXDP425, "Intel IXDP425 Development Platform")
|
MACHINE_START(IXDP425, "Intel IXDP425 Development Platform")
|
||||||
/* Maintainer: MontaVista Software, Inc. */
|
/* Maintainer: MontaVista Software, Inc. */
|
||||||
.phys_ram = PHYS_OFFSET,
|
.phys_ram = PHYS_OFFSET,
|
||||||
|
@ -134,7 +135,9 @@ MACHINE_START(IXDP425, "Intel IXDP425 Development Platform")
|
||||||
.boot_params = 0x0100,
|
.boot_params = 0x0100,
|
||||||
.init_machine = ixdp425_init,
|
.init_machine = ixdp425_init,
|
||||||
MACHINE_END
|
MACHINE_END
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_MACH_IXDP465
|
||||||
MACHINE_START(IXDP465, "Intel IXDP465 Development Platform")
|
MACHINE_START(IXDP465, "Intel IXDP465 Development Platform")
|
||||||
/* Maintainer: MontaVista Software, Inc. */
|
/* Maintainer: MontaVista Software, Inc. */
|
||||||
.phys_ram = PHYS_OFFSET,
|
.phys_ram = PHYS_OFFSET,
|
||||||
|
@ -146,7 +149,9 @@ MACHINE_START(IXDP465, "Intel IXDP465 Development Platform")
|
||||||
.boot_params = 0x0100,
|
.boot_params = 0x0100,
|
||||||
.init_machine = ixdp425_init,
|
.init_machine = ixdp425_init,
|
||||||
MACHINE_END
|
MACHINE_END
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_ARCH_PRPMC1100
|
||||||
MACHINE_START(IXCDP1100, "Intel IXCDP1100 Development Platform")
|
MACHINE_START(IXCDP1100, "Intel IXCDP1100 Development Platform")
|
||||||
/* Maintainer: MontaVista Software, Inc. */
|
/* Maintainer: MontaVista Software, Inc. */
|
||||||
.phys_ram = PHYS_OFFSET,
|
.phys_ram = PHYS_OFFSET,
|
||||||
|
@ -158,6 +163,7 @@ MACHINE_START(IXCDP1100, "Intel IXCDP1100 Development Platform")
|
||||||
.boot_params = 0x0100,
|
.boot_params = 0x0100,
|
||||||
.init_machine = ixdp425_init,
|
.init_machine = ixdp425_init,
|
||||||
MACHINE_END
|
MACHINE_END
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Avila is functionally equivalent to IXDP425 except that it adds
|
* Avila is functionally equivalent to IXDP425 except that it adds
|
||||||
|
|
|
@ -198,13 +198,10 @@ static void corgi_mci_setpower(struct device *dev, unsigned int vdd)
|
||||||
{
|
{
|
||||||
struct pxamci_platform_data* p_d = dev->platform_data;
|
struct pxamci_platform_data* p_d = dev->platform_data;
|
||||||
|
|
||||||
if (( 1 << vdd) & p_d->ocr_mask) {
|
if (( 1 << vdd) & p_d->ocr_mask)
|
||||||
printk(KERN_DEBUG "%s: on\n", __FUNCTION__);
|
|
||||||
GPSR1 = GPIO_bit(CORGI_GPIO_SD_PWR);
|
GPSR1 = GPIO_bit(CORGI_GPIO_SD_PWR);
|
||||||
} else {
|
else
|
||||||
printk(KERN_DEBUG "%s: off\n", __FUNCTION__);
|
|
||||||
GPCR1 = GPIO_bit(CORGI_GPIO_SD_PWR);
|
GPCR1 = GPIO_bit(CORGI_GPIO_SD_PWR);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int corgi_mci_get_ro(struct device *dev)
|
static int corgi_mci_get_ro(struct device *dev)
|
||||||
|
@ -259,6 +256,16 @@ static struct platform_device *devices[] __initdata = {
|
||||||
|
|
||||||
static void __init corgi_init(void)
|
static void __init corgi_init(void)
|
||||||
{
|
{
|
||||||
|
/* setup sleep mode values */
|
||||||
|
PWER = 0x00000002;
|
||||||
|
PFER = 0x00000000;
|
||||||
|
PRER = 0x00000002;
|
||||||
|
PGSR0 = 0x0158C000;
|
||||||
|
PGSR1 = 0x00FF0080;
|
||||||
|
PGSR2 = 0x0001C004;
|
||||||
|
/* Stop 3.6MHz and drive HIGH to PCMCIA and CS */
|
||||||
|
PCFR |= PCFR_OPDE;
|
||||||
|
|
||||||
corgi_ssp_set_machinfo(&corgi_ssp_machinfo);
|
corgi_ssp_set_machinfo(&corgi_ssp_machinfo);
|
||||||
|
|
||||||
pxa_gpio_mode(CORGI_GPIO_USB_PULLUP | GPIO_OUT);
|
pxa_gpio_mode(CORGI_GPIO_USB_PULLUP | GPIO_OUT);
|
||||||
|
@ -285,42 +292,14 @@ static void __init fixup_corgi(struct machine_desc *desc,
|
||||||
mi->bank[0].size = (64*1024*1024);
|
mi->bank[0].size = (64*1024*1024);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __init corgi_init_irq(void)
|
|
||||||
{
|
|
||||||
pxa_init_irq();
|
|
||||||
}
|
|
||||||
|
|
||||||
static struct map_desc corgi_io_desc[] __initdata = {
|
|
||||||
/* virtual physical length */
|
|
||||||
/* { 0xf1000000, 0x08000000, 0x01000000, MT_DEVICE },*/ /* LCDC (readable for Qt driver) */
|
|
||||||
/* { 0xef700000, 0x10800000, 0x00001000, MT_DEVICE },*/ /* SCOOP */
|
|
||||||
{ 0xef800000, 0x00000000, 0x00800000, MT_DEVICE }, /* Boot Flash */
|
|
||||||
};
|
|
||||||
|
|
||||||
static void __init corgi_map_io(void)
|
|
||||||
{
|
|
||||||
pxa_map_io();
|
|
||||||
iotable_init(corgi_io_desc,ARRAY_SIZE(corgi_io_desc));
|
|
||||||
|
|
||||||
/* setup sleep mode values */
|
|
||||||
PWER = 0x00000002;
|
|
||||||
PFER = 0x00000000;
|
|
||||||
PRER = 0x00000002;
|
|
||||||
PGSR0 = 0x0158C000;
|
|
||||||
PGSR1 = 0x00FF0080;
|
|
||||||
PGSR2 = 0x0001C004;
|
|
||||||
/* Stop 3.6MHz and drive HIGH to PCMCIA and CS */
|
|
||||||
PCFR |= PCFR_OPDE;
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef CONFIG_MACH_CORGI
|
#ifdef CONFIG_MACH_CORGI
|
||||||
MACHINE_START(CORGI, "SHARP Corgi")
|
MACHINE_START(CORGI, "SHARP Corgi")
|
||||||
.phys_ram = 0xa0000000,
|
.phys_ram = 0xa0000000,
|
||||||
.phys_io = 0x40000000,
|
.phys_io = 0x40000000,
|
||||||
.io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
|
.io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
|
||||||
.fixup = fixup_corgi,
|
.fixup = fixup_corgi,
|
||||||
.map_io = corgi_map_io,
|
.map_io = pxa_map_io,
|
||||||
.init_irq = corgi_init_irq,
|
.init_irq = pxa_init_irq,
|
||||||
.init_machine = corgi_init,
|
.init_machine = corgi_init,
|
||||||
.timer = &pxa_timer,
|
.timer = &pxa_timer,
|
||||||
MACHINE_END
|
MACHINE_END
|
||||||
|
@ -332,8 +311,8 @@ MACHINE_START(SHEPHERD, "SHARP Shepherd")
|
||||||
.phys_io = 0x40000000,
|
.phys_io = 0x40000000,
|
||||||
.io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
|
.io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
|
||||||
.fixup = fixup_corgi,
|
.fixup = fixup_corgi,
|
||||||
.map_io = corgi_map_io,
|
.map_io = pxa_map_io,
|
||||||
.init_irq = corgi_init_irq,
|
.init_irq = pxa_init_irq,
|
||||||
.init_machine = corgi_init,
|
.init_machine = corgi_init,
|
||||||
.timer = &pxa_timer,
|
.timer = &pxa_timer,
|
||||||
MACHINE_END
|
MACHINE_END
|
||||||
|
@ -345,8 +324,8 @@ MACHINE_START(HUSKY, "SHARP Husky")
|
||||||
.phys_io = 0x40000000,
|
.phys_io = 0x40000000,
|
||||||
.io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
|
.io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
|
||||||
.fixup = fixup_corgi,
|
.fixup = fixup_corgi,
|
||||||
.map_io = corgi_map_io,
|
.map_io = pxa_map_io,
|
||||||
.init_irq = corgi_init_irq,
|
.init_irq = pxa_init_irq,
|
||||||
.init_machine = corgi_init,
|
.init_machine = corgi_init,
|
||||||
.timer = &pxa_timer,
|
.timer = &pxa_timer,
|
||||||
MACHINE_END
|
MACHINE_END
|
||||||
|
|
|
@ -146,6 +146,11 @@ static struct pxa2xx_udc_mach_info udc_info __initdata = {
|
||||||
// no D+ pullup; lubbock can't connect/disconnect in software
|
// no D+ pullup; lubbock can't connect/disconnect in software
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static struct platform_device lub_audio_device = {
|
||||||
|
.name = "pxa2xx-ac97",
|
||||||
|
.id = -1,
|
||||||
|
};
|
||||||
|
|
||||||
static struct resource sa1111_resources[] = {
|
static struct resource sa1111_resources[] = {
|
||||||
[0] = {
|
[0] = {
|
||||||
.start = 0x10000000,
|
.start = 0x10000000,
|
||||||
|
@ -195,6 +200,7 @@ static struct platform_device smc91x_device = {
|
||||||
|
|
||||||
static struct platform_device *devices[] __initdata = {
|
static struct platform_device *devices[] __initdata = {
|
||||||
&sa1111_device,
|
&sa1111_device,
|
||||||
|
&lub_audio_device,
|
||||||
&smc91x_device,
|
&smc91x_device,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -30,6 +30,8 @@
|
||||||
|
|
||||||
#include <asm/arch/pxa-regs.h>
|
#include <asm/arch/pxa-regs.h>
|
||||||
#include <asm/arch/irq.h>
|
#include <asm/arch/irq.h>
|
||||||
|
#include <asm/arch/mmc.h>
|
||||||
|
#include <asm/arch/udc.h>
|
||||||
#include <asm/arch/poodle.h>
|
#include <asm/arch/poodle.h>
|
||||||
#include <asm/arch/pxafb.h>
|
#include <asm/arch/pxafb.h>
|
||||||
|
|
||||||
|
@ -93,6 +95,83 @@ static struct platform_device locomo_device = {
|
||||||
.resource = locomo_resources,
|
.resource = locomo_resources,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* MMC/SD Device
|
||||||
|
*
|
||||||
|
* The card detect interrupt isn't debounced so we delay it by 250ms
|
||||||
|
* to give the card a chance to fully insert/eject.
|
||||||
|
*/
|
||||||
|
static struct pxamci_platform_data poodle_mci_platform_data;
|
||||||
|
|
||||||
|
static int poodle_mci_init(struct device *dev, irqreturn_t (*poodle_detect_int)(int, void *, struct pt_regs *), void *data)
|
||||||
|
{
|
||||||
|
int err;
|
||||||
|
|
||||||
|
/* setup GPIO for PXA25x MMC controller */
|
||||||
|
pxa_gpio_mode(GPIO6_MMCCLK_MD);
|
||||||
|
pxa_gpio_mode(GPIO8_MMCCS0_MD);
|
||||||
|
pxa_gpio_mode(POODLE_GPIO_nSD_DETECT | GPIO_IN);
|
||||||
|
pxa_gpio_mode(POODLE_GPIO_SD_PWR | GPIO_OUT);
|
||||||
|
|
||||||
|
poodle_mci_platform_data.detect_delay = msecs_to_jiffies(250);
|
||||||
|
|
||||||
|
err = request_irq(POODLE_IRQ_GPIO_nSD_DETECT, poodle_detect_int, SA_INTERRUPT,
|
||||||
|
"MMC card detect", data);
|
||||||
|
if (err) {
|
||||||
|
printk(KERN_ERR "poodle_mci_init: MMC/SD: can't request MMC card detect IRQ\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
set_irq_type(POODLE_IRQ_GPIO_nSD_DETECT, IRQT_BOTHEDGE);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void poodle_mci_setpower(struct device *dev, unsigned int vdd)
|
||||||
|
{
|
||||||
|
struct pxamci_platform_data* p_d = dev->platform_data;
|
||||||
|
|
||||||
|
if (( 1 << vdd) & p_d->ocr_mask)
|
||||||
|
GPSR1 = GPIO_bit(POODLE_GPIO_SD_PWR);
|
||||||
|
else
|
||||||
|
GPCR1 = GPIO_bit(POODLE_GPIO_SD_PWR);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void poodle_mci_exit(struct device *dev, void *data)
|
||||||
|
{
|
||||||
|
free_irq(POODLE_IRQ_GPIO_nSD_DETECT, data);
|
||||||
|
}
|
||||||
|
|
||||||
|
static struct pxamci_platform_data poodle_mci_platform_data = {
|
||||||
|
.ocr_mask = MMC_VDD_32_33|MMC_VDD_33_34,
|
||||||
|
.init = poodle_mci_init,
|
||||||
|
.setpower = poodle_mci_setpower,
|
||||||
|
.exit = poodle_mci_exit,
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* USB Device Controller
|
||||||
|
*/
|
||||||
|
static void poodle_udc_command(int cmd)
|
||||||
|
{
|
||||||
|
switch(cmd) {
|
||||||
|
case PXA2XX_UDC_CMD_CONNECT:
|
||||||
|
GPSR(POODLE_GPIO_USB_PULLUP) = GPIO_bit(POODLE_GPIO_USB_PULLUP);
|
||||||
|
break;
|
||||||
|
case PXA2XX_UDC_CMD_DISCONNECT:
|
||||||
|
GPCR(POODLE_GPIO_USB_PULLUP) = GPIO_bit(POODLE_GPIO_USB_PULLUP);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static struct pxa2xx_udc_mach_info udc_info __initdata = {
|
||||||
|
/* no connect GPIO; poodle can't tell connection status */
|
||||||
|
.udc_command = poodle_udc_command,
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
/* PXAFB device */
|
/* PXAFB device */
|
||||||
static struct pxafb_mach_info poodle_fb_info __initdata = {
|
static struct pxafb_mach_info poodle_fb_info __initdata = {
|
||||||
.pixclock = 144700,
|
.pixclock = 144700,
|
||||||
|
@ -126,6 +205,15 @@ static void __init poodle_init(void)
|
||||||
{
|
{
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
|
/* setup sleep mode values */
|
||||||
|
PWER = 0x00000002;
|
||||||
|
PFER = 0x00000000;
|
||||||
|
PRER = 0x00000002;
|
||||||
|
PGSR0 = 0x00008000;
|
||||||
|
PGSR1 = 0x003F0202;
|
||||||
|
PGSR2 = 0x0001C000;
|
||||||
|
PCFR |= PCFR_OPDE;
|
||||||
|
|
||||||
/* cpu initialize */
|
/* cpu initialize */
|
||||||
/* Pgsr Register */
|
/* Pgsr Register */
|
||||||
PGSR0 = 0x0146dd80;
|
PGSR0 = 0x0146dd80;
|
||||||
|
@ -155,6 +243,9 @@ static void __init poodle_init(void)
|
||||||
GPSR2 = 0x00000000;
|
GPSR2 = 0x00000000;
|
||||||
|
|
||||||
set_pxa_fb_info(&poodle_fb_info);
|
set_pxa_fb_info(&poodle_fb_info);
|
||||||
|
pxa_gpio_mode(POODLE_GPIO_USB_PULLUP | GPIO_OUT);
|
||||||
|
pxa_set_udc_info(&udc_info);
|
||||||
|
pxa_set_mci_info(&poodle_mci_platform_data);
|
||||||
|
|
||||||
scoop_num = 1;
|
scoop_num = 1;
|
||||||
scoop_devs = &poodle_pcmcia_scoop[0];
|
scoop_devs = &poodle_pcmcia_scoop[0];
|
||||||
|
@ -171,32 +262,12 @@ static void __init fixup_poodle(struct machine_desc *desc,
|
||||||
sharpsl_save_param();
|
sharpsl_save_param();
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct map_desc poodle_io_desc[] __initdata = {
|
|
||||||
/* virtual physical length */
|
|
||||||
{ 0xef800000, 0x00000000, 0x00800000, MT_DEVICE }, /* Boot Flash */
|
|
||||||
};
|
|
||||||
|
|
||||||
static void __init poodle_map_io(void)
|
|
||||||
{
|
|
||||||
pxa_map_io();
|
|
||||||
iotable_init(poodle_io_desc, ARRAY_SIZE(poodle_io_desc));
|
|
||||||
|
|
||||||
/* setup sleep mode values */
|
|
||||||
PWER = 0x00000002;
|
|
||||||
PFER = 0x00000000;
|
|
||||||
PRER = 0x00000002;
|
|
||||||
PGSR0 = 0x00008000;
|
|
||||||
PGSR1 = 0x003F0202;
|
|
||||||
PGSR2 = 0x0001C000;
|
|
||||||
PCFR |= PCFR_OPDE;
|
|
||||||
}
|
|
||||||
|
|
||||||
MACHINE_START(POODLE, "SHARP Poodle")
|
MACHINE_START(POODLE, "SHARP Poodle")
|
||||||
.phys_ram = 0xa0000000,
|
.phys_ram = 0xa0000000,
|
||||||
.phys_io = 0x40000000,
|
.phys_io = 0x40000000,
|
||||||
.io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
|
.io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
|
||||||
.fixup = fixup_poodle,
|
.fixup = fixup_poodle,
|
||||||
.map_io = poodle_map_io,
|
.map_io = pxa_map_io,
|
||||||
.init_irq = pxa_init_irq,
|
.init_irq = pxa_init_irq,
|
||||||
.timer = &pxa_timer,
|
.timer = &pxa_timer,
|
||||||
.init_machine = poodle_init,
|
.init_machine = poodle_init,
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
*
|
*
|
||||||
* Modifications:
|
* Modifications:
|
||||||
* 02-May-2005 BJD Copied from mach-bast.c
|
* 02-May-2005 BJD Copied from mach-bast.c
|
||||||
|
* 20-Sep-2005 BJD Added static to non-exported items
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
|
@ -232,7 +233,7 @@ static struct s3c24xx_board anubis_board __initdata = {
|
||||||
.clocks_count = ARRAY_SIZE(anubis_clocks)
|
.clocks_count = ARRAY_SIZE(anubis_clocks)
|
||||||
};
|
};
|
||||||
|
|
||||||
void __init anubis_map_io(void)
|
static void __init anubis_map_io(void)
|
||||||
{
|
{
|
||||||
/* initialise the clocks */
|
/* initialise the clocks */
|
||||||
|
|
||||||
|
|
|
@ -31,6 +31,7 @@
|
||||||
* 17-Jul-2005 BJD Changed to platform device for SuperIO 16550s
|
* 17-Jul-2005 BJD Changed to platform device for SuperIO 16550s
|
||||||
* 25-Jul-2005 BJD Removed ASIX static mappings
|
* 25-Jul-2005 BJD Removed ASIX static mappings
|
||||||
* 27-Jul-2005 BJD Ensure maximum frequency of i2c bus
|
* 27-Jul-2005 BJD Ensure maximum frequency of i2c bus
|
||||||
|
* 20-Sep-2005 BJD Added static to non-exported items
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
|
@ -428,7 +429,7 @@ static struct s3c24xx_board bast_board __initdata = {
|
||||||
.clocks_count = ARRAY_SIZE(bast_clocks)
|
.clocks_count = ARRAY_SIZE(bast_clocks)
|
||||||
};
|
};
|
||||||
|
|
||||||
void __init bast_map_io(void)
|
static void __init bast_map_io(void)
|
||||||
{
|
{
|
||||||
/* initialise the clocks */
|
/* initialise the clocks */
|
||||||
|
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
* 10-Jan-2005 BJD Removed include of s3c2410.h
|
* 10-Jan-2005 BJD Removed include of s3c2410.h
|
||||||
* 14-Jan-2005 BJD Added clock init
|
* 14-Jan-2005 BJD Added clock init
|
||||||
* 10-Mar-2005 LCVR Changed S3C2410_VA to S3C24XX_VA
|
* 10-Mar-2005 LCVR Changed S3C2410_VA to S3C24XX_VA
|
||||||
|
* 20-Sep-2005 BJD Added static to non-exported items
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
|
@ -147,7 +148,7 @@ static struct s3c24xx_board h1940_board __initdata = {
|
||||||
.devices_count = ARRAY_SIZE(h1940_devices)
|
.devices_count = ARRAY_SIZE(h1940_devices)
|
||||||
};
|
};
|
||||||
|
|
||||||
void __init h1940_map_io(void)
|
static void __init h1940_map_io(void)
|
||||||
{
|
{
|
||||||
s3c24xx_init_io(h1940_iodesc, ARRAY_SIZE(h1940_iodesc));
|
s3c24xx_init_io(h1940_iodesc, ARRAY_SIZE(h1940_iodesc));
|
||||||
s3c24xx_init_clocks(0);
|
s3c24xx_init_clocks(0);
|
||||||
|
@ -155,13 +156,13 @@ void __init h1940_map_io(void)
|
||||||
s3c24xx_set_board(&h1940_board);
|
s3c24xx_set_board(&h1940_board);
|
||||||
}
|
}
|
||||||
|
|
||||||
void __init h1940_init_irq(void)
|
static void __init h1940_init_irq(void)
|
||||||
{
|
{
|
||||||
s3c24xx_init_irq();
|
s3c24xx_init_irq();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void __init h1940_init(void)
|
static void __init h1940_init(void)
|
||||||
{
|
{
|
||||||
set_s3c2410fb_info(&h1940_lcdcfg);
|
set_s3c2410fb_info(&h1940_lcdcfg);
|
||||||
}
|
}
|
||||||
|
|
|
@ -97,7 +97,7 @@ static struct s3c24xx_board n30_board __initdata = {
|
||||||
.devices_count = ARRAY_SIZE(n30_devices)
|
.devices_count = ARRAY_SIZE(n30_devices)
|
||||||
};
|
};
|
||||||
|
|
||||||
void __init n30_map_io(void)
|
static void __init n30_map_io(void)
|
||||||
{
|
{
|
||||||
s3c24xx_init_io(n30_iodesc, ARRAY_SIZE(n30_iodesc));
|
s3c24xx_init_io(n30_iodesc, ARRAY_SIZE(n30_iodesc));
|
||||||
s3c24xx_init_clocks(0);
|
s3c24xx_init_clocks(0);
|
||||||
|
@ -105,14 +105,14 @@ void __init n30_map_io(void)
|
||||||
s3c24xx_set_board(&n30_board);
|
s3c24xx_set_board(&n30_board);
|
||||||
}
|
}
|
||||||
|
|
||||||
void __init n30_init_irq(void)
|
static void __init n30_init_irq(void)
|
||||||
{
|
{
|
||||||
s3c24xx_init_irq();
|
s3c24xx_init_irq();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* GPB3 is the line that controls the pull-up for the USB D+ line */
|
/* GPB3 is the line that controls the pull-up for the USB D+ line */
|
||||||
|
|
||||||
void __init n30_init(void)
|
static void __init n30_init(void)
|
||||||
{
|
{
|
||||||
s3c_device_i2c.dev.platform_data = &n30_i2ccfg;
|
s3c_device_i2c.dev.platform_data = &n30_i2ccfg;
|
||||||
|
|
||||||
|
|
|
@ -136,7 +136,7 @@ static void __init nexcoder_sensorboard_init(void)
|
||||||
s3c2410_gpio_cfgpin(S3C2410_GPF2, S3C2410_GPF2_OUTP); // CAM_GPIO6 => CAM_PWRDN
|
s3c2410_gpio_cfgpin(S3C2410_GPF2, S3C2410_GPF2_OUTP); // CAM_GPIO6 => CAM_PWRDN
|
||||||
}
|
}
|
||||||
|
|
||||||
void __init nexcoder_map_io(void)
|
static void __init nexcoder_map_io(void)
|
||||||
{
|
{
|
||||||
s3c24xx_init_io(nexcoder_iodesc, ARRAY_SIZE(nexcoder_iodesc));
|
s3c24xx_init_io(nexcoder_iodesc, ARRAY_SIZE(nexcoder_iodesc));
|
||||||
s3c24xx_init_clocks(0);
|
s3c24xx_init_clocks(0);
|
||||||
|
|
|
@ -105,7 +105,7 @@ static struct s3c24xx_board otom11_board __initdata = {
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
void __init otom11_map_io(void)
|
static void __init otom11_map_io(void)
|
||||||
{
|
{
|
||||||
s3c24xx_init_io(otom11_iodesc, ARRAY_SIZE(otom11_iodesc));
|
s3c24xx_init_io(otom11_iodesc, ARRAY_SIZE(otom11_iodesc));
|
||||||
s3c24xx_init_clocks(0);
|
s3c24xx_init_clocks(0);
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
* 14-Jan-2005 BJD Added new clock init
|
* 14-Jan-2005 BJD Added new clock init
|
||||||
* 10-Mar-2005 LCVR Changed S3C2410_VA to S3C24XX_VA
|
* 10-Mar-2005 LCVR Changed S3C2410_VA to S3C24XX_VA
|
||||||
* 14-Mar-2005 BJD Fixed __iomem warnings
|
* 14-Mar-2005 BJD Fixed __iomem warnings
|
||||||
|
* 20-Sep-2005 BJD Added static to non-exported items
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
|
@ -108,7 +109,7 @@ static struct s3c24xx_board rx3715_board __initdata = {
|
||||||
.devices_count = ARRAY_SIZE(rx3715_devices)
|
.devices_count = ARRAY_SIZE(rx3715_devices)
|
||||||
};
|
};
|
||||||
|
|
||||||
void __init rx3715_map_io(void)
|
static void __init rx3715_map_io(void)
|
||||||
{
|
{
|
||||||
s3c24xx_init_io(rx3715_iodesc, ARRAY_SIZE(rx3715_iodesc));
|
s3c24xx_init_io(rx3715_iodesc, ARRAY_SIZE(rx3715_iodesc));
|
||||||
s3c24xx_init_clocks(16934000);
|
s3c24xx_init_clocks(16934000);
|
||||||
|
@ -116,7 +117,7 @@ void __init rx3715_map_io(void)
|
||||||
s3c24xx_set_board(&rx3715_board);
|
s3c24xx_set_board(&rx3715_board);
|
||||||
}
|
}
|
||||||
|
|
||||||
void __init rx3715_init_irq(void)
|
static void __init rx3715_init_irq(void)
|
||||||
{
|
{
|
||||||
s3c24xx_init_irq();
|
s3c24xx_init_irq();
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
* Ben Dooks <ben@simtec.co.uk>
|
* Ben Dooks <ben@simtec.co.uk>
|
||||||
*
|
*
|
||||||
* 10-Mar-2005 LCVR Changed S3C2410_VA to S3C24XX_VA
|
* 10-Mar-2005 LCVR Changed S3C2410_VA to S3C24XX_VA
|
||||||
|
* 20-Sep-2005 BJD Added static to non-exported items
|
||||||
*
|
*
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
|
|
||||||
|
@ -97,7 +98,7 @@ static struct s3c24xx_board smdk2410_board __initdata = {
|
||||||
.devices_count = ARRAY_SIZE(smdk2410_devices)
|
.devices_count = ARRAY_SIZE(smdk2410_devices)
|
||||||
};
|
};
|
||||||
|
|
||||||
void __init smdk2410_map_io(void)
|
static void __init smdk2410_map_io(void)
|
||||||
{
|
{
|
||||||
s3c24xx_init_io(smdk2410_iodesc, ARRAY_SIZE(smdk2410_iodesc));
|
s3c24xx_init_io(smdk2410_iodesc, ARRAY_SIZE(smdk2410_iodesc));
|
||||||
s3c24xx_init_clocks(0);
|
s3c24xx_init_clocks(0);
|
||||||
|
@ -105,7 +106,7 @@ void __init smdk2410_map_io(void)
|
||||||
s3c24xx_set_board(&smdk2410_board);
|
s3c24xx_set_board(&smdk2410_board);
|
||||||
}
|
}
|
||||||
|
|
||||||
void __init smdk2410_init_irq(void)
|
static void __init smdk2410_init_irq(void)
|
||||||
{
|
{
|
||||||
s3c24xx_init_irq();
|
s3c24xx_init_irq();
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
* 22-Feb-2005 BJD Updated for 2.6.11-rc5 relesa
|
* 22-Feb-2005 BJD Updated for 2.6.11-rc5 relesa
|
||||||
* 10-Mar-2005 LCVR Replaced S3C2410_VA by S3C24XX_VA
|
* 10-Mar-2005 LCVR Replaced S3C2410_VA by S3C24XX_VA
|
||||||
* 14-Mar-2005 BJD void __iomem fixes
|
* 14-Mar-2005 BJD void __iomem fixes
|
||||||
|
* 20-Sep-2005 BJD Added static to non-exported items
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
|
@ -98,7 +99,7 @@ static struct s3c24xx_board smdk2440_board __initdata = {
|
||||||
.devices_count = ARRAY_SIZE(smdk2440_devices)
|
.devices_count = ARRAY_SIZE(smdk2440_devices)
|
||||||
};
|
};
|
||||||
|
|
||||||
void __init smdk2440_map_io(void)
|
static void __init smdk2440_map_io(void)
|
||||||
{
|
{
|
||||||
s3c24xx_init_io(smdk2440_iodesc, ARRAY_SIZE(smdk2440_iodesc));
|
s3c24xx_init_io(smdk2440_iodesc, ARRAY_SIZE(smdk2440_iodesc));
|
||||||
s3c24xx_init_clocks(16934400);
|
s3c24xx_init_clocks(16934400);
|
||||||
|
@ -106,7 +107,7 @@ void __init smdk2440_map_io(void)
|
||||||
s3c24xx_set_board(&smdk2440_board);
|
s3c24xx_set_board(&smdk2440_board);
|
||||||
}
|
}
|
||||||
|
|
||||||
void __init smdk2440_machine_init(void)
|
static void __init smdk2440_machine_init(void)
|
||||||
{
|
{
|
||||||
/* Configure the LEDs (even if we have no LED support)*/
|
/* Configure the LEDs (even if we have no LED support)*/
|
||||||
|
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
* 10-Mar-2005 LCVR Changed S3C2410_VA to S3C24XX_VA
|
* 10-Mar-2005 LCVR Changed S3C2410_VA to S3C24XX_VA
|
||||||
* 14-Mar-2006 BJD void __iomem fixes
|
* 14-Mar-2006 BJD void __iomem fixes
|
||||||
* 22-Jun-2006 BJD Added DM9000 platform information
|
* 22-Jun-2006 BJD Added DM9000 platform information
|
||||||
|
* 20-Sep-2005 BJD Added static to non-exported items
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
|
@ -347,7 +348,7 @@ static void vr1000_power_off(void)
|
||||||
s3c2410_gpio_setpin(S3C2410_GPB9, 1);
|
s3c2410_gpio_setpin(S3C2410_GPB9, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void __init vr1000_map_io(void)
|
static void __init vr1000_map_io(void)
|
||||||
{
|
{
|
||||||
/* initialise clock sources */
|
/* initialise clock sources */
|
||||||
|
|
||||||
|
|
|
@ -111,12 +111,11 @@ static struct mtd_partition collie_partitions[] = {
|
||||||
|
|
||||||
static void collie_set_vpp(int vpp)
|
static void collie_set_vpp(int vpp)
|
||||||
{
|
{
|
||||||
write_scoop_reg(SCOOP_GPCR, read_scoop_reg(SCOOP_GPCR) | COLLIE_SCP_VPEN);
|
write_scoop_reg(&colliescoop_device.dev, SCOOP_GPCR, read_scoop_reg(SCOOP_GPCR) | COLLIE_SCP_VPEN);
|
||||||
if (vpp) {
|
if (vpp)
|
||||||
write_scoop_reg(SCOOP_GPWR, read_scoop_reg(SCOOP_GPWR) | COLLIE_SCP_VPEN);
|
write_scoop_reg(&colliescoop_device.dev, SCOOP_GPWR, read_scoop_reg(SCOOP_GPWR) | COLLIE_SCP_VPEN);
|
||||||
} else {
|
else
|
||||||
write_scoop_reg(SCOOP_GPWR, read_scoop_reg(SCOOP_GPWR) & ~COLLIE_SCP_VPEN);
|
write_scoop_reg(&colliescoop_device.dev, SCOOP_GPWR, read_scoop_reg(SCOOP_GPWR) & ~COLLIE_SCP_VPEN);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct flash_platform_data collie_flash_data = {
|
static struct flash_platform_data collie_flash_data = {
|
||||||
|
|
|
@ -39,3 +39,6 @@ extern void sa11x0_set_ssp_data(struct sa11x0_ssp_plat_ops *ops);
|
||||||
|
|
||||||
struct irda_platform_data;
|
struct irda_platform_data;
|
||||||
void sa11x0_set_irda_data(struct irda_platform_data *irda);
|
void sa11x0_set_irda_data(struct irda_platform_data *irda);
|
||||||
|
|
||||||
|
struct mcp_plat_data;
|
||||||
|
void sa11x0_set_mcp_data(struct mcp_plat_data *data);
|
||||||
|
|
|
@ -233,7 +233,17 @@ do_page_fault(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
|
||||||
if (in_interrupt() || !mm)
|
if (in_interrupt() || !mm)
|
||||||
goto no_context;
|
goto no_context;
|
||||||
|
|
||||||
down_read(&mm->mmap_sem);
|
/*
|
||||||
|
* As per x86, we may deadlock here. However, since the kernel only
|
||||||
|
* validly references user space from well defined areas of the code,
|
||||||
|
* we can bug out early if this is from code which shouldn't.
|
||||||
|
*/
|
||||||
|
if (!down_read_trylock(&mm->mmap_sem)) {
|
||||||
|
if (!user_mode(regs) && !search_exception_tables(regs->ARM_pc))
|
||||||
|
goto no_context;
|
||||||
|
down_read(&mm->mmap_sem);
|
||||||
|
}
|
||||||
|
|
||||||
fault = __do_page_fault(mm, addr, fsr, tsk);
|
fault = __do_page_fault(mm, addr, fsr, tsk);
|
||||||
up_read(&mm->mmap_sem);
|
up_read(&mm->mmap_sem);
|
||||||
|
|
||||||
|
|
|
@ -509,7 +509,7 @@ cpu_arm1020_name:
|
||||||
|
|
||||||
.align
|
.align
|
||||||
|
|
||||||
.section ".proc.info", #alloc, #execinstr
|
.section ".proc.info.init", #alloc, #execinstr
|
||||||
|
|
||||||
.type __arm1020_proc_info,#object
|
.type __arm1020_proc_info,#object
|
||||||
__arm1020_proc_info:
|
__arm1020_proc_info:
|
||||||
|
|
|
@ -491,7 +491,7 @@ cpu_arm1020e_name:
|
||||||
|
|
||||||
.align
|
.align
|
||||||
|
|
||||||
.section ".proc.info", #alloc, #execinstr
|
.section ".proc.info.init", #alloc, #execinstr
|
||||||
|
|
||||||
.type __arm1020e_proc_info,#object
|
.type __arm1020e_proc_info,#object
|
||||||
__arm1020e_proc_info:
|
__arm1020e_proc_info:
|
||||||
|
|
|
@ -473,7 +473,7 @@ cpu_arm1022_name:
|
||||||
|
|
||||||
.align
|
.align
|
||||||
|
|
||||||
.section ".proc.info", #alloc, #execinstr
|
.section ".proc.info.init", #alloc, #execinstr
|
||||||
|
|
||||||
.type __arm1022_proc_info,#object
|
.type __arm1022_proc_info,#object
|
||||||
__arm1022_proc_info:
|
__arm1022_proc_info:
|
||||||
|
|
|
@ -469,7 +469,7 @@ cpu_arm1026_name:
|
||||||
|
|
||||||
.align
|
.align
|
||||||
|
|
||||||
.section ".proc.info", #alloc, #execinstr
|
.section ".proc.info.init", #alloc, #execinstr
|
||||||
|
|
||||||
.type __arm1026_proc_info,#object
|
.type __arm1026_proc_info,#object
|
||||||
__arm1026_proc_info:
|
__arm1026_proc_info:
|
||||||
|
|
|
@ -332,7 +332,7 @@ cpu_arm710_name:
|
||||||
|
|
||||||
.align
|
.align
|
||||||
|
|
||||||
.section ".proc.info", #alloc, #execinstr
|
.section ".proc.info.init", #alloc, #execinstr
|
||||||
|
|
||||||
.type __arm6_proc_info, #object
|
.type __arm6_proc_info, #object
|
||||||
__arm6_proc_info:
|
__arm6_proc_info:
|
||||||
|
|
|
@ -222,7 +222,7 @@ cpu_arm720_name:
|
||||||
* See linux/include/asm-arm/procinfo.h for a definition of this structure.
|
* See linux/include/asm-arm/procinfo.h for a definition of this structure.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
.section ".proc.info", #alloc, #execinstr
|
.section ".proc.info.init", #alloc, #execinstr
|
||||||
|
|
||||||
.type __arm710_proc_info, #object
|
.type __arm710_proc_info, #object
|
||||||
__arm710_proc_info:
|
__arm710_proc_info:
|
||||||
|
|
|
@ -452,7 +452,7 @@ cpu_arm920_name:
|
||||||
|
|
||||||
.align
|
.align
|
||||||
|
|
||||||
.section ".proc.info", #alloc, #execinstr
|
.section ".proc.info.init", #alloc, #execinstr
|
||||||
|
|
||||||
.type __arm920_proc_info,#object
|
.type __arm920_proc_info,#object
|
||||||
__arm920_proc_info:
|
__arm920_proc_info:
|
||||||
|
|
|
@ -456,7 +456,7 @@ cpu_arm922_name:
|
||||||
|
|
||||||
.align
|
.align
|
||||||
|
|
||||||
.section ".proc.info", #alloc, #execinstr
|
.section ".proc.info.init", #alloc, #execinstr
|
||||||
|
|
||||||
.type __arm922_proc_info,#object
|
.type __arm922_proc_info,#object
|
||||||
__arm922_proc_info:
|
__arm922_proc_info:
|
||||||
|
|
|
@ -521,7 +521,7 @@ cpu_arm925_name:
|
||||||
|
|
||||||
.align
|
.align
|
||||||
|
|
||||||
.section ".proc.info", #alloc, #execinstr
|
.section ".proc.info.init", #alloc, #execinstr
|
||||||
|
|
||||||
.type __arm925_proc_info,#object
|
.type __arm925_proc_info,#object
|
||||||
__arm925_proc_info:
|
__arm925_proc_info:
|
||||||
|
|
|
@ -471,7 +471,7 @@ cpu_arm926_name:
|
||||||
|
|
||||||
.align
|
.align
|
||||||
|
|
||||||
.section ".proc.info", #alloc, #execinstr
|
.section ".proc.info.init", #alloc, #execinstr
|
||||||
|
|
||||||
.type __arm926_proc_info,#object
|
.type __arm926_proc_info,#object
|
||||||
__arm926_proc_info:
|
__arm926_proc_info:
|
||||||
|
|
|
@ -249,7 +249,7 @@ cpu_sa110_name:
|
||||||
|
|
||||||
.align
|
.align
|
||||||
|
|
||||||
.section ".proc.info", #alloc, #execinstr
|
.section ".proc.info.init", #alloc, #execinstr
|
||||||
|
|
||||||
.type __sa110_proc_info,#object
|
.type __sa110_proc_info,#object
|
||||||
__sa110_proc_info:
|
__sa110_proc_info:
|
||||||
|
|
|
@ -280,7 +280,7 @@ cpu_sa1110_name:
|
||||||
|
|
||||||
.align
|
.align
|
||||||
|
|
||||||
.section ".proc.info", #alloc, #execinstr
|
.section ".proc.info.init", #alloc, #execinstr
|
||||||
|
|
||||||
.type __sa1100_proc_info,#object
|
.type __sa1100_proc_info,#object
|
||||||
__sa1100_proc_info:
|
__sa1100_proc_info:
|
||||||
|
|
|
@ -240,7 +240,7 @@ cpu_elf_name:
|
||||||
.size cpu_elf_name, . - cpu_elf_name
|
.size cpu_elf_name, . - cpu_elf_name
|
||||||
.align
|
.align
|
||||||
|
|
||||||
.section ".proc.info", #alloc, #execinstr
|
.section ".proc.info.init", #alloc, #execinstr
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Match any ARMv6 processor core.
|
* Match any ARMv6 processor core.
|
||||||
|
|
|
@ -578,7 +578,7 @@ cpu_pxa270_name:
|
||||||
|
|
||||||
.align
|
.align
|
||||||
|
|
||||||
.section ".proc.info", #alloc, #execinstr
|
.section ".proc.info.init", #alloc, #execinstr
|
||||||
|
|
||||||
.type __80200_proc_info,#object
|
.type __80200_proc_info,#object
|
||||||
__80200_proc_info:
|
__80200_proc_info:
|
||||||
|
|
|
@ -1,74 +0,0 @@
|
||||||
/*
|
|
||||||
* Bright Star Engineering Inc.
|
|
||||||
*
|
|
||||||
* code for readng parameters from the
|
|
||||||
* parameter blocks of the boot block
|
|
||||||
* flash memory
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
static int strcmp(const char *s1, const char *s2)
|
|
||||||
{
|
|
||||||
while (*s1 != '\0' && *s1 == *s2)
|
|
||||||
{
|
|
||||||
s1++;
|
|
||||||
s2++;
|
|
||||||
}
|
|
||||||
|
|
||||||
return (*(unsigned char *) s1) - (*(unsigned char *) s2);
|
|
||||||
}
|
|
||||||
|
|
||||||
struct pblk_t {
|
|
||||||
char type;
|
|
||||||
unsigned short size;
|
|
||||||
};
|
|
||||||
|
|
||||||
static char *bse_getflashparam(char *name) {
|
|
||||||
unsigned int esize;
|
|
||||||
char *q,*r;
|
|
||||||
unsigned char *p,*e;
|
|
||||||
struct pblk_t *thepb = (struct pblk_t *) 0x00004000;
|
|
||||||
struct pblk_t *altpb = (struct pblk_t *) 0x00006000;
|
|
||||||
if (thepb->type&1) {
|
|
||||||
if (altpb->type&1) {
|
|
||||||
/* no valid param block */
|
|
||||||
return (char*)0;
|
|
||||||
} else {
|
|
||||||
/* altpb is valid */
|
|
||||||
struct pblk_t *tmp;
|
|
||||||
tmp = thepb;
|
|
||||||
thepb = altpb;
|
|
||||||
altpb = tmp;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
p = (char*)thepb + sizeof(struct pblk_t);
|
|
||||||
e = p + thepb->size;
|
|
||||||
while (p < e) {
|
|
||||||
q = p;
|
|
||||||
esize = *p;
|
|
||||||
if (esize == 0xFF) break;
|
|
||||||
if (esize == 0) break;
|
|
||||||
if (esize > 127) {
|
|
||||||
esize = (esize&0x7F)<<8 | p[1];
|
|
||||||
q++;
|
|
||||||
}
|
|
||||||
q++;
|
|
||||||
r=q;
|
|
||||||
if (*r && ((name == 0) || (!strcmp(name,r)))) {
|
|
||||||
while (*q++) ;
|
|
||||||
return q;
|
|
||||||
}
|
|
||||||
p+=esize;
|
|
||||||
}
|
|
||||||
return (char*)0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void bse_setup(void) {
|
|
||||||
/* extract the linux cmdline from flash */
|
|
||||||
char *name=bse_getflashparam("linuxboot");
|
|
||||||
char *x = (char *)0xc0000100;
|
|
||||||
if (name) {
|
|
||||||
while (*name) *x++=*name++;
|
|
||||||
}
|
|
||||||
*x=0;
|
|
||||||
}
|
|
|
@ -908,11 +908,6 @@ config IRQBALANCE
|
||||||
The default yes will allow the kernel to do irq load balancing.
|
The default yes will allow the kernel to do irq load balancing.
|
||||||
Saying no will keep the kernel from doing irq load balancing.
|
Saying no will keep the kernel from doing irq load balancing.
|
||||||
|
|
||||||
config HAVE_DEC_LOCK
|
|
||||||
bool
|
|
||||||
depends on (SMP || PREEMPT) && X86_CMPXCHG
|
|
||||||
default y
|
|
||||||
|
|
||||||
# turning this on wastes a bunch of space.
|
# turning this on wastes a bunch of space.
|
||||||
# Summit needs it only when NUMA is on
|
# Summit needs it only when NUMA is on
|
||||||
config BOOT_IOREMAP
|
config BOOT_IOREMAP
|
||||||
|
|
|
@ -7,7 +7,6 @@
|
||||||
#include <linux/pci.h>
|
#include <linux/pci.h>
|
||||||
#include <asm/pci-direct.h>
|
#include <asm/pci-direct.h>
|
||||||
#include <asm/acpi.h>
|
#include <asm/acpi.h>
|
||||||
#include <asm/apic.h>
|
|
||||||
|
|
||||||
static int __init check_bridge(int vendor, int device)
|
static int __init check_bridge(int vendor, int device)
|
||||||
{
|
{
|
||||||
|
@ -16,15 +15,6 @@ static int __init check_bridge(int vendor, int device)
|
||||||
if (vendor == PCI_VENDOR_ID_NVIDIA) {
|
if (vendor == PCI_VENDOR_ID_NVIDIA) {
|
||||||
acpi_skip_timer_override = 1;
|
acpi_skip_timer_override = 1;
|
||||||
}
|
}
|
||||||
#ifdef CONFIG_X86_LOCAL_APIC
|
|
||||||
/*
|
|
||||||
* ATI IXP chipsets get double timer interrupts.
|
|
||||||
* For now just do this for all ATI chipsets.
|
|
||||||
* FIXME: this needs to be checked for the non ACPI case too.
|
|
||||||
*/
|
|
||||||
if (vendor == PCI_VENDOR_ID_ATI)
|
|
||||||
disable_timer_pin_1 = 1;
|
|
||||||
#endif
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,4 +7,3 @@ lib-y = checksum.o delay.o usercopy.o getuser.o putuser.o memcpy.o strstr.o \
|
||||||
bitops.o
|
bitops.o
|
||||||
|
|
||||||
lib-$(CONFIG_X86_USE_3DNOW) += mmx.o
|
lib-$(CONFIG_X86_USE_3DNOW) += mmx.o
|
||||||
lib-$(CONFIG_HAVE_DEC_LOCK) += dec_and_lock.o
|
|
||||||
|
|
|
@ -1,42 +0,0 @@
|
||||||
/*
|
|
||||||
* x86 version of "atomic_dec_and_lock()" using
|
|
||||||
* the atomic "cmpxchg" instruction.
|
|
||||||
*
|
|
||||||
* (For CPU's lacking cmpxchg, we use the slow
|
|
||||||
* generic version, and this one never even gets
|
|
||||||
* compiled).
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <linux/spinlock.h>
|
|
||||||
#include <linux/module.h>
|
|
||||||
#include <asm/atomic.h>
|
|
||||||
|
|
||||||
int _atomic_dec_and_lock(atomic_t *atomic, spinlock_t *lock)
|
|
||||||
{
|
|
||||||
int counter;
|
|
||||||
int newcount;
|
|
||||||
|
|
||||||
repeat:
|
|
||||||
counter = atomic_read(atomic);
|
|
||||||
newcount = counter-1;
|
|
||||||
|
|
||||||
if (!newcount)
|
|
||||||
goto slow_path;
|
|
||||||
|
|
||||||
asm volatile("lock; cmpxchgl %1,%2"
|
|
||||||
:"=a" (newcount)
|
|
||||||
:"r" (newcount), "m" (atomic->counter), "0" (counter));
|
|
||||||
|
|
||||||
/* If the above failed, "eax" will have changed */
|
|
||||||
if (newcount != counter)
|
|
||||||
goto repeat;
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
slow_path:
|
|
||||||
spin_lock(lock);
|
|
||||||
if (atomic_dec_and_test(atomic))
|
|
||||||
return 1;
|
|
||||||
spin_unlock(lock);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL(_atomic_dec_and_lock);
|
|
|
@ -298,11 +298,6 @@ config PREEMPT
|
||||||
|
|
||||||
source "mm/Kconfig"
|
source "mm/Kconfig"
|
||||||
|
|
||||||
config HAVE_DEC_LOCK
|
|
||||||
bool
|
|
||||||
depends on (SMP || PREEMPT)
|
|
||||||
default y
|
|
||||||
|
|
||||||
config IA32_SUPPORT
|
config IA32_SUPPORT
|
||||||
bool "Support for Linux/x86 binaries"
|
bool "Support for Linux/x86 binaries"
|
||||||
help
|
help
|
||||||
|
|
|
@ -82,17 +82,7 @@ unwcheck: vmlinux
|
||||||
archclean:
|
archclean:
|
||||||
$(Q)$(MAKE) $(clean)=$(boot)
|
$(Q)$(MAKE) $(clean)=$(boot)
|
||||||
|
|
||||||
archprepare: include/asm-ia64/.offsets.h.stamp
|
CLEAN_FILES += vmlinux.gz bootloader
|
||||||
|
|
||||||
include/asm-ia64/.offsets.h.stamp:
|
|
||||||
mkdir -p include/asm-ia64
|
|
||||||
[ -s include/asm-ia64/asm-offsets.h ] \
|
|
||||||
|| echo "#define IA64_TASK_SIZE 0" > include/asm-ia64/asm-offsets.h
|
|
||||||
touch $@
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLEAN_FILES += vmlinux.gz bootloader include/asm-ia64/.offsets.h.stamp
|
|
||||||
|
|
||||||
boot: lib/lib.a vmlinux
|
boot: lib/lib.a vmlinux
|
||||||
$(Q)$(MAKE) $(build)=$(boot) $@
|
$(Q)$(MAKE) $(build)=$(boot) $@
|
||||||
|
|
|
@ -216,12 +216,6 @@ ia32_setup_arg_pages (struct linux_binprm *bprm, int executable_stack)
|
||||||
if (!mpnt)
|
if (!mpnt)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
if (security_vm_enough_memory((IA32_STACK_TOP - (PAGE_MASK & (unsigned long) bprm->p))
|
|
||||||
>> PAGE_SHIFT)) {
|
|
||||||
kmem_cache_free(vm_area_cachep, mpnt);
|
|
||||||
return -ENOMEM;
|
|
||||||
}
|
|
||||||
|
|
||||||
memset(mpnt, 0, sizeof(*mpnt));
|
memset(mpnt, 0, sizeof(*mpnt));
|
||||||
|
|
||||||
down_write(¤t->mm->mmap_sem);
|
down_write(¤t->mm->mmap_sem);
|
||||||
|
|
|
@ -899,7 +899,7 @@ int acpi_register_ioapic(acpi_handle handle, u64 phys_addr, u32 gsi_base)
|
||||||
if ((err = iosapic_init(phys_addr, gsi_base)))
|
if ((err = iosapic_init(phys_addr, gsi_base)))
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
#if CONFIG_ACPI_NUMA
|
#ifdef CONFIG_ACPI_NUMA
|
||||||
acpi_map_iosapic(handle, 0, NULL, NULL);
|
acpi_map_iosapic(handle, 0, NULL, NULL);
|
||||||
#endif /* CONFIG_ACPI_NUMA */
|
#endif /* CONFIG_ACPI_NUMA */
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
* to extract and format the required data.
|
* to extract and format the required data.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#define ASM_OFFSETS_C 1
|
||||||
#include <linux/config.h>
|
#include <linux/config.h>
|
||||||
|
|
||||||
#include <linux/sched.h>
|
#include <linux/sched.h>
|
||||||
|
|
|
@ -491,7 +491,7 @@ GLOBAL_ENTRY(prefetch_stack)
|
||||||
;;
|
;;
|
||||||
lfetch.fault [r16], 128
|
lfetch.fault [r16], 128
|
||||||
br.ret.sptk.many rp
|
br.ret.sptk.many rp
|
||||||
END(prefetch_switch_stack)
|
END(prefetch_stack)
|
||||||
|
|
||||||
GLOBAL_ENTRY(execve)
|
GLOBAL_ENTRY(execve)
|
||||||
mov r15=__NR_execve // put syscall number in place
|
mov r15=__NR_execve // put syscall number in place
|
||||||
|
|
|
@ -84,23 +84,23 @@ mca_page_isolate(unsigned long paddr)
|
||||||
struct page *p;
|
struct page *p;
|
||||||
|
|
||||||
/* whether physical address is valid or not */
|
/* whether physical address is valid or not */
|
||||||
if ( !ia64_phys_addr_valid(paddr) )
|
if (!ia64_phys_addr_valid(paddr))
|
||||||
return ISOLATE_NG;
|
return ISOLATE_NG;
|
||||||
|
|
||||||
/* convert physical address to physical page number */
|
/* convert physical address to physical page number */
|
||||||
p = pfn_to_page(paddr>>PAGE_SHIFT);
|
p = pfn_to_page(paddr>>PAGE_SHIFT);
|
||||||
|
|
||||||
/* check whether a page number have been already registered or not */
|
/* check whether a page number have been already registered or not */
|
||||||
for( i = 0; i < num_page_isolate; i++ )
|
for (i = 0; i < num_page_isolate; i++)
|
||||||
if( page_isolate[i] == p )
|
if (page_isolate[i] == p)
|
||||||
return ISOLATE_OK; /* already listed */
|
return ISOLATE_OK; /* already listed */
|
||||||
|
|
||||||
/* limitation check */
|
/* limitation check */
|
||||||
if( num_page_isolate == MAX_PAGE_ISOLATE )
|
if (num_page_isolate == MAX_PAGE_ISOLATE)
|
||||||
return ISOLATE_NG;
|
return ISOLATE_NG;
|
||||||
|
|
||||||
/* kick pages having attribute 'SLAB' or 'Reserved' */
|
/* kick pages having attribute 'SLAB' or 'Reserved' */
|
||||||
if( PageSlab(p) || PageReserved(p) )
|
if (PageSlab(p) || PageReserved(p))
|
||||||
return ISOLATE_NG;
|
return ISOLATE_NG;
|
||||||
|
|
||||||
/* add attribute 'Reserved' and register the page */
|
/* add attribute 'Reserved' and register the page */
|
||||||
|
@ -139,10 +139,10 @@ mca_handler_bh(unsigned long paddr)
|
||||||
* @peidx: pointer to index of processor error section
|
* @peidx: pointer to index of processor error section
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static void
|
static void
|
||||||
mca_make_peidx(sal_log_processor_info_t *slpi, peidx_table_t *peidx)
|
mca_make_peidx(sal_log_processor_info_t *slpi, peidx_table_t *peidx)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* calculate the start address of
|
* calculate the start address of
|
||||||
* "struct cpuid_info" and "sal_processor_static_info_t".
|
* "struct cpuid_info" and "sal_processor_static_info_t".
|
||||||
*/
|
*/
|
||||||
|
@ -164,7 +164,7 @@ mca_make_peidx(sal_log_processor_info_t *slpi, peidx_table_t *peidx)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* mca_make_slidx - Make index of SAL error record
|
* mca_make_slidx - Make index of SAL error record
|
||||||
* @buffer: pointer to SAL error record
|
* @buffer: pointer to SAL error record
|
||||||
* @slidx: pointer to index of SAL error record
|
* @slidx: pointer to index of SAL error record
|
||||||
*
|
*
|
||||||
|
@ -172,12 +172,12 @@ mca_make_peidx(sal_log_processor_info_t *slpi, peidx_table_t *peidx)
|
||||||
* 1 if record has platform error / 0 if not
|
* 1 if record has platform error / 0 if not
|
||||||
*/
|
*/
|
||||||
#define LOG_INDEX_ADD_SECT_PTR(sect, ptr) \
|
#define LOG_INDEX_ADD_SECT_PTR(sect, ptr) \
|
||||||
{ slidx_list_t *hl = &slidx_pool.buffer[slidx_pool.cur_idx]; \
|
{slidx_list_t *hl = &slidx_pool.buffer[slidx_pool.cur_idx]; \
|
||||||
hl->hdr = ptr; \
|
hl->hdr = ptr; \
|
||||||
list_add(&hl->list, &(sect)); \
|
list_add(&hl->list, &(sect)); \
|
||||||
slidx_pool.cur_idx = (slidx_pool.cur_idx + 1)%slidx_pool.max_idx; }
|
slidx_pool.cur_idx = (slidx_pool.cur_idx + 1)%slidx_pool.max_idx; }
|
||||||
|
|
||||||
static int
|
static int
|
||||||
mca_make_slidx(void *buffer, slidx_table_t *slidx)
|
mca_make_slidx(void *buffer, slidx_table_t *slidx)
|
||||||
{
|
{
|
||||||
int platform_err = 0;
|
int platform_err = 0;
|
||||||
|
@ -214,28 +214,36 @@ mca_make_slidx(void *buffer, slidx_table_t *slidx)
|
||||||
sp = (sal_log_section_hdr_t *)((char*)buffer + ercd_pos);
|
sp = (sal_log_section_hdr_t *)((char*)buffer + ercd_pos);
|
||||||
if (!efi_guidcmp(sp->guid, SAL_PROC_DEV_ERR_SECT_GUID)) {
|
if (!efi_guidcmp(sp->guid, SAL_PROC_DEV_ERR_SECT_GUID)) {
|
||||||
LOG_INDEX_ADD_SECT_PTR(slidx->proc_err, sp);
|
LOG_INDEX_ADD_SECT_PTR(slidx->proc_err, sp);
|
||||||
} else if (!efi_guidcmp(sp->guid, SAL_PLAT_MEM_DEV_ERR_SECT_GUID)) {
|
} else if (!efi_guidcmp(sp->guid,
|
||||||
|
SAL_PLAT_MEM_DEV_ERR_SECT_GUID)) {
|
||||||
platform_err = 1;
|
platform_err = 1;
|
||||||
LOG_INDEX_ADD_SECT_PTR(slidx->mem_dev_err, sp);
|
LOG_INDEX_ADD_SECT_PTR(slidx->mem_dev_err, sp);
|
||||||
} else if (!efi_guidcmp(sp->guid, SAL_PLAT_SEL_DEV_ERR_SECT_GUID)) {
|
} else if (!efi_guidcmp(sp->guid,
|
||||||
|
SAL_PLAT_SEL_DEV_ERR_SECT_GUID)) {
|
||||||
platform_err = 1;
|
platform_err = 1;
|
||||||
LOG_INDEX_ADD_SECT_PTR(slidx->sel_dev_err, sp);
|
LOG_INDEX_ADD_SECT_PTR(slidx->sel_dev_err, sp);
|
||||||
} else if (!efi_guidcmp(sp->guid, SAL_PLAT_PCI_BUS_ERR_SECT_GUID)) {
|
} else if (!efi_guidcmp(sp->guid,
|
||||||
|
SAL_PLAT_PCI_BUS_ERR_SECT_GUID)) {
|
||||||
platform_err = 1;
|
platform_err = 1;
|
||||||
LOG_INDEX_ADD_SECT_PTR(slidx->pci_bus_err, sp);
|
LOG_INDEX_ADD_SECT_PTR(slidx->pci_bus_err, sp);
|
||||||
} else if (!efi_guidcmp(sp->guid, SAL_PLAT_SMBIOS_DEV_ERR_SECT_GUID)) {
|
} else if (!efi_guidcmp(sp->guid,
|
||||||
|
SAL_PLAT_SMBIOS_DEV_ERR_SECT_GUID)) {
|
||||||
platform_err = 1;
|
platform_err = 1;
|
||||||
LOG_INDEX_ADD_SECT_PTR(slidx->smbios_dev_err, sp);
|
LOG_INDEX_ADD_SECT_PTR(slidx->smbios_dev_err, sp);
|
||||||
} else if (!efi_guidcmp(sp->guid, SAL_PLAT_PCI_COMP_ERR_SECT_GUID)) {
|
} else if (!efi_guidcmp(sp->guid,
|
||||||
|
SAL_PLAT_PCI_COMP_ERR_SECT_GUID)) {
|
||||||
platform_err = 1;
|
platform_err = 1;
|
||||||
LOG_INDEX_ADD_SECT_PTR(slidx->pci_comp_err, sp);
|
LOG_INDEX_ADD_SECT_PTR(slidx->pci_comp_err, sp);
|
||||||
} else if (!efi_guidcmp(sp->guid, SAL_PLAT_SPECIFIC_ERR_SECT_GUID)) {
|
} else if (!efi_guidcmp(sp->guid,
|
||||||
|
SAL_PLAT_SPECIFIC_ERR_SECT_GUID)) {
|
||||||
platform_err = 1;
|
platform_err = 1;
|
||||||
LOG_INDEX_ADD_SECT_PTR(slidx->plat_specific_err, sp);
|
LOG_INDEX_ADD_SECT_PTR(slidx->plat_specific_err, sp);
|
||||||
} else if (!efi_guidcmp(sp->guid, SAL_PLAT_HOST_CTLR_ERR_SECT_GUID)) {
|
} else if (!efi_guidcmp(sp->guid,
|
||||||
|
SAL_PLAT_HOST_CTLR_ERR_SECT_GUID)) {
|
||||||
platform_err = 1;
|
platform_err = 1;
|
||||||
LOG_INDEX_ADD_SECT_PTR(slidx->host_ctlr_err, sp);
|
LOG_INDEX_ADD_SECT_PTR(slidx->host_ctlr_err, sp);
|
||||||
} else if (!efi_guidcmp(sp->guid, SAL_PLAT_BUS_ERR_SECT_GUID)) {
|
} else if (!efi_guidcmp(sp->guid,
|
||||||
|
SAL_PLAT_BUS_ERR_SECT_GUID)) {
|
||||||
platform_err = 1;
|
platform_err = 1;
|
||||||
LOG_INDEX_ADD_SECT_PTR(slidx->plat_bus_err, sp);
|
LOG_INDEX_ADD_SECT_PTR(slidx->plat_bus_err, sp);
|
||||||
} else {
|
} else {
|
||||||
|
@ -253,15 +261,16 @@ mca_make_slidx(void *buffer, slidx_table_t *slidx)
|
||||||
* Return value:
|
* Return value:
|
||||||
* 0 on Success / -ENOMEM on Failure
|
* 0 on Success / -ENOMEM on Failure
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
init_record_index_pools(void)
|
init_record_index_pools(void)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
int rec_max_size; /* Maximum size of SAL error records */
|
int rec_max_size; /* Maximum size of SAL error records */
|
||||||
int sect_min_size; /* Minimum size of SAL error sections */
|
int sect_min_size; /* Minimum size of SAL error sections */
|
||||||
/* minimum size table of each section */
|
/* minimum size table of each section */
|
||||||
static int sal_log_sect_min_sizes[] = {
|
static int sal_log_sect_min_sizes[] = {
|
||||||
sizeof(sal_log_processor_info_t) + sizeof(sal_processor_static_info_t),
|
sizeof(sal_log_processor_info_t)
|
||||||
|
+ sizeof(sal_processor_static_info_t),
|
||||||
sizeof(sal_log_mem_dev_err_info_t),
|
sizeof(sal_log_mem_dev_err_info_t),
|
||||||
sizeof(sal_log_sel_dev_err_info_t),
|
sizeof(sal_log_sel_dev_err_info_t),
|
||||||
sizeof(sal_log_pci_bus_err_info_t),
|
sizeof(sal_log_pci_bus_err_info_t),
|
||||||
|
@ -294,7 +303,8 @@ init_record_index_pools(void)
|
||||||
|
|
||||||
/* - 3 - */
|
/* - 3 - */
|
||||||
slidx_pool.max_idx = (rec_max_size/sect_min_size) * 2 + 1;
|
slidx_pool.max_idx = (rec_max_size/sect_min_size) * 2 + 1;
|
||||||
slidx_pool.buffer = (slidx_list_t *) kmalloc(slidx_pool.max_idx * sizeof(slidx_list_t), GFP_KERNEL);
|
slidx_pool.buffer = (slidx_list_t *)
|
||||||
|
kmalloc(slidx_pool.max_idx * sizeof(slidx_list_t), GFP_KERNEL);
|
||||||
|
|
||||||
return slidx_pool.buffer ? 0 : -ENOMEM;
|
return slidx_pool.buffer ? 0 : -ENOMEM;
|
||||||
}
|
}
|
||||||
|
@ -308,6 +318,7 @@ init_record_index_pools(void)
|
||||||
* is_mca_global - Check whether this MCA is global or not
|
* is_mca_global - Check whether this MCA is global or not
|
||||||
* @peidx: pointer of index of processor error section
|
* @peidx: pointer of index of processor error section
|
||||||
* @pbci: pointer to pal_bus_check_info_t
|
* @pbci: pointer to pal_bus_check_info_t
|
||||||
|
* @sos: pointer to hand off struct between SAL and OS
|
||||||
*
|
*
|
||||||
* Return value:
|
* Return value:
|
||||||
* MCA_IS_LOCAL / MCA_IS_GLOBAL
|
* MCA_IS_LOCAL / MCA_IS_GLOBAL
|
||||||
|
@ -317,11 +328,12 @@ static mca_type_t
|
||||||
is_mca_global(peidx_table_t *peidx, pal_bus_check_info_t *pbci,
|
is_mca_global(peidx_table_t *peidx, pal_bus_check_info_t *pbci,
|
||||||
struct ia64_sal_os_state *sos)
|
struct ia64_sal_os_state *sos)
|
||||||
{
|
{
|
||||||
pal_processor_state_info_t *psp = (pal_processor_state_info_t*)peidx_psp(peidx);
|
pal_processor_state_info_t *psp =
|
||||||
|
(pal_processor_state_info_t*)peidx_psp(peidx);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* PAL can request a rendezvous, if the MCA has a global scope.
|
* PAL can request a rendezvous, if the MCA has a global scope.
|
||||||
* If "rz_always" flag is set, SAL requests MCA rendezvous
|
* If "rz_always" flag is set, SAL requests MCA rendezvous
|
||||||
* in spite of global MCA.
|
* in spite of global MCA.
|
||||||
* Therefore it is local MCA when rendezvous has not been requested.
|
* Therefore it is local MCA when rendezvous has not been requested.
|
||||||
* Failed to rendezvous, the system must be down.
|
* Failed to rendezvous, the system must be down.
|
||||||
|
@ -381,13 +393,15 @@ is_mca_global(peidx_table_t *peidx, pal_bus_check_info_t *pbci,
|
||||||
* @slidx: pointer of index of SAL error record
|
* @slidx: pointer of index of SAL error record
|
||||||
* @peidx: pointer of index of processor error section
|
* @peidx: pointer of index of processor error section
|
||||||
* @pbci: pointer of pal_bus_check_info
|
* @pbci: pointer of pal_bus_check_info
|
||||||
|
* @sos: pointer to hand off struct between SAL and OS
|
||||||
*
|
*
|
||||||
* Return value:
|
* Return value:
|
||||||
* 1 on Success / 0 on Failure
|
* 1 on Success / 0 on Failure
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static int
|
static int
|
||||||
recover_from_read_error(slidx_table_t *slidx, peidx_table_t *peidx, pal_bus_check_info_t *pbci,
|
recover_from_read_error(slidx_table_t *slidx,
|
||||||
|
peidx_table_t *peidx, pal_bus_check_info_t *pbci,
|
||||||
struct ia64_sal_os_state *sos)
|
struct ia64_sal_os_state *sos)
|
||||||
{
|
{
|
||||||
sal_log_mod_error_info_t *smei;
|
sal_log_mod_error_info_t *smei;
|
||||||
|
@ -453,24 +467,28 @@ recover_from_read_error(slidx_table_t *slidx, peidx_table_t *peidx, pal_bus_chec
|
||||||
* @slidx: pointer of index of SAL error record
|
* @slidx: pointer of index of SAL error record
|
||||||
* @peidx: pointer of index of processor error section
|
* @peidx: pointer of index of processor error section
|
||||||
* @pbci: pointer of pal_bus_check_info
|
* @pbci: pointer of pal_bus_check_info
|
||||||
|
* @sos: pointer to hand off struct between SAL and OS
|
||||||
*
|
*
|
||||||
* Return value:
|
* Return value:
|
||||||
* 1 on Success / 0 on Failure
|
* 1 on Success / 0 on Failure
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static int
|
static int
|
||||||
recover_from_platform_error(slidx_table_t *slidx, peidx_table_t *peidx, pal_bus_check_info_t *pbci,
|
recover_from_platform_error(slidx_table_t *slidx, peidx_table_t *peidx,
|
||||||
|
pal_bus_check_info_t *pbci,
|
||||||
struct ia64_sal_os_state *sos)
|
struct ia64_sal_os_state *sos)
|
||||||
{
|
{
|
||||||
int status = 0;
|
int status = 0;
|
||||||
pal_processor_state_info_t *psp = (pal_processor_state_info_t*)peidx_psp(peidx);
|
pal_processor_state_info_t *psp =
|
||||||
|
(pal_processor_state_info_t*)peidx_psp(peidx);
|
||||||
|
|
||||||
if (psp->bc && pbci->eb && pbci->bsi == 0) {
|
if (psp->bc && pbci->eb && pbci->bsi == 0) {
|
||||||
switch(pbci->type) {
|
switch(pbci->type) {
|
||||||
case 1: /* partial read */
|
case 1: /* partial read */
|
||||||
case 3: /* full line(cpu) read */
|
case 3: /* full line(cpu) read */
|
||||||
case 9: /* I/O space read */
|
case 9: /* I/O space read */
|
||||||
status = recover_from_read_error(slidx, peidx, pbci, sos);
|
status = recover_from_read_error(slidx, peidx, pbci,
|
||||||
|
sos);
|
||||||
break;
|
break;
|
||||||
case 0: /* unknown */
|
case 0: /* unknown */
|
||||||
case 2: /* partial write */
|
case 2: /* partial write */
|
||||||
|
@ -481,7 +499,8 @@ recover_from_platform_error(slidx_table_t *slidx, peidx_table_t *peidx, pal_bus_
|
||||||
case 8: /* write coalescing transactions */
|
case 8: /* write coalescing transactions */
|
||||||
case 10: /* I/O space write */
|
case 10: /* I/O space write */
|
||||||
case 11: /* inter-processor interrupt message(IPI) */
|
case 11: /* inter-processor interrupt message(IPI) */
|
||||||
case 12: /* interrupt acknowledge or external task priority cycle */
|
case 12: /* interrupt acknowledge or
|
||||||
|
external task priority cycle */
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -496,6 +515,7 @@ recover_from_platform_error(slidx_table_t *slidx, peidx_table_t *peidx, pal_bus_
|
||||||
* @slidx: pointer of index of SAL error record
|
* @slidx: pointer of index of SAL error record
|
||||||
* @peidx: pointer of index of processor error section
|
* @peidx: pointer of index of processor error section
|
||||||
* @pbci: pointer of pal_bus_check_info
|
* @pbci: pointer of pal_bus_check_info
|
||||||
|
* @sos: pointer to hand off struct between SAL and OS
|
||||||
*
|
*
|
||||||
* Return value:
|
* Return value:
|
||||||
* 1 on Success / 0 on Failure
|
* 1 on Success / 0 on Failure
|
||||||
|
@ -509,15 +529,17 @@ recover_from_platform_error(slidx_table_t *slidx, peidx_table_t *peidx, pal_bus_
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static int
|
static int
|
||||||
recover_from_processor_error(int platform, slidx_table_t *slidx, peidx_table_t *peidx, pal_bus_check_info_t *pbci,
|
recover_from_processor_error(int platform, slidx_table_t *slidx,
|
||||||
|
peidx_table_t *peidx, pal_bus_check_info_t *pbci,
|
||||||
struct ia64_sal_os_state *sos)
|
struct ia64_sal_os_state *sos)
|
||||||
{
|
{
|
||||||
pal_processor_state_info_t *psp = (pal_processor_state_info_t*)peidx_psp(peidx);
|
pal_processor_state_info_t *psp =
|
||||||
|
(pal_processor_state_info_t*)peidx_psp(peidx);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* We cannot recover errors with other than bus_check.
|
* We cannot recover errors with other than bus_check.
|
||||||
*/
|
*/
|
||||||
if (psp->cc || psp->rc || psp->uc)
|
if (psp->cc || psp->rc || psp->uc)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -546,10 +568,10 @@ recover_from_processor_error(int platform, slidx_table_t *slidx, peidx_table_t *
|
||||||
* (e.g. a load from poisoned memory)
|
* (e.g. a load from poisoned memory)
|
||||||
* This means "there are some platform errors".
|
* This means "there are some platform errors".
|
||||||
*/
|
*/
|
||||||
if (platform)
|
if (platform)
|
||||||
return recover_from_platform_error(slidx, peidx, pbci, sos);
|
return recover_from_platform_error(slidx, peidx, pbci, sos);
|
||||||
/*
|
/*
|
||||||
* On account of strange SAL error record, we cannot recover.
|
* On account of strange SAL error record, we cannot recover.
|
||||||
*/
|
*/
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -557,14 +579,14 @@ recover_from_processor_error(int platform, slidx_table_t *slidx, peidx_table_t *
|
||||||
/**
|
/**
|
||||||
* mca_try_to_recover - Try to recover from MCA
|
* mca_try_to_recover - Try to recover from MCA
|
||||||
* @rec: pointer to a SAL error record
|
* @rec: pointer to a SAL error record
|
||||||
|
* @sos: pointer to hand off struct between SAL and OS
|
||||||
*
|
*
|
||||||
* Return value:
|
* Return value:
|
||||||
* 1 on Success / 0 on Failure
|
* 1 on Success / 0 on Failure
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static int
|
static int
|
||||||
mca_try_to_recover(void *rec,
|
mca_try_to_recover(void *rec, struct ia64_sal_os_state *sos)
|
||||||
struct ia64_sal_os_state *sos)
|
|
||||||
{
|
{
|
||||||
int platform_err;
|
int platform_err;
|
||||||
int n_proc_err;
|
int n_proc_err;
|
||||||
|
@ -588,7 +610,8 @@ mca_try_to_recover(void *rec,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Make index of processor error section */
|
/* Make index of processor error section */
|
||||||
mca_make_peidx((sal_log_processor_info_t*)slidx_first_entry(&slidx.proc_err)->hdr, &peidx);
|
mca_make_peidx((sal_log_processor_info_t*)
|
||||||
|
slidx_first_entry(&slidx.proc_err)->hdr, &peidx);
|
||||||
|
|
||||||
/* Extract Processor BUS_CHECK[0] */
|
/* Extract Processor BUS_CHECK[0] */
|
||||||
*((u64*)&pbci) = peidx_check_info(&peidx, bus_check, 0);
|
*((u64*)&pbci) = peidx_check_info(&peidx, bus_check, 0);
|
||||||
|
@ -598,7 +621,8 @@ mca_try_to_recover(void *rec,
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
/* Try to recover a processor error */
|
/* Try to recover a processor error */
|
||||||
return recover_from_processor_error(platform_err, &slidx, &peidx, &pbci, sos);
|
return recover_from_processor_error(platform_err, &slidx, &peidx,
|
||||||
|
&pbci, sos);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -611,7 +635,7 @@ int __init mca_external_handler_init(void)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
/* register external mca handlers */
|
/* register external mca handlers */
|
||||||
if (ia64_reg_MCA_extension(mca_try_to_recover)){
|
if (ia64_reg_MCA_extension(mca_try_to_recover)) {
|
||||||
printk(KERN_ERR "ia64_reg_MCA_extension failed.\n");
|
printk(KERN_ERR "ia64_reg_MCA_extension failed.\n");
|
||||||
kfree(slidx_pool.buffer);
|
kfree(slidx_pool.buffer);
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
* Copyright (C) Hidetoshi Seto (seto.hidetoshi@jp.fujitsu.com)
|
* Copyright (C) Hidetoshi Seto (seto.hidetoshi@jp.fujitsu.com)
|
||||||
*/
|
*/
|
||||||
/*
|
/*
|
||||||
* Processor error section:
|
* Processor error section:
|
||||||
*
|
*
|
||||||
* +-sal_log_processor_info_t *info-------------+
|
* +-sal_log_processor_info_t *info-------------+
|
||||||
* | sal_log_section_hdr_t header; |
|
* | sal_log_section_hdr_t header; |
|
||||||
|
|
|
@ -13,45 +13,45 @@
|
||||||
#include <asm/ptrace.h>
|
#include <asm/ptrace.h>
|
||||||
|
|
||||||
GLOBAL_ENTRY(mca_handler_bhhook)
|
GLOBAL_ENTRY(mca_handler_bhhook)
|
||||||
invala // clear RSE ?
|
invala // clear RSE ?
|
||||||
;; //
|
;;
|
||||||
cover //
|
cover
|
||||||
;; //
|
;;
|
||||||
clrrrb //
|
clrrrb
|
||||||
;;
|
;;
|
||||||
alloc r16=ar.pfs,0,2,1,0 // make a new frame
|
alloc r16=ar.pfs,0,2,1,0 // make a new frame
|
||||||
;;
|
;;
|
||||||
mov ar.rsc=0
|
mov ar.rsc=0
|
||||||
;;
|
;;
|
||||||
mov r13=IA64_KR(CURRENT) // current task pointer
|
mov r13=IA64_KR(CURRENT) // current task pointer
|
||||||
;;
|
;;
|
||||||
mov r2=r13
|
mov r2=r13
|
||||||
;;
|
;;
|
||||||
addl r22=IA64_RBS_OFFSET,r2
|
addl r22=IA64_RBS_OFFSET,r2
|
||||||
;;
|
;;
|
||||||
mov ar.bspstore=r22
|
mov ar.bspstore=r22
|
||||||
;;
|
;;
|
||||||
addl sp=IA64_STK_OFFSET-IA64_PT_REGS_SIZE,r2
|
addl sp=IA64_STK_OFFSET-IA64_PT_REGS_SIZE,r2
|
||||||
;;
|
;;
|
||||||
adds r2=IA64_TASK_THREAD_ON_USTACK_OFFSET,r13
|
adds r2=IA64_TASK_THREAD_ON_USTACK_OFFSET,r13
|
||||||
;;
|
;;
|
||||||
st1 [r2]=r0 // clear current->thread.on_ustack flag
|
st1 [r2]=r0 // clear current->thread.on_ustack flag
|
||||||
mov loc0=r16
|
mov loc0=r16
|
||||||
movl loc1=mca_handler_bh // recovery C function
|
movl loc1=mca_handler_bh // recovery C function
|
||||||
;;
|
;;
|
||||||
mov out0=r8 // poisoned address
|
mov out0=r8 // poisoned address
|
||||||
mov b6=loc1
|
mov b6=loc1
|
||||||
;;
|
;;
|
||||||
mov loc1=rp
|
mov loc1=rp
|
||||||
;;
|
;;
|
||||||
ssm psr.i
|
ssm psr.i
|
||||||
;;
|
;;
|
||||||
br.call.sptk.many rp=b6 // does not return ...
|
br.call.sptk.many rp=b6 // does not return ...
|
||||||
;;
|
;;
|
||||||
mov ar.pfs=loc0
|
mov ar.pfs=loc0
|
||||||
mov rp=loc1
|
mov rp=loc1
|
||||||
;;
|
;;
|
||||||
mov r8=r0
|
mov r8=r0
|
||||||
br.ret.sptk.many rp
|
br.ret.sptk.many rp
|
||||||
;;
|
;;
|
||||||
END(mca_handler_bhhook)
|
END(mca_handler_bhhook)
|
||||||
|
|
|
@ -574,7 +574,7 @@ pfm_protect_ctx_ctxsw(pfm_context_t *x)
|
||||||
return 0UL;
|
return 0UL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline unsigned long
|
static inline void
|
||||||
pfm_unprotect_ctx_ctxsw(pfm_context_t *x, unsigned long f)
|
pfm_unprotect_ctx_ctxsw(pfm_context_t *x, unsigned long f)
|
||||||
{
|
{
|
||||||
spin_unlock(&(x)->ctx_lock);
|
spin_unlock(&(x)->ctx_lock);
|
||||||
|
@ -2218,12 +2218,13 @@ static void
|
||||||
pfm_free_fd(int fd, struct file *file)
|
pfm_free_fd(int fd, struct file *file)
|
||||||
{
|
{
|
||||||
struct files_struct *files = current->files;
|
struct files_struct *files = current->files;
|
||||||
struct fdtable *fdt = files_fdtable(files);
|
struct fdtable *fdt;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* there ie no fd_uninstall(), so we do it here
|
* there ie no fd_uninstall(), so we do it here
|
||||||
*/
|
*/
|
||||||
spin_lock(&files->file_lock);
|
spin_lock(&files->file_lock);
|
||||||
|
fdt = files_fdtable(files);
|
||||||
rcu_assign_pointer(fdt->fd[fd], NULL);
|
rcu_assign_pointer(fdt->fd[fd], NULL);
|
||||||
spin_unlock(&files->file_lock);
|
spin_unlock(&files->file_lock);
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,6 @@ lib-$(CONFIG_ITANIUM) += copy_page.o copy_user.o memcpy.o
|
||||||
lib-$(CONFIG_MCKINLEY) += copy_page_mck.o memcpy_mck.o
|
lib-$(CONFIG_MCKINLEY) += copy_page_mck.o memcpy_mck.o
|
||||||
lib-$(CONFIG_PERFMON) += carta_random.o
|
lib-$(CONFIG_PERFMON) += carta_random.o
|
||||||
lib-$(CONFIG_MD_RAID5) += xor.o
|
lib-$(CONFIG_MD_RAID5) += xor.o
|
||||||
lib-$(CONFIG_HAVE_DEC_LOCK) += dec_and_lock.o
|
|
||||||
|
|
||||||
AFLAGS___divdi3.o =
|
AFLAGS___divdi3.o =
|
||||||
AFLAGS___udivdi3.o = -DUNSIGNED
|
AFLAGS___udivdi3.o = -DUNSIGNED
|
||||||
|
|
|
@ -1,42 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (C) 2003 Jerome Marchand, Bull S.A.
|
|
||||||
* Cleaned up by David Mosberger-Tang <davidm@hpl.hp.com>
|
|
||||||
*
|
|
||||||
* This file is released under the GPLv2, or at your option any later version.
|
|
||||||
*
|
|
||||||
* ia64 version of "atomic_dec_and_lock()" using the atomic "cmpxchg" instruction. This
|
|
||||||
* code is an adaptation of the x86 version of "atomic_dec_and_lock()".
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <linux/compiler.h>
|
|
||||||
#include <linux/module.h>
|
|
||||||
#include <linux/spinlock.h>
|
|
||||||
#include <asm/atomic.h>
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Decrement REFCOUNT and if the count reaches zero, acquire the spinlock. Both of these
|
|
||||||
* operations have to be done atomically, so that the count doesn't drop to zero without
|
|
||||||
* acquiring the spinlock first.
|
|
||||||
*/
|
|
||||||
int
|
|
||||||
_atomic_dec_and_lock (atomic_t *refcount, spinlock_t *lock)
|
|
||||||
{
|
|
||||||
int old, new;
|
|
||||||
|
|
||||||
do {
|
|
||||||
old = atomic_read(refcount);
|
|
||||||
new = old - 1;
|
|
||||||
|
|
||||||
if (unlikely (old == 1)) {
|
|
||||||
/* oops, we may be decrementing to zero, do it the slow way... */
|
|
||||||
spin_lock(lock);
|
|
||||||
if (atomic_dec_and_test(refcount))
|
|
||||||
return 1;
|
|
||||||
spin_unlock(lock);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
} while (cmpxchg(&refcount->counter, old, new) != old);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
EXPORT_SYMBOL(_atomic_dec_and_lock);
|
|
|
@ -220,11 +220,6 @@ config PREEMPT
|
||||||
Say Y here if you are building a kernel for a desktop, embedded
|
Say Y here if you are building a kernel for a desktop, embedded
|
||||||
or real-time system. Say N if you are unsure.
|
or real-time system. Say N if you are unsure.
|
||||||
|
|
||||||
config HAVE_DEC_LOCK
|
|
||||||
bool
|
|
||||||
depends on (SMP || PREEMPT)
|
|
||||||
default n
|
|
||||||
|
|
||||||
config SMP
|
config SMP
|
||||||
bool "Symmetric multi-processing support"
|
bool "Symmetric multi-processing support"
|
||||||
---help---
|
---help---
|
||||||
|
|
|
@ -1009,10 +1009,6 @@ config GENERIC_CALIBRATE_DELAY
|
||||||
bool
|
bool
|
||||||
default y
|
default y
|
||||||
|
|
||||||
config HAVE_DEC_LOCK
|
|
||||||
bool
|
|
||||||
default y
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Select some configuration options automatically based on user selections.
|
# Select some configuration options automatically based on user selections.
|
||||||
#
|
#
|
||||||
|
|
|
@ -581,18 +581,13 @@ asmlinkage int irix_brk(unsigned long brk)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Check if we have enough memory..
|
* Ok, looks good - let it rip.
|
||||||
*/
|
*/
|
||||||
if (security_vm_enough_memory((newbrk-oldbrk) >> PAGE_SHIFT)) {
|
if (do_brk(oldbrk, newbrk-oldbrk) != oldbrk) {
|
||||||
ret = -ENOMEM;
|
ret = -ENOMEM;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Ok, looks good - let it rip.
|
|
||||||
*/
|
|
||||||
mm->brk = brk;
|
mm->brk = brk;
|
||||||
do_brk(oldbrk, newbrk-oldbrk);
|
|
||||||
ret = 0;
|
ret = 0;
|
||||||
|
|
||||||
out:
|
out:
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
# Makefile for MIPS-specific library files..
|
# Makefile for MIPS-specific library files..
|
||||||
#
|
#
|
||||||
|
|
||||||
lib-y += csum_partial_copy.o dec_and_lock.o memcpy.o promlib.o \
|
lib-y += csum_partial_copy.o memcpy.o promlib.o \
|
||||||
strlen_user.o strncpy_user.o strnlen_user.o
|
strlen_user.o strncpy_user.o strnlen_user.o
|
||||||
|
|
||||||
obj-y += iomap.o
|
obj-y += iomap.o
|
||||||
|
|
|
@ -1,47 +0,0 @@
|
||||||
/*
|
|
||||||
* MIPS version of atomic_dec_and_lock() using cmpxchg
|
|
||||||
*
|
|
||||||
* 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 the Free Software Foundation; either version
|
|
||||||
* 2 of the License, or (at your option) any later version.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <linux/module.h>
|
|
||||||
#include <linux/spinlock.h>
|
|
||||||
#include <asm/atomic.h>
|
|
||||||
#include <asm/system.h>
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This is an implementation of the notion of "decrement a
|
|
||||||
* reference count, and return locked if it decremented to zero".
|
|
||||||
*
|
|
||||||
* This implementation can be used on any architecture that
|
|
||||||
* has a cmpxchg, and where atomic->value is an int holding
|
|
||||||
* the value of the atomic (i.e. the high bits aren't used
|
|
||||||
* for a lock or anything like that).
|
|
||||||
*/
|
|
||||||
int _atomic_dec_and_lock(atomic_t *atomic, spinlock_t *lock)
|
|
||||||
{
|
|
||||||
int counter;
|
|
||||||
int newcount;
|
|
||||||
|
|
||||||
for (;;) {
|
|
||||||
counter = atomic_read(atomic);
|
|
||||||
newcount = counter - 1;
|
|
||||||
if (!newcount)
|
|
||||||
break; /* do it the slow way */
|
|
||||||
|
|
||||||
newcount = cmpxchg(&atomic->counter, counter, newcount);
|
|
||||||
if (newcount == counter)
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
spin_lock(lock);
|
|
||||||
if (atomic_dec_and_test(atomic))
|
|
||||||
return 1;
|
|
||||||
spin_unlock(lock);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
EXPORT_SYMBOL(_atomic_dec_and_lock);
|
|
|
@ -26,10 +26,6 @@ config GENERIC_CALIBRATE_DELAY
|
||||||
bool
|
bool
|
||||||
default y
|
default y
|
||||||
|
|
||||||
config HAVE_DEC_LOCK
|
|
||||||
bool
|
|
||||||
default y
|
|
||||||
|
|
||||||
config PPC
|
config PPC
|
||||||
bool
|
bool
|
||||||
default y
|
default y
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
# Makefile for ppc-specific library files..
|
# Makefile for ppc-specific library files..
|
||||||
#
|
#
|
||||||
|
|
||||||
obj-y := checksum.o string.o strcase.o dec_and_lock.o div64.o
|
obj-y := checksum.o string.o strcase.o div64.o
|
||||||
|
|
||||||
obj-$(CONFIG_8xx) += rheap.o
|
obj-$(CONFIG_8xx) += rheap.o
|
||||||
obj-$(CONFIG_CPM2) += rheap.o
|
obj-$(CONFIG_CPM2) += rheap.o
|
||||||
|
|
|
@ -1,38 +0,0 @@
|
||||||
#include <linux/module.h>
|
|
||||||
#include <linux/spinlock.h>
|
|
||||||
#include <asm/atomic.h>
|
|
||||||
#include <asm/system.h>
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This is an implementation of the notion of "decrement a
|
|
||||||
* reference count, and return locked if it decremented to zero".
|
|
||||||
*
|
|
||||||
* This implementation can be used on any architecture that
|
|
||||||
* has a cmpxchg, and where atomic->value is an int holding
|
|
||||||
* the value of the atomic (i.e. the high bits aren't used
|
|
||||||
* for a lock or anything like that).
|
|
||||||
*/
|
|
||||||
int _atomic_dec_and_lock(atomic_t *atomic, spinlock_t *lock)
|
|
||||||
{
|
|
||||||
int counter;
|
|
||||||
int newcount;
|
|
||||||
|
|
||||||
for (;;) {
|
|
||||||
counter = atomic_read(atomic);
|
|
||||||
newcount = counter - 1;
|
|
||||||
if (!newcount)
|
|
||||||
break; /* do it the slow way */
|
|
||||||
|
|
||||||
newcount = cmpxchg(&atomic->counter, counter, newcount);
|
|
||||||
if (newcount == counter)
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
spin_lock(lock);
|
|
||||||
if (atomic_dec_and_test(atomic))
|
|
||||||
return 1;
|
|
||||||
spin_unlock(lock);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
EXPORT_SYMBOL(_atomic_dec_and_lock);
|
|
|
@ -34,7 +34,8 @@ ifeq ($(CONFIG_40x),y)
|
||||||
obj-$(CONFIG_PCI) += indirect_pci.o pci_auto.o ppc405_pci.o
|
obj-$(CONFIG_PCI) += indirect_pci.o pci_auto.o ppc405_pci.o
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
obj-$(CONFIG_8xx) += m8xx_setup.o ppc8xx_pic.o $(wdt-mpc8xx-y)
|
obj-$(CONFIG_8xx) += m8xx_setup.o ppc8xx_pic.o $(wdt-mpc8xx-y) \
|
||||||
|
ppc_sys.o mpc8xx_devices.o mpc8xx_sys.o
|
||||||
ifeq ($(CONFIG_8xx),y)
|
ifeq ($(CONFIG_8xx),y)
|
||||||
obj-$(CONFIG_PCI) += qspan_pci.o i8259.o
|
obj-$(CONFIG_PCI) += qspan_pci.o i8259.o
|
||||||
endif
|
endif
|
||||||
|
|
224
arch/ppc/syslib/mpc8xx_devices.c
Normal file
224
arch/ppc/syslib/mpc8xx_devices.c
Normal file
|
@ -0,0 +1,224 @@
|
||||||
|
/*
|
||||||
|
* arch/ppc/syslib/mpc8xx_devices.c
|
||||||
|
*
|
||||||
|
* MPC8xx Device descriptions
|
||||||
|
*
|
||||||
|
* Maintainer: Kumar Gala <kumar.gala@freescale.com>
|
||||||
|
*
|
||||||
|
* Copyright 2005 MontaVista Software, Inc. by Vitaly Bordug<vbordug@ru.mvista.com>
|
||||||
|
*
|
||||||
|
* 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 the
|
||||||
|
* Free Software Foundation; either version 2 of the License, or (at your
|
||||||
|
* option) any later version.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <linux/init.h>
|
||||||
|
#include <linux/module.h>
|
||||||
|
#include <linux/device.h>
|
||||||
|
#include <linux/serial_8250.h>
|
||||||
|
#include <linux/mii.h>
|
||||||
|
#include <asm/commproc.h>
|
||||||
|
#include <asm/mpc8xx.h>
|
||||||
|
#include <asm/irq.h>
|
||||||
|
#include <asm/ppc_sys.h>
|
||||||
|
|
||||||
|
/* We use offsets for IORESOURCE_MEM to do not set dependences at compile time.
|
||||||
|
* They will get fixed up by mach_mpc8xx_fixup
|
||||||
|
*/
|
||||||
|
|
||||||
|
struct platform_device ppc_sys_platform_devices[] = {
|
||||||
|
[MPC8xx_CPM_FEC1] = {
|
||||||
|
.name = "fsl-cpm-fec",
|
||||||
|
.id = 1,
|
||||||
|
.num_resources = 2,
|
||||||
|
.resource = (struct resource[]) {
|
||||||
|
{
|
||||||
|
.name = "regs",
|
||||||
|
.start = 0xe00,
|
||||||
|
.end = 0xe88,
|
||||||
|
.flags = IORESOURCE_MEM,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.name = "interrupt",
|
||||||
|
.start = MPC8xx_INT_FEC1,
|
||||||
|
.end = MPC8xx_INT_FEC1,
|
||||||
|
.flags = IORESOURCE_IRQ,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[MPC8xx_CPM_FEC2] = {
|
||||||
|
.name = "fsl-cpm-fec",
|
||||||
|
.id = 2,
|
||||||
|
.num_resources = 2,
|
||||||
|
.resource = (struct resource[]) {
|
||||||
|
{
|
||||||
|
.name = "regs",
|
||||||
|
.start = 0x1e00,
|
||||||
|
.end = 0x1e88,
|
||||||
|
.flags = IORESOURCE_MEM,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.name = "interrupt",
|
||||||
|
.start = MPC8xx_INT_FEC2,
|
||||||
|
.end = MPC8xx_INT_FEC2,
|
||||||
|
.flags = IORESOURCE_IRQ,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[MPC8xx_CPM_SCC1] = {
|
||||||
|
.name = "fsl-cpm-scc",
|
||||||
|
.id = 1,
|
||||||
|
.num_resources = 3,
|
||||||
|
.resource = (struct resource[]) {
|
||||||
|
{
|
||||||
|
.name = "regs",
|
||||||
|
.start = 0xa00,
|
||||||
|
.end = 0xa18,
|
||||||
|
.flags = IORESOURCE_MEM,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.name = "pram",
|
||||||
|
.start = 0x3c00,
|
||||||
|
.end = 0x3c80,
|
||||||
|
.flags = IORESOURCE_MEM,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.name = "interrupt",
|
||||||
|
.start = MPC8xx_INT_SCC1,
|
||||||
|
.end = MPC8xx_INT_SCC1,
|
||||||
|
.flags = IORESOURCE_IRQ,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[MPC8xx_CPM_SCC2] = {
|
||||||
|
.name = "fsl-cpm-scc",
|
||||||
|
.id = 2,
|
||||||
|
.num_resources = 3,
|
||||||
|
.resource = (struct resource[]) {
|
||||||
|
{
|
||||||
|
.name = "regs",
|
||||||
|
.start = 0xa20,
|
||||||
|
.end = 0xa38,
|
||||||
|
.flags = IORESOURCE_MEM,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.name = "pram",
|
||||||
|
.start = 0x3d00,
|
||||||
|
.end = 0x3d80,
|
||||||
|
.flags = IORESOURCE_MEM,
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
.name = "interrupt",
|
||||||
|
.start = MPC8xx_INT_SCC2,
|
||||||
|
.end = MPC8xx_INT_SCC2,
|
||||||
|
.flags = IORESOURCE_IRQ,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[MPC8xx_CPM_SCC3] = {
|
||||||
|
.name = "fsl-cpm-scc",
|
||||||
|
.id = 3,
|
||||||
|
.num_resources = 3,
|
||||||
|
.resource = (struct resource[]) {
|
||||||
|
{
|
||||||
|
.name = "regs",
|
||||||
|
.start = 0xa40,
|
||||||
|
.end = 0xa58,
|
||||||
|
.flags = IORESOURCE_MEM,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.name = "pram",
|
||||||
|
.start = 0x3e00,
|
||||||
|
.end = 0x3e80,
|
||||||
|
.flags = IORESOURCE_MEM,
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
.name = "interrupt",
|
||||||
|
.start = MPC8xx_INT_SCC3,
|
||||||
|
.end = MPC8xx_INT_SCC3,
|
||||||
|
.flags = IORESOURCE_IRQ,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[MPC8xx_CPM_SCC4] = {
|
||||||
|
.name = "fsl-cpm-scc",
|
||||||
|
.id = 4,
|
||||||
|
.num_resources = 3,
|
||||||
|
.resource = (struct resource[]) {
|
||||||
|
{
|
||||||
|
.name = "regs",
|
||||||
|
.start = 0xa60,
|
||||||
|
.end = 0xa78,
|
||||||
|
.flags = IORESOURCE_MEM,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.name = "pram",
|
||||||
|
.start = 0x3f00,
|
||||||
|
.end = 0x3f80,
|
||||||
|
.flags = IORESOURCE_MEM,
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
.name = "interrupt",
|
||||||
|
.start = MPC8xx_INT_SCC4,
|
||||||
|
.end = MPC8xx_INT_SCC4,
|
||||||
|
.flags = IORESOURCE_IRQ,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[MPC8xx_CPM_SMC1] = {
|
||||||
|
.name = "fsl-cpm-smc",
|
||||||
|
.id = 1,
|
||||||
|
.num_resources = 2,
|
||||||
|
.resource = (struct resource[]) {
|
||||||
|
{
|
||||||
|
.name = "regs",
|
||||||
|
.start = 0xa82,
|
||||||
|
.end = 0xa91,
|
||||||
|
.flags = IORESOURCE_MEM,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.name = "interrupt",
|
||||||
|
.start = MPC8xx_INT_SMC1,
|
||||||
|
.end = MPC8xx_INT_SMC1,
|
||||||
|
.flags = IORESOURCE_IRQ,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[MPC8xx_CPM_SMC2] = {
|
||||||
|
.name = "fsl-cpm-smc",
|
||||||
|
.id = 2,
|
||||||
|
.num_resources = 2,
|
||||||
|
.resource = (struct resource[]) {
|
||||||
|
{
|
||||||
|
.name = "regs",
|
||||||
|
.start = 0xa92,
|
||||||
|
.end = 0xaa1,
|
||||||
|
.flags = IORESOURCE_MEM,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.name = "interrupt",
|
||||||
|
.start = MPC8xx_INT_SMC2,
|
||||||
|
.end = MPC8xx_INT_SMC2,
|
||||||
|
.flags = IORESOURCE_IRQ,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
static int __init mach_mpc8xx_fixup(struct platform_device *pdev)
|
||||||
|
{
|
||||||
|
ppc_sys_fixup_mem_resource (pdev, IMAP_ADDR);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int __init mach_mpc8xx_init(void)
|
||||||
|
{
|
||||||
|
ppc_sys_device_fixup = mach_mpc8xx_fixup;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
postcore_initcall(mach_mpc8xx_init);
|
61
arch/ppc/syslib/mpc8xx_sys.c
Normal file
61
arch/ppc/syslib/mpc8xx_sys.c
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
/*
|
||||||
|
* arch/ppc/platforms/mpc8xx_sys.c
|
||||||
|
*
|
||||||
|
* MPC8xx System descriptions
|
||||||
|
*
|
||||||
|
* Maintainer: Kumar Gala <kumar.gala@freescale.com>
|
||||||
|
*
|
||||||
|
* Copyright 2005 MontaVista Software, Inc. by Vitaly Bordug <vbordug@ru.mvista.com>
|
||||||
|
*
|
||||||
|
* 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 the
|
||||||
|
* Free Software Foundation; either version 2 of the License, or (at your
|
||||||
|
* option) any later version.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <linux/init.h>
|
||||||
|
#include <linux/module.h>
|
||||||
|
#include <linux/device.h>
|
||||||
|
#include <asm/ppc_sys.h>
|
||||||
|
|
||||||
|
struct ppc_sys_spec *cur_ppc_sys_spec;
|
||||||
|
struct ppc_sys_spec ppc_sys_specs[] = {
|
||||||
|
{
|
||||||
|
.ppc_sys_name = "MPC86X",
|
||||||
|
.mask = 0xFFFFFFFF,
|
||||||
|
.value = 0x00000000,
|
||||||
|
.num_devices = 2,
|
||||||
|
.device_list = (enum ppc_sys_devices[])
|
||||||
|
{
|
||||||
|
MPC8xx_CPM_FEC1,
|
||||||
|
MPC8xx_CPM_SCC1,
|
||||||
|
MPC8xx_CPM_SCC2,
|
||||||
|
MPC8xx_CPM_SCC3,
|
||||||
|
MPC8xx_CPM_SCC4,
|
||||||
|
MPC8xx_CPM_SMC1,
|
||||||
|
MPC8xx_CPM_SMC2,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.ppc_sys_name = "MPC885",
|
||||||
|
.mask = 0xFFFFFFFF,
|
||||||
|
.value = 0x00000000,
|
||||||
|
.num_devices = 3,
|
||||||
|
.device_list = (enum ppc_sys_devices[])
|
||||||
|
{
|
||||||
|
MPC8xx_CPM_FEC1,
|
||||||
|
MPC8xx_CPM_FEC2,
|
||||||
|
MPC8xx_CPM_SCC1,
|
||||||
|
MPC8xx_CPM_SCC2,
|
||||||
|
MPC8xx_CPM_SCC3,
|
||||||
|
MPC8xx_CPM_SCC4,
|
||||||
|
MPC8xx_CPM_SMC1,
|
||||||
|
MPC8xx_CPM_SMC2,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{ /* default match */
|
||||||
|
.ppc_sys_name = "",
|
||||||
|
.mask = 0x00000000,
|
||||||
|
.value = 0x00000000,
|
||||||
|
},
|
||||||
|
};
|
|
@ -575,7 +575,7 @@ static void openpic2_cached_disable_irq(u_int irq)
|
||||||
* we need something better to deal with that... Maybe switch to S1 for
|
* we need something better to deal with that... Maybe switch to S1 for
|
||||||
* cpufreq changes
|
* cpufreq changes
|
||||||
*/
|
*/
|
||||||
int openpic2_suspend(struct sys_device *sysdev, u32 state)
|
int openpic2_suspend(struct sys_device *sysdev, pm_message_t state)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
|
|
@ -28,10 +28,6 @@ config GENERIC_ISA_DMA
|
||||||
bool
|
bool
|
||||||
default y
|
default y
|
||||||
|
|
||||||
config HAVE_DEC_LOCK
|
|
||||||
bool
|
|
||||||
default y
|
|
||||||
|
|
||||||
config EARLY_PRINTK
|
config EARLY_PRINTK
|
||||||
bool
|
bool
|
||||||
default y
|
default y
|
||||||
|
|
|
@ -107,7 +107,7 @@ install: vmlinux
|
||||||
$(Q)$(MAKE) $(build)=$(boot) BOOTIMAGE=$(BOOTIMAGE) $@
|
$(Q)$(MAKE) $(build)=$(boot) BOOTIMAGE=$(BOOTIMAGE) $@
|
||||||
|
|
||||||
defaultimage-$(CONFIG_PPC_PSERIES) := zImage
|
defaultimage-$(CONFIG_PPC_PSERIES) := zImage
|
||||||
defaultimage-$(CONFIG_PPC_PMAC) := vmlinux
|
defaultimage-$(CONFIG_PPC_PMAC) := zImage.vmode
|
||||||
defaultimage-$(CONFIG_PPC_MAPLE) := zImage
|
defaultimage-$(CONFIG_PPC_MAPLE) := zImage
|
||||||
defaultimage-$(CONFIG_PPC_ISERIES) := vmlinux
|
defaultimage-$(CONFIG_PPC_ISERIES) := vmlinux
|
||||||
KBUILD_IMAGE := $(defaultimage-y)
|
KBUILD_IMAGE := $(defaultimage-y)
|
||||||
|
|
|
@ -1649,7 +1649,7 @@ _GLOBAL(__secondary_start)
|
||||||
ld r3,0(r3)
|
ld r3,0(r3)
|
||||||
lwz r3,PLATFORM(r3) /* r3 = platform flags */
|
lwz r3,PLATFORM(r3) /* r3 = platform flags */
|
||||||
andi. r3,r3,PLATFORM_LPAR /* Test if bit 0 is set (LPAR bit) */
|
andi. r3,r3,PLATFORM_LPAR /* Test if bit 0 is set (LPAR bit) */
|
||||||
bne 98f
|
beq 98f /* branch if result is 0 */
|
||||||
mfspr r3,PVR
|
mfspr r3,PVR
|
||||||
srwi r3,r3,16
|
srwi r3,r3,16
|
||||||
cmpwi r3,0x37 /* SStar */
|
cmpwi r3,0x37 /* SStar */
|
||||||
|
@ -1813,7 +1813,7 @@ _STATIC(start_here_multiplatform)
|
||||||
ld r3,0(r3)
|
ld r3,0(r3)
|
||||||
lwz r3,PLATFORM(r3) /* r3 = platform flags */
|
lwz r3,PLATFORM(r3) /* r3 = platform flags */
|
||||||
andi. r3,r3,PLATFORM_LPAR /* Test if bit 0 is set (LPAR bit) */
|
andi. r3,r3,PLATFORM_LPAR /* Test if bit 0 is set (LPAR bit) */
|
||||||
bne 98f
|
beq 98f /* branch if result is 0 */
|
||||||
mfspr r3,PVR
|
mfspr r3,PVR
|
||||||
srwi r3,r3,16
|
srwi r3,r3,16
|
||||||
cmpwi r3,0x37 /* SStar */
|
cmpwi r3,0x37 /* SStar */
|
||||||
|
@ -1834,7 +1834,7 @@ _STATIC(start_here_multiplatform)
|
||||||
lwz r3,PLATFORM(r3) /* r3 = platform flags */
|
lwz r3,PLATFORM(r3) /* r3 = platform flags */
|
||||||
/* Test if bit 0 is set (LPAR bit) */
|
/* Test if bit 0 is set (LPAR bit) */
|
||||||
andi. r3,r3,PLATFORM_LPAR
|
andi. r3,r3,PLATFORM_LPAR
|
||||||
bne 98f
|
bne 98f /* branch if result is !0 */
|
||||||
LOADADDR(r6,_SDR1) /* Only if NOT LPAR */
|
LOADADDR(r6,_SDR1) /* Only if NOT LPAR */
|
||||||
sub r6,r6,r26
|
sub r6,r6,r26
|
||||||
ld r6,0(r6) /* get the value of _SDR1 */
|
ld r6,0(r6) /* get the value of _SDR1 */
|
||||||
|
|
|
@ -265,8 +265,10 @@ static void iommu_table_setparms(struct pci_controller *phb,
|
||||||
tbl->it_offset = phb->dma_window_base_cur >> PAGE_SHIFT;
|
tbl->it_offset = phb->dma_window_base_cur >> PAGE_SHIFT;
|
||||||
|
|
||||||
/* Test if we are going over 2GB of DMA space */
|
/* Test if we are going over 2GB of DMA space */
|
||||||
if (phb->dma_window_base_cur + phb->dma_window_size > (1L << 31))
|
if (phb->dma_window_base_cur + phb->dma_window_size > 0x80000000ul) {
|
||||||
|
udbg_printf("PCI_DMA: Unexpected number of IOAs under this PHB.\n");
|
||||||
panic("PCI_DMA: Unexpected number of IOAs under this PHB.\n");
|
panic("PCI_DMA: Unexpected number of IOAs under this PHB.\n");
|
||||||
|
}
|
||||||
|
|
||||||
phb->dma_window_base_cur += phb->dma_window_size;
|
phb->dma_window_base_cur += phb->dma_window_size;
|
||||||
|
|
||||||
|
@ -310,92 +312,84 @@ static void iommu_table_setparms_lpar(struct pci_controller *phb,
|
||||||
|
|
||||||
static void iommu_bus_setup_pSeries(struct pci_bus *bus)
|
static void iommu_bus_setup_pSeries(struct pci_bus *bus)
|
||||||
{
|
{
|
||||||
struct device_node *dn, *pdn;
|
struct device_node *dn;
|
||||||
struct pci_dn *pci;
|
|
||||||
struct iommu_table *tbl;
|
struct iommu_table *tbl;
|
||||||
|
struct device_node *isa_dn, *isa_dn_orig;
|
||||||
|
struct device_node *tmp;
|
||||||
|
struct pci_dn *pci;
|
||||||
|
int children;
|
||||||
|
|
||||||
DBG("iommu_bus_setup_pSeries, bus %p, bus->self %p\n", bus, bus->self);
|
DBG("iommu_bus_setup_pSeries, bus %p, bus->self %p\n", bus, bus->self);
|
||||||
|
|
||||||
/* For each (root) bus, we carve up the available DMA space in 256MB
|
dn = pci_bus_to_OF_node(bus);
|
||||||
* pieces. Since each piece is used by one (sub) bus/device, that would
|
pci = PCI_DN(dn);
|
||||||
* give a maximum of 7 devices per PHB. In most cases, this is plenty.
|
|
||||||
|
if (bus->self) {
|
||||||
|
/* This is not a root bus, any setup will be done for the
|
||||||
|
* device-side of the bridge in iommu_dev_setup_pSeries().
|
||||||
|
*/
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Check if the ISA bus on the system is under
|
||||||
|
* this PHB.
|
||||||
|
*/
|
||||||
|
isa_dn = isa_dn_orig = of_find_node_by_type(NULL, "isa");
|
||||||
|
|
||||||
|
while (isa_dn && isa_dn != dn)
|
||||||
|
isa_dn = isa_dn->parent;
|
||||||
|
|
||||||
|
if (isa_dn_orig)
|
||||||
|
of_node_put(isa_dn_orig);
|
||||||
|
|
||||||
|
/* Count number of direct PCI children of the PHB.
|
||||||
|
* All PCI device nodes have class-code property, so it's
|
||||||
|
* an easy way to find them.
|
||||||
|
*/
|
||||||
|
for (children = 0, tmp = dn->child; tmp; tmp = tmp->sibling)
|
||||||
|
if (get_property(tmp, "class-code", NULL))
|
||||||
|
children++;
|
||||||
|
|
||||||
|
DBG("Children: %d\n", children);
|
||||||
|
|
||||||
|
/* Calculate amount of DMA window per slot. Each window must be
|
||||||
|
* a power of two (due to pci_alloc_consistent requirements).
|
||||||
*
|
*
|
||||||
* The exception is on Python PHBs (pre-POWER4). Here we don't have EADS
|
* Keep 256MB aside for PHBs with ISA.
|
||||||
* bridges below the PHB to allocate the sectioned tables to, so instead
|
|
||||||
* we allocate a 1GB table at the PHB level.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
dn = pci_bus_to_OF_node(bus);
|
if (!isa_dn) {
|
||||||
pci = dn->data;
|
/* No ISA/IDE - just set window size and return */
|
||||||
|
pci->phb->dma_window_size = 0x80000000ul; /* To be divided */
|
||||||
|
|
||||||
if (!bus->self) {
|
while (pci->phb->dma_window_size * children > 0x80000000ul)
|
||||||
/* Root bus */
|
pci->phb->dma_window_size >>= 1;
|
||||||
if (is_python(dn)) {
|
DBG("No ISA/IDE, window size is %x\n", pci->phb->dma_window_size);
|
||||||
unsigned int *iohole;
|
pci->phb->dma_window_base_cur = 0;
|
||||||
|
|
||||||
DBG("Python root bus %s\n", bus->name);
|
return;
|
||||||
|
|
||||||
iohole = (unsigned int *)get_property(dn, "io-hole", 0);
|
|
||||||
|
|
||||||
if (iohole) {
|
|
||||||
/* On first bus we need to leave room for the
|
|
||||||
* ISA address space. Just skip the first 256MB
|
|
||||||
* alltogether. This leaves 768MB for the window.
|
|
||||||
*/
|
|
||||||
DBG("PHB has io-hole, reserving 256MB\n");
|
|
||||||
pci->phb->dma_window_size = 3 << 28;
|
|
||||||
pci->phb->dma_window_base_cur = 1 << 28;
|
|
||||||
} else {
|
|
||||||
/* 1GB window by default */
|
|
||||||
pci->phb->dma_window_size = 1 << 30;
|
|
||||||
pci->phb->dma_window_base_cur = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
tbl = kmalloc(sizeof(struct iommu_table), GFP_KERNEL);
|
|
||||||
|
|
||||||
iommu_table_setparms(pci->phb, dn, tbl);
|
|
||||||
pci->iommu_table = iommu_init_table(tbl);
|
|
||||||
} else {
|
|
||||||
/* Do a 128MB table at root. This is used for the IDE
|
|
||||||
* controller on some SMP-mode POWER4 machines. It
|
|
||||||
* doesn't hurt to allocate it on other machines
|
|
||||||
* -- it'll just be unused since new tables are
|
|
||||||
* allocated on the EADS level.
|
|
||||||
*
|
|
||||||
* Allocate at offset 128MB to avoid having to deal
|
|
||||||
* with ISA holes; 128MB table for IDE is plenty.
|
|
||||||
*/
|
|
||||||
pci->phb->dma_window_size = 1 << 27;
|
|
||||||
pci->phb->dma_window_base_cur = 1 << 27;
|
|
||||||
|
|
||||||
tbl = kmalloc(sizeof(struct iommu_table), GFP_KERNEL);
|
|
||||||
|
|
||||||
iommu_table_setparms(pci->phb, dn, tbl);
|
|
||||||
pci->iommu_table = iommu_init_table(tbl);
|
|
||||||
|
|
||||||
/* All child buses have 256MB tables */
|
|
||||||
pci->phb->dma_window_size = 1 << 28;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
pdn = pci_bus_to_OF_node(bus->parent);
|
|
||||||
|
|
||||||
if (!bus->parent->self && !is_python(pdn)) {
|
|
||||||
struct iommu_table *tbl;
|
|
||||||
/* First child and not python means this is the EADS
|
|
||||||
* level. Allocate new table for this slot with 256MB
|
|
||||||
* window.
|
|
||||||
*/
|
|
||||||
|
|
||||||
tbl = kmalloc(sizeof(struct iommu_table), GFP_KERNEL);
|
|
||||||
|
|
||||||
iommu_table_setparms(pci->phb, dn, tbl);
|
|
||||||
|
|
||||||
pci->iommu_table = iommu_init_table(tbl);
|
|
||||||
} else {
|
|
||||||
/* Lower than first child or under python, use parent table */
|
|
||||||
pci->iommu_table = PCI_DN(pdn)->iommu_table;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* If we have ISA, then we probably have an IDE
|
||||||
|
* controller too. Allocate a 128MB table but
|
||||||
|
* skip the first 128MB to avoid stepping on ISA
|
||||||
|
* space.
|
||||||
|
*/
|
||||||
|
pci->phb->dma_window_size = 0x8000000ul;
|
||||||
|
pci->phb->dma_window_base_cur = 0x8000000ul;
|
||||||
|
|
||||||
|
tbl = kmalloc(sizeof(struct iommu_table), GFP_KERNEL);
|
||||||
|
|
||||||
|
iommu_table_setparms(pci->phb, dn, tbl);
|
||||||
|
pci->iommu_table = iommu_init_table(tbl);
|
||||||
|
|
||||||
|
/* Divide the rest (1.75GB) among the children */
|
||||||
|
pci->phb->dma_window_size = 0x80000000ul;
|
||||||
|
while (pci->phb->dma_window_size * children > 0x70000000ul)
|
||||||
|
pci->phb->dma_window_size >>= 1;
|
||||||
|
|
||||||
|
DBG("ISA/IDE, window size is %x\n", pci->phb->dma_window_size);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -446,14 +440,29 @@ static void iommu_bus_setup_pSeriesLP(struct pci_bus *bus)
|
||||||
static void iommu_dev_setup_pSeries(struct pci_dev *dev)
|
static void iommu_dev_setup_pSeries(struct pci_dev *dev)
|
||||||
{
|
{
|
||||||
struct device_node *dn, *mydn;
|
struct device_node *dn, *mydn;
|
||||||
|
struct iommu_table *tbl;
|
||||||
|
|
||||||
DBG("iommu_dev_setup_pSeries, dev %p (%s)\n", dev, dev->pretty_name);
|
DBG("iommu_dev_setup_pSeries, dev %p (%s)\n", dev, dev->pretty_name);
|
||||||
/* Now copy the iommu_table ptr from the bus device down to the
|
|
||||||
* pci device_node. This means get_iommu_table() won't need to search
|
|
||||||
* up the device tree to find it.
|
|
||||||
*/
|
|
||||||
mydn = dn = pci_device_to_OF_node(dev);
|
mydn = dn = pci_device_to_OF_node(dev);
|
||||||
|
|
||||||
|
/* If we're the direct child of a root bus, then we need to allocate
|
||||||
|
* an iommu table ourselves. The bus setup code should have setup
|
||||||
|
* the window sizes already.
|
||||||
|
*/
|
||||||
|
if (!dev->bus->self) {
|
||||||
|
DBG(" --> first child, no bridge. Allocating iommu table.\n");
|
||||||
|
tbl = kmalloc(sizeof(struct iommu_table), GFP_KERNEL);
|
||||||
|
iommu_table_setparms(PCI_DN(dn)->phb, dn, tbl);
|
||||||
|
PCI_DN(mydn)->iommu_table = iommu_init_table(tbl);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* If this device is further down the bus tree, search upwards until
|
||||||
|
* an already allocated iommu table is found and use that.
|
||||||
|
*/
|
||||||
|
|
||||||
while (dn && dn->data && PCI_DN(dn)->iommu_table == NULL)
|
while (dn && dn->data && PCI_DN(dn)->iommu_table == NULL)
|
||||||
dn = dn->parent;
|
dn = dn->parent;
|
||||||
|
|
||||||
|
|
|
@ -246,11 +246,14 @@ static unsigned int pci_parse_of_flags(u32 addr0)
|
||||||
unsigned int flags = 0;
|
unsigned int flags = 0;
|
||||||
|
|
||||||
if (addr0 & 0x02000000) {
|
if (addr0 & 0x02000000) {
|
||||||
flags |= IORESOURCE_MEM;
|
flags = IORESOURCE_MEM | PCI_BASE_ADDRESS_SPACE_MEMORY;
|
||||||
|
flags |= (addr0 >> 22) & PCI_BASE_ADDRESS_MEM_TYPE_64;
|
||||||
|
flags |= (addr0 >> 28) & PCI_BASE_ADDRESS_MEM_TYPE_1M;
|
||||||
if (addr0 & 0x40000000)
|
if (addr0 & 0x40000000)
|
||||||
flags |= IORESOURCE_PREFETCH;
|
flags |= IORESOURCE_PREFETCH
|
||||||
|
| PCI_BASE_ADDRESS_MEM_PREFETCH;
|
||||||
} else if (addr0 & 0x01000000)
|
} else if (addr0 & 0x01000000)
|
||||||
flags |= IORESOURCE_IO;
|
flags = IORESOURCE_IO | PCI_BASE_ADDRESS_SPACE_IO;
|
||||||
return flags;
|
return flags;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1711,6 +1711,7 @@ static void __init flatten_device_tree(void)
|
||||||
unsigned long offset = reloc_offset();
|
unsigned long offset = reloc_offset();
|
||||||
unsigned long mem_start, mem_end, room;
|
unsigned long mem_start, mem_end, room;
|
||||||
struct boot_param_header *hdr;
|
struct boot_param_header *hdr;
|
||||||
|
struct prom_t *_prom = PTRRELOC(&prom);
|
||||||
char *namep;
|
char *namep;
|
||||||
u64 *rsvmap;
|
u64 *rsvmap;
|
||||||
|
|
||||||
|
@ -1765,6 +1766,7 @@ static void __init flatten_device_tree(void)
|
||||||
RELOC(dt_struct_end) = PAGE_ALIGN(mem_start);
|
RELOC(dt_struct_end) = PAGE_ALIGN(mem_start);
|
||||||
|
|
||||||
/* Finish header */
|
/* Finish header */
|
||||||
|
hdr->boot_cpuid_phys = _prom->cpu;
|
||||||
hdr->magic = OF_DT_HEADER;
|
hdr->magic = OF_DT_HEADER;
|
||||||
hdr->totalsize = RELOC(dt_struct_end) - RELOC(dt_header_start);
|
hdr->totalsize = RELOC(dt_struct_end) - RELOC(dt_header_start);
|
||||||
hdr->off_dt_struct = RELOC(dt_struct_start) - RELOC(dt_header_start);
|
hdr->off_dt_struct = RELOC(dt_struct_start) - RELOC(dt_header_start);
|
||||||
|
@ -1854,7 +1856,6 @@ static void __init prom_find_boot_cpu(void)
|
||||||
|
|
||||||
cpu_pkg = call_prom("instance-to-package", 1, 1, prom_cpu);
|
cpu_pkg = call_prom("instance-to-package", 1, 1, prom_cpu);
|
||||||
|
|
||||||
prom_setprop(cpu_pkg, "linux,boot-cpu", NULL, 0);
|
|
||||||
prom_getprop(cpu_pkg, "reg", &getprop_rval, sizeof(getprop_rval));
|
prom_getprop(cpu_pkg, "reg", &getprop_rval, sizeof(getprop_rval));
|
||||||
_prom->cpu = getprop_rval;
|
_prom->cpu = getprop_rval;
|
||||||
|
|
||||||
|
|
|
@ -224,10 +224,7 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int executable_stack)
|
||||||
vma = kmem_cache_alloc(vm_area_cachep, SLAB_KERNEL);
|
vma = kmem_cache_alloc(vm_area_cachep, SLAB_KERNEL);
|
||||||
if (vma == NULL)
|
if (vma == NULL)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
if (security_vm_enough_memory(vdso_pages)) {
|
|
||||||
kmem_cache_free(vm_area_cachep, vma);
|
|
||||||
return -ENOMEM;
|
|
||||||
}
|
|
||||||
memset(vma, 0, sizeof(*vma));
|
memset(vma, 0, sizeof(*vma));
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -237,8 +234,10 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int executable_stack)
|
||||||
*/
|
*/
|
||||||
vdso_base = get_unmapped_area(NULL, vdso_base,
|
vdso_base = get_unmapped_area(NULL, vdso_base,
|
||||||
vdso_pages << PAGE_SHIFT, 0, 0);
|
vdso_pages << PAGE_SHIFT, 0, 0);
|
||||||
if (vdso_base & ~PAGE_MASK)
|
if (vdso_base & ~PAGE_MASK) {
|
||||||
|
kmem_cache_free(vm_area_cachep, vma);
|
||||||
return (int)vdso_base;
|
return (int)vdso_base;
|
||||||
|
}
|
||||||
|
|
||||||
current->thread.vdso_base = vdso_base;
|
current->thread.vdso_base = vdso_base;
|
||||||
|
|
||||||
|
@ -266,7 +265,11 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int executable_stack)
|
||||||
vma->vm_ops = &vdso_vmops;
|
vma->vm_ops = &vdso_vmops;
|
||||||
|
|
||||||
down_write(&mm->mmap_sem);
|
down_write(&mm->mmap_sem);
|
||||||
insert_vm_struct(mm, vma);
|
if (insert_vm_struct(mm, vma)) {
|
||||||
|
up_write(&mm->mmap_sem);
|
||||||
|
kmem_cache_free(vm_area_cachep, vma);
|
||||||
|
return -ENOMEM;
|
||||||
|
}
|
||||||
mm->total_vm += (vma->vm_end - vma->vm_start) >> PAGE_SHIFT;
|
mm->total_vm += (vma->vm_end - vma->vm_start) >> PAGE_SHIFT;
|
||||||
up_write(&mm->mmap_sem);
|
up_write(&mm->mmap_sem);
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
# Makefile for ppc64-specific library files..
|
# Makefile for ppc64-specific library files..
|
||||||
#
|
#
|
||||||
|
|
||||||
lib-y := checksum.o dec_and_lock.o string.o strcase.o
|
lib-y := checksum.o string.o strcase.o
|
||||||
lib-y += copypage.o memcpy.o copyuser.o usercopy.o
|
lib-y += copypage.o memcpy.o copyuser.o usercopy.o
|
||||||
|
|
||||||
# Lock primitives are defined as no-ops in include/linux/spinlock.h
|
# Lock primitives are defined as no-ops in include/linux/spinlock.h
|
||||||
|
|
|
@ -1,47 +0,0 @@
|
||||||
/*
|
|
||||||
* ppc64 version of atomic_dec_and_lock() using cmpxchg
|
|
||||||
*
|
|
||||||
* 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 the Free Software Foundation; either version
|
|
||||||
* 2 of the License, or (at your option) any later version.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <linux/module.h>
|
|
||||||
#include <linux/spinlock.h>
|
|
||||||
#include <asm/atomic.h>
|
|
||||||
#include <asm/system.h>
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This is an implementation of the notion of "decrement a
|
|
||||||
* reference count, and return locked if it decremented to zero".
|
|
||||||
*
|
|
||||||
* This implementation can be used on any architecture that
|
|
||||||
* has a cmpxchg, and where atomic->value is an int holding
|
|
||||||
* the value of the atomic (i.e. the high bits aren't used
|
|
||||||
* for a lock or anything like that).
|
|
||||||
*/
|
|
||||||
int _atomic_dec_and_lock(atomic_t *atomic, spinlock_t *lock)
|
|
||||||
{
|
|
||||||
int counter;
|
|
||||||
int newcount;
|
|
||||||
|
|
||||||
for (;;) {
|
|
||||||
counter = atomic_read(atomic);
|
|
||||||
newcount = counter - 1;
|
|
||||||
if (!newcount)
|
|
||||||
break; /* do it the slow way */
|
|
||||||
|
|
||||||
newcount = cmpxchg(&atomic->counter, counter, newcount);
|
|
||||||
if (newcount == counter)
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
spin_lock(lock);
|
|
||||||
if (atomic_dec_and_test(atomic))
|
|
||||||
return 1;
|
|
||||||
spin_unlock(lock);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
EXPORT_SYMBOL(_atomic_dec_and_lock);
|
|
|
@ -38,6 +38,7 @@
|
||||||
#include <asm/system.h>
|
#include <asm/system.h>
|
||||||
#include <asm/uaccess.h>
|
#include <asm/uaccess.h>
|
||||||
#include <asm/kdebug.h>
|
#include <asm/kdebug.h>
|
||||||
|
#include <asm/siginfo.h>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Check whether the instruction at regs->nip is a store using
|
* Check whether the instruction at regs->nip is a store using
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#
|
#
|
||||||
# Automatically generated make config: don't edit
|
# Automatically generated make config: don't edit
|
||||||
# Linux kernel version: 2.6.13-rc4
|
# Linux kernel version: 2.6.14-rc1
|
||||||
# Fri Jul 29 14:49:30 2005
|
# Wed Sep 14 16:46:19 2005
|
||||||
#
|
#
|
||||||
CONFIG_MMU=y
|
CONFIG_MMU=y
|
||||||
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
|
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
|
||||||
|
@ -21,6 +21,7 @@ CONFIG_INIT_ENV_ARG_LIMIT=32
|
||||||
# General setup
|
# General setup
|
||||||
#
|
#
|
||||||
CONFIG_LOCALVERSION=""
|
CONFIG_LOCALVERSION=""
|
||||||
|
CONFIG_LOCALVERSION_AUTO=y
|
||||||
CONFIG_SWAP=y
|
CONFIG_SWAP=y
|
||||||
CONFIG_SYSVIPC=y
|
CONFIG_SYSVIPC=y
|
||||||
CONFIG_POSIX_MQUEUE=y
|
CONFIG_POSIX_MQUEUE=y
|
||||||
|
@ -33,6 +34,7 @@ CONFIG_KOBJECT_UEVENT=y
|
||||||
CONFIG_IKCONFIG=y
|
CONFIG_IKCONFIG=y
|
||||||
CONFIG_IKCONFIG_PROC=y
|
CONFIG_IKCONFIG_PROC=y
|
||||||
# CONFIG_CPUSETS is not set
|
# CONFIG_CPUSETS is not set
|
||||||
|
CONFIG_INITRAMFS_SOURCE=""
|
||||||
# CONFIG_EMBEDDED is not set
|
# CONFIG_EMBEDDED is not set
|
||||||
CONFIG_KALLSYMS=y
|
CONFIG_KALLSYMS=y
|
||||||
# CONFIG_KALLSYMS_ALL is not set
|
# CONFIG_KALLSYMS_ALL is not set
|
||||||
|
@ -94,6 +96,7 @@ CONFIG_FLATMEM_MANUAL=y
|
||||||
# CONFIG_SPARSEMEM_MANUAL is not set
|
# CONFIG_SPARSEMEM_MANUAL is not set
|
||||||
CONFIG_FLATMEM=y
|
CONFIG_FLATMEM=y
|
||||||
CONFIG_FLAT_NODE_MEM_MAP=y
|
CONFIG_FLAT_NODE_MEM_MAP=y
|
||||||
|
# CONFIG_SPARSEMEM_STATIC is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# I/O subsystem configuration
|
# I/O subsystem configuration
|
||||||
|
@ -151,8 +154,8 @@ CONFIG_IP_FIB_HASH=y
|
||||||
# CONFIG_INET_ESP is not set
|
# CONFIG_INET_ESP is not set
|
||||||
# CONFIG_INET_IPCOMP is not set
|
# CONFIG_INET_IPCOMP is not set
|
||||||
# CONFIG_INET_TUNNEL is not set
|
# CONFIG_INET_TUNNEL is not set
|
||||||
CONFIG_IP_TCPDIAG=y
|
CONFIG_INET_DIAG=y
|
||||||
CONFIG_IP_TCPDIAG_IPV6=y
|
CONFIG_INET_TCP_DIAG=y
|
||||||
# CONFIG_TCP_CONG_ADVANCED is not set
|
# CONFIG_TCP_CONG_ADVANCED is not set
|
||||||
CONFIG_TCP_CONG_BIC=y
|
CONFIG_TCP_CONG_BIC=y
|
||||||
CONFIG_IPV6=y
|
CONFIG_IPV6=y
|
||||||
|
@ -164,6 +167,11 @@ CONFIG_IPV6=y
|
||||||
# CONFIG_IPV6_TUNNEL is not set
|
# CONFIG_IPV6_TUNNEL is not set
|
||||||
# CONFIG_NETFILTER is not set
|
# CONFIG_NETFILTER is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# DCCP Configuration (EXPERIMENTAL)
|
||||||
|
#
|
||||||
|
# CONFIG_IP_DCCP is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# SCTP Configuration (EXPERIMENTAL)
|
# SCTP Configuration (EXPERIMENTAL)
|
||||||
#
|
#
|
||||||
|
@ -217,9 +225,11 @@ CONFIG_NET_CLS_POLICE=y
|
||||||
# Network testing
|
# Network testing
|
||||||
#
|
#
|
||||||
# CONFIG_NET_PKTGEN is not set
|
# CONFIG_NET_PKTGEN is not set
|
||||||
|
# CONFIG_NETFILTER_NETLINK is not set
|
||||||
# CONFIG_HAMRADIO is not set
|
# CONFIG_HAMRADIO is not set
|
||||||
# CONFIG_IRDA is not set
|
# CONFIG_IRDA is not set
|
||||||
# CONFIG_BT is not set
|
# CONFIG_BT is not set
|
||||||
|
# CONFIG_IEEE80211 is not set
|
||||||
# CONFIG_PCMCIA is not set
|
# CONFIG_PCMCIA is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -233,6 +243,7 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
|
||||||
#
|
#
|
||||||
# SCSI device support
|
# SCSI device support
|
||||||
#
|
#
|
||||||
|
# CONFIG_RAID_ATTRS is not set
|
||||||
CONFIG_SCSI=y
|
CONFIG_SCSI=y
|
||||||
CONFIG_SCSI_PROC_FS=y
|
CONFIG_SCSI_PROC_FS=y
|
||||||
|
|
||||||
|
@ -260,6 +271,7 @@ CONFIG_SCSI_LOGGING=y
|
||||||
# CONFIG_SCSI_SPI_ATTRS is not set
|
# CONFIG_SCSI_SPI_ATTRS is not set
|
||||||
CONFIG_SCSI_FC_ATTRS=y
|
CONFIG_SCSI_FC_ATTRS=y
|
||||||
# CONFIG_SCSI_ISCSI_ATTRS is not set
|
# CONFIG_SCSI_ISCSI_ATTRS is not set
|
||||||
|
# CONFIG_SCSI_SAS_ATTRS is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# SCSI low-level drivers
|
# SCSI low-level drivers
|
||||||
|
@ -280,7 +292,6 @@ CONFIG_BLK_DEV_RAM=y
|
||||||
CONFIG_BLK_DEV_RAM_COUNT=16
|
CONFIG_BLK_DEV_RAM_COUNT=16
|
||||||
CONFIG_BLK_DEV_RAM_SIZE=4096
|
CONFIG_BLK_DEV_RAM_SIZE=4096
|
||||||
CONFIG_BLK_DEV_INITRD=y
|
CONFIG_BLK_DEV_INITRD=y
|
||||||
CONFIG_INITRAMFS_SOURCE=""
|
|
||||||
# CONFIG_LBD is not set
|
# CONFIG_LBD is not set
|
||||||
# CONFIG_CDROM_PKTCDVD is not set
|
# CONFIG_CDROM_PKTCDVD is not set
|
||||||
|
|
||||||
|
@ -383,6 +394,10 @@ CONFIG_BONDING=m
|
||||||
CONFIG_EQUALIZER=m
|
CONFIG_EQUALIZER=m
|
||||||
CONFIG_TUN=m
|
CONFIG_TUN=m
|
||||||
|
|
||||||
|
#
|
||||||
|
# PHY device support
|
||||||
|
#
|
||||||
|
|
||||||
#
|
#
|
||||||
# Ethernet (10 or 100Mbit)
|
# Ethernet (10 or 100Mbit)
|
||||||
#
|
#
|
||||||
|
@ -453,10 +468,6 @@ CONFIG_FS_MBCACHE=y
|
||||||
# CONFIG_REISERFS_FS is not set
|
# CONFIG_REISERFS_FS is not set
|
||||||
# CONFIG_JFS_FS is not set
|
# CONFIG_JFS_FS is not set
|
||||||
# CONFIG_FS_POSIX_ACL is not set
|
# CONFIG_FS_POSIX_ACL is not set
|
||||||
|
|
||||||
#
|
|
||||||
# XFS support
|
|
||||||
#
|
|
||||||
# CONFIG_XFS_FS is not set
|
# CONFIG_XFS_FS is not set
|
||||||
# CONFIG_MINIX_FS is not set
|
# CONFIG_MINIX_FS is not set
|
||||||
# CONFIG_ROMFS_FS is not set
|
# CONFIG_ROMFS_FS is not set
|
||||||
|
@ -465,6 +476,7 @@ CONFIG_INOTIFY=y
|
||||||
CONFIG_DNOTIFY=y
|
CONFIG_DNOTIFY=y
|
||||||
# CONFIG_AUTOFS_FS is not set
|
# CONFIG_AUTOFS_FS is not set
|
||||||
# CONFIG_AUTOFS4_FS is not set
|
# CONFIG_AUTOFS4_FS is not set
|
||||||
|
# CONFIG_FUSE_FS is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# CD-ROM/DVD Filesystems
|
# CD-ROM/DVD Filesystems
|
||||||
|
@ -485,11 +497,10 @@ CONFIG_DNOTIFY=y
|
||||||
CONFIG_PROC_FS=y
|
CONFIG_PROC_FS=y
|
||||||
CONFIG_PROC_KCORE=y
|
CONFIG_PROC_KCORE=y
|
||||||
CONFIG_SYSFS=y
|
CONFIG_SYSFS=y
|
||||||
# CONFIG_DEVPTS_FS_XATTR is not set
|
|
||||||
CONFIG_TMPFS=y
|
CONFIG_TMPFS=y
|
||||||
# CONFIG_TMPFS_XATTR is not set
|
|
||||||
# CONFIG_HUGETLB_PAGE is not set
|
# CONFIG_HUGETLB_PAGE is not set
|
||||||
CONFIG_RAMFS=y
|
CONFIG_RAMFS=y
|
||||||
|
# CONFIG_RELAYFS_FS is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Miscellaneous filesystems
|
# Miscellaneous filesystems
|
||||||
|
@ -533,6 +544,7 @@ CONFIG_SUNRPC=y
|
||||||
# CONFIG_NCP_FS is not set
|
# CONFIG_NCP_FS is not set
|
||||||
# CONFIG_CODA_FS is not set
|
# CONFIG_CODA_FS is not set
|
||||||
# CONFIG_AFS_FS is not set
|
# CONFIG_AFS_FS is not set
|
||||||
|
# CONFIG_9P_FS is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Partition Types
|
# Partition Types
|
||||||
|
@ -572,6 +584,7 @@ CONFIG_MSDOS_PARTITION=y
|
||||||
CONFIG_DEBUG_KERNEL=y
|
CONFIG_DEBUG_KERNEL=y
|
||||||
CONFIG_MAGIC_SYSRQ=y
|
CONFIG_MAGIC_SYSRQ=y
|
||||||
CONFIG_LOG_BUF_SHIFT=17
|
CONFIG_LOG_BUF_SHIFT=17
|
||||||
|
CONFIG_DETECT_SOFTLOCKUP=y
|
||||||
# CONFIG_SCHEDSTATS is not set
|
# CONFIG_SCHEDSTATS is not set
|
||||||
# CONFIG_DEBUG_SLAB is not set
|
# CONFIG_DEBUG_SLAB is not set
|
||||||
CONFIG_DEBUG_PREEMPT=y
|
CONFIG_DEBUG_PREEMPT=y
|
||||||
|
@ -626,5 +639,6 @@ CONFIG_CRYPTO=y
|
||||||
# Library routines
|
# Library routines
|
||||||
#
|
#
|
||||||
# CONFIG_CRC_CCITT is not set
|
# CONFIG_CRC_CCITT is not set
|
||||||
|
# CONFIG_CRC16 is not set
|
||||||
CONFIG_CRC32=m
|
CONFIG_CRC32=m
|
||||||
# CONFIG_LIBCRC32C is not set
|
# CONFIG_LIBCRC32C is not set
|
||||||
|
|
|
@ -6,7 +6,7 @@ EXTRA_AFLAGS := -traditional
|
||||||
|
|
||||||
obj-y := bitmap.o traps.o time.o process.o \
|
obj-y := bitmap.o traps.o time.o process.o \
|
||||||
setup.o sys_s390.o ptrace.o signal.o cpcmd.o ebcdic.o \
|
setup.o sys_s390.o ptrace.o signal.o cpcmd.o ebcdic.o \
|
||||||
semaphore.o s390_ext.o debug.o profile.o irq.o
|
semaphore.o s390_ext.o debug.o profile.o irq.o reipl_diag.o
|
||||||
|
|
||||||
extra-$(CONFIG_ARCH_S390_31) += head.o
|
extra-$(CONFIG_ARCH_S390_31) += head.o
|
||||||
extra-$(CONFIG_ARCH_S390X) += head64.o
|
extra-$(CONFIG_ARCH_S390X) += head64.o
|
||||||
|
|
|
@ -108,7 +108,7 @@ STACK_SIZE = 1 << STACK_SHIFT
|
||||||
bl BASED(0f)
|
bl BASED(0f)
|
||||||
l %r14,BASED(.Lcleanup_critical)
|
l %r14,BASED(.Lcleanup_critical)
|
||||||
basr %r14,%r14
|
basr %r14,%r14
|
||||||
tm 0(%r12),0x01 # retest problem state after cleanup
|
tm 1(%r12),0x01 # retest problem state after cleanup
|
||||||
bnz BASED(1f)
|
bnz BASED(1f)
|
||||||
0: l %r14,__LC_ASYNC_STACK # are we already on the async stack ?
|
0: l %r14,__LC_ASYNC_STACK # are we already on the async stack ?
|
||||||
slr %r14,%r15
|
slr %r14,%r15
|
||||||
|
|
|
@ -101,7 +101,7 @@ _TIF_WORK_INT = (_TIF_SIGPENDING | _TIF_NEED_RESCHED | _TIF_MCCK_PENDING)
|
||||||
clc \psworg+8(8),BASED(.Lcritical_start)
|
clc \psworg+8(8),BASED(.Lcritical_start)
|
||||||
jl 0f
|
jl 0f
|
||||||
brasl %r14,cleanup_critical
|
brasl %r14,cleanup_critical
|
||||||
tm 0(%r12),0x01 # retest problem state after cleanup
|
tm 1(%r12),0x01 # retest problem state after cleanup
|
||||||
jnz 1f
|
jnz 1f
|
||||||
0: lg %r14,__LC_ASYNC_STACK # are we already on the async. stack ?
|
0: lg %r14,__LC_ASYNC_STACK # are we already on the async. stack ?
|
||||||
slgr %r14,%r15
|
slgr %r14,%r15
|
||||||
|
|
39
arch/s390/kernel/reipl_diag.c
Normal file
39
arch/s390/kernel/reipl_diag.c
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
/*
|
||||||
|
* This file contains the implementation of the
|
||||||
|
* Linux re-IPL support
|
||||||
|
*
|
||||||
|
* (C) Copyright IBM Corp. 2005
|
||||||
|
*
|
||||||
|
* Author(s): Volker Sameske (sameske@de.ibm.com)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <linux/kernel.h>
|
||||||
|
|
||||||
|
static unsigned int reipl_diag_rc1;
|
||||||
|
static unsigned int reipl_diag_rc2;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* re-IPL the system using the last used IPL parameters
|
||||||
|
*/
|
||||||
|
void reipl_diag(void)
|
||||||
|
{
|
||||||
|
asm volatile (
|
||||||
|
" la %%r4,0\n"
|
||||||
|
" la %%r5,0\n"
|
||||||
|
" diag %%r4,%2,0x308\n"
|
||||||
|
"0:\n"
|
||||||
|
" st %%r4,%0\n"
|
||||||
|
" st %%r5,%1\n"
|
||||||
|
".section __ex_table,\"a\"\n"
|
||||||
|
#ifdef __s390x__
|
||||||
|
" .align 8\n"
|
||||||
|
" .quad 0b, 0b\n"
|
||||||
|
#else
|
||||||
|
" .align 4\n"
|
||||||
|
" .long 0b, 0b\n"
|
||||||
|
#endif
|
||||||
|
".previous\n"
|
||||||
|
: "=m" (reipl_diag_rc1), "=m" (reipl_diag_rc2)
|
||||||
|
: "d" (3) : "cc", "4", "5" );
|
||||||
|
}
|
|
@ -261,8 +261,11 @@ void (*_machine_power_off)(void) = machine_power_off_smp;
|
||||||
* Reboot, halt and power_off routines for non SMP.
|
* Reboot, halt and power_off routines for non SMP.
|
||||||
*/
|
*/
|
||||||
extern void reipl(unsigned long devno);
|
extern void reipl(unsigned long devno);
|
||||||
|
extern void reipl_diag(void);
|
||||||
static void do_machine_restart_nonsmp(char * __unused)
|
static void do_machine_restart_nonsmp(char * __unused)
|
||||||
{
|
{
|
||||||
|
reipl_diag();
|
||||||
|
|
||||||
if (MACHINE_IS_VM)
|
if (MACHINE_IS_VM)
|
||||||
cpcmd ("IPL", NULL, 0);
|
cpcmd ("IPL", NULL, 0);
|
||||||
else
|
else
|
||||||
|
@ -634,6 +637,7 @@ static int show_cpuinfo(struct seq_file *m, void *v)
|
||||||
struct cpuinfo_S390 *cpuinfo;
|
struct cpuinfo_S390 *cpuinfo;
|
||||||
unsigned long n = (unsigned long) v - 1;
|
unsigned long n = (unsigned long) v - 1;
|
||||||
|
|
||||||
|
preempt_disable();
|
||||||
if (!n) {
|
if (!n) {
|
||||||
seq_printf(m, "vendor_id : IBM/S390\n"
|
seq_printf(m, "vendor_id : IBM/S390\n"
|
||||||
"# processors : %i\n"
|
"# processors : %i\n"
|
||||||
|
@ -658,6 +662,7 @@ static int show_cpuinfo(struct seq_file *m, void *v)
|
||||||
cpuinfo->cpu_id.ident,
|
cpuinfo->cpu_id.ident,
|
||||||
cpuinfo->cpu_id.machine);
|
cpuinfo->cpu_id.machine);
|
||||||
}
|
}
|
||||||
|
preempt_enable();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -65,6 +65,7 @@ extern char vmhalt_cmd[];
|
||||||
extern char vmpoff_cmd[];
|
extern char vmpoff_cmd[];
|
||||||
|
|
||||||
extern void reipl(unsigned long devno);
|
extern void reipl(unsigned long devno);
|
||||||
|
extern void reipl_diag(void);
|
||||||
|
|
||||||
static void smp_ext_bitcall(int, ec_bit_sig);
|
static void smp_ext_bitcall(int, ec_bit_sig);
|
||||||
static void smp_ext_bitcall_others(ec_bit_sig);
|
static void smp_ext_bitcall_others(ec_bit_sig);
|
||||||
|
@ -283,6 +284,8 @@ static void do_machine_restart(void * __unused)
|
||||||
* interrupted by an external interrupt and s390irq
|
* interrupted by an external interrupt and s390irq
|
||||||
* locks are always held disabled).
|
* locks are always held disabled).
|
||||||
*/
|
*/
|
||||||
|
reipl_diag();
|
||||||
|
|
||||||
if (MACHINE_IS_VM)
|
if (MACHINE_IS_VM)
|
||||||
cpcmd ("IPL", NULL, 0, NULL);
|
cpcmd ("IPL", NULL, 0, NULL);
|
||||||
else
|
else
|
||||||
|
|
|
@ -33,14 +33,6 @@ config DEBUG_BOOTMEM
|
||||||
depends on DEBUG_KERNEL
|
depends on DEBUG_KERNEL
|
||||||
bool "Debug BOOTMEM initialization"
|
bool "Debug BOOTMEM initialization"
|
||||||
|
|
||||||
# We have a custom atomic_dec_and_lock() implementation but it's not
|
|
||||||
# compatible with spinlock debugging so we need to fall back on
|
|
||||||
# the generic version in that case.
|
|
||||||
config HAVE_DEC_LOCK
|
|
||||||
bool
|
|
||||||
depends on SMP && !DEBUG_SPINLOCK
|
|
||||||
default y
|
|
||||||
|
|
||||||
config MCOUNT
|
config MCOUNT
|
||||||
bool
|
bool
|
||||||
depends on STACK_DEBUG
|
depends on STACK_DEBUG
|
||||||
|
|
|
@ -42,19 +42,15 @@
|
||||||
* executing (see inherit_locked_prom_mappings() rant).
|
* executing (see inherit_locked_prom_mappings() rant).
|
||||||
*/
|
*/
|
||||||
sparc64_vpte_nucleus:
|
sparc64_vpte_nucleus:
|
||||||
/* Load 0xf0000000, which is LOW_OBP_ADDRESS. */
|
/* Note that kvmap below has verified that the address is
|
||||||
mov 0xf, %g5
|
* in the range MODULES_VADDR --> VMALLOC_END already. So
|
||||||
sllx %g5, 28, %g5
|
* here we need only check if it is an OBP address or not.
|
||||||
|
*/
|
||||||
/* Is addr >= LOW_OBP_ADDRESS? */
|
sethi %hi(LOW_OBP_ADDRESS), %g5
|
||||||
cmp %g4, %g5
|
cmp %g4, %g5
|
||||||
blu,pn %xcc, sparc64_vpte_patchme1
|
blu,pn %xcc, sparc64_vpte_patchme1
|
||||||
mov 0x1, %g5
|
mov 0x1, %g5
|
||||||
|
|
||||||
/* Load 0x100000000, which is HI_OBP_ADDRESS. */
|
|
||||||
sllx %g5, 32, %g5
|
sllx %g5, 32, %g5
|
||||||
|
|
||||||
/* Is addr < HI_OBP_ADDRESS? */
|
|
||||||
cmp %g4, %g5
|
cmp %g4, %g5
|
||||||
blu,pn %xcc, obp_iaddr_patch
|
blu,pn %xcc, obp_iaddr_patch
|
||||||
nop
|
nop
|
||||||
|
@ -156,26 +152,29 @@ obp_daddr_patch:
|
||||||
* rather, use information saved during inherit_prom_mappings() using 8k
|
* rather, use information saved during inherit_prom_mappings() using 8k
|
||||||
* pagesize.
|
* pagesize.
|
||||||
*/
|
*/
|
||||||
|
.align 32
|
||||||
kvmap:
|
kvmap:
|
||||||
/* Load 0xf0000000, which is LOW_OBP_ADDRESS. */
|
sethi %hi(MODULES_VADDR), %g5
|
||||||
mov 0xf, %g5
|
|
||||||
sllx %g5, 28, %g5
|
|
||||||
|
|
||||||
/* Is addr >= LOW_OBP_ADDRESS? */
|
|
||||||
cmp %g4, %g5
|
cmp %g4, %g5
|
||||||
blu,pn %xcc, vmalloc_addr
|
blu,pn %xcc, longpath
|
||||||
|
mov (VMALLOC_END >> 24), %g5
|
||||||
|
sllx %g5, 24, %g5
|
||||||
|
cmp %g4, %g5
|
||||||
|
bgeu,pn %xcc, longpath
|
||||||
|
nop
|
||||||
|
|
||||||
|
kvmap_check_obp:
|
||||||
|
sethi %hi(LOW_OBP_ADDRESS), %g5
|
||||||
|
cmp %g4, %g5
|
||||||
|
blu,pn %xcc, kvmap_vmalloc_addr
|
||||||
mov 0x1, %g5
|
mov 0x1, %g5
|
||||||
|
|
||||||
/* Load 0x100000000, which is HI_OBP_ADDRESS. */
|
|
||||||
sllx %g5, 32, %g5
|
sllx %g5, 32, %g5
|
||||||
|
|
||||||
/* Is addr < HI_OBP_ADDRESS? */
|
|
||||||
cmp %g4, %g5
|
cmp %g4, %g5
|
||||||
blu,pn %xcc, obp_daddr_patch
|
blu,pn %xcc, obp_daddr_patch
|
||||||
nop
|
nop
|
||||||
|
|
||||||
vmalloc_addr:
|
kvmap_vmalloc_addr:
|
||||||
/* If we get here, a vmalloc addr accessed, load kernel VPTE. */
|
/* If we get here, a vmalloc addr was accessed, load kernel VPTE. */
|
||||||
ldxa [%g3 + %g6] ASI_N, %g5
|
ldxa [%g3 + %g6] ASI_N, %g5
|
||||||
brgez,pn %g5, longpath
|
brgez,pn %g5, longpath
|
||||||
nop
|
nop
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue