forked from Minki/linux
Merge rsync://www.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
This commit is contained in:
commit
e0d21d9cca
@ -57,7 +57,7 @@ o e2fsprogs 1.29 # tune2fs
|
||||
o jfsutils 1.1.3 # fsck.jfs -V
|
||||
o reiserfsprogs 3.6.3 # reiserfsck -V 2>&1|grep reiserfsprogs
|
||||
o xfsprogs 2.6.0 # xfs_db -V
|
||||
o pcmciautils 001
|
||||
o pcmciautils 004
|
||||
o pcmcia-cs 3.1.21 # cardmgr -V
|
||||
o quota-tools 3.09 # quota -V
|
||||
o PPP 2.4.0 # pppd --version
|
||||
|
@ -13,14 +13,17 @@ different way: With the help of a dvb-usb-framework.
|
||||
The framework provides generic functions (mostly kernel API calls), such as:
|
||||
|
||||
- Transport Stream URB handling in conjunction with dvb-demux-feed-control
|
||||
(bulk and isoc (TODO) are supported)
|
||||
(bulk and isoc are supported)
|
||||
- registering the device for the DVB-API
|
||||
- registering an I2C-adapter if applicable
|
||||
- remote-control/input-device handling
|
||||
- firmware requesting and loading (currently just for the Cypress USB
|
||||
controller)
|
||||
controllers)
|
||||
- other functions/methods which can be shared by several drivers (such as
|
||||
functions for bulk-control-commands)
|
||||
- TODO: a I2C-chunker. It creates device-specific chunks of register-accesses
|
||||
depending on length of a register and the number of values that can be
|
||||
multi-written and multi-read.
|
||||
|
||||
The source code of the particular DVB USB devices does just the communication
|
||||
with the device via the bus. The connection between the DVB-API-functionality
|
||||
@ -36,93 +39,18 @@ the dvb-usb-lib.
|
||||
TODO: dynamic enabling and disabling of the pid-filter in regard to number of
|
||||
feeds requested.
|
||||
|
||||
Supported devices USB1.1
|
||||
Supported devices
|
||||
========================
|
||||
|
||||
Produced and reselled by Twinhan:
|
||||
---------------------------------
|
||||
- TwinhanDTV USB-Ter DVB-T Device (VP7041)
|
||||
http://www.twinhan.com/product_terrestrial_3.asp
|
||||
See the LinuxTV DVB Wiki at www.linuxtv.org for a complete list of
|
||||
cards/drivers/firmwares:
|
||||
|
||||
- TwinhanDTV Magic Box (VP7041e)
|
||||
http://www.twinhan.com/product_terrestrial_4.asp
|
||||
|
||||
- HAMA DVB-T USB device
|
||||
http://www.hama.de/portal/articleId*110620/action*2598
|
||||
|
||||
- CTS Portable (Chinese Television System) (2)
|
||||
http://www.2cts.tv/ctsportable/
|
||||
|
||||
- Unknown USB DVB-T device with vendor ID Hyper-Paltek
|
||||
|
||||
|
||||
Produced and reselled by KWorld:
|
||||
--------------------------------
|
||||
- KWorld V-Stream XPERT DTV DVB-T USB
|
||||
http://www.kworld.com.tw/en/product/DVBT-USB/DVBT-USB.html
|
||||
|
||||
- JetWay DTV DVB-T USB
|
||||
http://www.jetway.com.tw/evisn/product/lcd-tv/DVT-USB/dtv-usb.htm
|
||||
|
||||
- ADSTech Instant TV DVB-T USB
|
||||
http://www.adstech.com/products/PTV-333/intro/PTV-333_intro.asp?pid=PTV-333
|
||||
|
||||
|
||||
Others:
|
||||
-------
|
||||
- Ultima Electronic/Artec T1 USB TVBOX (AN2135, AN2235, AN2235 with Panasonic Tuner)
|
||||
http://82.161.246.249/products-tvbox.html
|
||||
|
||||
- Compro Videomate DVB-U2000 - DVB-T USB (2)
|
||||
http://www.comprousa.com/products/vmu2000.htm
|
||||
|
||||
- Grandtec USB DVB-T
|
||||
http://www.grand.com.tw/
|
||||
|
||||
- AVerMedia AverTV DVBT USB
|
||||
http://www.avermedia.com/
|
||||
|
||||
- DiBcom USB DVB-T reference device (non-public)
|
||||
|
||||
|
||||
Supported devices USB2.0-only
|
||||
=============================
|
||||
- Twinhan MagicBox II
|
||||
http://www.twinhan.com/product_terrestrial_7.asp
|
||||
|
||||
- TwinhanDTV Alpha
|
||||
http://www.twinhan.com/product_terrestrial_8.asp
|
||||
|
||||
- DigitalNow TinyUSB 2 DVB-t Receiver
|
||||
http://www.digitalnow.com.au/DigitalNow%20tinyUSB2%20Specifications.html
|
||||
|
||||
- Hanftek UMT-010
|
||||
http://www.globalsources.com/si/6008819757082/ProductDetail/Digital-TV/product_id-100046529
|
||||
|
||||
|
||||
Supported devices USB2.0 and USB1.1
|
||||
=============================
|
||||
- Typhoon/Yakumo/HAMA/Yuan DVB-T mobile USB2.0
|
||||
http://www.yakumo.de/produkte/index.php?pid=1&ag=DVB-T
|
||||
http://www.yuan.com.tw/en/products/vdo_ub300.html
|
||||
http://www.hama.de/portal/articleId*114663/action*2563
|
||||
http://www.anubisline.com/english/articlec.asp?id=50502&catid=002
|
||||
|
||||
- Artec T1 USB TVBOX (FX2) (2)
|
||||
|
||||
- Hauppauge WinTV NOVA-T USB2
|
||||
http://www.hauppauge.com/
|
||||
|
||||
- KWorld/ADSTech Instant DVB-T USB2.0 (DiB3000M-B)
|
||||
|
||||
- DiBcom USB2.0 DVB-T reference device (non-public)
|
||||
|
||||
- AVerMedia AverTV A800 DVB-T USB2.0
|
||||
|
||||
1) It is working almost - work-in-progress.
|
||||
2) No test reports received yet.
|
||||
http://www.linuxtv.org/wiki/index.php/DVB_USB
|
||||
|
||||
0. History & News:
|
||||
2005-06-30 - added support for WideView WT-220U (Thanks to Steve Chang)
|
||||
2005-05-30 - added basic isochronous support to the dvb-usb-framework
|
||||
added support for Conexant Hybrid reference design and Nebula DigiTV USB
|
||||
2005-04-17 - all dibusb devices ported to make use of the dvb-usb-framework
|
||||
2005-04-02 - re-enabled and improved remote control code.
|
||||
2005-03-31 - ported the Yakumo/Hama/Typhoon DVB-T USB2.0 device to dvb-usb.
|
||||
@ -137,7 +65,7 @@ Supported devices USB2.0 and USB1.1
|
||||
2005-01-31 - distorted streaming is gone for USB1.1 devices
|
||||
2005-01-13 - moved the mirrored pid_filter_table back to dvb-dibusb
|
||||
- first almost working version for HanfTek UMT-010
|
||||
- found out, that Yakumo/HAMA/Typhoon are predessors of the HanfTek UMT-010
|
||||
- found out, that Yakumo/HAMA/Typhoon are predecessors of the HanfTek UMT-010
|
||||
2005-01-10 - refactoring completed, now everything is very delightful
|
||||
- tuner quirks for some weird devices (Artec T1 AN2235 device has sometimes a
|
||||
Panasonic Tuner assembled). Tunerprobing implemented. Thanks a lot to Gunnar Wittich.
|
||||
@ -187,25 +115,13 @@ Supported devices USB2.0 and USB1.1
|
||||
1. How to use?
|
||||
1.1. Firmware
|
||||
|
||||
Most of the USB drivers need to download a firmware to start working.
|
||||
Most of the USB drivers need to download a firmware to the device before start
|
||||
working.
|
||||
|
||||
for USB1.1 (AN2135) you need: dvb-usb-dibusb-5.0.0.11.fw
|
||||
for USB2.0 HanfTek: dvb-usb-umt-010-02.fw
|
||||
for USB2.0 DiBcom: dvb-usb-dibusb-6.0.0.8.fw
|
||||
for USB2.0 AVerMedia AverTV DVB-T USB2: dvb-usb-avertv-a800-01.fw
|
||||
for USB2.0 TwinhanDTV Alpha/MagicBox II: dvb-usb-vp7045-01.fw
|
||||
Have a look at the Wikipage for the DVB-USB-drivers to find out, which firmware
|
||||
you need for your device:
|
||||
|
||||
The files can be found on http://www.linuxtv.org/download/firmware/ .
|
||||
|
||||
We do not have the permission (yet) to publish the following firmware-files.
|
||||
You'll need to extract them from the windows drivers.
|
||||
|
||||
You should be able to use "get_dvb_firmware dvb-usb" to get the firmware:
|
||||
|
||||
for USB1.1 (AN2235) (a few Artec T1 devices): dvb-usb-dibusb-an2235-01.fw
|
||||
for USB2.0 Hauppauge: dvb-usb-nova-t-usb2-01.fw
|
||||
for USB2.0 ADSTech/Kworld USB2.0: dvb-usb-adstech-usb2-01.fw
|
||||
for USB2.0 Yakumo/Typhoon/Hama: dvb-usb-dtt200u-01.fw
|
||||
http://www.linuxtv.org/wiki/index.php/DVB_USB
|
||||
|
||||
1.2. Compiling
|
||||
|
||||
@ -289,6 +205,9 @@ Patches, comments and suggestions are very very welcome.
|
||||
Gunnar Wittich and Joachim von Caron for their trust for providing
|
||||
root-shells on their machines to implement support for new devices.
|
||||
|
||||
Allan Third and Michael Hutchinson for their help to write the Nebula
|
||||
digitv-driver.
|
||||
|
||||
Glen Harris for bringing up, that there is a new dibusb-device and Jiun-Kuei
|
||||
Jung from AVerMedia who kindly provided a special firmware to get the device
|
||||
up and running in Linux.
|
||||
@ -296,7 +215,12 @@ Patches, comments and suggestions are very very welcome.
|
||||
Jennifer Chen, Jeff and Jack from Twinhan for kindly supporting by
|
||||
writing the vp7045-driver.
|
||||
|
||||
Some guys on the linux-dvb mailing list for encouraging me
|
||||
Steve Chang from WideView for providing information for new devices and
|
||||
firmware files.
|
||||
|
||||
Michael Paxton for submitting remote control keymaps.
|
||||
|
||||
Some guys on the linux-dvb mailing list for encouraging me.
|
||||
|
||||
Peter Schildmann >peter.schildmann-nospam-at-web.de< for his
|
||||
user-level firmware loader, which saves a lot of time
|
||||
@ -305,4 +229,4 @@ Patches, comments and suggestions are very very welcome.
|
||||
Ulf Hermenau for helping me out with traditional chinese.
|
||||
|
||||
André Smoktun and Christian Frömmel for supporting me with
|
||||
hardware and listening to my problems very patient.
|
||||
hardware and listening to my problems very patiently.
|
||||
|
@ -1,66 +1,55 @@
|
||||
How to get the Nebula, PCTV and Twinhan DST cards working
|
||||
=========================================================
|
||||
How to get the Nebula Electronics DigiTV, Pinnacle PCTV Sat, Twinhan DST + clones working
|
||||
=========================================================================================
|
||||
|
||||
This class of cards has a bt878a as the PCI interface, and
|
||||
require the bttv driver.
|
||||
1) General information
|
||||
======================
|
||||
|
||||
Please pay close attention to the warning about the bttv module
|
||||
options below for the DST card.
|
||||
This class of cards has a bt878a chip as the PCI interface.
|
||||
The different card drivers require the bttv driver to provide the means
|
||||
to access the i2c bus and the gpio pins of the bt8xx chipset.
|
||||
|
||||
1) General informations
|
||||
=======================
|
||||
2) Compilation rules for Kernel >= 2.6.12
|
||||
=========================================
|
||||
|
||||
These drivers require the bttv driver to provide the means to access
|
||||
the i2c bus and the gpio pins of the bt8xx chipset.
|
||||
Enable the following options:
|
||||
|
||||
Because of this, you need to enable
|
||||
"Device drivers" => "Multimedia devices"
|
||||
=> "Video For Linux" => "BT848 Video For Linux"
|
||||
|
||||
Furthermore you need to enable
|
||||
=> "Video For Linux" => "BT848 Video For Linux"
|
||||
"Device drivers" => "Multimedia devices" => "Digital Video Broadcasting Devices"
|
||||
=> "DVB for Linux" "DVB Core Support" "Nebula/Pinnacle PCTV/TwinHan PCI Cards"
|
||||
=> "DVB for Linux" "DVB Core Support" "Nebula/Pinnacle PCTV/TwinHan PCI Cards"
|
||||
|
||||
2) Loading Modules
|
||||
==================
|
||||
3) Loading Modules, described by two approaches
|
||||
===============================================
|
||||
|
||||
In general you need to load the bttv driver, which will handle the gpio and
|
||||
i2c communication for us, plus the common dvb-bt8xx device driver.
|
||||
The frontends for Nebula (nxt6000), Pinnacle PCTV (cx24110) and
|
||||
TwinHan (dst) are loaded automatically by the dvb-bt8xx device driver.
|
||||
i2c communication for us, plus the common dvb-bt8xx device driver,
|
||||
which is called the backend.
|
||||
The frontends for Nebula DigiTV (nxt6000), Pinnacle PCTV Sat (cx24110),
|
||||
TwinHan DST + clones (dst and dst-ca) are loaded automatically by the backend.
|
||||
For further details about TwinHan DST + clones see /Documentation/dvb/ci.txt.
|
||||
|
||||
3a) Nebula / Pinnacle PCTV
|
||||
3a) The manual approach
|
||||
-----------------------
|
||||
|
||||
Loading modules:
|
||||
modprobe bttv
|
||||
modprobe dvb-bt8xx
|
||||
|
||||
Unloading modules:
|
||||
modprobe -r dvb-bt8xx
|
||||
modprobe -r bttv
|
||||
|
||||
3b) The automatic approach
|
||||
--------------------------
|
||||
|
||||
$ modprobe bttv (normally bttv is being loaded automatically by kmod)
|
||||
$ modprobe dvb-bt8xx (or just place dvb-bt8xx in /etc/modules for automatic loading)
|
||||
If not already done by installation, place a line either in
|
||||
/etc/modules.conf or in /etc/modprobe.conf containing this text:
|
||||
alias char-major-81 bttv
|
||||
|
||||
Then place a line in /etc/modules containing this text:
|
||||
dvb-bt8xx
|
||||
|
||||
3b) TwinHan and Clones
|
||||
--------------------------
|
||||
|
||||
$ modprobe bttv i2c_hw=1 card=0x71
|
||||
$ modprobe dvb-bt8xx
|
||||
$ modprobe dst
|
||||
|
||||
The value 0x71 will override the PCI type detection for dvb-bt8xx,
|
||||
which is necessary for TwinHan cards.
|
||||
|
||||
If you're having an older card (blue color circuit) and card=0x71 locks
|
||||
your machine, try using 0x68, too. If that does not work, ask on the
|
||||
mailing list.
|
||||
|
||||
The DST module takes a couple of useful parameters:
|
||||
|
||||
a. verbose takes values 0 to 5. These values control the verbosity level.
|
||||
b. debug takes values 0 and 1. You can either disable or enable debugging.
|
||||
c. dst_addons takes values 0 and 0x20:
|
||||
- A value of 0 means it is a FTA card.
|
||||
- A value of 0x20 means it has a Conditional Access slot.
|
||||
|
||||
The autodetected values are determined by the "response string"
|
||||
of the card, which you can see in your logs:
|
||||
e.g.: dst_get_device_id: Recognize [DSTMCI]
|
||||
Reboot your system and have fun!
|
||||
|
||||
--
|
||||
Authors: Richard Walker, Jamie Honan, Michael Hunold, Manu Abraham, Uwe Bugla
|
||||
|
@ -119,3 +119,19 @@ Why: Match the other drivers' name for the same function, duplicate names
|
||||
will be available until removal of old names.
|
||||
Who: Grant Coady <gcoady@gmail.com>
|
||||
|
||||
---------------------------
|
||||
|
||||
What: PCMCIA control ioctl (needed for pcmcia-cs [cardmgr, cardctl])
|
||||
When: November 2005
|
||||
Files: drivers/pcmcia/: pcmcia_ioctl.c
|
||||
Why: With the 16-bit PCMCIA subsystem now behaving (almost) like a
|
||||
normal hotpluggable bus, and with it using the default kernel
|
||||
infrastructure (hotplug, driver core, sysfs) keeping the PCMCIA
|
||||
control ioctl needed by cardmgr and cardctl from pcmcia-cs is
|
||||
unnecessary, and makes further cleanups and integration of the
|
||||
PCMCIA subsystem into the Linux kernel device driver model more
|
||||
difficult. The features provided by cardmgr and cardctl are either
|
||||
handled by the kernel itself now or are available in the new
|
||||
pcmciautils package available at
|
||||
http://kernel.org/pub/linux/utils/kernel/pcmcia/
|
||||
Who: Dominik Brodowski <linux@brodo.de>
|
||||
|
69
Documentation/infiniband/user_verbs.txt
Normal file
69
Documentation/infiniband/user_verbs.txt
Normal file
@ -0,0 +1,69 @@
|
||||
USERSPACE VERBS ACCESS
|
||||
|
||||
The ib_uverbs module, built by enabling CONFIG_INFINIBAND_USER_VERBS,
|
||||
enables direct userspace access to IB hardware via "verbs," as
|
||||
described in chapter 11 of the InfiniBand Architecture Specification.
|
||||
|
||||
To use the verbs, the libibverbs library, available from
|
||||
<http://openib.org/>, is required. libibverbs contains a
|
||||
device-independent API for using the ib_uverbs interface.
|
||||
libibverbs also requires appropriate device-dependent kernel and
|
||||
userspace driver for your InfiniBand hardware. For example, to use
|
||||
a Mellanox HCA, you will need the ib_mthca kernel module and the
|
||||
libmthca userspace driver be installed.
|
||||
|
||||
User-kernel communication
|
||||
|
||||
Userspace communicates with the kernel for slow path, resource
|
||||
management operations via the /dev/infiniband/uverbsN character
|
||||
devices. Fast path operations are typically performed by writing
|
||||
directly to hardware registers mmap()ed into userspace, with no
|
||||
system call or context switch into the kernel.
|
||||
|
||||
Commands are sent to the kernel via write()s on these device files.
|
||||
The ABI is defined in drivers/infiniband/include/ib_user_verbs.h.
|
||||
The structs for commands that require a response from the kernel
|
||||
contain a 64-bit field used to pass a pointer to an output buffer.
|
||||
Status is returned to userspace as the return value of the write()
|
||||
system call.
|
||||
|
||||
Resource management
|
||||
|
||||
Since creation and destruction of all IB resources is done by
|
||||
commands passed through a file descriptor, the kernel can keep track
|
||||
of which resources are attached to a given userspace context. The
|
||||
ib_uverbs module maintains idr tables that are used to translate
|
||||
between kernel pointers and opaque userspace handles, so that kernel
|
||||
pointers are never exposed to userspace and userspace cannot trick
|
||||
the kernel into following a bogus pointer.
|
||||
|
||||
This also allows the kernel to clean up when a process exits and
|
||||
prevent one process from touching another process's resources.
|
||||
|
||||
Memory pinning
|
||||
|
||||
Direct userspace I/O requires that memory regions that are potential
|
||||
I/O targets be kept resident at the same physical address. The
|
||||
ib_uverbs module manages pinning and unpinning memory regions via
|
||||
get_user_pages() and put_page() calls. It also accounts for the
|
||||
amount of memory pinned in the process's locked_vm, and checks that
|
||||
unprivileged processes do not exceed their RLIMIT_MEMLOCK limit.
|
||||
|
||||
Pages that are pinned multiple times are counted each time they are
|
||||
pinned, so the value of locked_vm may be an overestimate of the
|
||||
number of pages pinned by a process.
|
||||
|
||||
/dev files
|
||||
|
||||
To create the appropriate character device files automatically with
|
||||
udev, a rule like
|
||||
|
||||
KERNEL="uverbs*", NAME="infiniband/%k"
|
||||
|
||||
can be used. This will create device nodes named
|
||||
|
||||
/dev/infiniband/uverbs0
|
||||
|
||||
and so on. Since the InfiniBand userspace verbs should be safe for
|
||||
use by non-privileged processes, it may be useful to add an
|
||||
appropriate MODE or GROUP to the udev rule.
|
145
Documentation/networking/fib_trie.txt
Normal file
145
Documentation/networking/fib_trie.txt
Normal file
@ -0,0 +1,145 @@
|
||||
LC-trie implementation notes.
|
||||
|
||||
Node types
|
||||
----------
|
||||
leaf
|
||||
An end node with data. This has a copy of the relevant key, along
|
||||
with 'hlist' with routing table entries sorted by prefix length.
|
||||
See struct leaf and struct leaf_info.
|
||||
|
||||
trie node or tnode
|
||||
An internal node, holding an array of child (leaf or tnode) pointers,
|
||||
indexed through a subset of the key. See Level Compression.
|
||||
|
||||
A few concepts explained
|
||||
------------------------
|
||||
Bits (tnode)
|
||||
The number of bits in the key segment used for indexing into the
|
||||
child array - the "child index". See Level Compression.
|
||||
|
||||
Pos (tnode)
|
||||
The position (in the key) of the key segment used for indexing into
|
||||
the child array. See Path Compression.
|
||||
|
||||
Path Compression / skipped bits
|
||||
Any given tnode is linked to from the child array of its parent, using
|
||||
a segment of the key specified by the parent's "pos" and "bits"
|
||||
In certain cases, this tnode's own "pos" will not be immediately
|
||||
adjacent to the parent (pos+bits), but there will be some bits
|
||||
in the key skipped over because they represent a single path with no
|
||||
deviations. These "skipped bits" constitute Path Compression.
|
||||
Note that the search algorithm will simply skip over these bits when
|
||||
searching, making it necessary to save the keys in the leaves to
|
||||
verify that they actually do match the key we are searching for.
|
||||
|
||||
Level Compression / child arrays
|
||||
the trie is kept level balanced moving, under certain conditions, the
|
||||
children of a full child (see "full_children") up one level, so that
|
||||
instead of a pure binary tree, each internal node ("tnode") may
|
||||
contain an arbitrarily large array of links to several children.
|
||||
Conversely, a tnode with a mostly empty child array (see empty_children)
|
||||
may be "halved", having some of its children moved downwards one level,
|
||||
in order to avoid ever-increasing child arrays.
|
||||
|
||||
empty_children
|
||||
the number of positions in the child array of a given tnode that are
|
||||
NULL.
|
||||
|
||||
full_children
|
||||
the number of children of a given tnode that aren't path compressed.
|
||||
(in other words, they aren't NULL or leaves and their "pos" is equal
|
||||
to this tnode's "pos"+"bits").
|
||||
|
||||
(The word "full" here is used more in the sense of "complete" than
|
||||
as the opposite of "empty", which might be a tad confusing.)
|
||||
|
||||
Comments
|
||||
---------
|
||||
|
||||
We have tried to keep the structure of the code as close to fib_hash as
|
||||
possible to allow verification and help up reviewing.
|
||||
|
||||
fib_find_node()
|
||||
A good start for understanding this code. This function implements a
|
||||
straightforward trie lookup.
|
||||
|
||||
fib_insert_node()
|
||||
Inserts a new leaf node in the trie. This is bit more complicated than
|
||||
fib_find_node(). Inserting a new node means we might have to run the
|
||||
level compression algorithm on part of the trie.
|
||||
|
||||
trie_leaf_remove()
|
||||
Looks up a key, deletes it and runs the level compression algorithm.
|
||||
|
||||
trie_rebalance()
|
||||
The key function for the dynamic trie after any change in the trie
|
||||
it is run to optimize and reorganize. Tt will walk the trie upwards
|
||||
towards the root from a given tnode, doing a resize() at each step
|
||||
to implement level compression.
|
||||
|
||||
resize()
|
||||
Analyzes a tnode and optimizes the child array size by either inflating
|
||||
or shrinking it repeatedly until it fullfills the criteria for optimal
|
||||
level compression. This part follows the original paper pretty closely
|
||||
and there may be some room for experimentation here.
|
||||
|
||||
inflate()
|
||||
Doubles the size of the child array within a tnode. Used by resize().
|
||||
|
||||
halve()
|
||||
Halves the size of the child array within a tnode - the inverse of
|
||||
inflate(). Used by resize();
|
||||
|
||||
fn_trie_insert(), fn_trie_delete(), fn_trie_select_default()
|
||||
The route manipulation functions. Should conform pretty closely to the
|
||||
corresponding functions in fib_hash.
|
||||
|
||||
fn_trie_flush()
|
||||
This walks the full trie (using nextleaf()) and searches for empty
|
||||
leaves which have to be removed.
|
||||
|
||||
fn_trie_dump()
|
||||
Dumps the routing table ordered by prefix length. This is somewhat
|
||||
slower than the corresponding fib_hash function, as we have to walk the
|
||||
entire trie for each prefix length. In comparison, fib_hash is organized
|
||||
as one "zone"/hash per prefix length.
|
||||
|
||||
Locking
|
||||
-------
|
||||
|
||||
fib_lock is used for an RW-lock in the same way that this is done in fib_hash.
|
||||
However, the functions are somewhat separated for other possible locking
|
||||
scenarios. It might conceivably be possible to run trie_rebalance via RCU
|
||||
to avoid read_lock in the fn_trie_lookup() function.
|
||||
|
||||
Main lookup mechanism
|
||||
---------------------
|
||||
fn_trie_lookup() is the main lookup function.
|
||||
|
||||
The lookup is in its simplest form just like fib_find_node(). We descend the
|
||||
trie, key segment by key segment, until we find a leaf. check_leaf() does
|
||||
the fib_semantic_match in the leaf's sorted prefix hlist.
|
||||
|
||||
If we find a match, we are done.
|
||||
|
||||
If we don't find a match, we enter prefix matching mode. The prefix length,
|
||||
starting out at the same as the key length, is reduced one step at a time,
|
||||
and we backtrack upwards through the trie trying to find a longest matching
|
||||
prefix. The goal is always to reach a leaf and get a positive result from the
|
||||
fib_semantic_match mechanism.
|
||||
|
||||
Inside each tnode, the search for longest matching prefix consists of searching
|
||||
through the child array, chopping off (zeroing) the least significant "1" of
|
||||
the child index until we find a match or the child index consists of nothing but
|
||||
zeros.
|
||||
|
||||
At this point we backtrack (t->stats.backtrack++) up the trie, continuing to
|
||||
chop off part of the key in order to find the longest matching prefix.
|
||||
|
||||
At this point we will repeatedly descend subtries to look for a match, and there
|
||||
are some optimizations available that can provide us with "shortcuts" to avoid
|
||||
descending into dead ends. Look for "HL_OPTIMIZE" sections in the code.
|
||||
|
||||
To alleviate any doubts about the correctness of the route selection process,
|
||||
a new netlink operation has been added. Look for NETLINK_FIB_LOOKUP, which
|
||||
gives userland access to fib_lookup().
|
@ -19,9 +19,8 @@ PCMCIA_DEVICE_PROD_ID1("some_string", 0x(hash_of_some_string)),
|
||||
If the hash is incorrect, the kernel will inform you about this in "dmesg"
|
||||
upon module initialization, and tell you of the correct hash.
|
||||
|
||||
You can determine the hash of the product ID strings by running
|
||||
"pcmcia-modalias %n.%m" [%n being replaced with the socket number and %m being
|
||||
replaced with the device function] from pcmciautils. It generates a string
|
||||
You can determine the hash of the product ID strings by catting the file
|
||||
"modalias" in the sysfs directory of the PCMCIA device. It generates a string
|
||||
in the following form:
|
||||
pcmcia:m0149cC1ABf06pfn00fn00pa725B842DpbF1EFEE84pc0877B627pd00000000
|
||||
|
||||
|
@ -117,6 +117,7 @@ IBM Thinkpad X40 Type 2371-7JG s3_bios,s3_mode (4)
|
||||
Medion MD4220 ??? (*)
|
||||
Samsung P35 vbetool needed (6)
|
||||
Sharp PC-AR10 (ATI rage) none (1)
|
||||
Sony Vaio PCG-C1VRX/K s3_bios (2)
|
||||
Sony Vaio PCG-F403 ??? (*)
|
||||
Sony Vaio PCG-N505SN ??? (*)
|
||||
Sony Vaio vgn-s260 X or boot-radeon can init it (5)
|
||||
|
@ -370,6 +370,10 @@ W: http://www.thekelleys.org.uk/atmel
|
||||
W: http://atmelwlandriver.sourceforge.net/
|
||||
S: Maintained
|
||||
|
||||
AUDIT SUBSYSTEM
|
||||
L: linux-audit@redhat.com (subscribers-only)
|
||||
S: Maintained
|
||||
|
||||
AX.25 NETWORK LAYER
|
||||
P: Ralf Baechle
|
||||
M: ralf@linux-mips.org
|
||||
@ -1803,8 +1807,9 @@ M: greg@kroah.com
|
||||
S: Maintained
|
||||
|
||||
PCMCIA SUBSYSTEM
|
||||
P: Linux PCMCIA Team
|
||||
L: http://lists.infradead.org/mailman/listinfo/linux-pcmcia
|
||||
S: Unmaintained
|
||||
S: Maintained
|
||||
|
||||
PCNET32 NETWORK DRIVER
|
||||
P: Thomas Bogendörfer
|
||||
@ -2161,7 +2166,7 @@ UltraSPARC (sparc64):
|
||||
P: David S. Miller
|
||||
M: davem@davemloft.net
|
||||
P: Eddie C. Dost
|
||||
M: ecd@skynet.be
|
||||
M: ecd@brainaid.de
|
||||
P: Jakub Jelinek
|
||||
M: jj@sunsite.ms.mff.cuni.cz
|
||||
P: Anton Blanchard
|
||||
|
8
Makefile
8
Makefile
@ -1,7 +1,7 @@
|
||||
VERSION = 2
|
||||
PATCHLEVEL = 6
|
||||
SUBLEVEL = 13
|
||||
EXTRAVERSION =-rc1
|
||||
EXTRAVERSION =-rc2
|
||||
NAME=Woozy Numbat
|
||||
|
||||
# *DOCUMENTATION*
|
||||
@ -792,6 +792,9 @@ export CPPFLAGS_vmlinux.lds += -P -C -U$(ARCH)
|
||||
$(Q)$(MAKE) $(build)=$(@D) $@
|
||||
%.o: %.c scripts FORCE
|
||||
$(Q)$(MAKE) $(build)=$(@D) $@
|
||||
%.ko: scripts FORCE
|
||||
$(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) $(build)=$(@D) $(@:.ko=.o)
|
||||
$(Q)$(MAKE) -rR -f $(srctree)/scripts/Makefile.modpost
|
||||
%/: scripts prepare FORCE
|
||||
$(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) $(build)=$(@D)
|
||||
%.lst: %.c scripts FORCE
|
||||
@ -1033,6 +1036,7 @@ help:
|
||||
@echo ' modules_install - Install all modules'
|
||||
@echo ' dir/ - Build all files in dir and below'
|
||||
@echo ' dir/file.[ois] - Build specified target only'
|
||||
@echo ' dir/file.ko - Build module including final link'
|
||||
@echo ' rpm - Build a kernel as an RPM package'
|
||||
@echo ' tags/TAGS - Generate tags file for editors'
|
||||
@echo ' cscope - Generate cscope index'
|
||||
@ -1149,7 +1153,7 @@ endif # KBUILD_EXTMOD
|
||||
#(which is the most common case IMHO) to avoid unneeded clutter in the big tags file.
|
||||
#Adding $(srctree) adds about 20M on i386 to the size of the output file!
|
||||
|
||||
ifeq ($(KBUILD_OUTPUT),)
|
||||
ifeq ($(src),$(obj))
|
||||
__srctree =
|
||||
else
|
||||
__srctree = $(srctree)/
|
||||
|
@ -55,6 +55,8 @@ do_entInt(unsigned long type, unsigned long vector,
|
||||
#ifdef CONFIG_SMP
|
||||
{
|
||||
long cpu;
|
||||
|
||||
local_irq_disable();
|
||||
smp_percpu_timer_interrupt(regs);
|
||||
cpu = smp_processor_id();
|
||||
if (cpu != boot_cpuid) {
|
||||
|
@ -240,7 +240,7 @@ do_entIF(unsigned long type, struct pt_regs *regs)
|
||||
siginfo_t info;
|
||||
int signo, code;
|
||||
|
||||
if (regs->ps == 0) {
|
||||
if ((regs->ps & ~IPL_MAX) == 0) {
|
||||
if (type == 1) {
|
||||
const unsigned int *data
|
||||
= (const unsigned int *) regs->pc;
|
||||
|
@ -223,7 +223,9 @@ source "arch/arm/mach-pxa/Kconfig"
|
||||
|
||||
source "arch/arm/mach-sa1100/Kconfig"
|
||||
|
||||
source "arch/arm/mach-omap/Kconfig"
|
||||
source "arch/arm/plat-omap/Kconfig"
|
||||
|
||||
source "arch/arm/mach-omap1/Kconfig"
|
||||
|
||||
source "arch/arm/mach-s3c2410/Kconfig"
|
||||
|
||||
@ -514,7 +516,7 @@ config XIP_PHYS_ADDR
|
||||
|
||||
endmenu
|
||||
|
||||
if (ARCH_SA1100 || ARCH_INTEGRATOR)
|
||||
if (ARCH_SA1100 || ARCH_INTEGRATOR || ARCH_OMAP1)
|
||||
|
||||
menu "CPU Frequency scaling"
|
||||
|
||||
|
@ -56,7 +56,7 @@ tune-$(CONFIG_CPU_XSCALE) :=$(call cc-option,-mtune=xscale,-mtune=strongarm110)
|
||||
tune-$(CONFIG_CPU_V6) :=-mtune=strongarm
|
||||
|
||||
# Need -Uarm for gcc < 3.x
|
||||
CFLAGS_ABI :=$(call cc-option,-mapcs-32,-mabi=apcs-gnu)
|
||||
CFLAGS_ABI :=$(call cc-option,-mapcs-32,-mabi=apcs-gnu) $(call cc-option,-mno-thumb-interwork,)
|
||||
CFLAGS +=$(CFLAGS_ABI) $(arch-y) $(tune-y) $(call cc-option,-mshort-load-bytes,$(call cc-option,-malignment-traps,)) -msoft-float -Uarm
|
||||
AFLAGS +=$(CFLAGS_ABI) $(arch-y) $(tune-y) -msoft-float
|
||||
|
||||
@ -91,7 +91,8 @@ textaddr-$(CONFIG_ARCH_FORTUNET) := 0xc0008000
|
||||
machine-$(CONFIG_ARCH_IOP3XX) := iop3xx
|
||||
machine-$(CONFIG_ARCH_IXP4XX) := ixp4xx
|
||||
machine-$(CONFIG_ARCH_IXP2000) := ixp2000
|
||||
machine-$(CONFIG_ARCH_OMAP) := omap
|
||||
machine-$(CONFIG_ARCH_OMAP1) := omap1
|
||||
incdir-$(CONFIG_ARCH_OMAP) := omap
|
||||
machine-$(CONFIG_ARCH_S3C2410) := s3c2410
|
||||
machine-$(CONFIG_ARCH_LH7A40X) := lh7a40x
|
||||
machine-$(CONFIG_ARCH_VERSATILE) := versatile
|
||||
@ -142,6 +143,9 @@ core-$(CONFIG_FPE_NWFPE) += arch/arm/nwfpe/
|
||||
core-$(CONFIG_FPE_FASTFPE) += $(FASTFPE_OBJ)
|
||||
core-$(CONFIG_VFP) += arch/arm/vfp/
|
||||
|
||||
# If we have a common platform directory, then include it in the build.
|
||||
core-$(CONFIG_ARCH_OMAP) += arch/arm/plat-omap/
|
||||
|
||||
drivers-$(CONFIG_OPROFILE) += arch/arm/oprofile/
|
||||
drivers-$(CONFIG_ARCH_CLPS7500) += drivers/acorn/char/
|
||||
drivers-$(CONFIG_ARCH_L7200) += drivers/acorn/char/
|
||||
|
@ -1,7 +1,7 @@
|
||||
#
|
||||
# Automatically generated make config: don't edit
|
||||
# Linux kernel version: 2.6.12-git6
|
||||
# Sat Jun 25 00:57:29 2005
|
||||
# Linux kernel version: 2.6.13-rc2
|
||||
# Thu Jul 7 16:41:21 2005
|
||||
#
|
||||
CONFIG_ARM=y
|
||||
CONFIG_MMU=y
|
||||
@ -137,6 +137,7 @@ CONFIG_PCI_NAMES=y
|
||||
#
|
||||
# CONFIG_SMP 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
|
||||
@ -345,10 +346,9 @@ CONFIG_PACKET_MMAP=y
|
||||
CONFIG_UNIX=y
|
||||
# CONFIG_NET_KEY is not set
|
||||
CONFIG_INET=y
|
||||
CONFIG_IP_FIB_HASH=y
|
||||
# CONFIG_IP_FIB_TRIE is not set
|
||||
# CONFIG_IP_MULTICAST is not set
|
||||
# CONFIG_IP_ADVANCED_ROUTER is not set
|
||||
CONFIG_IP_FIB_HASH=y
|
||||
CONFIG_IP_PNP=y
|
||||
CONFIG_IP_PNP_DHCP=y
|
||||
CONFIG_IP_PNP_BOOTP=y
|
||||
@ -363,17 +363,8 @@ CONFIG_SYN_COOKIES=y
|
||||
# CONFIG_INET_TUNNEL is not set
|
||||
# CONFIG_IP_TCPDIAG is not set
|
||||
# CONFIG_IP_TCPDIAG_IPV6 is not set
|
||||
|
||||
#
|
||||
# TCP congestion control
|
||||
#
|
||||
# CONFIG_TCP_CONG_ADVANCED is not set
|
||||
CONFIG_TCP_CONG_BIC=y
|
||||
CONFIG_TCP_CONG_WESTWOOD=m
|
||||
CONFIG_TCP_CONG_HTCP=m
|
||||
# CONFIG_TCP_CONG_HSTCP is not set
|
||||
# CONFIG_TCP_CONG_HYBLA is not set
|
||||
# CONFIG_TCP_CONG_VEGAS is not set
|
||||
# CONFIG_TCP_CONG_SCALABLE is not set
|
||||
# CONFIG_IPV6 is not set
|
||||
# CONFIG_NETFILTER is not set
|
||||
|
||||
@ -931,4 +922,3 @@ CONFIG_CRC32=y
|
||||
# CONFIG_LIBCRC32C is not set
|
||||
CONFIG_ZLIB_INFLATE=y
|
||||
CONFIG_ZLIB_DEFLATE=y
|
||||
# CONFIG_TEXTSEARCH is not set
|
||||
|
@ -1,7 +1,7 @@
|
||||
#
|
||||
# Automatically generated make config: don't edit
|
||||
# Linux kernel version: 2.6.12-git6
|
||||
# Sat Jun 25 00:58:38 2005
|
||||
# Linux kernel version: 2.6.13-rc2
|
||||
# Thu Jul 7 16:49:01 2005
|
||||
#
|
||||
CONFIG_ARM=y
|
||||
CONFIG_MMU=y
|
||||
@ -138,6 +138,7 @@ CONFIG_PCI_NAMES=y
|
||||
#
|
||||
# CONFIG_SMP 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
|
||||
@ -346,10 +347,9 @@ CONFIG_PACKET_MMAP=y
|
||||
CONFIG_UNIX=y
|
||||
# CONFIG_NET_KEY is not set
|
||||
CONFIG_INET=y
|
||||
CONFIG_IP_FIB_HASH=y
|
||||
# CONFIG_IP_FIB_TRIE is not set
|
||||
# CONFIG_IP_MULTICAST is not set
|
||||
# CONFIG_IP_ADVANCED_ROUTER is not set
|
||||
CONFIG_IP_FIB_HASH=y
|
||||
CONFIG_IP_PNP=y
|
||||
CONFIG_IP_PNP_DHCP=y
|
||||
CONFIG_IP_PNP_BOOTP=y
|
||||
@ -364,17 +364,8 @@ CONFIG_SYN_COOKIES=y
|
||||
# CONFIG_INET_TUNNEL is not set
|
||||
# CONFIG_IP_TCPDIAG is not set
|
||||
# CONFIG_IP_TCPDIAG_IPV6 is not set
|
||||
|
||||
#
|
||||
# TCP congestion control
|
||||
#
|
||||
# CONFIG_TCP_CONG_ADVANCED is not set
|
||||
CONFIG_TCP_CONG_BIC=y
|
||||
CONFIG_TCP_CONG_WESTWOOD=m
|
||||
CONFIG_TCP_CONG_HTCP=m
|
||||
# CONFIG_TCP_CONG_HSTCP is not set
|
||||
# CONFIG_TCP_CONG_HYBLA is not set
|
||||
# CONFIG_TCP_CONG_VEGAS is not set
|
||||
# CONFIG_TCP_CONG_SCALABLE is not set
|
||||
# CONFIG_IPV6 is not set
|
||||
# CONFIG_NETFILTER is not set
|
||||
|
||||
@ -932,4 +923,3 @@ CONFIG_CRC32=y
|
||||
# CONFIG_LIBCRC32C is not set
|
||||
CONFIG_ZLIB_INFLATE=y
|
||||
CONFIG_ZLIB_DEFLATE=y
|
||||
# CONFIG_TEXTSEARCH is not set
|
||||
|
@ -1,7 +1,7 @@
|
||||
#
|
||||
# Automatically generated make config: don't edit
|
||||
# Linux kernel version: 2.6.12-git6
|
||||
# Sat Jun 25 00:59:35 2005
|
||||
# Linux kernel version: 2.6.13-rc2
|
||||
# Thu Jul 7 16:49:08 2005
|
||||
#
|
||||
CONFIG_ARM=y
|
||||
CONFIG_MMU=y
|
||||
@ -138,6 +138,7 @@ CONFIG_PCI_NAMES=y
|
||||
#
|
||||
# CONFIG_SMP 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
|
||||
@ -346,10 +347,9 @@ CONFIG_PACKET_MMAP=y
|
||||
CONFIG_UNIX=y
|
||||
# CONFIG_NET_KEY is not set
|
||||
CONFIG_INET=y
|
||||
CONFIG_IP_FIB_HASH=y
|
||||
# CONFIG_IP_FIB_TRIE is not set
|
||||
# CONFIG_IP_MULTICAST is not set
|
||||
# CONFIG_IP_ADVANCED_ROUTER is not set
|
||||
CONFIG_IP_FIB_HASH=y
|
||||
CONFIG_IP_PNP=y
|
||||
CONFIG_IP_PNP_DHCP=y
|
||||
CONFIG_IP_PNP_BOOTP=y
|
||||
@ -364,17 +364,8 @@ CONFIG_SYN_COOKIES=y
|
||||
# CONFIG_INET_TUNNEL is not set
|
||||
CONFIG_IP_TCPDIAG=y
|
||||
# CONFIG_IP_TCPDIAG_IPV6 is not set
|
||||
|
||||
#
|
||||
# TCP congestion control
|
||||
#
|
||||
# CONFIG_TCP_CONG_ADVANCED is not set
|
||||
CONFIG_TCP_CONG_BIC=y
|
||||
CONFIG_TCP_CONG_WESTWOOD=m
|
||||
CONFIG_TCP_CONG_HTCP=m
|
||||
# CONFIG_TCP_CONG_HSTCP is not set
|
||||
# CONFIG_TCP_CONG_HYBLA is not set
|
||||
# CONFIG_TCP_CONG_VEGAS is not set
|
||||
# CONFIG_TCP_CONG_SCALABLE is not set
|
||||
# CONFIG_IPV6 is not set
|
||||
# CONFIG_NETFILTER is not set
|
||||
|
||||
@ -933,4 +924,3 @@ CONFIG_CRC32=y
|
||||
# CONFIG_LIBCRC32C is not set
|
||||
CONFIG_ZLIB_INFLATE=y
|
||||
CONFIG_ZLIB_DEFLATE=y
|
||||
# CONFIG_TEXTSEARCH is not set
|
||||
|
@ -1,7 +1,7 @@
|
||||
#
|
||||
# Automatically generated make config: don't edit
|
||||
# Linux kernel version: 2.6.12-git6
|
||||
# Sat Jun 25 01:00:27 2005
|
||||
# Linux kernel version: 2.6.13-rc2
|
||||
# Thu Jul 7 16:49:20 2005
|
||||
#
|
||||
CONFIG_ARM=y
|
||||
CONFIG_MMU=y
|
||||
@ -138,6 +138,7 @@ CONFIG_PCI_NAMES=y
|
||||
#
|
||||
# CONFIG_SMP 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
|
||||
@ -346,10 +347,9 @@ CONFIG_PACKET_MMAP=y
|
||||
CONFIG_UNIX=y
|
||||
# CONFIG_NET_KEY is not set
|
||||
CONFIG_INET=y
|
||||
CONFIG_IP_FIB_HASH=y
|
||||
# CONFIG_IP_FIB_TRIE is not set
|
||||
# CONFIG_IP_MULTICAST is not set
|
||||
# CONFIG_IP_ADVANCED_ROUTER is not set
|
||||
CONFIG_IP_FIB_HASH=y
|
||||
CONFIG_IP_PNP=y
|
||||
CONFIG_IP_PNP_DHCP=y
|
||||
CONFIG_IP_PNP_BOOTP=y
|
||||
@ -364,17 +364,8 @@ CONFIG_SYN_COOKIES=y
|
||||
# CONFIG_INET_TUNNEL is not set
|
||||
# CONFIG_IP_TCPDIAG is not set
|
||||
# CONFIG_IP_TCPDIAG_IPV6 is not set
|
||||
|
||||
#
|
||||
# TCP congestion control
|
||||
#
|
||||
# CONFIG_TCP_CONG_ADVANCED is not set
|
||||
CONFIG_TCP_CONG_BIC=y
|
||||
CONFIG_TCP_CONG_WESTWOOD=m
|
||||
CONFIG_TCP_CONG_HTCP=m
|
||||
# CONFIG_TCP_CONG_HSTCP is not set
|
||||
# CONFIG_TCP_CONG_HYBLA is not set
|
||||
# CONFIG_TCP_CONG_VEGAS is not set
|
||||
# CONFIG_TCP_CONG_SCALABLE is not set
|
||||
# CONFIG_IPV6 is not set
|
||||
# CONFIG_NETFILTER is not set
|
||||
|
||||
@ -932,4 +923,3 @@ CONFIG_CRC32=y
|
||||
# CONFIG_LIBCRC32C is not set
|
||||
CONFIG_ZLIB_INFLATE=y
|
||||
CONFIG_ZLIB_DEFLATE=y
|
||||
# CONFIG_TEXTSEARCH is not set
|
||||
|
@ -1,7 +1,7 @@
|
||||
#
|
||||
# Automatically generated make config: don't edit
|
||||
# Linux kernel version: 2.6.12-git6
|
||||
# Sat Jun 25 01:01:18 2005
|
||||
# Linux kernel version: 2.6.13-rc2
|
||||
# Thu Jul 7 16:49:13 2005
|
||||
#
|
||||
CONFIG_ARM=y
|
||||
CONFIG_MMU=y
|
||||
@ -138,6 +138,7 @@ CONFIG_PCI_NAMES=y
|
||||
#
|
||||
# CONFIG_SMP 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
|
||||
@ -346,10 +347,9 @@ CONFIG_PACKET_MMAP=y
|
||||
CONFIG_UNIX=y
|
||||
# CONFIG_NET_KEY is not set
|
||||
CONFIG_INET=y
|
||||
CONFIG_IP_FIB_HASH=y
|
||||
# CONFIG_IP_FIB_TRIE is not set
|
||||
# CONFIG_IP_MULTICAST is not set
|
||||
# CONFIG_IP_ADVANCED_ROUTER is not set
|
||||
CONFIG_IP_FIB_HASH=y
|
||||
CONFIG_IP_PNP=y
|
||||
CONFIG_IP_PNP_DHCP=y
|
||||
CONFIG_IP_PNP_BOOTP=y
|
||||
@ -364,17 +364,8 @@ CONFIG_SYN_COOKIES=y
|
||||
# CONFIG_INET_TUNNEL is not set
|
||||
# CONFIG_IP_TCPDIAG is not set
|
||||
# CONFIG_IP_TCPDIAG_IPV6 is not set
|
||||
|
||||
#
|
||||
# TCP congestion control
|
||||
#
|
||||
# CONFIG_TCP_CONG_ADVANCED is not set
|
||||
CONFIG_TCP_CONG_BIC=y
|
||||
CONFIG_TCP_CONG_WESTWOOD=m
|
||||
CONFIG_TCP_CONG_HTCP=m
|
||||
# CONFIG_TCP_CONG_HSTCP is not set
|
||||
# CONFIG_TCP_CONG_HYBLA is not set
|
||||
# CONFIG_TCP_CONG_VEGAS is not set
|
||||
# CONFIG_TCP_CONG_SCALABLE is not set
|
||||
# CONFIG_IPV6 is not set
|
||||
# CONFIG_NETFILTER is not set
|
||||
|
||||
@ -933,4 +924,3 @@ CONFIG_CRC32=y
|
||||
# CONFIG_LIBCRC32C is not set
|
||||
CONFIG_ZLIB_INFLATE=y
|
||||
CONFIG_ZLIB_DEFLATE=y
|
||||
# CONFIG_TEXTSEARCH is not set
|
||||
|
@ -1,14 +1,13 @@
|
||||
#
|
||||
# Automatically generated make config: don't edit
|
||||
# Linux kernel version: 2.6.12-rc1-bk2
|
||||
# Sun Mar 27 17:52:41 2005
|
||||
# Linux kernel version: 2.6.13-rc2
|
||||
# Fri Jul 8 04:49:34 2005
|
||||
#
|
||||
CONFIG_ARM=y
|
||||
CONFIG_MMU=y
|
||||
CONFIG_UID16=y
|
||||
CONFIG_RWSEM_GENERIC_SPINLOCK=y
|
||||
CONFIG_GENERIC_CALIBRATE_DELAY=y
|
||||
CONFIG_GENERIC_IOMAP=y
|
||||
|
||||
#
|
||||
# Code maturity level options
|
||||
@ -17,6 +16,7 @@ CONFIG_EXPERIMENTAL=y
|
||||
CONFIG_CLEAN_COMPILE=y
|
||||
CONFIG_BROKEN_ON_SMP=y
|
||||
CONFIG_LOCK_KERNEL=y
|
||||
CONFIG_INIT_ENV_ARG_LIMIT=32
|
||||
|
||||
#
|
||||
# General setup
|
||||
@ -33,8 +33,9 @@ CONFIG_KOBJECT_UEVENT=y
|
||||
# CONFIG_IKCONFIG is not set
|
||||
# CONFIG_EMBEDDED is not set
|
||||
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
|
||||
@ -82,10 +83,28 @@ CONFIG_ARCH_OMAP=y
|
||||
# CONFIG_ARCH_VERSATILE is not set
|
||||
# CONFIG_ARCH_IMX is not set
|
||||
# CONFIG_ARCH_H720X is not set
|
||||
# CONFIG_ARCH_AAEC2000 is not set
|
||||
|
||||
#
|
||||
# TI OMAP Implementations
|
||||
#
|
||||
CONFIG_ARCH_OMAP_OTG=y
|
||||
CONFIG_ARCH_OMAP1=y
|
||||
# CONFIG_ARCH_OMAP2 is not set
|
||||
|
||||
#
|
||||
# OMAP Feature Selections
|
||||
#
|
||||
# CONFIG_OMAP_RESET_CLOCKS is not set
|
||||
CONFIG_OMAP_MUX=y
|
||||
# CONFIG_OMAP_MUX_DEBUG is not set
|
||||
CONFIG_OMAP_MUX_WARNINGS=y
|
||||
# CONFIG_OMAP_MPU_TIMER is not set
|
||||
CONFIG_OMAP_32K_TIMER=y
|
||||
CONFIG_OMAP_32K_TIMER_HZ=128
|
||||
CONFIG_OMAP_LL_DEBUG_UART1=y
|
||||
# CONFIG_OMAP_LL_DEBUG_UART2 is not set
|
||||
# CONFIG_OMAP_LL_DEBUG_UART3 is not set
|
||||
|
||||
#
|
||||
# OMAP Core Type
|
||||
@ -93,7 +112,6 @@ CONFIG_ARCH_OMAP=y
|
||||
# CONFIG_ARCH_OMAP730 is not set
|
||||
# CONFIG_ARCH_OMAP1510 is not set
|
||||
CONFIG_ARCH_OMAP16XX=y
|
||||
CONFIG_ARCH_OMAP_OTG=y
|
||||
|
||||
#
|
||||
# OMAP Board Type
|
||||
@ -101,21 +119,14 @@ CONFIG_ARCH_OMAP_OTG=y
|
||||
# CONFIG_MACH_OMAP_INNOVATOR is not set
|
||||
CONFIG_MACH_OMAP_H2=y
|
||||
# CONFIG_MACH_OMAP_H3 is not set
|
||||
# CONFIG_MACH_OMAP_H4 is not set
|
||||
# CONFIG_MACH_OMAP_OSK is not set
|
||||
# CONFIG_MACH_OMAP_GENERIC is not set
|
||||
|
||||
#
|
||||
# OMAP Feature Selections
|
||||
# OMAP CPU Speed
|
||||
#
|
||||
CONFIG_OMAP_MUX=y
|
||||
# CONFIG_OMAP_MUX_DEBUG is not set
|
||||
CONFIG_OMAP_MUX_WARNINGS=y
|
||||
CONFIG_OMAP_MPU_TIMER=y
|
||||
# CONFIG_OMAP_32K_TIMER is not set
|
||||
CONFIG_OMAP_LL_DEBUG_UART1=y
|
||||
# CONFIG_OMAP_LL_DEBUG_UART2 is not set
|
||||
# CONFIG_OMAP_LL_DEBUG_UART3 is not set
|
||||
# CONFIG_OMAP_CLOCKS_SET_BY_BOOTLOADER is not set
|
||||
# CONFIG_OMAP_ARM_216MHZ is not set
|
||||
CONFIG_OMAP_ARM_192MHZ=y
|
||||
# CONFIG_OMAP_ARM_168MHZ is not set
|
||||
# CONFIG_OMAP_ARM_120MHZ is not set
|
||||
@ -145,6 +156,7 @@ CONFIG_ARM_THUMB=y
|
||||
#
|
||||
# Bus support
|
||||
#
|
||||
CONFIG_ISA_DMA_API=y
|
||||
|
||||
#
|
||||
# PCCARD (PCMCIA/CardBus) support
|
||||
@ -154,7 +166,16 @@ CONFIG_ARM_THUMB=y
|
||||
#
|
||||
# Kernel Features
|
||||
#
|
||||
# CONFIG_SMP is not set
|
||||
CONFIG_PREEMPT=y
|
||||
CONFIG_NO_IDLE_HZ=y
|
||||
# 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_LEDS is not set
|
||||
CONFIG_ALIGNMENT_TRAP=y
|
||||
|
||||
@ -166,6 +187,22 @@ CONFIG_ZBOOT_ROM_BSS=0x0
|
||||
CONFIG_CMDLINE="mem=32M console=ttyS0,115200n8 root=0801 ro init=/bin/sh"
|
||||
# CONFIG_XIP_KERNEL is not set
|
||||
|
||||
#
|
||||
# CPU Frequency scaling
|
||||
#
|
||||
CONFIG_CPU_FREQ=y
|
||||
CONFIG_CPU_FREQ_TABLE=y
|
||||
# CONFIG_CPU_FREQ_DEBUG is not set
|
||||
CONFIG_CPU_FREQ_STAT=y
|
||||
# CONFIG_CPU_FREQ_STAT_DETAILS is not set
|
||||
# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
|
||||
CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
|
||||
# CONFIG_CPU_FREQ_GOV_PERFORMANCE is not set
|
||||
# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set
|
||||
CONFIG_CPU_FREQ_GOV_USERSPACE=y
|
||||
# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set
|
||||
# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
|
||||
|
||||
#
|
||||
# Floating point emulation
|
||||
#
|
||||
@ -202,7 +239,6 @@ CONFIG_PM=y
|
||||
CONFIG_STANDALONE=y
|
||||
CONFIG_PREVENT_FIRMWARE_BUILD=y
|
||||
# CONFIG_FW_LOADER is not set
|
||||
CONFIG_DEBUG_DRIVER=y
|
||||
|
||||
#
|
||||
# Memory Technology Devices (MTD)
|
||||
@ -292,7 +328,6 @@ CONFIG_MTD_CFI_UTIL=y
|
||||
#
|
||||
# Block devices
|
||||
#
|
||||
# CONFIG_BLK_DEV_FD is not set
|
||||
# CONFIG_BLK_DEV_COW_COMMON is not set
|
||||
CONFIG_BLK_DEV_LOOP=y
|
||||
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
|
||||
@ -327,6 +362,7 @@ CONFIG_SCSI_PROC_FS=y
|
||||
# CONFIG_CHR_DEV_OSST is not set
|
||||
# CONFIG_BLK_DEV_SR is not set
|
||||
# CONFIG_CHR_DEV_SG is not set
|
||||
# CONFIG_CHR_DEV_SCH is not set
|
||||
|
||||
#
|
||||
# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
|
||||
@ -356,6 +392,7 @@ CONFIG_SCSI_PROC_FS=y
|
||||
#
|
||||
# Fusion MPT device support
|
||||
#
|
||||
# CONFIG_FUSION is not set
|
||||
|
||||
#
|
||||
# IEEE 1394 (FireWire) support
|
||||
@ -375,12 +412,12 @@ CONFIG_NET=y
|
||||
#
|
||||
CONFIG_PACKET=y
|
||||
# CONFIG_PACKET_MMAP is not set
|
||||
# CONFIG_NETLINK_DEV is not set
|
||||
CONFIG_UNIX=y
|
||||
# CONFIG_NET_KEY is not set
|
||||
CONFIG_INET=y
|
||||
# CONFIG_IP_MULTICAST is not set
|
||||
# CONFIG_IP_ADVANCED_ROUTER is not set
|
||||
CONFIG_IP_FIB_HASH=y
|
||||
CONFIG_IP_PNP=y
|
||||
CONFIG_IP_PNP_DHCP=y
|
||||
CONFIG_IP_PNP_BOOTP=y
|
||||
@ -395,6 +432,8 @@ CONFIG_IP_PNP_BOOTP=y
|
||||
# CONFIG_INET_TUNNEL is not set
|
||||
CONFIG_IP_TCPDIAG=y
|
||||
# CONFIG_IP_TCPDIAG_IPV6 is not set
|
||||
# CONFIG_TCP_CONG_ADVANCED is not set
|
||||
CONFIG_TCP_CONG_BIC=y
|
||||
# CONFIG_IPV6 is not set
|
||||
# CONFIG_NETFILTER is not set
|
||||
|
||||
@ -442,6 +481,7 @@ CONFIG_NETDEVICES=y
|
||||
CONFIG_NET_ETHERNET=y
|
||||
CONFIG_MII=y
|
||||
CONFIG_SMC91X=y
|
||||
# CONFIG_DM9000 is not set
|
||||
|
||||
#
|
||||
# Ethernet (1000 Mbit)
|
||||
@ -518,7 +558,6 @@ CONFIG_SERIO=y
|
||||
CONFIG_SERIO_SERPORT=y
|
||||
# CONFIG_SERIO_RAW is not set
|
||||
# CONFIG_GAMEPORT is not set
|
||||
CONFIG_SOUND_GAMEPORT=y
|
||||
|
||||
#
|
||||
# Character devices
|
||||
@ -567,13 +606,11 @@ CONFIG_WATCHDOG_NOWAYOUT=y
|
||||
#
|
||||
# Ftape, the floppy tape device driver
|
||||
#
|
||||
# CONFIG_DRM is not set
|
||||
# CONFIG_RAW_DRIVER is not set
|
||||
|
||||
#
|
||||
# TPM devices
|
||||
#
|
||||
# CONFIG_TCG_TPM is not set
|
||||
|
||||
#
|
||||
# I2C support
|
||||
@ -604,7 +641,9 @@ CONFIG_I2C_CHARDEV=y
|
||||
# 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
|
||||
@ -620,6 +659,7 @@ CONFIG_I2C_CHARDEV=y
|
||||
# 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_SMSC47B397 is not set
|
||||
@ -627,15 +667,21 @@ CONFIG_I2C_CHARDEV=y
|
||||
# CONFIG_SENSORS_W83781D is not set
|
||||
# CONFIG_SENSORS_W83L785TS is not set
|
||||
# CONFIG_SENSORS_W83627HF is not set
|
||||
# CONFIG_SENSORS_W83627EHF is not set
|
||||
|
||||
#
|
||||
# Other 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_ISP1301_OMAP=y
|
||||
CONFIG_TPS65010=y
|
||||
# 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
|
||||
@ -663,8 +709,10 @@ CONFIG_FB=y
|
||||
# CONFIG_FB_CFB_COPYAREA is not set
|
||||
# CONFIG_FB_CFB_IMAGEBLIT is not set
|
||||
# CONFIG_FB_SOFT_CURSOR is not set
|
||||
# CONFIG_FB_MACMODES is not set
|
||||
CONFIG_FB_MODE_HELPERS=y
|
||||
# CONFIG_FB_TILEBLITTING is not set
|
||||
# CONFIG_FB_S1D13XXX is not set
|
||||
# CONFIG_FB_VIRTUAL is not set
|
||||
|
||||
#
|
||||
@ -677,11 +725,13 @@ CONFIG_FONTS=y
|
||||
CONFIG_FONT_8x8=y
|
||||
CONFIG_FONT_8x16=y
|
||||
# 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
|
||||
@ -729,14 +779,14 @@ CONFIG_USB_ARCH_HAS_OHCI=y
|
||||
#
|
||||
CONFIG_USB_GADGET=y
|
||||
# CONFIG_USB_GADGET_DEBUG_FILES is not set
|
||||
CONFIG_USB_GADGET_SELECTED=y
|
||||
# CONFIG_USB_GADGET_NET2280 is not set
|
||||
# CONFIG_USB_GADGET_PXA2XX is not set
|
||||
# CONFIG_USB_GADGET_GOKU is not set
|
||||
# CONFIG_USB_GADGET_SA1100 is not set
|
||||
# CONFIG_USB_GADGET_LH7A40X is not set
|
||||
# CONFIG_USB_GADGET_DUMMY_HCD is not set
|
||||
CONFIG_USB_GADGET_OMAP=y
|
||||
CONFIG_USB_OMAP=y
|
||||
# CONFIG_USB_GADGET_DUMMY_HCD is not set
|
||||
# CONFIG_USB_GADGET_DUALSPEED is not set
|
||||
# CONFIG_USB_ZERO is not set
|
||||
CONFIG_USB_ETH=y
|
||||
@ -755,6 +805,7 @@ CONFIG_USB_ETH_RNDIS=y
|
||||
#
|
||||
CONFIG_EXT2_FS=y
|
||||
# CONFIG_EXT2_FS_XATTR is not set
|
||||
# CONFIG_EXT2_FS_XIP is not set
|
||||
# CONFIG_EXT3_FS is not set
|
||||
# CONFIG_JBD is not set
|
||||
# CONFIG_REISERFS_FS is not set
|
||||
@ -791,7 +842,6 @@ CONFIG_FAT_DEFAULT_CODEPAGE=437
|
||||
#
|
||||
CONFIG_PROC_FS=y
|
||||
CONFIG_SYSFS=y
|
||||
# CONFIG_DEVFS_FS is not set
|
||||
# CONFIG_DEVPTS_FS_XATTR is not set
|
||||
# CONFIG_TMPFS is not set
|
||||
# CONFIG_HUGETLB_PAGE is not set
|
||||
@ -828,12 +878,14 @@ CONFIG_CRAMFS=y
|
||||
#
|
||||
CONFIG_NFS_FS=y
|
||||
CONFIG_NFS_V3=y
|
||||
# CONFIG_NFS_V3_ACL is not set
|
||||
CONFIG_NFS_V4=y
|
||||
# CONFIG_NFS_DIRECTIO is not set
|
||||
# CONFIG_NFSD is not set
|
||||
CONFIG_ROOT_NFS=y
|
||||
CONFIG_LOCKD=y
|
||||
CONFIG_LOCKD_V4=y
|
||||
CONFIG_NFS_COMMON=y
|
||||
CONFIG_SUNRPC=y
|
||||
CONFIG_SUNRPC_GSS=y
|
||||
CONFIG_RPCSEC_GSS_KRB5=y
|
||||
@ -903,24 +955,11 @@ CONFIG_NLS_DEFAULT="iso8859-1"
|
||||
# Kernel hacking
|
||||
#
|
||||
# CONFIG_PRINTK_TIME is not set
|
||||
CONFIG_DEBUG_KERNEL=y
|
||||
# CONFIG_MAGIC_SYSRQ is not set
|
||||
# CONFIG_DEBUG_KERNEL is not set
|
||||
CONFIG_LOG_BUF_SHIFT=14
|
||||
# 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=y
|
||||
CONFIG_DEBUG_INFO=y
|
||||
# CONFIG_DEBUG_FS is not set
|
||||
CONFIG_FRAME_POINTER=y
|
||||
CONFIG_DEBUG_USER=y
|
||||
# CONFIG_DEBUG_WAITQ is not set
|
||||
CONFIG_DEBUG_ERRORS=y
|
||||
CONFIG_DEBUG_LL=y
|
||||
# CONFIG_DEBUG_ICEDCC is not set
|
||||
# CONFIG_DEBUG_USER is not set
|
||||
|
||||
#
|
||||
# Security options
|
||||
|
@ -1,803 +0,0 @@
|
||||
#
|
||||
# Automatically generated make config: don't edit
|
||||
# Linux kernel version: 2.6.12-rc1-bk2
|
||||
# Sun Mar 27 21:31:45 2005
|
||||
#
|
||||
CONFIG_ARM=y
|
||||
CONFIG_MMU=y
|
||||
CONFIG_UID16=y
|
||||
CONFIG_RWSEM_GENERIC_SPINLOCK=y
|
||||
CONFIG_GENERIC_CALIBRATE_DELAY=y
|
||||
CONFIG_GENERIC_IOMAP=y
|
||||
|
||||
#
|
||||
# Code maturity level options
|
||||
#
|
||||
CONFIG_EXPERIMENTAL=y
|
||||
CONFIG_CLEAN_COMPILE=y
|
||||
CONFIG_BROKEN_ON_SMP=y
|
||||
|
||||
#
|
||||
# General setup
|
||||
#
|
||||
CONFIG_LOCALVERSION=""
|
||||
CONFIG_SWAP=y
|
||||
CONFIG_SYSVIPC=y
|
||||
# CONFIG_POSIX_MQUEUE is not set
|
||||
# CONFIG_BSD_PROCESS_ACCT is not set
|
||||
CONFIG_SYSCTL=y
|
||||
# CONFIG_AUDIT is not set
|
||||
CONFIG_HOTPLUG=y
|
||||
CONFIG_KOBJECT_UEVENT=y
|
||||
# CONFIG_IKCONFIG is not set
|
||||
# CONFIG_EMBEDDED is not set
|
||||
CONFIG_KALLSYMS=y
|
||||
# CONFIG_KALLSYMS_EXTRA_PASS is not set
|
||||
CONFIG_BASE_FULL=y
|
||||
CONFIG_FUTEX=y
|
||||
CONFIG_EPOLL=y
|
||||
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
|
||||
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 is not set
|
||||
CONFIG_OBSOLETE_MODPARM=y
|
||||
# CONFIG_MODVERSIONS is not set
|
||||
# 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
|
||||
|
||||
#
|
||||
# SA11x0 Implementations
|
||||
#
|
||||
# CONFIG_SA1100_ASSABET is not set
|
||||
# CONFIG_SA1100_CERF is not set
|
||||
# CONFIG_SA1100_COLLIE is not set
|
||||
# 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
|
||||
CONFIG_CPU_MINICACHE=y
|
||||
|
||||
#
|
||||
# Processor Features
|
||||
#
|
||||
|
||||
#
|
||||
# Bus support
|
||||
#
|
||||
CONFIG_ISA=y
|
||||
|
||||
#
|
||||
# PCCARD (PCMCIA/CardBus) support
|
||||
#
|
||||
CONFIG_PCCARD=y
|
||||
# CONFIG_PCMCIA_DEBUG is not set
|
||||
CONFIG_PCMCIA=y
|
||||
|
||||
#
|
||||
# PC-card bridges
|
||||
#
|
||||
CONFIG_I82365=y
|
||||
# CONFIG_TCIC is not set
|
||||
CONFIG_PCMCIA_SA1100=y
|
||||
CONFIG_PCCARD_NONSTATIC=y
|
||||
|
||||
#
|
||||
# Kernel Features
|
||||
#
|
||||
# CONFIG_PREEMPT is not set
|
||||
CONFIG_DISCONTIGMEM=y
|
||||
# CONFIG_LEDS is not set
|
||||
CONFIG_ALIGNMENT_TRAP=y
|
||||
|
||||
#
|
||||
# Boot options
|
||||
#
|
||||
CONFIG_ZBOOT_ROM_TEXT=0x0
|
||||
CONFIG_ZBOOT_ROM_BSS=0x0
|
||||
CONFIG_CMDLINE="keepinitrd mem=16M root=/dev/ram ramdisk=8192 initrd=0xd0000000,4M"
|
||||
# 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 is not set
|
||||
# CONFIG_FPE_FASTFPE is not set
|
||||
|
||||
#
|
||||
# Userspace binary formats
|
||||
#
|
||||
CONFIG_BINFMT_ELF=y
|
||||
CONFIG_BINFMT_AOUT=y
|
||||
# CONFIG_BINFMT_MISC is not set
|
||||
# CONFIG_ARTHUR is not set
|
||||
|
||||
#
|
||||
# Power management options
|
||||
#
|
||||
# CONFIG_PM is not set
|
||||
|
||||
#
|
||||
# Device Drivers
|
||||
#
|
||||
|
||||
#
|
||||
# Generic Driver Options
|
||||
#
|
||||
CONFIG_STANDALONE=y
|
||||
CONFIG_PREVENT_FIRMWARE_BUILD=y
|
||||
# CONFIG_FW_LOADER is not set
|
||||
|
||||
#
|
||||
# Memory Technology Devices (MTD)
|
||||
#
|
||||
# CONFIG_MTD 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_FD is not set
|
||||
# CONFIG_BLK_DEV_XD is not set
|
||||
# CONFIG_BLK_DEV_COW_COMMON is not set
|
||||
CONFIG_BLK_DEV_LOOP=m
|
||||
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
|
||||
CONFIG_BLK_DEV_NBD=m
|
||||
# CONFIG_BLK_DEV_RAM is not set
|
||||
CONFIG_BLK_DEV_RAM_COUNT=16
|
||||
CONFIG_INITRAMFS_SOURCE=""
|
||||
# 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 is not set
|
||||
|
||||
#
|
||||
# ATA/ATAPI/MFM/RLL support
|
||||
#
|
||||
CONFIG_IDE=y
|
||||
CONFIG_BLK_DEV_IDE=y
|
||||
|
||||
#
|
||||
# Please see Documentation/ide.txt for help/info on IDE drives
|
||||
#
|
||||
# CONFIG_BLK_DEV_IDE_SATA is not set
|
||||
CONFIG_BLK_DEV_IDEDISK=y
|
||||
# CONFIG_IDEDISK_MULTI_MODE is not set
|
||||
# CONFIG_BLK_DEV_IDECS is not set
|
||||
# CONFIG_BLK_DEV_IDECD is not set
|
||||
# CONFIG_BLK_DEV_IDETAPE is not set
|
||||
# CONFIG_BLK_DEV_IDEFLOPPY is not set
|
||||
# CONFIG_IDE_TASK_IOCTL is not set
|
||||
|
||||
#
|
||||
# IDE chipset support/bugfixes
|
||||
#
|
||||
CONFIG_IDE_GENERIC=y
|
||||
# CONFIG_IDE_ARM is not set
|
||||
# CONFIG_IDE_CHIPSETS is not set
|
||||
# CONFIG_BLK_DEV_IDEDMA is not set
|
||||
# CONFIG_IDEDMA_AUTO is not set
|
||||
# CONFIG_BLK_DEV_HD is not set
|
||||
|
||||
#
|
||||
# SCSI device support
|
||||
#
|
||||
# CONFIG_SCSI is not set
|
||||
|
||||
#
|
||||
# Multi-device support (RAID and LVM)
|
||||
#
|
||||
# CONFIG_MD is not set
|
||||
|
||||
#
|
||||
# Fusion MPT device support
|
||||
#
|
||||
|
||||
#
|
||||
# IEEE 1394 (FireWire) support
|
||||
#
|
||||
|
||||
#
|
||||
# I2O device support
|
||||
#
|
||||
|
||||
#
|
||||
# Networking support
|
||||
#
|
||||
CONFIG_NET=y
|
||||
|
||||
#
|
||||
# Networking options
|
||||
#
|
||||
CONFIG_PACKET=y
|
||||
CONFIG_PACKET_MMAP=y
|
||||
# CONFIG_NETLINK_DEV is not set
|
||||
CONFIG_UNIX=y
|
||||
# CONFIG_NET_KEY is not set
|
||||
CONFIG_INET=y
|
||||
CONFIG_IP_MULTICAST=y
|
||||
# CONFIG_IP_ADVANCED_ROUTER is not set
|
||||
# CONFIG_IP_PNP is not set
|
||||
# CONFIG_NET_IPIP is not set
|
||||
# CONFIG_NET_IPGRE is not set
|
||||
# CONFIG_IP_MROUTE is not set
|
||||
# CONFIG_ARPD is not set
|
||||
# CONFIG_SYN_COOKIES is not set
|
||||
# CONFIG_INET_AH is not set
|
||||
# CONFIG_INET_ESP is not set
|
||||
# CONFIG_INET_IPCOMP is not set
|
||||
# CONFIG_INET_TUNNEL is not set
|
||||
CONFIG_IP_TCPDIAG=y
|
||||
# CONFIG_IP_TCPDIAG_IPV6 is not set
|
||||
|
||||
#
|
||||
# IP: Virtual Server Configuration
|
||||
#
|
||||
# CONFIG_IP_VS is not set
|
||||
# CONFIG_IPV6 is not set
|
||||
CONFIG_NETFILTER=y
|
||||
# CONFIG_NETFILTER_DEBUG is not set
|
||||
|
||||
#
|
||||
# IP: Netfilter Configuration
|
||||
#
|
||||
# CONFIG_IP_NF_CONNTRACK is not set
|
||||
# CONFIG_IP_NF_CONNTRACK_MARK is not set
|
||||
# CONFIG_IP_NF_QUEUE is not set
|
||||
# CONFIG_IP_NF_IPTABLES is not set
|
||||
# CONFIG_IP_NF_ARPTABLES is not set
|
||||
|
||||
#
|
||||
# SCTP Configuration (EXPERIMENTAL)
|
||||
#
|
||||
# CONFIG_IP_SCTP is not set
|
||||
# CONFIG_ATM is not set
|
||||
# CONFIG_BRIDGE is not set
|
||||
# CONFIG_VLAN_8021Q is not set
|
||||
# CONFIG_DECNET is not set
|
||||
# CONFIG_LLC2 is not set
|
||||
# CONFIG_IPX is not set
|
||||
# CONFIG_ATALK is not set
|
||||
# CONFIG_X25 is not set
|
||||
# CONFIG_LAPB is not set
|
||||
# CONFIG_NET_DIVERT is not set
|
||||
# CONFIG_ECONET is not set
|
||||
# CONFIG_WAN_ROUTER is not set
|
||||
|
||||
#
|
||||
# QoS and/or fair queueing
|
||||
#
|
||||
# CONFIG_NET_SCHED is not set
|
||||
# CONFIG_NET_CLS_ROUTE is not set
|
||||
|
||||
#
|
||||
# Network testing
|
||||
#
|
||||
# CONFIG_NET_PKTGEN is not set
|
||||
# CONFIG_NETPOLL is not set
|
||||
# CONFIG_NET_POLL_CONTROLLER is not set
|
||||
# CONFIG_HAMRADIO is not set
|
||||
# CONFIG_IRDA is not set
|
||||
# CONFIG_BT is not set
|
||||
CONFIG_NETDEVICES=y
|
||||
# CONFIG_DUMMY is not set
|
||||
# CONFIG_BONDING is not set
|
||||
# CONFIG_EQUALIZER is not set
|
||||
# CONFIG_TUN is not set
|
||||
|
||||
#
|
||||
# ARCnet devices
|
||||
#
|
||||
# CONFIG_ARCNET is not set
|
||||
|
||||
#
|
||||
# Ethernet (10 or 100Mbit)
|
||||
#
|
||||
CONFIG_NET_ETHERNET=y
|
||||
# CONFIG_MII is not set
|
||||
# CONFIG_NET_VENDOR_3COM is not set
|
||||
# CONFIG_LANCE is not set
|
||||
# CONFIG_NET_VENDOR_SMC is not set
|
||||
# CONFIG_SMC91X is not set
|
||||
# CONFIG_NET_VENDOR_RACAL is not set
|
||||
# CONFIG_AT1700 is not set
|
||||
# CONFIG_DEPCA is not set
|
||||
# CONFIG_HP100 is not set
|
||||
# CONFIG_NET_ISA is not set
|
||||
# CONFIG_NET_PCI is not set
|
||||
# CONFIG_NET_POCKET is not set
|
||||
|
||||
#
|
||||
# Ethernet (1000 Mbit)
|
||||
#
|
||||
|
||||
#
|
||||
# Ethernet (10000 Mbit)
|
||||
#
|
||||
|
||||
#
|
||||
# Token Ring devices
|
||||
#
|
||||
# CONFIG_TR is not set
|
||||
|
||||
#
|
||||
# Wireless LAN (non-hamradio)
|
||||
#
|
||||
CONFIG_NET_RADIO=y
|
||||
|
||||
#
|
||||
# Obsolete Wireless cards support (pre-802.11)
|
||||
#
|
||||
# CONFIG_STRIP is not set
|
||||
# CONFIG_ARLAN is not set
|
||||
# CONFIG_WAVELAN is not set
|
||||
CONFIG_PCMCIA_WAVELAN=y
|
||||
# CONFIG_PCMCIA_NETWAVE is not set
|
||||
|
||||
#
|
||||
# Wireless 802.11 Frequency Hopping cards support
|
||||
#
|
||||
# CONFIG_PCMCIA_RAYCS is not set
|
||||
|
||||
#
|
||||
# Wireless 802.11b ISA/PCI cards support
|
||||
#
|
||||
# CONFIG_HERMES is not set
|
||||
# CONFIG_ATMEL is not set
|
||||
|
||||
#
|
||||
# Wireless 802.11b Pcmcia/Cardbus cards support
|
||||
#
|
||||
CONFIG_AIRO_CS=y
|
||||
CONFIG_PCMCIA_WL3501=y
|
||||
CONFIG_NET_WIRELESS=y
|
||||
|
||||
#
|
||||
# PCMCIA network device support
|
||||
#
|
||||
CONFIG_NET_PCMCIA=y
|
||||
CONFIG_PCMCIA_3C589=y
|
||||
# CONFIG_PCMCIA_3C574 is not set
|
||||
# CONFIG_PCMCIA_FMVJ18X is not set
|
||||
CONFIG_PCMCIA_PCNET=y
|
||||
# CONFIG_PCMCIA_NMCLAN is not set
|
||||
# CONFIG_PCMCIA_SMC91C92 is not set
|
||||
# CONFIG_PCMCIA_XIRC2PS is not set
|
||||
# CONFIG_PCMCIA_AXNET is not set
|
||||
|
||||
#
|
||||
# Wan interfaces
|
||||
#
|
||||
# CONFIG_WAN is not set
|
||||
# CONFIG_PPP is not set
|
||||
# CONFIG_SLIP is not set
|
||||
# CONFIG_SHAPER is not set
|
||||
# CONFIG_NETCONSOLE is not set
|
||||
|
||||
#
|
||||
# ISDN subsystem
|
||||
#
|
||||
# CONFIG_ISDN is not set
|
||||
|
||||
#
|
||||
# Input device support
|
||||
#
|
||||
CONFIG_INPUT=y
|
||||
|
||||
#
|
||||
# Userland interfaces
|
||||
#
|
||||
CONFIG_INPUT_MOUSEDEV=y
|
||||
CONFIG_INPUT_MOUSEDEV_PSAUX=y
|
||||
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
|
||||
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
|
||||
# CONFIG_INPUT_JOYDEV is not set
|
||||
# CONFIG_INPUT_TSDEV is not set
|
||||
# CONFIG_INPUT_EVDEV is not set
|
||||
# CONFIG_INPUT_EVBUG is not set
|
||||
|
||||
#
|
||||
# Input Device Drivers
|
||||
#
|
||||
CONFIG_INPUT_KEYBOARD=y
|
||||
CONFIG_KEYBOARD_ATKBD=y
|
||||
# CONFIG_KEYBOARD_SUNKBD is not set
|
||||
# CONFIG_KEYBOARD_LKKBD is not set
|
||||
# CONFIG_KEYBOARD_XTKBD is not set
|
||||
# CONFIG_KEYBOARD_NEWTON is not set
|
||||
CONFIG_INPUT_MOUSE=y
|
||||
CONFIG_MOUSE_PS2=y
|
||||
# CONFIG_MOUSE_SERIAL is not set
|
||||
# CONFIG_MOUSE_INPORT is not set
|
||||
# CONFIG_MOUSE_LOGIBM is not set
|
||||
# CONFIG_MOUSE_PC110PAD is not set
|
||||
# CONFIG_MOUSE_VSXXXAA 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=y
|
||||
CONFIG_SERIO_LIBPS2=y
|
||||
# CONFIG_SERIO_RAW is not set
|
||||
# CONFIG_GAMEPORT is not set
|
||||
CONFIG_SOUND_GAMEPORT=y
|
||||
|
||||
#
|
||||
# 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=y
|
||||
CONFIG_LEGACY_PTY_COUNT=256
|
||||
|
||||
#
|
||||
# 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_DRM is not set
|
||||
|
||||
#
|
||||
# PCMCIA character devices
|
||||
#
|
||||
# CONFIG_SYNCLINK_CS is not set
|
||||
# CONFIG_RAW_DRIVER is not set
|
||||
|
||||
#
|
||||
# TPM devices
|
||||
#
|
||||
# CONFIG_TCG_TPM is not set
|
||||
|
||||
#
|
||||
# I2C support
|
||||
#
|
||||
# CONFIG_I2C is not set
|
||||
|
||||
#
|
||||
# Misc devices
|
||||
#
|
||||
|
||||
#
|
||||
# Multimedia devices
|
||||
#
|
||||
# CONFIG_VIDEO_DEV 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_MODE_HELPERS is not set
|
||||
# CONFIG_FB_TILEBLITTING is not set
|
||||
CONFIG_FB_SA1100=y
|
||||
# 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_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
|
||||
|
||||
#
|
||||
# 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 is not set
|
||||
|
||||
#
|
||||
# MMC/SD Card support
|
||||
#
|
||||
# CONFIG_MMC is not set
|
||||
|
||||
#
|
||||
# File systems
|
||||
#
|
||||
CONFIG_EXT2_FS=y
|
||||
# CONFIG_EXT2_FS_XATTR is not set
|
||||
# CONFIG_EXT3_FS is not set
|
||||
# CONFIG_JBD is not set
|
||||
# CONFIG_REISERFS_FS is not set
|
||||
# CONFIG_JFS_FS is not set
|
||||
|
||||
#
|
||||
# XFS support
|
||||
#
|
||||
# CONFIG_XFS_FS is not set
|
||||
# CONFIG_MINIX_FS is not set
|
||||
# CONFIG_ROMFS_FS is not set
|
||||
# CONFIG_QUOTA is not set
|
||||
CONFIG_DNOTIFY=y
|
||||
# CONFIG_AUTOFS_FS is not set
|
||||
# CONFIG_AUTOFS4_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 is not set
|
||||
CONFIG_FAT_DEFAULT_CODEPAGE=437
|
||||
# CONFIG_NTFS_FS is not set
|
||||
|
||||
#
|
||||
# Pseudo filesystems
|
||||
#
|
||||
CONFIG_PROC_FS=y
|
||||
CONFIG_SYSFS=y
|
||||
# CONFIG_DEVFS_FS is not set
|
||||
# CONFIG_DEVPTS_FS_XATTR is not set
|
||||
# CONFIG_TMPFS is not set
|
||||
# CONFIG_HUGETLB_PAGE is not set
|
||||
CONFIG_RAMFS=y
|
||||
|
||||
#
|
||||
# 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_CRAMFS is not set
|
||||
# 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=y
|
||||
# CONFIG_NFS_V3 is not set
|
||||
# CONFIG_NFS_V4 is not set
|
||||
# CONFIG_NFS_DIRECTIO is not set
|
||||
# CONFIG_NFSD is not set
|
||||
CONFIG_LOCKD=y
|
||||
CONFIG_SUNRPC=y
|
||||
# CONFIG_RPCSEC_GSS_KRB5 is not set
|
||||
# CONFIG_RPCSEC_GSS_SPKM3 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
|
||||
|
||||
#
|
||||
# Partition Types
|
||||
#
|
||||
# CONFIG_PARTITION_ADVANCED is not set
|
||||
CONFIG_MSDOS_PARTITION=y
|
||||
|
||||
#
|
||||
# Native Language Support
|
||||
#
|
||||
CONFIG_NLS=y
|
||||
CONFIG_NLS_DEFAULT="iso8859-1"
|
||||
# CONFIG_NLS_CODEPAGE_437 is not set
|
||||
# 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 is not set
|
||||
# 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 is not set
|
||||
|
||||
#
|
||||
# Profiling support
|
||||
#
|
||||
# CONFIG_PROFILING is not set
|
||||
|
||||
#
|
||||
# Kernel hacking
|
||||
#
|
||||
# CONFIG_PRINTK_TIME is not set
|
||||
# CONFIG_DEBUG_KERNEL is not set
|
||||
CONFIG_LOG_BUF_SHIFT=14
|
||||
CONFIG_DEBUG_BUGVERBOSE=y
|
||||
CONFIG_FRAME_POINTER=y
|
||||
# CONFIG_DEBUG_USER 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_CRC32=y
|
||||
# CONFIG_LIBCRC32C is not set
|
@ -41,7 +41,10 @@ extern void fp_enter(void);
|
||||
* This has a special calling convention; it doesn't
|
||||
* modify any of the usual registers, except for LR.
|
||||
*/
|
||||
#define EXPORT_CRC_ALIAS(sym) __CRC_SYMBOL(sym, "")
|
||||
|
||||
#define EXPORT_SYMBOL_ALIAS(sym,orig) \
|
||||
EXPORT_CRC_ALIAS(sym) \
|
||||
const struct kernel_symbol __ksymtab_##sym \
|
||||
__attribute__((section("__ksymtab"))) = \
|
||||
{ (unsigned long)&orig, #sym };
|
||||
|
@ -344,9 +344,9 @@ __create_page_tables:
|
||||
str r6, [r0]
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_DEBUG_LL
|
||||
bic r7, r7, #0x0c @ turn off cacheable
|
||||
@ and bufferable bits
|
||||
#ifdef CONFIG_DEBUG_LL
|
||||
/*
|
||||
* Map in IO space for serial debugging.
|
||||
* This allows debug messages to be output
|
||||
@ -372,27 +372,23 @@ __create_page_tables:
|
||||
teq r1, #MACH_TYPE_NETWINDER
|
||||
teqne r1, #MACH_TYPE_CATS
|
||||
bne 1f
|
||||
add r0, r4, #0x3fc0 @ ff000000
|
||||
mov r3, #0x7c000000
|
||||
orr r3, r3, r7
|
||||
str r3, [r0], #4
|
||||
add r3, r3, #1 << 20
|
||||
str r3, [r0], #4
|
||||
add r0, r4, #0xff000000 >> 18
|
||||
orr r3, r7, #0x7c000000
|
||||
str r3, [r0]
|
||||
1:
|
||||
#endif
|
||||
#endif
|
||||
#ifdef CONFIG_ARCH_RPC
|
||||
/*
|
||||
* Map in screen at 0x02000000 & SCREEN2_BASE
|
||||
* Similar reasons here - for debug. This is
|
||||
* only for Acorn RiscPC architectures.
|
||||
*/
|
||||
add r0, r4, #0x80 @ 02000000
|
||||
mov r3, #0x02000000
|
||||
orr r3, r3, r7
|
||||
add r0, r4, #0x02000000 >> 18
|
||||
orr r3, r7, #0x02000000
|
||||
str r3, [r0]
|
||||
add r0, r4, #0x3600 @ d8000000
|
||||
add r0, r4, #0xd8000000 >> 18
|
||||
str r3, [r0]
|
||||
#endif
|
||||
#endif
|
||||
mov pc, lr
|
||||
.ltorg
|
||||
|
@ -737,8 +737,8 @@ void __init setup_arch(char **cmdline_p)
|
||||
if (mdesc->soft_reboot)
|
||||
reboot_setup("s");
|
||||
|
||||
if (mdesc->param_offset)
|
||||
tags = phys_to_virt(mdesc->param_offset);
|
||||
if (mdesc->boot_params)
|
||||
tags = phys_to_virt(mdesc->boot_params);
|
||||
|
||||
/*
|
||||
* If we have the old style parameters, convert them to
|
||||
|
@ -230,16 +230,8 @@ NORET_TYPE void die(const char *str, struct pt_regs *regs, int err)
|
||||
do_exit(SIGSEGV);
|
||||
}
|
||||
|
||||
void die_if_kernel(const char *str, struct pt_regs *regs, int err)
|
||||
{
|
||||
if (user_mode(regs))
|
||||
return;
|
||||
|
||||
die(str, regs, err);
|
||||
}
|
||||
|
||||
static void notify_die(const char *str, struct pt_regs *regs, siginfo_t *info,
|
||||
unsigned long err, unsigned long trap)
|
||||
void notify_die(const char *str, struct pt_regs *regs, struct siginfo *info,
|
||||
unsigned long err, unsigned long trap)
|
||||
{
|
||||
if (user_mode(regs)) {
|
||||
current->thread.error_code = err;
|
||||
|
@ -40,9 +40,11 @@ static void __init aaed2000_map_io(void)
|
||||
}
|
||||
|
||||
MACHINE_START(AAED2000, "Agilent AAED-2000 Development Platform")
|
||||
MAINTAINER("Nicolas Bellido Y Ortega")
|
||||
BOOT_MEM(0xf0000000, PIO_BASE, VIO_BASE)
|
||||
MAPIO(aaed2000_map_io)
|
||||
INITIRQ(aaed2000_init_irq)
|
||||
/* Maintainer: Nicolas Bellido Y Ortega */
|
||||
.phys_ram = 0xf0000000,
|
||||
.phys_io = PIO_BASE,
|
||||
.io_pg_offst = ((VIO_BASE) >> 18) & 0xfffc,
|
||||
.map_io = aaed2000_map_io,
|
||||
.init_irq = aaed2000_init_irq,
|
||||
.timer = &aaec2000_timer,
|
||||
MACHINE_END
|
||||
|
@ -59,11 +59,13 @@ void __init autcpu12_map_io(void)
|
||||
}
|
||||
|
||||
MACHINE_START(AUTCPU12, "autronix autcpu12")
|
||||
MAINTAINER("Thomas Gleixner")
|
||||
BOOT_MEM(0xc0000000, 0x80000000, 0xff000000)
|
||||
BOOT_PARAMS(0xc0020000)
|
||||
MAPIO(autcpu12_map_io)
|
||||
INITIRQ(clps711x_init_irq)
|
||||
/* Maintainer: Thomas Gleixner */
|
||||
.phys_ram = 0xc0000000,
|
||||
.phys_io = 0x80000000,
|
||||
.io_pg_offst = ((0xff000000) >> 18) & 0xfffc,
|
||||
.boot_params = 0xc0020000,
|
||||
.map_io = autcpu12_map_io,
|
||||
.init_irq = clps711x_init_irq,
|
||||
.timer = &clps711x_timer,
|
||||
MACHINE_END
|
||||
|
||||
|
@ -49,10 +49,12 @@ static void __init cdb89712_map_io(void)
|
||||
}
|
||||
|
||||
MACHINE_START(CDB89712, "Cirrus-CDB89712")
|
||||
MAINTAINER("Ray Lehtiniemi")
|
||||
BOOT_MEM(0xc0000000, 0x80000000, 0xff000000)
|
||||
BOOT_PARAMS(0xc0000100)
|
||||
MAPIO(cdb89712_map_io)
|
||||
INITIRQ(clps711x_init_irq)
|
||||
/* Maintainer: Ray Lehtiniemi */
|
||||
.phys_ram = 0xc0000000,
|
||||
.phys_io = 0x80000000,
|
||||
.io_pg_offst = ((0xff000000) >> 18) & 0xfffc,
|
||||
.boot_params = 0xc0000100,
|
||||
.map_io = cdb89712_map_io,
|
||||
.init_irq = clps711x_init_irq,
|
||||
.timer = &clps711x_timer,
|
||||
MACHINE_END
|
||||
|
@ -53,10 +53,12 @@ static void __init ceiva_map_io(void)
|
||||
|
||||
|
||||
MACHINE_START(CEIVA, "CEIVA/Polaroid Photo MAX Digital Picture Frame")
|
||||
MAINTAINER("Rob Scott")
|
||||
BOOT_MEM(0xc0000000, 0x80000000, 0xff000000)
|
||||
BOOT_PARAMS(0xc0000100)
|
||||
MAPIO(ceiva_map_io)
|
||||
INITIRQ(clps711x_init_irq)
|
||||
/* Maintainer: Rob Scott */
|
||||
.phys_ram = 0xc0000000,
|
||||
.phys_io = 0x80000000,
|
||||
.io_pg_offst = ((0xff000000) >> 18) & 0xfffc,
|
||||
.boot_params = 0xc0000100,
|
||||
.map_io = ceiva_map_io,
|
||||
.init_irq = clps711x_init_irq,
|
||||
.timer = &clps711x_timer,
|
||||
MACHINE_END
|
||||
|
@ -37,12 +37,14 @@ fixup_clep7312(struct machine_desc *desc, struct tag *tags,
|
||||
|
||||
|
||||
MACHINE_START(CLEP7212, "Cirrus Logic 7212/7312")
|
||||
MAINTAINER("Nobody")
|
||||
BOOT_MEM(0xc0000000, 0x80000000, 0xff000000)
|
||||
BOOT_PARAMS(0xc0000100)
|
||||
FIXUP(fixup_clep7312)
|
||||
MAPIO(clps711x_map_io)
|
||||
INITIRQ(clps711x_init_irq)
|
||||
/* Maintainer: Nobody */
|
||||
.phys_ram = 0xc0000000,
|
||||
.phys_io = 0x80000000,
|
||||
.io_pg_offst = ((0xff000000) >> 18) & 0xfffc,
|
||||
.boot_params = 0xc0000100,
|
||||
.fixup = fixup_clep7312,
|
||||
.map_io = clps711x_map_io,
|
||||
.init_irq = clps711x_init_irq,
|
||||
.timer = &clps711x_timer,
|
||||
MACHINE_END
|
||||
|
||||
|
@ -51,11 +51,13 @@ fixup_edb7211(struct machine_desc *desc, struct tag *tags,
|
||||
}
|
||||
|
||||
MACHINE_START(EDB7211, "CL-EDB7211 (EP7211 eval board)")
|
||||
MAINTAINER("Jon McClintock")
|
||||
BOOT_MEM(0xc0000000, 0x80000000, 0xff000000)
|
||||
BOOT_PARAMS(0xc0020100) /* 0xc0000000 - 0xc001ffff can be video RAM */
|
||||
FIXUP(fixup_edb7211)
|
||||
MAPIO(edb7211_map_io)
|
||||
INITIRQ(clps711x_init_irq)
|
||||
/* Maintainer: Jon McClintock */
|
||||
.phys_ram = 0xc0000000,
|
||||
.phys_io = 0x80000000,
|
||||
.io_pg_offst = ((0xff000000) >> 18) & 0xfffc,
|
||||
.boot_params = 0xc0020100, /* 0xc0000000 - 0xc001ffff can be video RAM */
|
||||
.fixup = fixup_edb7211,
|
||||
.map_io = edb7211_map_io,
|
||||
.init_irq = clps711x_init_irq,
|
||||
.timer = &clps711x_timer,
|
||||
MACHINE_END
|
||||
|
@ -75,11 +75,13 @@ fortunet_fixup(struct machine_desc *desc, struct tag *tags,
|
||||
}
|
||||
|
||||
MACHINE_START(FORTUNET, "ARM-FortuNet")
|
||||
MAINTAINER("FortuNet Inc.")
|
||||
BOOT_MEM(0xc0000000, 0x80000000, 0xf0000000)
|
||||
BOOT_PARAMS(0x00000000)
|
||||
FIXUP(fortunet_fixup)
|
||||
MAPIO(clps711x_map_io)
|
||||
INITIRQ(clps711x_init_irq)
|
||||
/* Maintainer: FortuNet Inc. */
|
||||
.phys_ram = 0xc0000000,
|
||||
.phys_io = 0x80000000,
|
||||
.io_pg_offst = ((0xf0000000) >> 18) & 0xfffc,
|
||||
.boot_params = 0x00000000,
|
||||
.fixup = fortunet_fixup,
|
||||
.map_io = clps711x_map_io,
|
||||
.init_irq = clps711x_init_irq,
|
||||
.timer = &clps711x_timer,
|
||||
MACHINE_END
|
||||
|
@ -79,12 +79,14 @@ static void __init p720t_map_io(void)
|
||||
}
|
||||
|
||||
MACHINE_START(P720T, "ARM-Prospector720T")
|
||||
MAINTAINER("ARM Ltd/Deep Blue Solutions Ltd")
|
||||
BOOT_MEM(0xc0000000, 0x80000000, 0xff000000)
|
||||
BOOT_PARAMS(0xc0000100)
|
||||
FIXUP(fixup_p720t)
|
||||
MAPIO(p720t_map_io)
|
||||
INITIRQ(clps711x_init_irq)
|
||||
/* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */
|
||||
.phys_ram = 0xc0000000,
|
||||
.phys_io = 0x80000000,
|
||||
.io_pg_offst = ((0xff000000) >> 18) & 0xfffc,
|
||||
.boot_params = 0xc0000100,
|
||||
.fixup = fixup_p720t,
|
||||
.map_io = p720t_map_io,
|
||||
.init_irq = clps711x_init_irq,
|
||||
.timer = &clps711x_timer,
|
||||
MACHINE_END
|
||||
|
||||
|
@ -366,11 +366,13 @@ static void __init clps7500_init(void)
|
||||
}
|
||||
|
||||
MACHINE_START(CLPS7500, "CL-PS7500")
|
||||
MAINTAINER("Philip Blundell")
|
||||
BOOT_MEM(0x10000000, 0x03000000, 0xe0000000)
|
||||
MAPIO(clps7500_map_io)
|
||||
INITIRQ(clps7500_init_irq)
|
||||
.init_machine = clps7500_init,
|
||||
.timer = &clps7500_timer,
|
||||
/* Maintainer: Philip Blundell */
|
||||
.phys_ram = 0x10000000,
|
||||
.phys_io = 0x03000000,
|
||||
.io_pg_offst = ((0xe0000000) >> 18) & 0xfffc,
|
||||
.map_io = clps7500_map_io,
|
||||
.init_irq = clps7500_init_irq,
|
||||
.init_machine = clps7500_init,
|
||||
.timer = &clps7500_timer,
|
||||
MACHINE_END
|
||||
|
||||
|
@ -233,13 +233,15 @@ static int __init ebsa110_init(void)
|
||||
arch_initcall(ebsa110_init);
|
||||
|
||||
MACHINE_START(EBSA110, "EBSA110")
|
||||
MAINTAINER("Russell King")
|
||||
BOOT_MEM(0x00000000, 0xe0000000, 0xe0000000)
|
||||
BOOT_PARAMS(0x00000400)
|
||||
DISABLE_PARPORT(0)
|
||||
DISABLE_PARPORT(2)
|
||||
SOFT_REBOOT
|
||||
MAPIO(ebsa110_map_io)
|
||||
INITIRQ(ebsa110_init_irq)
|
||||
/* Maintainer: Russell King */
|
||||
.phys_ram = 0x00000000,
|
||||
.phys_io = 0xe0000000,
|
||||
.io_pg_offst = ((0xe0000000) >> 18) & 0xfffc,
|
||||
.boot_params = 0x00000400,
|
||||
.reserve_lp0 = 1,
|
||||
.reserve_lp2 = 1,
|
||||
.soft_reboot = 1,
|
||||
.map_io = ebsa110_map_io,
|
||||
.init_irq = ebsa110_init_irq,
|
||||
.timer = &ebsa110_timer,
|
||||
MACHINE_END
|
||||
|
@ -63,10 +63,12 @@ extern void epxa10db_init_irq(void);
|
||||
extern struct sys_timer epxa10db_timer;
|
||||
|
||||
MACHINE_START(CAMELOT, "Altera Epxa10db")
|
||||
MAINTAINER("Altera Corporation")
|
||||
BOOT_MEM(0x00000000, 0x7fffc000, 0xffffc000)
|
||||
MAPIO(epxa10db_map_io)
|
||||
INITIRQ(epxa10db_init_irq)
|
||||
/* Maintainer: Altera Corporation */
|
||||
.phys_ram = 0x00000000,
|
||||
.phys_io = 0x7fffc000,
|
||||
.io_pg_offst = ((0xffffc000) >> 18) & 0xfffc,
|
||||
.map_io = epxa10db_map_io,
|
||||
.init_irq = epxa10db_init_irq,
|
||||
.timer = &epxa10db_timer,
|
||||
MACHINE_END
|
||||
|
||||
|
@ -84,12 +84,14 @@ fixup_cats(struct machine_desc *desc, struct tag *tags,
|
||||
}
|
||||
|
||||
MACHINE_START(CATS, "Chalice-CATS")
|
||||
MAINTAINER("Philip Blundell")
|
||||
BOOT_MEM(0x00000000, DC21285_ARMCSR_BASE, 0xfe000000)
|
||||
BOOT_PARAMS(0x00000100)
|
||||
SOFT_REBOOT
|
||||
FIXUP(fixup_cats)
|
||||
MAPIO(footbridge_map_io)
|
||||
INITIRQ(footbridge_init_irq)
|
||||
/* Maintainer: Philip Blundell */
|
||||
.phys_ram = 0x00000000,
|
||||
.phys_io = DC21285_ARMCSR_BASE,
|
||||
.io_pg_offst = ((0xfe000000) >> 18) & 0xfffc,
|
||||
.boot_params = 0x00000100,
|
||||
.soft_reboot = 1,
|
||||
.fixup = fixup_cats,
|
||||
.map_io = footbridge_map_io,
|
||||
.init_irq = footbridge_init_irq,
|
||||
.timer = &isa_timer,
|
||||
MACHINE_END
|
||||
|
@ -28,11 +28,13 @@ fixup_coebsa285(struct machine_desc *desc, struct tag *tags,
|
||||
}
|
||||
|
||||
MACHINE_START(CO285, "co-EBSA285")
|
||||
MAINTAINER("Mark van Doesburg")
|
||||
BOOT_MEM(0x00000000, DC21285_ARMCSR_BASE, 0x7cf00000)
|
||||
FIXUP(fixup_coebsa285)
|
||||
MAPIO(footbridge_map_io)
|
||||
INITIRQ(footbridge_init_irq)
|
||||
/* Maintainer: Mark van Doesburg */
|
||||
.phys_ram = 0x00000000,
|
||||
.phys_io = DC21285_ARMCSR_BASE,
|
||||
.io_pg_offst = ((0x7cf00000) >> 18) & 0xfffc,
|
||||
.fixup = fixup_coebsa285,
|
||||
.map_io = footbridge_map_io,
|
||||
.init_irq = footbridge_init_irq,
|
||||
.timer = &footbridge_timer,
|
||||
MACHINE_END
|
||||
|
||||
|
@ -13,12 +13,15 @@
|
||||
#include "common.h"
|
||||
|
||||
MACHINE_START(EBSA285, "EBSA285")
|
||||
MAINTAINER("Russell King")
|
||||
BOOT_MEM(0x00000000, DC21285_ARMCSR_BASE, 0xfe000000)
|
||||
BOOT_PARAMS(0x00000100)
|
||||
VIDEO(0x000a0000, 0x000bffff)
|
||||
MAPIO(footbridge_map_io)
|
||||
INITIRQ(footbridge_init_irq)
|
||||
/* Maintainer: Russell King */
|
||||
.phys_ram = 0x00000000,
|
||||
.phys_io = DC21285_ARMCSR_BASE,
|
||||
.io_pg_offst = ((0xfe000000) >> 18) & 0xfffc,
|
||||
.boot_params = 0x00000100,
|
||||
.video_start = 0x000a0000,
|
||||
.video_end = 0x000bffff,
|
||||
.map_io = footbridge_map_io,
|
||||
.init_irq = footbridge_init_irq,
|
||||
.timer = &footbridge_timer,
|
||||
MACHINE_END
|
||||
|
||||
|
@ -647,14 +647,17 @@ fixup_netwinder(struct machine_desc *desc, struct tag *tags,
|
||||
}
|
||||
|
||||
MACHINE_START(NETWINDER, "Rebel-NetWinder")
|
||||
MAINTAINER("Russell King/Rebel.com")
|
||||
BOOT_MEM(0x00000000, DC21285_ARMCSR_BASE, 0xfe000000)
|
||||
BOOT_PARAMS(0x00000100)
|
||||
VIDEO(0x000a0000, 0x000bffff)
|
||||
DISABLE_PARPORT(0)
|
||||
DISABLE_PARPORT(2)
|
||||
FIXUP(fixup_netwinder)
|
||||
MAPIO(footbridge_map_io)
|
||||
INITIRQ(footbridge_init_irq)
|
||||
/* Maintainer: Russell King/Rebel.com */
|
||||
.phys_ram = 0x00000000,
|
||||
.phys_io = DC21285_ARMCSR_BASE,
|
||||
.io_pg_offst = ((0xfe000000) >> 18) & 0xfffc,
|
||||
.boot_params = 0x00000100,
|
||||
.video_start = 0x000a0000,
|
||||
.video_end = 0x000bffff,
|
||||
.reserve_lp0 = 1,
|
||||
.reserve_lp2 = 1,
|
||||
.fixup = fixup_netwinder,
|
||||
.map_io = footbridge_map_io,
|
||||
.init_irq = footbridge_init_irq,
|
||||
.timer = &isa_timer,
|
||||
MACHINE_END
|
||||
|
@ -13,11 +13,13 @@
|
||||
#include "common.h"
|
||||
|
||||
MACHINE_START(PERSONAL_SERVER, "Compaq-PersonalServer")
|
||||
MAINTAINER("Jamey Hicks / George France")
|
||||
BOOT_MEM(0x00000000, DC21285_ARMCSR_BASE, 0xfe000000)
|
||||
BOOT_PARAMS(0x00000100)
|
||||
MAPIO(footbridge_map_io)
|
||||
INITIRQ(footbridge_init_irq)
|
||||
/* Maintainer: Jamey Hicks / George France */
|
||||
.phys_ram = 0x00000000,
|
||||
.phys_io = DC21285_ARMCSR_BASE,
|
||||
.io_pg_offst = ((0xfe000000) >> 18) & 0xfffc,
|
||||
.boot_params = 0x00000100,
|
||||
.map_io = footbridge_map_io,
|
||||
.init_irq = footbridge_init_irq,
|
||||
.timer = &footbridge_timer,
|
||||
MACHINE_END
|
||||
|
||||
|
@ -30,10 +30,12 @@
|
||||
#include "common.h"
|
||||
|
||||
MACHINE_START(H7201, "Hynix GMS30C7201")
|
||||
MAINTAINER("Robert Schwebel, Pengutronix")
|
||||
BOOT_MEM(0x40000000, 0x80000000, 0xf0000000)
|
||||
BOOT_PARAMS(0xc0001000)
|
||||
MAPIO(h720x_map_io)
|
||||
INITIRQ(h720x_init_irq)
|
||||
.timer = &h7201_timer,
|
||||
/* Maintainer: Robert Schwebel, Pengutronix */
|
||||
.phys_ram = 0x40000000,
|
||||
.phys_io = 0x80000000,
|
||||
.io_pg_offst = ((0xf0000000) >> 18) & 0xfffc,
|
||||
.boot_params = 0xc0001000,
|
||||
.map_io = h720x_map_io,
|
||||
.init_irq = h720x_init_irq,
|
||||
.timer = &h7201_timer,
|
||||
MACHINE_END
|
||||
|
@ -71,11 +71,13 @@ static void __init init_eval_h7202(void)
|
||||
}
|
||||
|
||||
MACHINE_START(H7202, "Hynix HMS30C7202")
|
||||
MAINTAINER("Robert Schwebel, Pengutronix")
|
||||
BOOT_MEM(0x40000000, 0x80000000, 0xf0000000)
|
||||
BOOT_PARAMS(0x40000100)
|
||||
MAPIO(h720x_map_io)
|
||||
INITIRQ(h7202_init_irq)
|
||||
.timer = &h7202_timer,
|
||||
INIT_MACHINE(init_eval_h7202)
|
||||
/* Maintainer: Robert Schwebel, Pengutronix */
|
||||
.phys_ram = 0x40000000,
|
||||
.phys_io = 0x80000000,
|
||||
.io_pg_offst = ((0xf0000000) >> 18) & 0xfffc,
|
||||
.boot_params = 0x40000100,
|
||||
.map_io = h720x_map_io,
|
||||
.init_irq = h7202_init_irq,
|
||||
.timer = &h7202_timer,
|
||||
.init_machine = init_eval_h7202,
|
||||
MACHINE_END
|
||||
|
@ -78,11 +78,13 @@ mx1ads_map_io(void)
|
||||
}
|
||||
|
||||
MACHINE_START(MX1ADS, "Motorola MX1ADS")
|
||||
MAINTAINER("Sascha Hauer, Pengutronix")
|
||||
BOOT_MEM(0x08000000, 0x00200000, 0xe0200000)
|
||||
BOOT_PARAMS(0x08000100)
|
||||
MAPIO(mx1ads_map_io)
|
||||
INITIRQ(imx_init_irq)
|
||||
/* Maintainer: Sascha Hauer, Pengutronix */
|
||||
.phys_ram = 0x08000000,
|
||||
.phys_io = 0x00200000,
|
||||
.io_pg_offst = ((0xe0200000) >> 18) & 0xfffc,
|
||||
.boot_params = 0x08000100,
|
||||
.map_io = mx1ads_map_io,
|
||||
.init_irq = imx_init_irq,
|
||||
.timer = &imx_timer,
|
||||
INIT_MACHINE(mx1ads_init)
|
||||
.init_machine = mx1ads_init,
|
||||
MACHINE_END
|
||||
|
@ -292,11 +292,13 @@ static struct sys_timer ap_timer = {
|
||||
};
|
||||
|
||||
MACHINE_START(INTEGRATOR, "ARM-Integrator")
|
||||
MAINTAINER("ARM Ltd/Deep Blue Solutions Ltd")
|
||||
BOOT_MEM(0x00000000, 0x16000000, 0xf1600000)
|
||||
BOOT_PARAMS(0x00000100)
|
||||
MAPIO(ap_map_io)
|
||||
INITIRQ(ap_init_irq)
|
||||
/* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */
|
||||
.phys_ram = 0x00000000,
|
||||
.phys_io = 0x16000000,
|
||||
.io_pg_offst = ((0xf1600000) >> 18) & 0xfffc,
|
||||
.boot_params = 0x00000100,
|
||||
.map_io = ap_map_io,
|
||||
.init_irq = ap_init_irq,
|
||||
.timer = &ap_timer,
|
||||
INIT_MACHINE(ap_init)
|
||||
.init_machine = ap_init,
|
||||
MACHINE_END
|
||||
|
@ -532,11 +532,13 @@ static struct sys_timer cp_timer = {
|
||||
};
|
||||
|
||||
MACHINE_START(CINTEGRATOR, "ARM-IntegratorCP")
|
||||
MAINTAINER("ARM Ltd/Deep Blue Solutions Ltd")
|
||||
BOOT_MEM(0x00000000, 0x16000000, 0xf1600000)
|
||||
BOOT_PARAMS(0x00000100)
|
||||
MAPIO(intcp_map_io)
|
||||
INITIRQ(intcp_init_irq)
|
||||
/* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */
|
||||
.phys_ram = 0x00000000,
|
||||
.phys_io = 0x16000000,
|
||||
.io_pg_offst = ((0xf1600000) >> 18) & 0xfffc,
|
||||
.boot_params = 0x00000100,
|
||||
.map_io = intcp_map_io,
|
||||
.init_irq = intcp_init_irq,
|
||||
.timer = &cp_timer,
|
||||
INIT_MACHINE(intcp_init)
|
||||
.init_machine = intcp_init,
|
||||
MACHINE_END
|
||||
|
@ -146,23 +146,27 @@ extern void iop321_init_time(void);
|
||||
|
||||
#if defined(CONFIG_ARCH_IQ80321)
|
||||
MACHINE_START(IQ80321, "Intel IQ80321")
|
||||
MAINTAINER("Intel Corporation")
|
||||
BOOT_MEM(PHYS_OFFSET, IQ80321_UART, IQ80321_UART)
|
||||
MAPIO(iq80321_map_io)
|
||||
INITIRQ(iop321_init_irq)
|
||||
/* Maintainer: Intel Corporation */
|
||||
.phys_ram = PHYS_OFFSET,
|
||||
.phys_io = IQ80321_UART,
|
||||
.io_pg_offst = ((IQ80321_UART) >> 18) & 0xfffc,
|
||||
.map_io = iq80321_map_io,
|
||||
.init_irq = iop321_init_irq,
|
||||
.timer = &iop321_timer,
|
||||
BOOT_PARAMS(0xa0000100)
|
||||
INIT_MACHINE(iop32x_init)
|
||||
.boot_params = 0xa0000100,
|
||||
.init_machine = iop32x_init,
|
||||
MACHINE_END
|
||||
#elif defined(CONFIG_ARCH_IQ31244)
|
||||
MACHINE_START(IQ31244, "Intel IQ31244")
|
||||
MAINTAINER("Intel Corp.")
|
||||
BOOT_MEM(PHYS_OFFSET, IQ31244_UART, IQ31244_UART)
|
||||
MAPIO(iq31244_map_io)
|
||||
INITIRQ(iop321_init_irq)
|
||||
/* Maintainer: Intel Corp. */
|
||||
.phys_ram = PHYS_OFFSET,
|
||||
.phys_io = IQ31244_UART,
|
||||
.io_pg_offst = ((IQ31244_UART) >> 18) & 0xfffc,
|
||||
.map_io = iq31244_map_io,
|
||||
.init_irq = iop321_init_irq,
|
||||
.timer = &iop321_timer,
|
||||
BOOT_PARAMS(0xa0000100)
|
||||
INIT_MACHINE(iop32x_init)
|
||||
.boot_params = 0xa0000100,
|
||||
.init_machine = iop32x_init,
|
||||
MACHINE_END
|
||||
#else
|
||||
#error No machine descriptor defined for this IOP3XX implementation
|
||||
|
@ -148,26 +148,28 @@ extern void iq80332_map_io(void);
|
||||
|
||||
#if defined(CONFIG_ARCH_IQ80331)
|
||||
MACHINE_START(IQ80331, "Intel IQ80331")
|
||||
MAINTAINER("Intel Corp.")
|
||||
BOOT_MEM(PHYS_OFFSET, 0xfefff000, 0xfffff000) // virtual, physical
|
||||
//BOOT_MEM(PHYS_OFFSET, IOP331_UART0_VIRT, IOP331_UART0_PHYS)
|
||||
MAPIO(iq80331_map_io)
|
||||
INITIRQ(iop331_init_irq)
|
||||
/* Maintainer: Intel Corp. */
|
||||
.phys_ram = PHYS_OFFSET,
|
||||
.phys_io = 0xfefff000,
|
||||
.io_pg_offst = ((0xfffff000) >> 18) & 0xfffc, // virtual, physical
|
||||
.map_io = iq80331_map_io,
|
||||
.init_irq = iop331_init_irq,
|
||||
.timer = &iop331_timer,
|
||||
BOOT_PARAMS(0x0100)
|
||||
INIT_MACHINE(iop33x_init)
|
||||
.boot_params = 0x0100,
|
||||
.init_machine = iop33x_init,
|
||||
MACHINE_END
|
||||
|
||||
#elif defined(CONFIG_MACH_IQ80332)
|
||||
MACHINE_START(IQ80332, "Intel IQ80332")
|
||||
MAINTAINER("Intel Corp.")
|
||||
BOOT_MEM(PHYS_OFFSET, 0xfefff000, 0xfffff000) // virtual, physical
|
||||
//BOOT_MEM(PHYS_OFFSET, IOP331_UART0_VIRT, IOP331_UART0_PHYS)
|
||||
MAPIO(iq80332_map_io)
|
||||
INITIRQ(iop331_init_irq)
|
||||
/* Maintainer: Intel Corp. */
|
||||
.phys_ram = PHYS_OFFSET,
|
||||
.phys_io = 0xfefff000,
|
||||
.io_pg_offst = ((0xfffff000) >> 18) & 0xfffc, // virtual, physical
|
||||
.map_io = iq80332_map_io,
|
||||
.init_irq = iop331_init_irq,
|
||||
.timer = &iop331_timer,
|
||||
BOOT_PARAMS(0x0100)
|
||||
INIT_MACHINE(iop33x_init)
|
||||
.boot_params = 0x0100,
|
||||
.init_machine = iop33x_init,
|
||||
MACHINE_END
|
||||
|
||||
#else
|
||||
|
@ -23,7 +23,7 @@
|
||||
#include <linux/serial.h>
|
||||
#include <linux/tty.h>
|
||||
#include <linux/bitops.h>
|
||||
#include <linux/serial_core.h>
|
||||
#include <linux/serial_8250.h>
|
||||
#include <linux/mm.h>
|
||||
|
||||
#include <asm/types.h>
|
||||
@ -125,19 +125,6 @@ static struct map_desc ixp2000_io_desc[] __initdata = {
|
||||
}
|
||||
};
|
||||
|
||||
static struct uart_port ixp2000_serial_port = {
|
||||
.membase = (char *)(IXP2000_UART_VIRT_BASE + 3),
|
||||
.mapbase = IXP2000_UART_PHYS_BASE + 3,
|
||||
.irq = IRQ_IXP2000_UART,
|
||||
.flags = UPF_SKIP_TEST,
|
||||
.iotype = UPIO_MEM,
|
||||
.regshift = 2,
|
||||
.uartclk = 50000000,
|
||||
.line = 0,
|
||||
.type = PORT_XSCALE,
|
||||
.fifosize = 16
|
||||
};
|
||||
|
||||
void __init ixp2000_map_io(void)
|
||||
{
|
||||
extern unsigned int processor_id;
|
||||
@ -157,12 +144,50 @@ void __init ixp2000_map_io(void)
|
||||
}
|
||||
|
||||
iotable_init(ixp2000_io_desc, ARRAY_SIZE(ixp2000_io_desc));
|
||||
early_serial_setup(&ixp2000_serial_port);
|
||||
|
||||
/* Set slowport to 8-bit mode. */
|
||||
ixp2000_reg_write(IXP2000_SLOWPORT_FRM, 1);
|
||||
}
|
||||
|
||||
|
||||
/*************************************************************************
|
||||
* Serial port support for IXP2000
|
||||
*************************************************************************/
|
||||
static struct plat_serial8250_port ixp2000_serial_port[] = {
|
||||
{
|
||||
.mapbase = IXP2000_UART_PHYS_BASE,
|
||||
.membase = (char *)(IXP2000_UART_VIRT_BASE + 3),
|
||||
.irq = IRQ_IXP2000_UART,
|
||||
.flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST,
|
||||
.iotype = UPIO_MEM,
|
||||
.regshift = 2,
|
||||
.uartclk = 50000000,
|
||||
},
|
||||
{ },
|
||||
};
|
||||
|
||||
static struct resource ixp2000_uart_resource = {
|
||||
.start = IXP2000_UART_PHYS_BASE,
|
||||
.end = IXP2000_UART_PHYS_BASE + 0xffff,
|
||||
.flags = IORESOURCE_MEM,
|
||||
};
|
||||
|
||||
static struct platform_device ixp2000_serial_device = {
|
||||
.name = "serial8250",
|
||||
.id = 0,
|
||||
.dev = {
|
||||
.platform_data = ixp2000_serial_port,
|
||||
},
|
||||
.num_resources = 1,
|
||||
.resource = &ixp2000_uart_resource,
|
||||
};
|
||||
|
||||
void __init ixp2000_uart_init(void)
|
||||
{
|
||||
platform_device_register(&ixp2000_serial_device);
|
||||
}
|
||||
|
||||
|
||||
/*************************************************************************
|
||||
* Timer-tick functions for IXP2000
|
||||
*************************************************************************/
|
||||
|
@ -219,17 +219,20 @@ static struct platform_device *enp2611_devices[] __initdata = {
|
||||
static void __init enp2611_init_machine(void)
|
||||
{
|
||||
platform_add_devices(enp2611_devices, ARRAY_SIZE(enp2611_devices));
|
||||
ixp2000_uart_init();
|
||||
}
|
||||
|
||||
|
||||
MACHINE_START(ENP2611, "Radisys ENP-2611 PCI network processor board")
|
||||
MAINTAINER("Lennert Buytenhek <buytenh@wantstofly.org>")
|
||||
BOOT_MEM(0x00000000, IXP2000_UART_PHYS_BASE, IXP2000_UART_VIRT_BASE)
|
||||
BOOT_PARAMS(0x00000100)
|
||||
MAPIO(ixp2000_map_io)
|
||||
INITIRQ(ixp2000_init_irq)
|
||||
/* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */
|
||||
.phys_ram = 0x00000000,
|
||||
.phys_io = IXP2000_UART_PHYS_BASE,
|
||||
.io_pg_offst = ((IXP2000_UART_VIRT_BASE) >> 18) & 0xfffc,
|
||||
.boot_params = 0x00000100,
|
||||
.map_io = ixp2000_map_io,
|
||||
.init_irq = ixp2000_init_irq,
|
||||
.timer = &enp2611_timer,
|
||||
INIT_MACHINE(enp2611_init_machine)
|
||||
.init_machine = enp2611_init_machine,
|
||||
MACHINE_END
|
||||
|
||||
|
||||
|
@ -168,12 +168,14 @@ void ixdp2400_init_irq(void)
|
||||
}
|
||||
|
||||
MACHINE_START(IXDP2400, "Intel IXDP2400 Development Platform")
|
||||
MAINTAINER("MontaVista Software, Inc.")
|
||||
BOOT_MEM(0x00000000, IXP2000_UART_PHYS_BASE, IXP2000_UART_VIRT_BASE)
|
||||
BOOT_PARAMS(0x00000100)
|
||||
MAPIO(ixdp2x00_map_io)
|
||||
INITIRQ(ixdp2400_init_irq)
|
||||
/* Maintainer: MontaVista Software, Inc. */
|
||||
.phys_ram = 0x00000000,
|
||||
.phys_io = IXP2000_UART_PHYS_BASE,
|
||||
.io_pg_offst = ((IXP2000_UART_VIRT_BASE) >> 18) & 0xfffc,
|
||||
.boot_params = 0x00000100,
|
||||
.map_io = ixdp2x00_map_io,
|
||||
.init_irq = ixdp2400_init_irq,
|
||||
.timer = &ixdp2400_timer,
|
||||
INIT_MACHINE(ixdp2x00_init_machine)
|
||||
.init_machine = ixdp2x00_init_machine,
|
||||
MACHINE_END
|
||||
|
||||
|
@ -284,12 +284,14 @@ void ixdp2800_init_irq(void)
|
||||
}
|
||||
|
||||
MACHINE_START(IXDP2800, "Intel IXDP2800 Development Platform")
|
||||
MAINTAINER("MontaVista Software, Inc.")
|
||||
BOOT_MEM(0x00000000, IXP2000_UART_PHYS_BASE, IXP2000_UART_VIRT_BASE)
|
||||
BOOT_PARAMS(0x00000100)
|
||||
MAPIO(ixdp2x00_map_io)
|
||||
INITIRQ(ixdp2800_init_irq)
|
||||
/* Maintainer: MontaVista Software, Inc. */
|
||||
.phys_ram = 0x00000000,
|
||||
.phys_io = IXP2000_UART_PHYS_BASE,
|
||||
.io_pg_offst = ((IXP2000_UART_VIRT_BASE) >> 18) & 0xfffc,
|
||||
.boot_params = 0x00000100,
|
||||
.map_io = ixdp2x00_map_io,
|
||||
.init_irq = ixdp2800_init_irq,
|
||||
.timer = &ixdp2800_timer,
|
||||
INIT_MACHINE(ixdp2x00_init_machine)
|
||||
.init_machine = ixdp2x00_init_machine,
|
||||
MACHINE_END
|
||||
|
||||
|
@ -303,5 +303,6 @@ void __init ixdp2x00_init_machine(void)
|
||||
gpio_line_config(IXDP2X00_GPIO_I2C_ENABLE, GPIO_OUT);
|
||||
|
||||
platform_add_devices(ixdp2x00_devices, ARRAY_SIZE(ixdp2x00_devices));
|
||||
ixp2000_uart_init();
|
||||
}
|
||||
|
||||
|
@ -370,30 +370,35 @@ static void __init ixdp2x01_init_machine(void)
|
||||
((*IXDP2X01_CPLD_FLASH_REG & IXDP2X01_CPLD_FLASH_BANK_MASK) + 1);
|
||||
|
||||
platform_add_devices(ixdp2x01_devices, ARRAY_SIZE(ixdp2x01_devices));
|
||||
ixp2000_uart_init();
|
||||
}
|
||||
|
||||
|
||||
#ifdef CONFIG_ARCH_IXDP2401
|
||||
MACHINE_START(IXDP2401, "Intel IXDP2401 Development Platform")
|
||||
MAINTAINER("MontaVista Software, Inc.")
|
||||
BOOT_MEM(0x00000000, IXP2000_UART_PHYS_BASE, IXP2000_UART_VIRT_BASE)
|
||||
BOOT_PARAMS(0x00000100)
|
||||
MAPIO(ixdp2x01_map_io)
|
||||
INITIRQ(ixdp2x01_init_irq)
|
||||
/* Maintainer: MontaVista Software, Inc. */
|
||||
.phys_ram = 0x00000000,
|
||||
.phys_io = IXP2000_UART_PHYS_BASE,
|
||||
.io_pg_offst = ((IXP2000_UART_VIRT_BASE) >> 18) & 0xfffc,
|
||||
.boot_params = 0x00000100,
|
||||
.map_io = ixdp2x01_map_io,
|
||||
.init_irq = ixdp2x01_init_irq,
|
||||
.timer = &ixdp2x01_timer,
|
||||
INIT_MACHINE(ixdp2x01_init_machine)
|
||||
.init_machine = ixdp2x01_init_machine,
|
||||
MACHINE_END
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_ARCH_IXDP2801
|
||||
MACHINE_START(IXDP2801, "Intel IXDP2801 Development Platform")
|
||||
MAINTAINER("MontaVista Software, Inc.")
|
||||
BOOT_MEM(0x00000000, IXP2000_UART_PHYS_BASE, IXP2000_UART_VIRT_BASE)
|
||||
BOOT_PARAMS(0x00000100)
|
||||
MAPIO(ixdp2x01_map_io)
|
||||
INITIRQ(ixdp2x01_init_irq)
|
||||
/* Maintainer: MontaVista Software, Inc. */
|
||||
.phys_ram = 0x00000000,
|
||||
.phys_io = IXP2000_UART_PHYS_BASE,
|
||||
.io_pg_offst = ((IXP2000_UART_VIRT_BASE) >> 18) & 0xfffc,
|
||||
.boot_params = 0x00000100,
|
||||
.map_io = ixdp2x01_map_io,
|
||||
.init_irq = ixdp2x01_init_irq,
|
||||
.timer = &ixdp2x01_timer,
|
||||
INIT_MACHINE(ixdp2x01_init_machine)
|
||||
.init_machine = ixdp2x01_init_machine,
|
||||
MACHINE_END
|
||||
#endif
|
||||
|
||||
|
@ -453,8 +453,8 @@ int ixp4xx_setup(int nr, struct pci_sys_data *sys)
|
||||
local_write_config(PCI_COMMAND, 2, PCI_COMMAND_MASTER | PCI_COMMAND_MEMORY);
|
||||
|
||||
res[0].name = "PCI I/O Space";
|
||||
res[0].start = 0x00001000;
|
||||
res[0].end = 0xffff0000;
|
||||
res[0].start = 0x00000000;
|
||||
res[0].end = 0x0000ffff;
|
||||
res[0].flags = IORESOURCE_IO;
|
||||
|
||||
res[1].name = "PCI Memory Space";
|
||||
|
@ -56,21 +56,24 @@ static struct resource coyote_uart_resource = {
|
||||
.flags = IORESOURCE_MEM,
|
||||
};
|
||||
|
||||
static struct plat_serial8250_port coyote_uart_data = {
|
||||
.mapbase = IXP4XX_UART2_BASE_PHYS,
|
||||
.membase = (char *)IXP4XX_UART2_BASE_VIRT + REG_OFFSET,
|
||||
.irq = IRQ_IXP4XX_UART2,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.iotype = UPIO_MEM,
|
||||
.regshift = 2,
|
||||
.uartclk = IXP4XX_UART_XTAL,
|
||||
static struct plat_serial8250_port coyote_uart_data[] = {
|
||||
{
|
||||
.mapbase = IXP4XX_UART2_BASE_PHYS,
|
||||
.membase = (char *)IXP4XX_UART2_BASE_VIRT + REG_OFFSET,
|
||||
.irq = IRQ_IXP4XX_UART2,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.iotype = UPIO_MEM,
|
||||
.regshift = 2,
|
||||
.uartclk = IXP4XX_UART_XTAL,
|
||||
},
|
||||
{ },
|
||||
};
|
||||
|
||||
static struct platform_device coyote_uart = {
|
||||
.name = "serial8250",
|
||||
.id = 0,
|
||||
.dev = {
|
||||
.platform_data = &coyote_uart_data,
|
||||
.platform_data = coyote_uart_data,
|
||||
},
|
||||
.num_resources = 1,
|
||||
.resource = &coyote_uart_resource,
|
||||
@ -87,10 +90,10 @@ static void __init coyote_init(void)
|
||||
*IXP4XX_EXP_CS1 = *IXP4XX_EXP_CS0;
|
||||
|
||||
if (machine_is_ixdpg425()) {
|
||||
coyote_uart_data.membase =
|
||||
coyote_uart_data[0].membase =
|
||||
(char*)(IXP4XX_UART1_BASE_VIRT + REG_OFFSET);
|
||||
coyote_uart_data.mapbase = IXP4XX_UART1_BASE_PHYS;
|
||||
coyote_uart_data.irq = IRQ_IXP4XX_UART1;
|
||||
coyote_uart_data[0].mapbase = IXP4XX_UART1_BASE_PHYS;
|
||||
coyote_uart_data[0].irq = IRQ_IXP4XX_UART1;
|
||||
}
|
||||
|
||||
|
||||
@ -100,14 +103,15 @@ static void __init coyote_init(void)
|
||||
|
||||
#ifdef CONFIG_ARCH_ADI_COYOTE
|
||||
MACHINE_START(ADI_COYOTE, "ADI Engineering Coyote")
|
||||
MAINTAINER("MontaVista Software, Inc.")
|
||||
BOOT_MEM(PHYS_OFFSET, IXP4XX_PERIPHERAL_BASE_PHYS,
|
||||
IXP4XX_PERIPHERAL_BASE_VIRT)
|
||||
MAPIO(coyote_map_io)
|
||||
INITIRQ(ixp4xx_init_irq)
|
||||
/* Maintainer: MontaVista Software, Inc. */
|
||||
.phys_ram = PHYS_OFFSET,
|
||||
.phys_io = IXP4XX_PERIPHERAL_BASE_PHYS,
|
||||
.io_pg_offst = ((IXP4XX_PERIPHERAL_BASE_VIRT) >> 18) & 0xfffc,
|
||||
.map_io = coyote_map_io,
|
||||
.init_irq = ixp4xx_init_irq,
|
||||
.timer = &ixp4xx_timer,
|
||||
BOOT_PARAMS(0x0100)
|
||||
INIT_MACHINE(coyote_init)
|
||||
.boot_params = 0x0100,
|
||||
.init_machine = coyote_init,
|
||||
MACHINE_END
|
||||
#endif
|
||||
|
||||
@ -117,14 +121,15 @@ MACHINE_END
|
||||
*/
|
||||
#ifdef CONFIG_MACH_IXDPG425
|
||||
MACHINE_START(IXDPG425, "Intel IXDPG425")
|
||||
MAINTAINER("MontaVista Software, Inc.")
|
||||
BOOT_MEM(PHYS_OFFSET, IXP4XX_PERIPHERAL_BASE_PHYS,
|
||||
IXP4XX_PERIPHERAL_BASE_VIRT)
|
||||
MAPIO(coyote_map_io)
|
||||
INITIRQ(ixp4xx_init_irq)
|
||||
/* Maintainer: MontaVista Software, Inc. */
|
||||
.phys_ram = PHYS_OFFSET,
|
||||
.phys_io = IXP4XX_PERIPHERAL_BASE_PHYS,
|
||||
.io_pg_offst = ((IXP4XX_PERIPHERAL_BASE_VIRT) >> 18) & 0xfffc,
|
||||
.map_io = coyote_map_io,
|
||||
.init_irq = ixp4xx_init_irq,
|
||||
.timer = &ixp4xx_timer,
|
||||
BOOT_PARAMS(0x0100)
|
||||
INIT_MACHINE(coyote_init)
|
||||
.boot_params = 0x0100,
|
||||
.init_machine = coyote_init,
|
||||
MACHINE_END
|
||||
#endif
|
||||
|
||||
|
@ -140,14 +140,15 @@ static void __init gtwx5715_init(void)
|
||||
|
||||
|
||||
MACHINE_START(GTWX5715, "Gemtek GTWX5715 (Linksys WRV54G)")
|
||||
MAINTAINER("George Joseph")
|
||||
BOOT_MEM(PHYS_OFFSET, IXP4XX_UART2_BASE_PHYS,
|
||||
IXP4XX_UART2_BASE_VIRT)
|
||||
MAPIO(gtwx5715_map_io)
|
||||
INITIRQ(ixp4xx_init_irq)
|
||||
.timer = &ixp4xx_timer,
|
||||
BOOT_PARAMS(0x0100)
|
||||
INIT_MACHINE(gtwx5715_init)
|
||||
/* Maintainer: George Joseph */
|
||||
.phys_ram = PHYS_OFFSET,
|
||||
.phys_io = IXP4XX_UART2_BASE_PHYS,
|
||||
.io_pg_offst = ((IXP4XX_UART2_BASE_VIRT) >> 18) & 0xfffc,
|
||||
.map_io = gtwx5715_map_io,
|
||||
.init_irq = ixp4xx_init_irq,
|
||||
.timer = &ixp4xx_timer,
|
||||
.boot_params = 0x0100,
|
||||
.init_machine = gtwx5715_init,
|
||||
MACHINE_END
|
||||
|
||||
|
||||
|
@ -95,7 +95,8 @@ static struct plat_serial8250_port ixdp425_uart_data[] = {
|
||||
.iotype = UPIO_MEM,
|
||||
.regshift = 2,
|
||||
.uartclk = IXP4XX_UART_XTAL,
|
||||
}
|
||||
},
|
||||
{ },
|
||||
};
|
||||
|
||||
static struct platform_device ixdp425_uart = {
|
||||
@ -128,36 +129,39 @@ static void __init ixdp425_init(void)
|
||||
}
|
||||
|
||||
MACHINE_START(IXDP425, "Intel IXDP425 Development Platform")
|
||||
MAINTAINER("MontaVista Software, Inc.")
|
||||
BOOT_MEM(PHYS_OFFSET, IXP4XX_PERIPHERAL_BASE_PHYS,
|
||||
IXP4XX_PERIPHERAL_BASE_VIRT)
|
||||
MAPIO(ixdp425_map_io)
|
||||
INITIRQ(ixp4xx_init_irq)
|
||||
/* Maintainer: MontaVista Software, Inc. */
|
||||
.phys_ram = PHYS_OFFSET,
|
||||
.phys_io = IXP4XX_PERIPHERAL_BASE_PHYS,
|
||||
.io_pg_offst = ((IXP4XX_PERIPHERAL_BASE_VIRT) >> 18) & 0xfffc,
|
||||
.map_io = ixdp425_map_io,
|
||||
.init_irq = ixp4xx_init_irq,
|
||||
.timer = &ixp4xx_timer,
|
||||
BOOT_PARAMS(0x0100)
|
||||
INIT_MACHINE(ixdp425_init)
|
||||
.boot_params = 0x0100,
|
||||
.init_machine = ixdp425_init,
|
||||
MACHINE_END
|
||||
|
||||
MACHINE_START(IXDP465, "Intel IXDP465 Development Platform")
|
||||
MAINTAINER("MontaVista Software, Inc.")
|
||||
BOOT_MEM(PHYS_OFFSET, IXP4XX_PERIPHERAL_BASE_PHYS,
|
||||
IXP4XX_PERIPHERAL_BASE_VIRT)
|
||||
MAPIO(ixdp425_map_io)
|
||||
INITIRQ(ixp4xx_init_irq)
|
||||
/* Maintainer: MontaVista Software, Inc. */
|
||||
.phys_ram = PHYS_OFFSET,
|
||||
.phys_io = IXP4XX_PERIPHERAL_BASE_PHYS,
|
||||
.io_pg_offst = ((IXP4XX_PERIPHERAL_BASE_VIRT) >> 18) & 0xfffc,
|
||||
.map_io = ixdp425_map_io,
|
||||
.init_irq = ixp4xx_init_irq,
|
||||
.timer = &ixp4xx_timer,
|
||||
BOOT_PARAMS(0x0100)
|
||||
INIT_MACHINE(ixdp425_init)
|
||||
.boot_params = 0x0100,
|
||||
.init_machine = ixdp425_init,
|
||||
MACHINE_END
|
||||
|
||||
MACHINE_START(IXCDP1100, "Intel IXCDP1100 Development Platform")
|
||||
MAINTAINER("MontaVista Software, Inc.")
|
||||
BOOT_MEM(PHYS_OFFSET, IXP4XX_PERIPHERAL_BASE_PHYS,
|
||||
IXP4XX_PERIPHERAL_BASE_VIRT)
|
||||
MAPIO(ixdp425_map_io)
|
||||
INITIRQ(ixp4xx_init_irq)
|
||||
/* Maintainer: MontaVista Software, Inc. */
|
||||
.phys_ram = PHYS_OFFSET,
|
||||
.phys_io = IXP4XX_PERIPHERAL_BASE_PHYS,
|
||||
.io_pg_offst = ((IXP4XX_PERIPHERAL_BASE_VIRT) >> 18) & 0xfffc,
|
||||
.map_io = ixdp425_map_io,
|
||||
.init_irq = ixp4xx_init_irq,
|
||||
.timer = &ixp4xx_timer,
|
||||
BOOT_PARAMS(0x0100)
|
||||
INIT_MACHINE(ixdp425_init)
|
||||
.boot_params = 0x0100,
|
||||
.init_machine = ixdp425_init,
|
||||
MACHINE_END
|
||||
|
||||
/*
|
||||
@ -168,14 +172,15 @@ MACHINE_END
|
||||
*/
|
||||
#ifdef CONFIG_ARCH_AVILA
|
||||
MACHINE_START(AVILA, "Gateworks Avila Network Platform")
|
||||
MAINTAINER("Deepak Saxena <dsaxena@plexity.net>")
|
||||
BOOT_MEM(PHYS_OFFSET, IXP4XX_PERIPHERAL_BASE_PHYS,
|
||||
IXP4XX_PERIPHERAL_BASE_VIRT)
|
||||
MAPIO(ixdp425_map_io)
|
||||
INITIRQ(ixp4xx_init_irq)
|
||||
/* Maintainer: Deepak Saxena <dsaxena@plexity.net> */
|
||||
.phys_ram = PHYS_OFFSET,
|
||||
.phys_io = IXP4XX_PERIPHERAL_BASE_PHYS,
|
||||
.io_pg_offst = ((IXP4XX_PERIPHERAL_BASE_VIRT) >> 18) & 0xfffc,
|
||||
.map_io = ixdp425_map_io,
|
||||
.init_irq = ixp4xx_init_irq,
|
||||
.timer = &ixp4xx_timer,
|
||||
BOOT_PARAMS(0x0100)
|
||||
INIT_MACHINE(ixdp425_init)
|
||||
.boot_params = 0x0100,
|
||||
.init_machine = ixdp425_init,
|
||||
MACHINE_END
|
||||
#endif
|
||||
|
||||
|
@ -81,9 +81,11 @@ static void __init l7200_map_io(void)
|
||||
}
|
||||
|
||||
MACHINE_START(L7200, "LinkUp Systems L7200")
|
||||
MAINTAINER("Steve Hill / Scott McConnell")
|
||||
BOOT_MEM(0xf0000000, 0x80040000, 0xd0000000)
|
||||
MAPIO(l7200_map_io)
|
||||
INITIRQ(l7200_init_irq)
|
||||
/* Maintainer: Steve Hill / Scott McConnell */
|
||||
.phys_ram = 0xf0000000,
|
||||
.phys_io = 0x80040000,
|
||||
.io_pg_offst = ((0xd0000000) >> 18) & 0xfffc,
|
||||
.map_io = l7200_map_io,
|
||||
.init_irq = l7200_init_irq,
|
||||
MACHINE_END
|
||||
|
||||
|
@ -102,10 +102,12 @@ void __init lh7a40x_init_board_irq (void)
|
||||
}
|
||||
|
||||
MACHINE_START (KEV7A400, "Sharp KEV7a400")
|
||||
MAINTAINER ("Marc Singer")
|
||||
BOOT_MEM (0xc0000000, 0x80000000, io_p2v (0x80000000))
|
||||
BOOT_PARAMS (0xc0000100)
|
||||
MAPIO (kev7a400_map_io)
|
||||
INITIRQ (lh7a400_init_irq)
|
||||
/* Maintainer: Marc Singer */
|
||||
.phys_ram = 0xc0000000,
|
||||
.phys_io = 0x80000000,
|
||||
.io_pg_offst = ((io_p2v (0x80000000))>>18) & 0xfffc,
|
||||
.boot_params = 0xc0000100,
|
||||
.map_io = kev7a400_map_io,
|
||||
.init_irq = lh7a400_init_irq,
|
||||
.timer = &lh7a40x_timer,
|
||||
MACHINE_END
|
||||
|
@ -260,13 +260,15 @@ lpd7a400_map_io(void)
|
||||
#ifdef CONFIG_MACH_LPD7A400
|
||||
|
||||
MACHINE_START (LPD7A400, "Logic Product Development LPD7A400-10")
|
||||
MAINTAINER ("Marc Singer")
|
||||
BOOT_MEM (0xc0000000, 0x80000000, io_p2v (0x80000000))
|
||||
BOOT_PARAMS (0xc0000100)
|
||||
MAPIO (lpd7a400_map_io)
|
||||
INITIRQ (lh7a400_init_irq)
|
||||
/* Maintainer: Marc Singer */
|
||||
.phys_ram = 0xc0000000,
|
||||
.phys_io = 0x80000000,
|
||||
.io_pg_offst = ((io_p2v (0x80000000))>>18) & 0xfffc,
|
||||
.boot_params = 0xc0000100,
|
||||
.map_io = lpd7a400_map_io,
|
||||
.init_irq = lh7a400_init_irq,
|
||||
.timer = &lh7a40x_timer,
|
||||
INIT_MACHINE (lpd7a40x_init)
|
||||
.init_machine = lpd7a40x_init,
|
||||
MACHINE_END
|
||||
|
||||
#endif
|
||||
@ -274,13 +276,15 @@ MACHINE_END
|
||||
#ifdef CONFIG_MACH_LPD7A404
|
||||
|
||||
MACHINE_START (LPD7A404, "Logic Product Development LPD7A404-10")
|
||||
MAINTAINER ("Marc Singer")
|
||||
BOOT_MEM (0xc0000000, 0x80000000, io_p2v (0x80000000))
|
||||
BOOT_PARAMS (0xc0000100)
|
||||
MAPIO (lpd7a400_map_io)
|
||||
INITIRQ (lh7a404_init_irq)
|
||||
/* Maintainer: Marc Singer */
|
||||
.phys_ram = 0xc0000000,
|
||||
.phys_io = 0x80000000,
|
||||
.io_pg_offst = ((io_p2v (0x80000000))>>18) & 0xfffc,
|
||||
.boot_params = 0xc0000100,
|
||||
.map_io = lpd7a400_map_io,
|
||||
.init_irq = lh7a404_init_irq,
|
||||
.timer = &lh7a40x_timer,
|
||||
INIT_MACHINE (lpd7a40x_init)
|
||||
.init_machine = lpd7a40x_init,
|
||||
MACHINE_END
|
||||
|
||||
#endif
|
||||
|
@ -1,221 +0,0 @@
|
||||
if ARCH_OMAP
|
||||
|
||||
menu "TI OMAP Implementations"
|
||||
|
||||
comment "OMAP Core Type"
|
||||
|
||||
config ARCH_OMAP730
|
||||
depends on ARCH_OMAP
|
||||
bool "OMAP730 Based System"
|
||||
select ARCH_OMAP_OTG
|
||||
|
||||
config ARCH_OMAP1510
|
||||
depends on ARCH_OMAP
|
||||
default y
|
||||
bool "OMAP1510 Based System"
|
||||
|
||||
config ARCH_OMAP16XX
|
||||
depends on ARCH_OMAP
|
||||
bool "OMAP16XX Based System"
|
||||
select ARCH_OMAP_OTG
|
||||
|
||||
config ARCH_OMAP_OTG
|
||||
bool
|
||||
|
||||
comment "OMAP Board Type"
|
||||
|
||||
config MACH_OMAP_INNOVATOR
|
||||
bool "TI Innovator"
|
||||
depends on ARCH_OMAP1510 || ARCH_OMAP16XX
|
||||
help
|
||||
TI OMAP 1510 or 1610 Innovator board support. Say Y here if you
|
||||
have such a board.
|
||||
|
||||
config MACH_OMAP_H2
|
||||
bool "TI H2 Support"
|
||||
depends on ARCH_OMAP16XX
|
||||
help
|
||||
TI OMAP 1610/1611B H2 board support. Say Y here if you have such
|
||||
a board.
|
||||
|
||||
config MACH_OMAP_H3
|
||||
bool "TI H3 Support"
|
||||
depends on ARCH_OMAP16XX
|
||||
help
|
||||
TI OMAP 1710 H3 board support. Say Y here if you have such
|
||||
a board.
|
||||
|
||||
config MACH_OMAP_H4
|
||||
bool "TI H4 Support"
|
||||
depends on ARCH_OMAP16XX
|
||||
help
|
||||
TI OMAP 1610 H4 board support. Say Y here if you have such
|
||||
a board.
|
||||
|
||||
config MACH_OMAP_OSK
|
||||
bool "TI OSK Support"
|
||||
depends on ARCH_OMAP16XX
|
||||
help
|
||||
TI OMAP 5912 OSK (OMAP Starter Kit) board support. Say Y here
|
||||
if you have such a board.
|
||||
|
||||
config MACH_OMAP_PERSEUS2
|
||||
bool "TI Perseus2"
|
||||
depends on ARCH_OMAP730
|
||||
help
|
||||
Support for TI OMAP 730 Perseus2 board. Say Y here if you have such
|
||||
a board.
|
||||
|
||||
config MACH_VOICEBLUE
|
||||
bool "Voiceblue"
|
||||
depends on ARCH_OMAP1510
|
||||
help
|
||||
Support for Voiceblue GSM/VoIP gateway. Say Y here if you have such
|
||||
board.
|
||||
|
||||
config MACH_NETSTAR
|
||||
bool "NetStar"
|
||||
depends on ARCH_OMAP1510
|
||||
help
|
||||
Support for NetStar PBX. Say Y here if you have such a board.
|
||||
|
||||
config MACH_OMAP_GENERIC
|
||||
bool "Generic OMAP board"
|
||||
depends on ARCH_OMAP1510 || ARCH_OMAP16XX
|
||||
help
|
||||
Support for generic OMAP-1510, 1610 or 1710 board with
|
||||
no FPGA. Can be used as template for porting Linux to
|
||||
custom OMAP boards. Say Y here if you have a custom
|
||||
board.
|
||||
|
||||
comment "OMAP Feature Selections"
|
||||
|
||||
#config OMAP_BOOT_TAG
|
||||
# bool "OMAP bootloader information passing"
|
||||
# depends on ARCH_OMAP
|
||||
# default n
|
||||
# help
|
||||
# Say Y, if you have a bootloader which passes information
|
||||
# about your board and its peripheral configuration.
|
||||
|
||||
config OMAP_MUX
|
||||
bool "OMAP multiplexing support"
|
||||
depends on ARCH_OMAP
|
||||
default y
|
||||
help
|
||||
Pin multiplexing support for OMAP boards. If your bootloader
|
||||
sets the multiplexing correctly, say N. Otherwise, or if unsure,
|
||||
say Y.
|
||||
|
||||
config OMAP_MUX_DEBUG
|
||||
bool "Multiplexing debug output"
|
||||
depends on OMAP_MUX
|
||||
default n
|
||||
help
|
||||
Makes the multiplexing functions print out a lot of debug info.
|
||||
This is useful if you want to find out the correct values of the
|
||||
multiplexing registers.
|
||||
|
||||
config OMAP_MUX_WARNINGS
|
||||
bool "Warn about pins the bootloader didn't set up"
|
||||
depends on OMAP_MUX
|
||||
default y
|
||||
help
|
||||
Choose Y here to warn whenever driver initialization logic needs
|
||||
to change the pin multiplexing setup. When there are no warnings
|
||||
printed, it's safe to deselect OMAP_MUX for your product.
|
||||
|
||||
choice
|
||||
prompt "System timer"
|
||||
default OMAP_MPU_TIMER
|
||||
|
||||
config OMAP_MPU_TIMER
|
||||
bool "Use mpu timer"
|
||||
help
|
||||
Select this option if you want to use the OMAP mpu timer. This
|
||||
timer provides more intra-tick resolution than the 32KHz timer,
|
||||
but consumes more power.
|
||||
|
||||
config OMAP_32K_TIMER
|
||||
bool "Use 32KHz timer"
|
||||
depends on ARCH_OMAP16XX
|
||||
help
|
||||
Select this option if you want to enable the OMAP 32KHz timer.
|
||||
This timer saves power compared to the OMAP_MPU_TIMER, and has
|
||||
support for no tick during idle. The 32KHz timer provides less
|
||||
intra-tick resolution than OMAP_MPU_TIMER. The 32KHz timer is
|
||||
currently only available for OMAP-16xx.
|
||||
|
||||
endchoice
|
||||
|
||||
config OMAP_32K_TIMER_HZ
|
||||
int "Kernel internal timer frequency for 32KHz timer"
|
||||
range 32 1024
|
||||
depends on OMAP_32K_TIMER
|
||||
default "128"
|
||||
help
|
||||
Kernel internal timer frequency should be a divisor of 32768,
|
||||
such as 64 or 128.
|
||||
|
||||
choice
|
||||
prompt "Low-level debug console UART"
|
||||
depends on ARCH_OMAP
|
||||
default OMAP_LL_DEBUG_UART1
|
||||
|
||||
config OMAP_LL_DEBUG_UART1
|
||||
bool "UART1"
|
||||
|
||||
config OMAP_LL_DEBUG_UART2
|
||||
bool "UART2"
|
||||
|
||||
config OMAP_LL_DEBUG_UART3
|
||||
bool "UART3"
|
||||
|
||||
endchoice
|
||||
|
||||
config OMAP_ARM_195MHZ
|
||||
bool "OMAP ARM 195 MHz CPU"
|
||||
depends on ARCH_OMAP730
|
||||
help
|
||||
Enable 195MHz clock for OMAP CPU. If unsure, say N.
|
||||
|
||||
config OMAP_ARM_192MHZ
|
||||
bool "OMAP ARM 192 MHz CPU"
|
||||
depends on ARCH_OMAP16XX
|
||||
help
|
||||
Enable 192MHz clock for OMAP CPU. If unsure, say N.
|
||||
|
||||
config OMAP_ARM_182MHZ
|
||||
bool "OMAP ARM 182 MHz CPU"
|
||||
depends on ARCH_OMAP730
|
||||
help
|
||||
Enable 182MHz clock for OMAP CPU. If unsure, say N.
|
||||
|
||||
config OMAP_ARM_168MHZ
|
||||
bool "OMAP ARM 168 MHz CPU"
|
||||
depends on ARCH_OMAP1510 || ARCH_OMAP16XX || ARCH_OMAP730
|
||||
help
|
||||
Enable 168MHz clock for OMAP CPU. If unsure, say N.
|
||||
|
||||
config OMAP_ARM_120MHZ
|
||||
bool "OMAP ARM 120 MHz CPU"
|
||||
depends on ARCH_OMAP1510 || ARCH_OMAP16XX || ARCH_OMAP730
|
||||
help
|
||||
Enable 120MHz clock for OMAP CPU. If unsure, say N.
|
||||
|
||||
config OMAP_ARM_60MHZ
|
||||
bool "OMAP ARM 60 MHz CPU"
|
||||
depends on ARCH_OMAP1510 || ARCH_OMAP16XX || ARCH_OMAP730
|
||||
default y
|
||||
help
|
||||
Enable 60MHz clock for OMAP CPU. If unsure, say Y.
|
||||
|
||||
config OMAP_ARM_30MHZ
|
||||
bool "OMAP ARM 30 MHz CPU"
|
||||
depends on ARCH_OMAP1510 || ARCH_OMAP16XX || ARCH_OMAP730
|
||||
help
|
||||
Enable 30MHz clock for OMAP CPU. If unsure, say N.
|
||||
|
||||
endmenu
|
||||
|
||||
endif
|
@ -1,40 +0,0 @@
|
||||
#
|
||||
# Makefile for the linux kernel.
|
||||
#
|
||||
|
||||
# Common support
|
||||
obj-y := common.o time.o irq.o dma.o clock.o mux.o gpio.o mcbsp.o usb.o
|
||||
obj-m :=
|
||||
obj-n :=
|
||||
obj- :=
|
||||
led-y := leds.o
|
||||
|
||||
# Specific board support
|
||||
obj-$(CONFIG_MACH_OMAP_H2) += board-h2.o
|
||||
obj-$(CONFIG_MACH_OMAP_INNOVATOR) += board-innovator.o
|
||||
obj-$(CONFIG_MACH_OMAP_GENERIC) += board-generic.o
|
||||
obj-$(CONFIG_MACH_OMAP_PERSEUS2) += board-perseus2.o
|
||||
obj-$(CONFIG_MACH_OMAP_OSK) += board-osk.o
|
||||
obj-$(CONFIG_MACH_OMAP_H3) += board-h3.o
|
||||
obj-$(CONFIG_MACH_VOICEBLUE) += board-voiceblue.o
|
||||
obj-$(CONFIG_MACH_NETSTAR) += board-netstar.o
|
||||
|
||||
# OCPI interconnect support for 1710, 1610 and 5912
|
||||
obj-$(CONFIG_ARCH_OMAP16XX) += ocpi.o
|
||||
|
||||
# LEDs support
|
||||
led-$(CONFIG_MACH_OMAP_H2) += leds-h2p2-debug.o
|
||||
led-$(CONFIG_MACH_OMAP_INNOVATOR) += leds-innovator.o
|
||||
led-$(CONFIG_MACH_OMAP_PERSEUS2) += leds-h2p2-debug.o
|
||||
obj-$(CONFIG_LEDS) += $(led-y)
|
||||
|
||||
# Power Management
|
||||
obj-$(CONFIG_PM) += pm.o sleep.o
|
||||
|
||||
ifeq ($(CONFIG_ARCH_OMAP1510),y)
|
||||
# Innovator-1510 FPGA
|
||||
obj-$(CONFIG_MACH_OMAP_INNOVATOR) += fpga.o
|
||||
endif
|
||||
|
||||
# kgdb support
|
||||
obj-$(CONFIG_KGDB_SERIAL) += kgdb-serial.o
|
@ -1,549 +0,0 @@
|
||||
/*
|
||||
* linux/arch/arm/mach-omap/common.c
|
||||
*
|
||||
* Code common to all OMAP machines.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
#include <linux/config.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/pm.h>
|
||||
#include <linux/console.h>
|
||||
#include <linux/serial.h>
|
||||
#include <linux/tty.h>
|
||||
#include <linux/serial_8250.h>
|
||||
#include <linux/serial_reg.h>
|
||||
|
||||
#include <asm/hardware.h>
|
||||
#include <asm/system.h>
|
||||
#include <asm/pgtable.h>
|
||||
#include <asm/mach/map.h>
|
||||
#include <asm/hardware/clock.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/mach-types.h>
|
||||
|
||||
#include <asm/arch/board.h>
|
||||
#include <asm/arch/mux.h>
|
||||
#include <asm/arch/fpga.h>
|
||||
|
||||
#include "clock.h"
|
||||
|
||||
#define DEBUG 1
|
||||
|
||||
struct omap_id {
|
||||
u16 jtag_id; /* Used to determine OMAP type */
|
||||
u8 die_rev; /* Processor revision */
|
||||
u32 omap_id; /* OMAP revision */
|
||||
u32 type; /* Cpu id bits [31:08], cpu class bits [07:00] */
|
||||
};
|
||||
|
||||
/* Register values to detect the OMAP version */
|
||||
static struct omap_id omap_ids[] __initdata = {
|
||||
{ .jtag_id = 0x355f, .die_rev = 0x0, .omap_id = 0x03320000, .type = 0x07300100},
|
||||
{ .jtag_id = 0xb55f, .die_rev = 0x0, .omap_id = 0x03320000, .type = 0x07300300},
|
||||
{ .jtag_id = 0xb470, .die_rev = 0x0, .omap_id = 0x03310100, .type = 0x15100000},
|
||||
{ .jtag_id = 0xb576, .die_rev = 0x0, .omap_id = 0x03320000, .type = 0x16100000},
|
||||
{ .jtag_id = 0xb576, .die_rev = 0x2, .omap_id = 0x03320100, .type = 0x16110000},
|
||||
{ .jtag_id = 0xb576, .die_rev = 0x3, .omap_id = 0x03320100, .type = 0x16100c00},
|
||||
{ .jtag_id = 0xb576, .die_rev = 0x0, .omap_id = 0x03320200, .type = 0x16100d00},
|
||||
{ .jtag_id = 0xb613, .die_rev = 0x0, .omap_id = 0x03320300, .type = 0x1610ef00},
|
||||
{ .jtag_id = 0xb613, .die_rev = 0x0, .omap_id = 0x03320300, .type = 0x1610ef00},
|
||||
{ .jtag_id = 0xb576, .die_rev = 0x1, .omap_id = 0x03320100, .type = 0x16110000},
|
||||
{ .jtag_id = 0xb58c, .die_rev = 0x2, .omap_id = 0x03320200, .type = 0x16110b00},
|
||||
{ .jtag_id = 0xb58c, .die_rev = 0x3, .omap_id = 0x03320200, .type = 0x16110c00},
|
||||
{ .jtag_id = 0xb65f, .die_rev = 0x0, .omap_id = 0x03320400, .type = 0x16212300},
|
||||
{ .jtag_id = 0xb65f, .die_rev = 0x1, .omap_id = 0x03320400, .type = 0x16212300},
|
||||
{ .jtag_id = 0xb65f, .die_rev = 0x1, .omap_id = 0x03320500, .type = 0x16212300},
|
||||
{ .jtag_id = 0xb5f7, .die_rev = 0x0, .omap_id = 0x03330000, .type = 0x17100000},
|
||||
{ .jtag_id = 0xb5f7, .die_rev = 0x1, .omap_id = 0x03330100, .type = 0x17100000},
|
||||
{ .jtag_id = 0xb5f7, .die_rev = 0x2, .omap_id = 0x03330100, .type = 0x17100000},
|
||||
};
|
||||
|
||||
/*
|
||||
* Get OMAP type from PROD_ID.
|
||||
* 1710 has the PROD_ID in bits 15:00, not in 16:01 as documented in TRM.
|
||||
* 1510 PROD_ID is empty, and 1610 PROD_ID does not make sense.
|
||||
* Undocumented register in TEST BLOCK is used as fallback; This seems to
|
||||
* work on 1510, 1610 & 1710. The official way hopefully will work in future
|
||||
* processors.
|
||||
*/
|
||||
static u16 __init omap_get_jtag_id(void)
|
||||
{
|
||||
u32 prod_id, omap_id;
|
||||
|
||||
prod_id = omap_readl(OMAP_PRODUCTION_ID_1);
|
||||
omap_id = omap_readl(OMAP32_ID_1);
|
||||
|
||||
/* Check for unusable OMAP_PRODUCTION_ID_1 on 1611B/5912 and 730 */
|
||||
if (((prod_id >> 20) == 0) || (prod_id == omap_id))
|
||||
prod_id = 0;
|
||||
else
|
||||
prod_id &= 0xffff;
|
||||
|
||||
if (prod_id)
|
||||
return prod_id;
|
||||
|
||||
/* Use OMAP32_ID_1 as fallback */
|
||||
prod_id = ((omap_id >> 12) & 0xffff);
|
||||
|
||||
return prod_id;
|
||||
}
|
||||
|
||||
/*
|
||||
* Get OMAP revision from DIE_REV.
|
||||
* Early 1710 processors may have broken OMAP_DIE_ID, it contains PROD_ID.
|
||||
* Undocumented register in the TEST BLOCK is used as fallback.
|
||||
* REVISIT: This does not seem to work on 1510
|
||||
*/
|
||||
static u8 __init omap_get_die_rev(void)
|
||||
{
|
||||
u32 die_rev;
|
||||
|
||||
die_rev = omap_readl(OMAP_DIE_ID_1);
|
||||
|
||||
/* Check for broken OMAP_DIE_ID on early 1710 */
|
||||
if (((die_rev >> 12) & 0xffff) == omap_get_jtag_id())
|
||||
die_rev = 0;
|
||||
|
||||
die_rev = (die_rev >> 17) & 0xf;
|
||||
if (die_rev)
|
||||
return die_rev;
|
||||
|
||||
die_rev = (omap_readl(OMAP32_ID_1) >> 28) & 0xf;
|
||||
|
||||
return die_rev;
|
||||
}
|
||||
|
||||
static void __init omap_check_revision(void)
|
||||
{
|
||||
int i;
|
||||
u16 jtag_id;
|
||||
u8 die_rev;
|
||||
u32 omap_id;
|
||||
u8 cpu_type;
|
||||
|
||||
jtag_id = omap_get_jtag_id();
|
||||
die_rev = omap_get_die_rev();
|
||||
omap_id = omap_readl(OMAP32_ID_0);
|
||||
|
||||
#ifdef DEBUG
|
||||
printk("OMAP_DIE_ID_0: 0x%08x\n", omap_readl(OMAP_DIE_ID_0));
|
||||
printk("OMAP_DIE_ID_1: 0x%08x DIE_REV: %i\n",
|
||||
omap_readl(OMAP_DIE_ID_1),
|
||||
(omap_readl(OMAP_DIE_ID_1) >> 17) & 0xf);
|
||||
printk("OMAP_PRODUCTION_ID_0: 0x%08x\n", omap_readl(OMAP_PRODUCTION_ID_0));
|
||||
printk("OMAP_PRODUCTION_ID_1: 0x%08x JTAG_ID: 0x%04x\n",
|
||||
omap_readl(OMAP_PRODUCTION_ID_1),
|
||||
omap_readl(OMAP_PRODUCTION_ID_1) & 0xffff);
|
||||
printk("OMAP32_ID_0: 0x%08x\n", omap_readl(OMAP32_ID_0));
|
||||
printk("OMAP32_ID_1: 0x%08x\n", omap_readl(OMAP32_ID_1));
|
||||
printk("JTAG_ID: 0x%04x DIE_REV: %i\n", jtag_id, die_rev);
|
||||
#endif
|
||||
|
||||
system_serial_high = omap_readl(OMAP_DIE_ID_0);
|
||||
system_serial_low = omap_readl(OMAP_DIE_ID_1);
|
||||
|
||||
/* First check only the major version in a safe way */
|
||||
for (i = 0; i < ARRAY_SIZE(omap_ids); i++) {
|
||||
if (jtag_id == (omap_ids[i].jtag_id)) {
|
||||
system_rev = omap_ids[i].type;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* Check if we can find the die revision */
|
||||
for (i = 0; i < ARRAY_SIZE(omap_ids); i++) {
|
||||
if (jtag_id == omap_ids[i].jtag_id && die_rev == omap_ids[i].die_rev) {
|
||||
system_rev = omap_ids[i].type;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* Finally check also the omap_id */
|
||||
for (i = 0; i < ARRAY_SIZE(omap_ids); i++) {
|
||||
if (jtag_id == omap_ids[i].jtag_id
|
||||
&& die_rev == omap_ids[i].die_rev
|
||||
&& omap_id == omap_ids[i].omap_id) {
|
||||
system_rev = omap_ids[i].type;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* Add the cpu class info (7xx, 15xx, 16xx, 24xx) */
|
||||
cpu_type = system_rev >> 24;
|
||||
|
||||
switch (cpu_type) {
|
||||
case 0x07:
|
||||
system_rev |= 0x07;
|
||||
break;
|
||||
case 0x15:
|
||||
system_rev |= 0x15;
|
||||
break;
|
||||
case 0x16:
|
||||
case 0x17:
|
||||
system_rev |= 0x16;
|
||||
break;
|
||||
case 0x24:
|
||||
system_rev |= 0x24;
|
||||
break;
|
||||
default:
|
||||
printk("Unknown OMAP cpu type: 0x%02x\n", cpu_type);
|
||||
}
|
||||
|
||||
printk("OMAP%04x", system_rev >> 16);
|
||||
if ((system_rev >> 8) & 0xff)
|
||||
printk("%x", (system_rev >> 8) & 0xff);
|
||||
printk(" revision %i handled as %02xxx id: %08x%08x\n",
|
||||
die_rev, system_rev & 0xff, system_serial_low,
|
||||
system_serial_high);
|
||||
}
|
||||
|
||||
/*
|
||||
* ----------------------------------------------------------------------------
|
||||
* OMAP I/O mapping
|
||||
*
|
||||
* The machine specific code may provide the extra mapping besides the
|
||||
* default mapping provided here.
|
||||
* ----------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
static struct map_desc omap_io_desc[] __initdata = {
|
||||
{ IO_VIRT, IO_PHYS, IO_SIZE, MT_DEVICE },
|
||||
};
|
||||
|
||||
#ifdef CONFIG_ARCH_OMAP730
|
||||
static struct map_desc omap730_io_desc[] __initdata = {
|
||||
{ OMAP730_DSP_BASE, OMAP730_DSP_START, OMAP730_DSP_SIZE, MT_DEVICE },
|
||||
{ OMAP730_DSPREG_BASE, OMAP730_DSPREG_START, OMAP730_DSPREG_SIZE, MT_DEVICE },
|
||||
{ OMAP730_SRAM_BASE, OMAP730_SRAM_START, OMAP730_SRAM_SIZE, MT_DEVICE }
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_ARCH_OMAP1510
|
||||
static struct map_desc omap1510_io_desc[] __initdata = {
|
||||
{ OMAP1510_DSP_BASE, OMAP1510_DSP_START, OMAP1510_DSP_SIZE, MT_DEVICE },
|
||||
{ OMAP1510_DSPREG_BASE, OMAP1510_DSPREG_START, OMAP1510_DSPREG_SIZE, MT_DEVICE },
|
||||
{ OMAP1510_SRAM_BASE, OMAP1510_SRAM_START, OMAP1510_SRAM_SIZE, MT_DEVICE }
|
||||
};
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_ARCH_OMAP16XX)
|
||||
static struct map_desc omap1610_io_desc[] __initdata = {
|
||||
{ OMAP16XX_DSP_BASE, OMAP16XX_DSP_START, OMAP16XX_DSP_SIZE, MT_DEVICE },
|
||||
{ OMAP16XX_DSPREG_BASE, OMAP16XX_DSPREG_START, OMAP16XX_DSPREG_SIZE, MT_DEVICE },
|
||||
{ OMAP16XX_SRAM_BASE, OMAP16XX_SRAM_START, OMAP1610_SRAM_SIZE, MT_DEVICE }
|
||||
};
|
||||
|
||||
static struct map_desc omap5912_io_desc[] __initdata = {
|
||||
{ OMAP16XX_DSP_BASE, OMAP16XX_DSP_START, OMAP16XX_DSP_SIZE, MT_DEVICE },
|
||||
{ OMAP16XX_DSPREG_BASE, OMAP16XX_DSPREG_START, OMAP16XX_DSPREG_SIZE, MT_DEVICE },
|
||||
/*
|
||||
* The OMAP5912 has 250kByte internal SRAM. Because the mapping is baseed on page
|
||||
* size (4kByte), it seems that the last 2kByte (=0x800) of the 250kByte are not mapped.
|
||||
* Add additional 2kByte (0x800) so that the last page is mapped and the last 2kByte
|
||||
* can be used.
|
||||
*/
|
||||
{ OMAP16XX_SRAM_BASE, OMAP16XX_SRAM_START, OMAP5912_SRAM_SIZE + 0x800, MT_DEVICE }
|
||||
};
|
||||
#endif
|
||||
|
||||
static int initialized = 0;
|
||||
|
||||
static void __init _omap_map_io(void)
|
||||
{
|
||||
initialized = 1;
|
||||
|
||||
/* We have to initialize the IO space mapping before we can run
|
||||
* cpu_is_omapxxx() macros. */
|
||||
iotable_init(omap_io_desc, ARRAY_SIZE(omap_io_desc));
|
||||
omap_check_revision();
|
||||
|
||||
#ifdef CONFIG_ARCH_OMAP730
|
||||
if (cpu_is_omap730()) {
|
||||
iotable_init(omap730_io_desc, ARRAY_SIZE(omap730_io_desc));
|
||||
}
|
||||
#endif
|
||||
#ifdef CONFIG_ARCH_OMAP1510
|
||||
if (cpu_is_omap1510()) {
|
||||
iotable_init(omap1510_io_desc, ARRAY_SIZE(omap1510_io_desc));
|
||||
}
|
||||
#endif
|
||||
#if defined(CONFIG_ARCH_OMAP16XX)
|
||||
if (cpu_is_omap1610() || cpu_is_omap1710()) {
|
||||
iotable_init(omap1610_io_desc, ARRAY_SIZE(omap1610_io_desc));
|
||||
}
|
||||
if (cpu_is_omap5912()) {
|
||||
iotable_init(omap5912_io_desc, ARRAY_SIZE(omap5912_io_desc));
|
||||
}
|
||||
#endif
|
||||
|
||||
/* REVISIT: Refer to OMAP5910 Errata, Advisory SYS_1: "Timeout Abort
|
||||
* on a Posted Write in the TIPB Bridge".
|
||||
*/
|
||||
omap_writew(0x0, MPU_PUBLIC_TIPB_CNTL);
|
||||
omap_writew(0x0, MPU_PRIVATE_TIPB_CNTL);
|
||||
|
||||
/* Must init clocks early to assure that timer interrupt works
|
||||
*/
|
||||
clk_init();
|
||||
}
|
||||
|
||||
/*
|
||||
* This should only get called from board specific init
|
||||
*/
|
||||
void omap_map_io(void)
|
||||
{
|
||||
if (!initialized)
|
||||
_omap_map_io();
|
||||
}
|
||||
|
||||
static inline unsigned int omap_serial_in(struct plat_serial8250_port *up,
|
||||
int offset)
|
||||
{
|
||||
offset <<= up->regshift;
|
||||
return (unsigned int)__raw_readb(up->membase + offset);
|
||||
}
|
||||
|
||||
static inline void omap_serial_outp(struct plat_serial8250_port *p, int offset,
|
||||
int value)
|
||||
{
|
||||
offset <<= p->regshift;
|
||||
__raw_writeb(value, p->membase + offset);
|
||||
}
|
||||
|
||||
/*
|
||||
* Internal UARTs need to be initialized for the 8250 autoconfig to work
|
||||
* properly. Note that the TX watermark initialization may not be needed
|
||||
* once the 8250.c watermark handling code is merged.
|
||||
*/
|
||||
static void __init omap_serial_reset(struct plat_serial8250_port *p)
|
||||
{
|
||||
omap_serial_outp(p, UART_OMAP_MDR1, 0x07); /* disable UART */
|
||||
omap_serial_outp(p, UART_OMAP_SCR, 0x08); /* TX watermark */
|
||||
omap_serial_outp(p, UART_OMAP_MDR1, 0x00); /* enable UART */
|
||||
|
||||
if (!cpu_is_omap1510()) {
|
||||
omap_serial_outp(p, UART_OMAP_SYSC, 0x01);
|
||||
while (!(omap_serial_in(p, UART_OMAP_SYSC) & 0x01));
|
||||
}
|
||||
}
|
||||
|
||||
static struct plat_serial8250_port serial_platform_data[] = {
|
||||
{
|
||||
.membase = (char*)IO_ADDRESS(OMAP_UART1_BASE),
|
||||
.mapbase = (unsigned long)OMAP_UART1_BASE,
|
||||
.irq = INT_UART1,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.iotype = UPIO_MEM,
|
||||
.regshift = 2,
|
||||
.uartclk = OMAP16XX_BASE_BAUD * 16,
|
||||
},
|
||||
{
|
||||
.membase = (char*)IO_ADDRESS(OMAP_UART2_BASE),
|
||||
.mapbase = (unsigned long)OMAP_UART2_BASE,
|
||||
.irq = INT_UART2,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.iotype = UPIO_MEM,
|
||||
.regshift = 2,
|
||||
.uartclk = OMAP16XX_BASE_BAUD * 16,
|
||||
},
|
||||
{
|
||||
.membase = (char*)IO_ADDRESS(OMAP_UART3_BASE),
|
||||
.mapbase = (unsigned long)OMAP_UART3_BASE,
|
||||
.irq = INT_UART3,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.iotype = UPIO_MEM,
|
||||
.regshift = 2,
|
||||
.uartclk = OMAP16XX_BASE_BAUD * 16,
|
||||
},
|
||||
{ },
|
||||
};
|
||||
|
||||
static struct platform_device serial_device = {
|
||||
.name = "serial8250",
|
||||
.id = 0,
|
||||
.dev = {
|
||||
.platform_data = serial_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
/*
|
||||
* Note that on Innovator-1510 UART2 pins conflict with USB2.
|
||||
* By default UART2 does not work on Innovator-1510 if you have
|
||||
* USB OHCI enabled. To use UART2, you must disable USB2 first.
|
||||
*/
|
||||
void __init omap_serial_init(int ports[OMAP_MAX_NR_PORTS])
|
||||
{
|
||||
int i;
|
||||
|
||||
if (cpu_is_omap730()) {
|
||||
serial_platform_data[0].regshift = 0;
|
||||
serial_platform_data[1].regshift = 0;
|
||||
serial_platform_data[0].irq = INT_730_UART_MODEM_1;
|
||||
serial_platform_data[1].irq = INT_730_UART_MODEM_IRDA_2;
|
||||
}
|
||||
|
||||
if (cpu_is_omap1510()) {
|
||||
serial_platform_data[0].uartclk = OMAP1510_BASE_BAUD * 16;
|
||||
serial_platform_data[1].uartclk = OMAP1510_BASE_BAUD * 16;
|
||||
serial_platform_data[2].uartclk = OMAP1510_BASE_BAUD * 16;
|
||||
}
|
||||
|
||||
for (i = 0; i < OMAP_MAX_NR_PORTS; i++) {
|
||||
unsigned char reg;
|
||||
|
||||
if (ports[i] == 0) {
|
||||
serial_platform_data[i].membase = 0;
|
||||
serial_platform_data[i].mapbase = 0;
|
||||
continue;
|
||||
}
|
||||
|
||||
switch (i) {
|
||||
case 0:
|
||||
if (cpu_is_omap1510()) {
|
||||
omap_cfg_reg(UART1_TX);
|
||||
omap_cfg_reg(UART1_RTS);
|
||||
if (machine_is_omap_innovator()) {
|
||||
reg = fpga_read(OMAP1510_FPGA_POWER);
|
||||
reg |= OMAP1510_FPGA_PCR_COM1_EN;
|
||||
fpga_write(reg, OMAP1510_FPGA_POWER);
|
||||
udelay(10);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (cpu_is_omap1510()) {
|
||||
omap_cfg_reg(UART2_TX);
|
||||
omap_cfg_reg(UART2_RTS);
|
||||
if (machine_is_omap_innovator()) {
|
||||
reg = fpga_read(OMAP1510_FPGA_POWER);
|
||||
reg |= OMAP1510_FPGA_PCR_COM2_EN;
|
||||
fpga_write(reg, OMAP1510_FPGA_POWER);
|
||||
udelay(10);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (cpu_is_omap1510()) {
|
||||
omap_cfg_reg(UART3_TX);
|
||||
omap_cfg_reg(UART3_RX);
|
||||
}
|
||||
if (cpu_is_omap1710()) {
|
||||
clk_enable(clk_get(0, "uart3_ck"));
|
||||
}
|
||||
break;
|
||||
}
|
||||
omap_serial_reset(&serial_platform_data[i]);
|
||||
}
|
||||
}
|
||||
|
||||
static int __init omap_init(void)
|
||||
{
|
||||
return platform_device_register(&serial_device);
|
||||
}
|
||||
arch_initcall(omap_init);
|
||||
|
||||
#define NO_LENGTH_CHECK 0xffffffff
|
||||
|
||||
extern int omap_bootloader_tag_len;
|
||||
extern u8 omap_bootloader_tag[];
|
||||
|
||||
struct omap_board_config_kernel *omap_board_config;
|
||||
int omap_board_config_size = 0;
|
||||
|
||||
static const void *get_config(u16 tag, size_t len, int skip, size_t *len_out)
|
||||
{
|
||||
struct omap_board_config_kernel *kinfo = NULL;
|
||||
int i;
|
||||
|
||||
#ifdef CONFIG_OMAP_BOOT_TAG
|
||||
struct omap_board_config_entry *info = NULL;
|
||||
|
||||
if (omap_bootloader_tag_len > 4)
|
||||
info = (struct omap_board_config_entry *) omap_bootloader_tag;
|
||||
while (info != NULL) {
|
||||
u8 *next;
|
||||
|
||||
if (info->tag == tag) {
|
||||
if (skip == 0)
|
||||
break;
|
||||
skip--;
|
||||
}
|
||||
|
||||
if ((info->len & 0x03) != 0) {
|
||||
/* We bail out to avoid an alignment fault */
|
||||
printk(KERN_ERR "OMAP peripheral config: Length (%d) not word-aligned (tag %04x)\n",
|
||||
info->len, info->tag);
|
||||
return NULL;
|
||||
}
|
||||
next = (u8 *) info + sizeof(*info) + info->len;
|
||||
if (next >= omap_bootloader_tag + omap_bootloader_tag_len)
|
||||
info = NULL;
|
||||
else
|
||||
info = (struct omap_board_config_entry *) next;
|
||||
}
|
||||
if (info != NULL) {
|
||||
/* Check the length as a lame attempt to check for
|
||||
* binary inconsistancy. */
|
||||
if (len != NO_LENGTH_CHECK) {
|
||||
/* Word-align len */
|
||||
if (len & 0x03)
|
||||
len = (len + 3) & ~0x03;
|
||||
if (info->len != len) {
|
||||
printk(KERN_ERR "OMAP peripheral config: Length mismatch with tag %x (want %d, got %d)\n",
|
||||
tag, len, info->len);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
if (len_out != NULL)
|
||||
*len_out = info->len;
|
||||
return info->data;
|
||||
}
|
||||
#endif
|
||||
/* Try to find the config from the board-specific structures
|
||||
* in the kernel. */
|
||||
for (i = 0; i < omap_board_config_size; i++) {
|
||||
if (omap_board_config[i].tag == tag) {
|
||||
kinfo = &omap_board_config[i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (kinfo == NULL)
|
||||
return NULL;
|
||||
return kinfo->data;
|
||||
}
|
||||
|
||||
const void *__omap_get_config(u16 tag, size_t len, int nr)
|
||||
{
|
||||
return get_config(tag, len, nr, NULL);
|
||||
}
|
||||
EXPORT_SYMBOL(__omap_get_config);
|
||||
|
||||
const void *omap_get_var_config(u16 tag, size_t *len)
|
||||
{
|
||||
return get_config(tag, NO_LENGTH_CHECK, 0, len);
|
||||
}
|
||||
EXPORT_SYMBOL(omap_get_var_config);
|
||||
|
||||
static int __init omap_add_serial_console(void)
|
||||
{
|
||||
const struct omap_uart_config *info;
|
||||
|
||||
info = omap_get_config(OMAP_TAG_UART, struct omap_uart_config);
|
||||
if (info != NULL && info->console_uart) {
|
||||
static char speed[11], *opt = NULL;
|
||||
|
||||
if (info->console_speed) {
|
||||
snprintf(speed, sizeof(speed), "%u", info->console_speed);
|
||||
opt = speed;
|
||||
}
|
||||
return add_preferred_console("ttyS", info->console_uart - 1, opt);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
console_initcall(omap_add_serial_console);
|
144
arch/arm/mach-omap1/Kconfig
Normal file
144
arch/arm/mach-omap1/Kconfig
Normal file
@ -0,0 +1,144 @@
|
||||
comment "OMAP Core Type"
|
||||
depends on ARCH_OMAP1
|
||||
|
||||
config ARCH_OMAP730
|
||||
depends on ARCH_OMAP1
|
||||
bool "OMAP730 Based System"
|
||||
select ARCH_OMAP_OTG
|
||||
|
||||
config ARCH_OMAP1510
|
||||
depends on ARCH_OMAP1
|
||||
default y
|
||||
bool "OMAP1510 Based System"
|
||||
|
||||
config ARCH_OMAP16XX
|
||||
depends on ARCH_OMAP1
|
||||
bool "OMAP16xx Based System"
|
||||
select ARCH_OMAP_OTG
|
||||
|
||||
comment "OMAP Board Type"
|
||||
depends on ARCH_OMAP1
|
||||
|
||||
config MACH_OMAP_INNOVATOR
|
||||
bool "TI Innovator"
|
||||
depends on ARCH_OMAP1 && (ARCH_OMAP1510 || ARCH_OMAP16XX)
|
||||
help
|
||||
TI OMAP 1510 or 1610 Innovator board support. Say Y here if you
|
||||
have such a board.
|
||||
|
||||
config MACH_OMAP_H2
|
||||
bool "TI H2 Support"
|
||||
depends on ARCH_OMAP1 && ARCH_OMAP16XX
|
||||
help
|
||||
TI OMAP 1610/1611B H2 board support. Say Y here if you have such
|
||||
a board.
|
||||
|
||||
config MACH_OMAP_H3
|
||||
bool "TI H3 Support"
|
||||
depends on ARCH_OMAP1 && ARCH_OMAP16XX
|
||||
help
|
||||
TI OMAP 1710 H3 board support. Say Y here if you have such
|
||||
a board.
|
||||
|
||||
config MACH_OMAP_OSK
|
||||
bool "TI OSK Support"
|
||||
depends on ARCH_OMAP1 && ARCH_OMAP16XX
|
||||
help
|
||||
TI OMAP 5912 OSK (OMAP Starter Kit) board support. Say Y here
|
||||
if you have such a board.
|
||||
|
||||
config MACH_OMAP_PERSEUS2
|
||||
bool "TI Perseus2"
|
||||
depends on ARCH_OMAP1 && ARCH_OMAP730
|
||||
help
|
||||
Support for TI OMAP 730 Perseus2 board. Say Y here if you have such
|
||||
a board.
|
||||
|
||||
config MACH_VOICEBLUE
|
||||
bool "Voiceblue"
|
||||
depends on ARCH_OMAP1 && ARCH_OMAP1510
|
||||
help
|
||||
Support for Voiceblue GSM/VoIP gateway. Say Y here if you have
|
||||
such a board.
|
||||
|
||||
config MACH_NETSTAR
|
||||
bool "NetStar"
|
||||
depends on ARCH_OMAP1 && ARCH_OMAP1510
|
||||
help
|
||||
Support for NetStar PBX. Say Y here if you have such a board.
|
||||
|
||||
config MACH_OMAP_GENERIC
|
||||
bool "Generic OMAP board"
|
||||
depends on ARCH_OMAP1 && (ARCH_OMAP1510 || ARCH_OMAP16XX)
|
||||
help
|
||||
Support for generic OMAP-1510, 1610 or 1710 board with
|
||||
no FPGA. Can be used as template for porting Linux to
|
||||
custom OMAP boards. Say Y here if you have a custom
|
||||
board.
|
||||
|
||||
comment "OMAP CPU Speed"
|
||||
depends on ARCH_OMAP1
|
||||
|
||||
config OMAP_CLOCKS_SET_BY_BOOTLOADER
|
||||
bool "OMAP clocks set by bootloader"
|
||||
depends on ARCH_OMAP1
|
||||
help
|
||||
Enable this option to prevent the kernel from overriding the clock
|
||||
frequencies programmed by bootloader for MPU, DSP, MMUs, TC,
|
||||
internal LCD controller and MPU peripherals.
|
||||
|
||||
config OMAP_ARM_216MHZ
|
||||
bool "OMAP ARM 216 MHz CPU (1710 only)"
|
||||
depends on ARCH_OMAP1 && ARCH_OMAP16XX
|
||||
help
|
||||
Enable 216 MHz clock for OMAP1710 CPU. If unsure, say N.
|
||||
|
||||
config OMAP_ARM_195MHZ
|
||||
bool "OMAP ARM 195 MHz CPU"
|
||||
depends on ARCH_OMAP1 && ARCH_OMAP730
|
||||
help
|
||||
Enable 195MHz clock for OMAP CPU. If unsure, say N.
|
||||
|
||||
config OMAP_ARM_192MHZ
|
||||
bool "OMAP ARM 192 MHz CPU"
|
||||
depends on ARCH_OMAP1 && ARCH_OMAP16XX
|
||||
help
|
||||
Enable 192MHz clock for OMAP CPU. If unsure, say N.
|
||||
|
||||
config OMAP_ARM_182MHZ
|
||||
bool "OMAP ARM 182 MHz CPU"
|
||||
depends on ARCH_OMAP1 && ARCH_OMAP730
|
||||
help
|
||||
Enable 182MHz clock for OMAP CPU. If unsure, say N.
|
||||
|
||||
config OMAP_ARM_168MHZ
|
||||
bool "OMAP ARM 168 MHz CPU"
|
||||
depends on ARCH_OMAP1 && (ARCH_OMAP1510 || ARCH_OMAP16XX || ARCH_OMAP730)
|
||||
help
|
||||
Enable 168MHz clock for OMAP CPU. If unsure, say N.
|
||||
|
||||
config OMAP_ARM_150MHZ
|
||||
bool "OMAP ARM 150 MHz CPU"
|
||||
depends on ARCH_OMAP1 && ARCH_OMAP1510
|
||||
help
|
||||
Enable 150MHz clock for OMAP CPU. If unsure, say N.
|
||||
|
||||
config OMAP_ARM_120MHZ
|
||||
bool "OMAP ARM 120 MHz CPU"
|
||||
depends on ARCH_OMAP1 && (ARCH_OMAP1510 || ARCH_OMAP16XX || ARCH_OMAP730)
|
||||
help
|
||||
Enable 120MHz clock for OMAP CPU. If unsure, say N.
|
||||
|
||||
config OMAP_ARM_60MHZ
|
||||
bool "OMAP ARM 60 MHz CPU"
|
||||
depends on ARCH_OMAP1 && (ARCH_OMAP1510 || ARCH_OMAP16XX || ARCH_OMAP730)
|
||||
default y
|
||||
help
|
||||
Enable 60MHz clock for OMAP CPU. If unsure, say Y.
|
||||
|
||||
config OMAP_ARM_30MHZ
|
||||
bool "OMAP ARM 30 MHz CPU"
|
||||
depends on ARCH_OMAP1 && (ARCH_OMAP1510 || ARCH_OMAP16XX || ARCH_OMAP730)
|
||||
help
|
||||
Enable 30MHz clock for OMAP CPU. If unsure, say N.
|
||||
|
30
arch/arm/mach-omap1/Makefile
Normal file
30
arch/arm/mach-omap1/Makefile
Normal file
@ -0,0 +1,30 @@
|
||||
#
|
||||
# Makefile for the linux kernel.
|
||||
#
|
||||
|
||||
# Common support
|
||||
obj-y := io.o id.o irq.o time.o serial.o
|
||||
led-y := leds.o
|
||||
|
||||
# Specific board support
|
||||
obj-$(CONFIG_MACH_OMAP_H2) += board-h2.o
|
||||
obj-$(CONFIG_MACH_OMAP_INNOVATOR) += board-innovator.o
|
||||
obj-$(CONFIG_MACH_OMAP_GENERIC) += board-generic.o
|
||||
obj-$(CONFIG_MACH_OMAP_PERSEUS2) += board-perseus2.o
|
||||
obj-$(CONFIG_MACH_OMAP_OSK) += board-osk.o
|
||||
obj-$(CONFIG_MACH_OMAP_H3) += board-h3.o
|
||||
obj-$(CONFIG_MACH_VOICEBLUE) += board-voiceblue.o
|
||||
obj-$(CONFIG_MACH_NETSTAR) += board-netstar.o
|
||||
|
||||
ifeq ($(CONFIG_ARCH_OMAP1510),y)
|
||||
# Innovator-1510 FPGA
|
||||
obj-$(CONFIG_MACH_OMAP_INNOVATOR) += fpga.o
|
||||
endif
|
||||
|
||||
# LEDs support
|
||||
led-$(CONFIG_MACH_OMAP_H2) += leds-h2p2-debug.o
|
||||
led-$(CONFIG_MACH_OMAP_INNOVATOR) += leds-innovator.o
|
||||
led-$(CONFIG_MACH_OMAP_PERSEUS2) += leds-h2p2-debug.o
|
||||
led-$(CONFIG_MACH_OMAP_OSK) += leds-osk.o
|
||||
obj-$(CONFIG_LEDS) += $(led-y)
|
||||
|
@ -1,4 +1,3 @@
|
||||
zreladdr-y := 0x10008000
|
||||
params_phys-y := 0x10000100
|
||||
initrd_phys-y := 0x10800000
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* linux/arch/arm/mach-omap/board-generic.c
|
||||
* linux/arch/arm/mach-omap1/board-generic.c
|
||||
*
|
||||
* Modified from board-innovator1510.c
|
||||
*
|
||||
@ -26,8 +26,7 @@
|
||||
#include <asm/arch/mux.h>
|
||||
#include <asm/arch/usb.h>
|
||||
#include <asm/arch/board.h>
|
||||
|
||||
#include "common.h"
|
||||
#include <asm/arch/common.h>
|
||||
|
||||
static int __initdata generic_serial_ports[OMAP_MAX_NR_PORTS] = {1, 1, 1};
|
||||
|
||||
@ -84,15 +83,17 @@ static void __init omap_generic_init(void)
|
||||
|
||||
static void __init omap_generic_map_io(void)
|
||||
{
|
||||
omap_map_io();
|
||||
omap_map_common_io()
|
||||
}
|
||||
|
||||
MACHINE_START(OMAP_GENERIC, "Generic OMAP1510/1610/1710")
|
||||
MAINTAINER("Tony Lindgren <tony@atomide.com>")
|
||||
BOOT_MEM(0x10000000, 0xfff00000, 0xfef00000)
|
||||
BOOT_PARAMS(0x10000100)
|
||||
MAPIO(omap_generic_map_io)
|
||||
INITIRQ(omap_generic_init_irq)
|
||||
INIT_MACHINE(omap_generic_init)
|
||||
/* Maintainer: Tony Lindgren <tony@atomide.com> */
|
||||
.phys_ram = 0x10000000,
|
||||
.phys_io = 0xfff00000,
|
||||
.io_pg_offst = ((0xfef00000) >> 18) & 0xfffc,
|
||||
.boot_params = 0x10000100,
|
||||
.map_io = omap_generic_map_io,
|
||||
.init_irq = omap_generic_init_irq,
|
||||
.init_machine = omap_generic_init,
|
||||
.timer = &omap_timer,
|
||||
MACHINE_END
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* linux/arch/arm/mach-omap/board-h2.c
|
||||
* linux/arch/arm/mach-omap1/board-h2.c
|
||||
*
|
||||
* Board specific inits for OMAP-1610 H2
|
||||
*
|
||||
@ -35,8 +35,7 @@
|
||||
#include <asm/arch/gpio.h>
|
||||
#include <asm/arch/tc.h>
|
||||
#include <asm/arch/usb.h>
|
||||
|
||||
#include "common.h"
|
||||
#include <asm/arch/common.h>
|
||||
|
||||
extern int omap_gpio_init(void);
|
||||
|
||||
@ -172,16 +171,18 @@ static void __init h2_init(void)
|
||||
|
||||
static void __init h2_map_io(void)
|
||||
{
|
||||
omap_map_io();
|
||||
omap_map_common_io();
|
||||
omap_serial_init(h2_serial_ports);
|
||||
}
|
||||
|
||||
MACHINE_START(OMAP_H2, "TI-H2")
|
||||
MAINTAINER("Imre Deak <imre.deak@nokia.com>")
|
||||
BOOT_MEM(0x10000000, 0xfff00000, 0xfef00000)
|
||||
BOOT_PARAMS(0x10000100)
|
||||
MAPIO(h2_map_io)
|
||||
INITIRQ(h2_init_irq)
|
||||
INIT_MACHINE(h2_init)
|
||||
/* Maintainer: Imre Deak <imre.deak@nokia.com> */
|
||||
.phys_ram = 0x10000000,
|
||||
.phys_io = 0xfff00000,
|
||||
.io_pg_offst = ((0xfef00000) >> 18) & 0xfffc,
|
||||
.boot_params = 0x10000100,
|
||||
.map_io = h2_map_io,
|
||||
.init_irq = h2_init_irq,
|
||||
.init_machine = h2_init,
|
||||
.timer = &omap_timer,
|
||||
MACHINE_END
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* linux/arch/arm/mach-omap/board-h3.c
|
||||
* linux/arch/arm/mach-omap1/board-h3.c
|
||||
*
|
||||
* This file contains OMAP1710 H3 specific code.
|
||||
*
|
||||
@ -37,8 +37,7 @@
|
||||
#include <asm/arch/mux.h>
|
||||
#include <asm/arch/tc.h>
|
||||
#include <asm/arch/usb.h>
|
||||
|
||||
#include "common.h"
|
||||
#include <asm/arch/common.h>
|
||||
|
||||
extern int omap_gpio_init(void);
|
||||
|
||||
@ -190,16 +189,18 @@ void h3_init_irq(void)
|
||||
|
||||
static void __init h3_map_io(void)
|
||||
{
|
||||
omap_map_io();
|
||||
omap_map_common_io();
|
||||
omap_serial_init(h3_serial_ports);
|
||||
}
|
||||
|
||||
MACHINE_START(OMAP_H3, "TI OMAP1710 H3 board")
|
||||
MAINTAINER("Texas Instruments, Inc.")
|
||||
BOOT_MEM(0x10000000, 0xfff00000, 0xfef00000)
|
||||
BOOT_PARAMS(0x10000100)
|
||||
MAPIO(h3_map_io)
|
||||
INITIRQ(h3_init_irq)
|
||||
INIT_MACHINE(h3_init)
|
||||
/* Maintainer: Texas Instruments, Inc. */
|
||||
.phys_ram = 0x10000000,
|
||||
.phys_io = 0xfff00000,
|
||||
.io_pg_offst = ((0xfef00000) >> 18) & 0xfffc,
|
||||
.boot_params = 0x10000100,
|
||||
.map_io = h3_map_io,
|
||||
.init_irq = h3_init_irq,
|
||||
.init_machine = h3_init,
|
||||
.timer = &omap_timer,
|
||||
MACHINE_END
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* linux/arch/arm/mach-omap/board-innovator.c
|
||||
* linux/arch/arm/mach-omap1/board-innovator.c
|
||||
*
|
||||
* Board specific inits for OMAP-1510 and OMAP-1610 Innovator
|
||||
*
|
||||
@ -33,8 +33,7 @@
|
||||
#include <asm/arch/gpio.h>
|
||||
#include <asm/arch/tc.h>
|
||||
#include <asm/arch/usb.h>
|
||||
|
||||
#include "common.h"
|
||||
#include <asm/arch/common.h>
|
||||
|
||||
static int __initdata innovator_serial_ports[OMAP_MAX_NR_PORTS] = {1, 1, 1};
|
||||
|
||||
@ -252,7 +251,7 @@ static void __init innovator_init(void)
|
||||
|
||||
static void __init innovator_map_io(void)
|
||||
{
|
||||
omap_map_io();
|
||||
omap_map_common_io();
|
||||
|
||||
#ifdef CONFIG_ARCH_OMAP1510
|
||||
if (cpu_is_omap1510()) {
|
||||
@ -270,11 +269,13 @@ static void __init innovator_map_io(void)
|
||||
}
|
||||
|
||||
MACHINE_START(OMAP_INNOVATOR, "TI-Innovator")
|
||||
MAINTAINER("MontaVista Software, Inc.")
|
||||
BOOT_MEM(0x10000000, 0xfff00000, 0xfef00000)
|
||||
BOOT_PARAMS(0x10000100)
|
||||
MAPIO(innovator_map_io)
|
||||
INITIRQ(innovator_init_irq)
|
||||
INIT_MACHINE(innovator_init)
|
||||
/* Maintainer: MontaVista Software, Inc. */
|
||||
.phys_ram = 0x10000000,
|
||||
.phys_io = 0xfff00000,
|
||||
.io_pg_offst = ((0xfef00000) >> 18) & 0xfffc,
|
||||
.boot_params = 0x10000100,
|
||||
.map_io = innovator_map_io,
|
||||
.init_irq = innovator_init_irq,
|
||||
.init_machine = innovator_init,
|
||||
.timer = &omap_timer,
|
||||
MACHINE_END
|
@ -26,8 +26,7 @@
|
||||
#include <asm/arch/gpio.h>
|
||||
#include <asm/arch/mux.h>
|
||||
#include <asm/arch/usb.h>
|
||||
|
||||
#include "common.h"
|
||||
#include <asm/arch/common.h>
|
||||
|
||||
extern void __init omap_init_time(void);
|
||||
extern int omap_gpio_init(void);
|
||||
@ -100,7 +99,7 @@ static int __initdata omap_serial_ports[OMAP_MAX_NR_PORTS] = {1, 1, 1};
|
||||
|
||||
static void __init netstar_map_io(void)
|
||||
{
|
||||
omap_map_io();
|
||||
omap_map_common_io();
|
||||
omap_serial_init(omap_serial_ports);
|
||||
}
|
||||
|
||||
@ -141,11 +140,13 @@ static int __init netstar_late_init(void)
|
||||
postcore_initcall(netstar_late_init);
|
||||
|
||||
MACHINE_START(NETSTAR, "NetStar OMAP5910")
|
||||
MAINTAINER("Ladislav Michl <michl@2n.cz>")
|
||||
BOOT_MEM(0x10000000, 0xfff00000, 0xfef00000)
|
||||
BOOT_PARAMS(0x10000100)
|
||||
MAPIO(netstar_map_io)
|
||||
INITIRQ(netstar_init_irq)
|
||||
INIT_MACHINE(netstar_init)
|
||||
.timer = &omap_timer,
|
||||
/* Maintainer: Ladislav Michl <michl@2n.cz> */
|
||||
.phys_ram = 0x10000000,
|
||||
.phys_io = 0xfff00000,
|
||||
.io_pg_offst = ((0xfef00000) >> 18) & 0xfffc,
|
||||
.boot_params = 0x10000100,
|
||||
.map_io = netstar_map_io,
|
||||
.init_irq = netstar_init_irq,
|
||||
.init_machine = netstar_init,
|
||||
.timer = &omap_timer,
|
||||
MACHINE_END
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* linux/arch/arm/mach-omap/board-osk.c
|
||||
* linux/arch/arm/mach-omap1/board-osk.c
|
||||
*
|
||||
* Board specific init for OMAP5912 OSK
|
||||
*
|
||||
@ -39,8 +39,7 @@
|
||||
#include <asm/arch/usb.h>
|
||||
#include <asm/arch/mux.h>
|
||||
#include <asm/arch/tc.h>
|
||||
|
||||
#include "common.h"
|
||||
#include <asm/arch/common.h>
|
||||
|
||||
static struct map_desc osk5912_io_desc[] __initdata = {
|
||||
{ OMAP_OSK_NOR_FLASH_BASE, OMAP_OSK_NOR_FLASH_START, OMAP_OSK_NOR_FLASH_SIZE,
|
||||
@ -153,17 +152,19 @@ static void __init osk_init(void)
|
||||
|
||||
static void __init osk_map_io(void)
|
||||
{
|
||||
omap_map_io();
|
||||
omap_map_common_io();
|
||||
iotable_init(osk5912_io_desc, ARRAY_SIZE(osk5912_io_desc));
|
||||
omap_serial_init(osk_serial_ports);
|
||||
}
|
||||
|
||||
MACHINE_START(OMAP_OSK, "TI-OSK")
|
||||
MAINTAINER("Dirk Behme <dirk.behme@de.bosch.com>")
|
||||
BOOT_MEM(0x10000000, 0xfff00000, 0xfef00000)
|
||||
BOOT_PARAMS(0x10000100)
|
||||
MAPIO(osk_map_io)
|
||||
INITIRQ(osk_init_irq)
|
||||
INIT_MACHINE(osk_init)
|
||||
/* Maintainer: Dirk Behme <dirk.behme@de.bosch.com> */
|
||||
.phys_ram = 0x10000000,
|
||||
.phys_io = 0xfff00000,
|
||||
.io_pg_offst = ((0xfef00000) >> 18) & 0xfffc,
|
||||
.boot_params = 0x10000100,
|
||||
.map_io = osk_map_io,
|
||||
.init_irq = osk_init_irq,
|
||||
.init_machine = osk_init,
|
||||
.timer = &omap_timer,
|
||||
MACHINE_END
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* linux/arch/arm/mach-omap/board-perseus2.c
|
||||
* linux/arch/arm/mach-omap1/board-perseus2.c
|
||||
*
|
||||
* Modified from board-generic.c
|
||||
*
|
||||
@ -27,8 +27,7 @@
|
||||
#include <asm/arch/gpio.h>
|
||||
#include <asm/arch/mux.h>
|
||||
#include <asm/arch/fpga.h>
|
||||
|
||||
#include "common.h"
|
||||
#include <asm/arch/common.h>
|
||||
|
||||
static struct resource smc91x_resources[] = {
|
||||
[0] = {
|
||||
@ -140,7 +139,7 @@ static struct map_desc omap_perseus2_io_desc[] __initdata = {
|
||||
|
||||
static void __init omap_perseus2_map_io(void)
|
||||
{
|
||||
omap_map_io();
|
||||
omap_map_common_io();
|
||||
iotable_init(omap_perseus2_io_desc,
|
||||
ARRAY_SIZE(omap_perseus2_io_desc));
|
||||
|
||||
@ -179,11 +178,13 @@ static void __init omap_perseus2_map_io(void)
|
||||
}
|
||||
|
||||
MACHINE_START(OMAP_PERSEUS2, "OMAP730 Perseus2")
|
||||
MAINTAINER("Kevin Hilman <kjh@hilman.org>")
|
||||
BOOT_MEM(0x10000000, 0xfff00000, 0xfef00000)
|
||||
BOOT_PARAMS(0x10000100)
|
||||
MAPIO(omap_perseus2_map_io)
|
||||
INITIRQ(omap_perseus2_init_irq)
|
||||
INIT_MACHINE(omap_perseus2_init)
|
||||
/* Maintainer: Kevin Hilman <kjh@hilman.org> */
|
||||
.phys_ram = 0x10000000,
|
||||
.phys_io = 0xfff00000,
|
||||
.io_pg_offst = ((0xfef00000) >> 18) & 0xfffc,
|
||||
.boot_params = 0x10000100,
|
||||
.map_io = omap_perseus2_map_io,
|
||||
.init_irq = omap_perseus2_init_irq,
|
||||
.init_machine = omap_perseus2_init,
|
||||
.timer = &omap_timer,
|
||||
MACHINE_END
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* linux/arch/arm/mach-omap/board-voiceblue.c
|
||||
* linux/arch/arm/mach-omap1/board-voiceblue.c
|
||||
*
|
||||
* Modified from board-generic.c
|
||||
*
|
||||
@ -31,8 +31,7 @@
|
||||
#include <asm/arch/tc.h>
|
||||
#include <asm/arch/mux.h>
|
||||
#include <asm/arch/usb.h>
|
||||
|
||||
#include "common.h"
|
||||
#include <asm/arch/common.h>
|
||||
|
||||
extern void omap_init_time(void);
|
||||
extern int omap_gpio_init(void);
|
||||
@ -170,7 +169,7 @@ static int __initdata omap_serial_ports[OMAP_MAX_NR_PORTS] = {1, 1, 1};
|
||||
|
||||
static void __init voiceblue_map_io(void)
|
||||
{
|
||||
omap_map_io();
|
||||
omap_map_common_io();
|
||||
omap_serial_init(omap_serial_ports);
|
||||
}
|
||||
|
||||
@ -246,11 +245,13 @@ EXPORT_SYMBOL(voiceblue_wdt_disable);
|
||||
EXPORT_SYMBOL(voiceblue_wdt_ping);
|
||||
|
||||
MACHINE_START(VOICEBLUE, "VoiceBlue OMAP5910")
|
||||
MAINTAINER("Ladislav Michl <michl@2n.cz>")
|
||||
BOOT_MEM(0x10000000, 0xfff00000, 0xfef00000)
|
||||
BOOT_PARAMS(0x10000100)
|
||||
MAPIO(voiceblue_map_io)
|
||||
INITIRQ(voiceblue_init_irq)
|
||||
INIT_MACHINE(voiceblue_init)
|
||||
.timer = &omap_timer,
|
||||
/* Maintainer: Ladislav Michl <michl@2n.cz> */
|
||||
.phys_ram = 0x10000000,
|
||||
.phys_io = 0xfff00000,
|
||||
.io_pg_offst = ((0xfef00000) >> 18) & 0xfffc,
|
||||
.boot_params = 0x10000100,
|
||||
.map_io = voiceblue_map_io,
|
||||
.init_irq = voiceblue_init_irq,
|
||||
.init_machine = voiceblue_init,
|
||||
.timer = &omap_timer,
|
||||
MACHINE_END
|
188
arch/arm/mach-omap1/id.c
Normal file
188
arch/arm/mach-omap1/id.c
Normal file
@ -0,0 +1,188 @@
|
||||
/*
|
||||
* linux/arch/arm/mach-omap1/id.c
|
||||
*
|
||||
* OMAP1 CPU identification code
|
||||
*
|
||||
* Copyright (C) 2004 Nokia Corporation
|
||||
* Written by Tony Lindgren <tony@atomide.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#include <linux/config.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/init.h>
|
||||
|
||||
#include <asm/io.h>
|
||||
|
||||
struct omap_id {
|
||||
u16 jtag_id; /* Used to determine OMAP type */
|
||||
u8 die_rev; /* Processor revision */
|
||||
u32 omap_id; /* OMAP revision */
|
||||
u32 type; /* Cpu id bits [31:08], cpu class bits [07:00] */
|
||||
};
|
||||
|
||||
/* Register values to detect the OMAP version */
|
||||
static struct omap_id omap_ids[] __initdata = {
|
||||
{ .jtag_id = 0x355f, .die_rev = 0x0, .omap_id = 0x03320000, .type = 0x07300100},
|
||||
{ .jtag_id = 0xb55f, .die_rev = 0x0, .omap_id = 0x03320000, .type = 0x07300300},
|
||||
{ .jtag_id = 0xb470, .die_rev = 0x0, .omap_id = 0x03310100, .type = 0x15100000},
|
||||
{ .jtag_id = 0xb576, .die_rev = 0x0, .omap_id = 0x03320000, .type = 0x16100000},
|
||||
{ .jtag_id = 0xb576, .die_rev = 0x2, .omap_id = 0x03320100, .type = 0x16110000},
|
||||
{ .jtag_id = 0xb576, .die_rev = 0x3, .omap_id = 0x03320100, .type = 0x16100c00},
|
||||
{ .jtag_id = 0xb576, .die_rev = 0x0, .omap_id = 0x03320200, .type = 0x16100d00},
|
||||
{ .jtag_id = 0xb613, .die_rev = 0x0, .omap_id = 0x03320300, .type = 0x1610ef00},
|
||||
{ .jtag_id = 0xb613, .die_rev = 0x0, .omap_id = 0x03320300, .type = 0x1610ef00},
|
||||
{ .jtag_id = 0xb576, .die_rev = 0x1, .omap_id = 0x03320100, .type = 0x16110000},
|
||||
{ .jtag_id = 0xb58c, .die_rev = 0x2, .omap_id = 0x03320200, .type = 0x16110b00},
|
||||
{ .jtag_id = 0xb58c, .die_rev = 0x3, .omap_id = 0x03320200, .type = 0x16110c00},
|
||||
{ .jtag_id = 0xb65f, .die_rev = 0x0, .omap_id = 0x03320400, .type = 0x16212300},
|
||||
{ .jtag_id = 0xb65f, .die_rev = 0x1, .omap_id = 0x03320400, .type = 0x16212300},
|
||||
{ .jtag_id = 0xb65f, .die_rev = 0x1, .omap_id = 0x03320500, .type = 0x16212300},
|
||||
{ .jtag_id = 0xb5f7, .die_rev = 0x0, .omap_id = 0x03330000, .type = 0x17100000},
|
||||
{ .jtag_id = 0xb5f7, .die_rev = 0x1, .omap_id = 0x03330100, .type = 0x17100000},
|
||||
{ .jtag_id = 0xb5f7, .die_rev = 0x2, .omap_id = 0x03330100, .type = 0x17100000},
|
||||
};
|
||||
|
||||
/*
|
||||
* Get OMAP type from PROD_ID.
|
||||
* 1710 has the PROD_ID in bits 15:00, not in 16:01 as documented in TRM.
|
||||
* 1510 PROD_ID is empty, and 1610 PROD_ID does not make sense.
|
||||
* Undocumented register in TEST BLOCK is used as fallback; This seems to
|
||||
* work on 1510, 1610 & 1710. The official way hopefully will work in future
|
||||
* processors.
|
||||
*/
|
||||
static u16 __init omap_get_jtag_id(void)
|
||||
{
|
||||
u32 prod_id, omap_id;
|
||||
|
||||
prod_id = omap_readl(OMAP_PRODUCTION_ID_1);
|
||||
omap_id = omap_readl(OMAP32_ID_1);
|
||||
|
||||
/* Check for unusable OMAP_PRODUCTION_ID_1 on 1611B/5912 and 730 */
|
||||
if (((prod_id >> 20) == 0) || (prod_id == omap_id))
|
||||
prod_id = 0;
|
||||
else
|
||||
prod_id &= 0xffff;
|
||||
|
||||
if (prod_id)
|
||||
return prod_id;
|
||||
|
||||
/* Use OMAP32_ID_1 as fallback */
|
||||
prod_id = ((omap_id >> 12) & 0xffff);
|
||||
|
||||
return prod_id;
|
||||
}
|
||||
|
||||
/*
|
||||
* Get OMAP revision from DIE_REV.
|
||||
* Early 1710 processors may have broken OMAP_DIE_ID, it contains PROD_ID.
|
||||
* Undocumented register in the TEST BLOCK is used as fallback.
|
||||
* REVISIT: This does not seem to work on 1510
|
||||
*/
|
||||
static u8 __init omap_get_die_rev(void)
|
||||
{
|
||||
u32 die_rev;
|
||||
|
||||
die_rev = omap_readl(OMAP_DIE_ID_1);
|
||||
|
||||
/* Check for broken OMAP_DIE_ID on early 1710 */
|
||||
if (((die_rev >> 12) & 0xffff) == omap_get_jtag_id())
|
||||
die_rev = 0;
|
||||
|
||||
die_rev = (die_rev >> 17) & 0xf;
|
||||
if (die_rev)
|
||||
return die_rev;
|
||||
|
||||
die_rev = (omap_readl(OMAP32_ID_1) >> 28) & 0xf;
|
||||
|
||||
return die_rev;
|
||||
}
|
||||
|
||||
void __init omap_check_revision(void)
|
||||
{
|
||||
int i;
|
||||
u16 jtag_id;
|
||||
u8 die_rev;
|
||||
u32 omap_id;
|
||||
u8 cpu_type;
|
||||
|
||||
jtag_id = omap_get_jtag_id();
|
||||
die_rev = omap_get_die_rev();
|
||||
omap_id = omap_readl(OMAP32_ID_0);
|
||||
|
||||
#ifdef DEBUG
|
||||
printk("OMAP_DIE_ID_0: 0x%08x\n", omap_readl(OMAP_DIE_ID_0));
|
||||
printk("OMAP_DIE_ID_1: 0x%08x DIE_REV: %i\n",
|
||||
omap_readl(OMAP_DIE_ID_1),
|
||||
(omap_readl(OMAP_DIE_ID_1) >> 17) & 0xf);
|
||||
printk("OMAP_PRODUCTION_ID_0: 0x%08x\n", omap_readl(OMAP_PRODUCTION_ID_0));
|
||||
printk("OMAP_PRODUCTION_ID_1: 0x%08x JTAG_ID: 0x%04x\n",
|
||||
omap_readl(OMAP_PRODUCTION_ID_1),
|
||||
omap_readl(OMAP_PRODUCTION_ID_1) & 0xffff);
|
||||
printk("OMAP32_ID_0: 0x%08x\n", omap_readl(OMAP32_ID_0));
|
||||
printk("OMAP32_ID_1: 0x%08x\n", omap_readl(OMAP32_ID_1));
|
||||
printk("JTAG_ID: 0x%04x DIE_REV: %i\n", jtag_id, die_rev);
|
||||
#endif
|
||||
|
||||
system_serial_high = omap_readl(OMAP_DIE_ID_0);
|
||||
system_serial_low = omap_readl(OMAP_DIE_ID_1);
|
||||
|
||||
/* First check only the major version in a safe way */
|
||||
for (i = 0; i < ARRAY_SIZE(omap_ids); i++) {
|
||||
if (jtag_id == (omap_ids[i].jtag_id)) {
|
||||
system_rev = omap_ids[i].type;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* Check if we can find the die revision */
|
||||
for (i = 0; i < ARRAY_SIZE(omap_ids); i++) {
|
||||
if (jtag_id == omap_ids[i].jtag_id && die_rev == omap_ids[i].die_rev) {
|
||||
system_rev = omap_ids[i].type;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* Finally check also the omap_id */
|
||||
for (i = 0; i < ARRAY_SIZE(omap_ids); i++) {
|
||||
if (jtag_id == omap_ids[i].jtag_id
|
||||
&& die_rev == omap_ids[i].die_rev
|
||||
&& omap_id == omap_ids[i].omap_id) {
|
||||
system_rev = omap_ids[i].type;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* Add the cpu class info (7xx, 15xx, 16xx, 24xx) */
|
||||
cpu_type = system_rev >> 24;
|
||||
|
||||
switch (cpu_type) {
|
||||
case 0x07:
|
||||
system_rev |= 0x07;
|
||||
break;
|
||||
case 0x15:
|
||||
system_rev |= 0x15;
|
||||
break;
|
||||
case 0x16:
|
||||
case 0x17:
|
||||
system_rev |= 0x16;
|
||||
break;
|
||||
case 0x24:
|
||||
system_rev |= 0x24;
|
||||
break;
|
||||
default:
|
||||
printk("Unknown OMAP cpu type: 0x%02x\n", cpu_type);
|
||||
}
|
||||
|
||||
printk("OMAP%04x", system_rev >> 16);
|
||||
if ((system_rev >> 8) & 0xff)
|
||||
printk("%x", (system_rev >> 8) & 0xff);
|
||||
printk(" revision %i handled as %02xxx id: %08x%08x\n",
|
||||
die_rev, system_rev & 0xff, system_serial_low,
|
||||
system_serial_high);
|
||||
}
|
||||
|
115
arch/arm/mach-omap1/io.c
Normal file
115
arch/arm/mach-omap1/io.c
Normal file
@ -0,0 +1,115 @@
|
||||
/*
|
||||
* linux/arch/arm/mach-omap1/io.c
|
||||
*
|
||||
* OMAP1 I/O mapping code
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#include <linux/config.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/init.h>
|
||||
|
||||
#include <asm/mach/map.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/arch/tc.h>
|
||||
|
||||
extern int clk_init(void);
|
||||
extern void omap_check_revision(void);
|
||||
|
||||
/*
|
||||
* The machine specific code may provide the extra mapping besides the
|
||||
* default mapping provided here.
|
||||
*/
|
||||
static struct map_desc omap_io_desc[] __initdata = {
|
||||
{ IO_VIRT, IO_PHYS, IO_SIZE, MT_DEVICE },
|
||||
};
|
||||
|
||||
#ifdef CONFIG_ARCH_OMAP730
|
||||
static struct map_desc omap730_io_desc[] __initdata = {
|
||||
{ OMAP730_DSP_BASE, OMAP730_DSP_START, OMAP730_DSP_SIZE, MT_DEVICE },
|
||||
{ OMAP730_DSPREG_BASE, OMAP730_DSPREG_START, OMAP730_DSPREG_SIZE, MT_DEVICE },
|
||||
{ OMAP730_SRAM_BASE, OMAP730_SRAM_START, OMAP730_SRAM_SIZE, MT_DEVICE }
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_ARCH_OMAP1510
|
||||
static struct map_desc omap1510_io_desc[] __initdata = {
|
||||
{ OMAP1510_DSP_BASE, OMAP1510_DSP_START, OMAP1510_DSP_SIZE, MT_DEVICE },
|
||||
{ OMAP1510_DSPREG_BASE, OMAP1510_DSPREG_START, OMAP1510_DSPREG_SIZE, MT_DEVICE },
|
||||
{ OMAP1510_SRAM_BASE, OMAP1510_SRAM_START, OMAP1510_SRAM_SIZE, MT_DEVICE }
|
||||
};
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_ARCH_OMAP16XX)
|
||||
static struct map_desc omap1610_io_desc[] __initdata = {
|
||||
{ OMAP16XX_DSP_BASE, OMAP16XX_DSP_START, OMAP16XX_DSP_SIZE, MT_DEVICE },
|
||||
{ OMAP16XX_DSPREG_BASE, OMAP16XX_DSPREG_START, OMAP16XX_DSPREG_SIZE, MT_DEVICE },
|
||||
{ OMAP16XX_SRAM_BASE, OMAP16XX_SRAM_START, OMAP1610_SRAM_SIZE, MT_DEVICE }
|
||||
};
|
||||
|
||||
static struct map_desc omap5912_io_desc[] __initdata = {
|
||||
{ OMAP16XX_DSP_BASE, OMAP16XX_DSP_START, OMAP16XX_DSP_SIZE, MT_DEVICE },
|
||||
{ OMAP16XX_DSPREG_BASE, OMAP16XX_DSPREG_START, OMAP16XX_DSPREG_SIZE, MT_DEVICE },
|
||||
/*
|
||||
* The OMAP5912 has 250kByte internal SRAM. Because the mapping is baseed on page
|
||||
* size (4kByte), it seems that the last 2kByte (=0x800) of the 250kByte are not mapped.
|
||||
* Add additional 2kByte (0x800) so that the last page is mapped and the last 2kByte
|
||||
* can be used.
|
||||
*/
|
||||
{ OMAP16XX_SRAM_BASE, OMAP16XX_SRAM_START, OMAP5912_SRAM_SIZE + 0x800, MT_DEVICE }
|
||||
};
|
||||
#endif
|
||||
|
||||
static int initialized = 0;
|
||||
|
||||
static void __init _omap_map_io(void)
|
||||
{
|
||||
initialized = 1;
|
||||
|
||||
/* We have to initialize the IO space mapping before we can run
|
||||
* cpu_is_omapxxx() macros. */
|
||||
iotable_init(omap_io_desc, ARRAY_SIZE(omap_io_desc));
|
||||
omap_check_revision();
|
||||
|
||||
#ifdef CONFIG_ARCH_OMAP730
|
||||
if (cpu_is_omap730()) {
|
||||
iotable_init(omap730_io_desc, ARRAY_SIZE(omap730_io_desc));
|
||||
}
|
||||
#endif
|
||||
#ifdef CONFIG_ARCH_OMAP1510
|
||||
if (cpu_is_omap1510()) {
|
||||
iotable_init(omap1510_io_desc, ARRAY_SIZE(omap1510_io_desc));
|
||||
}
|
||||
#endif
|
||||
#if defined(CONFIG_ARCH_OMAP16XX)
|
||||
if (cpu_is_omap1610() || cpu_is_omap1710()) {
|
||||
iotable_init(omap1610_io_desc, ARRAY_SIZE(omap1610_io_desc));
|
||||
}
|
||||
if (cpu_is_omap5912()) {
|
||||
iotable_init(omap5912_io_desc, ARRAY_SIZE(omap5912_io_desc));
|
||||
}
|
||||
#endif
|
||||
|
||||
/* REVISIT: Refer to OMAP5910 Errata, Advisory SYS_1: "Timeout Abort
|
||||
* on a Posted Write in the TIPB Bridge".
|
||||
*/
|
||||
omap_writew(0x0, MPU_PUBLIC_TIPB_CNTL);
|
||||
omap_writew(0x0, MPU_PRIVATE_TIPB_CNTL);
|
||||
|
||||
/* Must init clocks early to assure that timer interrupt works
|
||||
*/
|
||||
clk_init();
|
||||
}
|
||||
|
||||
/*
|
||||
* This should only get called from board specific init
|
||||
*/
|
||||
void omap_map_common_io(void)
|
||||
{
|
||||
if (!initialized)
|
||||
_omap_map_io();
|
||||
}
|
@ -56,6 +56,7 @@
|
||||
struct omap_irq_bank {
|
||||
unsigned long base_reg;
|
||||
unsigned long trigger_map;
|
||||
unsigned long wake_enable;
|
||||
};
|
||||
|
||||
static unsigned int irq_bank_count = 0;
|
||||
@ -105,6 +106,19 @@ static void omap_mask_ack_irq(unsigned int irq)
|
||||
omap_ack_irq(irq);
|
||||
}
|
||||
|
||||
static int omap_wake_irq(unsigned int irq, unsigned int enable)
|
||||
{
|
||||
int bank = IRQ_BANK(irq);
|
||||
|
||||
if (enable)
|
||||
irq_banks[bank].wake_enable |= IRQ_BIT(irq);
|
||||
else
|
||||
irq_banks[bank].wake_enable &= ~IRQ_BIT(irq);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Allows tuning the IRQ type and priority
|
||||
*
|
||||
@ -145,7 +159,7 @@ static struct omap_irq_bank omap1510_irq_banks[] = {
|
||||
static struct omap_irq_bank omap1610_irq_banks[] = {
|
||||
{ .base_reg = OMAP_IH1_BASE, .trigger_map = 0xb3fefe8f },
|
||||
{ .base_reg = OMAP_IH2_BASE, .trigger_map = 0xfdb7c1fd },
|
||||
{ .base_reg = OMAP_IH2_BASE + 0x100, .trigger_map = 0xfffff7ff },
|
||||
{ .base_reg = OMAP_IH2_BASE + 0x100, .trigger_map = 0xffffb7ff },
|
||||
{ .base_reg = OMAP_IH2_BASE + 0x200, .trigger_map = 0xffffffff },
|
||||
};
|
||||
#endif
|
||||
@ -154,6 +168,7 @@ static struct irqchip omap_irq_chip = {
|
||||
.ack = omap_mask_ack_irq,
|
||||
.mask = omap_mask_irq,
|
||||
.unmask = omap_unmask_irq,
|
||||
.wake = omap_wake_irq,
|
||||
};
|
||||
|
||||
void __init omap_init_irq(void)
|
@ -129,14 +129,11 @@ void osk_leds_event(led_event_t evt)
|
||||
|
||||
#ifdef CONFIG_FB_OMAP
|
||||
|
||||
#ifdef CONFIG_LEDS_TIMER
|
||||
case led_timer:
|
||||
hw_led_state ^= TIMER_LED;
|
||||
mistral_setled();
|
||||
break;
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_LEDS_CPU
|
||||
case led_idle_start:
|
||||
hw_led_state |= IDLE_LED;
|
||||
mistral_setled();
|
||||
@ -146,7 +143,6 @@ void osk_leds_event(led_event_t evt)
|
||||
hw_led_state &= ~IDLE_LED;
|
||||
mistral_setled();
|
||||
break;
|
||||
#endif
|
||||
|
||||
#endif /* CONFIG_FB_OMAP */
|
||||
|
200
arch/arm/mach-omap1/serial.c
Normal file
200
arch/arm/mach-omap1/serial.c
Normal file
@ -0,0 +1,200 @@
|
||||
/*
|
||||
* linux/arch/arm/mach-omap1/id.c
|
||||
*
|
||||
* OMAP1 CPU identification code
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#include <linux/config.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/serial.h>
|
||||
#include <linux/tty.h>
|
||||
#include <linux/serial_8250.h>
|
||||
#include <linux/serial_reg.h>
|
||||
|
||||
#include <asm/io.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/hardware/clock.h>
|
||||
|
||||
#include <asm/arch/board.h>
|
||||
#include <asm/arch/mux.h>
|
||||
#include <asm/arch/fpga.h>
|
||||
|
||||
static struct clk * uart1_ck = NULL;
|
||||
static struct clk * uart2_ck = NULL;
|
||||
static struct clk * uart3_ck = NULL;
|
||||
|
||||
static inline unsigned int omap_serial_in(struct plat_serial8250_port *up,
|
||||
int offset)
|
||||
{
|
||||
offset <<= up->regshift;
|
||||
return (unsigned int)__raw_readb(up->membase + offset);
|
||||
}
|
||||
|
||||
static inline void omap_serial_outp(struct plat_serial8250_port *p, int offset,
|
||||
int value)
|
||||
{
|
||||
offset <<= p->regshift;
|
||||
__raw_writeb(value, p->membase + offset);
|
||||
}
|
||||
|
||||
/*
|
||||
* Internal UARTs need to be initialized for the 8250 autoconfig to work
|
||||
* properly. Note that the TX watermark initialization may not be needed
|
||||
* once the 8250.c watermark handling code is merged.
|
||||
*/
|
||||
static void __init omap_serial_reset(struct plat_serial8250_port *p)
|
||||
{
|
||||
omap_serial_outp(p, UART_OMAP_MDR1, 0x07); /* disable UART */
|
||||
omap_serial_outp(p, UART_OMAP_SCR, 0x08); /* TX watermark */
|
||||
omap_serial_outp(p, UART_OMAP_MDR1, 0x00); /* enable UART */
|
||||
|
||||
if (!cpu_is_omap1510()) {
|
||||
omap_serial_outp(p, UART_OMAP_SYSC, 0x01);
|
||||
while (!(omap_serial_in(p, UART_OMAP_SYSC) & 0x01));
|
||||
}
|
||||
}
|
||||
|
||||
static struct plat_serial8250_port serial_platform_data[] = {
|
||||
{
|
||||
.membase = (char*)IO_ADDRESS(OMAP_UART1_BASE),
|
||||
.mapbase = (unsigned long)OMAP_UART1_BASE,
|
||||
.irq = INT_UART1,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.iotype = UPIO_MEM,
|
||||
.regshift = 2,
|
||||
.uartclk = OMAP16XX_BASE_BAUD * 16,
|
||||
},
|
||||
{
|
||||
.membase = (char*)IO_ADDRESS(OMAP_UART2_BASE),
|
||||
.mapbase = (unsigned long)OMAP_UART2_BASE,
|
||||
.irq = INT_UART2,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.iotype = UPIO_MEM,
|
||||
.regshift = 2,
|
||||
.uartclk = OMAP16XX_BASE_BAUD * 16,
|
||||
},
|
||||
{
|
||||
.membase = (char*)IO_ADDRESS(OMAP_UART3_BASE),
|
||||
.mapbase = (unsigned long)OMAP_UART3_BASE,
|
||||
.irq = INT_UART3,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.iotype = UPIO_MEM,
|
||||
.regshift = 2,
|
||||
.uartclk = OMAP16XX_BASE_BAUD * 16,
|
||||
},
|
||||
{ },
|
||||
};
|
||||
|
||||
static struct platform_device serial_device = {
|
||||
.name = "serial8250",
|
||||
.id = 0,
|
||||
.dev = {
|
||||
.platform_data = serial_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
/*
|
||||
* Note that on Innovator-1510 UART2 pins conflict with USB2.
|
||||
* By default UART2 does not work on Innovator-1510 if you have
|
||||
* USB OHCI enabled. To use UART2, you must disable USB2 first.
|
||||
*/
|
||||
void __init omap_serial_init(int ports[OMAP_MAX_NR_PORTS])
|
||||
{
|
||||
int i;
|
||||
|
||||
if (cpu_is_omap730()) {
|
||||
serial_platform_data[0].regshift = 0;
|
||||
serial_platform_data[1].regshift = 0;
|
||||
serial_platform_data[0].irq = INT_730_UART_MODEM_1;
|
||||
serial_platform_data[1].irq = INT_730_UART_MODEM_IRDA_2;
|
||||
}
|
||||
|
||||
if (cpu_is_omap1510()) {
|
||||
serial_platform_data[0].uartclk = OMAP1510_BASE_BAUD * 16;
|
||||
serial_platform_data[1].uartclk = OMAP1510_BASE_BAUD * 16;
|
||||
serial_platform_data[2].uartclk = OMAP1510_BASE_BAUD * 16;
|
||||
}
|
||||
|
||||
for (i = 0; i < OMAP_MAX_NR_PORTS; i++) {
|
||||
unsigned char reg;
|
||||
|
||||
if (ports[i] == 0) {
|
||||
serial_platform_data[i].membase = NULL;
|
||||
serial_platform_data[i].mapbase = 0;
|
||||
continue;
|
||||
}
|
||||
|
||||
switch (i) {
|
||||
case 0:
|
||||
uart1_ck = clk_get(NULL, "uart1_ck");
|
||||
if (IS_ERR(uart1_ck))
|
||||
printk("Could not get uart1_ck\n");
|
||||
else {
|
||||
clk_use(uart1_ck);
|
||||
if (cpu_is_omap1510())
|
||||
clk_set_rate(uart1_ck, 12000000);
|
||||
}
|
||||
if (cpu_is_omap1510()) {
|
||||
omap_cfg_reg(UART1_TX);
|
||||
omap_cfg_reg(UART1_RTS);
|
||||
if (machine_is_omap_innovator()) {
|
||||
reg = fpga_read(OMAP1510_FPGA_POWER);
|
||||
reg |= OMAP1510_FPGA_PCR_COM1_EN;
|
||||
fpga_write(reg, OMAP1510_FPGA_POWER);
|
||||
udelay(10);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
uart2_ck = clk_get(NULL, "uart2_ck");
|
||||
if (IS_ERR(uart2_ck))
|
||||
printk("Could not get uart2_ck\n");
|
||||
else {
|
||||
clk_use(uart2_ck);
|
||||
if (cpu_is_omap1510())
|
||||
clk_set_rate(uart2_ck, 12000000);
|
||||
else
|
||||
clk_set_rate(uart2_ck, 48000000);
|
||||
}
|
||||
if (cpu_is_omap1510()) {
|
||||
omap_cfg_reg(UART2_TX);
|
||||
omap_cfg_reg(UART2_RTS);
|
||||
if (machine_is_omap_innovator()) {
|
||||
reg = fpga_read(OMAP1510_FPGA_POWER);
|
||||
reg |= OMAP1510_FPGA_PCR_COM2_EN;
|
||||
fpga_write(reg, OMAP1510_FPGA_POWER);
|
||||
udelay(10);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
uart3_ck = clk_get(NULL, "uart3_ck");
|
||||
if (IS_ERR(uart3_ck))
|
||||
printk("Could not get uart3_ck\n");
|
||||
else {
|
||||
clk_use(uart3_ck);
|
||||
if (cpu_is_omap1510())
|
||||
clk_set_rate(uart3_ck, 12000000);
|
||||
}
|
||||
if (cpu_is_omap1510()) {
|
||||
omap_cfg_reg(UART3_TX);
|
||||
omap_cfg_reg(UART3_RX);
|
||||
}
|
||||
break;
|
||||
}
|
||||
omap_serial_reset(&serial_platform_data[i]);
|
||||
}
|
||||
}
|
||||
|
||||
static int __init omap_init(void)
|
||||
{
|
||||
return platform_device_register(&serial_device);
|
||||
}
|
||||
arch_initcall(omap_init);
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* linux/arch/arm/mach-omap/time.c
|
||||
* linux/arch/arm/mach-omap1/time.c
|
||||
*
|
||||
* OMAP Timers
|
||||
*
|
||||
@ -58,17 +58,9 @@ struct sys_timer omap_timer;
|
||||
* MPU timer
|
||||
* ---------------------------------------------------------------------------
|
||||
*/
|
||||
#define OMAP_MPU_TIMER1_BASE (0xfffec500)
|
||||
#define OMAP_MPU_TIMER2_BASE (0xfffec600)
|
||||
#define OMAP_MPU_TIMER3_BASE (0xfffec700)
|
||||
#define OMAP_MPU_TIMER_BASE OMAP_MPU_TIMER1_BASE
|
||||
#define OMAP_MPU_TIMER_OFFSET 0x100
|
||||
|
||||
#define MPU_TIMER_FREE (1 << 6)
|
||||
#define MPU_TIMER_CLOCK_ENABLE (1 << 5)
|
||||
#define MPU_TIMER_AR (1 << 1)
|
||||
#define MPU_TIMER_ST (1 << 0)
|
||||
|
||||
/* cycles to nsec conversions taken from arch/i386/kernel/timers/timer_tsc.c,
|
||||
* converted to use kHz by Kevin Hilman */
|
||||
/* convert from cycles(64bits) => nanoseconds (64bits)
|
||||
@ -255,6 +247,13 @@ unsigned long long sched_clock(void)
|
||||
#define OMAP_32K_TIMER_TCR 0x04
|
||||
|
||||
#define OMAP_32K_TICKS_PER_HZ (32768 / HZ)
|
||||
#if (32768 % HZ) != 0
|
||||
/* We cannot ignore modulo.
|
||||
* Potential error can be as high as several percent.
|
||||
*/
|
||||
#define OMAP_32K_TICK_MODULO (32768 % HZ)
|
||||
static unsigned modulo_count = 0; /* Counts 1/HZ units */
|
||||
#endif
|
||||
|
||||
/*
|
||||
* TRM says 1 / HZ = ( TVR + 1) / 32768, so TRV = (32768 / HZ) - 1
|
||||
@ -331,6 +330,19 @@ static irqreturn_t omap_32k_timer_interrupt(int irq, void *dev_id,
|
||||
now = omap_32k_sync_timer_read();
|
||||
|
||||
while (now - omap_32k_last_tick >= OMAP_32K_TICKS_PER_HZ) {
|
||||
#ifdef OMAP_32K_TICK_MODULO
|
||||
/* Modulo addition may put omap_32k_last_tick ahead of now
|
||||
* and cause unwanted repetition of the while loop.
|
||||
*/
|
||||
if (unlikely(now - omap_32k_last_tick == ~0))
|
||||
break;
|
||||
|
||||
modulo_count += OMAP_32K_TICK_MODULO;
|
||||
if (modulo_count > HZ) {
|
||||
++omap_32k_last_tick;
|
||||
modulo_count -= HZ;
|
||||
}
|
||||
#endif
|
||||
omap_32k_last_tick += OMAP_32K_TICKS_PER_HZ;
|
||||
timer_tick(regs);
|
||||
}
|
||||
@ -407,7 +419,7 @@ static __init void omap_init_32k_timer(void)
|
||||
* Timer initialization
|
||||
* ---------------------------------------------------------------------------
|
||||
*/
|
||||
void __init omap_timer_init(void)
|
||||
static void __init omap_timer_init(void)
|
||||
{
|
||||
#if defined(CONFIG_OMAP_MPU_TIMER)
|
||||
omap_init_mpu_timer();
|
@ -24,3 +24,7 @@ obj-$(CONFIG_LEDS) += $(led-y)
|
||||
|
||||
# Misc features
|
||||
obj-$(CONFIG_PM) += pm.o sleep.o
|
||||
|
||||
ifeq ($(CONFIG_PXA27x),y)
|
||||
obj-$(CONFIG_PM) += standby.o
|
||||
endif
|
||||
|
@ -287,34 +287,40 @@ static void __init corgi_map_io(void)
|
||||
|
||||
#ifdef CONFIG_MACH_CORGI
|
||||
MACHINE_START(CORGI, "SHARP Corgi")
|
||||
BOOT_MEM(0xa0000000, 0x40000000, io_p2v(0x40000000))
|
||||
FIXUP(fixup_corgi)
|
||||
MAPIO(corgi_map_io)
|
||||
INITIRQ(corgi_init_irq)
|
||||
.init_machine = corgi_init,
|
||||
.timer = &pxa_timer,
|
||||
.phys_ram = 0xa0000000,
|
||||
.phys_io = 0x40000000,
|
||||
.io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
|
||||
.fixup = fixup_corgi,
|
||||
.map_io = corgi_map_io,
|
||||
.init_irq = corgi_init_irq,
|
||||
.init_machine = corgi_init,
|
||||
.timer = &pxa_timer,
|
||||
MACHINE_END
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_MACH_SHEPHERD
|
||||
MACHINE_START(SHEPHERD, "SHARP Shepherd")
|
||||
BOOT_MEM(0xa0000000, 0x40000000, io_p2v(0x40000000))
|
||||
FIXUP(fixup_corgi)
|
||||
MAPIO(corgi_map_io)
|
||||
INITIRQ(corgi_init_irq)
|
||||
.init_machine = corgi_init,
|
||||
.timer = &pxa_timer,
|
||||
.phys_ram = 0xa0000000,
|
||||
.phys_io = 0x40000000,
|
||||
.io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
|
||||
.fixup = fixup_corgi,
|
||||
.map_io = corgi_map_io,
|
||||
.init_irq = corgi_init_irq,
|
||||
.init_machine = corgi_init,
|
||||
.timer = &pxa_timer,
|
||||
MACHINE_END
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_MACH_HUSKY
|
||||
MACHINE_START(HUSKY, "SHARP Husky")
|
||||
BOOT_MEM(0xa0000000, 0x40000000, io_p2v(0x40000000))
|
||||
FIXUP(fixup_corgi)
|
||||
MAPIO(corgi_map_io)
|
||||
INITIRQ(corgi_init_irq)
|
||||
.init_machine = corgi_init,
|
||||
.timer = &pxa_timer,
|
||||
.phys_ram = 0xa0000000,
|
||||
.phys_io = 0x40000000,
|
||||
.io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
|
||||
.fixup = fixup_corgi,
|
||||
.map_io = corgi_map_io,
|
||||
.init_irq = corgi_init_irq,
|
||||
.init_machine = corgi_init,
|
||||
.timer = &pxa_timer,
|
||||
MACHINE_END
|
||||
#endif
|
||||
|
||||
|
@ -181,10 +181,12 @@ static void __init idp_map_io(void)
|
||||
|
||||
|
||||
MACHINE_START(PXA_IDP, "Vibren PXA255 IDP")
|
||||
MAINTAINER("Vibren Technologies")
|
||||
BOOT_MEM(0xa0000000, 0x40000000, io_p2v(0x40000000))
|
||||
MAPIO(idp_map_io)
|
||||
INITIRQ(idp_init_irq)
|
||||
/* Maintainer: Vibren Technologies */
|
||||
.phys_ram = 0xa0000000,
|
||||
.phys_io = 0x40000000,
|
||||
.io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
|
||||
.map_io = idp_map_io,
|
||||
.init_irq = idp_init_irq,
|
||||
.timer = &pxa_timer,
|
||||
INIT_MACHINE(idp_init)
|
||||
.init_machine = idp_init,
|
||||
MACHINE_END
|
||||
|
@ -268,10 +268,12 @@ static void __init lubbock_map_io(void)
|
||||
}
|
||||
|
||||
MACHINE_START(LUBBOCK, "Intel DBPXA250 Development Platform (aka Lubbock)")
|
||||
MAINTAINER("MontaVista Software Inc.")
|
||||
BOOT_MEM(0xa0000000, 0x40000000, io_p2v(0x40000000))
|
||||
MAPIO(lubbock_map_io)
|
||||
INITIRQ(lubbock_init_irq)
|
||||
/* Maintainer: MontaVista Software Inc. */
|
||||
.phys_ram = 0xa0000000,
|
||||
.phys_io = 0x40000000,
|
||||
.io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
|
||||
.map_io = lubbock_map_io,
|
||||
.init_irq = lubbock_init_irq,
|
||||
.timer = &pxa_timer,
|
||||
INIT_MACHINE(lubbock_init)
|
||||
.init_machine = lubbock_init,
|
||||
MACHINE_END
|
||||
|
@ -345,10 +345,12 @@ static void __init mainstone_map_io(void)
|
||||
}
|
||||
|
||||
MACHINE_START(MAINSTONE, "Intel HCDDBBVA0 Development Platform (aka Mainstone)")
|
||||
MAINTAINER("MontaVista Software Inc.")
|
||||
BOOT_MEM(0xa0000000, 0x40000000, io_p2v(0x40000000))
|
||||
MAPIO(mainstone_map_io)
|
||||
INITIRQ(mainstone_init_irq)
|
||||
/* Maintainer: MontaVista Software Inc. */
|
||||
.phys_ram = 0xa0000000,
|
||||
.phys_io = 0x40000000,
|
||||
.io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
|
||||
.map_io = mainstone_map_io,
|
||||
.init_irq = mainstone_init_irq,
|
||||
.timer = &pxa_timer,
|
||||
INIT_MACHINE(mainstone_init)
|
||||
.init_machine = mainstone_init,
|
||||
MACHINE_END
|
||||
|
@ -180,10 +180,12 @@ static void __init poodle_map_io(void)
|
||||
}
|
||||
|
||||
MACHINE_START(POODLE, "SHARP Poodle")
|
||||
BOOT_MEM(0xa0000000, 0x40000000, io_p2v(0x40000000))
|
||||
FIXUP(fixup_poodle)
|
||||
MAPIO(poodle_map_io)
|
||||
INITIRQ(pxa_init_irq)
|
||||
.timer = &pxa_timer,
|
||||
.init_machine = poodle_init,
|
||||
.phys_ram = 0xa0000000,
|
||||
.phys_io = 0x40000000,
|
||||
.io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
|
||||
.fixup = fixup_poodle,
|
||||
.map_io = poodle_map_io,
|
||||
.init_irq = pxa_init_irq,
|
||||
.timer = &pxa_timer,
|
||||
.init_machine = poodle_init,
|
||||
MACHINE_END
|
||||
|
@ -126,6 +126,7 @@ int pxa_cpu_pm_prepare(suspend_state_t state)
|
||||
{
|
||||
switch (state) {
|
||||
case PM_SUSPEND_MEM:
|
||||
case PM_SUSPEND_STANDBY:
|
||||
return 0;
|
||||
default:
|
||||
return -EINVAL;
|
||||
@ -138,7 +139,10 @@ void pxa_cpu_pm_enter(suspend_state_t state)
|
||||
extern void pxa_cpu_suspend(unsigned int);
|
||||
extern void pxa_cpu_resume(void);
|
||||
|
||||
CKEN = CKEN22_MEMC | CKEN9_OSTIMER;
|
||||
if (state == PM_SUSPEND_STANDBY)
|
||||
CKEN = CKEN22_MEMC | CKEN9_OSTIMER | CKEN16_LCD |CKEN0_PWM0;
|
||||
else
|
||||
CKEN = CKEN22_MEMC | CKEN9_OSTIMER;
|
||||
|
||||
/* ensure voltage-change sequencer not initiated, which hangs */
|
||||
PCFR &= ~PCFR_FVC;
|
||||
@ -147,6 +151,9 @@ void pxa_cpu_pm_enter(suspend_state_t state)
|
||||
PEDR = 0xDF12FE1B;
|
||||
|
||||
switch (state) {
|
||||
case PM_SUSPEND_STANDBY:
|
||||
pxa_cpu_standby();
|
||||
break;
|
||||
case PM_SUSPEND_MEM:
|
||||
/* set resume return address */
|
||||
PSPR = virt_to_phys(pxa_cpu_resume);
|
||||
|
32
arch/arm/mach-pxa/standby.S
Normal file
32
arch/arm/mach-pxa/standby.S
Normal file
@ -0,0 +1,32 @@
|
||||
/*
|
||||
* PXA27x standby mode
|
||||
*
|
||||
* Author: David Burrage
|
||||
*
|
||||
* 2005 (c) MontaVista Software, Inc. This file is licensed under
|
||||
* the terms of the GNU General Public License version 2. This program
|
||||
* is licensed "as is" without any warranty of any kind, whether express
|
||||
* or implied.
|
||||
*/
|
||||
|
||||
#include <linux/config.h>
|
||||
#include <linux/linkage.h>
|
||||
#include <asm/assembler.h>
|
||||
#include <asm/hardware.h>
|
||||
|
||||
#include <asm/arch/pxa-regs.h>
|
||||
|
||||
.text
|
||||
|
||||
ENTRY(pxa_cpu_standby)
|
||||
ldr r0, =PSSR
|
||||
mov r1, #(PSSR_PH | PSSR_STS)
|
||||
mov r2, #2
|
||||
mov r3, #UNCACHED_PHYS_0 @ Read mem context in.
|
||||
ldr ip, [r3]
|
||||
b 1f
|
||||
|
||||
.align 5
|
||||
1: mcr p14, 0, r2, c7, c0, 0 @ put the system into Standby
|
||||
str r1, [r0] @ make sure PSSR_PH/STS are clear
|
||||
mov pc, lr
|
@ -163,12 +163,14 @@ arch_initcall(rpc_init);
|
||||
extern struct sys_timer ioc_timer;
|
||||
|
||||
MACHINE_START(RISCPC, "Acorn-RiscPC")
|
||||
MAINTAINER("Russell King")
|
||||
BOOT_MEM(0x10000000, 0x03000000, 0xe0000000)
|
||||
BOOT_PARAMS(0x10000100)
|
||||
DISABLE_PARPORT(0)
|
||||
DISABLE_PARPORT(1)
|
||||
MAPIO(rpc_map_io)
|
||||
INITIRQ(rpc_init_irq)
|
||||
/* Maintainer: Russell King */
|
||||
.phys_ram = 0x10000000,
|
||||
.phys_io = 0x03000000,
|
||||
.io_pg_offst = ((0xe0000000) >> 18) & 0xfffc,
|
||||
.boot_params = 0x10000100,
|
||||
.reserve_lp0 = 1,
|
||||
.reserve_lp1 = 1,
|
||||
.map_io = rpc_map_io,
|
||||
.init_irq = rpc_init_irq,
|
||||
.timer = &ioc_timer,
|
||||
MACHINE_END
|
||||
|
@ -407,10 +407,11 @@ void __init bast_map_io(void)
|
||||
|
||||
|
||||
MACHINE_START(BAST, "Simtec-BAST")
|
||||
MAINTAINER("Ben Dooks <ben@simtec.co.uk>")
|
||||
BOOT_MEM(S3C2410_SDRAM_PA, S3C2410_PA_UART, (u32)S3C24XX_VA_UART)
|
||||
BOOT_PARAMS(S3C2410_SDRAM_PA + 0x100)
|
||||
|
||||
/* Maintainer: Ben Dooks <ben@simtec.co.uk> */
|
||||
.phys_ram = S3C2410_SDRAM_PA,
|
||||
.phys_io = S3C2410_PA_UART,
|
||||
.io_pg_offst = (((u32)S3C24XX_VA_UART) >> 18) & 0xfffc,
|
||||
.boot_params = S3C2410_SDRAM_PA + 0x100,
|
||||
.map_io = bast_map_io,
|
||||
.init_irq = s3c24xx_init_irq,
|
||||
.timer = &s3c24xx_timer,
|
||||
|
@ -117,10 +117,12 @@ void __init h1940_init_irq(void)
|
||||
}
|
||||
|
||||
MACHINE_START(H1940, "IPAQ-H1940")
|
||||
MAINTAINER("Ben Dooks <ben@fluff.org>")
|
||||
BOOT_MEM(S3C2410_SDRAM_PA, S3C2410_PA_UART, (u32)S3C24XX_VA_UART)
|
||||
BOOT_PARAMS(S3C2410_SDRAM_PA + 0x100)
|
||||
MAPIO(h1940_map_io)
|
||||
INITIRQ(h1940_init_irq)
|
||||
/* Maintainer: Ben Dooks <ben@fluff.org> */
|
||||
.phys_ram = S3C2410_SDRAM_PA,
|
||||
.phys_io = S3C2410_PA_UART,
|
||||
.io_pg_offst = (((u32)S3C24XX_VA_UART) >> 18) & 0xfffc,
|
||||
.boot_params = S3C2410_SDRAM_PA + 0x100,
|
||||
.map_io = h1940_map_io,
|
||||
.init_irq = h1940_init_irq,
|
||||
.timer = &s3c24xx_timer,
|
||||
MACHINE_END
|
||||
|
@ -137,10 +137,11 @@ void __init n30_init(void)
|
||||
}
|
||||
|
||||
MACHINE_START(N30, "Acer-N30")
|
||||
MAINTAINER("Christer Weinigel <christer@weinigel.se>, Ben Dooks <ben-linux@fluff.org>")
|
||||
BOOT_MEM(S3C2410_SDRAM_PA, S3C2410_PA_UART, (u32)S3C24XX_VA_UART)
|
||||
BOOT_PARAMS(S3C2410_SDRAM_PA + 0x100)
|
||||
|
||||
/* Maintainer: Christer Weinigel <christer@weinigel.se>, Ben Dooks <ben-linux@fluff.org> */
|
||||
.phys_ram = S3C2410_SDRAM_PA,
|
||||
.phys_io = S3C2410_PA_UART,
|
||||
.io_pg_offst = (((u32)S3C24XX_VA_UART) >> 18) & 0xfffc,
|
||||
.boot_params = S3C2410_SDRAM_PA + 0x100,
|
||||
.timer = &s3c24xx_timer,
|
||||
.init_machine = n30_init,
|
||||
.init_irq = n30_init_irq,
|
||||
|
@ -147,9 +147,11 @@ void __init nexcoder_map_io(void)
|
||||
|
||||
|
||||
MACHINE_START(NEXCODER_2440, "NexVision - Nexcoder 2440")
|
||||
MAINTAINER("Guillaume GOURAT <guillaume.gourat@nexvision.tv>")
|
||||
BOOT_MEM(S3C2410_SDRAM_PA, S3C2410_PA_UART, (u32)S3C24XX_VA_UART)
|
||||
BOOT_PARAMS(S3C2410_SDRAM_PA + 0x100)
|
||||
/* Maintainer: Guillaume GOURAT <guillaume.gourat@nexvision.tv> */
|
||||
.phys_ram = S3C2410_SDRAM_PA,
|
||||
.phys_io = S3C2410_PA_UART,
|
||||
.io_pg_offst = (((u32)S3C24XX_VA_UART) >> 18) & 0xfffc,
|
||||
.boot_params = S3C2410_SDRAM_PA + 0x100,
|
||||
.map_io = nexcoder_map_io,
|
||||
.init_irq = s3c24xx_init_irq,
|
||||
.timer = &s3c24xx_timer,
|
||||
|
@ -115,9 +115,11 @@ void __init otom11_map_io(void)
|
||||
|
||||
|
||||
MACHINE_START(OTOM, "Nex Vision - Otom 1.1")
|
||||
MAINTAINER("Guillaume GOURAT <guillaume.gourat@nexvision.tv>")
|
||||
BOOT_MEM(S3C2410_SDRAM_PA, S3C2410_PA_UART, (u32)S3C24XX_VA_UART)
|
||||
BOOT_PARAMS(S3C2410_SDRAM_PA + 0x100)
|
||||
/* Maintainer: Guillaume GOURAT <guillaume.gourat@nexvision.tv> */
|
||||
.phys_ram = S3C2410_SDRAM_PA,
|
||||
.phys_io = S3C2410_PA_UART,
|
||||
.io_pg_offst = (((u32)S3C24XX_VA_UART) >> 18) & 0xfffc,
|
||||
.boot_params = S3C2410_SDRAM_PA + 0x100,
|
||||
.map_io = otom11_map_io,
|
||||
.init_irq = s3c24xx_init_irq,
|
||||
.timer = &s3c24xx_timer,
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user