Merge branch 'master'
This commit is contained in:
commit
9089068785
|
@ -0,0 +1,30 @@
|
||||||
|
#
|
||||||
|
# NOTE! Don't add files that are generated in specific
|
||||||
|
# subdirectories here. Add them in the ".gitignore" file
|
||||||
|
# in that subdirectory instead.
|
||||||
|
#
|
||||||
|
# Normal rules
|
||||||
|
#
|
||||||
|
.*
|
||||||
|
*.o
|
||||||
|
*.a
|
||||||
|
*.s
|
||||||
|
*.ko
|
||||||
|
*.mod.c
|
||||||
|
|
||||||
|
#
|
||||||
|
# Top-level generic files
|
||||||
|
#
|
||||||
|
vmlinux*
|
||||||
|
System.map
|
||||||
|
Module.symvers
|
||||||
|
|
||||||
|
#
|
||||||
|
# Generated include files
|
||||||
|
#
|
||||||
|
include/asm
|
||||||
|
include/config
|
||||||
|
include/linux/autoconf.h
|
||||||
|
include/linux/compile.h
|
||||||
|
include/linux/version.h
|
||||||
|
|
|
@ -237,6 +237,12 @@ udev
|
||||||
udev is a userspace application for populating /dev dynamically with
|
udev is a userspace application for populating /dev dynamically with
|
||||||
only entries for devices actually present. udev replaces devfs.
|
only entries for devices actually present. udev replaces devfs.
|
||||||
|
|
||||||
|
FUSE
|
||||||
|
----
|
||||||
|
|
||||||
|
Needs libfuse 2.4.0 or later. Absolute minimum is 2.3.0 but mount
|
||||||
|
options 'direct_io' and 'kernel_cache' won't work.
|
||||||
|
|
||||||
Networking
|
Networking
|
||||||
==========
|
==========
|
||||||
|
|
||||||
|
@ -390,6 +396,10 @@ udev
|
||||||
----
|
----
|
||||||
o <http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html>
|
o <http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html>
|
||||||
|
|
||||||
|
FUSE
|
||||||
|
----
|
||||||
|
o <http://sourceforge.net/projects/fuse>
|
||||||
|
|
||||||
Networking
|
Networking
|
||||||
**********
|
**********
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -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>
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------
|
-----------------------------------
|
||||||
|
|
|
@ -906,9 +906,20 @@ Aside:
|
||||||
|
|
||||||
|
|
||||||
4. The I/O scheduler
|
4. The I/O scheduler
|
||||||
I/O schedulers are now per queue. They should be runtime switchable and modular
|
I/O scheduler, a.k.a. elevator, is implemented in two layers. Generic dispatch
|
||||||
but aren't yet. Jens has most bits to do this, but the sysfs implementation is
|
queue and specific I/O schedulers. Unless stated otherwise, elevator is used
|
||||||
missing.
|
to refer to both parts and I/O scheduler to specific I/O schedulers.
|
||||||
|
|
||||||
|
Block layer implements generic dispatch queue in ll_rw_blk.c and elevator.c.
|
||||||
|
The generic dispatch queue is responsible for properly ordering barrier
|
||||||
|
requests, requeueing, handling non-fs requests and all other subtleties.
|
||||||
|
|
||||||
|
Specific I/O schedulers are responsible for ordering normal filesystem
|
||||||
|
requests. They can also choose to delay certain requests to improve
|
||||||
|
throughput or whatever purpose. As the plural form indicates, there are
|
||||||
|
multiple I/O schedulers. They can be built as modules but at least one should
|
||||||
|
be built inside the kernel. Each queue can choose different one and can also
|
||||||
|
change to another one dynamically.
|
||||||
|
|
||||||
A block layer call to the i/o scheduler follows the convention elv_xxx(). This
|
A block layer call to the i/o scheduler follows the convention elv_xxx(). This
|
||||||
calls elevator_xxx_fn in the elevator switch (drivers/block/elevator.c). Oh,
|
calls elevator_xxx_fn in the elevator switch (drivers/block/elevator.c). Oh,
|
||||||
|
@ -921,44 +932,36 @@ keeping work.
|
||||||
The functions an elevator may implement are: (* are mandatory)
|
The functions an elevator may implement are: (* are mandatory)
|
||||||
elevator_merge_fn called to query requests for merge with a bio
|
elevator_merge_fn called to query requests for merge with a bio
|
||||||
|
|
||||||
elevator_merge_req_fn " " " with another request
|
elevator_merge_req_fn called when two requests get merged. the one
|
||||||
|
which gets merged into the other one will be
|
||||||
|
never seen by I/O scheduler again. IOW, after
|
||||||
|
being merged, the request is gone.
|
||||||
|
|
||||||
elevator_merged_fn called when a request in the scheduler has been
|
elevator_merged_fn called when a request in the scheduler has been
|
||||||
involved in a merge. It is used in the deadline
|
involved in a merge. It is used in the deadline
|
||||||
scheduler for example, to reposition the request
|
scheduler for example, to reposition the request
|
||||||
if its sorting order has changed.
|
if its sorting order has changed.
|
||||||
|
|
||||||
*elevator_next_req_fn returns the next scheduled request, or NULL
|
elevator_dispatch_fn fills the dispatch queue with ready requests.
|
||||||
if there are none (or none are ready).
|
I/O schedulers are free to postpone requests by
|
||||||
|
not filling the dispatch queue unless @force
|
||||||
|
is non-zero. Once dispatched, I/O schedulers
|
||||||
|
are not allowed to manipulate the requests -
|
||||||
|
they belong to generic dispatch queue.
|
||||||
|
|
||||||
*elevator_add_req_fn called to add a new request into the scheduler
|
elevator_add_req_fn called to add a new request into the scheduler
|
||||||
|
|
||||||
elevator_queue_empty_fn returns true if the merge queue is empty.
|
elevator_queue_empty_fn returns true if the merge queue is empty.
|
||||||
Drivers shouldn't use this, but rather check
|
Drivers shouldn't use this, but rather check
|
||||||
if elv_next_request is NULL (without losing the
|
if elv_next_request is NULL (without losing the
|
||||||
request if one exists!)
|
request if one exists!)
|
||||||
|
|
||||||
elevator_remove_req_fn This is called when a driver claims ownership of
|
|
||||||
the target request - it now belongs to the
|
|
||||||
driver. It must not be modified or merged.
|
|
||||||
Drivers must not lose the request! A subsequent
|
|
||||||
call of elevator_next_req_fn must return the
|
|
||||||
_next_ request.
|
|
||||||
|
|
||||||
elevator_requeue_req_fn called to add a request to the scheduler. This
|
|
||||||
is used when the request has alrnadebeen
|
|
||||||
returned by elv_next_request, but hasn't
|
|
||||||
completed. If this is not implemented then
|
|
||||||
elevator_add_req_fn is called instead.
|
|
||||||
|
|
||||||
elevator_former_req_fn
|
elevator_former_req_fn
|
||||||
elevator_latter_req_fn These return the request before or after the
|
elevator_latter_req_fn These return the request before or after the
|
||||||
one specified in disk sort order. Used by the
|
one specified in disk sort order. Used by the
|
||||||
block layer to find merge possibilities.
|
block layer to find merge possibilities.
|
||||||
|
|
||||||
elevator_completed_req_fn called when a request is completed. This might
|
elevator_completed_req_fn called when a request is completed.
|
||||||
come about due to being merged with another or
|
|
||||||
when the device completes the request.
|
|
||||||
|
|
||||||
elevator_may_queue_fn returns true if the scheduler wants to allow the
|
elevator_may_queue_fn returns true if the scheduler wants to allow the
|
||||||
current context to queue a new request even if
|
current context to queue a new request even if
|
||||||
|
@ -967,13 +970,33 @@ elevator_may_queue_fn returns true if the scheduler wants to allow the
|
||||||
|
|
||||||
elevator_set_req_fn
|
elevator_set_req_fn
|
||||||
elevator_put_req_fn Must be used to allocate and free any elevator
|
elevator_put_req_fn Must be used to allocate and free any elevator
|
||||||
specific storate for a request.
|
specific storage for a request.
|
||||||
|
|
||||||
|
elevator_activate_req_fn Called when device driver first sees a request.
|
||||||
|
I/O schedulers can use this callback to
|
||||||
|
determine when actual execution of a request
|
||||||
|
starts.
|
||||||
|
elevator_deactivate_req_fn Called when device driver decides to delay
|
||||||
|
a request by requeueing it.
|
||||||
|
|
||||||
elevator_init_fn
|
elevator_init_fn
|
||||||
elevator_exit_fn Allocate and free any elevator specific storage
|
elevator_exit_fn Allocate and free any elevator specific storage
|
||||||
for a queue.
|
for a queue.
|
||||||
|
|
||||||
4.2 I/O scheduler implementation
|
4.2 Request flows seen by I/O schedulers
|
||||||
|
All requests seens by I/O schedulers strictly follow one of the following three
|
||||||
|
flows.
|
||||||
|
|
||||||
|
set_req_fn ->
|
||||||
|
|
||||||
|
i. add_req_fn -> (merged_fn ->)* -> dispatch_fn -> activate_req_fn ->
|
||||||
|
(deactivate_req_fn -> activate_req_fn ->)* -> completed_req_fn
|
||||||
|
ii. add_req_fn -> (merged_fn ->)* -> merge_req_fn
|
||||||
|
iii. [none]
|
||||||
|
|
||||||
|
-> put_req_fn
|
||||||
|
|
||||||
|
4.3 I/O scheduler implementation
|
||||||
The generic i/o scheduler algorithm attempts to sort/merge/batch requests for
|
The generic i/o scheduler algorithm attempts to sort/merge/batch requests for
|
||||||
optimal disk scan and request servicing performance (based on generic
|
optimal disk scan and request servicing performance (based on generic
|
||||||
principles and device capabilities), optimized for:
|
principles and device capabilities), optimized for:
|
||||||
|
@ -993,18 +1016,7 @@ request in sort order to prevent binary tree lookups.
|
||||||
This arrangement is not a generic block layer characteristic however, so
|
This arrangement is not a generic block layer characteristic however, so
|
||||||
elevators may implement queues as they please.
|
elevators may implement queues as they please.
|
||||||
|
|
||||||
ii. Last merge hint
|
ii. Merge hash
|
||||||
The last merge hint is part of the generic queue layer. I/O schedulers must do
|
|
||||||
some management on it. For the most part, the most important thing is to make
|
|
||||||
sure q->last_merge is cleared (set to NULL) when the request on it is no longer
|
|
||||||
a candidate for merging (for example if it has been sent to the driver).
|
|
||||||
|
|
||||||
The last merge performed is cached as a hint for the subsequent request. If
|
|
||||||
sequential data is being submitted, the hint is used to perform merges without
|
|
||||||
any scanning. This is not sufficient when there are multiple processes doing
|
|
||||||
I/O though, so a "merge hash" is used by some schedulers.
|
|
||||||
|
|
||||||
iii. Merge hash
|
|
||||||
AS and deadline use a hash table indexed by the last sector of a request. This
|
AS and deadline use a hash table indexed by the last sector of a request. This
|
||||||
enables merging code to quickly look up "back merge" candidates, even when
|
enables merging code to quickly look up "back merge" candidates, even when
|
||||||
multiple I/O streams are being performed at once on one disk.
|
multiple I/O streams are being performed at once on one disk.
|
||||||
|
@ -1013,29 +1025,8 @@ multiple I/O streams are being performed at once on one disk.
|
||||||
are far less common than "back merges" due to the nature of most I/O patterns.
|
are far less common than "back merges" due to the nature of most I/O patterns.
|
||||||
Front merges are handled by the binary trees in AS and deadline schedulers.
|
Front merges are handled by the binary trees in AS and deadline schedulers.
|
||||||
|
|
||||||
iv. Handling barrier cases
|
iii. Plugging the queue to batch requests in anticipation of opportunities for
|
||||||
A request with flags REQ_HARDBARRIER or REQ_SOFTBARRIER must not be ordered
|
merge/sort optimizations
|
||||||
around. That is, they must be processed after all older requests, and before
|
|
||||||
any newer ones. This includes merges!
|
|
||||||
|
|
||||||
In AS and deadline schedulers, barriers have the effect of flushing the reorder
|
|
||||||
queue. The performance cost of this will vary from nothing to a lot depending
|
|
||||||
on i/o patterns and device characteristics. Obviously they won't improve
|
|
||||||
performance, so their use should be kept to a minimum.
|
|
||||||
|
|
||||||
v. Handling insertion position directives
|
|
||||||
A request may be inserted with a position directive. The directives are one of
|
|
||||||
ELEVATOR_INSERT_BACK, ELEVATOR_INSERT_FRONT, ELEVATOR_INSERT_SORT.
|
|
||||||
|
|
||||||
ELEVATOR_INSERT_SORT is a general directive for non-barrier requests.
|
|
||||||
ELEVATOR_INSERT_BACK is used to insert a barrier to the back of the queue.
|
|
||||||
ELEVATOR_INSERT_FRONT is used to insert a barrier to the front of the queue, and
|
|
||||||
overrides the ordering requested by any previous barriers. In practice this is
|
|
||||||
harmless and required, because it is used for SCSI requeueing. This does not
|
|
||||||
require flushing the reorder queue, so does not impose a performance penalty.
|
|
||||||
|
|
||||||
vi. Plugging the queue to batch requests in anticipation of opportunities for
|
|
||||||
merge/sort optimizations
|
|
||||||
|
|
||||||
This is just the same as in 2.4 so far, though per-device unplugging
|
This is just the same as in 2.4 so far, though per-device unplugging
|
||||||
support is anticipated for 2.5. Also with a priority-based i/o scheduler,
|
support is anticipated for 2.5. Also with a priority-based i/o scheduler,
|
||||||
|
@ -1069,7 +1060,7 @@ Aside:
|
||||||
blk_kick_queue() to unplug a specific queue (right away ?)
|
blk_kick_queue() to unplug a specific queue (right away ?)
|
||||||
or optionally, all queues, is in the plan.
|
or optionally, all queues, is in the plan.
|
||||||
|
|
||||||
4.3 I/O contexts
|
4.4 I/O contexts
|
||||||
I/O contexts provide a dynamically allocated per process data area. They may
|
I/O contexts provide a dynamically allocated per process data area. They may
|
||||||
be used in I/O schedulers, and in the block layer (could be used for IO statis,
|
be used in I/O schedulers, and in the block layer (could be used for IO statis,
|
||||||
priorities for example). See *io_context in drivers/block/ll_rw_blk.c, and
|
priorities for example). See *io_context in drivers/block/ll_rw_blk.c, and
|
||||||
|
|
|
@ -131,3 +131,47 @@ Netlink itself is not reliable protocol, that means that messages can
|
||||||
be lost due to memory pressure or process' receiving queue overflowed,
|
be lost due to memory pressure or process' receiving queue overflowed,
|
||||||
so caller is warned must be prepared. That is why struct cn_msg [main
|
so caller is warned must be prepared. That is why struct cn_msg [main
|
||||||
connector's message header] contains u32 seq and u32 ack fields.
|
connector's message header] contains u32 seq and u32 ack fields.
|
||||||
|
|
||||||
|
/*****************************************/
|
||||||
|
Userspace usage.
|
||||||
|
/*****************************************/
|
||||||
|
2.6.14 has a new netlink socket implementation, which by default does not
|
||||||
|
allow to send data to netlink groups other than 1.
|
||||||
|
So, if to use netlink socket (for example using connector)
|
||||||
|
with different group number userspace application must subscribe to
|
||||||
|
that group. It can be achieved by following pseudocode:
|
||||||
|
|
||||||
|
s = socket(PF_NETLINK, SOCK_DGRAM, NETLINK_CONNECTOR);
|
||||||
|
|
||||||
|
l_local.nl_family = AF_NETLINK;
|
||||||
|
l_local.nl_groups = 12345;
|
||||||
|
l_local.nl_pid = 0;
|
||||||
|
|
||||||
|
if (bind(s, (struct sockaddr *)&l_local, sizeof(struct sockaddr_nl)) == -1) {
|
||||||
|
perror("bind");
|
||||||
|
close(s);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
int on = l_local.nl_groups;
|
||||||
|
setsockopt(s, 270, 1, &on, sizeof(on));
|
||||||
|
}
|
||||||
|
|
||||||
|
Where 270 above is SOL_NETLINK, and 1 is a NETLINK_ADD_MEMBERSHIP socket
|
||||||
|
option. To drop multicast subscription one should call above socket option
|
||||||
|
with NETLINK_DROP_MEMBERSHIP parameter which is defined as 0.
|
||||||
|
|
||||||
|
2.6.14 netlink code only allows to select a group which is less or equal to
|
||||||
|
the maximum group number, which is used at netlink_kernel_create() time.
|
||||||
|
In case of connector it is CN_NETLINK_USERS + 0xf, so if you want to use
|
||||||
|
group number 12345, you must increment CN_NETLINK_USERS to that number.
|
||||||
|
Additional 0xf numbers are allocated to be used by non-in-kernel users.
|
||||||
|
|
||||||
|
Due to this limitation, group 0xffffffff does not work now, so one can
|
||||||
|
not use add/remove connector's group notifications, but as far as I know,
|
||||||
|
only cn_test.c test module used it.
|
||||||
|
|
||||||
|
Some work in netlink area is still being done, so things can be changed in
|
||||||
|
2.6.15 timeframe, if it will happen, documentation will be updated for that
|
||||||
|
kernel.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -0,0 +1,73 @@
|
||||||
|
Device-mapper snapshot support
|
||||||
|
==============================
|
||||||
|
|
||||||
|
Device-mapper allows you, without massive data copying:
|
||||||
|
|
||||||
|
*) To create snapshots of any block device i.e. mountable, saved states of
|
||||||
|
the block device which are also writable without interfering with the
|
||||||
|
original content;
|
||||||
|
*) To create device "forks", i.e. multiple different versions of the
|
||||||
|
same data stream.
|
||||||
|
|
||||||
|
|
||||||
|
In both cases, dm copies only the chunks of data that get changed and
|
||||||
|
uses a separate copy-on-write (COW) block device for storage.
|
||||||
|
|
||||||
|
|
||||||
|
There are two dm targets available: snapshot and snapshot-origin.
|
||||||
|
|
||||||
|
*) snapshot-origin <origin>
|
||||||
|
|
||||||
|
which will normally have one or more snapshots based on it.
|
||||||
|
You must create the snapshot-origin device before you can create snapshots.
|
||||||
|
Reads will be mapped directly to the backing device. For each write, the
|
||||||
|
original data will be saved in the <COW device> of each snapshot to keep
|
||||||
|
its visible content unchanged, at least until the <COW device> fills up.
|
||||||
|
|
||||||
|
|
||||||
|
*) snapshot <origin> <COW device> <persistent?> <chunksize>
|
||||||
|
|
||||||
|
A snapshot is created of the <origin> block device. Changed chunks of
|
||||||
|
<chunksize> sectors will be stored on the <COW device>. Writes will
|
||||||
|
only go to the <COW device>. Reads will come from the <COW device> or
|
||||||
|
from <origin> for unchanged data. <COW device> will often be
|
||||||
|
smaller than the origin and if it fills up the snapshot will become
|
||||||
|
useless and be disabled, returning errors. So it is important to monitor
|
||||||
|
the amount of free space and expand the <COW device> before it fills up.
|
||||||
|
|
||||||
|
<persistent?> is P (Persistent) or N (Not persistent - will not survive
|
||||||
|
after reboot).
|
||||||
|
|
||||||
|
|
||||||
|
How this is used by LVM2
|
||||||
|
========================
|
||||||
|
When you create the first LVM2 snapshot of a volume, four dm devices are used:
|
||||||
|
|
||||||
|
1) a device containing the original mapping table of the source volume;
|
||||||
|
2) a device used as the <COW device>;
|
||||||
|
3) a "snapshot" device, combining #1 and #2, which is the visible snapshot
|
||||||
|
volume;
|
||||||
|
4) the "original" volume (which uses the device number used by the original
|
||||||
|
source volume), whose table is replaced by a "snapshot-origin" mapping
|
||||||
|
from device #1.
|
||||||
|
|
||||||
|
A fixed naming scheme is used, so with the following commands:
|
||||||
|
|
||||||
|
lvcreate -L 1G -n base volumeGroup
|
||||||
|
lvcreate -L 100M --snapshot -n snap volumeGroup/base
|
||||||
|
|
||||||
|
we'll have this situation (with volumes in above order):
|
||||||
|
|
||||||
|
# dmsetup table|grep volumeGroup
|
||||||
|
|
||||||
|
volumeGroup-base-real: 0 2097152 linear 8:19 384
|
||||||
|
volumeGroup-snap-cow: 0 204800 linear 8:19 2097536
|
||||||
|
volumeGroup-snap: 0 2097152 snapshot 254:11 254:12 P 16
|
||||||
|
volumeGroup-base: 0 2097152 snapshot-origin 254:11
|
||||||
|
|
||||||
|
# ls -lL /dev/mapper/volumeGroup-*
|
||||||
|
brw------- 1 root root 254, 11 29 ago 18:15 /dev/mapper/volumeGroup-base-real
|
||||||
|
brw------- 1 root root 254, 12 29 ago 18:15 /dev/mapper/volumeGroup-snap-cow
|
||||||
|
brw------- 1 root root 254, 13 29 ago 18:15 /dev/mapper/volumeGroup-snap
|
||||||
|
brw------- 1 root root 254, 10 29 ago 18:14 /dev/mapper/volumeGroup-base
|
||||||
|
|
|
@ -17,7 +17,7 @@ are specified on the kernel command line with the module name plus
|
||||||
|
|
||||||
usbcore.blinkenlights=1
|
usbcore.blinkenlights=1
|
||||||
|
|
||||||
The text in square brackets at the beginning of the description state the
|
The text in square brackets at the beginning of the description states the
|
||||||
restrictions on the kernel for the said kernel parameter to be valid. The
|
restrictions on the kernel for the said kernel parameter to be valid. The
|
||||||
restrictions referred to are that the relevant option is valid if:
|
restrictions referred to are that the relevant option is valid if:
|
||||||
|
|
||||||
|
@ -27,8 +27,8 @@ restrictions referred to are that the relevant option is valid if:
|
||||||
APM Advanced Power Management support is enabled.
|
APM Advanced Power Management support is enabled.
|
||||||
AX25 Appropriate AX.25 support is enabled.
|
AX25 Appropriate AX.25 support is enabled.
|
||||||
CD Appropriate CD support is enabled.
|
CD Appropriate CD support is enabled.
|
||||||
DEVFS devfs support is enabled.
|
DEVFS devfs support is enabled.
|
||||||
DRM Direct Rendering Management support is enabled.
|
DRM Direct Rendering Management support is enabled.
|
||||||
EDD BIOS Enhanced Disk Drive Services (EDD) is enabled
|
EDD BIOS Enhanced Disk Drive Services (EDD) is enabled
|
||||||
EFI EFI Partitioning (GPT) is enabled
|
EFI EFI Partitioning (GPT) is enabled
|
||||||
EIDE EIDE/ATAPI support is enabled.
|
EIDE EIDE/ATAPI support is enabled.
|
||||||
|
@ -71,7 +71,7 @@ restrictions referred to are that the relevant option is valid if:
|
||||||
SERIAL Serial support is enabled.
|
SERIAL Serial support is enabled.
|
||||||
SMP The kernel is an SMP kernel.
|
SMP The kernel is an SMP kernel.
|
||||||
SPARC Sparc architecture is enabled.
|
SPARC Sparc architecture is enabled.
|
||||||
SWSUSP Software suspension is enabled.
|
SWSUSP Software suspend is enabled.
|
||||||
TS Appropriate touchscreen support is enabled.
|
TS Appropriate touchscreen support is enabled.
|
||||||
USB USB support is enabled.
|
USB USB support is enabled.
|
||||||
USBHID USB Human Interface Device support is enabled.
|
USBHID USB Human Interface Device support is enabled.
|
||||||
|
@ -105,13 +105,13 @@ running once the system is up.
|
||||||
See header of drivers/scsi/53c7xx.c.
|
See header of drivers/scsi/53c7xx.c.
|
||||||
See also Documentation/scsi/ncr53c7xx.txt.
|
See also Documentation/scsi/ncr53c7xx.txt.
|
||||||
|
|
||||||
acpi= [HW,ACPI] Advanced Configuration and Power Interface
|
acpi= [HW,ACPI] Advanced Configuration and Power Interface
|
||||||
Format: { force | off | ht | strict }
|
Format: { force | off | ht | strict | noirq }
|
||||||
force -- enable ACPI if default was off
|
force -- enable ACPI if default was off
|
||||||
off -- disable ACPI if default was on
|
off -- disable ACPI if default was on
|
||||||
noirq -- do not use ACPI for IRQ routing
|
noirq -- do not use ACPI for IRQ routing
|
||||||
ht -- run only enough ACPI to enable Hyper Threading
|
ht -- run only enough ACPI to enable Hyper Threading
|
||||||
strict -- Be less tolerant of platforms that are not
|
strict -- Be less tolerant of platforms that are not
|
||||||
strictly ACPI specification compliant.
|
strictly ACPI specification compliant.
|
||||||
|
|
||||||
See also Documentation/pm.txt, pci=noacpi
|
See also Documentation/pm.txt, pci=noacpi
|
||||||
|
@ -119,20 +119,23 @@ running once the system is up.
|
||||||
acpi_sleep= [HW,ACPI] Sleep options
|
acpi_sleep= [HW,ACPI] Sleep options
|
||||||
Format: { s3_bios, s3_mode }
|
Format: { s3_bios, s3_mode }
|
||||||
See Documentation/power/video.txt
|
See Documentation/power/video.txt
|
||||||
|
|
||||||
acpi_sci= [HW,ACPI] ACPI System Control Interrupt trigger mode
|
acpi_sci= [HW,ACPI] ACPI System Control Interrupt trigger mode
|
||||||
Format: { level | edge | high | low }
|
Format: { level | edge | high | low }
|
||||||
|
|
||||||
acpi_irq_balance [HW,ACPI] ACPI will balance active IRQs
|
acpi_irq_balance [HW,ACPI]
|
||||||
default in APIC mode
|
ACPI will balance active IRQs
|
||||||
|
default in APIC mode
|
||||||
|
|
||||||
acpi_irq_nobalance [HW,ACPI] ACPI will not move active IRQs (default)
|
acpi_irq_nobalance [HW,ACPI]
|
||||||
default in PIC mode
|
ACPI will not move active IRQs (default)
|
||||||
|
default in PIC mode
|
||||||
|
|
||||||
acpi_irq_pci= [HW,ACPI] If irq_balance, Clear listed IRQs for use by PCI
|
acpi_irq_pci= [HW,ACPI] If irq_balance, clear listed IRQs for
|
||||||
|
use by PCI
|
||||||
Format: <irq>,<irq>...
|
Format: <irq>,<irq>...
|
||||||
|
|
||||||
acpi_irq_isa= [HW,ACPI] If irq_balance, Mark listed IRQs used by ISA
|
acpi_irq_isa= [HW,ACPI] If irq_balance, mark listed IRQs used by ISA
|
||||||
Format: <irq>,<irq>...
|
Format: <irq>,<irq>...
|
||||||
|
|
||||||
acpi_osi= [HW,ACPI] empty param disables _OSI
|
acpi_osi= [HW,ACPI] empty param disables _OSI
|
||||||
|
@ -145,14 +148,14 @@ running once the system is up.
|
||||||
|
|
||||||
acpi_dbg_layer= [HW,ACPI]
|
acpi_dbg_layer= [HW,ACPI]
|
||||||
Format: <int>
|
Format: <int>
|
||||||
Each bit of the <int> indicates an acpi debug layer,
|
Each bit of the <int> indicates an ACPI debug layer,
|
||||||
1: enable, 0: disable. It is useful for boot time
|
1: enable, 0: disable. It is useful for boot time
|
||||||
debugging. After system has booted up, it can be set
|
debugging. After system has booted up, it can be set
|
||||||
via /proc/acpi/debug_layer.
|
via /proc/acpi/debug_layer.
|
||||||
|
|
||||||
acpi_dbg_level= [HW,ACPI]
|
acpi_dbg_level= [HW,ACPI]
|
||||||
Format: <int>
|
Format: <int>
|
||||||
Each bit of the <int> indicates an acpi debug level,
|
Each bit of the <int> indicates an ACPI debug level,
|
||||||
1: enable, 0: disable. It is useful for boot time
|
1: enable, 0: disable. It is useful for boot time
|
||||||
debugging. After system has booted up, it can be set
|
debugging. After system has booted up, it can be set
|
||||||
via /proc/acpi/debug_level.
|
via /proc/acpi/debug_level.
|
||||||
|
@ -161,12 +164,13 @@ running once the system is up.
|
||||||
|
|
||||||
acpi_generic_hotkey [HW,ACPI]
|
acpi_generic_hotkey [HW,ACPI]
|
||||||
Allow consolidated generic hotkey driver to
|
Allow consolidated generic hotkey driver to
|
||||||
over-ride platform specific driver.
|
override platform specific driver.
|
||||||
See also Documentation/acpi-hotkey.txt.
|
See also Documentation/acpi-hotkey.txt.
|
||||||
|
|
||||||
enable_timer_pin_1 [i386,x86-64]
|
enable_timer_pin_1 [i386,x86-64]
|
||||||
Enable PIN 1 of APIC timer
|
Enable PIN 1 of APIC timer
|
||||||
Can be useful to work around chipset bugs (in particular on some ATI chipsets)
|
Can be useful to work around chipset bugs
|
||||||
|
(in particular on some ATI chipsets).
|
||||||
The kernel tries to set a reasonable default.
|
The kernel tries to set a reasonable default.
|
||||||
|
|
||||||
disable_timer_pin_1 [i386,x86-64]
|
disable_timer_pin_1 [i386,x86-64]
|
||||||
|
@ -182,7 +186,7 @@ running once the system is up.
|
||||||
|
|
||||||
adlib= [HW,OSS]
|
adlib= [HW,OSS]
|
||||||
Format: <io>
|
Format: <io>
|
||||||
|
|
||||||
advansys= [HW,SCSI]
|
advansys= [HW,SCSI]
|
||||||
See header of drivers/scsi/advansys.c.
|
See header of drivers/scsi/advansys.c.
|
||||||
|
|
||||||
|
@ -192,7 +196,7 @@ running once the system is up.
|
||||||
aedsp16= [HW,OSS] Audio Excel DSP 16
|
aedsp16= [HW,OSS] Audio Excel DSP 16
|
||||||
Format: <io>,<irq>,<dma>,<mss_io>,<mpu_io>,<mpu_irq>
|
Format: <io>,<irq>,<dma>,<mss_io>,<mpu_io>,<mpu_irq>
|
||||||
See also header of sound/oss/aedsp16.c.
|
See also header of sound/oss/aedsp16.c.
|
||||||
|
|
||||||
aha152x= [HW,SCSI]
|
aha152x= [HW,SCSI]
|
||||||
See Documentation/scsi/aha152x.txt.
|
See Documentation/scsi/aha152x.txt.
|
||||||
|
|
||||||
|
@ -205,10 +209,6 @@ running once the system is up.
|
||||||
aic79xx= [HW,SCSI]
|
aic79xx= [HW,SCSI]
|
||||||
See Documentation/scsi/aic79xx.txt.
|
See Documentation/scsi/aic79xx.txt.
|
||||||
|
|
||||||
AM53C974= [HW,SCSI]
|
|
||||||
Format: <host-scsi-id>,<target-scsi-id>,<max-rate>,<max-offset>
|
|
||||||
See also header of drivers/scsi/AM53C974.c.
|
|
||||||
|
|
||||||
amijoy.map= [HW,JOY] Amiga joystick support
|
amijoy.map= [HW,JOY] Amiga joystick support
|
||||||
Map of devices attached to JOY0DAT and JOY1DAT
|
Map of devices attached to JOY0DAT and JOY1DAT
|
||||||
Format: <a>,<b>
|
Format: <a>,<b>
|
||||||
|
@ -219,23 +219,24 @@ running once the system is up.
|
||||||
connected to one of 16 gameports
|
connected to one of 16 gameports
|
||||||
Format: <type1>,<type2>,..<type16>
|
Format: <type1>,<type2>,..<type16>
|
||||||
|
|
||||||
apc= [HW,SPARC] Power management functions (SPARCstation-4/5 + deriv.)
|
apc= [HW,SPARC]
|
||||||
|
Power management functions (SPARCstation-4/5 + deriv.)
|
||||||
Format: noidle
|
Format: noidle
|
||||||
Disable APC CPU standby support. SPARCstation-Fox does
|
Disable APC CPU standby support. SPARCstation-Fox does
|
||||||
not play well with APC CPU idle - disable it if you have
|
not play well with APC CPU idle - disable it if you have
|
||||||
APC and your system crashes randomly.
|
APC and your system crashes randomly.
|
||||||
|
|
||||||
apic= [APIC,i386] Change the output verbosity whilst booting
|
apic= [APIC,i386] Change the output verbosity whilst booting
|
||||||
Format: { quiet (default) | verbose | debug }
|
Format: { quiet (default) | verbose | debug }
|
||||||
Change the amount of debugging information output
|
Change the amount of debugging information output
|
||||||
when initialising the APIC and IO-APIC components.
|
when initialising the APIC and IO-APIC components.
|
||||||
|
|
||||||
apm= [APM] Advanced Power Management
|
apm= [APM] Advanced Power Management
|
||||||
See header of arch/i386/kernel/apm.c.
|
See header of arch/i386/kernel/apm.c.
|
||||||
|
|
||||||
applicom= [HW]
|
applicom= [HW]
|
||||||
Format: <mem>,<irq>
|
Format: <mem>,<irq>
|
||||||
|
|
||||||
arcrimi= [HW,NET] ARCnet - "RIM I" (entirely mem-mapped) cards
|
arcrimi= [HW,NET] ARCnet - "RIM I" (entirely mem-mapped) cards
|
||||||
Format: <io>,<irq>,<nodeID>
|
Format: <io>,<irq>,<nodeID>
|
||||||
|
|
||||||
|
@ -250,38 +251,40 @@ running once the system is up.
|
||||||
|
|
||||||
atkbd.reset= [HW] Reset keyboard during initialization
|
atkbd.reset= [HW] Reset keyboard during initialization
|
||||||
|
|
||||||
atkbd.set= [HW] Select keyboard code set
|
atkbd.set= [HW] Select keyboard code set
|
||||||
Format: <int> (2 = AT (default) 3 = PS/2)
|
Format: <int> (2 = AT (default), 3 = PS/2)
|
||||||
|
|
||||||
atkbd.scroll= [HW] Enable scroll wheel on MS Office and similar
|
atkbd.scroll= [HW] Enable scroll wheel on MS Office and similar
|
||||||
keyboards
|
keyboards
|
||||||
|
|
||||||
atkbd.softraw= [HW] Choose between synthetic and real raw mode
|
atkbd.softraw= [HW] Choose between synthetic and real raw mode
|
||||||
Format: <bool> (0 = real, 1 = synthetic (default))
|
Format: <bool> (0 = real, 1 = synthetic (default))
|
||||||
|
|
||||||
atkbd.softrepeat=
|
atkbd.softrepeat= [HW]
|
||||||
[HW] Use software keyboard repeat
|
Use software keyboard repeat
|
||||||
|
|
||||||
autotest [IA64]
|
autotest [IA64]
|
||||||
|
|
||||||
awe= [HW,OSS] AWE32/SB32/AWE64 wave table synth
|
awe= [HW,OSS] AWE32/SB32/AWE64 wave table synth
|
||||||
Format: <io>,<memsize>,<isapnp>
|
Format: <io>,<memsize>,<isapnp>
|
||||||
|
|
||||||
aztcd= [HW,CD] Aztech CD268 CDROM driver
|
aztcd= [HW,CD] Aztech CD268 CDROM driver
|
||||||
Format: <io>,0x79 (?)
|
Format: <io>,0x79 (?)
|
||||||
|
|
||||||
baycom_epp= [HW,AX25]
|
baycom_epp= [HW,AX25]
|
||||||
Format: <io>,<mode>
|
Format: <io>,<mode>
|
||||||
|
|
||||||
baycom_par= [HW,AX25] BayCom Parallel Port AX.25 Modem
|
baycom_par= [HW,AX25] BayCom Parallel Port AX.25 Modem
|
||||||
Format: <io>,<mode>
|
Format: <io>,<mode>
|
||||||
See header of drivers/net/hamradio/baycom_par.c.
|
See header of drivers/net/hamradio/baycom_par.c.
|
||||||
|
|
||||||
baycom_ser_fdx= [HW,AX25] BayCom Serial Port AX.25 Modem (Full Duplex Mode)
|
baycom_ser_fdx= [HW,AX25]
|
||||||
|
BayCom Serial Port AX.25 Modem (Full Duplex Mode)
|
||||||
Format: <io>,<irq>,<mode>[,<baud>]
|
Format: <io>,<irq>,<mode>[,<baud>]
|
||||||
See header of drivers/net/hamradio/baycom_ser_fdx.c.
|
See header of drivers/net/hamradio/baycom_ser_fdx.c.
|
||||||
|
|
||||||
baycom_ser_hdx= [HW,AX25] BayCom Serial Port AX.25 Modem (Half Duplex Mode)
|
baycom_ser_hdx= [HW,AX25]
|
||||||
|
BayCom Serial Port AX.25 Modem (Half Duplex Mode)
|
||||||
Format: <io>,<irq>,<mode>
|
Format: <io>,<irq>,<mode>
|
||||||
See header of drivers/net/hamradio/baycom_ser_hdx.c.
|
See header of drivers/net/hamradio/baycom_ser_hdx.c.
|
||||||
|
|
||||||
|
@ -292,7 +295,8 @@ running once the system is up.
|
||||||
blkmtd_count=
|
blkmtd_count=
|
||||||
|
|
||||||
bttv.card= [HW,V4L] bttv (bt848 + bt878 based grabber cards)
|
bttv.card= [HW,V4L] bttv (bt848 + bt878 based grabber cards)
|
||||||
bttv.radio= Most important insmod options are available as kernel args too.
|
bttv.radio= Most important insmod options are available as
|
||||||
|
kernel args too.
|
||||||
bttv.pll= See Documentation/video4linux/bttv/Insmod-options
|
bttv.pll= See Documentation/video4linux/bttv/Insmod-options
|
||||||
bttv.tuner= and Documentation/video4linux/bttv/CARDLIST
|
bttv.tuner= and Documentation/video4linux/bttv/CARDLIST
|
||||||
|
|
||||||
|
@ -318,15 +322,17 @@ running once the system is up.
|
||||||
checkreqprot [SELINUX] Set initial checkreqprot flag value.
|
checkreqprot [SELINUX] Set initial checkreqprot flag value.
|
||||||
Format: { "0" | "1" }
|
Format: { "0" | "1" }
|
||||||
See security/selinux/Kconfig help text.
|
See security/selinux/Kconfig help text.
|
||||||
0 -- check protection applied by kernel (includes any implied execute protection).
|
0 -- check protection applied by kernel (includes
|
||||||
|
any implied execute protection).
|
||||||
1 -- check protection requested by application.
|
1 -- check protection requested by application.
|
||||||
Default value is set via a kernel config option.
|
Default value is set via a kernel config option.
|
||||||
Value can be changed at runtime via /selinux/checkreqprot.
|
Value can be changed at runtime via
|
||||||
|
/selinux/checkreqprot.
|
||||||
clock= [BUGS=IA-32, HW] gettimeofday timesource override.
|
|
||||||
|
clock= [BUGS=IA-32,HW] gettimeofday timesource override.
|
||||||
Forces specified timesource (if avaliable) to be used
|
Forces specified timesource (if avaliable) to be used
|
||||||
when calculating gettimeofday(). If specicified timesource
|
when calculating gettimeofday(). If specicified
|
||||||
is not avalible, it defaults to PIT.
|
timesource is not avalible, it defaults to PIT.
|
||||||
Format: { pit | tsc | cyclone | pmtmr }
|
Format: { pit | tsc | cyclone | pmtmr }
|
||||||
|
|
||||||
hpet= [IA-32,HPET] option to disable HPET and use PIT.
|
hpet= [IA-32,HPET] option to disable HPET and use PIT.
|
||||||
|
@ -336,17 +342,19 @@ running once the system is up.
|
||||||
Format: { auto | [<io>,][<irq>] }
|
Format: { auto | [<io>,][<irq>] }
|
||||||
|
|
||||||
com20020= [HW,NET] ARCnet - COM20020 chipset
|
com20020= [HW,NET] ARCnet - COM20020 chipset
|
||||||
Format: <io>[,<irq>[,<nodeID>[,<backplane>[,<ckp>[,<timeout>]]]]]
|
Format:
|
||||||
|
<io>[,<irq>[,<nodeID>[,<backplane>[,<ckp>[,<timeout>]]]]]
|
||||||
|
|
||||||
com90io= [HW,NET] ARCnet - COM90xx chipset (IO-mapped buffers)
|
com90io= [HW,NET] ARCnet - COM90xx chipset (IO-mapped buffers)
|
||||||
Format: <io>[,<irq>]
|
Format: <io>[,<irq>]
|
||||||
|
|
||||||
com90xx= [HW,NET] ARCnet - COM90xx chipset (memory-mapped buffers)
|
com90xx= [HW,NET]
|
||||||
|
ARCnet - COM90xx chipset (memory-mapped buffers)
|
||||||
Format: <io>[,<irq>[,<memstart>]]
|
Format: <io>[,<irq>[,<memstart>]]
|
||||||
|
|
||||||
condev= [HW,S390] console device
|
condev= [HW,S390] console device
|
||||||
conmode=
|
conmode=
|
||||||
|
|
||||||
console= [KNL] Output console device and options.
|
console= [KNL] Output console device and options.
|
||||||
|
|
||||||
tty<n> Use the virtual console device <n>.
|
tty<n> Use the virtual console device <n>.
|
||||||
|
@ -367,7 +375,8 @@ running once the system is up.
|
||||||
options are the same as for ttyS, above.
|
options are the same as for ttyS, above.
|
||||||
|
|
||||||
cpcihp_generic= [HW,PCI] Generic port I/O CompactPCI driver
|
cpcihp_generic= [HW,PCI] Generic port I/O CompactPCI driver
|
||||||
Format: <first_slot>,<last_slot>,<port>,<enum_bit>[,<debug>]
|
Format:
|
||||||
|
<first_slot>,<last_slot>,<port>,<enum_bit>[,<debug>]
|
||||||
|
|
||||||
cpia_pp= [HW,PPT]
|
cpia_pp= [HW,PPT]
|
||||||
Format: { parport<nr> | auto | none }
|
Format: { parport<nr> | auto | none }
|
||||||
|
@ -384,10 +393,10 @@ running once the system is up.
|
||||||
|
|
||||||
cs89x0_media= [HW,NET]
|
cs89x0_media= [HW,NET]
|
||||||
Format: { rj45 | aui | bnc }
|
Format: { rj45 | aui | bnc }
|
||||||
|
|
||||||
cyclades= [HW,SERIAL] Cyclades multi-serial port adapter.
|
cyclades= [HW,SERIAL] Cyclades multi-serial port adapter.
|
||||||
|
|
||||||
dasd= [HW,NET]
|
dasd= [HW,NET]
|
||||||
See header of drivers/s390/block/dasd_devmap.c.
|
See header of drivers/s390/block/dasd_devmap.c.
|
||||||
|
|
||||||
db9.dev[2|3]= [HW,JOY] Multisystem joystick support via parallel port
|
db9.dev[2|3]= [HW,JOY] Multisystem joystick support via parallel port
|
||||||
|
@ -406,7 +415,7 @@ running once the system is up.
|
||||||
|
|
||||||
dhash_entries= [KNL]
|
dhash_entries= [KNL]
|
||||||
Set number of hash buckets for dentry cache.
|
Set number of hash buckets for dentry cache.
|
||||||
|
|
||||||
digi= [HW,SERIAL]
|
digi= [HW,SERIAL]
|
||||||
IO parameters + enable/disable command.
|
IO parameters + enable/disable command.
|
||||||
|
|
||||||
|
@ -424,11 +433,11 @@ running once the system is up.
|
||||||
|
|
||||||
dtc3181e= [HW,SCSI]
|
dtc3181e= [HW,SCSI]
|
||||||
|
|
||||||
earlyprintk= [IA-32, X86-64]
|
earlyprintk= [IA-32,X86-64]
|
||||||
earlyprintk=vga
|
earlyprintk=vga
|
||||||
earlyprintk=serial[,ttySn[,baudrate]]
|
earlyprintk=serial[,ttySn[,baudrate]]
|
||||||
|
|
||||||
Append ,keep to not disable it when the real console
|
Append ",keep" to not disable it when the real console
|
||||||
takes over.
|
takes over.
|
||||||
|
|
||||||
Only vga or serial at a time, not both.
|
Only vga or serial at a time, not both.
|
||||||
|
@ -451,7 +460,7 @@ running once the system is up.
|
||||||
Format: {"of[f]" | "sk[ipmbr]"}
|
Format: {"of[f]" | "sk[ipmbr]"}
|
||||||
See comment in arch/i386/boot/edd.S
|
See comment in arch/i386/boot/edd.S
|
||||||
|
|
||||||
eicon= [HW,ISDN]
|
eicon= [HW,ISDN]
|
||||||
Format: <id>,<membase>,<irq>
|
Format: <id>,<membase>,<irq>
|
||||||
|
|
||||||
eisa_irq_edge= [PARISC,HW]
|
eisa_irq_edge= [PARISC,HW]
|
||||||
|
@ -462,12 +471,13 @@ running once the system is up.
|
||||||
arch/i386/kernel/cpu/cpufreq/elanfreq.c.
|
arch/i386/kernel/cpu/cpufreq/elanfreq.c.
|
||||||
|
|
||||||
elevator= [IOSCHED]
|
elevator= [IOSCHED]
|
||||||
Format: {"as"|"cfq"|"deadline"|"noop"}
|
Format: {"as" | "cfq" | "deadline" | "noop"}
|
||||||
See Documentation/block/as-iosched.txt
|
See Documentation/block/as-iosched.txt and
|
||||||
and Documentation/block/deadline-iosched.txt for details.
|
Documentation/block/deadline-iosched.txt for details.
|
||||||
|
|
||||||
elfcorehdr= [IA-32]
|
elfcorehdr= [IA-32]
|
||||||
Specifies physical address of start of kernel core image
|
Specifies physical address of start of kernel core
|
||||||
elf header.
|
image elf header.
|
||||||
See Documentation/kdump.txt for details.
|
See Documentation/kdump.txt for details.
|
||||||
|
|
||||||
enforcing [SELINUX] Set initial enforcing status.
|
enforcing [SELINUX] Set initial enforcing status.
|
||||||
|
@ -485,7 +495,7 @@ running once the system is up.
|
||||||
es1371= [HW,OSS]
|
es1371= [HW,OSS]
|
||||||
Format: <spdif>,[<nomix>,[<amplifier>]]
|
Format: <spdif>,[<nomix>,[<amplifier>]]
|
||||||
See also header of sound/oss/es1371.c.
|
See also header of sound/oss/es1371.c.
|
||||||
|
|
||||||
ether= [HW,NET] Ethernet cards parameters
|
ether= [HW,NET] Ethernet cards parameters
|
||||||
This option is obsoleted by the "netdev=" option, which
|
This option is obsoleted by the "netdev=" option, which
|
||||||
has equivalent usage. See its documentation for details.
|
has equivalent usage. See its documentation for details.
|
||||||
|
@ -526,12 +536,13 @@ running once the system is up.
|
||||||
|
|
||||||
gus= [HW,OSS]
|
gus= [HW,OSS]
|
||||||
Format: <io>,<irq>,<dma>,<dma16>
|
Format: <io>,<irq>,<dma>,<dma16>
|
||||||
|
|
||||||
gvp11= [HW,SCSI]
|
gvp11= [HW,SCSI]
|
||||||
|
|
||||||
hashdist= [KNL,NUMA] Large hashes allocated during boot
|
hashdist= [KNL,NUMA] Large hashes allocated during boot
|
||||||
are distributed across NUMA nodes. Defaults on
|
are distributed across NUMA nodes. Defaults on
|
||||||
for IA-64, off otherwise.
|
for IA-64, off otherwise.
|
||||||
|
Format: 0 | 1 (for off | on)
|
||||||
|
|
||||||
hcl= [IA-64] SGI's Hardware Graph compatibility layer
|
hcl= [IA-64] SGI's Hardware Graph compatibility layer
|
||||||
|
|
||||||
|
@ -595,13 +606,13 @@ running once the system is up.
|
||||||
ide?= [HW] (E)IDE subsystem
|
ide?= [HW] (E)IDE subsystem
|
||||||
Format: ide?=noprobe or chipset specific parameters.
|
Format: ide?=noprobe or chipset specific parameters.
|
||||||
See Documentation/ide.txt.
|
See Documentation/ide.txt.
|
||||||
|
|
||||||
idebus= [HW] (E)IDE subsystem - VLB/PCI bus speed
|
idebus= [HW] (E)IDE subsystem - VLB/PCI bus speed
|
||||||
See Documentation/ide.txt.
|
See Documentation/ide.txt.
|
||||||
|
|
||||||
idle= [HW]
|
idle= [HW]
|
||||||
Format: idle=poll or idle=halt
|
Format: idle=poll or idle=halt
|
||||||
|
|
||||||
ihash_entries= [KNL]
|
ihash_entries= [KNL]
|
||||||
Set number of hash buckets for inode cache.
|
Set number of hash buckets for inode cache.
|
||||||
|
|
||||||
|
@ -649,7 +660,7 @@ running once the system is up.
|
||||||
firmware running.
|
firmware running.
|
||||||
|
|
||||||
isapnp= [ISAPNP]
|
isapnp= [ISAPNP]
|
||||||
Format: <RDP>, <reset>, <pci_scan>, <verbosity>
|
Format: <RDP>,<reset>,<pci_scan>,<verbosity>
|
||||||
|
|
||||||
isolcpus= [KNL,SMP] Isolate CPUs from the general scheduler.
|
isolcpus= [KNL,SMP] Isolate CPUs from the general scheduler.
|
||||||
Format: <cpu number>,...,<cpu number>
|
Format: <cpu number>,...,<cpu number>
|
||||||
|
@ -661,32 +672,33 @@ running once the system is up.
|
||||||
"number of CPUs in system - 1".
|
"number of CPUs in system - 1".
|
||||||
|
|
||||||
This option is the preferred way to isolate CPUs. The
|
This option is the preferred way to isolate CPUs. The
|
||||||
alternative - manually setting the CPU mask of all tasks
|
alternative -- manually setting the CPU mask of all
|
||||||
in the system can cause problems and suboptimal load
|
tasks in the system -- can cause problems and
|
||||||
balancer performance.
|
suboptimal load balancer performance.
|
||||||
|
|
||||||
isp16= [HW,CD]
|
isp16= [HW,CD]
|
||||||
Format: <io>,<irq>,<dma>,<setup>
|
Format: <io>,<irq>,<dma>,<setup>
|
||||||
|
|
||||||
iucv= [HW,NET]
|
iucv= [HW,NET]
|
||||||
|
|
||||||
js= [HW,JOY] Analog joystick
|
js= [HW,JOY] Analog joystick
|
||||||
See Documentation/input/joystick.txt.
|
See Documentation/input/joystick.txt.
|
||||||
|
|
||||||
keepinitrd [HW,ARM]
|
keepinitrd [HW,ARM]
|
||||||
|
|
||||||
kstack=N [IA-32, X86-64] Print N words from the kernel stack
|
kstack=N [IA-32,X86-64] Print N words from the kernel stack
|
||||||
in oops dumps.
|
in oops dumps.
|
||||||
|
|
||||||
l2cr= [PPC]
|
l2cr= [PPC]
|
||||||
|
|
||||||
lapic [IA-32,APIC] Enable the local APIC even if BIOS disabled it.
|
lapic [IA-32,APIC] Enable the local APIC even if BIOS
|
||||||
|
disabled it.
|
||||||
|
|
||||||
lasi= [HW,SCSI] PARISC LASI driver for the 53c700 chip
|
lasi= [HW,SCSI] PARISC LASI driver for the 53c700 chip
|
||||||
Format: addr:<io>,irq:<irq>
|
Format: addr:<io>,irq:<irq>
|
||||||
|
|
||||||
llsc*= [IA64]
|
llsc*= [IA64] See function print_params() in
|
||||||
See function print_params() in arch/ia64/sn/kernel/llsc4.c.
|
arch/ia64/sn/kernel/llsc4.c.
|
||||||
|
|
||||||
load_ramdisk= [RAM] List of ramdisks to load from floppy
|
load_ramdisk= [RAM] List of ramdisks to load from floppy
|
||||||
See Documentation/ramdisk.txt.
|
See Documentation/ramdisk.txt.
|
||||||
|
@ -713,8 +725,9 @@ running once the system is up.
|
||||||
7 (KERN_DEBUG) debug-level messages
|
7 (KERN_DEBUG) debug-level messages
|
||||||
|
|
||||||
log_buf_len=n Sets the size of the printk ring buffer, in bytes.
|
log_buf_len=n Sets the size of the printk ring buffer, in bytes.
|
||||||
Format is n, nk, nM. n must be a power of two. The
|
Format: { n | nk | nM }
|
||||||
default is set in kernel config.
|
n must be a power of two. The default size
|
||||||
|
is set in the kernel config file.
|
||||||
|
|
||||||
lp=0 [LP] Specify parallel ports to use, e.g,
|
lp=0 [LP] Specify parallel ports to use, e.g,
|
||||||
lp=port[,port...] lp=none,parport0 (lp0 not configured, lp1 uses
|
lp=port[,port...] lp=none,parport0 (lp0 not configured, lp1 uses
|
||||||
|
@ -750,23 +763,23 @@ running once the system is up.
|
||||||
ltpc= [NET]
|
ltpc= [NET]
|
||||||
Format: <io>,<irq>,<dma>
|
Format: <io>,<irq>,<dma>
|
||||||
|
|
||||||
mac5380= [HW,SCSI]
|
mac5380= [HW,SCSI] Format:
|
||||||
Format: <can_queue>,<cmd_per_lun>,<sg_tablesize>,<hostid>,<use_tags>
|
<can_queue>,<cmd_per_lun>,<sg_tablesize>,<hostid>,<use_tags>
|
||||||
|
|
||||||
mac53c9x= [HW,SCSI]
|
mac53c9x= [HW,SCSI] Format:
|
||||||
Format: <num_esps>,<disconnect>,<nosync>,<can_queue>,<cmd_per_lun>,<sg_tablesize>,<hostid>,<use_tags>
|
<num_esps>,<disconnect>,<nosync>,<can_queue>,<cmd_per_lun>,<sg_tablesize>,<hostid>,<use_tags>
|
||||||
|
|
||||||
machvec= [IA64]
|
machvec= [IA64] Force the use of a particular machine-vector
|
||||||
Force the use of a particular machine-vector (machvec) in a generic
|
(machvec) in a generic kernel.
|
||||||
kernel. Example: machvec=hpzx1_swiotlb
|
Example: machvec=hpzx1_swiotlb
|
||||||
|
|
||||||
mad16= [HW,OSS]
|
mad16= [HW,OSS] Format:
|
||||||
Format: <io>,<irq>,<dma>,<dma16>,<mpu_io>,<mpu_irq>,<joystick>
|
<io>,<irq>,<dma>,<dma16>,<mpu_io>,<mpu_irq>,<joystick>
|
||||||
|
|
||||||
maui= [HW,OSS]
|
maui= [HW,OSS]
|
||||||
Format: <io>,<irq>
|
Format: <io>,<irq>
|
||||||
|
|
||||||
max_loop= [LOOP] Maximum number of loopback devices that can
|
max_loop= [LOOP] Maximum number of loopback devices that can
|
||||||
be mounted
|
be mounted
|
||||||
Format: <1-256>
|
Format: <1-256>
|
||||||
|
|
||||||
|
@ -776,11 +789,11 @@ running once the system is up.
|
||||||
max_addr=[KMG] [KNL,BOOT,ia64] All physical memory greater than or
|
max_addr=[KMG] [KNL,BOOT,ia64] All physical memory greater than or
|
||||||
equal to this physical address is ignored.
|
equal to this physical address is ignored.
|
||||||
|
|
||||||
max_luns= [SCSI] Maximum number of LUNs to probe
|
max_luns= [SCSI] Maximum number of LUNs to probe.
|
||||||
Should be between 1 and 2^32-1.
|
Should be between 1 and 2^32-1.
|
||||||
|
|
||||||
max_report_luns=
|
max_report_luns=
|
||||||
[SCSI] Maximum number of LUNs received
|
[SCSI] Maximum number of LUNs received.
|
||||||
Should be between 1 and 16384.
|
Should be between 1 and 16384.
|
||||||
|
|
||||||
mca-pentium [BUGS=IA-32]
|
mca-pentium [BUGS=IA-32]
|
||||||
|
@ -796,11 +809,11 @@ running once the system is up.
|
||||||
|
|
||||||
md= [HW] RAID subsystems devices and level
|
md= [HW] RAID subsystems devices and level
|
||||||
See Documentation/md.txt.
|
See Documentation/md.txt.
|
||||||
|
|
||||||
mdacon= [MDA]
|
mdacon= [MDA]
|
||||||
Format: <first>,<last>
|
Format: <first>,<last>
|
||||||
Specifies range of consoles to be captured by the MDA.
|
Specifies range of consoles to be captured by the MDA.
|
||||||
|
|
||||||
mem=nn[KMG] [KNL,BOOT] Force usage of a specific amount of memory
|
mem=nn[KMG] [KNL,BOOT] Force usage of a specific amount of memory
|
||||||
Amount of memory to be used when the kernel is not able
|
Amount of memory to be used when the kernel is not able
|
||||||
to see the whole system memory or for test.
|
to see the whole system memory or for test.
|
||||||
|
@ -851,15 +864,15 @@ running once the system is up.
|
||||||
MTD_Partition= [MTD]
|
MTD_Partition= [MTD]
|
||||||
Format: <name>,<region-number>,<size>,<offset>
|
Format: <name>,<region-number>,<size>,<offset>
|
||||||
|
|
||||||
MTD_Region= [MTD]
|
MTD_Region= [MTD] Format:
|
||||||
Format: <name>,<region-number>[,<base>,<size>,<buswidth>,<altbuswidth>]
|
<name>,<region-number>[,<base>,<size>,<buswidth>,<altbuswidth>]
|
||||||
|
|
||||||
mtdparts= [MTD]
|
mtdparts= [MTD]
|
||||||
See drivers/mtd/cmdline.c.
|
See drivers/mtd/cmdline.c.
|
||||||
|
|
||||||
mtouchusb.raw_coordinates=
|
mtouchusb.raw_coordinates=
|
||||||
[HW] Make the MicroTouch USB driver use raw coordinates ('y', default)
|
[HW] Make the MicroTouch USB driver use raw coordinates
|
||||||
or cooked coordinates ('n')
|
('y', default) or cooked coordinates ('n')
|
||||||
|
|
||||||
n2= [NET] SDL Inc. RISCom/N2 synchronous serial card
|
n2= [NET] SDL Inc. RISCom/N2 synchronous serial card
|
||||||
|
|
||||||
|
@ -880,7 +893,9 @@ running once the system is up.
|
||||||
Format: <irq>,<io>,<mem_start>,<mem_end>,<name>
|
Format: <irq>,<io>,<mem_start>,<mem_end>,<name>
|
||||||
Note that mem_start is often overloaded to mean
|
Note that mem_start is often overloaded to mean
|
||||||
something different and driver-specific.
|
something different and driver-specific.
|
||||||
|
This usage is only documented in each driver source
|
||||||
|
file if at all.
|
||||||
|
|
||||||
nfsaddrs= [NFS]
|
nfsaddrs= [NFS]
|
||||||
See Documentation/nfsroot.txt.
|
See Documentation/nfsroot.txt.
|
||||||
|
|
||||||
|
@ -893,8 +908,8 @@ running once the system is up.
|
||||||
emulation library even if a 387 maths coprocessor
|
emulation library even if a 387 maths coprocessor
|
||||||
is present.
|
is present.
|
||||||
|
|
||||||
noalign [KNL,ARM]
|
noalign [KNL,ARM]
|
||||||
|
|
||||||
noapic [SMP,APIC] Tells the kernel to not make use of any
|
noapic [SMP,APIC] Tells the kernel to not make use of any
|
||||||
IOAPICs that may be present in the system.
|
IOAPICs that may be present in the system.
|
||||||
|
|
||||||
|
@ -905,19 +920,19 @@ running once the system is up.
|
||||||
on "Classic" PPC cores.
|
on "Classic" PPC cores.
|
||||||
|
|
||||||
nocache [ARM]
|
nocache [ARM]
|
||||||
|
|
||||||
nodisconnect [HW,SCSI,M68K] Disables SCSI disconnects.
|
nodisconnect [HW,SCSI,M68K] Disables SCSI disconnects.
|
||||||
|
|
||||||
noexec [IA-64]
|
noexec [IA-64]
|
||||||
|
|
||||||
noexec [IA-32, X86-64]
|
noexec [IA-32,X86-64]
|
||||||
noexec=on: enable non-executable mappings (default)
|
noexec=on: enable non-executable mappings (default)
|
||||||
noexec=off: disable nn-executable mappings
|
noexec=off: disable nn-executable mappings
|
||||||
|
|
||||||
nofxsr [BUGS=IA-32]
|
nofxsr [BUGS=IA-32]
|
||||||
|
|
||||||
nohlt [BUGS=ARM]
|
nohlt [BUGS=ARM]
|
||||||
|
|
||||||
no-hlt [BUGS=IA-32] Tells the kernel that the hlt
|
no-hlt [BUGS=IA-32] Tells the kernel that the hlt
|
||||||
instruction doesn't work correctly and not to
|
instruction doesn't work correctly and not to
|
||||||
use it.
|
use it.
|
||||||
|
@ -948,8 +963,9 @@ running once the system is up.
|
||||||
|
|
||||||
noresidual [PPC] Don't use residual data on PReP machines.
|
noresidual [PPC] Don't use residual data on PReP machines.
|
||||||
|
|
||||||
noresume [SWSUSP] Disables resume and restore original swap space.
|
noresume [SWSUSP] Disables resume and restores original swap
|
||||||
|
space.
|
||||||
|
|
||||||
no-scroll [VGA] Disables scrollback.
|
no-scroll [VGA] Disables scrollback.
|
||||||
This is required for the Braillex ib80-piezo Braille
|
This is required for the Braillex ib80-piezo Braille
|
||||||
reader made by F.H. Papenmeier (Germany).
|
reader made by F.H. Papenmeier (Germany).
|
||||||
|
@ -965,16 +981,16 @@ running once the system is up.
|
||||||
nousb [USB] Disable the USB subsystem
|
nousb [USB] Disable the USB subsystem
|
||||||
|
|
||||||
nowb [ARM]
|
nowb [ARM]
|
||||||
|
|
||||||
opl3= [HW,OSS]
|
opl3= [HW,OSS]
|
||||||
Format: <io>
|
Format: <io>
|
||||||
|
|
||||||
opl3sa= [HW,OSS]
|
opl3sa= [HW,OSS]
|
||||||
Format: <io>,<irq>,<dma>,<dma2>,<mpu_io>,<mpu_irq>
|
Format: <io>,<irq>,<dma>,<dma2>,<mpu_io>,<mpu_irq>
|
||||||
|
|
||||||
opl3sa2= [HW,OSS]
|
opl3sa2= [HW,OSS] Format:
|
||||||
Format: <io>,<irq>,<dma>,<dma2>,<mss_io>,<mpu_io>,<ymode>,<loopback>[,<isapnp>,<multiple]
|
<io>,<irq>,<dma>,<dma2>,<mss_io>,<mpu_io>,<ymode>,<loopback>[,<isapnp>,<multiple]
|
||||||
|
|
||||||
oprofile.timer= [HW]
|
oprofile.timer= [HW]
|
||||||
Use timer interrupt instead of performance counters
|
Use timer interrupt instead of performance counters
|
||||||
|
|
||||||
|
@ -993,36 +1009,33 @@ running once the system is up.
|
||||||
Format: <parport#>
|
Format: <parport#>
|
||||||
parkbd.mode= [HW] Parallel port keyboard adapter mode of operation,
|
parkbd.mode= [HW] Parallel port keyboard adapter mode of operation,
|
||||||
0 for XT, 1 for AT (default is AT).
|
0 for XT, 1 for AT (default is AT).
|
||||||
Format: <mode>
|
Format: <mode>
|
||||||
|
|
||||||
parport=0 [HW,PPT] Specify parallel ports. 0 disables.
|
parport= [HW,PPT] Specify parallel ports. 0 disables.
|
||||||
parport=auto Use 'auto' to force the driver to use
|
Format: { 0 | auto | 0xBBB[,IRQ[,DMA]] }
|
||||||
parport=0xBBB[,IRQ[,DMA]] any IRQ/DMA settings detected (the
|
Use 'auto' to force the driver to use any
|
||||||
default is to ignore detected IRQ/DMA
|
IRQ/DMA settings detected (the default is to
|
||||||
settings because of possible
|
ignore detected IRQ/DMA settings because of
|
||||||
conflicts). You can specify the base
|
possible conflicts). You can specify the base
|
||||||
address, IRQ, and DMA settings; IRQ and
|
address, IRQ, and DMA settings; IRQ and DMA
|
||||||
DMA should be numbers, or 'auto' (for
|
should be numbers, or 'auto' (for using detected
|
||||||
using detected settings on that
|
settings on that particular port), or 'nofifo'
|
||||||
particular port), or 'nofifo' (to avoid
|
(to avoid using a FIFO even if it is detected).
|
||||||
using a FIFO even if it is detected).
|
Parallel ports are assigned in the order they
|
||||||
Parallel ports are assigned in the
|
are specified on the command line, starting
|
||||||
order they are specified on the command
|
with parport0.
|
||||||
line, starting with parport0.
|
|
||||||
|
|
||||||
parport_init_mode=
|
parport_init_mode= [HW,PPT]
|
||||||
[HW,PPT] Configure VIA parallel port to
|
Configure VIA parallel port to operate in
|
||||||
operate in specific mode. This is
|
a specific mode. This is necessary on Pegasos
|
||||||
necessary on Pegasos computer where
|
computer where firmware has no options for setting
|
||||||
firmware has no options for setting up
|
up parallel port mode and sets it to spp.
|
||||||
parallel port mode and sets it to
|
Currently this function knows 686a and 8231 chips.
|
||||||
spp. Currently this function knows
|
|
||||||
686a and 8231 chips.
|
|
||||||
Format: [spp|ps2|epp|ecp|ecpepp]
|
Format: [spp|ps2|epp|ecp|ecpepp]
|
||||||
|
|
||||||
pas2= [HW,OSS]
|
pas2= [HW,OSS] Format:
|
||||||
Format: <io>,<irq>,<dma>,<dma16>,<sb_io>,<sb_irq>,<sb_dma>,<sb_dma16>
|
<io>,<irq>,<dma>,<dma16>,<sb_io>,<sb_irq>,<sb_dma>,<sb_dma16>
|
||||||
|
|
||||||
pas16= [HW,SCSI]
|
pas16= [HW,SCSI]
|
||||||
See header of drivers/scsi/pas16.c.
|
See header of drivers/scsi/pas16.c.
|
||||||
|
|
||||||
|
@ -1032,64 +1045,67 @@ running once the system is up.
|
||||||
See header of drivers/block/paride/pcd.c.
|
See header of drivers/block/paride/pcd.c.
|
||||||
See also Documentation/paride.txt.
|
See also Documentation/paride.txt.
|
||||||
|
|
||||||
pci=option[,option...] [PCI] various PCI subsystem options:
|
pci=option[,option...] [PCI] various PCI subsystem options:
|
||||||
off [IA-32] don't probe for the PCI bus
|
off [IA-32] don't probe for the PCI bus
|
||||||
bios [IA-32] force use of PCI BIOS, don't access
|
bios [IA-32] force use of PCI BIOS, don't access
|
||||||
the hardware directly. Use this if your machine
|
the hardware directly. Use this if your machine
|
||||||
has a non-standard PCI host bridge.
|
has a non-standard PCI host bridge.
|
||||||
nobios [IA-32] disallow use of PCI BIOS, only direct
|
nobios [IA-32] disallow use of PCI BIOS, only direct
|
||||||
hardware access methods are allowed. Use this
|
hardware access methods are allowed. Use this
|
||||||
if you experience crashes upon bootup and you
|
if you experience crashes upon bootup and you
|
||||||
suspect they are caused by the BIOS.
|
suspect they are caused by the BIOS.
|
||||||
conf1 [IA-32] Force use of PCI Configuration Mechanism 1.
|
conf1 [IA-32] Force use of PCI Configuration
|
||||||
conf2 [IA-32] Force use of PCI Configuration Mechanism 2.
|
Mechanism 1.
|
||||||
nosort [IA-32] Don't sort PCI devices according to
|
conf2 [IA-32] Force use of PCI Configuration
|
||||||
order given by the PCI BIOS. This sorting is done
|
Mechanism 2.
|
||||||
to get a device order compatible with older kernels.
|
nosort [IA-32] Don't sort PCI devices according to
|
||||||
biosirq [IA-32] Use PCI BIOS calls to get the interrupt
|
order given by the PCI BIOS. This sorting is
|
||||||
routing table. These calls are known to be buggy
|
done to get a device order compatible with
|
||||||
on several machines and they hang the machine when used,
|
older kernels.
|
||||||
but on other computers it's the only way to get the
|
biosirq [IA-32] Use PCI BIOS calls to get the interrupt
|
||||||
interrupt routing table. Try this option if the kernel
|
routing table. These calls are known to be buggy
|
||||||
is unable to allocate IRQs or discover secondary PCI
|
on several machines and they hang the machine
|
||||||
buses on your motherboard.
|
when used, but on other computers it's the only
|
||||||
rom [IA-32] Assign address space to expansion ROMs.
|
way to get the interrupt routing table. Try
|
||||||
Use with caution as certain devices share address
|
this option if the kernel is unable to allocate
|
||||||
decoders between ROMs and other resources.
|
IRQs or discover secondary PCI buses on your
|
||||||
irqmask=0xMMMM [IA-32] Set a bit mask of IRQs allowed to be assigned
|
motherboard.
|
||||||
automatically to PCI devices. You can make the kernel
|
rom [IA-32] Assign address space to expansion ROMs.
|
||||||
exclude IRQs of your ISA cards this way.
|
Use with caution as certain devices share
|
||||||
|
address decoders between ROMs and other
|
||||||
|
resources.
|
||||||
|
irqmask=0xMMMM [IA-32] Set a bit mask of IRQs allowed to be
|
||||||
|
assigned automatically to PCI devices. You can
|
||||||
|
make the kernel exclude IRQs of your ISA cards
|
||||||
|
this way.
|
||||||
pirqaddr=0xAAAAA [IA-32] Specify the physical address
|
pirqaddr=0xAAAAA [IA-32] Specify the physical address
|
||||||
of the PIRQ table (normally generated
|
of the PIRQ table (normally generated
|
||||||
by the BIOS) if it is outside the
|
by the BIOS) if it is outside the
|
||||||
F0000h-100000h range.
|
F0000h-100000h range.
|
||||||
lastbus=N [IA-32] Scan all buses till bus #N. Can be useful
|
lastbus=N [IA-32] Scan all buses thru bus #N. Can be
|
||||||
if the kernel is unable to find your secondary buses
|
useful if the kernel is unable to find your
|
||||||
and you want to tell it explicitly which ones they are.
|
secondary buses and you want to tell it
|
||||||
assign-busses [IA-32] Always assign all PCI bus
|
explicitly which ones they are.
|
||||||
numbers ourselves, overriding
|
assign-busses [IA-32] Always assign all PCI bus
|
||||||
whatever the firmware may have
|
numbers ourselves, overriding
|
||||||
done.
|
whatever the firmware may have done.
|
||||||
usepirqmask [IA-32] Honor the possible IRQ mask
|
usepirqmask [IA-32] Honor the possible IRQ mask stored
|
||||||
stored in the BIOS $PIR table. This is
|
in the BIOS $PIR table. This is needed on
|
||||||
needed on some systems with broken
|
some systems with broken BIOSes, notably
|
||||||
BIOSes, notably some HP Pavilion N5400
|
some HP Pavilion N5400 and Omnibook XE3
|
||||||
and Omnibook XE3 notebooks. This will
|
notebooks. This will have no effect if ACPI
|
||||||
have no effect if ACPI IRQ routing is
|
IRQ routing is enabled.
|
||||||
enabled.
|
noacpi [IA-32] Do not use ACPI for IRQ routing
|
||||||
noacpi [IA-32] Do not use ACPI for IRQ routing
|
or for PCI scanning.
|
||||||
or for PCI scanning.
|
routeirq Do IRQ routing for all PCI devices.
|
||||||
routeirq Do IRQ routing for all PCI devices.
|
This is normally done in pci_enable_device(),
|
||||||
This is normally done in pci_enable_device(),
|
so this option is a temporary workaround
|
||||||
so this option is a temporary workaround
|
for broken drivers that don't call it.
|
||||||
for broken drivers that don't call it.
|
firmware [ARM] Do not re-enumerate the bus but instead
|
||||||
|
just use the configuration from the
|
||||||
firmware [ARM] Do not re-enumerate the bus but
|
bootloader. This is currently used on
|
||||||
instead just use the configuration
|
IXP2000 systems where the bus has to be
|
||||||
from the bootloader. This is currently
|
configured a certain way for adjunct CPUs.
|
||||||
used on IXP2000 systems where the
|
|
||||||
bus has to be configured a certain way
|
|
||||||
for adjunct CPUs.
|
|
||||||
|
|
||||||
pcmv= [HW,PCMCIA] BadgePAD 4
|
pcmv= [HW,PCMCIA] BadgePAD 4
|
||||||
|
|
||||||
|
@ -1127,19 +1143,20 @@ running once the system is up.
|
||||||
[ISAPNP] Exclude DMAs for the autoconfiguration
|
[ISAPNP] Exclude DMAs for the autoconfiguration
|
||||||
|
|
||||||
pnp_reserve_io= [ISAPNP] Exclude I/O ports for the autoconfiguration
|
pnp_reserve_io= [ISAPNP] Exclude I/O ports for the autoconfiguration
|
||||||
Ranges are in pairs (I/O port base and size).
|
Ranges are in pairs (I/O port base and size).
|
||||||
|
|
||||||
pnp_reserve_mem=
|
pnp_reserve_mem=
|
||||||
[ISAPNP] Exclude memory regions for the autoconfiguration
|
[ISAPNP] Exclude memory regions for the
|
||||||
|
autoconfiguration.
|
||||||
Ranges are in pairs (memory base and size).
|
Ranges are in pairs (memory base and size).
|
||||||
|
|
||||||
profile= [KNL] Enable kernel profiling via /proc/profile
|
profile= [KNL] Enable kernel profiling via /proc/profile
|
||||||
{ schedule | <number> }
|
Format: [schedule,]<number>
|
||||||
(param: schedule - profile schedule points}
|
Param: "schedule" - profile schedule points.
|
||||||
(param: profile step/bucket size as a power of 2 for
|
Param: <number> - step/bucket size as a power of 2 for
|
||||||
statistical time based profiling)
|
statistical time based profiling.
|
||||||
|
|
||||||
processor.max_cstate= [HW, ACPI]
|
processor.max_cstate= [HW,ACPI]
|
||||||
Limit processor to maximum C-state
|
Limit processor to maximum C-state
|
||||||
max_cstate=9 overrides any DMI blacklist limit.
|
max_cstate=9 overrides any DMI blacklist limit.
|
||||||
|
|
||||||
|
@ -1147,27 +1164,28 @@ running once the system is up.
|
||||||
before loading.
|
before loading.
|
||||||
See Documentation/ramdisk.txt.
|
See Documentation/ramdisk.txt.
|
||||||
|
|
||||||
psmouse.proto= [HW,MOUSE] Highest PS2 mouse protocol extension to
|
psmouse.proto= [HW,MOUSE] Highest PS2 mouse protocol extension to
|
||||||
probe for (bare|imps|exps|lifebook|any).
|
probe for; one of (bare|imps|exps|lifebook|any).
|
||||||
psmouse.rate= [HW,MOUSE] Set desired mouse report rate, in reports
|
psmouse.rate= [HW,MOUSE] Set desired mouse report rate, in reports
|
||||||
per second.
|
per second.
|
||||||
psmouse.resetafter=
|
psmouse.resetafter= [HW,MOUSE]
|
||||||
[HW,MOUSE] Try to reset the device after so many bad packets
|
Try to reset the device after so many bad packets
|
||||||
(0 = never).
|
(0 = never).
|
||||||
psmouse.resolution=
|
psmouse.resolution=
|
||||||
[HW,MOUSE] Set desired mouse resolution, in dpi.
|
[HW,MOUSE] Set desired mouse resolution, in dpi.
|
||||||
psmouse.smartscroll=
|
psmouse.smartscroll=
|
||||||
[HW,MOUSE] Controls Logitech smartscroll autorepeat,
|
[HW,MOUSE] Controls Logitech smartscroll autorepeat.
|
||||||
0 = disabled, 1 = enabled (default).
|
0 = disabled, 1 = enabled (default).
|
||||||
|
|
||||||
pss= [HW,OSS] Personal Sound System (ECHO ESC614)
|
pss= [HW,OSS] Personal Sound System (ECHO ESC614)
|
||||||
Format: <io>,<mss_io>,<mss_irq>,<mss_dma>,<mpu_io>,<mpu_irq>
|
Format:
|
||||||
|
<io>,<mss_io>,<mss_irq>,<mss_dma>,<mpu_io>,<mpu_irq>
|
||||||
|
|
||||||
pt. [PARIDE]
|
pt. [PARIDE]
|
||||||
See Documentation/paride.txt.
|
See Documentation/paride.txt.
|
||||||
|
|
||||||
quiet= [KNL] Disable log messages
|
quiet= [KNL] Disable log messages
|
||||||
|
|
||||||
r128= [HW,DRM]
|
r128= [HW,DRM]
|
||||||
|
|
||||||
raid= [HW,RAID]
|
raid= [HW,RAID]
|
||||||
|
@ -1176,10 +1194,9 @@ running once the system is up.
|
||||||
ramdisk= [RAM] Sizes of RAM disks in kilobytes [deprecated]
|
ramdisk= [RAM] Sizes of RAM disks in kilobytes [deprecated]
|
||||||
See Documentation/ramdisk.txt.
|
See Documentation/ramdisk.txt.
|
||||||
|
|
||||||
ramdisk_blocksize=
|
ramdisk_blocksize= [RAM]
|
||||||
[RAM]
|
|
||||||
See Documentation/ramdisk.txt.
|
See Documentation/ramdisk.txt.
|
||||||
|
|
||||||
ramdisk_size= [RAM] Sizes of RAM disks in kilobytes
|
ramdisk_size= [RAM] Sizes of RAM disks in kilobytes
|
||||||
New name for the ramdisk parameter.
|
New name for the ramdisk parameter.
|
||||||
See Documentation/ramdisk.txt.
|
See Documentation/ramdisk.txt.
|
||||||
|
@ -1195,7 +1212,8 @@ running once the system is up.
|
||||||
|
|
||||||
reserve= [KNL,BUGS] Force the kernel to ignore some iomem area
|
reserve= [KNL,BUGS] Force the kernel to ignore some iomem area
|
||||||
|
|
||||||
resume= [SWSUSP] Specify the partition device for software suspension
|
resume= [SWSUSP]
|
||||||
|
Specify the partition device for software suspend
|
||||||
|
|
||||||
rhash_entries= [KNL,NET]
|
rhash_entries= [KNL,NET]
|
||||||
Set number of hash buckets for route cache
|
Set number of hash buckets for route cache
|
||||||
|
@ -1225,7 +1243,7 @@ running once the system is up.
|
||||||
Format: <io>,<irq>,<dma>,<dma2>
|
Format: <io>,<irq>,<dma>,<dma2>
|
||||||
|
|
||||||
sbni= [NET] Granch SBNI12 leased line adapter
|
sbni= [NET] Granch SBNI12 leased line adapter
|
||||||
|
|
||||||
sbpcd= [HW,CD] Soundblaster CD adapter
|
sbpcd= [HW,CD] Soundblaster CD adapter
|
||||||
Format: <io>,<type>
|
Format: <io>,<type>
|
||||||
See a comment before function sbpcd_setup() in
|
See a comment before function sbpcd_setup() in
|
||||||
|
@ -1258,21 +1276,20 @@ running once the system is up.
|
||||||
|
|
||||||
serialnumber [BUGS=IA-32]
|
serialnumber [BUGS=IA-32]
|
||||||
|
|
||||||
sg_def_reserved_size=
|
sg_def_reserved_size= [SCSI]
|
||||||
[SCSI]
|
|
||||||
|
|
||||||
sgalaxy= [HW,OSS]
|
sgalaxy= [HW,OSS]
|
||||||
Format: <io>,<irq>,<dma>,<dma2>,<sgbase>
|
Format: <io>,<irq>,<dma>,<dma2>,<sgbase>
|
||||||
|
|
||||||
shapers= [NET]
|
shapers= [NET]
|
||||||
Maximal number of shapers.
|
Maximal number of shapers.
|
||||||
|
|
||||||
sim710= [SCSI,HW]
|
sim710= [SCSI,HW]
|
||||||
See header of drivers/scsi/sim710.c.
|
See header of drivers/scsi/sim710.c.
|
||||||
|
|
||||||
simeth= [IA-64]
|
simeth= [IA-64]
|
||||||
simscsi=
|
simscsi=
|
||||||
|
|
||||||
sjcd= [HW,CD]
|
sjcd= [HW,CD]
|
||||||
Format: <io>,<irq>,<dma>
|
Format: <io>,<irq>,<dma>
|
||||||
See header of drivers/cdrom/sjcd.c.
|
See header of drivers/cdrom/sjcd.c.
|
||||||
|
@ -1403,10 +1420,10 @@ running once the system is up.
|
||||||
snd-wavefront= [HW,ALSA]
|
snd-wavefront= [HW,ALSA]
|
||||||
|
|
||||||
snd-ymfpci= [HW,ALSA]
|
snd-ymfpci= [HW,ALSA]
|
||||||
|
|
||||||
sonicvibes= [HW,OSS]
|
sonicvibes= [HW,OSS]
|
||||||
Format: <reverb>
|
Format: <reverb>
|
||||||
|
|
||||||
sonycd535= [HW,CD]
|
sonycd535= [HW,CD]
|
||||||
Format: <io>[,<irq>]
|
Format: <io>[,<irq>]
|
||||||
|
|
||||||
|
@ -1423,7 +1440,7 @@ running once the system is up.
|
||||||
|
|
||||||
sscape= [HW,OSS]
|
sscape= [HW,OSS]
|
||||||
Format: <io>,<irq>,<dma>,<mpu_io>,<mpu_irq>
|
Format: <io>,<irq>,<dma>,<mpu_io>,<mpu_irq>
|
||||||
|
|
||||||
st= [HW,SCSI] SCSI tape parameters (buffers, etc.)
|
st= [HW,SCSI] SCSI tape parameters (buffers, etc.)
|
||||||
See Documentation/scsi/st.txt.
|
See Documentation/scsi/st.txt.
|
||||||
|
|
||||||
|
@ -1446,7 +1463,7 @@ running once the system is up.
|
||||||
stram_swap= [HW,M68k]
|
stram_swap= [HW,M68k]
|
||||||
|
|
||||||
swiotlb= [IA-64] Number of I/O TLB slabs
|
swiotlb= [IA-64] Number of I/O TLB slabs
|
||||||
|
|
||||||
switches= [HW,M68k]
|
switches= [HW,M68k]
|
||||||
|
|
||||||
sym53c416= [HW,SCSI]
|
sym53c416= [HW,SCSI]
|
||||||
|
@ -1479,14 +1496,16 @@ running once the system is up.
|
||||||
tp720= [HW,PS2]
|
tp720= [HW,PS2]
|
||||||
|
|
||||||
trix= [HW,OSS] MediaTrix AudioTrix Pro
|
trix= [HW,OSS] MediaTrix AudioTrix Pro
|
||||||
Format: <io>,<irq>,<dma>,<dma2>,<sb_io>,<sb_irq>,<sb_dma>,<mpu_io>,<mpu_irq>
|
Format:
|
||||||
|
<io>,<irq>,<dma>,<dma2>,<sb_io>,<sb_irq>,<sb_dma>,<mpu_io>,<mpu_irq>
|
||||||
|
|
||||||
tsdev.xres= [TS] Horizontal screen resolution.
|
tsdev.xres= [TS] Horizontal screen resolution.
|
||||||
tsdev.yres= [TS] Vertical screen resolution.
|
tsdev.yres= [TS] Vertical screen resolution.
|
||||||
|
|
||||||
turbografx.map[2|3]=
|
turbografx.map[2|3]= [HW,JOY]
|
||||||
[HW,JOY] TurboGraFX parallel port interface
|
TurboGraFX parallel port interface
|
||||||
Format: <port#>,<js1>,<js2>,<js3>,<js4>,<js5>,<js6>,<js7>
|
Format:
|
||||||
|
<port#>,<js1>,<js2>,<js3>,<js4>,<js5>,<js6>,<js7>
|
||||||
See also Documentation/input/joystick-parport.txt
|
See also Documentation/input/joystick-parport.txt
|
||||||
|
|
||||||
u14-34f= [HW,SCSI] UltraStor 14F/34F SCSI host adapter
|
u14-34f= [HW,SCSI] UltraStor 14F/34F SCSI host adapter
|
||||||
|
@ -1502,17 +1521,18 @@ running once the system is up.
|
||||||
|
|
||||||
usbhid.mousepoll=
|
usbhid.mousepoll=
|
||||||
[USBHID] The interval which mice are to be polled at.
|
[USBHID] The interval which mice are to be polled at.
|
||||||
|
|
||||||
video= [FB] Frame buffer configuration
|
video= [FB] Frame buffer configuration
|
||||||
See Documentation/fb/modedb.txt.
|
See Documentation/fb/modedb.txt.
|
||||||
|
|
||||||
vga= [BOOT,IA-32] Select a particular video mode
|
vga= [BOOT,IA-32] Select a particular video mode
|
||||||
See Documentation/i386/boot.txt and Documentation/svga.txt.
|
See Documentation/i386/boot.txt and
|
||||||
|
Documentation/svga.txt.
|
||||||
Use vga=ask for menu.
|
Use vga=ask for menu.
|
||||||
This is actually a boot loader parameter; the value is
|
This is actually a boot loader parameter; the value is
|
||||||
passed to the kernel using a special protocol.
|
passed to the kernel using a special protocol.
|
||||||
|
|
||||||
vmalloc=nn[KMG] [KNL,BOOT] forces the vmalloc area to have an exact
|
vmalloc=nn[KMG] [KNL,BOOT] Forces the vmalloc area to have an exact
|
||||||
size of <nn>. This can be used to increase the
|
size of <nn>. This can be used to increase the
|
||||||
minimum size (128MB on x86). It can also be used to
|
minimum size (128MB on x86). It can also be used to
|
||||||
decrease the size and leave more room for directly
|
decrease the size and leave more room for directly
|
||||||
|
@ -1520,11 +1540,11 @@ running once the system is up.
|
||||||
|
|
||||||
vmhalt= [KNL,S390]
|
vmhalt= [KNL,S390]
|
||||||
|
|
||||||
vmpoff= [KNL,S390]
|
vmpoff= [KNL,S390]
|
||||||
|
|
||||||
waveartist= [HW,OSS]
|
waveartist= [HW,OSS]
|
||||||
Format: <io>,<irq>,<dma>,<dma2>
|
Format: <io>,<irq>,<dma>,<dma2>
|
||||||
|
|
||||||
wd33c93= [HW,SCSI]
|
wd33c93= [HW,SCSI]
|
||||||
See header of drivers/scsi/wd33c93.c.
|
See header of drivers/scsi/wd33c93.c.
|
||||||
|
|
||||||
|
@ -1538,21 +1558,25 @@ running once the system is up.
|
||||||
xd_geo= See header of drivers/block/xd.c.
|
xd_geo= See header of drivers/block/xd.c.
|
||||||
|
|
||||||
xirc2ps_cs= [NET,PCMCIA]
|
xirc2ps_cs= [NET,PCMCIA]
|
||||||
Format: <irq>,<irq_mask>,<io>,<full_duplex>,<do_sound>,<lockup_hack>[,<irq2>[,<irq3>[,<irq4>]]]
|
Format:
|
||||||
|
<irq>,<irq_mask>,<io>,<full_duplex>,<do_sound>,<lockup_hack>[,<irq2>[,<irq3>[,<irq4>]]]
|
||||||
|
|
||||||
|
|
||||||
|
______________________________________________________________________
|
||||||
Changelog:
|
Changelog:
|
||||||
|
|
||||||
|
2000-06-?? Mr. Unknown
|
||||||
The last known update (for 2.4.0) - the changelog was not kept before.
|
The last known update (for 2.4.0) - the changelog was not kept before.
|
||||||
2000-06-?? Mr. Unknown
|
|
||||||
|
|
||||||
|
2002-11-24 Petr Baudis <pasky@ucw.cz>
|
||||||
|
Randy Dunlap <randy.dunlap@verizon.net>
|
||||||
Update for 2.5.49, description for most of the options introduced,
|
Update for 2.5.49, description for most of the options introduced,
|
||||||
references to other documentation (C files, READMEs, ..), added S390,
|
references to other documentation (C files, READMEs, ..), added S390,
|
||||||
PPC, SPARC, MTD, ALSA and OSS category. Minor corrections and
|
PPC, SPARC, MTD, ALSA and OSS category. Minor corrections and
|
||||||
reformatting.
|
reformatting.
|
||||||
2002-11-24 Petr Baudis <pasky@ucw.cz>
|
|
||||||
Randy Dunlap <randy.dunlap@verizon.net>
|
2005-10-19 Randy Dunlap <rdunlap@xenotime.net>
|
||||||
|
Lots of typos, whitespace, some reformatting.
|
||||||
|
|
||||||
TODO:
|
TODO:
|
||||||
|
|
||||||
|
|
|
@ -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.
|
|
@ -195,8 +195,8 @@ KEY ACCESS PERMISSIONS
|
||||||
======================
|
======================
|
||||||
|
|
||||||
Keys have an owner user ID, a group access ID, and a permissions mask. The mask
|
Keys have an owner user ID, a group access ID, and a permissions mask. The mask
|
||||||
has up to eight bits each for user, group and other access. Only five of each
|
has up to eight bits each for possessor, user, group and other access. Only
|
||||||
set of eight bits are defined. These permissions granted are:
|
five of each set of eight bits are defined. These permissions granted are:
|
||||||
|
|
||||||
(*) View
|
(*) View
|
||||||
|
|
||||||
|
@ -241,16 +241,16 @@ about the status of the key service:
|
||||||
type, description and permissions. The payload of the key is not available
|
type, description and permissions. The payload of the key is not available
|
||||||
this way:
|
this way:
|
||||||
|
|
||||||
SERIAL FLAGS USAGE EXPY PERM UID GID TYPE DESCRIPTION: SUMMARY
|
SERIAL FLAGS USAGE EXPY PERM UID GID TYPE DESCRIPTION: SUMMARY
|
||||||
00000001 I----- 39 perm 1f0000 0 0 keyring _uid_ses.0: 1/4
|
00000001 I----- 39 perm 1f1f0000 0 0 keyring _uid_ses.0: 1/4
|
||||||
00000002 I----- 2 perm 1f0000 0 0 keyring _uid.0: empty
|
00000002 I----- 2 perm 1f1f0000 0 0 keyring _uid.0: empty
|
||||||
00000007 I----- 1 perm 1f0000 0 0 keyring _pid.1: empty
|
00000007 I----- 1 perm 1f1f0000 0 0 keyring _pid.1: empty
|
||||||
0000018d I----- 1 perm 1f0000 0 0 keyring _pid.412: empty
|
0000018d I----- 1 perm 1f1f0000 0 0 keyring _pid.412: empty
|
||||||
000004d2 I--Q-- 1 perm 1f0000 32 -1 keyring _uid.32: 1/4
|
000004d2 I--Q-- 1 perm 1f1f0000 32 -1 keyring _uid.32: 1/4
|
||||||
000004d3 I--Q-- 3 perm 1f0000 32 -1 keyring _uid_ses.32: empty
|
000004d3 I--Q-- 3 perm 1f1f0000 32 -1 keyring _uid_ses.32: empty
|
||||||
00000892 I--QU- 1 perm 1f0000 0 0 user metal:copper: 0
|
00000892 I--QU- 1 perm 1f000000 0 0 user metal:copper: 0
|
||||||
00000893 I--Q-N 1 35s 1f0000 0 0 user metal:silver: 0
|
00000893 I--Q-N 1 35s 1f1f0000 0 0 user metal:silver: 0
|
||||||
00000894 I--Q-- 1 10h 1f0000 0 0 user metal:gold: 0
|
00000894 I--Q-- 1 10h 001f0000 0 0 user metal:gold: 0
|
||||||
|
|
||||||
The flags are:
|
The flags are:
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -637,6 +639,34 @@ call, and the key released upon close. How to deal with conflicting keys due to
|
||||||
two different users opening the same file is left to the filesystem author to
|
two different users opening the same file is left to the filesystem author to
|
||||||
solve.
|
solve.
|
||||||
|
|
||||||
|
Note that there are two different types of pointers to keys that may be
|
||||||
|
encountered:
|
||||||
|
|
||||||
|
(*) struct key *
|
||||||
|
|
||||||
|
This simply points to the key structure itself. Key structures will be at
|
||||||
|
least four-byte aligned.
|
||||||
|
|
||||||
|
(*) key_ref_t
|
||||||
|
|
||||||
|
This is equivalent to a struct key *, but the least significant bit is set
|
||||||
|
if the caller "possesses" the key. By "possession" it is meant that the
|
||||||
|
calling processes has a searchable link to the key from one of its
|
||||||
|
keyrings. There are three functions for dealing with these:
|
||||||
|
|
||||||
|
key_ref_t make_key_ref(const struct key *key,
|
||||||
|
unsigned long possession);
|
||||||
|
|
||||||
|
struct key *key_ref_to_ptr(const key_ref_t key_ref);
|
||||||
|
|
||||||
|
unsigned long is_key_possessed(const key_ref_t key_ref);
|
||||||
|
|
||||||
|
The first function constructs a key reference from a key pointer and
|
||||||
|
possession information (which must be 0 or 1 and not any other value).
|
||||||
|
|
||||||
|
The second function retrieves the key pointer from a reference and the
|
||||||
|
third retrieves the possession flag.
|
||||||
|
|
||||||
When accessing a key's payload contents, certain precautions must be taken to
|
When accessing a key's payload contents, certain precautions must be taken to
|
||||||
prevent access vs modification races. See the section "Notes on accessing
|
prevent access vs modification races. See the section "Notes on accessing
|
||||||
payload contents" for more information.
|
payload contents" for more information.
|
||||||
|
@ -660,12 +690,18 @@ 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:
|
||||||
|
|
||||||
void key_put(struct key *key);
|
void key_put(struct key *key);
|
||||||
|
|
||||||
This can be called from interrupt context. If CONFIG_KEYS is not set then
|
Or:
|
||||||
|
|
||||||
|
void key_ref_put(key_ref_t key_ref);
|
||||||
|
|
||||||
|
These can be called from interrupt context. If CONFIG_KEYS is not set then
|
||||||
the argument will not be parsed.
|
the argument will not be parsed.
|
||||||
|
|
||||||
|
|
||||||
|
@ -689,13 +725,17 @@ payload contents" for more information.
|
||||||
|
|
||||||
(*) If a keyring was found in the search, this can be further searched by:
|
(*) If a keyring was found in the search, this can be further searched by:
|
||||||
|
|
||||||
struct key *keyring_search(struct key *keyring,
|
key_ref_t keyring_search(key_ref_t keyring_ref,
|
||||||
const struct key_type *type,
|
const struct key_type *type,
|
||||||
const char *description)
|
const char *description)
|
||||||
|
|
||||||
This searches the keyring tree specified for a matching key. Error ENOKEY
|
This searches the keyring tree specified for a matching key. Error ENOKEY
|
||||||
is returned upon failure. If successful, the returned key will need to be
|
is returned upon failure (use IS_ERR/PTR_ERR to determine). If successful,
|
||||||
released.
|
the returned key will need to be released.
|
||||||
|
|
||||||
|
The possession attribute from the keyring reference is used to control
|
||||||
|
access through the permissions mask and is propagated to the returned key
|
||||||
|
reference pointer if successful.
|
||||||
|
|
||||||
|
|
||||||
(*) To check the validity of a key, this function can be called:
|
(*) To check the validity of a key, this function can be called:
|
||||||
|
@ -732,7 +772,7 @@ More complex payload contents must be allocated and a pointer to them set in
|
||||||
key->payload.data. One of the following ways must be selected to access the
|
key->payload.data. One of the following ways must be selected to access the
|
||||||
data:
|
data:
|
||||||
|
|
||||||
(1) Unmodifyable key type.
|
(1) Unmodifiable key type.
|
||||||
|
|
||||||
If the key type does not have a modify method, then the key's payload can
|
If the key type does not have a modify method, then the key's payload can
|
||||||
be accessed without any form of locking, provided that it's known to be
|
be accessed without any form of locking, provided that it's known to be
|
||||||
|
|
|
@ -777,7 +777,7 @@ doing so is the same as described in the "Configuring Multiple Bonds
|
||||||
Manually" section, below.
|
Manually" section, below.
|
||||||
|
|
||||||
NOTE: It has been observed that some Red Hat supplied kernels
|
NOTE: It has been observed that some Red Hat supplied kernels
|
||||||
are apparently unable to rename modules at load time (the "-obonding1"
|
are apparently unable to rename modules at load time (the "-o bond1"
|
||||||
part). Attempts to pass that option to modprobe will produce an
|
part). Attempts to pass that option to modprobe will produce an
|
||||||
"Operation not permitted" error. This has been reported on some
|
"Operation not permitted" error. This has been reported on some
|
||||||
Fedora Core kernels, and has been seen on RHEL 4 as well. On kernels
|
Fedora Core kernels, and has been seen on RHEL 4 as well. On kernels
|
||||||
|
@ -883,7 +883,8 @@ the above does not work, and the second bonding instance never sees
|
||||||
its options. In that case, the second options line can be substituted
|
its options. In that case, the second options line can be substituted
|
||||||
as follows:
|
as follows:
|
||||||
|
|
||||||
install bonding1 /sbin/modprobe bonding -obond1 mode=balance-alb miimon=50
|
install bond1 /sbin/modprobe --ignore-install bonding -o bond1 \
|
||||||
|
mode=balance-alb miimon=50
|
||||||
|
|
||||||
This may be repeated any number of times, specifying a new and
|
This may be repeated any number of times, specifying a new and
|
||||||
unique name in place of bond1 for each subsequent instance.
|
unique name in place of bond1 for each subsequent instance.
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -51,9 +51,9 @@ or you don't get any checking at all.
|
||||||
Where to get sparse
|
Where to get sparse
|
||||||
~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
With BK, you can just get it from
|
With git, you can just get it from
|
||||||
|
|
||||||
bk://sparse.bkbits.net/sparse
|
rsync://rsync.kernel.org/pub/scm/devel/sparse/sparse.git
|
||||||
|
|
||||||
and DaveJ has tar-balls at
|
and DaveJ has tar-balls at
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
Revised: 2000-Dec-05.
|
Revised: 2000-Dec-05.
|
||||||
Again: 2002-Jul-06
|
Again: 2002-Jul-06
|
||||||
|
Again: 2005-Sep-19
|
||||||
|
|
||||||
NOTE:
|
NOTE:
|
||||||
|
|
||||||
|
@ -18,8 +19,8 @@ called USB Request Block, or URB for short.
|
||||||
and deliver the data and status back.
|
and deliver the data and status back.
|
||||||
|
|
||||||
- Execution of an URB is inherently an asynchronous operation, i.e. the
|
- Execution of an URB is inherently an asynchronous operation, i.e. the
|
||||||
usb_submit_urb(urb) call returns immediately after it has successfully queued
|
usb_submit_urb(urb) call returns immediately after it has successfully
|
||||||
the requested action.
|
queued the requested action.
|
||||||
|
|
||||||
- Transfers for one URB can be canceled with usb_unlink_urb(urb) at any time.
|
- Transfers for one URB can be canceled with usb_unlink_urb(urb) at any time.
|
||||||
|
|
||||||
|
@ -94,8 +95,9 @@ To free an URB, use
|
||||||
|
|
||||||
void usb_free_urb(struct urb *urb)
|
void usb_free_urb(struct urb *urb)
|
||||||
|
|
||||||
You may not free an urb that you've submitted, but which hasn't yet been
|
You may free an urb that you've submitted, but which hasn't yet been
|
||||||
returned to you in a completion callback.
|
returned to you in a completion callback. It will automatically be
|
||||||
|
deallocated when it is no longer in use.
|
||||||
|
|
||||||
|
|
||||||
1.4. What has to be filled in?
|
1.4. What has to be filled in?
|
||||||
|
@ -145,30 +147,36 @@ to get seamless ISO streaming.
|
||||||
|
|
||||||
1.6. How to cancel an already running URB?
|
1.6. How to cancel an already running URB?
|
||||||
|
|
||||||
For an URB which you've submitted, but which hasn't been returned to
|
There are two ways to cancel an URB you've submitted but which hasn't
|
||||||
your driver by the host controller, call
|
been returned to your driver yet. For an asynchronous cancel, call
|
||||||
|
|
||||||
int usb_unlink_urb(struct urb *urb)
|
int usb_unlink_urb(struct urb *urb)
|
||||||
|
|
||||||
It removes the urb from the internal list and frees all allocated
|
It removes the urb from the internal list and frees all allocated
|
||||||
HW descriptors. The status is changed to reflect unlinking. After
|
HW descriptors. The status is changed to reflect unlinking. Note
|
||||||
usb_unlink_urb() returns with that status code, you can free the URB
|
that the URB will not normally have finished when usb_unlink_urb()
|
||||||
with usb_free_urb().
|
returns; you must still wait for the completion handler to be called.
|
||||||
|
|
||||||
There is also an asynchronous unlink mode. To use this, set the
|
To cancel an URB synchronously, call
|
||||||
the URB_ASYNC_UNLINK flag in urb->transfer flags before calling
|
|
||||||
usb_unlink_urb(). When using async unlinking, the URB will not
|
void usb_kill_urb(struct urb *urb)
|
||||||
normally be unlinked when usb_unlink_urb() returns. Instead, wait
|
|
||||||
for the completion handler to be called.
|
It does everything usb_unlink_urb does, and in addition it waits
|
||||||
|
until after the URB has been returned and the completion handler
|
||||||
|
has finished. It also marks the URB as temporarily unusable, so
|
||||||
|
that if the completion handler or anyone else tries to resubmit it
|
||||||
|
they will get a -EPERM error. Thus you can be sure that when
|
||||||
|
usb_kill_urb() returns, the URB is totally idle.
|
||||||
|
|
||||||
|
|
||||||
1.7. What about the completion handler?
|
1.7. What about the completion handler?
|
||||||
|
|
||||||
The handler is of the following type:
|
The handler is of the following type:
|
||||||
|
|
||||||
typedef void (*usb_complete_t)(struct urb *);
|
typedef void (*usb_complete_t)(struct urb *, struct pt_regs *)
|
||||||
|
|
||||||
i.e. it gets just the URB that caused the completion call.
|
I.e., it gets the URB that caused the completion call, plus the
|
||||||
|
register values at the time of the corresponding interrupt (if any).
|
||||||
In the completion handler, you should have a look at urb->status to
|
In the completion handler, you should have a look at urb->status to
|
||||||
detect any USB errors. Since the context parameter is included in the URB,
|
detect any USB errors. Since the context parameter is included in the URB,
|
||||||
you can pass information to the completion handler.
|
you can pass information to the completion handler.
|
||||||
|
@ -176,17 +184,11 @@ you can pass information to the completion handler.
|
||||||
Note that even when an error (or unlink) is reported, data may have been
|
Note that even when an error (or unlink) is reported, data may have been
|
||||||
transferred. That's because USB transfers are packetized; it might take
|
transferred. That's because USB transfers are packetized; it might take
|
||||||
sixteen packets to transfer your 1KByte buffer, and ten of them might
|
sixteen packets to transfer your 1KByte buffer, and ten of them might
|
||||||
have transferred succesfully before the completion is called.
|
have transferred succesfully before the completion was called.
|
||||||
|
|
||||||
|
|
||||||
NOTE: ***** WARNING *****
|
NOTE: ***** WARNING *****
|
||||||
Don't use urb->dev field in your completion handler; it's cleared
|
NEVER SLEEP IN A COMPLETION HANDLER. These are normally called
|
||||||
as part of giving urbs back to drivers. (Addressing an issue with
|
|
||||||
ownership of periodic URBs, which was otherwise ambiguous.) Instead,
|
|
||||||
use urb->context to hold all the data your driver needs.
|
|
||||||
|
|
||||||
NOTE: ***** WARNING *****
|
|
||||||
Also, NEVER SLEEP IN A COMPLETION HANDLER. These are normally called
|
|
||||||
during hardware interrupt processing. If you can, defer substantial
|
during hardware interrupt processing. If you can, defer substantial
|
||||||
work to a tasklet (bottom half) to keep system latencies low. You'll
|
work to a tasklet (bottom half) to keep system latencies low. You'll
|
||||||
probably need to use spinlocks to protect data structures you manipulate
|
probably need to use spinlocks to protect data structures you manipulate
|
||||||
|
@ -229,24 +231,10 @@ ISO data with some other event stream.
|
||||||
Interrupt transfers, like isochronous transfers, are periodic, and happen
|
Interrupt transfers, like isochronous transfers, are periodic, and happen
|
||||||
in intervals that are powers of two (1, 2, 4 etc) units. Units are frames
|
in intervals that are powers of two (1, 2, 4 etc) units. Units are frames
|
||||||
for full and low speed devices, and microframes for high speed ones.
|
for full and low speed devices, and microframes for high speed ones.
|
||||||
|
|
||||||
Currently, after you submit one interrupt URB, that urb is owned by the
|
|
||||||
host controller driver until you cancel it with usb_unlink_urb(). You
|
|
||||||
may unlink interrupt urbs in their completion handlers, if you need to.
|
|
||||||
|
|
||||||
After a transfer completion is called, the URB is automagically resubmitted.
|
|
||||||
THIS BEHAVIOR IS EXPECTED TO BE REMOVED!!
|
|
||||||
|
|
||||||
Interrupt transfers may only send (or receive) the "maxpacket" value for
|
|
||||||
the given interrupt endpoint; if you need more data, you will need to
|
|
||||||
copy that data out of (or into) another buffer. Similarly, you can't
|
|
||||||
queue interrupt transfers.
|
|
||||||
THESE RESTRICTIONS ARE EXPECTED TO BE REMOVED!!
|
|
||||||
|
|
||||||
Note that this automagic resubmission model does make it awkward to use
|
|
||||||
interrupt OUT transfers. The portable solution involves unlinking those
|
|
||||||
OUT urbs after the data is transferred, and perhaps submitting a final
|
|
||||||
URB for a short packet.
|
|
||||||
|
|
||||||
The usb_submit_urb() call modifies urb->interval to the implemented interval
|
The usb_submit_urb() call modifies urb->interval to the implemented interval
|
||||||
value that is less than or equal to the requested interval value.
|
value that is less than or equal to the requested interval value.
|
||||||
|
|
||||||
|
In Linux 2.6, unlike earlier versions, interrupt URBs are not automagically
|
||||||
|
restarted when they complete. They end when the completion handler is
|
||||||
|
called, just like other URBs. If you want an interrupt URB to be restarted,
|
||||||
|
your completion handler must resubmit it.
|
||||||
|
|
54
MAINTAINERS
54
MAINTAINERS
|
@ -604,6 +604,15 @@ P: H. Peter Anvin
|
||||||
M: hpa@zytor.com
|
M: hpa@zytor.com
|
||||||
S: Maintained
|
S: Maintained
|
||||||
|
|
||||||
|
CPUSETS
|
||||||
|
P: Paul Jackson
|
||||||
|
P: Simon Derr
|
||||||
|
M: pj@sgi.com
|
||||||
|
M: simon.derr@bull.net
|
||||||
|
L: linux-kernel@vger.kernel.org
|
||||||
|
W: http://www.bullopensource.org/cpuset/
|
||||||
|
S: Supported
|
||||||
|
|
||||||
CRAMFS FILESYSTEM
|
CRAMFS FILESYSTEM
|
||||||
W: http://sourceforge.net/projects/cramfs/
|
W: http://sourceforge.net/projects/cramfs/
|
||||||
S: Orphan
|
S: Orphan
|
||||||
|
@ -1063,8 +1072,6 @@ M: wli@holomorphy.com
|
||||||
S: Maintained
|
S: Maintained
|
||||||
|
|
||||||
I2C SUBSYSTEM
|
I2C SUBSYSTEM
|
||||||
P: Greg Kroah-Hartman
|
|
||||||
M: greg@kroah.com
|
|
||||||
P: Jean Delvare
|
P: Jean Delvare
|
||||||
M: khali@linux-fr.org
|
M: khali@linux-fr.org
|
||||||
L: lm-sensors@lm-sensors.org
|
L: lm-sensors@lm-sensors.org
|
||||||
|
@ -1161,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
|
||||||
|
@ -1200,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
|
||||||
|
@ -1404,6 +1415,18 @@ L: linux-kernel@vger.kernel.org
|
||||||
L: fastboot@osdl.org
|
L: fastboot@osdl.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
|
|
||||||
|
KPROBES
|
||||||
|
P: Prasanna S Panchamukhi
|
||||||
|
M: prasanna@in.ibm.com
|
||||||
|
P: Ananth N Mavinakayanahalli
|
||||||
|
M: ananth@in.ibm.com
|
||||||
|
P: Anil S Keshavamurthy
|
||||||
|
M: anil.s.keshavamurthy@intel.com
|
||||||
|
P: David S. Miller
|
||||||
|
M: davem@davemloft.net
|
||||||
|
L: linux-kernel@vger.kernel.org
|
||||||
|
S: Maintained
|
||||||
|
|
||||||
LANMEDIA WAN CARD DRIVER
|
LANMEDIA WAN CARD DRIVER
|
||||||
P: Andrew Stanley-Jones
|
P: Andrew Stanley-Jones
|
||||||
M: asj@lanmedia.com
|
M: asj@lanmedia.com
|
||||||
|
@ -1595,6 +1618,13 @@ M: vandrove@vc.cvut.cz
|
||||||
L: linux-fbdev-devel@lists.sourceforge.net
|
L: linux-fbdev-devel@lists.sourceforge.net
|
||||||
S: Maintained
|
S: Maintained
|
||||||
|
|
||||||
|
MEGARAID SCSI DRIVERS
|
||||||
|
P: Neela Syam Kolli
|
||||||
|
M: Neela.Kolli@engenio.com
|
||||||
|
S: linux-scsi@vger.kernel.org
|
||||||
|
W: http://megaraid.lsilogic.com
|
||||||
|
S: Maintained
|
||||||
|
|
||||||
MEMORY TECHNOLOGY DEVICES
|
MEMORY TECHNOLOGY DEVICES
|
||||||
P: David Woodhouse
|
P: David Woodhouse
|
||||||
M: dwmw2@infradead.org
|
M: dwmw2@infradead.org
|
||||||
|
@ -1724,8 +1754,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
|
||||||
|
@ -1896,6 +1929,13 @@ M: joern@wh.fh-wedel.de
|
||||||
L: linux-mtd@lists.infradead.org
|
L: linux-mtd@lists.infradead.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
|
|
||||||
|
PKTCDVD DRIVER
|
||||||
|
P: Peter Osterlund
|
||||||
|
M: petero2@telia.com
|
||||||
|
L: linux-kernel@vger.kernel.org
|
||||||
|
L: packet-writing@suse.com
|
||||||
|
S: Maintained
|
||||||
|
|
||||||
POSIX CLOCKS and TIMERS
|
POSIX CLOCKS and TIMERS
|
||||||
P: George Anzinger
|
P: George Anzinger
|
||||||
M: george@mvista.com
|
M: george@mvista.com
|
||||||
|
|
10
Makefile
10
Makefile
|
@ -1,7 +1,7 @@
|
||||||
VERSION = 2
|
VERSION = 2
|
||||||
PATCHLEVEL = 6
|
PATCHLEVEL = 6
|
||||||
SUBLEVEL = 14
|
SUBLEVEL = 14
|
||||||
EXTRAVERSION =-rc2
|
EXTRAVERSION =
|
||||||
NAME=Affluent Albatross
|
NAME=Affluent Albatross
|
||||||
|
|
||||||
# *DOCUMENTATION*
|
# *DOCUMENTATION*
|
||||||
|
@ -334,7 +334,7 @@ KALLSYMS = scripts/kallsyms
|
||||||
PERL = perl
|
PERL = perl
|
||||||
CHECK = sparse
|
CHECK = sparse
|
||||||
|
|
||||||
CHECKFLAGS := -D__linux__ -Dlinux -D__STDC__ -Dunix -D__unix__ $(CF)
|
CHECKFLAGS := -D__linux__ -Dlinux -D__STDC__ -Dunix -D__unix__ -Wbitwise $(CF)
|
||||||
MODFLAGS = -DMODULE
|
MODFLAGS = -DMODULE
|
||||||
CFLAGS_MODULE = $(MODFLAGS)
|
CFLAGS_MODULE = $(MODFLAGS)
|
||||||
AFLAGS_MODULE = $(MODFLAGS)
|
AFLAGS_MODULE = $(MODFLAGS)
|
||||||
|
@ -372,7 +372,7 @@ export MODVERDIR := $(if $(KBUILD_EXTMOD),$(firstword $(KBUILD_EXTMOD))/).tmp_ve
|
||||||
# Files to ignore in find ... statements
|
# Files to ignore in find ... statements
|
||||||
|
|
||||||
RCS_FIND_IGNORE := \( -name SCCS -o -name BitKeeper -o -name .svn -o -name CVS -o -name .pc -o -name .hg \) -prune -o
|
RCS_FIND_IGNORE := \( -name SCCS -o -name BitKeeper -o -name .svn -o -name CVS -o -name .pc -o -name .hg \) -prune -o
|
||||||
RCS_TAR_IGNORE := --exclude SCCS --exclude BitKeeper --exclude .svn --exclude CVS --exclude .pc --exclude .hg
|
export RCS_TAR_IGNORE := --exclude SCCS --exclude BitKeeper --exclude .svn --exclude CVS --exclude .pc --exclude .hg
|
||||||
|
|
||||||
# ===========================================================================
|
# ===========================================================================
|
||||||
# Rules shared between *config targets and build targets
|
# Rules shared between *config targets and build targets
|
||||||
|
@ -660,8 +660,10 @@ quiet_cmd_sysmap = SYSMAP
|
||||||
# Link of vmlinux
|
# Link of vmlinux
|
||||||
# If CONFIG_KALLSYMS is set .version is already updated
|
# If CONFIG_KALLSYMS is set .version is already updated
|
||||||
# Generate System.map and verify that the content is consistent
|
# Generate System.map and verify that the content is consistent
|
||||||
|
# Use + in front of the vmlinux_version rule to silent warning with make -j2
|
||||||
|
# First command is ':' to allow us to use + in front of the rule
|
||||||
define rule_vmlinux__
|
define rule_vmlinux__
|
||||||
|
:
|
||||||
$(if $(CONFIG_KALLSYMS),,+$(call cmd,vmlinux_version))
|
$(if $(CONFIG_KALLSYMS),,+$(call cmd,vmlinux_version))
|
||||||
|
|
||||||
$(call cmd,vmlinux__)
|
$(call cmd,vmlinux__)
|
||||||
|
|
8
README
8
README
|
@ -151,7 +151,7 @@ CONFIGURING the kernel:
|
||||||
your existing ./.config file.
|
your existing ./.config file.
|
||||||
"make silentoldconfig"
|
"make silentoldconfig"
|
||||||
Like above, but avoids cluttering the screen
|
Like above, but avoids cluttering the screen
|
||||||
with question already answered.
|
with questions already answered.
|
||||||
|
|
||||||
NOTES on "make config":
|
NOTES on "make config":
|
||||||
- having unnecessary drivers will make the kernel bigger, and can
|
- having unnecessary drivers will make the kernel bigger, and can
|
||||||
|
@ -199,9 +199,9 @@ COMPILING the kernel:
|
||||||
are installing a new kernel with the same version number as your
|
are installing a new kernel with the same version number as your
|
||||||
working kernel, make a backup of your modules directory before you
|
working kernel, make a backup of your modules directory before you
|
||||||
do a "make modules_install".
|
do a "make modules_install".
|
||||||
In alternative, before compiling, edit your Makefile and change the
|
Alternatively, before compiling, use the kernel config option
|
||||||
"EXTRAVERSION" line - its content is appended to the regular kernel
|
"LOCALVERSION" to append a unique suffix to the regular kernel version.
|
||||||
version.
|
LOCALVERSION can be set in the "General Setup" menu.
|
||||||
|
|
||||||
- In order to boot your new kernel, you'll need to copy the kernel
|
- In order to boot your new kernel, you'll need to copy the kernel
|
||||||
image (e.g. .../linux/arch/i386/boot/bzImage after compilation)
|
image (e.g. .../linux/arch/i386/boot/bzImage after compilation)
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -154,7 +154,7 @@ pci_dma_supported(struct pci_dev *hwdev, dma_addr_t mask)
|
||||||
|
|
||||||
void *
|
void *
|
||||||
dma_alloc_coherent(struct device *dev, size_t size,
|
dma_alloc_coherent(struct device *dev, size_t size,
|
||||||
dma_addr_t *dma_handle, int gfp)
|
dma_addr_t *dma_handle, gfp_t gfp)
|
||||||
{
|
{
|
||||||
void *ret;
|
void *ret;
|
||||||
|
|
||||||
|
|
|
@ -397,7 +397,7 @@ pci_alloc_consistent(struct pci_dev *pdev, size_t size, dma_addr_t *dma_addrp)
|
||||||
{
|
{
|
||||||
void *cpu_addr;
|
void *cpu_addr;
|
||||||
long order = get_order(size);
|
long order = get_order(size);
|
||||||
int gfp = GFP_ATOMIC;
|
gfp_t gfp = GFP_ATOMIC;
|
||||||
|
|
||||||
try_again:
|
try_again:
|
||||||
cpu_addr = (void *)__get_free_pages(gfp, order);
|
cpu_addr = (void *)__get_free_pages(gfp, order);
|
||||||
|
|
|
@ -127,6 +127,10 @@ common_shutdown_1(void *generic_ptr)
|
||||||
/* If booted from SRM, reset some of the original environment. */
|
/* If booted from SRM, reset some of the original environment. */
|
||||||
if (alpha_using_srm) {
|
if (alpha_using_srm) {
|
||||||
#ifdef CONFIG_DUMMY_CONSOLE
|
#ifdef CONFIG_DUMMY_CONSOLE
|
||||||
|
/* If we've gotten here after SysRq-b, leave interrupt
|
||||||
|
context before taking over the console. */
|
||||||
|
if (in_interrupt())
|
||||||
|
irq_exit();
|
||||||
/* This has the effect of resetting the VGA video origin. */
|
/* This has the effect of resetting the VGA video origin. */
|
||||||
take_over_console(&dummy_con, 0, MAX_NR_CONSOLES-1, 1);
|
take_over_console(&dummy_con, 0, MAX_NR_CONSOLES-1, 1);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -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");
|
||||||
|
|
|
@ -53,7 +53,7 @@ tune-$(CONFIG_CPU_ARM926T) :=-mtune=arm9tdmi
|
||||||
tune-$(CONFIG_CPU_SA110) :=-mtune=strongarm110
|
tune-$(CONFIG_CPU_SA110) :=-mtune=strongarm110
|
||||||
tune-$(CONFIG_CPU_SA1100) :=-mtune=strongarm1100
|
tune-$(CONFIG_CPU_SA1100) :=-mtune=strongarm1100
|
||||||
tune-$(CONFIG_CPU_XSCALE) :=$(call cc-option,-mtune=xscale,-mtune=strongarm110) -Wa,-mcpu=xscale
|
tune-$(CONFIG_CPU_XSCALE) :=$(call cc-option,-mtune=xscale,-mtune=strongarm110) -Wa,-mcpu=xscale
|
||||||
tune-$(CONFIG_CPU_V6) :=-mtune=strongarm
|
tune-$(CONFIG_CPU_V6) :=$(call cc-option,-mtune=arm1136j-s,-mtune=strongarm)
|
||||||
|
|
||||||
# Need -Uarm for gcc < 3.x
|
# Need -Uarm for gcc < 3.x
|
||||||
CFLAGS_ABI :=$(call cc-option,-mapcs-32,-mabi=apcs-gnu) $(call cc-option,-mno-thumb-interwork,)
|
CFLAGS_ABI :=$(call cc-option,-mapcs-32,-mabi=apcs-gnu) $(call cc-option,-mno-thumb-interwork,)
|
||||||
|
@ -175,10 +175,10 @@ else
|
||||||
endif
|
endif
|
||||||
@touch $@
|
@touch $@
|
||||||
|
|
||||||
archprepare: maketools include/asm-arm/.arch
|
archprepare: maketools
|
||||||
|
|
||||||
.PHONY: maketools FORCE
|
.PHONY: maketools FORCE
|
||||||
maketools: include/linux/version.h FORCE
|
maketools: include/linux/version.h include/asm-arm/.arch FORCE
|
||||||
$(Q)$(MAKE) $(build)=arch/arm/tools include/asm-arm/mach-types.h
|
$(Q)$(MAKE) $(build)=arch/arm/tools include/asm-arm/mach-types.h
|
||||||
|
|
||||||
# Convert bzImage to zImage
|
# Convert bzImage to zImage
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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
|
File diff suppressed because it is too large
Load Diff
|
@ -1,14 +1,13 @@
|
||||||
#
|
#
|
||||||
# Automatically generated make config: don't edit
|
# Automatically generated make config: don't edit
|
||||||
# Linux kernel version: 2.6.12-rc1-bk2
|
# Linux kernel version: 2.6.14-rc1-git5
|
||||||
# Sun Mar 27 22:53:40 2005
|
# Tue Sep 20 17:26:28 2005
|
||||||
#
|
#
|
||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_MMU=y
|
CONFIG_MMU=y
|
||||||
CONFIG_UID16=y
|
CONFIG_UID16=y
|
||||||
CONFIG_RWSEM_GENERIC_SPINLOCK=y
|
CONFIG_RWSEM_GENERIC_SPINLOCK=y
|
||||||
CONFIG_GENERIC_CALIBRATE_DELAY=y
|
CONFIG_GENERIC_CALIBRATE_DELAY=y
|
||||||
CONFIG_GENERIC_IOMAP=y
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Code maturity level options
|
# Code maturity level options
|
||||||
|
@ -16,11 +15,13 @@ CONFIG_GENERIC_IOMAP=y
|
||||||
CONFIG_EXPERIMENTAL=y
|
CONFIG_EXPERIMENTAL=y
|
||||||
CONFIG_CLEAN_COMPILE=y
|
CONFIG_CLEAN_COMPILE=y
|
||||||
CONFIG_BROKEN_ON_SMP=y
|
CONFIG_BROKEN_ON_SMP=y
|
||||||
|
CONFIG_INIT_ENV_ARG_LIMIT=32
|
||||||
|
|
||||||
#
|
#
|
||||||
# General setup
|
# General setup
|
||||||
#
|
#
|
||||||
CONFIG_LOCALVERSION=""
|
CONFIG_LOCALVERSION=""
|
||||||
|
CONFIG_LOCALVERSION_AUTO=y
|
||||||
CONFIG_SWAP=y
|
CONFIG_SWAP=y
|
||||||
CONFIG_SYSVIPC=y
|
CONFIG_SYSVIPC=y
|
||||||
# CONFIG_POSIX_MQUEUE is not set
|
# CONFIG_POSIX_MQUEUE is not set
|
||||||
|
@ -31,10 +32,13 @@ CONFIG_SYSCTL=y
|
||||||
# CONFIG_HOTPLUG is not set
|
# CONFIG_HOTPLUG is not set
|
||||||
CONFIG_KOBJECT_UEVENT=y
|
CONFIG_KOBJECT_UEVENT=y
|
||||||
# CONFIG_IKCONFIG is not set
|
# CONFIG_IKCONFIG is not set
|
||||||
|
CONFIG_INITRAMFS_SOURCE=""
|
||||||
CONFIG_EMBEDDED=y
|
CONFIG_EMBEDDED=y
|
||||||
CONFIG_KALLSYMS=y
|
CONFIG_KALLSYMS=y
|
||||||
# CONFIG_KALLSYMS_ALL is not set
|
# CONFIG_KALLSYMS_ALL is not set
|
||||||
# CONFIG_KALLSYMS_EXTRA_PASS is not set
|
# CONFIG_KALLSYMS_EXTRA_PASS is not set
|
||||||
|
CONFIG_PRINTK=y
|
||||||
|
CONFIG_BUG=y
|
||||||
CONFIG_BASE_FULL=y
|
CONFIG_BASE_FULL=y
|
||||||
CONFIG_FUTEX=y
|
CONFIG_FUTEX=y
|
||||||
CONFIG_EPOLL=y
|
CONFIG_EPOLL=y
|
||||||
|
@ -81,6 +85,7 @@ CONFIG_ARCH_IXP4XX=y
|
||||||
# CONFIG_ARCH_VERSATILE is not set
|
# CONFIG_ARCH_VERSATILE is not set
|
||||||
# CONFIG_ARCH_IMX is not set
|
# CONFIG_ARCH_IMX is not set
|
||||||
# CONFIG_ARCH_H720X is not set
|
# CONFIG_ARCH_H720X is not set
|
||||||
|
# CONFIG_ARCH_AAEC2000 is not set
|
||||||
CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y
|
CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -90,15 +95,16 @@ CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y
|
||||||
#
|
#
|
||||||
# IXP4xx Platforms
|
# IXP4xx Platforms
|
||||||
#
|
#
|
||||||
# CONFIG_ARCH_AVILA is not set
|
CONFIG_ARCH_AVILA=y
|
||||||
CONFIG_ARCH_ADI_COYOTE=y
|
CONFIG_ARCH_ADI_COYOTE=y
|
||||||
CONFIG_ARCH_IXDP425=y
|
CONFIG_ARCH_IXDP425=y
|
||||||
# CONFIG_MACH_IXDPG425 is not set
|
CONFIG_MACH_IXDPG425=y
|
||||||
# CONFIG_MACH_IXDP465 is not set
|
CONFIG_MACH_IXDP465=y
|
||||||
CONFIG_ARCH_IXCDP1100=y
|
CONFIG_ARCH_IXCDP1100=y
|
||||||
CONFIG_ARCH_PRPMC1100=y
|
CONFIG_ARCH_PRPMC1100=y
|
||||||
CONFIG_ARCH_IXDP4XX=y
|
CONFIG_ARCH_IXDP4XX=y
|
||||||
# CONFIG_MACH_GTWX5715 is not set
|
CONFIG_CPU_IXP46X=y
|
||||||
|
CONFIG_MACH_GTWX5715=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# IXP4xx Options
|
# IXP4xx Options
|
||||||
|
@ -114,7 +120,6 @@ CONFIG_CPU_32v5=y
|
||||||
CONFIG_CPU_ABRT_EV5T=y
|
CONFIG_CPU_ABRT_EV5T=y
|
||||||
CONFIG_CPU_CACHE_VIVT=y
|
CONFIG_CPU_CACHE_VIVT=y
|
||||||
CONFIG_CPU_TLB_V4WBI=y
|
CONFIG_CPU_TLB_V4WBI=y
|
||||||
CONFIG_CPU_MINICACHE=y
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Processor Features
|
# Processor Features
|
||||||
|
@ -127,9 +132,10 @@ CONFIG_DMABOUNCE=y
|
||||||
#
|
#
|
||||||
# Bus support
|
# Bus support
|
||||||
#
|
#
|
||||||
|
CONFIG_ISA_DMA_API=y
|
||||||
CONFIG_PCI=y
|
CONFIG_PCI=y
|
||||||
CONFIG_PCI_LEGACY_PROC=y
|
CONFIG_PCI_LEGACY_PROC=y
|
||||||
CONFIG_PCI_NAMES=y
|
# CONFIG_PCI_DEBUG is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# PCCARD (PCMCIA/CardBus) support
|
# PCCARD (PCMCIA/CardBus) support
|
||||||
|
@ -140,6 +146,15 @@ CONFIG_PCI_NAMES=y
|
||||||
# Kernel Features
|
# Kernel Features
|
||||||
#
|
#
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
|
# CONFIG_NO_IDLE_HZ is not set
|
||||||
|
# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
|
||||||
|
CONFIG_SELECT_MEMORY_MODEL=y
|
||||||
|
CONFIG_FLATMEM_MANUAL=y
|
||||||
|
# CONFIG_DISCONTIGMEM_MANUAL is not set
|
||||||
|
# CONFIG_SPARSEMEM_MANUAL is not set
|
||||||
|
CONFIG_FLATMEM=y
|
||||||
|
CONFIG_FLAT_NODE_MEM_MAP=y
|
||||||
|
# CONFIG_SPARSEMEM_STATIC is not set
|
||||||
CONFIG_ALIGNMENT_TRAP=y
|
CONFIG_ALIGNMENT_TRAP=y
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -174,6 +189,241 @@ CONFIG_BINFMT_ELF=y
|
||||||
CONFIG_PM=y
|
CONFIG_PM=y
|
||||||
CONFIG_APM=y
|
CONFIG_APM=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Networking
|
||||||
|
#
|
||||||
|
CONFIG_NET=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Networking options
|
||||||
|
#
|
||||||
|
CONFIG_PACKET=m
|
||||||
|
CONFIG_PACKET_MMAP=y
|
||||||
|
CONFIG_UNIX=y
|
||||||
|
CONFIG_XFRM=y
|
||||||
|
# CONFIG_XFRM_USER is not set
|
||||||
|
# CONFIG_NET_KEY is not set
|
||||||
|
CONFIG_INET=y
|
||||||
|
CONFIG_IP_MULTICAST=y
|
||||||
|
CONFIG_IP_ADVANCED_ROUTER=y
|
||||||
|
CONFIG_ASK_IP_FIB_HASH=y
|
||||||
|
# CONFIG_IP_FIB_TRIE is not set
|
||||||
|
CONFIG_IP_FIB_HASH=y
|
||||||
|
CONFIG_IP_MULTIPLE_TABLES=y
|
||||||
|
CONFIG_IP_ROUTE_FWMARK=y
|
||||||
|
CONFIG_IP_ROUTE_MULTIPATH=y
|
||||||
|
# CONFIG_IP_ROUTE_MULTIPATH_CACHED is not set
|
||||||
|
CONFIG_IP_ROUTE_VERBOSE=y
|
||||||
|
CONFIG_IP_PNP=y
|
||||||
|
CONFIG_IP_PNP_DHCP=y
|
||||||
|
CONFIG_IP_PNP_BOOTP=y
|
||||||
|
# CONFIG_IP_PNP_RARP is not set
|
||||||
|
# CONFIG_NET_IPIP is not set
|
||||||
|
CONFIG_NET_IPGRE=m
|
||||||
|
CONFIG_NET_IPGRE_BROADCAST=y
|
||||||
|
CONFIG_IP_MROUTE=y
|
||||||
|
CONFIG_IP_PIMSM_V1=y
|
||||||
|
CONFIG_IP_PIMSM_V2=y
|
||||||
|
# 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=m
|
||||||
|
CONFIG_INET_DIAG=y
|
||||||
|
CONFIG_INET_TCP_DIAG=y
|
||||||
|
# CONFIG_TCP_CONG_ADVANCED is not set
|
||||||
|
CONFIG_TCP_CONG_BIC=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# IP: Virtual Server Configuration
|
||||||
|
#
|
||||||
|
CONFIG_IP_VS=m
|
||||||
|
CONFIG_IP_VS_DEBUG=y
|
||||||
|
CONFIG_IP_VS_TAB_BITS=12
|
||||||
|
|
||||||
|
#
|
||||||
|
# IPVS transport protocol load balancing support
|
||||||
|
#
|
||||||
|
# CONFIG_IP_VS_PROTO_TCP is not set
|
||||||
|
# CONFIG_IP_VS_PROTO_UDP is not set
|
||||||
|
# CONFIG_IP_VS_PROTO_ESP is not set
|
||||||
|
# CONFIG_IP_VS_PROTO_AH is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# IPVS scheduler
|
||||||
|
#
|
||||||
|
CONFIG_IP_VS_RR=m
|
||||||
|
CONFIG_IP_VS_WRR=m
|
||||||
|
CONFIG_IP_VS_LC=m
|
||||||
|
CONFIG_IP_VS_WLC=m
|
||||||
|
CONFIG_IP_VS_LBLC=m
|
||||||
|
CONFIG_IP_VS_LBLCR=m
|
||||||
|
CONFIG_IP_VS_DH=m
|
||||||
|
CONFIG_IP_VS_SH=m
|
||||||
|
# CONFIG_IP_VS_SED is not set
|
||||||
|
# CONFIG_IP_VS_NQ is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# IPVS application helper
|
||||||
|
#
|
||||||
|
# CONFIG_IPV6 is not set
|
||||||
|
CONFIG_NETFILTER=y
|
||||||
|
# CONFIG_NETFILTER_DEBUG is not set
|
||||||
|
CONFIG_BRIDGE_NETFILTER=y
|
||||||
|
# CONFIG_NETFILTER_NETLINK is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# IP: Netfilter Configuration
|
||||||
|
#
|
||||||
|
CONFIG_IP_NF_CONNTRACK=m
|
||||||
|
# CONFIG_IP_NF_CT_ACCT is not set
|
||||||
|
# CONFIG_IP_NF_CONNTRACK_MARK is not set
|
||||||
|
# CONFIG_IP_NF_CONNTRACK_EVENTS is not set
|
||||||
|
# CONFIG_IP_NF_CT_PROTO_SCTP is not set
|
||||||
|
CONFIG_IP_NF_FTP=m
|
||||||
|
CONFIG_IP_NF_IRC=m
|
||||||
|
# CONFIG_IP_NF_NETBIOS_NS is not set
|
||||||
|
# CONFIG_IP_NF_TFTP is not set
|
||||||
|
# CONFIG_IP_NF_AMANDA is not set
|
||||||
|
CONFIG_IP_NF_QUEUE=m
|
||||||
|
CONFIG_IP_NF_IPTABLES=m
|
||||||
|
CONFIG_IP_NF_MATCH_LIMIT=m
|
||||||
|
# CONFIG_IP_NF_MATCH_IPRANGE is not set
|
||||||
|
CONFIG_IP_NF_MATCH_MAC=m
|
||||||
|
# CONFIG_IP_NF_MATCH_PKTTYPE is not set
|
||||||
|
CONFIG_IP_NF_MATCH_MARK=m
|
||||||
|
CONFIG_IP_NF_MATCH_MULTIPORT=m
|
||||||
|
CONFIG_IP_NF_MATCH_TOS=m
|
||||||
|
# CONFIG_IP_NF_MATCH_RECENT is not set
|
||||||
|
# CONFIG_IP_NF_MATCH_ECN is not set
|
||||||
|
# CONFIG_IP_NF_MATCH_DSCP is not set
|
||||||
|
CONFIG_IP_NF_MATCH_AH_ESP=m
|
||||||
|
CONFIG_IP_NF_MATCH_LENGTH=m
|
||||||
|
CONFIG_IP_NF_MATCH_TTL=m
|
||||||
|
CONFIG_IP_NF_MATCH_TCPMSS=m
|
||||||
|
# CONFIG_IP_NF_MATCH_HELPER is not set
|
||||||
|
CONFIG_IP_NF_MATCH_STATE=m
|
||||||
|
# CONFIG_IP_NF_MATCH_CONNTRACK is not set
|
||||||
|
CONFIG_IP_NF_MATCH_OWNER=m
|
||||||
|
# CONFIG_IP_NF_MATCH_PHYSDEV is not set
|
||||||
|
# CONFIG_IP_NF_MATCH_ADDRTYPE is not set
|
||||||
|
# CONFIG_IP_NF_MATCH_REALM is not set
|
||||||
|
# CONFIG_IP_NF_MATCH_SCTP is not set
|
||||||
|
# CONFIG_IP_NF_MATCH_DCCP is not set
|
||||||
|
# CONFIG_IP_NF_MATCH_COMMENT is not set
|
||||||
|
# CONFIG_IP_NF_MATCH_HASHLIMIT is not set
|
||||||
|
# CONFIG_IP_NF_MATCH_STRING is not set
|
||||||
|
CONFIG_IP_NF_FILTER=m
|
||||||
|
CONFIG_IP_NF_TARGET_REJECT=m
|
||||||
|
CONFIG_IP_NF_TARGET_LOG=m
|
||||||
|
CONFIG_IP_NF_TARGET_ULOG=m
|
||||||
|
CONFIG_IP_NF_TARGET_TCPMSS=m
|
||||||
|
CONFIG_IP_NF_NAT=m
|
||||||
|
CONFIG_IP_NF_NAT_NEEDED=y
|
||||||
|
CONFIG_IP_NF_TARGET_MASQUERADE=m
|
||||||
|
CONFIG_IP_NF_TARGET_REDIRECT=m
|
||||||
|
# CONFIG_IP_NF_TARGET_NETMAP is not set
|
||||||
|
# CONFIG_IP_NF_TARGET_SAME is not set
|
||||||
|
CONFIG_IP_NF_NAT_SNMP_BASIC=m
|
||||||
|
CONFIG_IP_NF_NAT_IRC=m
|
||||||
|
CONFIG_IP_NF_NAT_FTP=m
|
||||||
|
CONFIG_IP_NF_MANGLE=m
|
||||||
|
CONFIG_IP_NF_TARGET_TOS=m
|
||||||
|
# CONFIG_IP_NF_TARGET_ECN is not set
|
||||||
|
# CONFIG_IP_NF_TARGET_DSCP is not set
|
||||||
|
CONFIG_IP_NF_TARGET_MARK=m
|
||||||
|
# CONFIG_IP_NF_TARGET_CLASSIFY is not set
|
||||||
|
# CONFIG_IP_NF_TARGET_TTL is not set
|
||||||
|
# CONFIG_IP_NF_RAW is not set
|
||||||
|
CONFIG_IP_NF_ARPTABLES=m
|
||||||
|
CONFIG_IP_NF_ARPFILTER=m
|
||||||
|
# CONFIG_IP_NF_ARP_MANGLE is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bridge: Netfilter Configuration
|
||||||
|
#
|
||||||
|
# CONFIG_BRIDGE_NF_EBTABLES is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# DCCP Configuration (EXPERIMENTAL)
|
||||||
|
#
|
||||||
|
# CONFIG_IP_DCCP is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# SCTP Configuration (EXPERIMENTAL)
|
||||||
|
#
|
||||||
|
# CONFIG_IP_SCTP is not set
|
||||||
|
CONFIG_ATM=y
|
||||||
|
CONFIG_ATM_CLIP=y
|
||||||
|
# CONFIG_ATM_CLIP_NO_ICMP is not set
|
||||||
|
CONFIG_ATM_LANE=m
|
||||||
|
CONFIG_ATM_MPOA=m
|
||||||
|
CONFIG_ATM_BR2684=m
|
||||||
|
# CONFIG_ATM_BR2684_IPFILTER is not set
|
||||||
|
CONFIG_BRIDGE=m
|
||||||
|
CONFIG_VLAN_8021Q=m
|
||||||
|
# CONFIG_DECNET is not set
|
||||||
|
CONFIG_LLC=m
|
||||||
|
# CONFIG_LLC2 is not set
|
||||||
|
CONFIG_IPX=m
|
||||||
|
# CONFIG_IPX_INTERN is not set
|
||||||
|
CONFIG_ATALK=m
|
||||||
|
CONFIG_DEV_APPLETALK=y
|
||||||
|
CONFIG_IPDDP=m
|
||||||
|
CONFIG_IPDDP_ENCAP=y
|
||||||
|
CONFIG_IPDDP_DECAP=y
|
||||||
|
CONFIG_X25=m
|
||||||
|
CONFIG_LAPB=m
|
||||||
|
# CONFIG_NET_DIVERT is not set
|
||||||
|
CONFIG_ECONET=m
|
||||||
|
CONFIG_ECONET_AUNUDP=y
|
||||||
|
CONFIG_ECONET_NATIVE=y
|
||||||
|
CONFIG_WAN_ROUTER=m
|
||||||
|
CONFIG_NET_SCHED=y
|
||||||
|
CONFIG_NET_SCH_CLK_JIFFIES=y
|
||||||
|
# CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set
|
||||||
|
# CONFIG_NET_SCH_CLK_CPU is not set
|
||||||
|
CONFIG_NET_SCH_CBQ=m
|
||||||
|
CONFIG_NET_SCH_HTB=m
|
||||||
|
# CONFIG_NET_SCH_HFSC is not set
|
||||||
|
# CONFIG_NET_SCH_ATM is not set
|
||||||
|
CONFIG_NET_SCH_PRIO=m
|
||||||
|
CONFIG_NET_SCH_RED=m
|
||||||
|
CONFIG_NET_SCH_SFQ=m
|
||||||
|
CONFIG_NET_SCH_TEQL=m
|
||||||
|
CONFIG_NET_SCH_TBF=m
|
||||||
|
CONFIG_NET_SCH_GRED=m
|
||||||
|
CONFIG_NET_SCH_DSMARK=m
|
||||||
|
# CONFIG_NET_SCH_NETEM is not set
|
||||||
|
CONFIG_NET_SCH_INGRESS=m
|
||||||
|
CONFIG_NET_QOS=y
|
||||||
|
CONFIG_NET_ESTIMATOR=y
|
||||||
|
CONFIG_NET_CLS=y
|
||||||
|
# CONFIG_NET_CLS_BASIC is not set
|
||||||
|
CONFIG_NET_CLS_TCINDEX=m
|
||||||
|
CONFIG_NET_CLS_ROUTE4=m
|
||||||
|
CONFIG_NET_CLS_ROUTE=y
|
||||||
|
CONFIG_NET_CLS_FW=m
|
||||||
|
CONFIG_NET_CLS_U32=m
|
||||||
|
# CONFIG_CLS_U32_PERF is not set
|
||||||
|
# CONFIG_NET_CLS_IND is not set
|
||||||
|
# CONFIG_CLS_U32_MARK is not set
|
||||||
|
CONFIG_NET_CLS_RSVP=m
|
||||||
|
CONFIG_NET_CLS_RSVP6=m
|
||||||
|
# CONFIG_NET_EMATCH is not set
|
||||||
|
# CONFIG_NET_CLS_ACT is not set
|
||||||
|
CONFIG_NET_CLS_POLICE=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Network testing
|
||||||
|
#
|
||||||
|
CONFIG_NET_PKTGEN=m
|
||||||
|
# CONFIG_HAMRADIO is not set
|
||||||
|
# CONFIG_IRDA is not set
|
||||||
|
# CONFIG_BT is not set
|
||||||
|
# CONFIG_IEEE80211 is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Device Drivers
|
# Device Drivers
|
||||||
#
|
#
|
||||||
|
@ -244,6 +494,7 @@ CONFIG_MTD_COMPLEX_MAPPINGS=y
|
||||||
CONFIG_MTD_IXP4XX=y
|
CONFIG_MTD_IXP4XX=y
|
||||||
# CONFIG_MTD_EDB7312 is not set
|
# CONFIG_MTD_EDB7312 is not set
|
||||||
# CONFIG_MTD_PCI is not set
|
# CONFIG_MTD_PCI is not set
|
||||||
|
# CONFIG_MTD_PLATRAM is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Self-contained MTD device drivers
|
# Self-contained MTD device drivers
|
||||||
|
@ -283,7 +534,6 @@ CONFIG_MTD_NAND_IDS=m
|
||||||
#
|
#
|
||||||
# Block devices
|
# Block devices
|
||||||
#
|
#
|
||||||
# CONFIG_BLK_DEV_FD is not set
|
|
||||||
# CONFIG_BLK_CPQ_DA is not set
|
# CONFIG_BLK_CPQ_DA is not set
|
||||||
# CONFIG_BLK_CPQ_CISS_DA is not set
|
# CONFIG_BLK_CPQ_CISS_DA is not set
|
||||||
# CONFIG_BLK_DEV_DAC960 is not set
|
# CONFIG_BLK_DEV_DAC960 is not set
|
||||||
|
@ -297,7 +547,6 @@ CONFIG_BLK_DEV_RAM=y
|
||||||
CONFIG_BLK_DEV_RAM_COUNT=16
|
CONFIG_BLK_DEV_RAM_COUNT=16
|
||||||
CONFIG_BLK_DEV_RAM_SIZE=8192
|
CONFIG_BLK_DEV_RAM_SIZE=8192
|
||||||
CONFIG_BLK_DEV_INITRD=y
|
CONFIG_BLK_DEV_INITRD=y
|
||||||
CONFIG_INITRAMFS_SOURCE=""
|
|
||||||
# CONFIG_CDROM_PKTCDVD is not set
|
# CONFIG_CDROM_PKTCDVD is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -351,6 +600,7 @@ CONFIG_BLK_DEV_CMD64X=y
|
||||||
CONFIG_BLK_DEV_HPT366=y
|
CONFIG_BLK_DEV_HPT366=y
|
||||||
# CONFIG_BLK_DEV_SC1200 is not set
|
# CONFIG_BLK_DEV_SC1200 is not set
|
||||||
# CONFIG_BLK_DEV_PIIX is not set
|
# CONFIG_BLK_DEV_PIIX is not set
|
||||||
|
# CONFIG_BLK_DEV_IT821X is not set
|
||||||
# CONFIG_BLK_DEV_NS87415 is not set
|
# CONFIG_BLK_DEV_NS87415 is not set
|
||||||
# CONFIG_BLK_DEV_PDC202XX_OLD is not set
|
# CONFIG_BLK_DEV_PDC202XX_OLD is not set
|
||||||
CONFIG_BLK_DEV_PDC202XX_NEW=y
|
CONFIG_BLK_DEV_PDC202XX_NEW=y
|
||||||
|
@ -369,6 +619,7 @@ CONFIG_BLK_DEV_IDEDMA=y
|
||||||
#
|
#
|
||||||
# SCSI device support
|
# SCSI device support
|
||||||
#
|
#
|
||||||
|
# CONFIG_RAID_ATTRS is not set
|
||||||
# CONFIG_SCSI is not set
|
# CONFIG_SCSI is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -379,6 +630,7 @@ CONFIG_BLK_DEV_IDEDMA=y
|
||||||
#
|
#
|
||||||
# Fusion MPT device support
|
# Fusion MPT device support
|
||||||
#
|
#
|
||||||
|
# CONFIG_FUSION is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# IEEE 1394 (FireWire) support
|
# IEEE 1394 (FireWire) support
|
||||||
|
@ -391,241 +643,24 @@ CONFIG_BLK_DEV_IDEDMA=y
|
||||||
# CONFIG_I2O is not set
|
# CONFIG_I2O is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Networking support
|
# Network device support
|
||||||
#
|
#
|
||||||
CONFIG_NET=y
|
|
||||||
|
|
||||||
#
|
|
||||||
# Networking options
|
|
||||||
#
|
|
||||||
CONFIG_PACKET=m
|
|
||||||
CONFIG_PACKET_MMAP=y
|
|
||||||
CONFIG_NETLINK_DEV=m
|
|
||||||
CONFIG_UNIX=y
|
|
||||||
# CONFIG_NET_KEY is not set
|
|
||||||
CONFIG_INET=y
|
|
||||||
CONFIG_IP_MULTICAST=y
|
|
||||||
CONFIG_IP_ADVANCED_ROUTER=y
|
|
||||||
CONFIG_IP_MULTIPLE_TABLES=y
|
|
||||||
CONFIG_IP_ROUTE_FWMARK=y
|
|
||||||
CONFIG_IP_ROUTE_MULTIPATH=y
|
|
||||||
# CONFIG_IP_ROUTE_MULTIPATH_CACHED is not set
|
|
||||||
CONFIG_IP_ROUTE_VERBOSE=y
|
|
||||||
CONFIG_IP_PNP=y
|
|
||||||
CONFIG_IP_PNP_DHCP=y
|
|
||||||
CONFIG_IP_PNP_BOOTP=y
|
|
||||||
# CONFIG_IP_PNP_RARP is not set
|
|
||||||
# CONFIG_NET_IPIP is not set
|
|
||||||
CONFIG_NET_IPGRE=m
|
|
||||||
CONFIG_NET_IPGRE_BROADCAST=y
|
|
||||||
CONFIG_IP_MROUTE=y
|
|
||||||
CONFIG_IP_PIMSM_V1=y
|
|
||||||
CONFIG_IP_PIMSM_V2=y
|
|
||||||
# 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=m
|
|
||||||
# CONFIG_IP_TCPDIAG is not set
|
|
||||||
# CONFIG_IP_TCPDIAG_IPV6 is not set
|
|
||||||
|
|
||||||
#
|
|
||||||
# IP: Virtual Server Configuration
|
|
||||||
#
|
|
||||||
CONFIG_IP_VS=m
|
|
||||||
CONFIG_IP_VS_DEBUG=y
|
|
||||||
CONFIG_IP_VS_TAB_BITS=12
|
|
||||||
|
|
||||||
#
|
|
||||||
# IPVS transport protocol load balancing support
|
|
||||||
#
|
|
||||||
# CONFIG_IP_VS_PROTO_TCP is not set
|
|
||||||
# CONFIG_IP_VS_PROTO_UDP is not set
|
|
||||||
# CONFIG_IP_VS_PROTO_ESP is not set
|
|
||||||
# CONFIG_IP_VS_PROTO_AH is not set
|
|
||||||
|
|
||||||
#
|
|
||||||
# IPVS scheduler
|
|
||||||
#
|
|
||||||
CONFIG_IP_VS_RR=m
|
|
||||||
CONFIG_IP_VS_WRR=m
|
|
||||||
CONFIG_IP_VS_LC=m
|
|
||||||
CONFIG_IP_VS_WLC=m
|
|
||||||
CONFIG_IP_VS_LBLC=m
|
|
||||||
CONFIG_IP_VS_LBLCR=m
|
|
||||||
CONFIG_IP_VS_DH=m
|
|
||||||
CONFIG_IP_VS_SH=m
|
|
||||||
# CONFIG_IP_VS_SED is not set
|
|
||||||
# CONFIG_IP_VS_NQ is not set
|
|
||||||
|
|
||||||
#
|
|
||||||
# IPVS application helper
|
|
||||||
#
|
|
||||||
# CONFIG_IPV6 is not set
|
|
||||||
CONFIG_NETFILTER=y
|
|
||||||
# CONFIG_NETFILTER_DEBUG is not set
|
|
||||||
CONFIG_BRIDGE_NETFILTER=y
|
|
||||||
|
|
||||||
#
|
|
||||||
# IP: Netfilter Configuration
|
|
||||||
#
|
|
||||||
CONFIG_IP_NF_CONNTRACK=m
|
|
||||||
# CONFIG_IP_NF_CT_ACCT is not set
|
|
||||||
# CONFIG_IP_NF_CONNTRACK_MARK is not set
|
|
||||||
# CONFIG_IP_NF_CT_PROTO_SCTP is not set
|
|
||||||
CONFIG_IP_NF_FTP=m
|
|
||||||
CONFIG_IP_NF_IRC=m
|
|
||||||
# CONFIG_IP_NF_TFTP is not set
|
|
||||||
# CONFIG_IP_NF_AMANDA is not set
|
|
||||||
CONFIG_IP_NF_QUEUE=m
|
|
||||||
CONFIG_IP_NF_IPTABLES=m
|
|
||||||
CONFIG_IP_NF_MATCH_LIMIT=m
|
|
||||||
# CONFIG_IP_NF_MATCH_IPRANGE is not set
|
|
||||||
CONFIG_IP_NF_MATCH_MAC=m
|
|
||||||
# CONFIG_IP_NF_MATCH_PKTTYPE is not set
|
|
||||||
CONFIG_IP_NF_MATCH_MARK=m
|
|
||||||
CONFIG_IP_NF_MATCH_MULTIPORT=m
|
|
||||||
CONFIG_IP_NF_MATCH_TOS=m
|
|
||||||
# CONFIG_IP_NF_MATCH_RECENT is not set
|
|
||||||
# CONFIG_IP_NF_MATCH_ECN is not set
|
|
||||||
# CONFIG_IP_NF_MATCH_DSCP is not set
|
|
||||||
CONFIG_IP_NF_MATCH_AH_ESP=m
|
|
||||||
CONFIG_IP_NF_MATCH_LENGTH=m
|
|
||||||
CONFIG_IP_NF_MATCH_TTL=m
|
|
||||||
CONFIG_IP_NF_MATCH_TCPMSS=m
|
|
||||||
# CONFIG_IP_NF_MATCH_HELPER is not set
|
|
||||||
CONFIG_IP_NF_MATCH_STATE=m
|
|
||||||
# CONFIG_IP_NF_MATCH_CONNTRACK is not set
|
|
||||||
CONFIG_IP_NF_MATCH_OWNER=m
|
|
||||||
# CONFIG_IP_NF_MATCH_PHYSDEV is not set
|
|
||||||
# CONFIG_IP_NF_MATCH_ADDRTYPE is not set
|
|
||||||
# CONFIG_IP_NF_MATCH_REALM is not set
|
|
||||||
# CONFIG_IP_NF_MATCH_SCTP is not set
|
|
||||||
# CONFIG_IP_NF_MATCH_COMMENT is not set
|
|
||||||
# CONFIG_IP_NF_MATCH_HASHLIMIT is not set
|
|
||||||
CONFIG_IP_NF_FILTER=m
|
|
||||||
CONFIG_IP_NF_TARGET_REJECT=m
|
|
||||||
CONFIG_IP_NF_TARGET_LOG=m
|
|
||||||
CONFIG_IP_NF_TARGET_ULOG=m
|
|
||||||
CONFIG_IP_NF_TARGET_TCPMSS=m
|
|
||||||
CONFIG_IP_NF_NAT=m
|
|
||||||
CONFIG_IP_NF_NAT_NEEDED=y
|
|
||||||
CONFIG_IP_NF_TARGET_MASQUERADE=m
|
|
||||||
CONFIG_IP_NF_TARGET_REDIRECT=m
|
|
||||||
# CONFIG_IP_NF_TARGET_NETMAP is not set
|
|
||||||
# CONFIG_IP_NF_TARGET_SAME is not set
|
|
||||||
CONFIG_IP_NF_NAT_SNMP_BASIC=m
|
|
||||||
CONFIG_IP_NF_NAT_IRC=m
|
|
||||||
CONFIG_IP_NF_NAT_FTP=m
|
|
||||||
CONFIG_IP_NF_MANGLE=m
|
|
||||||
CONFIG_IP_NF_TARGET_TOS=m
|
|
||||||
# CONFIG_IP_NF_TARGET_ECN is not set
|
|
||||||
# CONFIG_IP_NF_TARGET_DSCP is not set
|
|
||||||
CONFIG_IP_NF_TARGET_MARK=m
|
|
||||||
# CONFIG_IP_NF_TARGET_CLASSIFY is not set
|
|
||||||
# CONFIG_IP_NF_RAW is not set
|
|
||||||
CONFIG_IP_NF_ARPTABLES=m
|
|
||||||
CONFIG_IP_NF_ARPFILTER=m
|
|
||||||
# CONFIG_IP_NF_ARP_MANGLE is not set
|
|
||||||
|
|
||||||
#
|
|
||||||
# Bridge: Netfilter Configuration
|
|
||||||
#
|
|
||||||
# CONFIG_BRIDGE_NF_EBTABLES is not set
|
|
||||||
CONFIG_XFRM=y
|
|
||||||
# CONFIG_XFRM_USER is not set
|
|
||||||
|
|
||||||
#
|
|
||||||
# SCTP Configuration (EXPERIMENTAL)
|
|
||||||
#
|
|
||||||
# CONFIG_IP_SCTP is not set
|
|
||||||
CONFIG_ATM=y
|
|
||||||
CONFIG_ATM_CLIP=y
|
|
||||||
# CONFIG_ATM_CLIP_NO_ICMP is not set
|
|
||||||
CONFIG_ATM_LANE=m
|
|
||||||
CONFIG_ATM_MPOA=m
|
|
||||||
CONFIG_ATM_BR2684=m
|
|
||||||
# CONFIG_ATM_BR2684_IPFILTER is not set
|
|
||||||
CONFIG_BRIDGE=m
|
|
||||||
CONFIG_VLAN_8021Q=m
|
|
||||||
# CONFIG_DECNET is not set
|
|
||||||
CONFIG_LLC=m
|
|
||||||
# CONFIG_LLC2 is not set
|
|
||||||
CONFIG_IPX=m
|
|
||||||
# CONFIG_IPX_INTERN is not set
|
|
||||||
CONFIG_ATALK=m
|
|
||||||
CONFIG_DEV_APPLETALK=y
|
|
||||||
CONFIG_IPDDP=m
|
|
||||||
CONFIG_IPDDP_ENCAP=y
|
|
||||||
CONFIG_IPDDP_DECAP=y
|
|
||||||
CONFIG_X25=m
|
|
||||||
CONFIG_LAPB=m
|
|
||||||
# CONFIG_NET_DIVERT is not set
|
|
||||||
CONFIG_ECONET=m
|
|
||||||
CONFIG_ECONET_AUNUDP=y
|
|
||||||
CONFIG_ECONET_NATIVE=y
|
|
||||||
CONFIG_WAN_ROUTER=m
|
|
||||||
|
|
||||||
#
|
|
||||||
# QoS and/or fair queueing
|
|
||||||
#
|
|
||||||
CONFIG_NET_SCHED=y
|
|
||||||
CONFIG_NET_SCH_CLK_JIFFIES=y
|
|
||||||
# CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set
|
|
||||||
# CONFIG_NET_SCH_CLK_CPU is not set
|
|
||||||
CONFIG_NET_SCH_CBQ=m
|
|
||||||
CONFIG_NET_SCH_HTB=m
|
|
||||||
# CONFIG_NET_SCH_HFSC is not set
|
|
||||||
# CONFIG_NET_SCH_ATM is not set
|
|
||||||
CONFIG_NET_SCH_PRIO=m
|
|
||||||
CONFIG_NET_SCH_RED=m
|
|
||||||
CONFIG_NET_SCH_SFQ=m
|
|
||||||
CONFIG_NET_SCH_TEQL=m
|
|
||||||
CONFIG_NET_SCH_TBF=m
|
|
||||||
CONFIG_NET_SCH_GRED=m
|
|
||||||
CONFIG_NET_SCH_DSMARK=m
|
|
||||||
# CONFIG_NET_SCH_NETEM is not set
|
|
||||||
CONFIG_NET_SCH_INGRESS=m
|
|
||||||
CONFIG_NET_QOS=y
|
|
||||||
CONFIG_NET_ESTIMATOR=y
|
|
||||||
CONFIG_NET_CLS=y
|
|
||||||
# CONFIG_NET_CLS_BASIC is not set
|
|
||||||
CONFIG_NET_CLS_TCINDEX=m
|
|
||||||
CONFIG_NET_CLS_ROUTE4=m
|
|
||||||
CONFIG_NET_CLS_ROUTE=y
|
|
||||||
CONFIG_NET_CLS_FW=m
|
|
||||||
CONFIG_NET_CLS_U32=m
|
|
||||||
# CONFIG_CLS_U32_PERF is not set
|
|
||||||
# CONFIG_NET_CLS_IND is not set
|
|
||||||
# CONFIG_CLS_U32_MARK is not set
|
|
||||||
CONFIG_NET_CLS_RSVP=m
|
|
||||||
CONFIG_NET_CLS_RSVP6=m
|
|
||||||
# CONFIG_NET_EMATCH is not set
|
|
||||||
# CONFIG_NET_CLS_ACT is not set
|
|
||||||
CONFIG_NET_CLS_POLICE=y
|
|
||||||
|
|
||||||
#
|
|
||||||
# Network testing
|
|
||||||
#
|
|
||||||
CONFIG_NET_PKTGEN=m
|
|
||||||
# CONFIG_NETPOLL is not set
|
|
||||||
# CONFIG_NET_POLL_CONTROLLER is not set
|
|
||||||
# CONFIG_HAMRADIO is not set
|
|
||||||
# CONFIG_IRDA is not set
|
|
||||||
# CONFIG_BT is not set
|
|
||||||
CONFIG_NETDEVICES=y
|
CONFIG_NETDEVICES=y
|
||||||
CONFIG_DUMMY=y
|
CONFIG_DUMMY=y
|
||||||
# CONFIG_BONDING is not set
|
# CONFIG_BONDING is not set
|
||||||
# CONFIG_EQUALIZER is not set
|
# CONFIG_EQUALIZER is not set
|
||||||
# CONFIG_TUN is not set
|
# CONFIG_TUN is not set
|
||||||
# CONFIG_ETHERTAP is not set
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# ARCnet devices
|
# ARCnet devices
|
||||||
#
|
#
|
||||||
# CONFIG_ARCNET is not set
|
# CONFIG_ARCNET is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# PHY device support
|
||||||
|
#
|
||||||
|
# CONFIG_PHYLIB is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Ethernet (10 or 100Mbit)
|
# Ethernet (10 or 100Mbit)
|
||||||
#
|
#
|
||||||
|
@ -635,6 +670,7 @@ CONFIG_MII=y
|
||||||
# CONFIG_SUNGEM is not set
|
# CONFIG_SUNGEM is not set
|
||||||
# CONFIG_NET_VENDOR_3COM is not set
|
# CONFIG_NET_VENDOR_3COM is not set
|
||||||
# CONFIG_SMC91X is not set
|
# CONFIG_SMC91X is not set
|
||||||
|
# CONFIG_DM9000 is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Tulip family network device support
|
# Tulip family network device support
|
||||||
|
@ -671,13 +707,17 @@ CONFIG_EEPRO100=y
|
||||||
# CONFIG_HAMACHI is not set
|
# CONFIG_HAMACHI is not set
|
||||||
# CONFIG_YELLOWFIN is not set
|
# CONFIG_YELLOWFIN is not set
|
||||||
# CONFIG_R8169 is not set
|
# CONFIG_R8169 is not set
|
||||||
|
# CONFIG_SIS190 is not set
|
||||||
|
# CONFIG_SKGE is not set
|
||||||
# CONFIG_SK98LIN is not set
|
# CONFIG_SK98LIN is not set
|
||||||
# CONFIG_VIA_VELOCITY is not set
|
# CONFIG_VIA_VELOCITY is not set
|
||||||
# CONFIG_TIGON3 is not set
|
# CONFIG_TIGON3 is not set
|
||||||
|
# CONFIG_BNX2 is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Ethernet (10000 Mbit)
|
# Ethernet (10000 Mbit)
|
||||||
#
|
#
|
||||||
|
# CONFIG_CHELSIO_T1 is not set
|
||||||
# CONFIG_IXGB is not set
|
# CONFIG_IXGB is not set
|
||||||
# CONFIG_S2IO is not set
|
# CONFIG_S2IO is not set
|
||||||
|
|
||||||
|
@ -702,6 +742,7 @@ CONFIG_NET_RADIO=y
|
||||||
CONFIG_HERMES=y
|
CONFIG_HERMES=y
|
||||||
# CONFIG_PLX_HERMES is not set
|
# CONFIG_PLX_HERMES is not set
|
||||||
# CONFIG_TMD_HERMES is not set
|
# CONFIG_TMD_HERMES is not set
|
||||||
|
# CONFIG_NORTEL_HERMES is not set
|
||||||
CONFIG_PCI_HERMES=y
|
CONFIG_PCI_HERMES=y
|
||||||
# CONFIG_ATMEL is not set
|
# CONFIG_ATMEL is not set
|
||||||
|
|
||||||
|
@ -709,6 +750,7 @@ CONFIG_PCI_HERMES=y
|
||||||
# Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support
|
# Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support
|
||||||
#
|
#
|
||||||
# CONFIG_PRISM54 is not set
|
# CONFIG_PRISM54 is not set
|
||||||
|
# CONFIG_HOSTAP is not set
|
||||||
CONFIG_NET_WIRELESS=y
|
CONFIG_NET_WIRELESS=y
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -758,6 +800,8 @@ CONFIG_ATM_TCP=m
|
||||||
# CONFIG_SLIP is not set
|
# CONFIG_SLIP is not set
|
||||||
# CONFIG_SHAPER is not set
|
# CONFIG_SHAPER is not set
|
||||||
# CONFIG_NETCONSOLE is not set
|
# CONFIG_NETCONSOLE is not set
|
||||||
|
# CONFIG_NETPOLL is not set
|
||||||
|
# CONFIG_NET_POLL_CONTROLLER is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# ISDN subsystem
|
# ISDN subsystem
|
||||||
|
@ -795,7 +839,6 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
|
||||||
#
|
#
|
||||||
# CONFIG_SERIO is not set
|
# CONFIG_SERIO is not set
|
||||||
# CONFIG_GAMEPORT is not set
|
# CONFIG_GAMEPORT is not set
|
||||||
CONFIG_SOUND_GAMEPORT=y
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Character devices
|
# Character devices
|
||||||
|
@ -816,6 +859,7 @@ CONFIG_SERIAL_8250_NR_UARTS=2
|
||||||
#
|
#
|
||||||
CONFIG_SERIAL_CORE=y
|
CONFIG_SERIAL_CORE=y
|
||||||
CONFIG_SERIAL_CORE_CONSOLE=y
|
CONFIG_SERIAL_CORE_CONSOLE=y
|
||||||
|
# CONFIG_SERIAL_JSM is not set
|
||||||
CONFIG_UNIX98_PTYS=y
|
CONFIG_UNIX98_PTYS=y
|
||||||
CONFIG_LEGACY_PTYS=y
|
CONFIG_LEGACY_PTYS=y
|
||||||
CONFIG_LEGACY_PTY_COUNT=256
|
CONFIG_LEGACY_PTY_COUNT=256
|
||||||
|
@ -882,12 +926,11 @@ CONFIG_I2C_ALGOBIT=y
|
||||||
# CONFIG_I2C_AMD8111 is not set
|
# CONFIG_I2C_AMD8111 is not set
|
||||||
# CONFIG_I2C_I801 is not set
|
# CONFIG_I2C_I801 is not set
|
||||||
# CONFIG_I2C_I810 is not set
|
# CONFIG_I2C_I810 is not set
|
||||||
|
# CONFIG_I2C_PIIX4 is not set
|
||||||
# CONFIG_I2C_IOP3XX is not set
|
# CONFIG_I2C_IOP3XX is not set
|
||||||
# CONFIG_I2C_ISA is not set
|
|
||||||
CONFIG_I2C_IXP4XX=y
|
CONFIG_I2C_IXP4XX=y
|
||||||
# CONFIG_I2C_NFORCE2 is not set
|
# CONFIG_I2C_NFORCE2 is not set
|
||||||
# CONFIG_I2C_PARPORT_LIGHT is not set
|
# CONFIG_I2C_PARPORT_LIGHT is not set
|
||||||
# CONFIG_I2C_PIIX4 is not set
|
|
||||||
# CONFIG_I2C_PROSAVAGE is not set
|
# CONFIG_I2C_PROSAVAGE is not set
|
||||||
# CONFIG_I2C_SAVAGE4 is not set
|
# CONFIG_I2C_SAVAGE4 is not set
|
||||||
# CONFIG_SCx200_ACB is not set
|
# CONFIG_SCx200_ACB is not set
|
||||||
|
@ -901,14 +944,33 @@ CONFIG_I2C_IXP4XX=y
|
||||||
# CONFIG_I2C_PCA_ISA is not set
|
# CONFIG_I2C_PCA_ISA is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Hardware Sensors Chip support
|
# Miscellaneous I2C Chip support
|
||||||
#
|
#
|
||||||
CONFIG_I2C_SENSOR=y
|
# CONFIG_SENSORS_DS1337 is not set
|
||||||
|
# CONFIG_SENSORS_DS1374 is not set
|
||||||
|
CONFIG_SENSORS_EEPROM=y
|
||||||
|
# CONFIG_SENSORS_PCF8574 is not set
|
||||||
|
# CONFIG_SENSORS_PCA9539 is not set
|
||||||
|
# CONFIG_SENSORS_PCF8591 is not set
|
||||||
|
# CONFIG_SENSORS_RTC8564 is not set
|
||||||
|
# CONFIG_SENSORS_MAX6875 is not set
|
||||||
|
# CONFIG_I2C_DEBUG_CORE is not set
|
||||||
|
# CONFIG_I2C_DEBUG_ALGO is not set
|
||||||
|
# CONFIG_I2C_DEBUG_BUS is not set
|
||||||
|
# CONFIG_I2C_DEBUG_CHIP is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Hardware Monitoring support
|
||||||
|
#
|
||||||
|
CONFIG_HWMON=y
|
||||||
|
# CONFIG_HWMON_VID is not set
|
||||||
# CONFIG_SENSORS_ADM1021 is not set
|
# CONFIG_SENSORS_ADM1021 is not set
|
||||||
# CONFIG_SENSORS_ADM1025 is not set
|
# CONFIG_SENSORS_ADM1025 is not set
|
||||||
# CONFIG_SENSORS_ADM1026 is not set
|
# CONFIG_SENSORS_ADM1026 is not set
|
||||||
# CONFIG_SENSORS_ADM1031 is not set
|
# CONFIG_SENSORS_ADM1031 is not set
|
||||||
|
# CONFIG_SENSORS_ADM9240 is not set
|
||||||
# CONFIG_SENSORS_ASB100 is not set
|
# CONFIG_SENSORS_ASB100 is not set
|
||||||
|
# CONFIG_SENSORS_ATXP1 is not set
|
||||||
# CONFIG_SENSORS_DS1621 is not set
|
# CONFIG_SENSORS_DS1621 is not set
|
||||||
# CONFIG_SENSORS_FSCHER is not set
|
# CONFIG_SENSORS_FSCHER is not set
|
||||||
# CONFIG_SENSORS_FSCPOS is not set
|
# CONFIG_SENSORS_FSCPOS is not set
|
||||||
|
@ -924,32 +986,28 @@ CONFIG_I2C_SENSOR=y
|
||||||
# CONFIG_SENSORS_LM85 is not set
|
# CONFIG_SENSORS_LM85 is not set
|
||||||
# CONFIG_SENSORS_LM87 is not set
|
# CONFIG_SENSORS_LM87 is not set
|
||||||
# CONFIG_SENSORS_LM90 is not set
|
# CONFIG_SENSORS_LM90 is not set
|
||||||
|
# CONFIG_SENSORS_LM92 is not set
|
||||||
# CONFIG_SENSORS_MAX1619 is not set
|
# CONFIG_SENSORS_MAX1619 is not set
|
||||||
# CONFIG_SENSORS_PC87360 is not set
|
# CONFIG_SENSORS_PC87360 is not set
|
||||||
# CONFIG_SENSORS_SMSC47B397 is not set
|
|
||||||
# CONFIG_SENSORS_SIS5595 is not set
|
# CONFIG_SENSORS_SIS5595 is not set
|
||||||
# CONFIG_SENSORS_SMSC47M1 is not set
|
# CONFIG_SENSORS_SMSC47M1 is not set
|
||||||
|
# CONFIG_SENSORS_SMSC47B397 is not set
|
||||||
# CONFIG_SENSORS_VIA686A is not set
|
# CONFIG_SENSORS_VIA686A is not set
|
||||||
# CONFIG_SENSORS_W83781D is not set
|
# CONFIG_SENSORS_W83781D is not set
|
||||||
|
# CONFIG_SENSORS_W83792D is not set
|
||||||
# CONFIG_SENSORS_W83L785TS is not set
|
# CONFIG_SENSORS_W83L785TS is not set
|
||||||
# CONFIG_SENSORS_W83627HF is not set
|
# CONFIG_SENSORS_W83627HF is not set
|
||||||
|
# CONFIG_SENSORS_W83627EHF is not set
|
||||||
#
|
# CONFIG_HWMON_DEBUG_CHIP is not set
|
||||||
# Other I2C Chip support
|
|
||||||
#
|
|
||||||
CONFIG_SENSORS_EEPROM=y
|
|
||||||
# CONFIG_SENSORS_PCF8574 is not set
|
|
||||||
# CONFIG_SENSORS_PCF8591 is not set
|
|
||||||
# CONFIG_SENSORS_RTC8564 is not set
|
|
||||||
# CONFIG_I2C_DEBUG_CORE is not set
|
|
||||||
# CONFIG_I2C_DEBUG_ALGO is not set
|
|
||||||
# CONFIG_I2C_DEBUG_BUS is not set
|
|
||||||
# CONFIG_I2C_DEBUG_CHIP is not set
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Misc devices
|
# Misc devices
|
||||||
#
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# Multimedia Capabilities Port drivers
|
||||||
|
#
|
||||||
|
|
||||||
#
|
#
|
||||||
# Multimedia devices
|
# Multimedia devices
|
||||||
#
|
#
|
||||||
|
@ -994,6 +1052,7 @@ CONFIG_EXT2_FS=y
|
||||||
CONFIG_EXT2_FS_XATTR=y
|
CONFIG_EXT2_FS_XATTR=y
|
||||||
CONFIG_EXT2_FS_POSIX_ACL=y
|
CONFIG_EXT2_FS_POSIX_ACL=y
|
||||||
# CONFIG_EXT2_FS_SECURITY is not set
|
# CONFIG_EXT2_FS_SECURITY is not set
|
||||||
|
# CONFIG_EXT2_FS_XIP is not set
|
||||||
CONFIG_EXT3_FS=y
|
CONFIG_EXT3_FS=y
|
||||||
CONFIG_EXT3_FS_XATTR=y
|
CONFIG_EXT3_FS_XATTR=y
|
||||||
CONFIG_EXT3_FS_POSIX_ACL=y
|
CONFIG_EXT3_FS_POSIX_ACL=y
|
||||||
|
@ -1004,17 +1063,15 @@ CONFIG_FS_MBCACHE=y
|
||||||
# CONFIG_REISERFS_FS is not set
|
# CONFIG_REISERFS_FS is not set
|
||||||
# CONFIG_JFS_FS is not set
|
# CONFIG_JFS_FS is not set
|
||||||
CONFIG_FS_POSIX_ACL=y
|
CONFIG_FS_POSIX_ACL=y
|
||||||
|
|
||||||
#
|
|
||||||
# XFS support
|
|
||||||
#
|
|
||||||
# CONFIG_XFS_FS is not set
|
# CONFIG_XFS_FS is not set
|
||||||
# CONFIG_MINIX_FS is not set
|
# CONFIG_MINIX_FS is not set
|
||||||
# CONFIG_ROMFS_FS is not set
|
# CONFIG_ROMFS_FS is not set
|
||||||
|
CONFIG_INOTIFY=y
|
||||||
# CONFIG_QUOTA is not set
|
# CONFIG_QUOTA is not set
|
||||||
CONFIG_DNOTIFY=y
|
CONFIG_DNOTIFY=y
|
||||||
# CONFIG_AUTOFS_FS is not set
|
# CONFIG_AUTOFS_FS is not set
|
||||||
# CONFIG_AUTOFS4_FS is not set
|
# CONFIG_AUTOFS4_FS is not set
|
||||||
|
# CONFIG_FUSE_FS is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# CD-ROM/DVD Filesystems
|
# CD-ROM/DVD Filesystems
|
||||||
|
@ -1034,12 +1091,10 @@ CONFIG_DNOTIFY=y
|
||||||
#
|
#
|
||||||
CONFIG_PROC_FS=y
|
CONFIG_PROC_FS=y
|
||||||
CONFIG_SYSFS=y
|
CONFIG_SYSFS=y
|
||||||
# CONFIG_DEVFS_FS is not set
|
|
||||||
# CONFIG_DEVPTS_FS_XATTR is not set
|
|
||||||
CONFIG_TMPFS=y
|
CONFIG_TMPFS=y
|
||||||
# CONFIG_TMPFS_XATTR is not set
|
|
||||||
# CONFIG_HUGETLB_PAGE is not set
|
# CONFIG_HUGETLB_PAGE is not set
|
||||||
CONFIG_RAMFS=y
|
CONFIG_RAMFS=y
|
||||||
|
# CONFIG_RELAYFS_FS is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Miscellaneous filesystems
|
# Miscellaneous filesystems
|
||||||
|
@ -1054,8 +1109,7 @@ CONFIG_RAMFS=y
|
||||||
# CONFIG_JFFS_FS is not set
|
# CONFIG_JFFS_FS is not set
|
||||||
CONFIG_JFFS2_FS=y
|
CONFIG_JFFS2_FS=y
|
||||||
CONFIG_JFFS2_FS_DEBUG=0
|
CONFIG_JFFS2_FS_DEBUG=0
|
||||||
# CONFIG_JFFS2_FS_NAND is not set
|
CONFIG_JFFS2_FS_WRITEBUFFER=y
|
||||||
# CONFIG_JFFS2_FS_NOR_ECC is not set
|
|
||||||
# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
|
# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
|
||||||
CONFIG_JFFS2_ZLIB=y
|
CONFIG_JFFS2_ZLIB=y
|
||||||
CONFIG_JFFS2_RTIME=y
|
CONFIG_JFFS2_RTIME=y
|
||||||
|
@ -1072,12 +1126,14 @@ CONFIG_JFFS2_RTIME=y
|
||||||
#
|
#
|
||||||
CONFIG_NFS_FS=y
|
CONFIG_NFS_FS=y
|
||||||
CONFIG_NFS_V3=y
|
CONFIG_NFS_V3=y
|
||||||
|
# CONFIG_NFS_V3_ACL is not set
|
||||||
# CONFIG_NFS_V4 is not set
|
# CONFIG_NFS_V4 is not set
|
||||||
# CONFIG_NFS_DIRECTIO is not set
|
# CONFIG_NFS_DIRECTIO is not set
|
||||||
# CONFIG_NFSD is not set
|
# CONFIG_NFSD is not set
|
||||||
CONFIG_ROOT_NFS=y
|
CONFIG_ROOT_NFS=y
|
||||||
CONFIG_LOCKD=y
|
CONFIG_LOCKD=y
|
||||||
CONFIG_LOCKD_V4=y
|
CONFIG_LOCKD_V4=y
|
||||||
|
CONFIG_NFS_COMMON=y
|
||||||
CONFIG_SUNRPC=y
|
CONFIG_SUNRPC=y
|
||||||
# CONFIG_RPCSEC_GSS_KRB5 is not set
|
# CONFIG_RPCSEC_GSS_KRB5 is not set
|
||||||
# CONFIG_RPCSEC_GSS_SPKM3 is not set
|
# CONFIG_RPCSEC_GSS_SPKM3 is not set
|
||||||
|
@ -1086,6 +1142,7 @@ CONFIG_SUNRPC=y
|
||||||
# CONFIG_NCP_FS is not set
|
# CONFIG_NCP_FS is not set
|
||||||
# CONFIG_CODA_FS is not set
|
# CONFIG_CODA_FS is not set
|
||||||
# CONFIG_AFS_FS is not set
|
# CONFIG_AFS_FS is not set
|
||||||
|
# CONFIG_9P_FS is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Partition Types
|
# Partition Types
|
||||||
|
@ -1124,6 +1181,7 @@ CONFIG_MSDOS_PARTITION=y
|
||||||
CONFIG_DEBUG_KERNEL=y
|
CONFIG_DEBUG_KERNEL=y
|
||||||
CONFIG_MAGIC_SYSRQ=y
|
CONFIG_MAGIC_SYSRQ=y
|
||||||
CONFIG_LOG_BUF_SHIFT=14
|
CONFIG_LOG_BUF_SHIFT=14
|
||||||
|
CONFIG_DETECT_SOFTLOCKUP=y
|
||||||
# CONFIG_SCHEDSTATS is not set
|
# CONFIG_SCHEDSTATS is not set
|
||||||
# CONFIG_DEBUG_SLAB is not set
|
# CONFIG_DEBUG_SLAB is not set
|
||||||
# CONFIG_DEBUG_SPINLOCK is not set
|
# CONFIG_DEBUG_SPINLOCK is not set
|
||||||
|
@ -1158,6 +1216,7 @@ CONFIG_DEBUG_LL=y
|
||||||
# Library routines
|
# Library routines
|
||||||
#
|
#
|
||||||
# CONFIG_CRC_CCITT is not set
|
# CONFIG_CRC_CCITT is not set
|
||||||
|
# CONFIG_CRC16 is not set
|
||||||
CONFIG_CRC32=y
|
CONFIG_CRC32=y
|
||||||
# CONFIG_LIBCRC32C is not set
|
# CONFIG_LIBCRC32C is not set
|
||||||
CONFIG_ZLIB_INFLATE=y
|
CONFIG_ZLIB_INFLATE=y
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -45,8 +45,8 @@ extern void fp_enter(void);
|
||||||
|
|
||||||
#define EXPORT_SYMBOL_ALIAS(sym,orig) \
|
#define EXPORT_SYMBOL_ALIAS(sym,orig) \
|
||||||
EXPORT_CRC_ALIAS(sym) \
|
EXPORT_CRC_ALIAS(sym) \
|
||||||
const struct kernel_symbol __ksymtab_##sym \
|
static const struct kernel_symbol __ksymtab_##sym \
|
||||||
__attribute__((section("__ksymtab"))) = \
|
__attribute_used__ __attribute__((section("__ksymtab"))) = \
|
||||||
{ (unsigned long)&orig, #sym };
|
{ (unsigned long)&orig, #sym };
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -537,7 +537,7 @@ ENTRY(__switch_to)
|
||||||
#ifdef CONFIG_CPU_MPCORE
|
#ifdef CONFIG_CPU_MPCORE
|
||||||
clrex
|
clrex
|
||||||
#else
|
#else
|
||||||
strex r3, r4, [ip] @ Clear exclusive monitor
|
strex r5, r4, [ip] @ Clear exclusive monitor
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#if defined(CONFIG_CPU_XSCALE) && !defined(CONFIG_IWMMXT)
|
#if defined(CONFIG_CPU_XSCALE) && !defined(CONFIG_IWMMXT)
|
||||||
|
|
|
@ -106,15 +106,10 @@ ENTRY(ret_from_fork)
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.Larm700bug:
|
.Larm700bug:
|
||||||
ldr r0, [sp, #S_PSR] @ Get calling cpsr
|
|
||||||
sub lr, lr, #4
|
|
||||||
str lr, [r8]
|
|
||||||
msr spsr_cxsf, r0
|
|
||||||
ldmia sp, {r0 - lr}^ @ Get calling r0 - lr
|
ldmia sp, {r0 - lr}^ @ Get calling r0 - lr
|
||||||
mov r0, r0
|
mov r0, r0
|
||||||
ldr lr, [sp, #S_PC] @ Get PC
|
|
||||||
add sp, sp, #S_FRAME_SIZE
|
add sp, sp, #S_FRAME_SIZE
|
||||||
movs pc, lr
|
subs pc, lr, #4
|
||||||
#else
|
#else
|
||||||
.macro arm710_bug_check, instr, temp
|
.macro arm710_bug_check, instr, temp
|
||||||
.endm
|
.endm
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
* Copy data from IO memory space to "real" memory space.
|
* Copy data from IO memory space to "real" memory space.
|
||||||
* This needs to be optimized.
|
* This needs to be optimized.
|
||||||
*/
|
*/
|
||||||
void _memcpy_fromio(void *to, void __iomem *from, size_t count)
|
void _memcpy_fromio(void *to, const volatile void __iomem *from, size_t count)
|
||||||
{
|
{
|
||||||
unsigned char *t = to;
|
unsigned char *t = to;
|
||||||
while (count) {
|
while (count) {
|
||||||
|
@ -22,7 +22,7 @@ void _memcpy_fromio(void *to, void __iomem *from, size_t count)
|
||||||
* Copy data from "real" memory space to IO memory space.
|
* Copy data from "real" memory space to IO memory space.
|
||||||
* This needs to be optimized.
|
* This needs to be optimized.
|
||||||
*/
|
*/
|
||||||
void _memcpy_toio(void __iomem *to, const void *from, size_t count)
|
void _memcpy_toio(volatile void __iomem *to, const void *from, size_t count)
|
||||||
{
|
{
|
||||||
const unsigned char *f = from;
|
const unsigned char *f = from;
|
||||||
while (count) {
|
while (count) {
|
||||||
|
@ -37,7 +37,7 @@ void _memcpy_toio(void __iomem *to, const void *from, size_t count)
|
||||||
* "memset" on IO memory space.
|
* "memset" on IO memory space.
|
||||||
* This needs to be optimized.
|
* This needs to be optimized.
|
||||||
*/
|
*/
|
||||||
void _memset_io(void __iomem *dst, int c, size_t count)
|
void _memset_io(volatile void __iomem *dst, int c, size_t count)
|
||||||
{
|
{
|
||||||
while (count) {
|
while (count) {
|
||||||
count--;
|
count--;
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -89,13 +89,6 @@ SECTIONS
|
||||||
*(.got) /* Global offset table */
|
*(.got) /* Global offset table */
|
||||||
}
|
}
|
||||||
|
|
||||||
. = ALIGN(16);
|
|
||||||
__ex_table : { /* Exception table */
|
|
||||||
__start___ex_table = .;
|
|
||||||
*(__ex_table)
|
|
||||||
__stop___ex_table = .;
|
|
||||||
}
|
|
||||||
|
|
||||||
RODATA
|
RODATA
|
||||||
|
|
||||||
_etext = .; /* End of text and rodata section */
|
_etext = .; /* End of text and rodata section */
|
||||||
|
@ -137,6 +130,14 @@ SECTIONS
|
||||||
. = ALIGN(32);
|
. = ALIGN(32);
|
||||||
*(.data.cacheline_aligned)
|
*(.data.cacheline_aligned)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The exception fixup table (might need resorting at runtime)
|
||||||
|
*/
|
||||||
|
. = ALIGN(32);
|
||||||
|
__start___ex_table = .;
|
||||||
|
*(__ex_table)
|
||||||
|
__stop___ex_table = .;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* and the usual data section
|
* and the usual data section
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -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));
|
||||||
}
|
}
|
||||||
|
|
|
@ -67,7 +67,7 @@ static void impd1_setvco(struct clk *clk, struct icst525_vco vco)
|
||||||
}
|
}
|
||||||
writel(0, impd1->base + IMPD1_LOCK);
|
writel(0, impd1->base + IMPD1_LOCK);
|
||||||
|
|
||||||
#if DEBUG
|
#ifdef DEBUG
|
||||||
vco.v = val & 0x1ff;
|
vco.v = val & 0x1ff;
|
||||||
vco.r = (val >> 9) & 0x7f;
|
vco.r = (val >> 9) & 0x7f;
|
||||||
vco.s = (val >> 16) & 7;
|
vco.s = (val >> 16) & 7;
|
||||||
|
@ -427,17 +427,18 @@ static int impd1_probe(struct lm_device *dev)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int impd1_remove_one(struct device *dev, void *data)
|
||||||
|
{
|
||||||
|
device_unregister(dev);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static void impd1_remove(struct lm_device *dev)
|
static void impd1_remove(struct lm_device *dev)
|
||||||
{
|
{
|
||||||
struct impd1_module *impd1 = lm_get_drvdata(dev);
|
struct impd1_module *impd1 = lm_get_drvdata(dev);
|
||||||
struct list_head *l, *n;
|
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
list_for_each_safe(l, n, &dev->dev.children) {
|
device_for_each_child(&dev->dev, NULL, impd1_remove_one);
|
||||||
struct device *d = list_to_dev(l);
|
|
||||||
|
|
||||||
device_unregister(d);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (i = 0; i < ARRAY_SIZE(impd1->vcos); i++)
|
for (i = 0; i < ARRAY_SIZE(impd1->vcos); i++)
|
||||||
clk_unregister(&impd1->vcos[i]);
|
clk_unregister(&impd1->vcos[i]);
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -125,7 +125,8 @@ static int ixp4xx_set_irq_type(unsigned int irq, unsigned int type)
|
||||||
} else if (type & IRQT_LOW) {
|
} else if (type & IRQT_LOW) {
|
||||||
int_style = IXP4XX_GPIO_STYLE_ACTIVE_LOW;
|
int_style = IXP4XX_GPIO_STYLE_ACTIVE_LOW;
|
||||||
irq_type = IXP4XX_IRQ_LEVEL;
|
irq_type = IXP4XX_IRQ_LEVEL;
|
||||||
}
|
} else
|
||||||
|
return -EINVAL;
|
||||||
|
|
||||||
ixp4xx_config_irq(irq, irq_type);
|
ixp4xx_config_irq(irq, irq_type);
|
||||||
|
|
||||||
|
@ -142,6 +143,8 @@ static int ixp4xx_set_irq_type(unsigned int irq, unsigned int type)
|
||||||
|
|
||||||
/* Set the new style */
|
/* Set the new style */
|
||||||
*int_reg |= (int_style << (line * IXP4XX_GPIO_STYLE_SIZE));
|
*int_reg |= (int_style << (line * IXP4XX_GPIO_STYLE_SIZE));
|
||||||
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ixp4xx_irq_mask(unsigned int irq)
|
static void ixp4xx_irq_mask(unsigned int irq)
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -7,12 +7,17 @@
|
||||||
*/
|
*/
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
|
#include <linux/device.h>
|
||||||
|
|
||||||
|
#include <asm/types.h>
|
||||||
|
#include <asm/irq.h>
|
||||||
|
#include <asm/mach-types.h>
|
||||||
#include <asm/hardware.h>
|
#include <asm/hardware.h>
|
||||||
#include <asm/page.h>
|
#include <asm/page.h>
|
||||||
|
|
||||||
|
#include <asm/mach/arch.h>
|
||||||
#include <asm/mach/map.h>
|
#include <asm/mach/map.h>
|
||||||
#include <asm/arch/hardware.h>
|
#include <asm/mach/irq.h>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* IRQ base register
|
* IRQ base register
|
||||||
|
@ -48,6 +53,12 @@ static void l7200_unmask_irq(unsigned int irq)
|
||||||
{
|
{
|
||||||
IRQ_ENABLE = 1 << irq;
|
IRQ_ENABLE = 1 << irq;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static struct irqchip l7200_irq_chip = {
|
||||||
|
.ack = l7200_mask_irq,
|
||||||
|
.mask = l7200_mask_irq,
|
||||||
|
.unmask = l7200_unmask_irq
|
||||||
|
};
|
||||||
|
|
||||||
static void __init l7200_init_irq(void)
|
static void __init l7200_init_irq(void)
|
||||||
{
|
{
|
||||||
|
@ -57,11 +68,9 @@ static void __init l7200_init_irq(void)
|
||||||
FIQ_ENABLECLEAR = 0xffffffff; /* clear all fast interrupt enables */
|
FIQ_ENABLECLEAR = 0xffffffff; /* clear all fast interrupt enables */
|
||||||
|
|
||||||
for (irq = 0; irq < NR_IRQS; irq++) {
|
for (irq = 0; irq < NR_IRQS; irq++) {
|
||||||
irq_desc[irq].valid = 1;
|
set_irq_chip(irq, &l7200_irq_chip);
|
||||||
irq_desc[irq].probe_ok = 1;
|
set_irq_flags(irq, IRQF_VALID);
|
||||||
irq_desc[irq].mask_ack = l7200_mask_irq;
|
set_irq_handler(irq, do_level_IRQ);
|
||||||
irq_desc[irq].mask = l7200_mask_irq;
|
|
||||||
irq_desc[irq].unmask = l7200_unmask_irq;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
init_FIQ();
|
init_FIQ();
|
||||||
|
|
|
@ -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>
|
||||||
|
@ -468,6 +467,7 @@ void corgi_put_hsync(void)
|
||||||
{
|
{
|
||||||
if (get_hsync_time)
|
if (get_hsync_time)
|
||||||
symbol_put(w100fb_get_hsynclen);
|
symbol_put(w100fb_get_hsynclen);
|
||||||
|
get_hsync_time = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void corgi_wait_hsync(void)
|
void corgi_wait_hsync(void)
|
||||||
|
@ -477,20 +477,39 @@ void corgi_wait_hsync(void)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_PXA_SHARP_Cxx00
|
#ifdef CONFIG_PXA_SHARP_Cxx00
|
||||||
|
static struct device *spitz_pxafb_dev;
|
||||||
|
|
||||||
|
static int is_pxafb_device(struct device * dev, void * data)
|
||||||
|
{
|
||||||
|
struct platform_device *pdev = container_of(dev, struct platform_device, dev);
|
||||||
|
|
||||||
|
return (strncmp(pdev->name, "pxa2xx-fb", 9) == 0);
|
||||||
|
}
|
||||||
|
|
||||||
unsigned long spitz_get_hsync_len(void)
|
unsigned long spitz_get_hsync_len(void)
|
||||||
{
|
{
|
||||||
|
#ifdef CONFIG_FB_PXA
|
||||||
|
if (!spitz_pxafb_dev) {
|
||||||
|
spitz_pxafb_dev = bus_find_device(&platform_bus_type, NULL, NULL, is_pxafb_device);
|
||||||
|
if (!spitz_pxafb_dev)
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
if (!get_hsync_time)
|
if (!get_hsync_time)
|
||||||
get_hsync_time = symbol_get(pxafb_get_hsync_time);
|
get_hsync_time = symbol_get(pxafb_get_hsync_time);
|
||||||
if (!get_hsync_time)
|
if (!get_hsync_time)
|
||||||
|
#endif
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
return pxafb_get_hsync_time(&pxafb_device.dev);
|
return pxafb_get_hsync_time(spitz_pxafb_dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
void spitz_put_hsync(void)
|
void spitz_put_hsync(void)
|
||||||
{
|
{
|
||||||
|
put_device(spitz_pxafb_dev);
|
||||||
if (get_hsync_time)
|
if (get_hsync_time)
|
||||||
symbol_put(pxafb_get_hsync_time);
|
symbol_put(pxafb_get_hsync_time);
|
||||||
|
spitz_pxafb_dev = NULL;
|
||||||
|
get_hsync_time = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void spitz_wait_hsync(void)
|
void spitz_wait_hsync(void)
|
||||||
|
|
|
@ -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"
|
||||||
|
|
||||||
|
@ -207,6 +208,11 @@ static struct platform_device pxafb_device = {
|
||||||
.resource = pxafb_resources,
|
.resource = pxafb_resources,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
void __init set_pxa_fb_parent(struct device *parent_dev)
|
||||||
|
{
|
||||||
|
pxafb_device.dev.parent = parent_dev;
|
||||||
|
}
|
||||||
|
|
||||||
static struct platform_device ffuart_device = {
|
static struct platform_device ffuart_device = {
|
||||||
.name = "pxa2xx-uart",
|
.name = "pxa2xx-uart",
|
||||||
.id = 0,
|
.id = 0,
|
||||||
|
@ -244,6 +250,25 @@ void __init pxa_set_i2c_info(struct i2c_pxa_platform_data *info)
|
||||||
i2c_device.dev.platform_data = info;
|
i2c_device.dev.platform_data = info;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static struct resource i2s_resources[] = {
|
||||||
|
{
|
||||||
|
.start = 0x40400000,
|
||||||
|
.end = 0x40400083,
|
||||||
|
.flags = IORESOURCE_MEM,
|
||||||
|
}, {
|
||||||
|
.start = IRQ_I2S,
|
||||||
|
.end = IRQ_I2S,
|
||||||
|
.flags = IORESOURCE_IRQ,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct platform_device i2s_device = {
|
||||||
|
.name = "pxa2xx-i2s",
|
||||||
|
.id = -1,
|
||||||
|
.resource = i2c_resources,
|
||||||
|
.num_resources = ARRAY_SIZE(i2s_resources),
|
||||||
|
};
|
||||||
|
|
||||||
static struct platform_device *devices[] __initdata = {
|
static struct platform_device *devices[] __initdata = {
|
||||||
&pxamci_device,
|
&pxamci_device,
|
||||||
&udc_device,
|
&udc_device,
|
||||||
|
@ -252,6 +277,7 @@ static struct platform_device *devices[] __initdata = {
|
||||||
&btuart_device,
|
&btuart_device,
|
||||||
&stuart_device,
|
&stuart_device,
|
||||||
&i2c_device,
|
&i2c_device,
|
||||||
|
&i2s_device,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int __init pxa_init(void)
|
static int __init pxa_init(void)
|
||||||
|
|
|
@ -36,7 +36,6 @@
|
||||||
#include <asm/arch/irq.h>
|
#include <asm/arch/irq.h>
|
||||||
#include <asm/arch/mmc.h>
|
#include <asm/arch/mmc.h>
|
||||||
#include <asm/arch/udc.h>
|
#include <asm/arch/udc.h>
|
||||||
#include <asm/arch/ohci.h>
|
|
||||||
#include <asm/arch/pxafb.h>
|
#include <asm/arch/pxafb.h>
|
||||||
#include <asm/arch/akita.h>
|
#include <asm/arch/akita.h>
|
||||||
#include <asm/arch/spitz.h>
|
#include <asm/arch/spitz.h>
|
||||||
|
@ -304,7 +303,6 @@ static struct platform_device *devices[] __initdata = {
|
||||||
&spitzkbd_device,
|
&spitzkbd_device,
|
||||||
&spitzts_device,
|
&spitzts_device,
|
||||||
&spitzbl_device,
|
&spitzbl_device,
|
||||||
&spitzbattery_device,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static void __init common_init(void)
|
static void __init common_init(void)
|
||||||
|
@ -328,7 +326,7 @@ static void __init common_init(void)
|
||||||
|
|
||||||
platform_add_devices(devices, ARRAY_SIZE(devices));
|
platform_add_devices(devices, ARRAY_SIZE(devices));
|
||||||
pxa_set_mci_info(&spitz_mci_platform_data);
|
pxa_set_mci_info(&spitz_mci_platform_data);
|
||||||
pxafb_device.dev.parent = &spitzssp_device.dev;
|
set_pxa_fb_parent(&spitzssp_device.dev);
|
||||||
set_pxa_fb_info(&spitz_pxafb_info);
|
set_pxa_fb_info(&spitz_pxafb_info);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -12,6 +12,7 @@ config MACH_ANUBIS
|
||||||
config ARCH_BAST
|
config ARCH_BAST
|
||||||
bool "Simtec Electronics BAST (EB2410ITX)"
|
bool "Simtec Electronics BAST (EB2410ITX)"
|
||||||
select CPU_S3C2410
|
select CPU_S3C2410
|
||||||
|
select ISA
|
||||||
help
|
help
|
||||||
Say Y here if you are using the Simtec Electronics EB2410ITX
|
Say Y here if you are using the Simtec Electronics EB2410ITX
|
||||||
development board (also known as BAST)
|
development board (also known as BAST)
|
||||||
|
|
|
@ -98,7 +98,10 @@ struct clk *clk_get(struct device *dev, const char *id)
|
||||||
struct clk *clk = ERR_PTR(-ENOENT);
|
struct clk *clk = ERR_PTR(-ENOENT);
|
||||||
int idno;
|
int idno;
|
||||||
|
|
||||||
idno = (dev == NULL) ? -1 : to_platform_device(dev)->id;
|
if (dev == NULL || dev->bus != &platform_bus_type)
|
||||||
|
idno = -1;
|
||||||
|
else
|
||||||
|
idno = to_platform_device(dev)->id;
|
||||||
|
|
||||||
down(&clocks_sem);
|
down(&clocks_sem);
|
||||||
|
|
||||||
|
|
|
@ -125,7 +125,7 @@ static int external_map[] = { 2 };
|
||||||
static int chip0_map[] = { 0 };
|
static int chip0_map[] = { 0 };
|
||||||
static int chip1_map[] = { 1 };
|
static int chip1_map[] = { 1 };
|
||||||
|
|
||||||
struct mtd_partition anubis_default_nand_part[] = {
|
static struct mtd_partition anubis_default_nand_part[] = {
|
||||||
[0] = {
|
[0] = {
|
||||||
.name = "Boot Agent",
|
.name = "Boot Agent",
|
||||||
.size = SZ_16K,
|
.size = SZ_16K,
|
||||||
|
|
|
@ -230,7 +230,7 @@ static int chip0_map[] = { 1 };
|
||||||
static int chip1_map[] = { 2 };
|
static int chip1_map[] = { 2 };
|
||||||
static int chip2_map[] = { 3 };
|
static int chip2_map[] = { 3 };
|
||||||
|
|
||||||
struct mtd_partition bast_default_nand_part[] = {
|
static struct mtd_partition bast_default_nand_part[] = {
|
||||||
[0] = {
|
[0] = {
|
||||||
.name = "Boot Agent",
|
.name = "Boot Agent",
|
||||||
.size = SZ_16K,
|
.size = SZ_16K,
|
||||||
|
@ -307,9 +307,9 @@ static void bast_nand_select(struct s3c2410_nand_set *set, int slot)
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct s3c2410_platform_nand bast_nand_info = {
|
static struct s3c2410_platform_nand bast_nand_info = {
|
||||||
.tacls = 40,
|
.tacls = 30,
|
||||||
.twrph0 = 80,
|
.twrph0 = 60,
|
||||||
.twrph1 = 80,
|
.twrph1 = 60,
|
||||||
.nr_sets = ARRAY_SIZE(bast_nand_sets),
|
.nr_sets = ARRAY_SIZE(bast_nand_sets),
|
||||||
.sets = bast_nand_sets,
|
.sets = bast_nand_sets,
|
||||||
.select_chip = bast_nand_select,
|
.select_chip = bast_nand_select,
|
||||||
|
@ -340,7 +340,7 @@ static struct resource bast_dm9k_resource[] = {
|
||||||
* better IO routines can be written and tested
|
* better IO routines can be written and tested
|
||||||
*/
|
*/
|
||||||
|
|
||||||
struct dm9000_plat_data bast_dm9k_platdata = {
|
static struct dm9000_plat_data bast_dm9k_platdata = {
|
||||||
.flags = DM9000_PLATF_16BITONLY
|
.flags = DM9000_PLATF_16BITONLY
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -288,7 +288,7 @@ static struct resource vr1000_dm9k1_resource[] = {
|
||||||
* better IO routines can be written and tested
|
* better IO routines can be written and tested
|
||||||
*/
|
*/
|
||||||
|
|
||||||
struct dm9000_plat_data vr1000_dm9k_platdata = {
|
static struct dm9000_plat_data vr1000_dm9k_platdata = {
|
||||||
.flags = DM9000_PLATF_16BITONLY,
|
.flags = DM9000_PLATF_16BITONLY,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -125,9 +125,6 @@ static struct platform_device *uart_devices[] __initdata = {
|
||||||
&s3c_uart2
|
&s3c_uart2
|
||||||
};
|
};
|
||||||
|
|
||||||
/* store our uart devices for the serial driver console */
|
|
||||||
struct platform_device *s3c2410_uart_devices[3];
|
|
||||||
|
|
||||||
static int s3c2410_uart_count = 0;
|
static int s3c2410_uart_count = 0;
|
||||||
|
|
||||||
/* uart registration process */
|
/* uart registration process */
|
||||||
|
|
|
@ -151,7 +151,7 @@ void __init s3c2440_init_uarts(struct s3c2410_uartcfg *cfg, int no)
|
||||||
|
|
||||||
#ifdef CONFIG_PM
|
#ifdef CONFIG_PM
|
||||||
|
|
||||||
struct sleep_save s3c2440_sleep[] = {
|
static struct sleep_save s3c2440_sleep[] = {
|
||||||
SAVE_ITEM(S3C2440_DSC0),
|
SAVE_ITEM(S3C2440_DSC0),
|
||||||
SAVE_ITEM(S3C2440_DSC1),
|
SAVE_ITEM(S3C2440_DSC1),
|
||||||
SAVE_ITEM(S3C2440_GPJDAT),
|
SAVE_ITEM(S3C2440_GPJDAT),
|
||||||
|
@ -260,7 +260,7 @@ void __init s3c2440_init_clocks(int xtal)
|
||||||
* as a driver which may support both 2410 and 2440 may try and use it.
|
* as a driver which may support both 2410 and 2440 may try and use it.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int __init s3c2440_core_init(void)
|
static int __init s3c2440_core_init(void)
|
||||||
{
|
{
|
||||||
return sysdev_class_register(&s3c2440_sysclass);
|
return sysdev_class_register(&s3c2440_sysclass);
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,6 +38,7 @@
|
||||||
#include <asm/hardware/clock.h>
|
#include <asm/hardware/clock.h>
|
||||||
|
|
||||||
#include "clock.h"
|
#include "clock.h"
|
||||||
|
#include "cpu.h"
|
||||||
|
|
||||||
static unsigned long timer_startval;
|
static unsigned long timer_startval;
|
||||||
static unsigned long timer_usec_ticks;
|
static unsigned long timer_usec_ticks;
|
||||||
|
|
|
@ -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
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -111,7 +111,7 @@ proc_alignment_read(char *page, char **start, off_t off, int count, int *eof,
|
||||||
}
|
}
|
||||||
|
|
||||||
static int proc_alignment_write(struct file *file, const char __user *buffer,
|
static int proc_alignment_write(struct file *file, const char __user *buffer,
|
||||||
unsigned long count, void *data)
|
unsigned long count, void *data)
|
||||||
{
|
{
|
||||||
char mode;
|
char mode;
|
||||||
|
|
||||||
|
@ -119,7 +119,7 @@ static int proc_alignment_write(struct file *file, const char __user *buffer,
|
||||||
if (get_user(mode, buffer))
|
if (get_user(mode, buffer))
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
if (mode >= '0' && mode <= '5')
|
if (mode >= '0' && mode <= '5')
|
||||||
ai_usermode = mode - '0';
|
ai_usermode = mode - '0';
|
||||||
}
|
}
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
@ -262,7 +262,7 @@ union offset_union {
|
||||||
goto fault; \
|
goto fault; \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
#define put32_unaligned_check(val,addr) \
|
#define put32_unaligned_check(val,addr) \
|
||||||
__put32_unaligned_check("strb", val, addr)
|
__put32_unaligned_check("strb", val, addr)
|
||||||
|
|
||||||
#define put32t_unaligned_check(val,addr) \
|
#define put32t_unaligned_check(val,addr) \
|
||||||
|
@ -306,19 +306,19 @@ do_alignment_ldrhstrh(unsigned long addr, unsigned long instr, struct pt_regs *r
|
||||||
return TYPE_LDST;
|
return TYPE_LDST;
|
||||||
|
|
||||||
user:
|
user:
|
||||||
if (LDST_L_BIT(instr)) {
|
if (LDST_L_BIT(instr)) {
|
||||||
unsigned long val;
|
unsigned long val;
|
||||||
get16t_unaligned_check(val, addr);
|
get16t_unaligned_check(val, addr);
|
||||||
|
|
||||||
/* signed half-word? */
|
/* signed half-word? */
|
||||||
if (instr & 0x40)
|
if (instr & 0x40)
|
||||||
val = (signed long)((signed short) val);
|
val = (signed long)((signed short) val);
|
||||||
|
|
||||||
regs->uregs[rd] = val;
|
regs->uregs[rd] = val;
|
||||||
} else
|
} else
|
||||||
put16t_unaligned_check(regs->uregs[rd], addr);
|
put16t_unaligned_check(regs->uregs[rd], addr);
|
||||||
|
|
||||||
return TYPE_LDST;
|
return TYPE_LDST;
|
||||||
|
|
||||||
fault:
|
fault:
|
||||||
return TYPE_FAULT;
|
return TYPE_FAULT;
|
||||||
|
@ -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))
|
||||||
|
@ -339,11 +342,11 @@ do_alignment_ldrdstrd(unsigned long addr, unsigned long instr,
|
||||||
unsigned long val;
|
unsigned long val;
|
||||||
get32_unaligned_check(val, addr);
|
get32_unaligned_check(val, addr);
|
||||||
regs->uregs[rd] = val;
|
regs->uregs[rd] = val;
|
||||||
get32_unaligned_check(val, addr+4);
|
get32_unaligned_check(val, addr + 4);
|
||||||
regs->uregs[rd+1] = val;
|
regs->uregs[rd + 1] = val;
|
||||||
} else {
|
} else {
|
||||||
put32_unaligned_check(regs->uregs[rd], addr);
|
put32_unaligned_check(regs->uregs[rd], addr);
|
||||||
put32_unaligned_check(regs->uregs[rd+1], addr+4);
|
put32_unaligned_check(regs->uregs[rd + 1], addr + 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
return TYPE_LDST;
|
return TYPE_LDST;
|
||||||
|
@ -353,15 +356,16 @@ do_alignment_ldrdstrd(unsigned long addr, unsigned long instr,
|
||||||
unsigned long val;
|
unsigned long val;
|
||||||
get32t_unaligned_check(val, addr);
|
get32t_unaligned_check(val, addr);
|
||||||
regs->uregs[rd] = val;
|
regs->uregs[rd] = val;
|
||||||
get32t_unaligned_check(val, addr+4);
|
get32t_unaligned_check(val, addr + 4);
|
||||||
regs->uregs[rd+1] = val;
|
regs->uregs[rd + 1] = val;
|
||||||
} else {
|
} else {
|
||||||
put32t_unaligned_check(regs->uregs[rd], addr);
|
put32t_unaligned_check(regs->uregs[rd], addr);
|
||||||
put32t_unaligned_check(regs->uregs[rd+1], addr+4);
|
put32t_unaligned_check(regs->uregs[rd + 1], addr + 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
return TYPE_LDST;
|
return TYPE_LDST;
|
||||||
|
bad:
|
||||||
|
return TYPE_ERROR;
|
||||||
fault:
|
fault:
|
||||||
return TYPE_FAULT;
|
return TYPE_FAULT;
|
||||||
}
|
}
|
||||||
|
@ -439,7 +443,7 @@ do_alignment_ldmstm(unsigned long addr, unsigned long instr, struct pt_regs *reg
|
||||||
if (LDST_P_EQ_U(instr)) /* U = P */
|
if (LDST_P_EQ_U(instr)) /* U = P */
|
||||||
eaddr += 4;
|
eaddr += 4;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* For alignment faults on the ARM922T/ARM920T the MMU makes
|
* For alignment faults on the ARM922T/ARM920T the MMU makes
|
||||||
* the FSR (and hence addr) equal to the updated base address
|
* the FSR (and hence addr) equal to the updated base address
|
||||||
* of the multiple access rather than the restored value.
|
* of the multiple access rather than the restored value.
|
||||||
|
@ -566,7 +570,7 @@ thumb2arm(u16 tinstr)
|
||||||
/* 6.5.1 Format 3: */
|
/* 6.5.1 Format 3: */
|
||||||
case 0x4800 >> 11: /* 7.1.28 LDR(3) */
|
case 0x4800 >> 11: /* 7.1.28 LDR(3) */
|
||||||
/* NOTE: This case is not technically possible. We're
|
/* NOTE: This case is not technically possible. We're
|
||||||
* loading 32-bit memory data via PC relative
|
* loading 32-bit memory data via PC relative
|
||||||
* addressing mode. So we can and should eliminate
|
* addressing mode. So we can and should eliminate
|
||||||
* this case. But I'll leave it here for now.
|
* this case. But I'll leave it here for now.
|
||||||
*/
|
*/
|
||||||
|
@ -638,7 +642,7 @@ do_alignment(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
|
||||||
|
|
||||||
if (fault) {
|
if (fault) {
|
||||||
type = TYPE_FAULT;
|
type = TYPE_FAULT;
|
||||||
goto bad_or_fault;
|
goto bad_or_fault;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (user_mode(regs))
|
if (user_mode(regs))
|
||||||
|
@ -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
|
||||||
|
|
|
@ -75,7 +75,7 @@ static struct vm_region consistent_head = {
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct vm_region *
|
static struct vm_region *
|
||||||
vm_region_alloc(struct vm_region *head, size_t size, int gfp)
|
vm_region_alloc(struct vm_region *head, size_t size, gfp_t gfp)
|
||||||
{
|
{
|
||||||
unsigned long addr = head->vm_start, end = head->vm_end - size;
|
unsigned long addr = head->vm_start, end = head->vm_end - size;
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
@ -133,7 +133,7 @@ static struct vm_region *vm_region_find(struct vm_region *head, unsigned long ad
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static void *
|
static void *
|
||||||
__dma_alloc(struct device *dev, size_t size, dma_addr_t *handle, int gfp,
|
__dma_alloc(struct device *dev, size_t size, dma_addr_t *handle, gfp_t gfp,
|
||||||
pgprot_t prot)
|
pgprot_t prot)
|
||||||
{
|
{
|
||||||
struct page *page;
|
struct page *page;
|
||||||
|
@ -251,7 +251,7 @@ __dma_alloc(struct device *dev, size_t size, dma_addr_t *handle, int gfp,
|
||||||
* virtual and bus address for that space.
|
* virtual and bus address for that space.
|
||||||
*/
|
*/
|
||||||
void *
|
void *
|
||||||
dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *handle, int gfp)
|
dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *handle, gfp_t gfp)
|
||||||
{
|
{
|
||||||
return __dma_alloc(dev, size, handle, gfp,
|
return __dma_alloc(dev, size, handle, gfp,
|
||||||
pgprot_noncached(pgprot_kernel));
|
pgprot_noncached(pgprot_kernel));
|
||||||
|
@ -263,7 +263,7 @@ EXPORT_SYMBOL(dma_alloc_coherent);
|
||||||
* dma_alloc_coherent above.
|
* dma_alloc_coherent above.
|
||||||
*/
|
*/
|
||||||
void *
|
void *
|
||||||
dma_alloc_writecombine(struct device *dev, size_t size, dma_addr_t *handle, int gfp)
|
dma_alloc_writecombine(struct device *dev, size_t size, dma_addr_t *handle, gfp_t gfp)
|
||||||
{
|
{
|
||||||
return __dma_alloc(dev, size, handle, gfp,
|
return __dma_alloc(dev, size, handle, gfp,
|
||||||
pgprot_writecombine(pgprot_kernel));
|
pgprot_writecombine(pgprot_kernel));
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -55,7 +55,14 @@ ENTRY(cpu_v6_proc_init)
|
||||||
mov pc, lr
|
mov pc, lr
|
||||||
|
|
||||||
ENTRY(cpu_v6_proc_fin)
|
ENTRY(cpu_v6_proc_fin)
|
||||||
mov pc, lr
|
stmfd sp!, {lr}
|
||||||
|
cpsid if @ disable interrupts
|
||||||
|
bl v6_flush_kern_cache_all
|
||||||
|
mrc p15, 0, r0, c1, c0, 0 @ ctrl register
|
||||||
|
bic r0, r0, #0x1000 @ ...i............
|
||||||
|
bic r0, r0, #0x0006 @ .............ca.
|
||||||
|
mcr p15, 0, r0, c1, c0, 0 @ disable caches
|
||||||
|
ldmfd sp!, {pc}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* cpu_v6_reset(loc)
|
* cpu_v6_reset(loc)
|
||||||
|
|
|
@ -31,11 +31,6 @@
|
||||||
#include <linux/string.h>
|
#include <linux/string.h>
|
||||||
#include <asm/system.h>
|
#include <asm/system.h>
|
||||||
|
|
||||||
/* forward declarations */
|
|
||||||
unsigned int EmulateCPDO(const unsigned int);
|
|
||||||
unsigned int EmulateCPDT(const unsigned int);
|
|
||||||
unsigned int EmulateCPRT(const unsigned int);
|
|
||||||
|
|
||||||
/* Reset the FPA11 chip. Called to initialize and reset the emulator. */
|
/* Reset the FPA11 chip. Called to initialize and reset the emulator. */
|
||||||
static void resetFPA11(void)
|
static void resetFPA11(void)
|
||||||
{
|
{
|
||||||
|
|
|
@ -95,4 +95,24 @@ extern int8 SetRoundingMode(const unsigned int);
|
||||||
extern int8 SetRoundingPrecision(const unsigned int);
|
extern int8 SetRoundingPrecision(const unsigned int);
|
||||||
extern void nwfpe_init_fpa(union fp_state *fp);
|
extern void nwfpe_init_fpa(union fp_state *fp);
|
||||||
|
|
||||||
|
extern unsigned int EmulateAll(unsigned int opcode);
|
||||||
|
|
||||||
|
extern unsigned int EmulateCPDT(const unsigned int opcode);
|
||||||
|
extern unsigned int EmulateCPDO(const unsigned int opcode);
|
||||||
|
extern unsigned int EmulateCPRT(const unsigned int opcode);
|
||||||
|
|
||||||
|
/* fpa11_cpdt.c */
|
||||||
|
extern unsigned int PerformLDF(const unsigned int opcode);
|
||||||
|
extern unsigned int PerformSTF(const unsigned int opcode);
|
||||||
|
extern unsigned int PerformLFM(const unsigned int opcode);
|
||||||
|
extern unsigned int PerformSFM(const unsigned int opcode);
|
||||||
|
|
||||||
|
/* single_cpdo.c */
|
||||||
|
|
||||||
|
extern unsigned int SingleCPDO(struct roundingData *roundData,
|
||||||
|
const unsigned int opcode, FPREG * rFd);
|
||||||
|
/* double_cpdo.c */
|
||||||
|
extern unsigned int DoubleCPDO(struct roundingData *roundData,
|
||||||
|
const unsigned int opcode, FPREG * rFd);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -26,12 +26,11 @@
|
||||||
#include "fpa11.inl"
|
#include "fpa11.inl"
|
||||||
#include "fpmodule.h"
|
#include "fpmodule.h"
|
||||||
#include "fpmodule.inl"
|
#include "fpmodule.inl"
|
||||||
|
#include "softfloat.h"
|
||||||
|
|
||||||
#ifdef CONFIG_FPE_NWFPE_XP
|
#ifdef CONFIG_FPE_NWFPE_XP
|
||||||
extern flag floatx80_is_nan(floatx80);
|
extern flag floatx80_is_nan(floatx80);
|
||||||
#endif
|
#endif
|
||||||
extern flag float64_is_nan(float64);
|
|
||||||
extern flag float32_is_nan(float32);
|
|
||||||
|
|
||||||
unsigned int PerformFLT(const unsigned int opcode);
|
unsigned int PerformFLT(const unsigned int opcode);
|
||||||
unsigned int PerformFIX(const unsigned int opcode);
|
unsigned int PerformFIX(const unsigned int opcode);
|
||||||
|
|
|
@ -476,4 +476,10 @@ static inline unsigned int getDestinationSize(const unsigned int opcode)
|
||||||
return (nRc);
|
return (nRc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern unsigned int checkCondition(const unsigned int opcode,
|
||||||
|
const unsigned int ccodes);
|
||||||
|
|
||||||
|
extern const float64 float64Constant[];
|
||||||
|
extern const float32 float32Constant[];
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -265,4 +265,7 @@ static inline flag float64_lt_nocheck(float64 a, float64 b)
|
||||||
return (a != b) && (aSign ^ (a < b));
|
return (a != b) && (aSign ^ (a < b));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern flag float32_is_nan( float32 a );
|
||||||
|
extern flag float64_is_nan( float64 a );
|
||||||
|
|
||||||
#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;
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
#include <linux/cpumask.h>
|
#include <linux/cpumask.h>
|
||||||
#include <linux/interrupt.h>
|
#include <linux/interrupt.h>
|
||||||
|
#include <linux/module.h>
|
||||||
|
|
||||||
#define IPI_SCHEDULE 1
|
#define IPI_SCHEDULE 1
|
||||||
#define IPI_CALL 2
|
#define IPI_CALL 2
|
||||||
|
@ -28,6 +29,7 @@ spinlock_t cris_atomic_locks[] = { [0 ... LOCK_COUNT - 1] = SPIN_LOCK_UNLOCKED};
|
||||||
/* CPU masks */
|
/* CPU masks */
|
||||||
cpumask_t cpu_online_map = CPU_MASK_NONE;
|
cpumask_t cpu_online_map = CPU_MASK_NONE;
|
||||||
cpumask_t phys_cpu_present_map = CPU_MASK_NONE;
|
cpumask_t phys_cpu_present_map = CPU_MASK_NONE;
|
||||||
|
EXPORT_SYMBOL(phys_cpu_present_map);
|
||||||
|
|
||||||
/* Variables used during SMP boot */
|
/* Variables used during SMP boot */
|
||||||
volatile int cpu_now_booting = 0;
|
volatile int cpu_now_booting = 0;
|
||||||
|
|
|
@ -33,7 +33,7 @@ struct dma_alloc_record {
|
||||||
static DEFINE_SPINLOCK(dma_alloc_lock);
|
static DEFINE_SPINLOCK(dma_alloc_lock);
|
||||||
static LIST_HEAD(dma_alloc_list);
|
static LIST_HEAD(dma_alloc_list);
|
||||||
|
|
||||||
void *dma_alloc_coherent(struct device *hwdev, size_t size, dma_addr_t *dma_handle, int gfp)
|
void *dma_alloc_coherent(struct device *hwdev, size_t size, dma_addr_t *dma_handle, gfp_t gfp)
|
||||||
{
|
{
|
||||||
struct dma_alloc_record *new;
|
struct dma_alloc_record *new;
|
||||||
struct list_head *this = &dma_alloc_list;
|
struct list_head *this = &dma_alloc_list;
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
#include <linux/highmem.h>
|
#include <linux/highmem.h>
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
|
|
||||||
void *dma_alloc_coherent(struct device *hwdev, size_t size, dma_addr_t *dma_handle, int gfp)
|
void *dma_alloc_coherent(struct device *hwdev, size_t size, dma_addr_t *dma_handle, gfp_t gfp)
|
||||||
{
|
{
|
||||||
void *ret;
|
void *ret;
|
||||||
|
|
||||||
|
|
|
@ -81,7 +81,7 @@ static int map_page(unsigned long va, unsigned long pa, pgprot_t prot)
|
||||||
* portions of the kernel with single large page TLB entries, and
|
* portions of the kernel with single large page TLB entries, and
|
||||||
* still get unique uncached pages for consistent DMA.
|
* still get unique uncached pages for consistent DMA.
|
||||||
*/
|
*/
|
||||||
void *consistent_alloc(int gfp, size_t size, dma_addr_t *dma_handle)
|
void *consistent_alloc(gfp_t gfp, size_t size, dma_addr_t *dma_handle)
|
||||||
{
|
{
|
||||||
struct vm_struct *area;
|
struct vm_struct *area;
|
||||||
unsigned long page, va, pa;
|
unsigned long page, va, pa;
|
||||||
|
|
|
@ -27,15 +27,14 @@
|
||||||
#include <linux/config.h>
|
#include <linux/config.h>
|
||||||
#include <linux/acpi.h>
|
#include <linux/acpi.h>
|
||||||
#include <linux/efi.h>
|
#include <linux/efi.h>
|
||||||
#include <linux/irq.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
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
|
|
||||||
#include <linux/mm.h>
|
#include <linux/mm.h>
|
||||||
#include <linux/irq.h>
|
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
#include <linux/bootmem.h>
|
#include <linux/bootmem.h>
|
||||||
#include <linux/smp_lock.h>
|
#include <linux/smp_lock.h>
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -44,7 +44,7 @@
|
||||||
|
|
||||||
#define PFX "powernow-k8: "
|
#define PFX "powernow-k8: "
|
||||||
#define BFX PFX "BIOS error: "
|
#define BFX PFX "BIOS error: "
|
||||||
#define VERSION "version 1.50.3"
|
#define VERSION "version 1.50.4"
|
||||||
#include "powernow-k8.h"
|
#include "powernow-k8.h"
|
||||||
|
|
||||||
/* serialize freq changes */
|
/* serialize freq changes */
|
||||||
|
@ -111,8 +111,8 @@ static int query_current_values_with_pending_wait(struct powernow_k8_data *data)
|
||||||
u32 i = 0;
|
u32 i = 0;
|
||||||
|
|
||||||
do {
|
do {
|
||||||
if (i++ > 0x1000000) {
|
if (i++ > 10000) {
|
||||||
printk(KERN_ERR PFX "detected change pending stuck\n");
|
dprintk("detected change pending stuck\n");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
rdmsr(MSR_FIDVID_STATUS, lo, hi);
|
rdmsr(MSR_FIDVID_STATUS, lo, hi);
|
||||||
|
@ -159,6 +159,7 @@ static int write_new_fid(struct powernow_k8_data *data, u32 fid)
|
||||||
{
|
{
|
||||||
u32 lo;
|
u32 lo;
|
||||||
u32 savevid = data->currvid;
|
u32 savevid = data->currvid;
|
||||||
|
u32 i = 0;
|
||||||
|
|
||||||
if ((fid & INVALID_FID_MASK) || (data->currvid & INVALID_VID_MASK)) {
|
if ((fid & INVALID_FID_MASK) || (data->currvid & INVALID_VID_MASK)) {
|
||||||
printk(KERN_ERR PFX "internal error - overflow on fid write\n");
|
printk(KERN_ERR PFX "internal error - overflow on fid write\n");
|
||||||
|
@ -170,10 +171,13 @@ static int write_new_fid(struct powernow_k8_data *data, u32 fid)
|
||||||
dprintk("writing fid 0x%x, lo 0x%x, hi 0x%x\n",
|
dprintk("writing fid 0x%x, lo 0x%x, hi 0x%x\n",
|
||||||
fid, lo, data->plllock * PLL_LOCK_CONVERSION);
|
fid, lo, data->plllock * PLL_LOCK_CONVERSION);
|
||||||
|
|
||||||
wrmsr(MSR_FIDVID_CTL, lo, data->plllock * PLL_LOCK_CONVERSION);
|
do {
|
||||||
|
wrmsr(MSR_FIDVID_CTL, lo, data->plllock * PLL_LOCK_CONVERSION);
|
||||||
if (query_current_values_with_pending_wait(data))
|
if (i++ > 100) {
|
||||||
return 1;
|
printk(KERN_ERR PFX "internal error - pending bit very stuck - no further pstate changes possible\n");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
} while (query_current_values_with_pending_wait(data));
|
||||||
|
|
||||||
count_off_irt(data);
|
count_off_irt(data);
|
||||||
|
|
||||||
|
@ -197,6 +201,7 @@ static int write_new_vid(struct powernow_k8_data *data, u32 vid)
|
||||||
{
|
{
|
||||||
u32 lo;
|
u32 lo;
|
||||||
u32 savefid = data->currfid;
|
u32 savefid = data->currfid;
|
||||||
|
int i = 0;
|
||||||
|
|
||||||
if ((data->currfid & INVALID_FID_MASK) || (vid & INVALID_VID_MASK)) {
|
if ((data->currfid & INVALID_FID_MASK) || (vid & INVALID_VID_MASK)) {
|
||||||
printk(KERN_ERR PFX "internal error - overflow on vid write\n");
|
printk(KERN_ERR PFX "internal error - overflow on vid write\n");
|
||||||
|
@ -208,10 +213,13 @@ static int write_new_vid(struct powernow_k8_data *data, u32 vid)
|
||||||
dprintk("writing vid 0x%x, lo 0x%x, hi 0x%x\n",
|
dprintk("writing vid 0x%x, lo 0x%x, hi 0x%x\n",
|
||||||
vid, lo, STOP_GRANT_5NS);
|
vid, lo, STOP_GRANT_5NS);
|
||||||
|
|
||||||
wrmsr(MSR_FIDVID_CTL, lo, STOP_GRANT_5NS);
|
do {
|
||||||
|
wrmsr(MSR_FIDVID_CTL, lo, STOP_GRANT_5NS);
|
||||||
if (query_current_values_with_pending_wait(data))
|
if (i++ > 100) {
|
||||||
return 1;
|
printk(KERN_ERR PFX "internal error - pending bit very stuck - no further pstate changes possible\n");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
} while (query_current_values_with_pending_wait(data));
|
||||||
|
|
||||||
if (savefid != data->currfid) {
|
if (savefid != data->currfid) {
|
||||||
printk(KERN_ERR PFX "fid changed on vid trans, old 0x%x new 0x%x\n",
|
printk(KERN_ERR PFX "fid changed on vid trans, old 0x%x new 0x%x\n",
|
||||||
|
|
|
@ -7,7 +7,6 @@
|
||||||
#include <linux/types.h>
|
#include <linux/types.h>
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
#include <linux/config.h>
|
#include <linux/config.h>
|
||||||
#include <linux/irq.h>
|
|
||||||
#include <linux/interrupt.h>
|
#include <linux/interrupt.h>
|
||||||
#include <linux/smp.h>
|
#include <linux/smp.h>
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,6 @@
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
#include <linux/jiffies.h>
|
#include <linux/jiffies.h>
|
||||||
#include <linux/config.h>
|
#include <linux/config.h>
|
||||||
#include <linux/irq.h>
|
|
||||||
#include <linux/workqueue.h>
|
#include <linux/workqueue.h>
|
||||||
#include <linux/interrupt.h>
|
#include <linux/interrupt.h>
|
||||||
#include <linux/smp.h>
|
#include <linux/smp.h>
|
||||||
|
|
|
@ -6,7 +6,6 @@
|
||||||
#include <linux/types.h>
|
#include <linux/types.h>
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
#include <linux/config.h>
|
#include <linux/config.h>
|
||||||
#include <linux/irq.h>
|
|
||||||
#include <linux/interrupt.h>
|
#include <linux/interrupt.h>
|
||||||
#include <linux/smp.h>
|
#include <linux/smp.h>
|
||||||
|
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue