Merge from Linus' tree
This commit is contained in:
commit
b6ec995a21
|
@ -301,8 +301,84 @@ now, but you can do this to mark internal company procedures or just
|
||||||
point out some special detail about the sign-off.
|
point out some special detail about the sign-off.
|
||||||
|
|
||||||
|
|
||||||
|
12) The canonical patch format
|
||||||
|
|
||||||
12) More references for submitting patches
|
The canonical patch subject line is:
|
||||||
|
|
||||||
|
Subject: [PATCH 001/123] subsystem: summary phrase
|
||||||
|
|
||||||
|
The canonical patch message body contains the following:
|
||||||
|
|
||||||
|
- A "from" line specifying the patch author.
|
||||||
|
|
||||||
|
- An empty line.
|
||||||
|
|
||||||
|
- The body of the explanation, which will be copied to the
|
||||||
|
permanent changelog to describe this patch.
|
||||||
|
|
||||||
|
- The "Signed-off-by:" lines, described above, which will
|
||||||
|
also go in the changelog.
|
||||||
|
|
||||||
|
- A marker line containing simply "---".
|
||||||
|
|
||||||
|
- Any additional comments not suitable for the changelog.
|
||||||
|
|
||||||
|
- The actual patch (diff output).
|
||||||
|
|
||||||
|
The Subject line format makes it very easy to sort the emails
|
||||||
|
alphabetically by subject line - pretty much any email reader will
|
||||||
|
support that - since because the sequence number is zero-padded,
|
||||||
|
the numerical and alphabetic sort is the same.
|
||||||
|
|
||||||
|
The "subsystem" in the email's Subject should identify which
|
||||||
|
area or subsystem of the kernel is being patched.
|
||||||
|
|
||||||
|
The "summary phrase" in the email's Subject should concisely
|
||||||
|
describe the patch which that email contains. The "summary
|
||||||
|
phrase" should not be a filename. Do not use the same "summary
|
||||||
|
phrase" for every patch in a whole patch series.
|
||||||
|
|
||||||
|
Bear in mind that the "summary phrase" of your email becomes
|
||||||
|
a globally-unique identifier for that patch. It propagates
|
||||||
|
all the way into the git changelog. The "summary phrase" may
|
||||||
|
later be used in developer discussions which refer to the patch.
|
||||||
|
People will want to google for the "summary phrase" to read
|
||||||
|
discussion regarding that patch.
|
||||||
|
|
||||||
|
A couple of example Subjects:
|
||||||
|
|
||||||
|
Subject: [patch 2/5] ext2: improve scalability of bitmap searching
|
||||||
|
Subject: [PATCHv2 001/207] x86: fix eflags tracking
|
||||||
|
|
||||||
|
The "from" line must be the very first line in the message body,
|
||||||
|
and has the form:
|
||||||
|
|
||||||
|
From: Original Author <author@example.com>
|
||||||
|
|
||||||
|
The "from" line specifies who will be credited as the author of the
|
||||||
|
patch in the permanent changelog. If the "from" line is missing,
|
||||||
|
then the "From:" line from the email header will be used to determine
|
||||||
|
the patch author in the changelog.
|
||||||
|
|
||||||
|
The explanation body will be committed to the permanent source
|
||||||
|
changelog, so should make sense to a competent reader who has long
|
||||||
|
since forgotten the immediate details of the discussion that might
|
||||||
|
have led to this patch.
|
||||||
|
|
||||||
|
The "---" marker line serves the essential purpose of marking for patch
|
||||||
|
handling tools where the changelog message ends.
|
||||||
|
|
||||||
|
One good use for the additional comments after the "---" marker is for
|
||||||
|
a diffstat, to show what files have changed, and the number of inserted
|
||||||
|
and deleted lines per file. A diffstat is especially useful on bigger
|
||||||
|
patches. Other comments relevant only to the moment or the maintainer,
|
||||||
|
not suitable for the permanent changelog, should also go here.
|
||||||
|
|
||||||
|
See more details on the proper patch format in the following
|
||||||
|
references.
|
||||||
|
|
||||||
|
|
||||||
|
13) More references for submitting patches
|
||||||
|
|
||||||
Andrew Morton, "The perfect patch" (tpp).
|
Andrew Morton, "The perfect patch" (tpp).
|
||||||
<http://www.zip.com.au/~akpm/linux/patches/stuff/tpp.txt>
|
<http://www.zip.com.au/~akpm/linux/patches/stuff/tpp.txt>
|
||||||
|
@ -310,6 +386,14 @@ Andrew Morton, "The perfect patch" (tpp).
|
||||||
Jeff Garzik, "Linux kernel patch submission format."
|
Jeff Garzik, "Linux kernel patch submission format."
|
||||||
<http://linux.yyz.us/patch-format.html>
|
<http://linux.yyz.us/patch-format.html>
|
||||||
|
|
||||||
|
Greg KH, "How to piss off a kernel subsystem maintainer"
|
||||||
|
<http://www.kroah.com/log/2005/03/31/>
|
||||||
|
|
||||||
|
Kernel Documentation/CodingStyle
|
||||||
|
<http://sosdg.org/~coywolf/lxr/source/Documentation/CodingStyle>
|
||||||
|
|
||||||
|
Linus Torvald's mail on the canonical patch format:
|
||||||
|
<http://lkml.org/lkml/2005/4/7/183>
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------
|
-----------------------------------
|
||||||
|
|
|
@ -35,6 +35,7 @@ The driver load creates the following directories under the /sys file system.
|
||||||
/sys/class/firmware/dell_rbu/data
|
/sys/class/firmware/dell_rbu/data
|
||||||
/sys/devices/platform/dell_rbu/image_type
|
/sys/devices/platform/dell_rbu/image_type
|
||||||
/sys/devices/platform/dell_rbu/data
|
/sys/devices/platform/dell_rbu/data
|
||||||
|
/sys/devices/platform/dell_rbu/packet_size
|
||||||
|
|
||||||
The driver supports two types of update mechanism; monolithic and packetized.
|
The driver supports two types of update mechanism; monolithic and packetized.
|
||||||
These update mechanism depends upon the BIOS currently running on the system.
|
These update mechanism depends upon the BIOS currently running on the system.
|
||||||
|
@ -47,8 +48,26 @@ By default the driver uses monolithic memory for the update type. This can be
|
||||||
changed to packets 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.
|
In packet update mode the packet size has to be given before any packets can
|
||||||
|
be downloaded. It is done as below
|
||||||
|
echo XXXX > /sys/devices/platform/dell_rbu/packet_size
|
||||||
|
In the packet update mechanism, the user neesd to create a new file having
|
||||||
|
packets of data arranged back to back. It can be done as follows
|
||||||
|
The user creates packets header, gets the chunk of the BIOS image and
|
||||||
|
placs it next to the packetheader; now, the packetheader + BIOS image chunk
|
||||||
|
added to geather should match the specified packet_size. This makes one
|
||||||
|
packet, the user needs to create more such packets out of the entire BIOS
|
||||||
|
image file and then arrange all these packets back to back in to one single
|
||||||
|
file.
|
||||||
|
This file is then copied to /sys/class/firmware/dell_rbu/data.
|
||||||
|
Once this file gets to the driver, the driver extracts packet_size data from
|
||||||
|
the file and spreads it accross the physical memory in contiguous packet_sized
|
||||||
|
space.
|
||||||
|
This method makes sure that all the packets get to the driver in a single operation.
|
||||||
|
|
||||||
|
In monolithic update the user simply get the BIOS image (.hdr file) and copies
|
||||||
|
to the data file as is without any change to the BIOS image itself.
|
||||||
|
|
||||||
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
|
||||||
|
@ -58,7 +77,10 @@ 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 driver cannot be unloaded.
|
||||||
|
Also echoing either mono ,packet or init in to image_type will free up the
|
||||||
|
memory allocated by the driver.
|
||||||
|
|
||||||
If an user by accident executes steps 1 and 3 above without executing step 2;
|
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.
|
it will make the /sys/class/firmware/dell_rbu/ entries to disappear.
|
||||||
The entries can be recreated by doing the following
|
The entries can be recreated by doing the following
|
||||||
|
@ -66,15 +88,11 @@ echo init > /sys/devices/platform/dell_rbu/image_type
|
||||||
NOTE: echoing init in image_type does not change it original value.
|
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.
|
||||||
mechanism where the above steps 1,2,3 will repeated for every packet.
|
|
||||||
By reading the /sys/devices/platform/dell_rbu/data file all packet data
|
|
||||||
downloaded can be verified in a single file.
|
|
||||||
The packets are arranged in this file one after the other in a FIFO order.
|
|
||||||
|
|
||||||
NOTE:
|
NOTE:
|
||||||
This driver requires a patch for firmware_class.c which has the addition
|
This driver requires a patch for firmware_class.c which has the modified
|
||||||
of request_firmware_nowait_nohotplug function to wortk
|
request_firmware_nowait function.
|
||||||
Also after updating the BIOS image an user mdoe application neeeds to execute
|
Also after updating the BIOS image an user mdoe application neeeds to execute
|
||||||
code which message the BIOS update request to the BIOS. So on the next reboot
|
code which message the BIOS update request to the BIOS. So on the next reboot
|
||||||
the BIOS knows about the new image downloaded and it updates it self.
|
the BIOS knows about the new image downloaded and it updates it self.
|
||||||
|
|
161
Documentation/keys-request-key.txt
Normal file
161
Documentation/keys-request-key.txt
Normal file
|
@ -0,0 +1,161 @@
|
||||||
|
===================
|
||||||
|
KEY REQUEST SERVICE
|
||||||
|
===================
|
||||||
|
|
||||||
|
The key request service is part of the key retention service (refer to
|
||||||
|
Documentation/keys.txt). This document explains more fully how that the
|
||||||
|
requesting algorithm works.
|
||||||
|
|
||||||
|
The process starts by either the kernel requesting a service by calling
|
||||||
|
request_key():
|
||||||
|
|
||||||
|
struct key *request_key(const struct key_type *type,
|
||||||
|
const char *description,
|
||||||
|
const char *callout_string);
|
||||||
|
|
||||||
|
Or by userspace invoking the request_key system call:
|
||||||
|
|
||||||
|
key_serial_t request_key(const char *type,
|
||||||
|
const char *description,
|
||||||
|
const char *callout_info,
|
||||||
|
key_serial_t dest_keyring);
|
||||||
|
|
||||||
|
The main difference between the two access points is that the in-kernel
|
||||||
|
interface does not need to link the key to a keyring to prevent it from being
|
||||||
|
immediately destroyed. The kernel interface returns a pointer directly to the
|
||||||
|
key, and it's up to the caller to destroy the key.
|
||||||
|
|
||||||
|
The userspace interface links the key to a keyring associated with the process
|
||||||
|
to prevent the key from going away, and returns the serial number of the key to
|
||||||
|
the caller.
|
||||||
|
|
||||||
|
|
||||||
|
===========
|
||||||
|
THE PROCESS
|
||||||
|
===========
|
||||||
|
|
||||||
|
A request proceeds in the following manner:
|
||||||
|
|
||||||
|
(1) Process A calls request_key() [the userspace syscall calls the kernel
|
||||||
|
interface].
|
||||||
|
|
||||||
|
(2) request_key() searches the process's subscribed keyrings to see if there's
|
||||||
|
a suitable key there. If there is, it returns the key. If there isn't, and
|
||||||
|
callout_info is not set, an error is returned. Otherwise the process
|
||||||
|
proceeds to the next step.
|
||||||
|
|
||||||
|
(3) request_key() sees that A doesn't have the desired key yet, so it creates
|
||||||
|
two things:
|
||||||
|
|
||||||
|
(a) An uninstantiated key U of requested type and description.
|
||||||
|
|
||||||
|
(b) An authorisation key V that refers to key U and notes that process A
|
||||||
|
is the context in which key U should be instantiated and secured, and
|
||||||
|
from which associated key requests may be satisfied.
|
||||||
|
|
||||||
|
(4) request_key() then forks and executes /sbin/request-key with a new session
|
||||||
|
keyring that contains a link to auth key V.
|
||||||
|
|
||||||
|
(5) /sbin/request-key execs an appropriate program to perform the actual
|
||||||
|
instantiation.
|
||||||
|
|
||||||
|
(6) The program may want to access another key from A's context (say a
|
||||||
|
Kerberos TGT key). It just requests the appropriate key, and the keyring
|
||||||
|
search notes that the session keyring has auth key V in its bottom level.
|
||||||
|
|
||||||
|
This will permit it to then search the keyrings of process A with the
|
||||||
|
UID, GID, groups and security info of process A as if it was process A,
|
||||||
|
and come up with key W.
|
||||||
|
|
||||||
|
(7) The program then does what it must to get the data with which to
|
||||||
|
instantiate key U, using key W as a reference (perhaps it contacts a
|
||||||
|
Kerberos server using the TGT) and then instantiates key U.
|
||||||
|
|
||||||
|
(8) Upon instantiating key U, auth key V is automatically revoked so that it
|
||||||
|
may not be used again.
|
||||||
|
|
||||||
|
(9) The program then exits 0 and request_key() deletes key V and returns key
|
||||||
|
U to the caller.
|
||||||
|
|
||||||
|
This also extends further. If key W (step 5 above) didn't exist, key W would be
|
||||||
|
created uninstantiated, another auth key (X) would be created [as per step 3]
|
||||||
|
and another copy of /sbin/request-key spawned [as per step 4]; but the context
|
||||||
|
specified by auth key X will still be process A, as it was in auth key V.
|
||||||
|
|
||||||
|
This is because process A's keyrings can't simply be attached to
|
||||||
|
/sbin/request-key at the appropriate places because (a) execve will discard two
|
||||||
|
of them, and (b) it requires the same UID/GID/Groups all the way through.
|
||||||
|
|
||||||
|
|
||||||
|
======================
|
||||||
|
NEGATIVE INSTANTIATION
|
||||||
|
======================
|
||||||
|
|
||||||
|
Rather than instantiating a key, it is possible for the possessor of an
|
||||||
|
authorisation key to negatively instantiate a key that's under construction.
|
||||||
|
This is a short duration placeholder that causes any attempt at re-requesting
|
||||||
|
the key whilst it exists to fail with error ENOKEY.
|
||||||
|
|
||||||
|
This is provided to prevent excessive repeated spawning of /sbin/request-key
|
||||||
|
processes for a key that will never be obtainable.
|
||||||
|
|
||||||
|
Should the /sbin/request-key process exit anything other than 0 or die on a
|
||||||
|
signal, the key under construction will be automatically negatively
|
||||||
|
instantiated for a short amount of time.
|
||||||
|
|
||||||
|
|
||||||
|
====================
|
||||||
|
THE SEARCH ALGORITHM
|
||||||
|
====================
|
||||||
|
|
||||||
|
A search of any particular keyring proceeds in the following fashion:
|
||||||
|
|
||||||
|
(1) When the key management code searches for a key (keyring_search_aux) it
|
||||||
|
firstly calls key_permission(SEARCH) on the keyring it's starting with,
|
||||||
|
if this denies permission, it doesn't search further.
|
||||||
|
|
||||||
|
(2) It considers all the non-keyring keys within that keyring and, if any key
|
||||||
|
matches the criteria specified, calls key_permission(SEARCH) on it to see
|
||||||
|
if the key is allowed to be found. If it is, that key is returned; if
|
||||||
|
not, the search continues, and the error code is retained if of higher
|
||||||
|
priority than the one currently set.
|
||||||
|
|
||||||
|
(3) It then considers all the keyring-type keys in the keyring it's currently
|
||||||
|
searching. It calls key_permission(SEARCH) on each keyring, and if this
|
||||||
|
grants permission, it recurses, executing steps (2) and (3) on that
|
||||||
|
keyring.
|
||||||
|
|
||||||
|
The process stops immediately a valid key is found with permission granted to
|
||||||
|
use it. Any error from a previous match attempt is discarded and the key is
|
||||||
|
returned.
|
||||||
|
|
||||||
|
When search_process_keyrings() is invoked, it performs the following searches
|
||||||
|
until one succeeds:
|
||||||
|
|
||||||
|
(1) If extant, the process's thread keyring is searched.
|
||||||
|
|
||||||
|
(2) If extant, the process's process keyring is searched.
|
||||||
|
|
||||||
|
(3) The process's session keyring is searched.
|
||||||
|
|
||||||
|
(4) If the process has a request_key() authorisation key in its session
|
||||||
|
keyring then:
|
||||||
|
|
||||||
|
(a) If extant, the calling process's thread keyring is searched.
|
||||||
|
|
||||||
|
(b) If extant, the calling process's process keyring is searched.
|
||||||
|
|
||||||
|
(c) The calling process's session keyring is searched.
|
||||||
|
|
||||||
|
The moment one succeeds, all pending errors are discarded and the found key is
|
||||||
|
returned.
|
||||||
|
|
||||||
|
Only if all these fail does the whole thing fail with the highest priority
|
||||||
|
error. Note that several errors may have come from LSM.
|
||||||
|
|
||||||
|
The error priority is:
|
||||||
|
|
||||||
|
EKEYREVOKED > EKEYEXPIRED > ENOKEY
|
||||||
|
|
||||||
|
EACCES/EPERM are only returned on a direct search of a specific keyring where
|
||||||
|
the basal keyring does not grant Search permission.
|
|
@ -361,6 +361,8 @@ The main syscalls are:
|
||||||
/sbin/request-key will be invoked in an attempt to obtain a key. The
|
/sbin/request-key will be invoked in an attempt to obtain a key. The
|
||||||
callout_info string will be passed as an argument to the program.
|
callout_info string will be passed as an argument to the program.
|
||||||
|
|
||||||
|
See also Documentation/keys-request-key.txt.
|
||||||
|
|
||||||
|
|
||||||
The keyctl syscall functions are:
|
The keyctl syscall functions are:
|
||||||
|
|
||||||
|
@ -533,8 +535,8 @@ The keyctl syscall functions are:
|
||||||
|
|
||||||
(*) Read the payload data from a key:
|
(*) Read the payload data from a key:
|
||||||
|
|
||||||
key_serial_t keyctl(KEYCTL_READ, key_serial_t keyring, char *buffer,
|
long keyctl(KEYCTL_READ, key_serial_t keyring, char *buffer,
|
||||||
size_t buflen);
|
size_t buflen);
|
||||||
|
|
||||||
This function attempts to read the payload data from the specified key
|
This function attempts to read the payload data from the specified key
|
||||||
into the buffer. The process must have read permission on the key to
|
into the buffer. The process must have read permission on the key to
|
||||||
|
@ -555,9 +557,9 @@ The keyctl syscall functions are:
|
||||||
|
|
||||||
(*) Instantiate a partially constructed key.
|
(*) Instantiate a partially constructed key.
|
||||||
|
|
||||||
key_serial_t keyctl(KEYCTL_INSTANTIATE, key_serial_t key,
|
long keyctl(KEYCTL_INSTANTIATE, key_serial_t key,
|
||||||
const void *payload, size_t plen,
|
const void *payload, size_t plen,
|
||||||
key_serial_t keyring);
|
key_serial_t keyring);
|
||||||
|
|
||||||
If the kernel calls back to userspace to complete the instantiation of a
|
If the kernel calls back to userspace to complete the instantiation of a
|
||||||
key, userspace should use this call to supply data for the key before the
|
key, userspace should use this call to supply data for the key before the
|
||||||
|
@ -576,8 +578,8 @@ The keyctl syscall functions are:
|
||||||
|
|
||||||
(*) Negatively instantiate a partially constructed key.
|
(*) Negatively instantiate a partially constructed key.
|
||||||
|
|
||||||
key_serial_t keyctl(KEYCTL_NEGATE, key_serial_t key,
|
long keyctl(KEYCTL_NEGATE, key_serial_t key,
|
||||||
unsigned timeout, key_serial_t keyring);
|
unsigned timeout, key_serial_t keyring);
|
||||||
|
|
||||||
If the kernel calls back to userspace to complete the instantiation of a
|
If the kernel calls back to userspace to complete the instantiation of a
|
||||||
key, userspace should use this call mark the key as negative before the
|
key, userspace should use this call mark the key as negative before the
|
||||||
|
@ -688,6 +690,8 @@ payload contents" for more information.
|
||||||
If successful, the key will have been attached to the default keyring for
|
If successful, the key will have been attached to the default keyring for
|
||||||
implicitly obtained request-key keys, as set by KEYCTL_SET_REQKEY_KEYRING.
|
implicitly obtained request-key keys, as set by KEYCTL_SET_REQKEY_KEYRING.
|
||||||
|
|
||||||
|
See also Documentation/keys-request-key.txt.
|
||||||
|
|
||||||
|
|
||||||
(*) When it is no longer required, the key should be released using:
|
(*) When it is no longer required, the key should be released using:
|
||||||
|
|
||||||
|
|
|
@ -355,10 +355,14 @@ ip_dynaddr - BOOLEAN
|
||||||
Default: 0
|
Default: 0
|
||||||
|
|
||||||
icmp_echo_ignore_all - BOOLEAN
|
icmp_echo_ignore_all - BOOLEAN
|
||||||
|
If set non-zero, then the kernel will ignore all ICMP ECHO
|
||||||
|
requests sent to it.
|
||||||
|
Default: 0
|
||||||
|
|
||||||
icmp_echo_ignore_broadcasts - BOOLEAN
|
icmp_echo_ignore_broadcasts - BOOLEAN
|
||||||
If either is set to true, then the kernel will ignore either all
|
If set non-zero, then the kernel will ignore all ICMP ECHO and
|
||||||
ICMP ECHO requests sent to it or just those to broadcast/multicast
|
TIMESTAMP requests sent to it via broadcast/multicast.
|
||||||
addresses, respectively.
|
Default: 1
|
||||||
|
|
||||||
icmp_ratelimit - INTEGER
|
icmp_ratelimit - INTEGER
|
||||||
Limit the maximal rates for sending ICMP packets whose type matches
|
Limit the maximal rates for sending ICMP packets whose type matches
|
||||||
|
|
17
MAINTAINERS
17
MAINTAINERS
|
@ -1168,11 +1168,6 @@ L: linux1394-devel@lists.sourceforge.net
|
||||||
W: http://www.linux1394.org/
|
W: http://www.linux1394.org/
|
||||||
S: Orphan
|
S: Orphan
|
||||||
|
|
||||||
IEEE 1394 SBP2
|
|
||||||
L: linux1394-devel@lists.sourceforge.net
|
|
||||||
W: http://www.linux1394.org/
|
|
||||||
S: Orphan
|
|
||||||
|
|
||||||
IEEE 1394 SUBSYSTEM
|
IEEE 1394 SUBSYSTEM
|
||||||
P: Ben Collins
|
P: Ben Collins
|
||||||
M: bcollins@debian.org
|
M: bcollins@debian.org
|
||||||
|
@ -1207,6 +1202,15 @@ L: linux1394-devel@lists.sourceforge.net
|
||||||
W: http://www.linux1394.org/
|
W: http://www.linux1394.org/
|
||||||
S: Maintained
|
S: Maintained
|
||||||
|
|
||||||
|
IEEE 1394 SBP2
|
||||||
|
P: Ben Collins
|
||||||
|
M: bcollins@debian.org
|
||||||
|
P: Stefan Richter
|
||||||
|
M: stefanr@s5r6.in-berlin.de
|
||||||
|
L: linux1394-devel@lists.sourceforge.net
|
||||||
|
W: http://www.linux1394.org/
|
||||||
|
S: Maintained
|
||||||
|
|
||||||
IMS TWINTURBO FRAMEBUFFER DRIVER
|
IMS TWINTURBO FRAMEBUFFER DRIVER
|
||||||
P: Paul Mundt
|
P: Paul Mundt
|
||||||
M: lethal@chaoticdreams.org
|
M: lethal@chaoticdreams.org
|
||||||
|
@ -1743,8 +1747,11 @@ S: Maintained
|
||||||
IPVS
|
IPVS
|
||||||
P: Wensong Zhang
|
P: Wensong Zhang
|
||||||
M: wensong@linux-vs.org
|
M: wensong@linux-vs.org
|
||||||
|
P: Simon Horman
|
||||||
|
M: horms@verge.net.au
|
||||||
P: Julian Anastasov
|
P: Julian Anastasov
|
||||||
M: ja@ssi.bg
|
M: ja@ssi.bg
|
||||||
|
L: netdev@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
|
|
||||||
NFS CLIENT
|
NFS CLIENT
|
||||||
|
|
2
Makefile
2
Makefile
|
@ -1,7 +1,7 @@
|
||||||
VERSION = 2
|
VERSION = 2
|
||||||
PATCHLEVEL = 6
|
PATCHLEVEL = 6
|
||||||
SUBLEVEL = 14
|
SUBLEVEL = 14
|
||||||
EXTRAVERSION =-rc2
|
EXTRAVERSION =-rc4
|
||||||
NAME=Affluent Albatross
|
NAME=Affluent Albatross
|
||||||
|
|
||||||
# *DOCUMENTATION*
|
# *DOCUMENTATION*
|
||||||
|
|
|
@ -196,6 +196,7 @@ entUna:
|
||||||
stq $26, 208($sp)
|
stq $26, 208($sp)
|
||||||
stq $27, 216($sp)
|
stq $27, 216($sp)
|
||||||
stq $28, 224($sp)
|
stq $28, 224($sp)
|
||||||
|
mov $sp, $19
|
||||||
stq $gp, 232($sp)
|
stq $gp, 232($sp)
|
||||||
lda $8, 0x3fff
|
lda $8, 0x3fff
|
||||||
stq $31, 248($sp)
|
stq $31, 248($sp)
|
||||||
|
|
|
@ -446,16 +446,15 @@ struct unaligned_stat {
|
||||||
|
|
||||||
|
|
||||||
/* Macro for exception fixup code to access integer registers. */
|
/* Macro for exception fixup code to access integer registers. */
|
||||||
#define una_reg(r) (regs.regs[(r) >= 16 && (r) <= 18 ? (r)+19 : (r)])
|
#define una_reg(r) (regs->regs[(r) >= 16 && (r) <= 18 ? (r)+19 : (r)])
|
||||||
|
|
||||||
|
|
||||||
asmlinkage void
|
asmlinkage void
|
||||||
do_entUna(void * va, unsigned long opcode, unsigned long reg,
|
do_entUna(void * va, unsigned long opcode, unsigned long reg,
|
||||||
unsigned long a3, unsigned long a4, unsigned long a5,
|
struct allregs *regs)
|
||||||
struct allregs regs)
|
|
||||||
{
|
{
|
||||||
long error, tmp1, tmp2, tmp3, tmp4;
|
long error, tmp1, tmp2, tmp3, tmp4;
|
||||||
unsigned long pc = regs.pc - 4;
|
unsigned long pc = regs->pc - 4;
|
||||||
const struct exception_table_entry *fixup;
|
const struct exception_table_entry *fixup;
|
||||||
|
|
||||||
unaligned[0].count++;
|
unaligned[0].count++;
|
||||||
|
@ -636,7 +635,7 @@ got_exception:
|
||||||
printk("Forwarding unaligned exception at %lx (%lx)\n",
|
printk("Forwarding unaligned exception at %lx (%lx)\n",
|
||||||
pc, newpc);
|
pc, newpc);
|
||||||
|
|
||||||
(®s)->pc = newpc;
|
regs->pc = newpc;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -650,7 +649,7 @@ got_exception:
|
||||||
current->comm, current->pid);
|
current->comm, current->pid);
|
||||||
|
|
||||||
printk("pc = [<%016lx>] ra = [<%016lx>] ps = %04lx\n",
|
printk("pc = [<%016lx>] ra = [<%016lx>] ps = %04lx\n",
|
||||||
pc, una_reg(26), regs.ps);
|
pc, una_reg(26), regs->ps);
|
||||||
printk("r0 = %016lx r1 = %016lx r2 = %016lx\n",
|
printk("r0 = %016lx r1 = %016lx r2 = %016lx\n",
|
||||||
una_reg(0), una_reg(1), una_reg(2));
|
una_reg(0), una_reg(1), una_reg(2));
|
||||||
printk("r3 = %016lx r4 = %016lx r5 = %016lx\n",
|
printk("r3 = %016lx r4 = %016lx r5 = %016lx\n",
|
||||||
|
@ -670,10 +669,10 @@ got_exception:
|
||||||
una_reg(22), una_reg(23), una_reg(24));
|
una_reg(22), una_reg(23), una_reg(24));
|
||||||
printk("r25= %016lx r27= %016lx r28= %016lx\n",
|
printk("r25= %016lx r27= %016lx r28= %016lx\n",
|
||||||
una_reg(25), una_reg(27), una_reg(28));
|
una_reg(25), una_reg(27), una_reg(28));
|
||||||
printk("gp = %016lx sp = %p\n", regs.gp, ®s+1);
|
printk("gp = %016lx sp = %p\n", regs->gp, regs+1);
|
||||||
|
|
||||||
dik_show_code((unsigned int *)pc);
|
dik_show_code((unsigned int *)pc);
|
||||||
dik_show_trace((unsigned long *)(®s+1));
|
dik_show_trace((unsigned long *)(regs+1));
|
||||||
|
|
||||||
if (test_and_set_thread_flag (TIF_DIE_IF_KERNEL)) {
|
if (test_and_set_thread_flag (TIF_DIE_IF_KERNEL)) {
|
||||||
printk("die_if_kernel recursion detected.\n");
|
printk("die_if_kernel recursion detected.\n");
|
||||||
|
|
|
@ -68,6 +68,7 @@ static void gic_unmask_irq(unsigned int irq)
|
||||||
writel(mask, gic_dist_base + GIC_DIST_ENABLE_SET + (irq / 32) * 4);
|
writel(mask, gic_dist_base + GIC_DIST_ENABLE_SET + (irq / 32) * 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef CONFIG_SMP
|
||||||
static void gic_set_cpu(struct irqdesc *desc, unsigned int irq, unsigned int cpu)
|
static void gic_set_cpu(struct irqdesc *desc, unsigned int irq, unsigned int cpu)
|
||||||
{
|
{
|
||||||
void __iomem *reg = gic_dist_base + GIC_DIST_TARGET + (irq & ~3);
|
void __iomem *reg = gic_dist_base + GIC_DIST_TARGET + (irq & ~3);
|
||||||
|
@ -78,6 +79,7 @@ static void gic_set_cpu(struct irqdesc *desc, unsigned int irq, unsigned int cpu
|
||||||
val |= 1 << (cpu + shift);
|
val |= 1 << (cpu + shift);
|
||||||
writel(val, reg);
|
writel(val, reg);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static struct irqchip gic_chip = {
|
static struct irqchip gic_chip = {
|
||||||
.ack = gic_ack_irq,
|
.ack = gic_ack_irq,
|
||||||
|
|
|
@ -27,7 +27,6 @@
|
||||||
#include <linux/spinlock.h>
|
#include <linux/spinlock.h>
|
||||||
|
|
||||||
#include <asm/hardware.h>
|
#include <asm/hardware.h>
|
||||||
#include <asm/mach-types.h>
|
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <asm/irq.h>
|
#include <asm/irq.h>
|
||||||
#include <asm/mach/irq.h>
|
#include <asm/mach/irq.h>
|
||||||
|
|
|
@ -26,6 +26,8 @@ struct scoop_pcmcia_dev *scoop_devs;
|
||||||
struct scoop_dev {
|
struct scoop_dev {
|
||||||
void *base;
|
void *base;
|
||||||
spinlock_t scoop_lock;
|
spinlock_t scoop_lock;
|
||||||
|
unsigned short suspend_clr;
|
||||||
|
unsigned short suspend_set;
|
||||||
u32 scoop_gpwr;
|
u32 scoop_gpwr;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -90,14 +92,24 @@ EXPORT_SYMBOL(reset_scoop);
|
||||||
EXPORT_SYMBOL(read_scoop_reg);
|
EXPORT_SYMBOL(read_scoop_reg);
|
||||||
EXPORT_SYMBOL(write_scoop_reg);
|
EXPORT_SYMBOL(write_scoop_reg);
|
||||||
|
|
||||||
|
static void check_scoop_reg(struct scoop_dev *sdev)
|
||||||
|
{
|
||||||
|
unsigned short mcr;
|
||||||
|
|
||||||
|
mcr = SCOOP_REG(sdev->base, SCOOP_MCR);
|
||||||
|
if ((mcr & 0x100) == 0)
|
||||||
|
SCOOP_REG(sdev->base, SCOOP_MCR) = 0x0101;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_PM
|
#ifdef CONFIG_PM
|
||||||
static int scoop_suspend(struct device *dev, pm_message_t state, uint32_t level)
|
static int scoop_suspend(struct device *dev, pm_message_t state, uint32_t level)
|
||||||
{
|
{
|
||||||
if (level == SUSPEND_POWER_DOWN) {
|
if (level == SUSPEND_POWER_DOWN) {
|
||||||
struct scoop_dev *sdev = dev_get_drvdata(dev);
|
struct scoop_dev *sdev = dev_get_drvdata(dev);
|
||||||
|
|
||||||
sdev->scoop_gpwr = SCOOP_REG(sdev->base,SCOOP_GPWR);
|
check_scoop_reg(sdev);
|
||||||
SCOOP_REG(sdev->base,SCOOP_GPWR) = 0;
|
sdev->scoop_gpwr = SCOOP_REG(sdev->base, SCOOP_GPWR);
|
||||||
|
SCOOP_REG(sdev->base, SCOOP_GPWR) = (sdev->scoop_gpwr & ~sdev->suspend_clr) | sdev->suspend_set;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -107,6 +119,7 @@ static int scoop_resume(struct device *dev, uint32_t level)
|
||||||
if (level == RESUME_POWER_ON) {
|
if (level == RESUME_POWER_ON) {
|
||||||
struct scoop_dev *sdev = dev_get_drvdata(dev);
|
struct scoop_dev *sdev = dev_get_drvdata(dev);
|
||||||
|
|
||||||
|
check_scoop_reg(sdev);
|
||||||
SCOOP_REG(sdev->base,SCOOP_GPWR) = sdev->scoop_gpwr;
|
SCOOP_REG(sdev->base,SCOOP_GPWR) = sdev->scoop_gpwr;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -151,6 +164,9 @@ int __init scoop_probe(struct device *dev)
|
||||||
SCOOP_REG(devptr->base, SCOOP_GPCR) = inf->io_dir & 0xffff;
|
SCOOP_REG(devptr->base, SCOOP_GPCR) = inf->io_dir & 0xffff;
|
||||||
SCOOP_REG(devptr->base, SCOOP_GPWR) = inf->io_out & 0xffff;
|
SCOOP_REG(devptr->base, SCOOP_GPWR) = inf->io_out & 0xffff;
|
||||||
|
|
||||||
|
devptr->suspend_clr = inf->suspend_clr;
|
||||||
|
devptr->suspend_set = inf->suspend_set;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
888
arch/arm/configs/collie_defconfig
Normal file
888
arch/arm/configs/collie_defconfig
Normal file
|
@ -0,0 +1,888 @@
|
||||||
|
#
|
||||||
|
# Automatically generated make config: don't edit
|
||||||
|
# Linux kernel version: 2.6.14-rc3
|
||||||
|
# Sun Oct 9 16:55:14 2005
|
||||||
|
#
|
||||||
|
CONFIG_ARM=y
|
||||||
|
CONFIG_MMU=y
|
||||||
|
CONFIG_UID16=y
|
||||||
|
CONFIG_RWSEM_GENERIC_SPINLOCK=y
|
||||||
|
CONFIG_GENERIC_CALIBRATE_DELAY=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Code maturity level options
|
||||||
|
#
|
||||||
|
CONFIG_EXPERIMENTAL=y
|
||||||
|
# CONFIG_CLEAN_COMPILE is not set
|
||||||
|
CONFIG_BROKEN=y
|
||||||
|
CONFIG_BROKEN_ON_SMP=y
|
||||||
|
CONFIG_LOCK_KERNEL=y
|
||||||
|
CONFIG_INIT_ENV_ARG_LIMIT=32
|
||||||
|
|
||||||
|
#
|
||||||
|
# General setup
|
||||||
|
#
|
||||||
|
CONFIG_LOCALVERSION=""
|
||||||
|
CONFIG_LOCALVERSION_AUTO=y
|
||||||
|
CONFIG_SWAP=y
|
||||||
|
CONFIG_SYSVIPC=y
|
||||||
|
# CONFIG_POSIX_MQUEUE is not set
|
||||||
|
CONFIG_BSD_PROCESS_ACCT=y
|
||||||
|
# CONFIG_BSD_PROCESS_ACCT_V3 is not set
|
||||||
|
CONFIG_SYSCTL=y
|
||||||
|
# CONFIG_AUDIT is not set
|
||||||
|
CONFIG_HOTPLUG=y
|
||||||
|
CONFIG_KOBJECT_UEVENT=y
|
||||||
|
# CONFIG_IKCONFIG is not set
|
||||||
|
CONFIG_INITRAMFS_SOURCE=""
|
||||||
|
CONFIG_EMBEDDED=y
|
||||||
|
CONFIG_KALLSYMS=y
|
||||||
|
# CONFIG_KALLSYMS_ALL is not set
|
||||||
|
# CONFIG_KALLSYMS_EXTRA_PASS is not set
|
||||||
|
CONFIG_PRINTK=y
|
||||||
|
CONFIG_BUG=y
|
||||||
|
CONFIG_BASE_FULL=y
|
||||||
|
CONFIG_FUTEX=y
|
||||||
|
CONFIG_EPOLL=y
|
||||||
|
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
|
||||||
|
CONFIG_SHMEM=y
|
||||||
|
CONFIG_CC_ALIGN_FUNCTIONS=0
|
||||||
|
CONFIG_CC_ALIGN_LABELS=0
|
||||||
|
CONFIG_CC_ALIGN_LOOPS=0
|
||||||
|
CONFIG_CC_ALIGN_JUMPS=0
|
||||||
|
# CONFIG_TINY_SHMEM is not set
|
||||||
|
CONFIG_BASE_SMALL=0
|
||||||
|
|
||||||
|
#
|
||||||
|
# Loadable module support
|
||||||
|
#
|
||||||
|
CONFIG_MODULES=y
|
||||||
|
CONFIG_MODULE_UNLOAD=y
|
||||||
|
CONFIG_MODULE_FORCE_UNLOAD=y
|
||||||
|
CONFIG_OBSOLETE_MODPARM=y
|
||||||
|
CONFIG_MODVERSIONS=y
|
||||||
|
# CONFIG_MODULE_SRCVERSION_ALL is not set
|
||||||
|
CONFIG_KMOD=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# System Type
|
||||||
|
#
|
||||||
|
# CONFIG_ARCH_CLPS7500 is not set
|
||||||
|
# CONFIG_ARCH_CLPS711X is not set
|
||||||
|
# CONFIG_ARCH_CO285 is not set
|
||||||
|
# CONFIG_ARCH_EBSA110 is not set
|
||||||
|
# CONFIG_ARCH_CAMELOT is not set
|
||||||
|
# CONFIG_ARCH_FOOTBRIDGE is not set
|
||||||
|
# CONFIG_ARCH_INTEGRATOR is not set
|
||||||
|
# CONFIG_ARCH_IOP3XX is not set
|
||||||
|
# CONFIG_ARCH_IXP4XX is not set
|
||||||
|
# CONFIG_ARCH_IXP2000 is not set
|
||||||
|
# CONFIG_ARCH_L7200 is not set
|
||||||
|
# CONFIG_ARCH_PXA is not set
|
||||||
|
# CONFIG_ARCH_RPC is not set
|
||||||
|
CONFIG_ARCH_SA1100=y
|
||||||
|
# CONFIG_ARCH_S3C2410 is not set
|
||||||
|
# CONFIG_ARCH_SHARK is not set
|
||||||
|
# CONFIG_ARCH_LH7A40X is not set
|
||||||
|
# CONFIG_ARCH_OMAP is not set
|
||||||
|
# CONFIG_ARCH_VERSATILE is not set
|
||||||
|
# CONFIG_ARCH_IMX is not set
|
||||||
|
# CONFIG_ARCH_H720X is not set
|
||||||
|
# CONFIG_ARCH_AAEC2000 is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# SA11x0 Implementations
|
||||||
|
#
|
||||||
|
# CONFIG_SA1100_ASSABET is not set
|
||||||
|
# CONFIG_SA1100_CERF is not set
|
||||||
|
CONFIG_SA1100_COLLIE=y
|
||||||
|
# CONFIG_SA1100_H3100 is not set
|
||||||
|
# CONFIG_SA1100_H3600 is not set
|
||||||
|
# CONFIG_SA1100_H3800 is not set
|
||||||
|
# CONFIG_SA1100_BADGE4 is not set
|
||||||
|
# CONFIG_SA1100_JORNADA720 is not set
|
||||||
|
# CONFIG_SA1100_HACKKIT is not set
|
||||||
|
# CONFIG_SA1100_LART is not set
|
||||||
|
# CONFIG_SA1100_PLEB is not set
|
||||||
|
# CONFIG_SA1100_SHANNON is not set
|
||||||
|
# CONFIG_SA1100_SIMPAD is not set
|
||||||
|
# CONFIG_SA1100_SSP is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Processor Type
|
||||||
|
#
|
||||||
|
CONFIG_CPU_32=y
|
||||||
|
CONFIG_CPU_SA1100=y
|
||||||
|
CONFIG_CPU_32v4=y
|
||||||
|
CONFIG_CPU_ABRT_EV4=y
|
||||||
|
CONFIG_CPU_CACHE_V4WB=y
|
||||||
|
CONFIG_CPU_CACHE_VIVT=y
|
||||||
|
CONFIG_CPU_TLB_V4WB=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Processor Features
|
||||||
|
#
|
||||||
|
CONFIG_SHARP_LOCOMO=y
|
||||||
|
CONFIG_SHARP_PARAM=y
|
||||||
|
CONFIG_SHARP_SCOOP=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bus support
|
||||||
|
#
|
||||||
|
CONFIG_ISA=y
|
||||||
|
CONFIG_ISA_DMA_API=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# PCCARD (PCMCIA/CardBus) support
|
||||||
|
#
|
||||||
|
# CONFIG_PCCARD is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Kernel Features
|
||||||
|
#
|
||||||
|
# CONFIG_SMP is not set
|
||||||
|
CONFIG_PREEMPT=y
|
||||||
|
# CONFIG_NO_IDLE_HZ is not set
|
||||||
|
CONFIG_ARCH_DISCONTIGMEM_ENABLE=y
|
||||||
|
CONFIG_SELECT_MEMORY_MODEL=y
|
||||||
|
# CONFIG_FLATMEM_MANUAL is not set
|
||||||
|
CONFIG_DISCONTIGMEM_MANUAL=y
|
||||||
|
# CONFIG_SPARSEMEM_MANUAL is not set
|
||||||
|
CONFIG_DISCONTIGMEM=y
|
||||||
|
CONFIG_FLAT_NODE_MEM_MAP=y
|
||||||
|
CONFIG_NEED_MULTIPLE_NODES=y
|
||||||
|
# CONFIG_SPARSEMEM_STATIC is not set
|
||||||
|
# CONFIG_LEDS is not set
|
||||||
|
CONFIG_ALIGNMENT_TRAP=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Boot options
|
||||||
|
#
|
||||||
|
CONFIG_ZBOOT_ROM_TEXT=0x0
|
||||||
|
CONFIG_ZBOOT_ROM_BSS=0x0
|
||||||
|
CONFIG_CMDLINE="console=ttyS0,115200n8 console=tty1 noinitrd root=/dev/mtdblock2 rootfstype=jffs2 debug"
|
||||||
|
# CONFIG_XIP_KERNEL is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# CPU Frequency scaling
|
||||||
|
#
|
||||||
|
# CONFIG_CPU_FREQ is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Floating point emulation
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# At least one emulation must be selected
|
||||||
|
#
|
||||||
|
CONFIG_FPE_NWFPE=y
|
||||||
|
# CONFIG_FPE_NWFPE_XP is not set
|
||||||
|
# CONFIG_FPE_FASTFPE is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Userspace binary formats
|
||||||
|
#
|
||||||
|
CONFIG_BINFMT_ELF=y
|
||||||
|
CONFIG_BINFMT_AOUT=m
|
||||||
|
CONFIG_BINFMT_MISC=m
|
||||||
|
# CONFIG_ARTHUR is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Power management options
|
||||||
|
#
|
||||||
|
CONFIG_PM=y
|
||||||
|
CONFIG_APM=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# 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 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_INET_DIAG=y
|
||||||
|
CONFIG_INET_TCP_DIAG=y
|
||||||
|
# CONFIG_TCP_CONG_ADVANCED is not set
|
||||||
|
CONFIG_TCP_CONG_BIC=y
|
||||||
|
# CONFIG_IPV6 is not set
|
||||||
|
# CONFIG_NETFILTER is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# DCCP Configuration (EXPERIMENTAL)
|
||||||
|
#
|
||||||
|
# CONFIG_IP_DCCP 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
|
||||||
|
# CONFIG_IEEE80211 is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Device Drivers
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# Generic Driver Options
|
||||||
|
#
|
||||||
|
CONFIG_STANDALONE=y
|
||||||
|
CONFIG_PREVENT_FIRMWARE_BUILD=y
|
||||||
|
CONFIG_FW_LOADER=m
|
||||||
|
# CONFIG_DEBUG_DRIVER is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Memory Technology Devices (MTD)
|
||||||
|
#
|
||||||
|
CONFIG_MTD=y
|
||||||
|
# CONFIG_MTD_DEBUG is not set
|
||||||
|
# CONFIG_MTD_CONCAT is not set
|
||||||
|
CONFIG_MTD_PARTITIONS=y
|
||||||
|
# CONFIG_MTD_REDBOOT_PARTS is not set
|
||||||
|
# CONFIG_MTD_CMDLINE_PARTS is not set
|
||||||
|
# CONFIG_MTD_AFS_PARTS is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# User Modules And Translation Layers
|
||||||
|
#
|
||||||
|
CONFIG_MTD_CHAR=y
|
||||||
|
CONFIG_MTD_BLOCK=y
|
||||||
|
# CONFIG_FTL is not set
|
||||||
|
# CONFIG_NFTL is not set
|
||||||
|
# CONFIG_INFTL is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# RAM/ROM/Flash chip drivers
|
||||||
|
#
|
||||||
|
# CONFIG_MTD_CFI is not set
|
||||||
|
# CONFIG_MTD_JEDECPROBE is not set
|
||||||
|
CONFIG_MTD_MAP_BANK_WIDTH_1=y
|
||||||
|
CONFIG_MTD_MAP_BANK_WIDTH_2=y
|
||||||
|
CONFIG_MTD_MAP_BANK_WIDTH_4=y
|
||||||
|
# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
|
||||||
|
# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
|
||||||
|
# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
|
||||||
|
CONFIG_MTD_CFI_I1=y
|
||||||
|
CONFIG_MTD_CFI_I2=y
|
||||||
|
# CONFIG_MTD_CFI_I4 is not set
|
||||||
|
# CONFIG_MTD_CFI_I8 is not set
|
||||||
|
# CONFIG_MTD_RAM is not set
|
||||||
|
# CONFIG_MTD_ROM is not set
|
||||||
|
# CONFIG_MTD_ABSENT is not set
|
||||||
|
CONFIG_MTD_OBSOLETE_CHIPS=y
|
||||||
|
# CONFIG_MTD_AMDSTD is not set
|
||||||
|
CONFIG_MTD_SHARP=y
|
||||||
|
# CONFIG_MTD_JEDEC is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Mapping drivers for chip access
|
||||||
|
#
|
||||||
|
# CONFIG_MTD_COMPLEX_MAPPINGS is not set
|
||||||
|
# CONFIG_MTD_PLATRAM is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Self-contained MTD device drivers
|
||||||
|
#
|
||||||
|
# CONFIG_MTD_SLRAM is not set
|
||||||
|
# CONFIG_MTD_PHRAM is not set
|
||||||
|
# CONFIG_MTD_MTDRAM is not set
|
||||||
|
# CONFIG_MTD_BLKMTD is not set
|
||||||
|
# CONFIG_MTD_BLOCK2MTD is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Disk-On-Chip Device Drivers
|
||||||
|
#
|
||||||
|
# CONFIG_MTD_DOC2000 is not set
|
||||||
|
# CONFIG_MTD_DOC2001 is not set
|
||||||
|
# CONFIG_MTD_DOC2001PLUS is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# NAND Flash Device Drivers
|
||||||
|
#
|
||||||
|
# CONFIG_MTD_NAND is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Parallel port support
|
||||||
|
#
|
||||||
|
# CONFIG_PARPORT is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Plug and Play support
|
||||||
|
#
|
||||||
|
# CONFIG_PNP is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Block devices
|
||||||
|
#
|
||||||
|
# CONFIG_BLK_DEV_XD is not set
|
||||||
|
# CONFIG_BLK_DEV_COW_COMMON is not set
|
||||||
|
CONFIG_BLK_DEV_LOOP=y
|
||||||
|
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
|
||||||
|
# CONFIG_BLK_DEV_NBD is not set
|
||||||
|
CONFIG_BLK_DEV_RAM=y
|
||||||
|
CONFIG_BLK_DEV_RAM_COUNT=16
|
||||||
|
CONFIG_BLK_DEV_RAM_SIZE=1024
|
||||||
|
CONFIG_BLK_DEV_INITRD=y
|
||||||
|
# CONFIG_CDROM_PKTCDVD is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# IO Schedulers
|
||||||
|
#
|
||||||
|
CONFIG_IOSCHED_NOOP=y
|
||||||
|
CONFIG_IOSCHED_AS=y
|
||||||
|
CONFIG_IOSCHED_DEADLINE=y
|
||||||
|
CONFIG_IOSCHED_CFQ=y
|
||||||
|
CONFIG_ATA_OVER_ETH=m
|
||||||
|
|
||||||
|
#
|
||||||
|
# ATA/ATAPI/MFM/RLL support
|
||||||
|
#
|
||||||
|
# CONFIG_IDE is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# SCSI device support
|
||||||
|
#
|
||||||
|
# CONFIG_RAID_ATTRS is not set
|
||||||
|
# CONFIG_SCSI is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Multi-device support (RAID and LVM)
|
||||||
|
#
|
||||||
|
# CONFIG_MD is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Fusion MPT device support
|
||||||
|
#
|
||||||
|
# CONFIG_FUSION is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# IEEE 1394 (FireWire) support
|
||||||
|
#
|
||||||
|
# CONFIG_IEEE1394 is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# I2O device support
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# Network device support
|
||||||
|
#
|
||||||
|
# CONFIG_NETDEVICES is not set
|
||||||
|
# CONFIG_NETPOLL is not set
|
||||||
|
# CONFIG_NET_POLL_CONTROLLER is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# ISDN subsystem
|
||||||
|
#
|
||||||
|
# CONFIG_ISDN is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Input device support
|
||||||
|
#
|
||||||
|
CONFIG_INPUT=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Userland interfaces
|
||||||
|
#
|
||||||
|
# CONFIG_INPUT_MOUSEDEV is not set
|
||||||
|
# CONFIG_INPUT_JOYDEV is not set
|
||||||
|
CONFIG_INPUT_TSDEV=y
|
||||||
|
CONFIG_INPUT_TSDEV_SCREEN_X=240
|
||||||
|
CONFIG_INPUT_TSDEV_SCREEN_Y=320
|
||||||
|
CONFIG_INPUT_EVDEV=y
|
||||||
|
CONFIG_INPUT_EVBUG=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Input Device Drivers
|
||||||
|
#
|
||||||
|
CONFIG_INPUT_KEYBOARD=y
|
||||||
|
# CONFIG_KEYBOARD_ATKBD is not set
|
||||||
|
# CONFIG_KEYBOARD_SUNKBD is not set
|
||||||
|
# CONFIG_KEYBOARD_LKKBD is not set
|
||||||
|
CONFIG_KEYBOARD_LOCOMO=y
|
||||||
|
# CONFIG_KEYBOARD_XTKBD is not set
|
||||||
|
# CONFIG_KEYBOARD_NEWTON is not set
|
||||||
|
# CONFIG_INPUT_MOUSE is not set
|
||||||
|
# CONFIG_INPUT_JOYSTICK is not set
|
||||||
|
# CONFIG_INPUT_TOUCHSCREEN is not set
|
||||||
|
# CONFIG_INPUT_MISC is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Hardware I/O ports
|
||||||
|
#
|
||||||
|
CONFIG_SERIO=y
|
||||||
|
# CONFIG_SERIO_SERPORT is not set
|
||||||
|
# CONFIG_SERIO_LIBPS2 is not set
|
||||||
|
# CONFIG_SERIO_RAW is not set
|
||||||
|
# CONFIG_GAMEPORT is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Character devices
|
||||||
|
#
|
||||||
|
CONFIG_VT=y
|
||||||
|
CONFIG_VT_CONSOLE=y
|
||||||
|
CONFIG_HW_CONSOLE=y
|
||||||
|
# CONFIG_SERIAL_NONSTANDARD is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Serial drivers
|
||||||
|
#
|
||||||
|
# CONFIG_SERIAL_8250 is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Non-8250 serial port support
|
||||||
|
#
|
||||||
|
CONFIG_SERIAL_SA1100=y
|
||||||
|
CONFIG_SERIAL_SA1100_CONSOLE=y
|
||||||
|
CONFIG_SERIAL_CORE=y
|
||||||
|
CONFIG_SERIAL_CORE_CONSOLE=y
|
||||||
|
CONFIG_UNIX98_PTYS=y
|
||||||
|
# CONFIG_LEGACY_PTYS is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# IPMI
|
||||||
|
#
|
||||||
|
# CONFIG_IPMI_HANDLER is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Watchdog Cards
|
||||||
|
#
|
||||||
|
# CONFIG_WATCHDOG is not set
|
||||||
|
# CONFIG_NVRAM is not set
|
||||||
|
# CONFIG_RTC is not set
|
||||||
|
# CONFIG_DTLK is not set
|
||||||
|
# CONFIG_R3964 is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Ftape, the floppy tape device driver
|
||||||
|
#
|
||||||
|
# CONFIG_RAW_DRIVER is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# TPM devices
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# I2C support
|
||||||
|
#
|
||||||
|
CONFIG_I2C=m
|
||||||
|
# CONFIG_I2C_CHARDEV is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# I2C Algorithms
|
||||||
|
#
|
||||||
|
CONFIG_I2C_ALGOBIT=m
|
||||||
|
# CONFIG_I2C_ALGOPCF is not set
|
||||||
|
# CONFIG_I2C_ALGOPCA is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# I2C Hardware Bus support
|
||||||
|
#
|
||||||
|
# CONFIG_I2C_ELEKTOR is not set
|
||||||
|
# CONFIG_I2C_PARPORT_LIGHT is not set
|
||||||
|
# CONFIG_I2C_STUB is not set
|
||||||
|
# CONFIG_I2C_PCA_ISA is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Miscellaneous I2C Chip support
|
||||||
|
#
|
||||||
|
# CONFIG_SENSORS_DS1337 is not set
|
||||||
|
# CONFIG_SENSORS_DS1374 is not set
|
||||||
|
# CONFIG_SENSORS_EEPROM is not set
|
||||||
|
# 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_HWMON_VID is not set
|
||||||
|
# CONFIG_SENSORS_ADM1021 is not set
|
||||||
|
# CONFIG_SENSORS_ADM1025 is not set
|
||||||
|
# CONFIG_SENSORS_ADM1026 is not set
|
||||||
|
# CONFIG_SENSORS_ADM1031 is not set
|
||||||
|
# CONFIG_SENSORS_ADM9240 is not set
|
||||||
|
# CONFIG_SENSORS_ASB100 is not set
|
||||||
|
# CONFIG_SENSORS_ATXP1 is not set
|
||||||
|
# CONFIG_SENSORS_DS1621 is not set
|
||||||
|
# CONFIG_SENSORS_FSCHER is not set
|
||||||
|
# CONFIG_SENSORS_FSCPOS is not set
|
||||||
|
# CONFIG_SENSORS_GL518SM is not set
|
||||||
|
# CONFIG_SENSORS_GL520SM is not set
|
||||||
|
# CONFIG_SENSORS_IT87 is not set
|
||||||
|
# CONFIG_SENSORS_LM63 is not set
|
||||||
|
# CONFIG_SENSORS_LM75 is not set
|
||||||
|
# CONFIG_SENSORS_LM77 is not set
|
||||||
|
# CONFIG_SENSORS_LM78 is not set
|
||||||
|
# CONFIG_SENSORS_LM80 is not set
|
||||||
|
# CONFIG_SENSORS_LM83 is not set
|
||||||
|
# CONFIG_SENSORS_LM85 is not set
|
||||||
|
# CONFIG_SENSORS_LM87 is not set
|
||||||
|
# CONFIG_SENSORS_LM90 is not set
|
||||||
|
# CONFIG_SENSORS_LM92 is not set
|
||||||
|
# CONFIG_SENSORS_MAX1619 is not set
|
||||||
|
# CONFIG_SENSORS_PC87360 is not set
|
||||||
|
# CONFIG_SENSORS_SMSC47M1 is not set
|
||||||
|
# CONFIG_SENSORS_SMSC47B397 is not set
|
||||||
|
# CONFIG_SENSORS_W83781D is not set
|
||||||
|
# CONFIG_SENSORS_W83792D is not set
|
||||||
|
# CONFIG_SENSORS_W83L785TS is not set
|
||||||
|
# CONFIG_SENSORS_W83627HF is not set
|
||||||
|
# CONFIG_SENSORS_W83627EHF is not set
|
||||||
|
# CONFIG_HWMON_DEBUG_CHIP is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Misc devices
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# Multimedia Capabilities Port drivers
|
||||||
|
#
|
||||||
|
# CONFIG_MCP_SA11X0 is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Multimedia devices
|
||||||
|
#
|
||||||
|
CONFIG_VIDEO_DEV=m
|
||||||
|
|
||||||
|
#
|
||||||
|
# Video For Linux
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# Video Adapters
|
||||||
|
#
|
||||||
|
# CONFIG_VIDEO_PMS is not set
|
||||||
|
# CONFIG_VIDEO_CPIA is not set
|
||||||
|
# CONFIG_VIDEO_SAA5246A is not set
|
||||||
|
# CONFIG_VIDEO_SAA5249 is not set
|
||||||
|
# CONFIG_TUNER_3036 is not set
|
||||||
|
# CONFIG_VIDEO_OVCAMCHIP is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Radio Adapters
|
||||||
|
#
|
||||||
|
# CONFIG_RADIO_CADET is not set
|
||||||
|
# CONFIG_RADIO_RTRACK is not set
|
||||||
|
# CONFIG_RADIO_RTRACK2 is not set
|
||||||
|
# CONFIG_RADIO_AZTECH is not set
|
||||||
|
# CONFIG_RADIO_GEMTEK is not set
|
||||||
|
# CONFIG_RADIO_MAESTRO is not set
|
||||||
|
# CONFIG_RADIO_SF16FMI is not set
|
||||||
|
# CONFIG_RADIO_SF16FMR2 is not set
|
||||||
|
# CONFIG_RADIO_TERRATEC is not set
|
||||||
|
# CONFIG_RADIO_TRUST is not set
|
||||||
|
# CONFIG_RADIO_TYPHOON is not set
|
||||||
|
# CONFIG_RADIO_ZOLTRIX is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Digital Video Broadcasting Devices
|
||||||
|
#
|
||||||
|
# CONFIG_DVB is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Graphics support
|
||||||
|
#
|
||||||
|
CONFIG_FB=y
|
||||||
|
CONFIG_FB_CFB_FILLRECT=y
|
||||||
|
CONFIG_FB_CFB_COPYAREA=y
|
||||||
|
CONFIG_FB_CFB_IMAGEBLIT=y
|
||||||
|
CONFIG_FB_SOFT_CURSOR=y
|
||||||
|
# CONFIG_FB_MACMODES is not set
|
||||||
|
CONFIG_FB_MODE_HELPERS=y
|
||||||
|
# CONFIG_FB_TILEBLITTING is not set
|
||||||
|
CONFIG_FB_SA1100=y
|
||||||
|
# CONFIG_FB_S1D13XXX is not set
|
||||||
|
# CONFIG_FB_VIRTUAL is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Console display driver support
|
||||||
|
#
|
||||||
|
# CONFIG_VGA_CONSOLE is not set
|
||||||
|
# CONFIG_MDA_CONSOLE is not set
|
||||||
|
CONFIG_DUMMY_CONSOLE=y
|
||||||
|
CONFIG_FRAMEBUFFER_CONSOLE=y
|
||||||
|
CONFIG_FONTS=y
|
||||||
|
CONFIG_FONT_8x8=y
|
||||||
|
# CONFIG_FONT_8x16 is not set
|
||||||
|
# CONFIG_FONT_6x11 is not set
|
||||||
|
# CONFIG_FONT_7x14 is not set
|
||||||
|
# CONFIG_FONT_PEARL_8x8 is not set
|
||||||
|
# CONFIG_FONT_ACORN_8x8 is not set
|
||||||
|
# CONFIG_FONT_MINI_4x6 is not set
|
||||||
|
# CONFIG_FONT_SUN8x16 is not set
|
||||||
|
# CONFIG_FONT_SUN12x22 is not set
|
||||||
|
# CONFIG_FONT_10x18 is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Logo configuration
|
||||||
|
#
|
||||||
|
# CONFIG_LOGO is not set
|
||||||
|
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Sound
|
||||||
|
#
|
||||||
|
# CONFIG_SOUND is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# USB support
|
||||||
|
#
|
||||||
|
CONFIG_USB_ARCH_HAS_HCD=y
|
||||||
|
# CONFIG_USB_ARCH_HAS_OHCI is not set
|
||||||
|
# CONFIG_USB is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# USB Gadget Support
|
||||||
|
#
|
||||||
|
CONFIG_USB_GADGET=y
|
||||||
|
# CONFIG_USB_GADGET_DEBUG_FILES is not set
|
||||||
|
# CONFIG_USB_GADGET_NET2280 is not set
|
||||||
|
# CONFIG_USB_GADGET_PXA2XX is not set
|
||||||
|
# CONFIG_USB_GADGET_GOKU is not set
|
||||||
|
# CONFIG_USB_GADGET_LH7A40X is not set
|
||||||
|
# CONFIG_USB_GADGET_OMAP is not set
|
||||||
|
# CONFIG_USB_GADGET_DUMMY_HCD is not set
|
||||||
|
# CONFIG_USB_GADGET_DUALSPEED is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# MMC/SD Card support
|
||||||
|
#
|
||||||
|
# CONFIG_MMC is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# File systems
|
||||||
|
#
|
||||||
|
CONFIG_EXT2_FS=y
|
||||||
|
CONFIG_EXT2_FS_XATTR=y
|
||||||
|
CONFIG_EXT2_FS_POSIX_ACL=y
|
||||||
|
CONFIG_EXT2_FS_SECURITY=y
|
||||||
|
# CONFIG_EXT2_FS_XIP is not set
|
||||||
|
# CONFIG_EXT3_FS is not set
|
||||||
|
# CONFIG_JBD is not set
|
||||||
|
CONFIG_FS_MBCACHE=y
|
||||||
|
# CONFIG_REISERFS_FS is not set
|
||||||
|
# CONFIG_JFS_FS is not set
|
||||||
|
CONFIG_FS_POSIX_ACL=y
|
||||||
|
# CONFIG_XFS_FS is not set
|
||||||
|
# CONFIG_MINIX_FS is not set
|
||||||
|
CONFIG_ROMFS_FS=y
|
||||||
|
CONFIG_INOTIFY=y
|
||||||
|
# CONFIG_QUOTA is not set
|
||||||
|
# CONFIG_DNOTIFY is not set
|
||||||
|
# CONFIG_AUTOFS_FS is not set
|
||||||
|
# CONFIG_AUTOFS4_FS is not set
|
||||||
|
# CONFIG_FUSE_FS is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# CD-ROM/DVD Filesystems
|
||||||
|
#
|
||||||
|
# CONFIG_ISO9660_FS is not set
|
||||||
|
# CONFIG_UDF_FS is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# DOS/FAT/NT Filesystems
|
||||||
|
#
|
||||||
|
CONFIG_FAT_FS=y
|
||||||
|
CONFIG_MSDOS_FS=y
|
||||||
|
CONFIG_VFAT_FS=y
|
||||||
|
CONFIG_FAT_DEFAULT_CODEPAGE=437
|
||||||
|
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
|
||||||
|
# CONFIG_NTFS_FS is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Pseudo filesystems
|
||||||
|
#
|
||||||
|
CONFIG_PROC_FS=y
|
||||||
|
CONFIG_SYSFS=y
|
||||||
|
CONFIG_TMPFS=y
|
||||||
|
# CONFIG_HUGETLBFS is not set
|
||||||
|
# CONFIG_HUGETLB_PAGE is not set
|
||||||
|
CONFIG_RAMFS=y
|
||||||
|
# CONFIG_RELAYFS_FS is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Miscellaneous filesystems
|
||||||
|
#
|
||||||
|
# CONFIG_ADFS_FS is not set
|
||||||
|
# CONFIG_AFFS_FS is not set
|
||||||
|
# CONFIG_HFS_FS is not set
|
||||||
|
# CONFIG_HFSPLUS_FS is not set
|
||||||
|
# CONFIG_BEFS_FS is not set
|
||||||
|
# CONFIG_BFS_FS is not set
|
||||||
|
# CONFIG_EFS_FS is not set
|
||||||
|
# CONFIG_JFFS_FS is not set
|
||||||
|
CONFIG_JFFS2_FS=y
|
||||||
|
CONFIG_JFFS2_FS_DEBUG=0
|
||||||
|
CONFIG_JFFS2_FS_WRITEBUFFER=y
|
||||||
|
# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
|
||||||
|
CONFIG_JFFS2_ZLIB=y
|
||||||
|
CONFIG_JFFS2_RTIME=y
|
||||||
|
# CONFIG_JFFS2_RUBIN is not set
|
||||||
|
CONFIG_CRAMFS=y
|
||||||
|
# CONFIG_VXFS_FS is not set
|
||||||
|
# CONFIG_HPFS_FS is not set
|
||||||
|
# CONFIG_QNX4FS_FS is not set
|
||||||
|
# CONFIG_SYSV_FS is not set
|
||||||
|
# CONFIG_UFS_FS is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Network File Systems
|
||||||
|
#
|
||||||
|
# CONFIG_NFS_FS is not set
|
||||||
|
# CONFIG_NFSD is not set
|
||||||
|
# CONFIG_SMB_FS is not set
|
||||||
|
# CONFIG_CIFS is not set
|
||||||
|
# CONFIG_NCP_FS is not set
|
||||||
|
# CONFIG_CODA_FS is not set
|
||||||
|
# CONFIG_AFS_FS is not set
|
||||||
|
# CONFIG_9P_FS is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Partition Types
|
||||||
|
#
|
||||||
|
# CONFIG_PARTITION_ADVANCED is not set
|
||||||
|
CONFIG_MSDOS_PARTITION=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Native Language Support
|
||||||
|
#
|
||||||
|
CONFIG_NLS=y
|
||||||
|
CONFIG_NLS_DEFAULT="cp437"
|
||||||
|
CONFIG_NLS_CODEPAGE_437=m
|
||||||
|
# CONFIG_NLS_CODEPAGE_737 is not set
|
||||||
|
# CONFIG_NLS_CODEPAGE_775 is not set
|
||||||
|
# CONFIG_NLS_CODEPAGE_850 is not set
|
||||||
|
# CONFIG_NLS_CODEPAGE_852 is not set
|
||||||
|
# CONFIG_NLS_CODEPAGE_855 is not set
|
||||||
|
# CONFIG_NLS_CODEPAGE_857 is not set
|
||||||
|
# CONFIG_NLS_CODEPAGE_860 is not set
|
||||||
|
# CONFIG_NLS_CODEPAGE_861 is not set
|
||||||
|
# CONFIG_NLS_CODEPAGE_862 is not set
|
||||||
|
# CONFIG_NLS_CODEPAGE_863 is not set
|
||||||
|
# CONFIG_NLS_CODEPAGE_864 is not set
|
||||||
|
# CONFIG_NLS_CODEPAGE_865 is not set
|
||||||
|
# CONFIG_NLS_CODEPAGE_866 is not set
|
||||||
|
# CONFIG_NLS_CODEPAGE_869 is not set
|
||||||
|
# CONFIG_NLS_CODEPAGE_936 is not set
|
||||||
|
# CONFIG_NLS_CODEPAGE_950 is not set
|
||||||
|
# CONFIG_NLS_CODEPAGE_932 is not set
|
||||||
|
# CONFIG_NLS_CODEPAGE_949 is not set
|
||||||
|
# CONFIG_NLS_CODEPAGE_874 is not set
|
||||||
|
# CONFIG_NLS_ISO8859_8 is not set
|
||||||
|
# CONFIG_NLS_CODEPAGE_1250 is not set
|
||||||
|
# CONFIG_NLS_CODEPAGE_1251 is not set
|
||||||
|
# CONFIG_NLS_ASCII is not set
|
||||||
|
CONFIG_NLS_ISO8859_1=m
|
||||||
|
# CONFIG_NLS_ISO8859_2 is not set
|
||||||
|
# CONFIG_NLS_ISO8859_3 is not set
|
||||||
|
# CONFIG_NLS_ISO8859_4 is not set
|
||||||
|
# CONFIG_NLS_ISO8859_5 is not set
|
||||||
|
# CONFIG_NLS_ISO8859_6 is not set
|
||||||
|
# CONFIG_NLS_ISO8859_7 is not set
|
||||||
|
# CONFIG_NLS_ISO8859_9 is not set
|
||||||
|
# CONFIG_NLS_ISO8859_13 is not set
|
||||||
|
# CONFIG_NLS_ISO8859_14 is not set
|
||||||
|
# CONFIG_NLS_ISO8859_15 is not set
|
||||||
|
# CONFIG_NLS_KOI8_R is not set
|
||||||
|
# CONFIG_NLS_KOI8_U is not set
|
||||||
|
CONFIG_NLS_UTF8=m
|
||||||
|
|
||||||
|
#
|
||||||
|
# Profiling support
|
||||||
|
#
|
||||||
|
# CONFIG_PROFILING is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Kernel hacking
|
||||||
|
#
|
||||||
|
# CONFIG_PRINTK_TIME is not set
|
||||||
|
CONFIG_DEBUG_KERNEL=y
|
||||||
|
CONFIG_MAGIC_SYSRQ=y
|
||||||
|
CONFIG_LOG_BUF_SHIFT=14
|
||||||
|
CONFIG_DETECT_SOFTLOCKUP=y
|
||||||
|
# CONFIG_SCHEDSTATS is not set
|
||||||
|
# CONFIG_DEBUG_SLAB is not set
|
||||||
|
CONFIG_DEBUG_PREEMPT=y
|
||||||
|
# CONFIG_DEBUG_SPINLOCK is not set
|
||||||
|
# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
|
||||||
|
# CONFIG_DEBUG_KOBJECT is not set
|
||||||
|
# CONFIG_DEBUG_BUGVERBOSE is not set
|
||||||
|
# CONFIG_DEBUG_INFO is not set
|
||||||
|
# CONFIG_DEBUG_FS is not set
|
||||||
|
CONFIG_FRAME_POINTER=y
|
||||||
|
# CONFIG_DEBUG_USER is not set
|
||||||
|
# CONFIG_DEBUG_WAITQ is not set
|
||||||
|
CONFIG_DEBUG_ERRORS=y
|
||||||
|
# CONFIG_DEBUG_LL is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Security options
|
||||||
|
#
|
||||||
|
# CONFIG_KEYS is not set
|
||||||
|
# CONFIG_SECURITY is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Cryptographic options
|
||||||
|
#
|
||||||
|
# CONFIG_CRYPTO is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Hardware crypto devices
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# Library routines
|
||||||
|
#
|
||||||
|
# CONFIG_CRC_CCITT is not set
|
||||||
|
# CONFIG_CRC16 is not set
|
||||||
|
CONFIG_CRC32=y
|
||||||
|
# CONFIG_LIBCRC32C is not set
|
||||||
|
CONFIG_ZLIB_INFLATE=y
|
||||||
|
CONFIG_ZLIB_DEFLATE=y
|
1523
arch/arm/configs/corgi_defconfig
Normal file
1523
arch/arm/configs/corgi_defconfig
Normal file
File diff suppressed because it is too large
Load diff
1015
arch/arm/configs/poodle_defconfig
Normal file
1015
arch/arm/configs/poodle_defconfig
Normal file
File diff suppressed because it is too large
Load diff
1401
arch/arm/configs/spitz_defconfig
Normal file
1401
arch/arm/configs/spitz_defconfig
Normal file
File diff suppressed because it is too large
Load diff
|
@ -305,7 +305,7 @@ long execve(const char *filename, char **argv, char **envp)
|
||||||
"Ir" (THREAD_START_SP - sizeof(regs)),
|
"Ir" (THREAD_START_SP - sizeof(regs)),
|
||||||
"r" (®s),
|
"r" (®s),
|
||||||
"Ir" (sizeof(regs))
|
"Ir" (sizeof(regs))
|
||||||
: "r0", "r1", "r2", "r3", "ip", "memory");
|
: "r0", "r1", "r2", "r3", "ip", "lr", "memory");
|
||||||
|
|
||||||
out:
|
out:
|
||||||
return ret;
|
return ret;
|
||||||
|
|
|
@ -504,7 +504,7 @@ asmlinkage int arm_syscall(int no, struct pt_regs *regs)
|
||||||
|
|
||||||
bad_access:
|
bad_access:
|
||||||
spin_unlock(&mm->page_table_lock);
|
spin_unlock(&mm->page_table_lock);
|
||||||
/* simulate a read access fault */
|
/* simulate a write access fault */
|
||||||
do_DataAbort(addr, 15 + (1 << 11), regs);
|
do_DataAbort(addr, 15 + (1 << 11), regs);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,6 +31,8 @@
|
||||||
|
|
||||||
#include <asm/mach/arch.h>
|
#include <asm/mach/arch.h>
|
||||||
|
|
||||||
|
#include <asm/memory.h>
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
struct meminfo memmap = {
|
struct meminfo memmap = {
|
||||||
|
|
|
@ -28,14 +28,15 @@
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <asm/arch/imxfb.h>
|
#include <asm/arch/imxfb.h>
|
||||||
#include <asm/hardware.h>
|
#include <asm/hardware.h>
|
||||||
|
#include <asm/arch/imx-regs.h>
|
||||||
|
|
||||||
#include <asm/mach/map.h>
|
#include <asm/mach/map.h>
|
||||||
|
|
||||||
void imx_gpio_mode(int gpio_mode)
|
void imx_gpio_mode(int gpio_mode)
|
||||||
{
|
{
|
||||||
unsigned int pin = gpio_mode & GPIO_PIN_MASK;
|
unsigned int pin = gpio_mode & GPIO_PIN_MASK;
|
||||||
unsigned int port = (gpio_mode & GPIO_PORT_MASK) >> 5;
|
unsigned int port = (gpio_mode & GPIO_PORT_MASK) >> GPIO_PORT_SHIFT;
|
||||||
unsigned int ocr = (gpio_mode & GPIO_OCR_MASK) >> 10;
|
unsigned int ocr = (gpio_mode & GPIO_OCR_MASK) >> GPIO_OCR_SHIFT;
|
||||||
unsigned int tmp;
|
unsigned int tmp;
|
||||||
|
|
||||||
/* Pullup enable */
|
/* Pullup enable */
|
||||||
|
@ -57,7 +58,7 @@ void imx_gpio_mode(int gpio_mode)
|
||||||
GPR(port) &= ~(1<<pin);
|
GPR(port) &= ~(1<<pin);
|
||||||
|
|
||||||
/* use as gpio? */
|
/* use as gpio? */
|
||||||
if( ocr == 3 )
|
if(gpio_mode & GPIO_GIUS)
|
||||||
GIUS(port) |= (1<<pin);
|
GIUS(port) |= (1<<pin);
|
||||||
else
|
else
|
||||||
GIUS(port) &= ~(1<<pin);
|
GIUS(port) &= ~(1<<pin);
|
||||||
|
@ -72,20 +73,20 @@ void imx_gpio_mode(int gpio_mode)
|
||||||
tmp |= (ocr << (pin*2));
|
tmp |= (ocr << (pin*2));
|
||||||
OCR1(port) = tmp;
|
OCR1(port) = tmp;
|
||||||
|
|
||||||
if( gpio_mode & GPIO_AOUT )
|
ICONFA1(port) &= ~( 3<<(pin*2));
|
||||||
ICONFA1(port) &= ~( 3<<(pin*2));
|
ICONFA1(port) |= ((gpio_mode >> GPIO_AOUT_SHIFT) & 3) << (pin * 2);
|
||||||
if( gpio_mode & GPIO_BOUT )
|
ICONFB1(port) &= ~( 3<<(pin*2));
|
||||||
ICONFB1(port) &= ~( 3<<(pin*2));
|
ICONFB1(port) |= ((gpio_mode >> GPIO_BOUT_SHIFT) & 3) << (pin * 2);
|
||||||
} else {
|
} else {
|
||||||
tmp = OCR2(port);
|
tmp = OCR2(port);
|
||||||
tmp &= ~( 3<<((pin-16)*2));
|
tmp &= ~( 3<<((pin-16)*2));
|
||||||
tmp |= (ocr << ((pin-16)*2));
|
tmp |= (ocr << ((pin-16)*2));
|
||||||
OCR2(port) = tmp;
|
OCR2(port) = tmp;
|
||||||
|
|
||||||
if( gpio_mode & GPIO_AOUT )
|
ICONFA2(port) &= ~( 3<<((pin-16)*2));
|
||||||
ICONFA2(port) &= ~( 3<<((pin-16)*2));
|
ICONFA2(port) |= ((gpio_mode >> GPIO_AOUT_SHIFT) & 3) << ((pin-16) * 2);
|
||||||
if( gpio_mode & GPIO_BOUT )
|
ICONFB2(port) &= ~( 3<<((pin-16)*2));
|
||||||
ICONFB2(port) &= ~( 3<<((pin-16)*2));
|
ICONFB2(port) |= ((gpio_mode >> GPIO_BOUT_SHIFT) & 3) << ((pin-16) * 2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,6 @@
|
||||||
#include <asm/system.h>
|
#include <asm/system.h>
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <asm/leds.h>
|
#include <asm/leds.h>
|
||||||
#include <asm/mach-types.h>
|
|
||||||
#include "leds.h"
|
#include "leds.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -55,7 +55,7 @@ static void __init
|
||||||
mx1ads_init(void)
|
mx1ads_init(void)
|
||||||
{
|
{
|
||||||
#ifdef CONFIG_LEDS
|
#ifdef CONFIG_LEDS
|
||||||
imx_gpio_mode(GPIO_PORTA | GPIO_OUT | GPIO_GPIO | 2);
|
imx_gpio_mode(GPIO_PORTA | GPIO_OUT | 2);
|
||||||
#endif
|
#endif
|
||||||
platform_add_devices(devices, ARRAY_SIZE(devices));
|
platform_add_devices(devices, ARRAY_SIZE(devices));
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,7 +27,6 @@ unsigned long iop3xx_pcibios_min_mem = 0;
|
||||||
/*
|
/*
|
||||||
* Default power-off for EP80219
|
* Default power-off for EP80219
|
||||||
*/
|
*/
|
||||||
#include <asm/mach-types.h>
|
|
||||||
|
|
||||||
static inline void ep80219_send_to_pic(__u8 c) {
|
static inline void ep80219_send_to_pic(__u8 c) {
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,7 +23,6 @@
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <asm/irq.h>
|
#include <asm/irq.h>
|
||||||
#include <asm/uaccess.h>
|
#include <asm/uaccess.h>
|
||||||
#include <asm/mach-types.h>
|
|
||||||
#include <asm/mach/irq.h>
|
#include <asm/mach/irq.h>
|
||||||
#include <asm/mach/time.h>
|
#include <asm/mach/time.h>
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,6 @@
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <asm/irq.h>
|
#include <asm/irq.h>
|
||||||
#include <asm/uaccess.h>
|
#include <asm/uaccess.h>
|
||||||
#include <asm/mach-types.h>
|
|
||||||
#include <asm/mach/irq.h>
|
#include <asm/mach/irq.h>
|
||||||
#include <asm/mach/time.h>
|
#include <asm/mach/time.h>
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,6 @@
|
||||||
#include <asm/page.h>
|
#include <asm/page.h>
|
||||||
|
|
||||||
#include <asm/mach/map.h>
|
#include <asm/mach/map.h>
|
||||||
#include <asm/mach-types.h>
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -21,7 +21,6 @@
|
||||||
#include <asm/page.h>
|
#include <asm/page.h>
|
||||||
|
|
||||||
#include <asm/mach/map.h>
|
#include <asm/mach/map.h>
|
||||||
#include <asm/mach-types.h>
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -21,7 +21,6 @@
|
||||||
#include <asm/page.h>
|
#include <asm/page.h>
|
||||||
|
|
||||||
#include <asm/mach/map.h>
|
#include <asm/mach/map.h>
|
||||||
#include <asm/mach-types.h>
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -21,7 +21,6 @@
|
||||||
#include <asm/page.h>
|
#include <asm/page.h>
|
||||||
|
|
||||||
#include <asm/mach/map.h>
|
#include <asm/mach/map.h>
|
||||||
#include <asm/mach-types.h>
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -30,7 +30,6 @@
|
||||||
#include <asm/setup.h>
|
#include <asm/setup.h>
|
||||||
#include <asm/memory.h>
|
#include <asm/memory.h>
|
||||||
#include <asm/hardware.h>
|
#include <asm/hardware.h>
|
||||||
#include <asm/mach-types.h>
|
|
||||||
#include <asm/irq.h>
|
#include <asm/irq.h>
|
||||||
#include <asm/system.h>
|
#include <asm/system.h>
|
||||||
#include <asm/tlbflush.h>
|
#include <asm/tlbflush.h>
|
||||||
|
@ -168,7 +167,7 @@ static struct plat_serial8250_port ixp2000_serial_port[] = {
|
||||||
|
|
||||||
static struct resource ixp2000_uart_resource = {
|
static struct resource ixp2000_uart_resource = {
|
||||||
.start = IXP2000_UART_PHYS_BASE,
|
.start = IXP2000_UART_PHYS_BASE,
|
||||||
.end = IXP2000_UART_PHYS_BASE + 0xffff,
|
.end = IXP2000_UART_PHYS_BASE + 0x1f,
|
||||||
.flags = IORESOURCE_MEM,
|
.flags = IORESOURCE_MEM,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,6 @@
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <asm/irq.h>
|
#include <asm/irq.h>
|
||||||
#include <asm/system.h>
|
#include <asm/system.h>
|
||||||
#include <asm/mach-types.h>
|
|
||||||
#include <asm/hardware.h>
|
#include <asm/hardware.h>
|
||||||
|
|
||||||
#include <asm/mach/pci.h>
|
#include <asm/mach/pci.h>
|
||||||
|
|
|
@ -123,7 +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
|
#ifdef CONFIG_ARCH_IXDP425
|
||||||
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,
|
||||||
|
|
|
@ -12,7 +12,6 @@
|
||||||
#include <asm/page.h>
|
#include <asm/page.h>
|
||||||
|
|
||||||
#include <asm/mach/map.h>
|
#include <asm/mach/map.h>
|
||||||
#include <asm/arch/hardware.h>
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* IRQ base register
|
* IRQ base register
|
||||||
|
|
|
@ -36,6 +36,7 @@
|
||||||
#include <asm/arch/mmc.h>
|
#include <asm/arch/mmc.h>
|
||||||
#include <asm/arch/udc.h>
|
#include <asm/arch/udc.h>
|
||||||
#include <asm/arch/corgi.h>
|
#include <asm/arch/corgi.h>
|
||||||
|
#include <asm/arch/sharpsl.h>
|
||||||
|
|
||||||
#include <asm/mach/sharpsl_param.h>
|
#include <asm/mach/sharpsl_param.h>
|
||||||
#include <asm/hardware/scoop.h>
|
#include <asm/hardware/scoop.h>
|
||||||
|
|
|
@ -19,7 +19,6 @@
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
#include <linux/device.h>
|
#include <linux/device.h>
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <asm/mach-types.h>
|
|
||||||
#include <asm/arch/akita.h>
|
#include <asm/arch/akita.h>
|
||||||
#include <asm/arch/corgi.h>
|
#include <asm/arch/corgi.h>
|
||||||
#include <asm/arch/hardware.h>
|
#include <asm/arch/hardware.h>
|
||||||
|
|
|
@ -34,6 +34,7 @@
|
||||||
#include <asm/arch/udc.h>
|
#include <asm/arch/udc.h>
|
||||||
#include <asm/arch/pxafb.h>
|
#include <asm/arch/pxafb.h>
|
||||||
#include <asm/arch/mmc.h>
|
#include <asm/arch/mmc.h>
|
||||||
|
#include <asm/arch/i2c.h>
|
||||||
|
|
||||||
#include "generic.h"
|
#include "generic.h"
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,6 @@
|
||||||
#include <asm/hardware.h>
|
#include <asm/hardware.h>
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <asm/irq.h>
|
#include <asm/irq.h>
|
||||||
#include <asm/mach-types.h>
|
|
||||||
|
|
||||||
#include "devs.h"
|
#include "devs.h"
|
||||||
#include "usb-simtec.h"
|
#include "usb-simtec.h"
|
||||||
|
|
|
@ -111,11 +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(&colliescoop_device.dev, SCOOP_GPCR, read_scoop_reg(SCOOP_GPCR) | COLLIE_SCP_VPEN);
|
write_scoop_reg(&colliescoop_device.dev, SCOOP_GPCR, read_scoop_reg(&colliescoop_device.dev, SCOOP_GPCR) | COLLIE_SCP_VPEN);
|
||||||
if (vpp)
|
if (vpp)
|
||||||
write_scoop_reg(&colliescoop_device.dev, SCOOP_GPWR, read_scoop_reg(SCOOP_GPWR) | COLLIE_SCP_VPEN);
|
write_scoop_reg(&colliescoop_device.dev, SCOOP_GPWR, read_scoop_reg(&colliescoop_device.dev, SCOOP_GPWR) | COLLIE_SCP_VPEN);
|
||||||
else
|
else
|
||||||
write_scoop_reg(&colliescoop_device.dev, SCOOP_GPWR, read_scoop_reg(SCOOP_GPWR) & ~COLLIE_SCP_VPEN);
|
write_scoop_reg(&colliescoop_device.dev, SCOOP_GPWR, read_scoop_reg(&colliescoop_device.dev, SCOOP_GPWR) & ~COLLIE_SCP_VPEN);
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct flash_platform_data collie_flash_data = {
|
static struct flash_platform_data collie_flash_data = {
|
||||||
|
|
|
@ -30,7 +30,6 @@
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <asm/irq.h>
|
#include <asm/irq.h>
|
||||||
#include <asm/leds.h>
|
#include <asm/leds.h>
|
||||||
#include <asm/mach-types.h>
|
|
||||||
#include <asm/hardware/amba.h>
|
#include <asm/hardware/amba.h>
|
||||||
#include <asm/hardware/amba_clcd.h>
|
#include <asm/hardware/amba_clcd.h>
|
||||||
#include <asm/hardware/arm_timer.h>
|
#include <asm/hardware/arm_timer.h>
|
||||||
|
@ -52,8 +51,9 @@
|
||||||
*
|
*
|
||||||
* Setup a VA for the Versatile Vectored Interrupt Controller.
|
* Setup a VA for the Versatile Vectored Interrupt Controller.
|
||||||
*/
|
*/
|
||||||
#define VA_VIC_BASE IO_ADDRESS(VERSATILE_VIC_BASE)
|
#define __io_address(n) __io(IO_ADDRESS(n))
|
||||||
#define VA_SIC_BASE IO_ADDRESS(VERSATILE_SIC_BASE)
|
#define VA_VIC_BASE __io_address(VERSATILE_VIC_BASE)
|
||||||
|
#define VA_SIC_BASE __io_address(VERSATILE_SIC_BASE)
|
||||||
|
|
||||||
static void vic_mask_irq(unsigned int irq)
|
static void vic_mask_irq(unsigned int irq)
|
||||||
{
|
{
|
||||||
|
@ -214,7 +214,7 @@ void __init versatile_map_io(void)
|
||||||
iotable_init(versatile_io_desc, ARRAY_SIZE(versatile_io_desc));
|
iotable_init(versatile_io_desc, ARRAY_SIZE(versatile_io_desc));
|
||||||
}
|
}
|
||||||
|
|
||||||
#define VERSATILE_REFCOUNTER (IO_ADDRESS(VERSATILE_SYS_BASE) + VERSATILE_SYS_24MHz_OFFSET)
|
#define VERSATILE_REFCOUNTER (__io_address(VERSATILE_SYS_BASE) + VERSATILE_SYS_24MHz_OFFSET)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This is the Versatile sched_clock implementation. This has
|
* This is the Versatile sched_clock implementation. This has
|
||||||
|
@ -231,7 +231,7 @@ unsigned long long sched_clock(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#define VERSATILE_FLASHCTRL (IO_ADDRESS(VERSATILE_SYS_BASE) + VERSATILE_SYS_FLASH_OFFSET)
|
#define VERSATILE_FLASHCTRL (__io_address(VERSATILE_SYS_BASE) + VERSATILE_SYS_FLASH_OFFSET)
|
||||||
|
|
||||||
static int versatile_flash_init(void)
|
static int versatile_flash_init(void)
|
||||||
{
|
{
|
||||||
|
@ -309,7 +309,7 @@ static struct platform_device smc91x_device = {
|
||||||
.resource = smc91x_resources,
|
.resource = smc91x_resources,
|
||||||
};
|
};
|
||||||
|
|
||||||
#define VERSATILE_SYSMCI (IO_ADDRESS(VERSATILE_SYS_BASE) + VERSATILE_SYS_MCI_OFFSET)
|
#define VERSATILE_SYSMCI (__io_address(VERSATILE_SYS_BASE) + VERSATILE_SYS_MCI_OFFSET)
|
||||||
|
|
||||||
unsigned int mmc_status(struct device *dev)
|
unsigned int mmc_status(struct device *dev)
|
||||||
{
|
{
|
||||||
|
@ -343,11 +343,11 @@ static const struct icst307_params versatile_oscvco_params = {
|
||||||
|
|
||||||
static void versatile_oscvco_set(struct clk *clk, struct icst307_vco vco)
|
static void versatile_oscvco_set(struct clk *clk, struct icst307_vco vco)
|
||||||
{
|
{
|
||||||
unsigned long sys_lock = IO_ADDRESS(VERSATILE_SYS_BASE) + VERSATILE_SYS_LOCK_OFFSET;
|
void __iomem *sys_lock = __io_address(VERSATILE_SYS_BASE) + VERSATILE_SYS_LOCK_OFFSET;
|
||||||
#if defined(CONFIG_ARCH_VERSATILE_PB)
|
#if defined(CONFIG_ARCH_VERSATILE_PB)
|
||||||
unsigned long sys_osc = IO_ADDRESS(VERSATILE_SYS_BASE) + VERSATILE_SYS_OSC4_OFFSET;
|
void __iomem *sys_osc = __io_address(VERSATILE_SYS_BASE) + VERSATILE_SYS_OSC4_OFFSET;
|
||||||
#elif defined(CONFIG_MACH_VERSATILE_AB)
|
#elif defined(CONFIG_MACH_VERSATILE_AB)
|
||||||
unsigned long sys_osc = IO_ADDRESS(VERSATILE_SYS_BASE) + VERSATILE_SYS_OSC1_OFFSET;
|
void __iomem *sys_osc = __io_address(VERSATILE_SYS_BASE) + VERSATILE_SYS_OSC1_OFFSET;
|
||||||
#endif
|
#endif
|
||||||
u32 val;
|
u32 val;
|
||||||
|
|
||||||
|
@ -483,7 +483,7 @@ static struct clcd_panel epson_2_2_in = {
|
||||||
*/
|
*/
|
||||||
static struct clcd_panel *versatile_clcd_panel(void)
|
static struct clcd_panel *versatile_clcd_panel(void)
|
||||||
{
|
{
|
||||||
unsigned long sys_clcd = IO_ADDRESS(VERSATILE_SYS_BASE) + VERSATILE_SYS_CLCD_OFFSET;
|
void __iomem *sys_clcd = __io_address(VERSATILE_SYS_BASE) + VERSATILE_SYS_CLCD_OFFSET;
|
||||||
struct clcd_panel *panel = &vga;
|
struct clcd_panel *panel = &vga;
|
||||||
u32 val;
|
u32 val;
|
||||||
|
|
||||||
|
@ -510,7 +510,7 @@ static struct clcd_panel *versatile_clcd_panel(void)
|
||||||
*/
|
*/
|
||||||
static void versatile_clcd_disable(struct clcd_fb *fb)
|
static void versatile_clcd_disable(struct clcd_fb *fb)
|
||||||
{
|
{
|
||||||
unsigned long sys_clcd = IO_ADDRESS(VERSATILE_SYS_BASE) + VERSATILE_SYS_CLCD_OFFSET;
|
void __iomem *sys_clcd = __io_address(VERSATILE_SYS_BASE) + VERSATILE_SYS_CLCD_OFFSET;
|
||||||
u32 val;
|
u32 val;
|
||||||
|
|
||||||
val = readl(sys_clcd);
|
val = readl(sys_clcd);
|
||||||
|
@ -522,7 +522,7 @@ static void versatile_clcd_disable(struct clcd_fb *fb)
|
||||||
* If the LCD is Sanyo 2x5 in on the IB2 board, turn the back-light off
|
* If the LCD is Sanyo 2x5 in on the IB2 board, turn the back-light off
|
||||||
*/
|
*/
|
||||||
if (fb->panel == &sanyo_2_5_in) {
|
if (fb->panel == &sanyo_2_5_in) {
|
||||||
unsigned long versatile_ib2_ctrl = IO_ADDRESS(VERSATILE_IB2_CTRL);
|
void __iomem *versatile_ib2_ctrl = __io_address(VERSATILE_IB2_CTRL);
|
||||||
unsigned long ctrl;
|
unsigned long ctrl;
|
||||||
|
|
||||||
ctrl = readl(versatile_ib2_ctrl);
|
ctrl = readl(versatile_ib2_ctrl);
|
||||||
|
@ -537,7 +537,7 @@ static void versatile_clcd_disable(struct clcd_fb *fb)
|
||||||
*/
|
*/
|
||||||
static void versatile_clcd_enable(struct clcd_fb *fb)
|
static void versatile_clcd_enable(struct clcd_fb *fb)
|
||||||
{
|
{
|
||||||
unsigned long sys_clcd = IO_ADDRESS(VERSATILE_SYS_BASE) + VERSATILE_SYS_CLCD_OFFSET;
|
void __iomem *sys_clcd = __io_address(VERSATILE_SYS_BASE) + VERSATILE_SYS_CLCD_OFFSET;
|
||||||
u32 val;
|
u32 val;
|
||||||
|
|
||||||
val = readl(sys_clcd);
|
val = readl(sys_clcd);
|
||||||
|
@ -571,7 +571,7 @@ static void versatile_clcd_enable(struct clcd_fb *fb)
|
||||||
* If the LCD is Sanyo 2x5 in on the IB2 board, turn the back-light on
|
* If the LCD is Sanyo 2x5 in on the IB2 board, turn the back-light on
|
||||||
*/
|
*/
|
||||||
if (fb->panel == &sanyo_2_5_in) {
|
if (fb->panel == &sanyo_2_5_in) {
|
||||||
unsigned long versatile_ib2_ctrl = IO_ADDRESS(VERSATILE_IB2_CTRL);
|
void __iomem *versatile_ib2_ctrl = __io_address(VERSATILE_IB2_CTRL);
|
||||||
unsigned long ctrl;
|
unsigned long ctrl;
|
||||||
|
|
||||||
ctrl = readl(versatile_ib2_ctrl);
|
ctrl = readl(versatile_ib2_ctrl);
|
||||||
|
@ -720,7 +720,7 @@ static struct amba_device *amba_devs[] __initdata = {
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef CONFIG_LEDS
|
#ifdef CONFIG_LEDS
|
||||||
#define VA_LEDS_BASE (IO_ADDRESS(VERSATILE_SYS_BASE) + VERSATILE_SYS_LED_OFFSET)
|
#define VA_LEDS_BASE (__io_address(VERSATILE_SYS_BASE) + VERSATILE_SYS_LED_OFFSET)
|
||||||
|
|
||||||
static void versatile_leds_event(led_event_t ledevt)
|
static void versatile_leds_event(led_event_t ledevt)
|
||||||
{
|
{
|
||||||
|
@ -778,11 +778,11 @@ void __init versatile_init(void)
|
||||||
/*
|
/*
|
||||||
* Where is the timer (VA)?
|
* Where is the timer (VA)?
|
||||||
*/
|
*/
|
||||||
#define TIMER0_VA_BASE IO_ADDRESS(VERSATILE_TIMER0_1_BASE)
|
#define TIMER0_VA_BASE __io_address(VERSATILE_TIMER0_1_BASE)
|
||||||
#define TIMER1_VA_BASE (IO_ADDRESS(VERSATILE_TIMER0_1_BASE) + 0x20)
|
#define TIMER1_VA_BASE (__io_address(VERSATILE_TIMER0_1_BASE) + 0x20)
|
||||||
#define TIMER2_VA_BASE IO_ADDRESS(VERSATILE_TIMER2_3_BASE)
|
#define TIMER2_VA_BASE __io_address(VERSATILE_TIMER2_3_BASE)
|
||||||
#define TIMER3_VA_BASE (IO_ADDRESS(VERSATILE_TIMER2_3_BASE) + 0x20)
|
#define TIMER3_VA_BASE (__io_address(VERSATILE_TIMER2_3_BASE) + 0x20)
|
||||||
#define VA_IC_BASE IO_ADDRESS(VERSATILE_VIC_BASE)
|
#define VA_IC_BASE __io_address(VERSATILE_VIC_BASE)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* How long is the timer interval?
|
* How long is the timer interval?
|
||||||
|
@ -877,12 +877,12 @@ static void __init versatile_timer_init(void)
|
||||||
* VERSATILE_REFCLK is 32KHz
|
* VERSATILE_REFCLK is 32KHz
|
||||||
* VERSATILE_TIMCLK is 1MHz
|
* VERSATILE_TIMCLK is 1MHz
|
||||||
*/
|
*/
|
||||||
val = readl(IO_ADDRESS(VERSATILE_SCTL_BASE));
|
val = readl(__io_address(VERSATILE_SCTL_BASE));
|
||||||
writel((VERSATILE_TIMCLK << VERSATILE_TIMER1_EnSel) |
|
writel((VERSATILE_TIMCLK << VERSATILE_TIMER1_EnSel) |
|
||||||
(VERSATILE_TIMCLK << VERSATILE_TIMER2_EnSel) |
|
(VERSATILE_TIMCLK << VERSATILE_TIMER2_EnSel) |
|
||||||
(VERSATILE_TIMCLK << VERSATILE_TIMER3_EnSel) |
|
(VERSATILE_TIMCLK << VERSATILE_TIMER3_EnSel) |
|
||||||
(VERSATILE_TIMCLK << VERSATILE_TIMER4_EnSel) | val,
|
(VERSATILE_TIMCLK << VERSATILE_TIMER4_EnSel) | val,
|
||||||
IO_ADDRESS(VERSATILE_SCTL_BASE));
|
__io_address(VERSATILE_SCTL_BASE));
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Initialise to a known state (all timers off)
|
* Initialise to a known state (all timers off)
|
||||||
|
|
|
@ -29,7 +29,6 @@
|
||||||
#include <asm/irq.h>
|
#include <asm/irq.h>
|
||||||
#include <asm/system.h>
|
#include <asm/system.h>
|
||||||
#include <asm/mach/pci.h>
|
#include <asm/mach/pci.h>
|
||||||
#include <asm/mach-types.h>
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* these spaces are mapped using the following base registers:
|
* these spaces are mapped using the following base registers:
|
||||||
|
|
|
@ -370,21 +370,21 @@ config CPU_BIG_ENDIAN
|
||||||
|
|
||||||
config CPU_ICACHE_DISABLE
|
config CPU_ICACHE_DISABLE
|
||||||
bool "Disable I-Cache"
|
bool "Disable I-Cache"
|
||||||
depends on CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020
|
depends on CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020 || CPU_V6
|
||||||
help
|
help
|
||||||
Say Y here to disable the processor instruction cache. Unless
|
Say Y here to disable the processor instruction cache. Unless
|
||||||
you have a reason not to or are unsure, say N.
|
you have a reason not to or are unsure, say N.
|
||||||
|
|
||||||
config CPU_DCACHE_DISABLE
|
config CPU_DCACHE_DISABLE
|
||||||
bool "Disable D-Cache"
|
bool "Disable D-Cache"
|
||||||
depends on CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020
|
depends on CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020 || CPU_V6
|
||||||
help
|
help
|
||||||
Say Y here to disable the processor data cache. Unless
|
Say Y here to disable the processor data cache. Unless
|
||||||
you have a reason not to or are unsure, say N.
|
you have a reason not to or are unsure, say N.
|
||||||
|
|
||||||
config CPU_DCACHE_WRITETHROUGH
|
config CPU_DCACHE_WRITETHROUGH
|
||||||
bool "Force write through D-cache"
|
bool "Force write through D-cache"
|
||||||
depends on (CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020) && !CPU_DCACHE_DISABLE
|
depends on (CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020 || CPU_V6) && !CPU_DCACHE_DISABLE
|
||||||
default y if CPU_ARM925T
|
default y if CPU_ARM925T
|
||||||
help
|
help
|
||||||
Say Y here to use the data cache in writethrough mode. Unless you
|
Say Y here to use the data cache in writethrough mode. Unless you
|
||||||
|
@ -399,7 +399,7 @@ config CPU_CACHE_ROUND_ROBIN
|
||||||
|
|
||||||
config CPU_BPREDICT_DISABLE
|
config CPU_BPREDICT_DISABLE
|
||||||
bool "Disable branch prediction"
|
bool "Disable branch prediction"
|
||||||
depends on CPU_ARM1020
|
depends on CPU_ARM1020 || CPU_V6
|
||||||
help
|
help
|
||||||
Say Y here to disable branch prediction. If unsure, say N.
|
Say Y here to disable branch prediction. If unsure, say N.
|
||||||
|
|
||||||
|
|
|
@ -20,6 +20,11 @@
|
||||||
*/
|
*/
|
||||||
.align 5
|
.align 5
|
||||||
ENTRY(v6_early_abort)
|
ENTRY(v6_early_abort)
|
||||||
|
#ifdef CONFIG_CPU_MPCORE
|
||||||
|
clrex
|
||||||
|
#else
|
||||||
|
strex r0, r1, [sp] @ Clear the exclusive monitor
|
||||||
|
#endif
|
||||||
mrc p15, 0, r1, c5, c0, 0 @ get FSR
|
mrc p15, 0, r1, c5, c0, 0 @ get FSR
|
||||||
mrc p15, 0, r0, c6, c0, 0 @ get FAR
|
mrc p15, 0, r0, c6, c0, 0 @ get FAR
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -330,6 +330,9 @@ do_alignment_ldrdstrd(unsigned long addr, unsigned long instr,
|
||||||
{
|
{
|
||||||
unsigned int rd = RD_BITS(instr);
|
unsigned int rd = RD_BITS(instr);
|
||||||
|
|
||||||
|
if (((rd & 1) == 1) || (rd == 14))
|
||||||
|
goto bad;
|
||||||
|
|
||||||
ai_dword += 1;
|
ai_dword += 1;
|
||||||
|
|
||||||
if (user_mode(regs))
|
if (user_mode(regs))
|
||||||
|
@ -361,7 +364,8 @@ do_alignment_ldrdstrd(unsigned long addr, unsigned long instr,
|
||||||
}
|
}
|
||||||
|
|
||||||
return TYPE_LDST;
|
return TYPE_LDST;
|
||||||
|
bad:
|
||||||
|
return TYPE_ERROR;
|
||||||
fault:
|
fault:
|
||||||
return TYPE_FAULT;
|
return TYPE_FAULT;
|
||||||
}
|
}
|
||||||
|
@ -663,6 +667,8 @@ do_alignment(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
|
||||||
else if ((instr & 0x001000f0) == 0x000000d0 || /* LDRD */
|
else if ((instr & 0x001000f0) == 0x000000d0 || /* LDRD */
|
||||||
(instr & 0x001000f0) == 0x000000f0) /* STRD */
|
(instr & 0x001000f0) == 0x000000f0) /* STRD */
|
||||||
handler = do_alignment_ldrdstrd;
|
handler = do_alignment_ldrdstrd;
|
||||||
|
else if ((instr & 0x01f00ff0) == 0x01000090) /* SWP */
|
||||||
|
goto swp;
|
||||||
else
|
else
|
||||||
goto bad;
|
goto bad;
|
||||||
break;
|
break;
|
||||||
|
@ -733,6 +739,9 @@ do_alignment(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
|
||||||
do_bad_area(current, current->mm, addr, fsr, regs);
|
do_bad_area(current, current->mm, addr, fsr, regs);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
swp:
|
||||||
|
printk(KERN_ERR "Alignment trap: not handling swp instruction\n");
|
||||||
|
|
||||||
bad:
|
bad:
|
||||||
/*
|
/*
|
||||||
* Oops, we didn't handle the instruction.
|
* Oops, we didn't handle the instruction.
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
#define HARVARD_CACHE
|
#define HARVARD_CACHE
|
||||||
#define CACHE_LINE_SIZE 32
|
#define CACHE_LINE_SIZE 32
|
||||||
#define D_CACHE_LINE_SIZE 32
|
#define D_CACHE_LINE_SIZE 32
|
||||||
|
#define BTB_FLUSH_SIZE 8
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* v6_flush_cache_all()
|
* v6_flush_cache_all()
|
||||||
|
@ -98,7 +99,13 @@ ENTRY(v6_coherent_user_range)
|
||||||
mcr p15, 0, r0, c7, c5, 1 @ invalidate I line
|
mcr p15, 0, r0, c7, c5, 1 @ invalidate I line
|
||||||
#endif
|
#endif
|
||||||
mcr p15, 0, r0, c7, c5, 7 @ invalidate BTB entry
|
mcr p15, 0, r0, c7, c5, 7 @ invalidate BTB entry
|
||||||
add r0, r0, #CACHE_LINE_SIZE
|
add r0, r0, #BTB_FLUSH_SIZE
|
||||||
|
mcr p15, 0, r0, c7, c5, 7 @ invalidate BTB entry
|
||||||
|
add r0, r0, #BTB_FLUSH_SIZE
|
||||||
|
mcr p15, 0, r0, c7, c5, 7 @ invalidate BTB entry
|
||||||
|
add r0, r0, #BTB_FLUSH_SIZE
|
||||||
|
mcr p15, 0, r0, c7, c5, 7 @ invalidate BTB entry
|
||||||
|
add r0, r0, #BTB_FLUSH_SIZE
|
||||||
cmp r0, r1
|
cmp r0, r1
|
||||||
blo 1b
|
blo 1b
|
||||||
#ifdef HARVARD_CACHE
|
#ifdef HARVARD_CACHE
|
||||||
|
|
|
@ -17,6 +17,24 @@
|
||||||
|
|
||||||
#ifdef CONFIG_CPU_CACHE_VIPT
|
#ifdef CONFIG_CPU_CACHE_VIPT
|
||||||
|
|
||||||
|
#define ALIAS_FLUSH_START 0xffff4000
|
||||||
|
|
||||||
|
#define TOP_PTE(x) pte_offset_kernel(top_pmd, x)
|
||||||
|
|
||||||
|
static void flush_pfn_alias(unsigned long pfn, unsigned long vaddr)
|
||||||
|
{
|
||||||
|
unsigned long to = ALIAS_FLUSH_START + (CACHE_COLOUR(vaddr) << PAGE_SHIFT);
|
||||||
|
|
||||||
|
set_pte(TOP_PTE(to), pfn_pte(pfn, PAGE_KERNEL));
|
||||||
|
flush_tlb_kernel_page(to);
|
||||||
|
|
||||||
|
asm( "mcrr p15, 0, %1, %0, c14\n"
|
||||||
|
" mcrr p15, 0, %1, %0, c5\n"
|
||||||
|
:
|
||||||
|
: "r" (to), "r" (to + PAGE_SIZE - L1_CACHE_BYTES)
|
||||||
|
: "cc");
|
||||||
|
}
|
||||||
|
|
||||||
void flush_cache_mm(struct mm_struct *mm)
|
void flush_cache_mm(struct mm_struct *mm)
|
||||||
{
|
{
|
||||||
if (cache_is_vivt()) {
|
if (cache_is_vivt()) {
|
||||||
|
@ -67,24 +85,6 @@ void flush_cache_page(struct vm_area_struct *vma, unsigned long user_addr, unsig
|
||||||
if (cache_is_vipt_aliasing())
|
if (cache_is_vipt_aliasing())
|
||||||
flush_pfn_alias(pfn, user_addr);
|
flush_pfn_alias(pfn, user_addr);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define ALIAS_FLUSH_START 0xffff4000
|
|
||||||
|
|
||||||
#define TOP_PTE(x) pte_offset_kernel(top_pmd, x)
|
|
||||||
|
|
||||||
static void flush_pfn_alias(unsigned long pfn, unsigned long vaddr)
|
|
||||||
{
|
|
||||||
unsigned long to = ALIAS_FLUSH_START + (CACHE_COLOUR(vaddr) << PAGE_SHIFT);
|
|
||||||
|
|
||||||
set_pte(TOP_PTE(to), pfn_pte(pfn, PAGE_KERNEL));
|
|
||||||
flush_tlb_kernel_page(to);
|
|
||||||
|
|
||||||
asm( "mcrr p15, 0, %1, %0, c14\n"
|
|
||||||
" mcrr p15, 0, %1, %0, c5\n"
|
|
||||||
:
|
|
||||||
: "r" (to), "r" (to + PAGE_SIZE - L1_CACHE_BYTES)
|
|
||||||
: "cc");
|
|
||||||
}
|
|
||||||
#else
|
#else
|
||||||
#define flush_pfn_alias(pfn,vaddr) do { } while (0)
|
#define flush_pfn_alias(pfn,vaddr) do { } while (0)
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -25,7 +25,6 @@
|
||||||
#include <asm/mach/map.h>
|
#include <asm/mach/map.h>
|
||||||
#include <asm/hardware/clock.h>
|
#include <asm/hardware/clock.h>
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <asm/mach-types.h>
|
|
||||||
#include <asm/setup.h>
|
#include <asm/setup.h>
|
||||||
|
|
||||||
#include <asm/arch/board.h>
|
#include <asm/arch/board.h>
|
||||||
|
|
|
@ -21,7 +21,6 @@
|
||||||
#include <linux/err.h>
|
#include <linux/err.h>
|
||||||
|
|
||||||
#include <asm/hardware.h>
|
#include <asm/hardware.h>
|
||||||
#include <asm/mach-types.h>
|
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <asm/system.h>
|
#include <asm/system.h>
|
||||||
|
|
||||||
|
|
|
@ -33,7 +33,6 @@
|
||||||
#include <asm/irq.h>
|
#include <asm/irq.h>
|
||||||
#include <asm/system.h>
|
#include <asm/system.h>
|
||||||
#include <asm/hardware.h>
|
#include <asm/hardware.h>
|
||||||
#include <asm/mach-types.h>
|
|
||||||
|
|
||||||
#include <asm/arch/mux.h>
|
#include <asm/arch/mux.h>
|
||||||
#include <asm/arch/usb.h>
|
#include <asm/arch/usb.h>
|
||||||
|
|
|
@ -2,11 +2,17 @@
|
||||||
#
|
#
|
||||||
# This file is linux/arch/arm/tools/mach-types
|
# This file is linux/arch/arm/tools/mach-types
|
||||||
#
|
#
|
||||||
|
# Up to date versions of this file can be obtained from:
|
||||||
|
#
|
||||||
|
# http://www.arm.linux.org.uk/developer/machines/?action=download
|
||||||
|
#
|
||||||
# Please do not send patches to this file; it is automatically generated!
|
# Please do not send patches to this file; it is automatically generated!
|
||||||
# To add an entry into this database, please see Documentation/arm/README,
|
# To add an entry into this database, please see Documentation/arm/README,
|
||||||
# or contact rmk@arm.linux.org.uk
|
# or visit:
|
||||||
#
|
#
|
||||||
# Last update: Thu Jun 23 20:19:33 2005
|
# http://www.arm.linux.org.uk/developer/machines/?action=new
|
||||||
|
#
|
||||||
|
# Last update: Mon Oct 10 09:46:25 2005
|
||||||
#
|
#
|
||||||
# machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number
|
# machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number
|
||||||
#
|
#
|
||||||
|
@ -421,7 +427,7 @@ mt02 MACH_MT02 MT02 410
|
||||||
mport3s MACH_MPORT3S MPORT3S 411
|
mport3s MACH_MPORT3S MPORT3S 411
|
||||||
ra_alpha MACH_RA_ALPHA RA_ALPHA 412
|
ra_alpha MACH_RA_ALPHA RA_ALPHA 412
|
||||||
xcep MACH_XCEP XCEP 413
|
xcep MACH_XCEP XCEP 413
|
||||||
arcom_mercury MACH_ARCOM_MERCURY ARCOM_MERCURY 414
|
arcom_vulcan MACH_ARCOM_VULCAN ARCOM_VULCAN 414
|
||||||
stargate MACH_STARGATE STARGATE 415
|
stargate MACH_STARGATE STARGATE 415
|
||||||
armadilloj MACH_ARMADILLOJ ARMADILLOJ 416
|
armadilloj MACH_ARMADILLOJ ARMADILLOJ 416
|
||||||
elroy_jack MACH_ELROY_JACK ELROY_JACK 417
|
elroy_jack MACH_ELROY_JACK ELROY_JACK 417
|
||||||
|
@ -454,7 +460,7 @@ esl_sarva MACH_ESL_SARVA ESL_SARVA 443
|
||||||
xm250 MACH_XM250 XM250 444
|
xm250 MACH_XM250 XM250 444
|
||||||
t6tc1xb MACH_T6TC1XB T6TC1XB 445
|
t6tc1xb MACH_T6TC1XB T6TC1XB 445
|
||||||
ess710 MACH_ESS710 ESS710 446
|
ess710 MACH_ESS710 ESS710 446
|
||||||
mx3ads MACH_MX3ADS MX3ADS 447
|
mx31ads MACH_MX3ADS MX3ADS 447
|
||||||
himalaya MACH_HIMALAYA HIMALAYA 448
|
himalaya MACH_HIMALAYA HIMALAYA 448
|
||||||
bolfenk MACH_BOLFENK BOLFENK 449
|
bolfenk MACH_BOLFENK BOLFENK 449
|
||||||
at91rm9200kr MACH_AT91RM9200KR AT91RM9200KR 450
|
at91rm9200kr MACH_AT91RM9200KR AT91RM9200KR 450
|
||||||
|
@ -787,3 +793,79 @@ ez_ixp42x MACH_EZ_IXP42X EZ_IXP42X 778
|
||||||
tapwave_zodiac MACH_TAPWAVE_ZODIAC TAPWAVE_ZODIAC 779
|
tapwave_zodiac MACH_TAPWAVE_ZODIAC TAPWAVE_ZODIAC 779
|
||||||
universalmeter MACH_UNIVERSALMETER UNIVERSALMETER 780
|
universalmeter MACH_UNIVERSALMETER UNIVERSALMETER 780
|
||||||
hicoarm9 MACH_HICOARM9 HICOARM9 781
|
hicoarm9 MACH_HICOARM9 HICOARM9 781
|
||||||
|
pnx4008 MACH_PNX4008 PNX4008 782
|
||||||
|
kws6000 MACH_KWS6000 KWS6000 783
|
||||||
|
portux920t MACH_PORTUX920T PORTUX920T 784
|
||||||
|
ez_x5 MACH_EZ_X5 EZ_X5 785
|
||||||
|
omap_rudolph MACH_OMAP_RUDOLPH OMAP_RUDOLPH 786
|
||||||
|
cpuat91 MACH_CPUAT91 CPUAT91 787
|
||||||
|
rea9200 MACH_REA9200 REA9200 788
|
||||||
|
acts_pune_sa1110 MACH_ACTS_PUNE_SA1110 ACTS_PUNE_SA1110 789
|
||||||
|
ixp425 MACH_IXP425 IXP425 790
|
||||||
|
argonplusodyssey MACH_ODYSSEY ODYSSEY 791
|
||||||
|
perch MACH_PERCH PERCH 792
|
||||||
|
eis05r1 MACH_EIS05R1 EIS05R1 793
|
||||||
|
pepperpad MACH_PEPPERPAD PEPPERPAD 794
|
||||||
|
sb3010 MACH_SB3010 SB3010 795
|
||||||
|
rm9200 MACH_RM9200 RM9200 796
|
||||||
|
dma03 MACH_DMA03 DMA03 797
|
||||||
|
road_s101 MACH_ROAD_S101 ROAD_S101 798
|
||||||
|
iq_nextgen_a MACH_IQ_NEXTGEN_A IQ_NEXTGEN_A 799
|
||||||
|
iq_nextgen_b MACH_IQ_NEXTGEN_B IQ_NEXTGEN_B 800
|
||||||
|
iq_nextgen_c MACH_IQ_NEXTGEN_C IQ_NEXTGEN_C 801
|
||||||
|
iq_nextgen_d MACH_IQ_NEXTGEN_D IQ_NEXTGEN_D 802
|
||||||
|
iq_nextgen_e MACH_IQ_NEXTGEN_E IQ_NEXTGEN_E 803
|
||||||
|
mallow_at91 MACH_MALLOW_AT91 MALLOW_AT91 804
|
||||||
|
cybertracker MACH_CYBERTRACKER CYBERTRACKER 805
|
||||||
|
gesbc931x MACH_GESBC931X GESBC931X 806
|
||||||
|
centipad MACH_CENTIPAD CENTIPAD 807
|
||||||
|
armsoc MACH_ARMSOC ARMSOC 808
|
||||||
|
se4200 MACH_SE4200 SE4200 809
|
||||||
|
ems197a MACH_EMS197A EMS197A 810
|
||||||
|
micro9 MACH_MICRO9 MICRO9 811
|
||||||
|
micro9l MACH_MICRO9L MICRO9L 812
|
||||||
|
uc5471dsp MACH_UC5471DSP UC5471DSP 813
|
||||||
|
sj5471eng MACH_SJ5471ENG SJ5471ENG 814
|
||||||
|
none MACH_CMPXA26X CMPXA26X 815
|
||||||
|
nc MACH_NC NC 816
|
||||||
|
omap_palmte MACH_OMAP_PALMTE OMAP_PALMTE 817
|
||||||
|
ajax52x MACH_AJAX52X AJAX52X 818
|
||||||
|
siriustar MACH_SIRIUSTAR SIRIUSTAR 819
|
||||||
|
iodata_hdlg MACH_IODATA_HDLG IODATA_HDLG 820
|
||||||
|
at91rm9200utl MACH_AT91RM9200UTL AT91RM9200UTL 821
|
||||||
|
biosafe MACH_BIOSAFE BIOSAFE 822
|
||||||
|
mp1000 MACH_MP1000 MP1000 823
|
||||||
|
parsy MACH_PARSY PARSY 824
|
||||||
|
ccxp270 MACH_CCXP CCXP 825
|
||||||
|
omap_gsample MACH_OMAP_GSAMPLE OMAP_GSAMPLE 826
|
||||||
|
realview_eb MACH_REALVIEW_EB REALVIEW_EB 827
|
||||||
|
samoa MACH_SAMOA SAMOA 828
|
||||||
|
t3xscale MACH_T3XSCALE T3XSCALE 829
|
||||||
|
i878 MACH_I878 I878 830
|
||||||
|
borzoi MACH_BORZOI BORZOI 831
|
||||||
|
gecko MACH_GECKO GECKO 832
|
||||||
|
ds101 MACH_DS101 DS101 833
|
||||||
|
omap_palmtt2 MACH_OMAP_PALMTT2 OMAP_PALMTT2 834
|
||||||
|
xscale_palmld MACH_XSCALE_PALMLD XSCALE_PALMLD 835
|
||||||
|
cc9c MACH_CC9C CC9C 836
|
||||||
|
sbc1670 MACH_SBC1670 SBC1670 837
|
||||||
|
ixdp28x5 MACH_IXDP28X5 IXDP28X5 838
|
||||||
|
omap_palmtt MACH_OMAP_PALMTT OMAP_PALMTT 839
|
||||||
|
ml696k MACH_ML696K ML696K 840
|
||||||
|
arcom_zeus MACH_ARCOM_ZEUS ARCOM_ZEUS 841
|
||||||
|
osiris MACH_OSIRIS OSIRIS 842
|
||||||
|
maestro MACH_MAESTRO MAESTRO 843
|
||||||
|
tunge2 MACH_TUNGE2 TUNGE2 844
|
||||||
|
ixbbm MACH_IXBBM IXBBM 845
|
||||||
|
mx27 MACH_MX27 MX27 846
|
||||||
|
ax8004 MACH_AX8004 AX8004 847
|
||||||
|
at91sam9261ek MACH_AT91SAM9261EK AT91SAM9261EK 848
|
||||||
|
loft MACH_LOFT LOFT 849
|
||||||
|
magpie MACH_MAGPIE MAGPIE 850
|
||||||
|
mx21 MACH_MX21 MX21 851
|
||||||
|
mb87m3400 MACH_MB87M3400 MB87M3400 852
|
||||||
|
mguard_delta MACH_MGUARD_DELTA MGUARD_DELTA 853
|
||||||
|
davinci_dvdp MACH_DAVINCI_DVDP DAVINCI_DVDP 854
|
||||||
|
htcuniversal MACH_HTCUNIVERSAL HTCUNIVERSAL 855
|
||||||
|
tpad MACH_TPAD TPAD 856
|
||||||
|
roverp3 MACH_ROVERP3 ROVERP3 857
|
||||||
|
|
|
@ -24,7 +24,7 @@ struct dma_coherent_mem {
|
||||||
};
|
};
|
||||||
|
|
||||||
void *dma_alloc_coherent(struct device *dev, size_t size,
|
void *dma_alloc_coherent(struct device *dev, size_t size,
|
||||||
dma_addr_t *dma_handle, unsigned int __nocast gfp)
|
dma_addr_t *dma_handle, gfp_t gfp)
|
||||||
{
|
{
|
||||||
void *ret;
|
void *ret;
|
||||||
struct dma_coherent_mem *mem = dev ? dev->dma_mem : NULL;
|
struct dma_coherent_mem *mem = dev ? dev->dma_mem : NULL;
|
||||||
|
|
|
@ -29,12 +29,12 @@
|
||||||
#include <linux/efi.h>
|
#include <linux/efi.h>
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <linux/dmi.h>
|
#include <linux/dmi.h>
|
||||||
|
#include <linux/irq.h>
|
||||||
|
|
||||||
#include <asm/pgtable.h>
|
#include <asm/pgtable.h>
|
||||||
#include <asm/io_apic.h>
|
#include <asm/io_apic.h>
|
||||||
#include <asm/apic.h>
|
#include <asm/apic.h>
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <asm/irq.h>
|
|
||||||
#include <asm/mpspec.h>
|
#include <asm/mpspec.h>
|
||||||
|
|
||||||
#ifdef CONFIG_X86_64
|
#ifdef CONFIG_X86_64
|
||||||
|
|
|
@ -28,6 +28,22 @@ static void __init init_amd(struct cpuinfo_x86 *c)
|
||||||
int mbytes = num_physpages >> (20-PAGE_SHIFT);
|
int mbytes = num_physpages >> (20-PAGE_SHIFT);
|
||||||
int r;
|
int r;
|
||||||
|
|
||||||
|
#ifdef CONFIG_SMP
|
||||||
|
unsigned long long value;
|
||||||
|
|
||||||
|
/* Disable TLB flush filter by setting HWCR.FFDIS on K8
|
||||||
|
* bit 6 of msr C001_0015
|
||||||
|
*
|
||||||
|
* Errata 63 for SH-B3 steppings
|
||||||
|
* Errata 122 for all steppings (F+ have it disabled by default)
|
||||||
|
*/
|
||||||
|
if (c->x86 == 15) {
|
||||||
|
rdmsrl(MSR_K7_HWCR, value);
|
||||||
|
value |= 1 << 6;
|
||||||
|
wrmsrl(MSR_K7_HWCR, value);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* FIXME: We should handle the K5 here. Set up the write
|
* FIXME: We should handle the K5 here. Set up the write
|
||||||
* range and also turn on MSR 83 bits 4 and 31 (write alloc,
|
* range and also turn on MSR 83 bits 4 and 31 (write alloc,
|
||||||
|
|
|
@ -23,7 +23,7 @@ struct dma_coherent_mem {
|
||||||
};
|
};
|
||||||
|
|
||||||
void *dma_alloc_coherent(struct device *dev, size_t size,
|
void *dma_alloc_coherent(struct device *dev, size_t size,
|
||||||
dma_addr_t *dma_handle, unsigned int __nocast gfp)
|
dma_addr_t *dma_handle, gfp_t gfp)
|
||||||
{
|
{
|
||||||
void *ret;
|
void *ret;
|
||||||
struct dma_coherent_mem *mem = dev ? dev->dma_mem : NULL;
|
struct dma_coherent_mem *mem = dev ? dev->dma_mem : NULL;
|
||||||
|
|
|
@ -338,7 +338,11 @@ get_sigframe(struct k_sigaction *ka, struct pt_regs * regs, size_t frame_size)
|
||||||
esp = (unsigned long) ka->sa.sa_restorer;
|
esp = (unsigned long) ka->sa.sa_restorer;
|
||||||
}
|
}
|
||||||
|
|
||||||
return (void __user *)((esp - frame_size) & -8ul);
|
esp -= frame_size;
|
||||||
|
/* Align the stack pointer according to the i386 ABI,
|
||||||
|
* i.e. so that on function entry ((sp + 4) & 15) == 0. */
|
||||||
|
esp = ((esp + 4) & -16ul) - 4;
|
||||||
|
return (void __user *) esp;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* These symbols are defined with the addresses in the vsyscall page.
|
/* These symbols are defined with the addresses in the vsyscall page.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#include <linux/pci.h>
|
#include <linux/pci.h>
|
||||||
#include <linux/acpi.h>
|
#include <linux/acpi.h>
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
#include <asm/hw_irq.h>
|
#include <linux/irq.h>
|
||||||
#include <asm/numa.h>
|
#include <asm/numa.h>
|
||||||
#include "pci.h"
|
#include "pci.h"
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <asm/smp.h>
|
#include <asm/smp.h>
|
||||||
#include <asm/io_apic.h>
|
#include <asm/io_apic.h>
|
||||||
#include <asm/hw_irq.h>
|
#include <linux/irq.h>
|
||||||
#include <linux/acpi.h>
|
#include <linux/acpi.h>
|
||||||
|
|
||||||
#include "pci.h"
|
#include "pci.h"
|
||||||
|
|
|
@ -1016,6 +1016,11 @@ ia64_mca_cmc_int_handler(int cmc_irq, void *arg, struct pt_regs *ptregs)
|
||||||
|
|
||||||
cmc_polling_enabled = 1;
|
cmc_polling_enabled = 1;
|
||||||
spin_unlock(&cmc_history_lock);
|
spin_unlock(&cmc_history_lock);
|
||||||
|
/* If we're being hit with CMC interrupts, we won't
|
||||||
|
* ever execute the schedule_work() below. Need to
|
||||||
|
* disable CMC interrupts on this processor now.
|
||||||
|
*/
|
||||||
|
ia64_mca_cmc_vector_disable(NULL);
|
||||||
schedule_work(&cmc_disable_work);
|
schedule_work(&cmc_disable_work);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -681,6 +681,15 @@ ENTRY(debug_trap)
|
||||||
bl do_debug_trap
|
bl do_debug_trap
|
||||||
bra error_code
|
bra error_code
|
||||||
|
|
||||||
|
ENTRY(ill_trap)
|
||||||
|
/* void ill_trap(void) */
|
||||||
|
SWITCH_TO_KERNEL_STACK
|
||||||
|
SAVE_ALL
|
||||||
|
ldi r1, #0 ; error_code ; FIXME
|
||||||
|
mv r0, sp ; pt_regs
|
||||||
|
bl do_ill_trap
|
||||||
|
bra error_code
|
||||||
|
|
||||||
|
|
||||||
/* Cache flushing handler */
|
/* Cache flushing handler */
|
||||||
ENTRY(cache_flushing_handler)
|
ENTRY(cache_flushing_handler)
|
||||||
|
|
|
@ -5,8 +5,6 @@
|
||||||
* Hitoshi Yamamoto
|
* Hitoshi Yamamoto
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* $Id$ */
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* 'traps.c' handles hardware traps and faults after we have saved some
|
* 'traps.c' handles hardware traps and faults after we have saved some
|
||||||
* state in 'entry.S'.
|
* state in 'entry.S'.
|
||||||
|
@ -35,6 +33,7 @@ asmlinkage void ei_handler(void);
|
||||||
asmlinkage void rie_handler(void);
|
asmlinkage void rie_handler(void);
|
||||||
asmlinkage void debug_trap(void);
|
asmlinkage void debug_trap(void);
|
||||||
asmlinkage void cache_flushing_handler(void);
|
asmlinkage void cache_flushing_handler(void);
|
||||||
|
asmlinkage void ill_trap(void);
|
||||||
|
|
||||||
#ifdef CONFIG_SMP
|
#ifdef CONFIG_SMP
|
||||||
extern void smp_reschedule_interrupt(void);
|
extern void smp_reschedule_interrupt(void);
|
||||||
|
@ -77,22 +76,22 @@ void set_eit_vector_entries(void)
|
||||||
eit_vector[5] = BRA_INSN(default_eit_handler, 5);
|
eit_vector[5] = BRA_INSN(default_eit_handler, 5);
|
||||||
eit_vector[8] = BRA_INSN(rie_handler, 8);
|
eit_vector[8] = BRA_INSN(rie_handler, 8);
|
||||||
eit_vector[12] = BRA_INSN(alignment_check, 12);
|
eit_vector[12] = BRA_INSN(alignment_check, 12);
|
||||||
eit_vector[16] = 0xff000000UL;
|
eit_vector[16] = BRA_INSN(ill_trap, 16);
|
||||||
eit_vector[17] = BRA_INSN(debug_trap, 17);
|
eit_vector[17] = BRA_INSN(debug_trap, 17);
|
||||||
eit_vector[18] = BRA_INSN(system_call, 18);
|
eit_vector[18] = BRA_INSN(system_call, 18);
|
||||||
eit_vector[19] = 0xff000000UL;
|
eit_vector[19] = BRA_INSN(ill_trap, 19);
|
||||||
eit_vector[20] = 0xff000000UL;
|
eit_vector[20] = BRA_INSN(ill_trap, 20);
|
||||||
eit_vector[21] = 0xff000000UL;
|
eit_vector[21] = BRA_INSN(ill_trap, 21);
|
||||||
eit_vector[22] = 0xff000000UL;
|
eit_vector[22] = BRA_INSN(ill_trap, 22);
|
||||||
eit_vector[23] = 0xff000000UL;
|
eit_vector[23] = BRA_INSN(ill_trap, 23);
|
||||||
eit_vector[24] = 0xff000000UL;
|
eit_vector[24] = BRA_INSN(ill_trap, 24);
|
||||||
eit_vector[25] = 0xff000000UL;
|
eit_vector[25] = BRA_INSN(ill_trap, 25);
|
||||||
eit_vector[26] = 0xff000000UL;
|
eit_vector[26] = BRA_INSN(ill_trap, 26);
|
||||||
eit_vector[27] = 0xff000000UL;
|
eit_vector[27] = BRA_INSN(ill_trap, 27);
|
||||||
eit_vector[28] = BRA_INSN(cache_flushing_handler, 28);
|
eit_vector[28] = BRA_INSN(cache_flushing_handler, 28);
|
||||||
eit_vector[29] = 0xff000000UL;
|
eit_vector[29] = BRA_INSN(ill_trap, 29);
|
||||||
eit_vector[30] = 0xff000000UL;
|
eit_vector[30] = BRA_INSN(ill_trap, 30);
|
||||||
eit_vector[31] = 0xff000000UL;
|
eit_vector[31] = BRA_INSN(ill_trap, 31);
|
||||||
eit_vector[32] = BRA_INSN(ei_handler, 32);
|
eit_vector[32] = BRA_INSN(ei_handler, 32);
|
||||||
eit_vector[64] = BRA_INSN(pie_handler, 64);
|
eit_vector[64] = BRA_INSN(pie_handler, 64);
|
||||||
#ifdef CONFIG_MMU
|
#ifdef CONFIG_MMU
|
||||||
|
@ -286,7 +285,8 @@ asmlinkage void do_##name(struct pt_regs * regs, long error_code) \
|
||||||
|
|
||||||
DO_ERROR( 1, SIGTRAP, "debug trap", debug_trap)
|
DO_ERROR( 1, SIGTRAP, "debug trap", debug_trap)
|
||||||
DO_ERROR_INFO(0x20, SIGILL, "reserved instruction ", rie_handler, ILL_ILLOPC, regs->bpc)
|
DO_ERROR_INFO(0x20, SIGILL, "reserved instruction ", rie_handler, ILL_ILLOPC, regs->bpc)
|
||||||
DO_ERROR_INFO(0x100, SIGILL, "privilege instruction", pie_handler, ILL_PRVOPC, regs->bpc)
|
DO_ERROR_INFO(0x100, SIGILL, "privileged instruction", pie_handler, ILL_PRVOPC, regs->bpc)
|
||||||
|
DO_ERROR_INFO(-1, SIGILL, "illegal trap", ill_trap, ILL_ILLTRP, regs->bpc)
|
||||||
|
|
||||||
extern int handle_unaligned_access(unsigned long, struct pt_regs *);
|
extern int handle_unaligned_access(unsigned long, struct pt_regs *);
|
||||||
|
|
||||||
|
@ -329,4 +329,3 @@ asmlinkage void do_alignment_check(struct pt_regs *regs, long error_code)
|
||||||
set_fs(oldfs);
|
set_fs(oldfs);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
#include <asm/prom.h>
|
#include <asm/prom.h>
|
||||||
#include <asm/ppc-pci.h>
|
#include <asm/ppc-pci.h>
|
||||||
|
|
||||||
static int __initdata s7a_workaround = -1;
|
static int __devinitdata s7a_workaround = -1;
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
void pcibios_name_device(struct pci_dev *dev)
|
void pcibios_name_device(struct pci_dev *dev)
|
||||||
|
@ -59,7 +59,7 @@ void pcibios_name_device(struct pci_dev *dev)
|
||||||
DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, pcibios_name_device);
|
DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, pcibios_name_device);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static void __init check_s7a(void)
|
static void __devinit check_s7a(void)
|
||||||
{
|
{
|
||||||
struct device_node *root;
|
struct device_node *root;
|
||||||
char *model;
|
char *model;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
OUTPUT_ARCH(powerpc)
|
OUTPUT_ARCH(powerpc:common)
|
||||||
SECTIONS
|
SECTIONS
|
||||||
{
|
{
|
||||||
/* Read-only sections, merged into text segment: */
|
/* Read-only sections, merged into text segment: */
|
||||||
|
|
|
@ -401,10 +401,10 @@ EXPORT_SYMBOL(__dma_sync);
|
||||||
static inline void __dma_sync_page_highmem(struct page *page,
|
static inline void __dma_sync_page_highmem(struct page *page,
|
||||||
unsigned long offset, size_t size, int direction)
|
unsigned long offset, size_t size, int direction)
|
||||||
{
|
{
|
||||||
size_t seg_size = min((size_t)PAGE_SIZE, size) - offset;
|
size_t seg_size = min((size_t)(PAGE_SIZE - offset), size);
|
||||||
size_t cur_size = seg_size;
|
size_t cur_size = seg_size;
|
||||||
unsigned long flags, start, seg_offset = offset;
|
unsigned long flags, start, seg_offset = offset;
|
||||||
int nr_segs = PAGE_ALIGN(size + (PAGE_SIZE - offset))/PAGE_SIZE;
|
int nr_segs = 1 + ((size - seg_size) + PAGE_SIZE - 1)/PAGE_SIZE;
|
||||||
int seg_nr = 0;
|
int seg_nr = 0;
|
||||||
|
|
||||||
local_irq_save(flags);
|
local_irq_save(flags);
|
||||||
|
|
|
@ -27,7 +27,6 @@
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
#include <linux/ide.h>
|
#include <linux/ide.h>
|
||||||
#include <linux/initrd.h>
|
#include <linux/initrd.h>
|
||||||
#include <linux/irq.h>
|
|
||||||
#include <linux/seq_file.h>
|
#include <linux/seq_file.h>
|
||||||
#include <linux/root_dev.h>
|
#include <linux/root_dev.h>
|
||||||
#include <linux/tty.h>
|
#include <linux/tty.h>
|
||||||
|
|
|
@ -30,7 +30,6 @@
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
#include <linux/ide.h>
|
#include <linux/ide.h>
|
||||||
#include <linux/initrd.h>
|
#include <linux/initrd.h>
|
||||||
#include <linux/irq.h>
|
|
||||||
#include <linux/seq_file.h>
|
#include <linux/seq_file.h>
|
||||||
#include <linux/root_dev.h>
|
#include <linux/root_dev.h>
|
||||||
#include <linux/tty.h>
|
#include <linux/tty.h>
|
||||||
|
|
|
@ -28,7 +28,6 @@
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
#include <linux/ide.h>
|
#include <linux/ide.h>
|
||||||
#include <linux/initrd.h>
|
#include <linux/initrd.h>
|
||||||
#include <linux/irq.h>
|
|
||||||
#include <linux/seq_file.h>
|
#include <linux/seq_file.h>
|
||||||
#include <linux/root_dev.h>
|
#include <linux/root_dev.h>
|
||||||
#include <linux/tty.h>
|
#include <linux/tty.h>
|
||||||
|
|
|
@ -28,7 +28,6 @@
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
#include <linux/ide.h>
|
#include <linux/ide.h>
|
||||||
#include <linux/initrd.h>
|
#include <linux/initrd.h>
|
||||||
#include <linux/irq.h>
|
|
||||||
#include <linux/seq_file.h>
|
#include <linux/seq_file.h>
|
||||||
#include <linux/root_dev.h>
|
#include <linux/root_dev.h>
|
||||||
#include <linux/tty.h>
|
#include <linux/tty.h>
|
||||||
|
|
|
@ -24,7 +24,6 @@
|
||||||
#include <linux/major.h>
|
#include <linux/major.h>
|
||||||
#include <linux/console.h>
|
#include <linux/console.h>
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
#include <linux/irq.h>
|
|
||||||
#include <linux/seq_file.h>
|
#include <linux/seq_file.h>
|
||||||
#include <linux/root_dev.h>
|
#include <linux/root_dev.h>
|
||||||
#include <linux/serial.h>
|
#include <linux/serial.h>
|
||||||
|
|
|
@ -24,7 +24,6 @@
|
||||||
#include <linux/major.h>
|
#include <linux/major.h>
|
||||||
#include <linux/console.h>
|
#include <linux/console.h>
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
#include <linux/irq.h>
|
|
||||||
#include <linux/seq_file.h>
|
#include <linux/seq_file.h>
|
||||||
#include <linux/root_dev.h>
|
#include <linux/root_dev.h>
|
||||||
#include <linux/serial.h>
|
#include <linux/serial.h>
|
||||||
|
|
|
@ -24,7 +24,6 @@
|
||||||
#include <linux/major.h>
|
#include <linux/major.h>
|
||||||
#include <linux/console.h>
|
#include <linux/console.h>
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
#include <linux/irq.h>
|
|
||||||
#include <linux/seq_file.h>
|
#include <linux/seq_file.h>
|
||||||
#include <linux/root_dev.h>
|
#include <linux/root_dev.h>
|
||||||
#include <linux/serial.h>
|
#include <linux/serial.h>
|
||||||
|
|
|
@ -24,7 +24,6 @@
|
||||||
#include <linux/major.h>
|
#include <linux/major.h>
|
||||||
#include <linux/console.h>
|
#include <linux/console.h>
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
#include <linux/irq.h>
|
|
||||||
#include <linux/seq_file.h>
|
#include <linux/seq_file.h>
|
||||||
#include <linux/serial.h>
|
#include <linux/serial.h>
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
|
|
|
@ -24,7 +24,6 @@
|
||||||
#include <linux/major.h>
|
#include <linux/major.h>
|
||||||
#include <linux/console.h>
|
#include <linux/console.h>
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
#include <linux/irq.h>
|
|
||||||
#include <linux/seq_file.h>
|
#include <linux/seq_file.h>
|
||||||
#include <linux/serial.h>
|
#include <linux/serial.h>
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
|
|
|
@ -24,7 +24,6 @@
|
||||||
#include <linux/major.h>
|
#include <linux/major.h>
|
||||||
#include <linux/console.h>
|
#include <linux/console.h>
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
#include <linux/irq.h>
|
|
||||||
#include <linux/seq_file.h>
|
#include <linux/seq_file.h>
|
||||||
#include <linux/root_dev.h>
|
#include <linux/root_dev.h>
|
||||||
#include <linux/serial.h>
|
#include <linux/serial.h>
|
||||||
|
|
|
@ -23,7 +23,6 @@
|
||||||
#include <linux/major.h>
|
#include <linux/major.h>
|
||||||
#include <linux/console.h>
|
#include <linux/console.h>
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
#include <linux/irq.h>
|
|
||||||
#include <linux/seq_file.h>
|
#include <linux/seq_file.h>
|
||||||
#include <linux/serial.h>
|
#include <linux/serial.h>
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
|
|
|
@ -30,7 +30,6 @@
|
||||||
#include <linux/blkdev.h>
|
#include <linux/blkdev.h>
|
||||||
#include <linux/console.h>
|
#include <linux/console.h>
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
#include <linux/irq.h>
|
|
||||||
#include <linux/root_dev.h>
|
#include <linux/root_dev.h>
|
||||||
#include <linux/seq_file.h>
|
#include <linux/seq_file.h>
|
||||||
#include <linux/serial.h>
|
#include <linux/serial.h>
|
||||||
|
|
|
@ -35,7 +35,6 @@
|
||||||
#include <asm/time.h>
|
#include <asm/time.h>
|
||||||
#include <asm/dma.h>
|
#include <asm/dma.h>
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <linux/irq.h>
|
|
||||||
#include <asm/hw_irq.h>
|
#include <asm/hw_irq.h>
|
||||||
#include <asm/machdep.h>
|
#include <asm/machdep.h>
|
||||||
#include <asm/kgdb.h>
|
#include <asm/kgdb.h>
|
||||||
|
|
|
@ -32,7 +32,6 @@
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
#include <linux/ide.h>
|
#include <linux/ide.h>
|
||||||
#include <linux/irq.h>
|
|
||||||
#include <linux/console.h>
|
#include <linux/console.h>
|
||||||
#include <linux/seq_file.h>
|
#include <linux/seq_file.h>
|
||||||
#include <linux/root_dev.h>
|
#include <linux/root_dev.h>
|
||||||
|
|
|
@ -21,7 +21,6 @@
|
||||||
#include <linux/major.h>
|
#include <linux/major.h>
|
||||||
#include <linux/initrd.h>
|
#include <linux/initrd.h>
|
||||||
#include <linux/console.h>
|
#include <linux/console.h>
|
||||||
#include <linux/irq.h>
|
|
||||||
#include <linux/seq_file.h>
|
#include <linux/seq_file.h>
|
||||||
#include <linux/root_dev.h>
|
#include <linux/root_dev.h>
|
||||||
#include <linux/bcd.h>
|
#include <linux/bcd.h>
|
||||||
|
|
|
@ -20,7 +20,6 @@
|
||||||
#include <linux/initrd.h>
|
#include <linux/initrd.h>
|
||||||
#include <linux/console.h>
|
#include <linux/console.h>
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
#include <linux/irq.h>
|
|
||||||
#include <linux/ide.h>
|
#include <linux/ide.h>
|
||||||
#include <linux/seq_file.h>
|
#include <linux/seq_file.h>
|
||||||
#include <linux/kdev_t.h>
|
#include <linux/kdev_t.h>
|
||||||
|
|
|
@ -695,6 +695,13 @@ static int __init pmac_cpufreq_setup(void)
|
||||||
set_speed_proc = pmu_set_cpu_speed;
|
set_speed_proc = pmu_set_cpu_speed;
|
||||||
is_pmu_based = 1;
|
is_pmu_based = 1;
|
||||||
}
|
}
|
||||||
|
/* Else check for TiPb 550 */
|
||||||
|
else if (machine_is_compatible("PowerBook3,3") && cur_freq == 550000) {
|
||||||
|
hi_freq = cur_freq;
|
||||||
|
low_freq = 500000;
|
||||||
|
set_speed_proc = pmu_set_cpu_speed;
|
||||||
|
is_pmu_based = 1;
|
||||||
|
}
|
||||||
/* Else check for TiPb 400 & 500 */
|
/* Else check for TiPb 400 & 500 */
|
||||||
else if (machine_is_compatible("PowerBook3,2")) {
|
else if (machine_is_compatible("PowerBook3,2")) {
|
||||||
/* We only know about the 400 MHz and the 500Mhz model
|
/* We only know about the 400 MHz and the 500Mhz model
|
||||||
|
|
|
@ -2337,6 +2337,10 @@ static struct pmac_mb_def pmac_mb_defs[] = {
|
||||||
PMAC_TYPE_UNKNOWN_INTREPID, intrepid_features,
|
PMAC_TYPE_UNKNOWN_INTREPID, intrepid_features,
|
||||||
PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE,
|
PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE,
|
||||||
},
|
},
|
||||||
|
{ "PowerBook6,7", "iBook G4",
|
||||||
|
PMAC_TYPE_UNKNOWN_INTREPID, intrepid_features,
|
||||||
|
PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE,
|
||||||
|
},
|
||||||
{ "PowerBook6,8", "PowerBook G4 12\"",
|
{ "PowerBook6,8", "PowerBook G4 12\"",
|
||||||
PMAC_TYPE_UNKNOWN_INTREPID, intrepid_features,
|
PMAC_TYPE_UNKNOWN_INTREPID, intrepid_features,
|
||||||
PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE,
|
PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE,
|
||||||
|
|
|
@ -48,7 +48,6 @@
|
||||||
#include <linux/adb.h>
|
#include <linux/adb.h>
|
||||||
#include <linux/cuda.h>
|
#include <linux/cuda.h>
|
||||||
#include <linux/pmu.h>
|
#include <linux/pmu.h>
|
||||||
#include <linux/irq.h>
|
|
||||||
#include <linux/seq_file.h>
|
#include <linux/seq_file.h>
|
||||||
#include <linux/root_dev.h>
|
#include <linux/root_dev.h>
|
||||||
#include <linux/bitops.h>
|
#include <linux/bitops.h>
|
||||||
|
|
|
@ -195,7 +195,7 @@ via_calibrate_decr(void)
|
||||||
;
|
;
|
||||||
dend = get_dec();
|
dend = get_dec();
|
||||||
|
|
||||||
tb_ticks_per_jiffy = (dstart - dend) / (6 * (HZ/100));
|
tb_ticks_per_jiffy = (dstart - dend) / ((6 * HZ)/100);
|
||||||
tb_to_us = mulhwu_scale_factor(dstart - dend, 60000);
|
tb_to_us = mulhwu_scale_factor(dstart - dend, 60000);
|
||||||
|
|
||||||
printk(KERN_INFO "via_calibrate_decr: ticks per jiffy = %u (%u ticks)\n",
|
printk(KERN_INFO "via_calibrate_decr: ticks per jiffy = %u (%u ticks)\n",
|
||||||
|
|
|
@ -26,7 +26,6 @@
|
||||||
#include <linux/initrd.h>
|
#include <linux/initrd.h>
|
||||||
#include <linux/console.h>
|
#include <linux/console.h>
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
#include <linux/irq.h>
|
|
||||||
#include <linux/slab.h>
|
#include <linux/slab.h>
|
||||||
#include <linux/seq_file.h>
|
#include <linux/seq_file.h>
|
||||||
#include <linux/ide.h>
|
#include <linux/ide.h>
|
||||||
|
|
|
@ -22,7 +22,6 @@
|
||||||
#include <linux/ioport.h>
|
#include <linux/ioport.h>
|
||||||
#include <linux/console.h>
|
#include <linux/console.h>
|
||||||
#include <linux/pci.h>
|
#include <linux/pci.h>
|
||||||
#include <linux/irq.h>
|
|
||||||
#include <linux/ide.h>
|
#include <linux/ide.h>
|
||||||
#include <linux/seq_file.h>
|
#include <linux/seq_file.h>
|
||||||
#include <linux/root_dev.h>
|
#include <linux/root_dev.h>
|
||||||
|
|
|
@ -24,7 +24,6 @@
|
||||||
#include <linux/initrd.h>
|
#include <linux/initrd.h>
|
||||||
#include <linux/console.h>
|
#include <linux/console.h>
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
#include <linux/irq.h>
|
|
||||||
#include <linux/seq_file.h>
|
#include <linux/seq_file.h>
|
||||||
#include <linux/ide.h>
|
#include <linux/ide.h>
|
||||||
#include <linux/root_dev.h>
|
#include <linux/root_dev.h>
|
||||||
|
|
|
@ -22,7 +22,6 @@
|
||||||
#include <linux/initrd.h>
|
#include <linux/initrd.h>
|
||||||
#include <linux/console.h>
|
#include <linux/console.h>
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
#include <linux/irq.h>
|
|
||||||
#include <linux/seq_file.h>
|
#include <linux/seq_file.h>
|
||||||
#include <linux/ide.h>
|
#include <linux/ide.h>
|
||||||
#include <linux/root_dev.h>
|
#include <linux/root_dev.h>
|
||||||
|
|
|
@ -32,7 +32,6 @@
|
||||||
#include <linux/initrd.h>
|
#include <linux/initrd.h>
|
||||||
#include <linux/console.h>
|
#include <linux/console.h>
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
#include <linux/irq.h>
|
|
||||||
#include <linux/ide.h>
|
#include <linux/ide.h>
|
||||||
#include <linux/seq_file.h>
|
#include <linux/seq_file.h>
|
||||||
#include <linux/root_dev.h>
|
#include <linux/root_dev.h>
|
||||||
|
@ -59,7 +58,6 @@
|
||||||
#include <asm/mpc10x.h>
|
#include <asm/mpc10x.h>
|
||||||
#include <asm/pci-bridge.h>
|
#include <asm/pci-bridge.h>
|
||||||
#include <asm/mv64x60.h>
|
#include <asm/mv64x60.h>
|
||||||
#include <asm/i8259.h>
|
|
||||||
|
|
||||||
#include "radstone_ppc7d.h"
|
#include "radstone_ppc7d.h"
|
||||||
|
|
||||||
|
|
|
@ -74,7 +74,6 @@
|
||||||
#include <linux/initrd.h>
|
#include <linux/initrd.h>
|
||||||
#include <linux/console.h>
|
#include <linux/console.h>
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
#include <linux/irq.h>
|
|
||||||
#include <linux/ide.h>
|
#include <linux/ide.h>
|
||||||
#include <linux/seq_file.h>
|
#include <linux/seq_file.h>
|
||||||
#include <linux/root_dev.h>
|
#include <linux/root_dev.h>
|
||||||
|
|
|
@ -34,7 +34,7 @@ u8 mv64x60_pci_exclude_bridge = 1;
|
||||||
DEFINE_SPINLOCK(mv64x60_lock);
|
DEFINE_SPINLOCK(mv64x60_lock);
|
||||||
|
|
||||||
static phys_addr_t mv64x60_bridge_pbase;
|
static phys_addr_t mv64x60_bridge_pbase;
|
||||||
static void *mv64x60_bridge_vbase;
|
static void __iomem *mv64x60_bridge_vbase;
|
||||||
static u32 mv64x60_bridge_type = MV64x60_TYPE_INVALID;
|
static u32 mv64x60_bridge_type = MV64x60_TYPE_INVALID;
|
||||||
static u32 mv64x60_bridge_rev;
|
static u32 mv64x60_bridge_rev;
|
||||||
#if defined(CONFIG_SYSFS) && !defined(CONFIG_GT64260)
|
#if defined(CONFIG_SYSFS) && !defined(CONFIG_GT64260)
|
||||||
|
@ -938,7 +938,7 @@ mv64x60_setup_for_chip(struct mv64x60_handle *bh)
|
||||||
*
|
*
|
||||||
* Return the virtual address of the bridge's registers.
|
* Return the virtual address of the bridge's registers.
|
||||||
*/
|
*/
|
||||||
void *
|
void __iomem *
|
||||||
mv64x60_get_bridge_vbase(void)
|
mv64x60_get_bridge_vbase(void)
|
||||||
{
|
{
|
||||||
return mv64x60_bridge_vbase;
|
return mv64x60_bridge_vbase;
|
||||||
|
|
|
@ -13,7 +13,6 @@
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
#include <linux/sched.h>
|
#include <linux/sched.h>
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
#include <linux/irq.h>
|
|
||||||
#include <linux/interrupt.h>
|
#include <linux/interrupt.h>
|
||||||
#include <linux/sysdev.h>
|
#include <linux/sysdev.h>
|
||||||
#include <linux/errno.h>
|
#include <linux/errno.h>
|
||||||
|
|
|
@ -17,7 +17,6 @@
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
#include <linux/sched.h>
|
#include <linux/sched.h>
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
#include <linux/irq.h>
|
|
||||||
#include <linux/interrupt.h>
|
#include <linux/interrupt.h>
|
||||||
#include <linux/sysdev.h>
|
#include <linux/sysdev.h>
|
||||||
#include <linux/errno.h>
|
#include <linux/errno.h>
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
#include <linux/smp.h>
|
#include <linux/smp.h>
|
||||||
#include <linux/threads.h>
|
#include <linux/threads.h>
|
||||||
#include <linux/spinlock.h>
|
#include <linux/spinlock.h>
|
||||||
#include <linux/irq.h>
|
|
||||||
#include <linux/reboot.h>
|
#include <linux/reboot.h>
|
||||||
#include <linux/param.h>
|
#include <linux/param.h>
|
||||||
#include <linux/string.h>
|
#include <linux/string.h>
|
||||||
|
|
|
@ -99,7 +99,11 @@ get_iost_entry(unsigned long iopt_base, unsigned long io_address, unsigned page_
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default: /* not a known compile time constant */
|
default: /* not a known compile time constant */
|
||||||
BUG_ON(1);
|
{
|
||||||
|
/* BUILD_BUG_ON() is not usable here */
|
||||||
|
extern void __get_iost_entry_bad_page_size(void);
|
||||||
|
__get_iost_entry_bad_page_size();
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -306,7 +310,7 @@ static void bpa_map_iommu(void)
|
||||||
|
|
||||||
|
|
||||||
static void *bpa_alloc_coherent(struct device *hwdev, size_t size,
|
static void *bpa_alloc_coherent(struct device *hwdev, size_t size,
|
||||||
dma_addr_t *dma_handle, unsigned int __nocast flag)
|
dma_addr_t *dma_handle, gfp_t flag)
|
||||||
{
|
{
|
||||||
void *ret;
|
void *ret;
|
||||||
|
|
||||||
|
|
|
@ -53,7 +53,7 @@ int dma_set_mask(struct device *dev, u64 dma_mask)
|
||||||
EXPORT_SYMBOL(dma_set_mask);
|
EXPORT_SYMBOL(dma_set_mask);
|
||||||
|
|
||||||
void *dma_alloc_coherent(struct device *dev, size_t size,
|
void *dma_alloc_coherent(struct device *dev, size_t size,
|
||||||
dma_addr_t *dma_handle, unsigned int __nocast flag)
|
dma_addr_t *dma_handle, gfp_t flag)
|
||||||
{
|
{
|
||||||
struct dma_mapping_ops *dma_ops = get_dma_ops(dev);
|
struct dma_mapping_ops *dma_ops = get_dma_ops(dev);
|
||||||
|
|
||||||
|
|
|
@ -519,7 +519,7 @@ void iommu_unmap_single(struct iommu_table *tbl, dma_addr_t dma_handle,
|
||||||
* to the dma address (mapping) of the first page.
|
* to the dma address (mapping) of the first page.
|
||||||
*/
|
*/
|
||||||
void *iommu_alloc_coherent(struct iommu_table *tbl, size_t size,
|
void *iommu_alloc_coherent(struct iommu_table *tbl, size_t size,
|
||||||
dma_addr_t *dma_handle, unsigned int __nocast flag)
|
dma_addr_t *dma_handle, gfp_t flag)
|
||||||
{
|
{
|
||||||
void *ret = NULL;
|
void *ret = NULL;
|
||||||
dma_addr_t mapping;
|
dma_addr_t mapping;
|
||||||
|
|
|
@ -59,9 +59,9 @@ int __kprobes arch_prepare_kprobe(struct kprobe *p)
|
||||||
|
|
||||||
/* insn must be on a special executable page on ppc64 */
|
/* insn must be on a special executable page on ppc64 */
|
||||||
if (!ret) {
|
if (!ret) {
|
||||||
up(&kprobe_mutex);
|
|
||||||
p->ainsn.insn = get_insn_slot();
|
|
||||||
down(&kprobe_mutex);
|
down(&kprobe_mutex);
|
||||||
|
p->ainsn.insn = get_insn_slot();
|
||||||
|
up(&kprobe_mutex);
|
||||||
if (!p->ainsn.insn)
|
if (!p->ainsn.insn)
|
||||||
ret = -ENOMEM;
|
ret = -ENOMEM;
|
||||||
}
|
}
|
||||||
|
@ -90,9 +90,9 @@ void __kprobes arch_disarm_kprobe(struct kprobe *p)
|
||||||
|
|
||||||
void __kprobes arch_remove_kprobe(struct kprobe *p)
|
void __kprobes arch_remove_kprobe(struct kprobe *p)
|
||||||
{
|
{
|
||||||
up(&kprobe_mutex);
|
|
||||||
free_insn_slot(p->ainsn.insn);
|
|
||||||
down(&kprobe_mutex);
|
down(&kprobe_mutex);
|
||||||
|
free_insn_slot(p->ainsn.insn);
|
||||||
|
up(&kprobe_mutex);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void prepare_singlestep(struct kprobe *p, struct pt_regs *regs)
|
static inline void prepare_singlestep(struct kprobe *p, struct pt_regs *regs)
|
||||||
|
|
|
@ -341,6 +341,19 @@ int apply_relocate_add(Elf64_Shdr *sechdrs,
|
||||||
*(unsigned long *)location = my_r2(sechdrs, me);
|
*(unsigned long *)location = my_r2(sechdrs, me);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case R_PPC64_TOC16:
|
||||||
|
/* Subtact TOC pointer */
|
||||||
|
value -= my_r2(sechdrs, me);
|
||||||
|
if (value + 0x8000 > 0xffff) {
|
||||||
|
printk("%s: bad TOC16 relocation (%lu)\n",
|
||||||
|
me->name, value);
|
||||||
|
return -ENOEXEC;
|
||||||
|
}
|
||||||
|
*((uint16_t *) location)
|
||||||
|
= (*((uint16_t *) location) & ~0xffff)
|
||||||
|
| (value & 0xffff);
|
||||||
|
break;
|
||||||
|
|
||||||
case R_PPC64_TOC16_DS:
|
case R_PPC64_TOC16_DS:
|
||||||
/* Subtact TOC pointer */
|
/* Subtact TOC pointer */
|
||||||
value -= my_r2(sechdrs, me);
|
value -= my_r2(sechdrs, me);
|
||||||
|
|
|
@ -30,7 +30,7 @@
|
||||||
#include <asm/ppc-pci.h>
|
#include <asm/ppc-pci.h>
|
||||||
|
|
||||||
static void *pci_direct_alloc_coherent(struct device *hwdev, size_t size,
|
static void *pci_direct_alloc_coherent(struct device *hwdev, size_t size,
|
||||||
dma_addr_t *dma_handle, unsigned int __nocast flag)
|
dma_addr_t *dma_handle, gfp_t flag)
|
||||||
{
|
{
|
||||||
void *ret;
|
void *ret;
|
||||||
|
|
||||||
|
|
|
@ -70,7 +70,7 @@ static inline struct iommu_table *devnode_table(struct device *dev)
|
||||||
* to the dma address (mapping) of the first page.
|
* to the dma address (mapping) of the first page.
|
||||||
*/
|
*/
|
||||||
static void *pci_iommu_alloc_coherent(struct device *hwdev, size_t size,
|
static void *pci_iommu_alloc_coherent(struct device *hwdev, size_t size,
|
||||||
dma_addr_t *dma_handle, unsigned int __nocast flag)
|
dma_addr_t *dma_handle, gfp_t flag)
|
||||||
{
|
{
|
||||||
return iommu_alloc_coherent(devnode_table(hwdev), size, dma_handle,
|
return iommu_alloc_coherent(devnode_table(hwdev), size, dma_handle,
|
||||||
flag);
|
flag);
|
||||||
|
|
|
@ -218,7 +218,7 @@ static void vio_unmap_sg(struct device *dev, struct scatterlist *sglist,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void *vio_alloc_coherent(struct device *dev, size_t size,
|
static void *vio_alloc_coherent(struct device *dev, size_t size,
|
||||||
dma_addr_t *dma_handle, unsigned int __nocast flag)
|
dma_addr_t *dma_handle, gfp_t flag)
|
||||||
{
|
{
|
||||||
return iommu_alloc_coherent(to_vio_dev(dev)->iommu_table, size,
|
return iommu_alloc_coherent(to_vio_dev(dev)->iommu_table, size,
|
||||||
dma_handle, flag);
|
dma_handle, flag);
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue