mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-12 05:24:12 +08:00
Merge remote-tracking branch 'asoc/topic/blackfin' into for-3.7
This commit is contained in:
commit
6bf6d1af86
@ -224,8 +224,8 @@ all your transactions.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Then at umount time , in your put_super() (2.4) or write_super() (2.5)
|
||||
you can then call journal_destroy() to clean up your in-core journal object.
|
||||
Then at umount time , in your put_super() you can then call journal_destroy()
|
||||
to clean up your in-core journal object.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
|
@ -114,7 +114,6 @@ prototypes:
|
||||
int (*drop_inode) (struct inode *);
|
||||
void (*evict_inode) (struct inode *);
|
||||
void (*put_super) (struct super_block *);
|
||||
void (*write_super) (struct super_block *);
|
||||
int (*sync_fs)(struct super_block *sb, int wait);
|
||||
int (*freeze_fs) (struct super_block *);
|
||||
int (*unfreeze_fs) (struct super_block *);
|
||||
@ -136,7 +135,6 @@ write_inode:
|
||||
drop_inode: !!!inode->i_lock!!!
|
||||
evict_inode:
|
||||
put_super: write
|
||||
write_super: read
|
||||
sync_fs: read
|
||||
freeze_fs: write
|
||||
unfreeze_fs: write
|
||||
|
@ -94,9 +94,8 @@ protected.
|
||||
---
|
||||
[mandatory]
|
||||
|
||||
BKL is also moved from around sb operations. ->write_super() Is now called
|
||||
without BKL held. BKL should have been shifted into individual fs sb_op
|
||||
functions. If you don't need it, remove it.
|
||||
BKL is also moved from around sb operations. BKL should have been shifted into
|
||||
individual fs sb_op functions. If you don't need it, remove it.
|
||||
|
||||
---
|
||||
[informational]
|
||||
|
@ -216,7 +216,6 @@ struct super_operations {
|
||||
void (*drop_inode) (struct inode *);
|
||||
void (*delete_inode) (struct inode *);
|
||||
void (*put_super) (struct super_block *);
|
||||
void (*write_super) (struct super_block *);
|
||||
int (*sync_fs)(struct super_block *sb, int wait);
|
||||
int (*freeze_fs) (struct super_block *);
|
||||
int (*unfreeze_fs) (struct super_block *);
|
||||
@ -273,9 +272,6 @@ or bottom half).
|
||||
put_super: called when the VFS wishes to free the superblock
|
||||
(i.e. unmount). This is called with the superblock lock held
|
||||
|
||||
write_super: called when the VFS superblock needs to be written to
|
||||
disc. This method is optional
|
||||
|
||||
sync_fs: called when VFS is writing out all dirty data associated with
|
||||
a superblock. The second parameter indicates whether the method
|
||||
should wait until the write out has been completed. Optional.
|
||||
|
@ -262,9 +262,9 @@ MINIMUM_BATTERY_MINUTES=10
|
||||
|
||||
#
|
||||
# Allowed dirty background ratio, in percent. Once DIRTY_RATIO has been
|
||||
# exceeded, the kernel will wake pdflush which will then reduce the amount
|
||||
# of dirty memory to dirty_background_ratio. Set this nice and low, so once
|
||||
# some writeout has commenced, we do a lot of it.
|
||||
# exceeded, the kernel will wake flusher threads which will then reduce the
|
||||
# amount of dirty memory to dirty_background_ratio. Set this nice and low,
|
||||
# so once some writeout has commenced, we do a lot of it.
|
||||
#
|
||||
#DIRTY_BACKGROUND_RATIO=5
|
||||
|
||||
@ -384,9 +384,9 @@ CPU_MAXFREQ=${CPU_MAXFREQ:-'slowest'}
|
||||
|
||||
#
|
||||
# Allowed dirty background ratio, in percent. Once DIRTY_RATIO has been
|
||||
# exceeded, the kernel will wake pdflush which will then reduce the amount
|
||||
# of dirty memory to dirty_background_ratio. Set this nice and low, so once
|
||||
# some writeout has commenced, we do a lot of it.
|
||||
# exceeded, the kernel will wake flusher threads which will then reduce the
|
||||
# amount of dirty memory to dirty_background_ratio. Set this nice and low,
|
||||
# so once some writeout has commenced, we do a lot of it.
|
||||
#
|
||||
DIRTY_BACKGROUND_RATIO=${DIRTY_BACKGROUND_RATIO:-'5'}
|
||||
|
||||
|
@ -46,14 +46,13 @@ restrictions, it can call prctl(PR_SET_PTRACER, PR_SET_PTRACER_ANY, ...)
|
||||
so that any otherwise allowed process (even those in external pid namespaces)
|
||||
may attach.
|
||||
|
||||
These restrictions do not change how ptrace via PTRACE_TRACEME operates.
|
||||
|
||||
The sysctl settings are:
|
||||
The sysctl settings (writable only with CAP_SYS_PTRACE) are:
|
||||
|
||||
0 - classic ptrace permissions: a process can PTRACE_ATTACH to any other
|
||||
process running under the same uid, as long as it is dumpable (i.e.
|
||||
did not transition uids, start privileged, or have called
|
||||
prctl(PR_SET_DUMPABLE...) already).
|
||||
prctl(PR_SET_DUMPABLE...) already). Similarly, PTRACE_TRACEME is
|
||||
unchanged.
|
||||
|
||||
1 - restricted ptrace: a process must have a predefined relationship
|
||||
with the inferior it wants to call PTRACE_ATTACH on. By default,
|
||||
@ -61,12 +60,13 @@ The sysctl settings are:
|
||||
classic criteria is also met. To change the relationship, an
|
||||
inferior can call prctl(PR_SET_PTRACER, debugger, ...) to declare
|
||||
an allowed debugger PID to call PTRACE_ATTACH on the inferior.
|
||||
Using PTRACE_TRACEME is unchanged.
|
||||
|
||||
2 - admin-only attach: only processes with CAP_SYS_PTRACE may use ptrace
|
||||
with PTRACE_ATTACH.
|
||||
with PTRACE_ATTACH, or through children calling PTRACE_TRACEME.
|
||||
|
||||
3 - no attach: no processes may use ptrace with PTRACE_ATTACH. Once set,
|
||||
this sysctl cannot be changed to a lower value.
|
||||
3 - no attach: no processes may use ptrace with PTRACE_ATTACH nor via
|
||||
PTRACE_TRACEME. Once set, this sysctl value cannot be changed.
|
||||
|
||||
The original children-only logic was based on the restrictions in grsecurity.
|
||||
|
||||
|
@ -76,8 +76,8 @@ huge pages although processes will also directly compact memory as required.
|
||||
|
||||
dirty_background_bytes
|
||||
|
||||
Contains the amount of dirty memory at which the pdflush background writeback
|
||||
daemon will start writeback.
|
||||
Contains the amount of dirty memory at which the background kernel
|
||||
flusher threads will start writeback.
|
||||
|
||||
Note: dirty_background_bytes is the counterpart of dirty_background_ratio. Only
|
||||
one of them may be specified at a time. When one sysctl is written it is
|
||||
@ -89,7 +89,7 @@ other appears as 0 when read.
|
||||
dirty_background_ratio
|
||||
|
||||
Contains, as a percentage of total system memory, the number of pages at which
|
||||
the pdflush background writeback daemon will start writing out dirty data.
|
||||
the background kernel flusher threads will start writing out dirty data.
|
||||
|
||||
==============================================================
|
||||
|
||||
@ -112,9 +112,9 @@ retained.
|
||||
dirty_expire_centisecs
|
||||
|
||||
This tunable is used to define when dirty data is old enough to be eligible
|
||||
for writeout by the pdflush daemons. It is expressed in 100'ths of a second.
|
||||
Data which has been dirty in-memory for longer than this interval will be
|
||||
written out next time a pdflush daemon wakes up.
|
||||
for writeout by the kernel flusher threads. It is expressed in 100'ths
|
||||
of a second. Data which has been dirty in-memory for longer than this
|
||||
interval will be written out next time a flusher thread wakes up.
|
||||
|
||||
==============================================================
|
||||
|
||||
@ -128,7 +128,7 @@ data.
|
||||
|
||||
dirty_writeback_centisecs
|
||||
|
||||
The pdflush writeback daemons will periodically wake up and write `old' data
|
||||
The kernel flusher threads will periodically wake up and write `old' data
|
||||
out to disk. This tunable expresses the interval between those wakeups, in
|
||||
100'ths of a second.
|
||||
|
||||
|
47
MAINTAINERS
47
MAINTAINERS
@ -827,24 +827,24 @@ F: arch/arm/mach-pxa/colibri-pxa270-income.c
|
||||
|
||||
ARM/INTEL IOP32X ARM ARCHITECTURE
|
||||
M: Lennert Buytenhek <kernel@wantstofly.org>
|
||||
M: Dan Williams <dan.j.williams@intel.com>
|
||||
M: Dan Williams <djbw@fb.com>
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
S: Maintained
|
||||
|
||||
ARM/INTEL IOP33X ARM ARCHITECTURE
|
||||
M: Dan Williams <dan.j.williams@intel.com>
|
||||
M: Dan Williams <djbw@fb.com>
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
S: Maintained
|
||||
|
||||
ARM/INTEL IOP13XX ARM ARCHITECTURE
|
||||
M: Lennert Buytenhek <kernel@wantstofly.org>
|
||||
M: Dan Williams <dan.j.williams@intel.com>
|
||||
M: Dan Williams <djbw@fb.com>
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
S: Maintained
|
||||
|
||||
ARM/INTEL IQ81342EX MACHINE SUPPORT
|
||||
M: Lennert Buytenhek <kernel@wantstofly.org>
|
||||
M: Dan Williams <dan.j.williams@intel.com>
|
||||
M: Dan Williams <djbw@fb.com>
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
S: Maintained
|
||||
|
||||
@ -869,7 +869,7 @@ F: drivers/pcmcia/pxa2xx_stargate2.c
|
||||
|
||||
ARM/INTEL XSC3 (MANZANO) ARM CORE
|
||||
M: Lennert Buytenhek <kernel@wantstofly.org>
|
||||
M: Dan Williams <dan.j.williams@intel.com>
|
||||
M: Dan Williams <djbw@fb.com>
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
S: Maintained
|
||||
|
||||
@ -925,14 +925,14 @@ S: Maintained
|
||||
|
||||
ARM/NOMADIK ARCHITECTURE
|
||||
M: Alessandro Rubini <rubini@unipv.it>
|
||||
M: Linus Walleij <linus.walleij@stericsson.com>
|
||||
M: Linus Walleij <linus.walleij@linaro.org>
|
||||
M: STEricsson <STEricsson_nomadik_linux@list.st.com>
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
S: Maintained
|
||||
F: arch/arm/mach-nomadik/
|
||||
F: arch/arm/plat-nomadik/
|
||||
F: drivers/i2c/busses/i2c-nomadik.c
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-stericsson.git
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik.git
|
||||
|
||||
ARM/OPENMOKO NEO FREERUNNER (GTA02) MACHINE SUPPORT
|
||||
M: Nelson Castillo <arhuaco@freaks-unidos.net>
|
||||
@ -1146,7 +1146,7 @@ F: drivers/usb/host/ehci-w90x900.c
|
||||
F: drivers/video/nuc900fb.c
|
||||
|
||||
ARM/U300 MACHINE SUPPORT
|
||||
M: Linus Walleij <linus.walleij@stericsson.com>
|
||||
M: Linus Walleij <linus.walleij@linaro.org>
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
S: Supported
|
||||
F: arch/arm/mach-u300/
|
||||
@ -1161,15 +1161,20 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-stericsson.git
|
||||
|
||||
ARM/Ux500 ARM ARCHITECTURE
|
||||
M: Srinidhi Kasagar <srinidhi.kasagar@stericsson.com>
|
||||
M: Linus Walleij <linus.walleij@stericsson.com>
|
||||
M: Linus Walleij <linus.walleij@linaro.org>
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
S: Maintained
|
||||
F: arch/arm/mach-ux500/
|
||||
F: drivers/clocksource/clksrc-dbx500-prcmu.c
|
||||
F: drivers/dma/ste_dma40*
|
||||
F: drivers/hwspinlock/u8500_hsem.c
|
||||
F: drivers/mfd/abx500*
|
||||
F: drivers/mfd/ab8500*
|
||||
F: drivers/mfd/stmpe*
|
||||
F: drivers/mfd/dbx500*
|
||||
F: drivers/mfd/db8500*
|
||||
F: drivers/pinctrl/pinctrl-nomadik*
|
||||
F: drivers/rtc/rtc-ab8500.c
|
||||
F: drivers/rtc/rtc-pl031.c
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-stericsson.git
|
||||
|
||||
ARM/VFP SUPPORT
|
||||
@ -1227,9 +1232,9 @@ S: Maintained
|
||||
F: drivers/hwmon/asb100.c
|
||||
|
||||
ASYNCHRONOUS TRANSFERS/TRANSFORMS (IOAT) API
|
||||
M: Dan Williams <dan.j.williams@intel.com>
|
||||
M: Dan Williams <djbw@fb.com>
|
||||
W: http://sourceforge.net/projects/xscaleiop
|
||||
S: Supported
|
||||
S: Maintained
|
||||
F: Documentation/crypto/async-tx-api.txt
|
||||
F: crypto/async_tx/
|
||||
F: drivers/dma/
|
||||
@ -2359,7 +2364,7 @@ T: git git://git.linaro.org/people/sumitsemwal/linux-dma-buf.git
|
||||
|
||||
DMA GENERIC OFFLOAD ENGINE SUBSYSTEM
|
||||
M: Vinod Koul <vinod.koul@intel.com>
|
||||
M: Dan Williams <dan.j.williams@intel.com>
|
||||
M: Dan Williams <djbw@fb.com>
|
||||
S: Supported
|
||||
F: drivers/dma/
|
||||
F: include/linux/dma*
|
||||
@ -3094,7 +3099,7 @@ F: include/linux/gigaset_dev.h
|
||||
|
||||
GPIO SUBSYSTEM
|
||||
M: Grant Likely <grant.likely@secretlab.ca>
|
||||
M: Linus Walleij <linus.walleij@stericsson.com>
|
||||
M: Linus Walleij <linus.walleij@linaro.org>
|
||||
S: Maintained
|
||||
T: git git://git.secretlab.ca/git/linux-2.6.git
|
||||
F: Documentation/gpio.txt
|
||||
@ -3547,7 +3552,6 @@ K: \b(ABS|SYN)_MT_
|
||||
|
||||
INTEL C600 SERIES SAS CONTROLLER DRIVER
|
||||
M: Intel SCU Linux support <intel-linux-scu@intel.com>
|
||||
M: Dan Williams <dan.j.williams@intel.com>
|
||||
M: Dave Jiang <dave.jiang@intel.com>
|
||||
M: Ed Nadolski <edmund.nadolski@intel.com>
|
||||
L: linux-scsi@vger.kernel.org
|
||||
@ -3590,8 +3594,8 @@ F: arch/x86/kernel/microcode_core.c
|
||||
F: arch/x86/kernel/microcode_intel.c
|
||||
|
||||
INTEL I/OAT DMA DRIVER
|
||||
M: Dan Williams <dan.j.williams@intel.com>
|
||||
S: Supported
|
||||
M: Dan Williams <djbw@fb.com>
|
||||
S: Maintained
|
||||
F: drivers/dma/ioat*
|
||||
|
||||
INTEL IOMMU (VT-d)
|
||||
@ -3603,8 +3607,8 @@ F: drivers/iommu/intel-iommu.c
|
||||
F: include/linux/intel-iommu.h
|
||||
|
||||
INTEL IOP-ADMA DMA DRIVER
|
||||
M: Dan Williams <dan.j.williams@intel.com>
|
||||
S: Maintained
|
||||
M: Dan Williams <djbw@fb.com>
|
||||
S: Odd fixes
|
||||
F: drivers/dma/iop-adma.c
|
||||
|
||||
INTEL IXP4XX QMGR, NPE, ETHERNET and HSS SUPPORT
|
||||
@ -5329,14 +5333,15 @@ PIN CONTROL SUBSYSTEM
|
||||
M: Linus Walleij <linus.walleij@linaro.org>
|
||||
S: Maintained
|
||||
F: drivers/pinctrl/
|
||||
F: include/linux/pinctrl/
|
||||
|
||||
PIN CONTROLLER - ST SPEAR
|
||||
M: Viresh Kumar <viresh.linux@gmail.com>
|
||||
M: Viresh Kumar <viresh.linux@gmail.com>
|
||||
L: spear-devel@list.st.com
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
W: http://www.st.com/spear
|
||||
S: Maintained
|
||||
F: driver/pinctrl/spear/
|
||||
F: drivers/pinctrl/spear/
|
||||
|
||||
PKTCDVD DRIVER
|
||||
M: Peter Osterlund <petero2@telia.com>
|
||||
|
2
Makefile
2
Makefile
@ -1,7 +1,7 @@
|
||||
VERSION = 3
|
||||
PATCHLEVEL = 6
|
||||
SUBLEVEL = 0
|
||||
EXTRAVERSION = -rc1
|
||||
EXTRAVERSION = -rc2
|
||||
NAME = Saber-toothed Squirrel
|
||||
|
||||
# *DOCUMENTATION*
|
||||
|
@ -51,11 +51,11 @@
|
||||
|
||||
dma-apbh@80004000 {
|
||||
compatible = "fsl,imx23-dma-apbh";
|
||||
reg = <0x80004000 2000>;
|
||||
reg = <0x80004000 0x2000>;
|
||||
};
|
||||
|
||||
ecc@80008000 {
|
||||
reg = <0x80008000 2000>;
|
||||
reg = <0x80008000 0x2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
@ -63,7 +63,7 @@
|
||||
compatible = "fsl,imx23-gpmi-nand";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
reg = <0x8000c000 2000>, <0x8000a000 2000>;
|
||||
reg = <0x8000c000 0x2000>, <0x8000a000 0x2000>;
|
||||
reg-names = "gpmi-nand", "bch";
|
||||
interrupts = <13>, <56>;
|
||||
interrupt-names = "gpmi-dma", "bch";
|
||||
@ -72,14 +72,14 @@
|
||||
};
|
||||
|
||||
ssp0: ssp@80010000 {
|
||||
reg = <0x80010000 2000>;
|
||||
reg = <0x80010000 0x2000>;
|
||||
interrupts = <15 14>;
|
||||
fsl,ssp-dma-channel = <1>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
etm@80014000 {
|
||||
reg = <0x80014000 2000>;
|
||||
reg = <0x80014000 0x2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
@ -87,7 +87,7 @@
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "fsl,imx23-pinctrl", "simple-bus";
|
||||
reg = <0x80018000 2000>;
|
||||
reg = <0x80018000 0x2000>;
|
||||
|
||||
gpio0: gpio@0 {
|
||||
compatible = "fsl,imx23-gpio", "fsl,mxs-gpio";
|
||||
@ -273,32 +273,32 @@
|
||||
};
|
||||
|
||||
emi@80020000 {
|
||||
reg = <0x80020000 2000>;
|
||||
reg = <0x80020000 0x2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
dma-apbx@80024000 {
|
||||
compatible = "fsl,imx23-dma-apbx";
|
||||
reg = <0x80024000 2000>;
|
||||
reg = <0x80024000 0x2000>;
|
||||
};
|
||||
|
||||
dcp@80028000 {
|
||||
reg = <0x80028000 2000>;
|
||||
reg = <0x80028000 0x2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
pxp@8002a000 {
|
||||
reg = <0x8002a000 2000>;
|
||||
reg = <0x8002a000 0x2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ocotp@8002c000 {
|
||||
reg = <0x8002c000 2000>;
|
||||
reg = <0x8002c000 0x2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
axi-ahb@8002e000 {
|
||||
reg = <0x8002e000 2000>;
|
||||
reg = <0x8002e000 0x2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
@ -310,14 +310,14 @@
|
||||
};
|
||||
|
||||
ssp1: ssp@80034000 {
|
||||
reg = <0x80034000 2000>;
|
||||
reg = <0x80034000 0x2000>;
|
||||
interrupts = <2 20>;
|
||||
fsl,ssp-dma-channel = <2>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
tvenc@80038000 {
|
||||
reg = <0x80038000 2000>;
|
||||
reg = <0x80038000 0x2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
@ -330,37 +330,37 @@
|
||||
ranges;
|
||||
|
||||
clkctl@80040000 {
|
||||
reg = <0x80040000 2000>;
|
||||
reg = <0x80040000 0x2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
saif0: saif@80042000 {
|
||||
reg = <0x80042000 2000>;
|
||||
reg = <0x80042000 0x2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
power@80044000 {
|
||||
reg = <0x80044000 2000>;
|
||||
reg = <0x80044000 0x2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
saif1: saif@80046000 {
|
||||
reg = <0x80046000 2000>;
|
||||
reg = <0x80046000 0x2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
audio-out@80048000 {
|
||||
reg = <0x80048000 2000>;
|
||||
reg = <0x80048000 0x2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
audio-in@8004c000 {
|
||||
reg = <0x8004c000 2000>;
|
||||
reg = <0x8004c000 0x2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
lradc@80050000 {
|
||||
reg = <0x80050000 2000>;
|
||||
reg = <0x80050000 0x2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
@ -370,26 +370,26 @@
|
||||
};
|
||||
|
||||
i2c@80058000 {
|
||||
reg = <0x80058000 2000>;
|
||||
reg = <0x80058000 0x2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
rtc@8005c000 {
|
||||
compatible = "fsl,imx23-rtc", "fsl,stmp3xxx-rtc";
|
||||
reg = <0x8005c000 2000>;
|
||||
reg = <0x8005c000 0x2000>;
|
||||
interrupts = <22>;
|
||||
};
|
||||
|
||||
pwm: pwm@80064000 {
|
||||
compatible = "fsl,imx23-pwm";
|
||||
reg = <0x80064000 2000>;
|
||||
reg = <0x80064000 0x2000>;
|
||||
#pwm-cells = <2>;
|
||||
fsl,pwm-number = <5>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
timrot@80068000 {
|
||||
reg = <0x80068000 2000>;
|
||||
reg = <0x80068000 0x2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
@ -429,7 +429,7 @@
|
||||
ranges;
|
||||
|
||||
usbctrl@80080000 {
|
||||
reg = <0x80080000 0x10000>;
|
||||
reg = <0x80080000 0x40000>;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
@ -27,7 +27,7 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
uart@1000a000 {
|
||||
uart1: serial@1000a000 {
|
||||
fsl,uart-has-rtscts;
|
||||
status = "okay";
|
||||
};
|
||||
|
@ -19,6 +19,12 @@
|
||||
serial3 = &uart4;
|
||||
serial4 = &uart5;
|
||||
serial5 = &uart6;
|
||||
gpio0 = &gpio1;
|
||||
gpio1 = &gpio2;
|
||||
gpio2 = &gpio3;
|
||||
gpio3 = &gpio4;
|
||||
gpio4 = &gpio5;
|
||||
gpio5 = &gpio6;
|
||||
};
|
||||
|
||||
avic: avic-interrupt-controller@e0000000 {
|
||||
|
@ -57,18 +57,18 @@
|
||||
};
|
||||
|
||||
hsadc@80002000 {
|
||||
reg = <0x80002000 2000>;
|
||||
reg = <0x80002000 0x2000>;
|
||||
interrupts = <13 87>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
dma-apbh@80004000 {
|
||||
compatible = "fsl,imx28-dma-apbh";
|
||||
reg = <0x80004000 2000>;
|
||||
reg = <0x80004000 0x2000>;
|
||||
};
|
||||
|
||||
perfmon@80006000 {
|
||||
reg = <0x80006000 800>;
|
||||
reg = <0x80006000 0x800>;
|
||||
interrupts = <27>;
|
||||
status = "disabled";
|
||||
};
|
||||
@ -77,7 +77,7 @@
|
||||
compatible = "fsl,imx28-gpmi-nand";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
reg = <0x8000c000 2000>, <0x8000a000 2000>;
|
||||
reg = <0x8000c000 0x2000>, <0x8000a000 0x2000>;
|
||||
reg-names = "gpmi-nand", "bch";
|
||||
interrupts = <88>, <41>;
|
||||
interrupt-names = "gpmi-dma", "bch";
|
||||
@ -86,28 +86,28 @@
|
||||
};
|
||||
|
||||
ssp0: ssp@80010000 {
|
||||
reg = <0x80010000 2000>;
|
||||
reg = <0x80010000 0x2000>;
|
||||
interrupts = <96 82>;
|
||||
fsl,ssp-dma-channel = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ssp1: ssp@80012000 {
|
||||
reg = <0x80012000 2000>;
|
||||
reg = <0x80012000 0x2000>;
|
||||
interrupts = <97 83>;
|
||||
fsl,ssp-dma-channel = <1>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ssp2: ssp@80014000 {
|
||||
reg = <0x80014000 2000>;
|
||||
reg = <0x80014000 0x2000>;
|
||||
interrupts = <98 84>;
|
||||
fsl,ssp-dma-channel = <2>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ssp3: ssp@80016000 {
|
||||
reg = <0x80016000 2000>;
|
||||
reg = <0x80016000 0x2000>;
|
||||
interrupts = <99 85>;
|
||||
fsl,ssp-dma-channel = <3>;
|
||||
status = "disabled";
|
||||
@ -117,7 +117,7 @@
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "fsl,imx28-pinctrl", "simple-bus";
|
||||
reg = <0x80018000 2000>;
|
||||
reg = <0x80018000 0x2000>;
|
||||
|
||||
gpio0: gpio@0 {
|
||||
compatible = "fsl,imx28-gpio", "fsl,mxs-gpio";
|
||||
@ -510,96 +510,96 @@
|
||||
};
|
||||
|
||||
digctl@8001c000 {
|
||||
reg = <0x8001c000 2000>;
|
||||
reg = <0x8001c000 0x2000>;
|
||||
interrupts = <89>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
etm@80022000 {
|
||||
reg = <0x80022000 2000>;
|
||||
reg = <0x80022000 0x2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
dma-apbx@80024000 {
|
||||
compatible = "fsl,imx28-dma-apbx";
|
||||
reg = <0x80024000 2000>;
|
||||
reg = <0x80024000 0x2000>;
|
||||
};
|
||||
|
||||
dcp@80028000 {
|
||||
reg = <0x80028000 2000>;
|
||||
reg = <0x80028000 0x2000>;
|
||||
interrupts = <52 53 54>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
pxp@8002a000 {
|
||||
reg = <0x8002a000 2000>;
|
||||
reg = <0x8002a000 0x2000>;
|
||||
interrupts = <39>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ocotp@8002c000 {
|
||||
reg = <0x8002c000 2000>;
|
||||
reg = <0x8002c000 0x2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
axi-ahb@8002e000 {
|
||||
reg = <0x8002e000 2000>;
|
||||
reg = <0x8002e000 0x2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
lcdif@80030000 {
|
||||
compatible = "fsl,imx28-lcdif";
|
||||
reg = <0x80030000 2000>;
|
||||
reg = <0x80030000 0x2000>;
|
||||
interrupts = <38 86>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
can0: can@80032000 {
|
||||
compatible = "fsl,imx28-flexcan", "fsl,p1010-flexcan";
|
||||
reg = <0x80032000 2000>;
|
||||
reg = <0x80032000 0x2000>;
|
||||
interrupts = <8>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
can1: can@80034000 {
|
||||
compatible = "fsl,imx28-flexcan", "fsl,p1010-flexcan";
|
||||
reg = <0x80034000 2000>;
|
||||
reg = <0x80034000 0x2000>;
|
||||
interrupts = <9>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
simdbg@8003c000 {
|
||||
reg = <0x8003c000 200>;
|
||||
reg = <0x8003c000 0x200>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
simgpmisel@8003c200 {
|
||||
reg = <0x8003c200 100>;
|
||||
reg = <0x8003c200 0x100>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
simsspsel@8003c300 {
|
||||
reg = <0x8003c300 100>;
|
||||
reg = <0x8003c300 0x100>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
simmemsel@8003c400 {
|
||||
reg = <0x8003c400 100>;
|
||||
reg = <0x8003c400 0x100>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
gpiomon@8003c500 {
|
||||
reg = <0x8003c500 100>;
|
||||
reg = <0x8003c500 0x100>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
simenet@8003c700 {
|
||||
reg = <0x8003c700 100>;
|
||||
reg = <0x8003c700 0x100>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
armjtag@8003c800 {
|
||||
reg = <0x8003c800 100>;
|
||||
reg = <0x8003c800 0x100>;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
@ -612,45 +612,45 @@
|
||||
ranges;
|
||||
|
||||
clkctl@80040000 {
|
||||
reg = <0x80040000 2000>;
|
||||
reg = <0x80040000 0x2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
saif0: saif@80042000 {
|
||||
compatible = "fsl,imx28-saif";
|
||||
reg = <0x80042000 2000>;
|
||||
reg = <0x80042000 0x2000>;
|
||||
interrupts = <59 80>;
|
||||
fsl,saif-dma-channel = <4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
power@80044000 {
|
||||
reg = <0x80044000 2000>;
|
||||
reg = <0x80044000 0x2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
saif1: saif@80046000 {
|
||||
compatible = "fsl,imx28-saif";
|
||||
reg = <0x80046000 2000>;
|
||||
reg = <0x80046000 0x2000>;
|
||||
interrupts = <58 81>;
|
||||
fsl,saif-dma-channel = <5>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
lradc@80050000 {
|
||||
reg = <0x80050000 2000>;
|
||||
reg = <0x80050000 0x2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
spdif@80054000 {
|
||||
reg = <0x80054000 2000>;
|
||||
reg = <0x80054000 0x2000>;
|
||||
interrupts = <45 66>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
rtc@80056000 {
|
||||
compatible = "fsl,imx28-rtc", "fsl,stmp3xxx-rtc";
|
||||
reg = <0x80056000 2000>;
|
||||
reg = <0x80056000 0x2000>;
|
||||
interrupts = <29>;
|
||||
};
|
||||
|
||||
@ -658,7 +658,7 @@
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "fsl,imx28-i2c";
|
||||
reg = <0x80058000 2000>;
|
||||
reg = <0x80058000 0x2000>;
|
||||
interrupts = <111 68>;
|
||||
clock-frequency = <100000>;
|
||||
status = "disabled";
|
||||
@ -668,7 +668,7 @@
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "fsl,imx28-i2c";
|
||||
reg = <0x8005a000 2000>;
|
||||
reg = <0x8005a000 0x2000>;
|
||||
interrupts = <110 69>;
|
||||
clock-frequency = <100000>;
|
||||
status = "disabled";
|
||||
@ -676,14 +676,14 @@
|
||||
|
||||
pwm: pwm@80064000 {
|
||||
compatible = "fsl,imx28-pwm", "fsl,imx23-pwm";
|
||||
reg = <0x80064000 2000>;
|
||||
reg = <0x80064000 0x2000>;
|
||||
#pwm-cells = <2>;
|
||||
fsl,pwm-number = <8>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
timrot@80068000 {
|
||||
reg = <0x80068000 2000>;
|
||||
reg = <0x80068000 0x2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
|
@ -53,7 +53,7 @@
|
||||
spi-max-frequency = <6000000>;
|
||||
reg = <0>;
|
||||
interrupt-parent = <&gpio1>;
|
||||
interrupts = <8>;
|
||||
interrupts = <8 0x4>;
|
||||
|
||||
regulators {
|
||||
sw1_reg: sw1 {
|
||||
|
@ -17,6 +17,10 @@
|
||||
serial0 = &uart1;
|
||||
serial1 = &uart2;
|
||||
serial2 = &uart3;
|
||||
gpio0 = &gpio1;
|
||||
gpio1 = &gpio2;
|
||||
gpio2 = &gpio3;
|
||||
gpio3 = &gpio4;
|
||||
};
|
||||
|
||||
tzic: tz-interrupt-controller@e0000000 {
|
||||
|
@ -64,12 +64,32 @@
|
||||
reg = <0xf4000000 0x2000000>;
|
||||
phy-mode = "mii";
|
||||
interrupt-parent = <&gpio2>;
|
||||
interrupts = <31>;
|
||||
interrupts = <31 0x8>;
|
||||
reg-io-width = <4>;
|
||||
/*
|
||||
* VDD33A and VDDVARIO of LAN9220 are supplied by
|
||||
* SW4_3V3 of LTC3589. Before the regulator driver
|
||||
* for this PMIC is available, we use a fixed dummy
|
||||
* 3V3 regulator to get LAN9220 driver probing work.
|
||||
*/
|
||||
vdd33a-supply = <®_3p3v>;
|
||||
vddvario-supply = <®_3p3v>;
|
||||
smsc,irq-push-pull;
|
||||
};
|
||||
};
|
||||
|
||||
regulators {
|
||||
compatible = "simple-bus";
|
||||
|
||||
reg_3p3v: 3p3v {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "3P3V";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
};
|
||||
|
||||
gpio-keys {
|
||||
compatible = "gpio-keys";
|
||||
|
||||
|
@ -19,6 +19,13 @@
|
||||
serial2 = &uart3;
|
||||
serial3 = &uart4;
|
||||
serial4 = &uart5;
|
||||
gpio0 = &gpio1;
|
||||
gpio1 = &gpio2;
|
||||
gpio2 = &gpio3;
|
||||
gpio3 = &gpio4;
|
||||
gpio4 = &gpio5;
|
||||
gpio5 = &gpio6;
|
||||
gpio6 = &gpio7;
|
||||
};
|
||||
|
||||
tzic: tz-interrupt-controller@0fffc000 {
|
||||
|
@ -53,6 +53,7 @@
|
||||
fsl,pins = <
|
||||
144 0x80000000 /* MX6Q_PAD_EIM_D22__GPIO_3_22 */
|
||||
121 0x80000000 /* MX6Q_PAD_EIM_D19__GPIO_3_19 */
|
||||
953 0x80000000 /* MX6Q_PAD_GPIO_0__CCM_CLKO */
|
||||
>;
|
||||
};
|
||||
};
|
||||
|
@ -19,6 +19,13 @@
|
||||
serial2 = &uart3;
|
||||
serial3 = &uart4;
|
||||
serial4 = &uart5;
|
||||
gpio0 = &gpio1;
|
||||
gpio1 = &gpio2;
|
||||
gpio2 = &gpio3;
|
||||
gpio3 = &gpio4;
|
||||
gpio4 = &gpio5;
|
||||
gpio5 = &gpio6;
|
||||
gpio6 = &gpio7;
|
||||
};
|
||||
|
||||
cpus {
|
||||
|
@ -192,6 +192,7 @@ CONFIG_RTC_DRV_MC13XXX=y
|
||||
CONFIG_RTC_DRV_MXC=y
|
||||
CONFIG_DMADEVICES=y
|
||||
CONFIG_IMX_SDMA=y
|
||||
CONFIG_MXS_DMA=y
|
||||
CONFIG_COMMON_CLK_DEBUG=y
|
||||
# CONFIG_IOMMU_SUPPORT is not set
|
||||
CONFIG_EXT2_FS=y
|
||||
|
@ -34,7 +34,6 @@ CONFIG_NO_HZ=y
|
||||
CONFIG_HIGH_RES_TIMERS=y
|
||||
CONFIG_PREEMPT_VOLUNTARY=y
|
||||
CONFIG_AEABI=y
|
||||
CONFIG_DEFAULT_MMAP_MIN_ADDR=65536
|
||||
CONFIG_AUTO_ZRELADDR=y
|
||||
CONFIG_FPE_NWFPE=y
|
||||
CONFIG_NET=y
|
||||
|
@ -7,7 +7,7 @@ CONFIG_SYSFS_DEPRECATED_V2=y
|
||||
CONFIG_BLK_DEV_INITRD=y
|
||||
CONFIG_EXPERT=y
|
||||
# CONFIG_KALLSYMS is not set
|
||||
# CONFIG_BUG is not set
|
||||
# CONFIG_BUGVERBOSE is not set
|
||||
# CONFIG_ELF_CORE is not set
|
||||
# CONFIG_SHMEM is not set
|
||||
CONFIG_SLOB=y
|
||||
|
@ -162,38 +162,6 @@ static void __init davinci_ntosd2_map_io(void)
|
||||
dm644x_init();
|
||||
}
|
||||
|
||||
/*
|
||||
I2C initialization
|
||||
*/
|
||||
static struct davinci_i2c_platform_data ntosd2_i2c_pdata = {
|
||||
.bus_freq = 20 /* kHz */,
|
||||
.bus_delay = 100 /* usec */,
|
||||
};
|
||||
|
||||
static struct i2c_board_info __initdata ntosd2_i2c_info[] = {
|
||||
};
|
||||
|
||||
static int ntosd2_init_i2c(void)
|
||||
{
|
||||
int status;
|
||||
|
||||
davinci_init_i2c(&ntosd2_i2c_pdata);
|
||||
status = gpio_request(NTOSD2_MSP430_IRQ, ntosd2_i2c_info[0].type);
|
||||
if (status == 0) {
|
||||
status = gpio_direction_input(NTOSD2_MSP430_IRQ);
|
||||
if (status == 0) {
|
||||
status = gpio_to_irq(NTOSD2_MSP430_IRQ);
|
||||
if (status > 0) {
|
||||
ntosd2_i2c_info[0].irq = status;
|
||||
i2c_register_board_info(1,
|
||||
ntosd2_i2c_info,
|
||||
ARRAY_SIZE(ntosd2_i2c_info));
|
||||
}
|
||||
}
|
||||
}
|
||||
return status;
|
||||
}
|
||||
|
||||
static struct davinci_mmc_config davinci_ntosd2_mmc_config = {
|
||||
.wires = 4,
|
||||
.version = MMC_CTLR_VERSION_1
|
||||
@ -218,7 +186,6 @@ static __init void davinci_ntosd2_init(void)
|
||||
{
|
||||
struct clk *aemif_clk;
|
||||
struct davinci_soc_info *soc_info = &davinci_soc_info;
|
||||
int status;
|
||||
|
||||
aemif_clk = clk_get(NULL, "aemif");
|
||||
clk_enable(aemif_clk);
|
||||
@ -242,12 +209,6 @@ static __init void davinci_ntosd2_init(void)
|
||||
platform_add_devices(davinci_ntosd2_devices,
|
||||
ARRAY_SIZE(davinci_ntosd2_devices));
|
||||
|
||||
/* Initialize I2C interface specific for this board */
|
||||
status = ntosd2_init_i2c();
|
||||
if (status < 0)
|
||||
pr_warning("davinci_ntosd2_init: msp430 irq setup failed:"
|
||||
" %d\n", status);
|
||||
|
||||
davinci_serial_init(&uart_config);
|
||||
dm644x_init_asp(&dm644x_ntosd2_snd_data);
|
||||
|
||||
|
@ -115,7 +115,7 @@ static __init int exynos_pm_dt_parse_domains(void)
|
||||
}
|
||||
#endif /* CONFIG_OF */
|
||||
|
||||
static __init void exynos_pm_add_dev_to_genpd(struct platform_device *pdev,
|
||||
static __init __maybe_unused void exynos_pm_add_dev_to_genpd(struct platform_device *pdev,
|
||||
struct exynos_pm_domain *pd)
|
||||
{
|
||||
if (pdev->dev.bus) {
|
||||
|
@ -223,7 +223,7 @@ int __init mx27_clocks_init(unsigned long fref)
|
||||
clk_register_clkdev(clk[per3_gate], "per", "imx-fb.0");
|
||||
clk_register_clkdev(clk[lcdc_ipg_gate], "ipg", "imx-fb.0");
|
||||
clk_register_clkdev(clk[lcdc_ahb_gate], "ahb", "imx-fb.0");
|
||||
clk_register_clkdev(clk[csi_ahb_gate], NULL, "mx2-camera.0");
|
||||
clk_register_clkdev(clk[csi_ahb_gate], "ahb", "mx2-camera.0");
|
||||
clk_register_clkdev(clk[usb_div], "per", "fsl-usb2-udc");
|
||||
clk_register_clkdev(clk[usb_ipg_gate], "ipg", "fsl-usb2-udc");
|
||||
clk_register_clkdev(clk[usb_ahb_gate], "ahb", "fsl-usb2-udc");
|
||||
@ -250,8 +250,10 @@ int __init mx27_clocks_init(unsigned long fref)
|
||||
clk_register_clkdev(clk[i2c2_ipg_gate], NULL, "imx-i2c.1");
|
||||
clk_register_clkdev(clk[owire_ipg_gate], NULL, "mxc_w1.0");
|
||||
clk_register_clkdev(clk[kpp_ipg_gate], NULL, "imx-keypad");
|
||||
clk_register_clkdev(clk[emma_ahb_gate], "ahb", "imx-emma");
|
||||
clk_register_clkdev(clk[emma_ipg_gate], "ipg", "imx-emma");
|
||||
clk_register_clkdev(clk[emma_ahb_gate], "emma-ahb", "mx2-camera.0");
|
||||
clk_register_clkdev(clk[emma_ipg_gate], "emma-ipg", "mx2-camera.0");
|
||||
clk_register_clkdev(clk[emma_ahb_gate], "ahb", "m2m-emmaprp.0");
|
||||
clk_register_clkdev(clk[emma_ipg_gate], "ipg", "m2m-emmaprp.0");
|
||||
clk_register_clkdev(clk[iim_ipg_gate], "iim", NULL);
|
||||
clk_register_clkdev(clk[gpio_ipg_gate], "gpio", NULL);
|
||||
clk_register_clkdev(clk[brom_ahb_gate], "brom", NULL);
|
||||
|
@ -130,7 +130,7 @@ int __init mx31_clocks_init(unsigned long fref)
|
||||
clk_register_clkdev(clk[nfc], NULL, "mxc_nand.0");
|
||||
clk_register_clkdev(clk[ipu_gate], NULL, "ipu-core");
|
||||
clk_register_clkdev(clk[ipu_gate], NULL, "mx3_sdc_fb");
|
||||
clk_register_clkdev(clk[kpp_gate], "kpp", NULL);
|
||||
clk_register_clkdev(clk[kpp_gate], NULL, "imx-keypad");
|
||||
clk_register_clkdev(clk[usb_div_post], "per", "mxc-ehci.0");
|
||||
clk_register_clkdev(clk[usb_gate], "ahb", "mxc-ehci.0");
|
||||
clk_register_clkdev(clk[ipg], "ipg", "mxc-ehci.0");
|
||||
|
@ -303,6 +303,7 @@ static void __init mx5_clocks_common_init(unsigned long rate_ckil,
|
||||
clk_prepare_enable(clk[aips_tz2]); /* fec */
|
||||
clk_prepare_enable(clk[spba]);
|
||||
clk_prepare_enable(clk[emi_fast_gate]); /* fec */
|
||||
clk_prepare_enable(clk[emi_slow_gate]); /* eim */
|
||||
clk_prepare_enable(clk[tmax1]);
|
||||
clk_prepare_enable(clk[tmax2]); /* esdhc2, fec */
|
||||
clk_prepare_enable(clk[tmax3]); /* esdhc1, esdhc4 */
|
||||
|
@ -11,6 +11,7 @@
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/device.h>
|
||||
#include <linux/export.h>
|
||||
#include <linux/spinlock.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/irq.h>
|
||||
|
@ -456,7 +456,7 @@ static void __init ap_init_timer(void)
|
||||
|
||||
clk = clk_get_sys("ap_timer", NULL);
|
||||
BUG_ON(IS_ERR(clk));
|
||||
clk_enable(clk);
|
||||
clk_prepare_enable(clk);
|
||||
rate = clk_get_rate(clk);
|
||||
|
||||
writel(0, TIMER0_VA_BASE + TIMER_CTRL);
|
||||
|
@ -9,5 +9,5 @@ dtb-$(CONFIG_MACH_ICONNECT_DT) += kirkwood-iconnect.dtb
|
||||
dtb-$(CONFIG_MACH_IB62X0_DT) += kirkwood-ib62x0.dtb
|
||||
dtb-$(CONFIG_MACH_TS219_DT) += kirkwood-qnap-ts219.dtb
|
||||
dtb-$(CONFIG_MACH_GOFLEXNET_DT) += kirkwood-goflexnet.dtb
|
||||
dbt-$(CONFIG_MACH_LSXL_DT) += kirkwood-lschlv2.dtb
|
||||
dbt-$(CONFIG_MACH_LSXL_DT) += kirkwood-lsxhl.dtb
|
||||
dtb-$(CONFIG_MACH_LSXL_DT) += kirkwood-lschlv2.dtb
|
||||
dtb-$(CONFIG_MACH_LSXL_DT) += kirkwood-lsxhl.dtb
|
||||
|
@ -2,9 +2,6 @@ if ARCH_MXS
|
||||
|
||||
source "arch/arm/mach-mxs/devices/Kconfig"
|
||||
|
||||
config MXS_OCOTP
|
||||
bool
|
||||
|
||||
config SOC_IMX23
|
||||
bool
|
||||
select ARM_AMBA
|
||||
@ -66,7 +63,6 @@ config MACH_MX28EVK
|
||||
select MXS_HAVE_PLATFORM_MXS_SAIF
|
||||
select MXS_HAVE_PLATFORM_MXS_I2C
|
||||
select MXS_HAVE_PLATFORM_RTC_STMP3XXX
|
||||
select MXS_OCOTP
|
||||
help
|
||||
Include support for MX28EVK platform. This includes specific
|
||||
configurations for the board and its peripherals.
|
||||
@ -94,7 +90,6 @@ config MODULE_M28
|
||||
select MXS_HAVE_PLATFORM_MXS_I2C
|
||||
select MXS_HAVE_PLATFORM_MXS_MMC
|
||||
select MXS_HAVE_PLATFORM_MXSFB
|
||||
select MXS_OCOTP
|
||||
|
||||
config MODULE_APX4
|
||||
bool
|
||||
@ -106,7 +101,6 @@ config MODULE_APX4
|
||||
select MXS_HAVE_PLATFORM_MXS_I2C
|
||||
select MXS_HAVE_PLATFORM_MXS_MMC
|
||||
select MXS_HAVE_PLATFORM_MXS_SAIF
|
||||
select MXS_OCOTP
|
||||
|
||||
config MACH_TX28
|
||||
bool "Ka-Ro TX28 module"
|
||||
|
@ -1,7 +1,6 @@
|
||||
# Common support
|
||||
obj-y := devices.o icoll.o iomux.o system.o timer.o mm.o
|
||||
obj-y := devices.o icoll.o iomux.o ocotp.o system.o timer.o mm.o
|
||||
|
||||
obj-$(CONFIG_MXS_OCOTP) += ocotp.o
|
||||
obj-$(CONFIG_PM) += pm.o
|
||||
|
||||
obj-$(CONFIG_MACH_MXS_DT) += mach-mxs.o
|
||||
|
@ -953,12 +953,12 @@ static struct i2c_board_info raumfeld_connector_i2c_board_info __initdata = {
|
||||
|
||||
static struct eeti_ts_platform_data eeti_ts_pdata = {
|
||||
.irq_active_high = 1,
|
||||
.irq_gpio = GPIO_TOUCH_IRQ,
|
||||
};
|
||||
|
||||
static struct i2c_board_info raumfeld_controller_i2c_board_info __initdata = {
|
||||
.type = "eeti_ts",
|
||||
.addr = 0x0a,
|
||||
.irq = PXA_GPIO_TO_IRQ(GPIO_TOUCH_IRQ),
|
||||
.platform_data = &eeti_ts_pdata,
|
||||
};
|
||||
|
||||
|
@ -483,7 +483,7 @@ config MACH_NEO1973_GTA02
|
||||
select I2C
|
||||
select POWER_SUPPLY
|
||||
select MACH_NEO1973
|
||||
select S3C2410_PWM
|
||||
select S3C24XX_PWM
|
||||
select S3C_DEV_USB_HOST
|
||||
help
|
||||
Say Y here if you are using the Openmoko GTA02 / Freerunner GSM Phone
|
||||
@ -493,7 +493,7 @@ config MACH_RX1950
|
||||
select S3C24XX_DCLK
|
||||
select PM_H1940 if PM
|
||||
select I2C
|
||||
select S3C2410_PWM
|
||||
select S3C24XX_PWM
|
||||
select S3C_DEV_NAND
|
||||
select S3C2410_IOTIMING if S3C2440_CPUFREQ
|
||||
select S3C2440_XTAL_16934400
|
||||
|
@ -10,6 +10,7 @@
|
||||
* as cpu led, the green one is used as timer led.
|
||||
*/
|
||||
#include <linux/init.h>
|
||||
#include <linux/io.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
#include <asm/leds.h>
|
||||
|
@ -51,7 +51,7 @@ static struct regulator_init_data ldo0_data = {
|
||||
.consumer_supplies = tps658621_ldo0_supply,
|
||||
};
|
||||
|
||||
#define HARMONY_REGULATOR_INIT(_id, _name, _supply, _minmv, _maxmv) \
|
||||
#define HARMONY_REGULATOR_INIT(_id, _name, _supply, _minmv, _maxmv, _on)\
|
||||
static struct regulator_init_data _id##_data = { \
|
||||
.supply_regulator = _supply, \
|
||||
.constraints = { \
|
||||
@ -63,21 +63,22 @@ static struct regulator_init_data ldo0_data = {
|
||||
.valid_ops_mask = (REGULATOR_CHANGE_MODE | \
|
||||
REGULATOR_CHANGE_STATUS | \
|
||||
REGULATOR_CHANGE_VOLTAGE), \
|
||||
.always_on = _on, \
|
||||
}, \
|
||||
}
|
||||
|
||||
HARMONY_REGULATOR_INIT(sm0, "vdd_sm0", "vdd_sys", 725, 1500);
|
||||
HARMONY_REGULATOR_INIT(sm1, "vdd_sm1", "vdd_sys", 725, 1500);
|
||||
HARMONY_REGULATOR_INIT(sm2, "vdd_sm2", "vdd_sys", 3000, 4550);
|
||||
HARMONY_REGULATOR_INIT(ldo1, "vdd_ldo1", "vdd_sm2", 725, 1500);
|
||||
HARMONY_REGULATOR_INIT(ldo2, "vdd_ldo2", "vdd_sm2", 725, 1500);
|
||||
HARMONY_REGULATOR_INIT(ldo3, "vdd_ldo3", "vdd_sm2", 1250, 3300);
|
||||
HARMONY_REGULATOR_INIT(ldo4, "vdd_ldo4", "vdd_sm2", 1700, 2475);
|
||||
HARMONY_REGULATOR_INIT(ldo5, "vdd_ldo5", NULL, 1250, 3300);
|
||||
HARMONY_REGULATOR_INIT(ldo6, "vdd_ldo6", "vdd_sm2", 1250, 3300);
|
||||
HARMONY_REGULATOR_INIT(ldo7, "vdd_ldo7", "vdd_sm2", 1250, 3300);
|
||||
HARMONY_REGULATOR_INIT(ldo8, "vdd_ldo8", "vdd_sm2", 1250, 3300);
|
||||
HARMONY_REGULATOR_INIT(ldo9, "vdd_ldo9", "vdd_sm2", 1250, 3300);
|
||||
HARMONY_REGULATOR_INIT(sm0, "vdd_sm0", "vdd_sys", 725, 1500, 1);
|
||||
HARMONY_REGULATOR_INIT(sm1, "vdd_sm1", "vdd_sys", 725, 1500, 1);
|
||||
HARMONY_REGULATOR_INIT(sm2, "vdd_sm2", "vdd_sys", 3000, 4550, 1);
|
||||
HARMONY_REGULATOR_INIT(ldo1, "vdd_ldo1", "vdd_sm2", 725, 1500, 1);
|
||||
HARMONY_REGULATOR_INIT(ldo2, "vdd_ldo2", "vdd_sm2", 725, 1500, 0);
|
||||
HARMONY_REGULATOR_INIT(ldo3, "vdd_ldo3", "vdd_sm2", 1250, 3300, 1);
|
||||
HARMONY_REGULATOR_INIT(ldo4, "vdd_ldo4", "vdd_sm2", 1700, 2475, 1);
|
||||
HARMONY_REGULATOR_INIT(ldo5, "vdd_ldo5", NULL, 1250, 3300, 1);
|
||||
HARMONY_REGULATOR_INIT(ldo6, "vdd_ldo6", "vdd_sm2", 1250, 3300, 0);
|
||||
HARMONY_REGULATOR_INIT(ldo7, "vdd_ldo7", "vdd_sm2", 1250, 3300, 0);
|
||||
HARMONY_REGULATOR_INIT(ldo8, "vdd_ldo8", "vdd_sm2", 1250, 3300, 0);
|
||||
HARMONY_REGULATOR_INIT(ldo9, "vdd_ldo9", "vdd_sm2", 1250, 3300, 1);
|
||||
|
||||
#define TPS_REG(_id, _data) \
|
||||
{ \
|
||||
@ -119,9 +120,10 @@ static struct i2c_board_info __initdata harmony_regulators[] = {
|
||||
|
||||
int __init harmony_regulator_init(void)
|
||||
{
|
||||
regulator_register_always_on(0, "vdd_sys",
|
||||
NULL, 0, 5000000);
|
||||
|
||||
if (machine_is_harmony()) {
|
||||
regulator_register_always_on(0, "vdd_sys",
|
||||
NULL, 0, 5000000);
|
||||
i2c_register_board_info(3, harmony_regulators, 1);
|
||||
} else { /* Harmony, booted using device tree */
|
||||
struct device_node *np;
|
||||
|
@ -358,7 +358,7 @@ void __init dma_contiguous_remap(void)
|
||||
if (end > arm_lowmem_limit)
|
||||
end = arm_lowmem_limit;
|
||||
if (start >= end)
|
||||
return;
|
||||
continue;
|
||||
|
||||
map.pfn = __phys_to_pfn(start);
|
||||
map.virtual = __phys_to_virt(start);
|
||||
@ -423,7 +423,7 @@ static void *__alloc_from_pool(size_t size, struct page **ret_page)
|
||||
unsigned int pageno;
|
||||
unsigned long flags;
|
||||
void *ptr = NULL;
|
||||
size_t align;
|
||||
unsigned long align_mask;
|
||||
|
||||
if (!pool->vaddr) {
|
||||
WARN(1, "coherent pool not initialised!\n");
|
||||
@ -435,11 +435,11 @@ static void *__alloc_from_pool(size_t size, struct page **ret_page)
|
||||
* small, so align them to their order in pages, minimum is a page
|
||||
* size. This helps reduce fragmentation of the DMA space.
|
||||
*/
|
||||
align = PAGE_SIZE << get_order(size);
|
||||
align_mask = (1 << get_order(size)) - 1;
|
||||
|
||||
spin_lock_irqsave(&pool->lock, flags);
|
||||
pageno = bitmap_find_next_zero_area(pool->bitmap, pool->nr_pages,
|
||||
0, count, (1 << align) - 1);
|
||||
0, count, align_mask);
|
||||
if (pageno < pool->nr_pages) {
|
||||
bitmap_set(pool->bitmap, pageno, count);
|
||||
ptr = pool->vaddr + PAGE_SIZE * pageno;
|
||||
@ -648,12 +648,12 @@ void arm_dma_free(struct device *dev, size_t size, void *cpu_addr,
|
||||
|
||||
if (arch_is_coherent() || nommu()) {
|
||||
__dma_free_buffer(page, size);
|
||||
} else if (__free_from_pool(cpu_addr, size)) {
|
||||
return;
|
||||
} else if (!IS_ENABLED(CONFIG_CMA)) {
|
||||
__dma_free_remap(cpu_addr, size);
|
||||
__dma_free_buffer(page, size);
|
||||
} else {
|
||||
if (__free_from_pool(cpu_addr, size))
|
||||
return;
|
||||
/*
|
||||
* Non-atomic allocations cannot be freed with IRQs disabled
|
||||
*/
|
||||
|
@ -403,7 +403,8 @@ config S5P_DEV_USB_EHCI
|
||||
|
||||
config S3C24XX_PWM
|
||||
bool "PWM device support"
|
||||
select HAVE_PWM
|
||||
select PWM
|
||||
select PWM_SAMSUNG
|
||||
help
|
||||
Support for exporting the PWM timer blocks via the pwm device
|
||||
system
|
||||
|
@ -52,7 +52,6 @@ EXPORT_SYMBOL(reserved_mem_dcache_on);
|
||||
#ifdef CONFIG_MTD_UCLINUX
|
||||
extern struct map_info uclinux_ram_map;
|
||||
unsigned long memory_mtd_end, memory_mtd_start, mtd_size;
|
||||
unsigned long _ebss;
|
||||
EXPORT_SYMBOL(memory_mtd_end);
|
||||
EXPORT_SYMBOL(memory_mtd_start);
|
||||
EXPORT_SYMBOL(mtd_size);
|
||||
|
@ -587,6 +587,21 @@ static struct platform_device bfin_tdm = {
|
||||
};
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_SND_BF5XX_SOC_AD1836) \
|
||||
|| defined(CONFIG_SND_BF5XX_SOC_AD1836_MODULE)
|
||||
static const char * const ad1836_link[] = {
|
||||
"bfin-tdm.0",
|
||||
"spi0.4",
|
||||
};
|
||||
static struct platform_device bfin_ad1836_machine = {
|
||||
.name = "bfin-snd-ad1836",
|
||||
.id = -1,
|
||||
.dev = {
|
||||
.platform_data = (void *)ad1836_link,
|
||||
},
|
||||
};
|
||||
#endif
|
||||
|
||||
static struct spi_board_info bfin_spi_board_info[] __initdata = {
|
||||
#if defined(CONFIG_MTD_M25P80) \
|
||||
|| defined(CONFIG_MTD_M25P80_MODULE)
|
||||
@ -1269,6 +1284,11 @@ static struct platform_device *stamp_devices[] __initdata = {
|
||||
#if defined(CONFIG_SND_BF5XX_TDM) || defined(CONFIG_SND_BF5XX_TDM_MODULE)
|
||||
&bfin_tdm,
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_SND_BF5XX_SOC_AD1836) || \
|
||||
defined(CONFIG_SND_BF5XX_SOC_AD1836_MODULE)
|
||||
&bfin_ad1836_machine,
|
||||
#endif
|
||||
};
|
||||
|
||||
static int __init ezkit_init(void)
|
||||
|
@ -617,6 +617,21 @@ static struct platform_device bfin_ac97_pcm = {
|
||||
};
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_SND_BF5XX_SOC_AD1836) \
|
||||
|| defined(CONFIG_SND_BF5XX_SOC_AD1836_MODULE)
|
||||
static const char * const ad1836_link[] = {
|
||||
"bfin-tdm.0",
|
||||
"spi0.4",
|
||||
};
|
||||
static struct platform_device bfin_ad1836_machine = {
|
||||
.name = "bfin-snd-ad1836",
|
||||
.id = -1,
|
||||
.dev = {
|
||||
.platform_data = (void *)ad1836_link,
|
||||
},
|
||||
};
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_SND_BF5XX_SOC_AD73311) || \
|
||||
defined(CONFIG_SND_BF5XX_SOC_AD73311_MODULE)
|
||||
static const unsigned ad73311_gpio[] = {
|
||||
@ -754,6 +769,11 @@ static struct platform_device *stamp_devices[] __initdata = {
|
||||
&bfin_ac97_pcm,
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_SND_BF5XX_SOC_AD1836) || \
|
||||
defined(CONFIG_SND_BF5XX_SOC_AD1836_MODULE)
|
||||
&bfin_ad1836_machine,
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_SND_BF5XX_SOC_AD73311) || \
|
||||
defined(CONFIG_SND_BF5XX_SOC_AD73311_MODULE)
|
||||
&bfin_ad73311_machine,
|
||||
|
@ -2641,6 +2641,21 @@ static struct platform_device bfin_ac97_pcm = {
|
||||
};
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_SND_BF5XX_SOC_AD1836) \
|
||||
|| defined(CONFIG_SND_BF5XX_SOC_AD1836_MODULE)
|
||||
static const char * const ad1836_link[] = {
|
||||
"bfin-tdm.0",
|
||||
"spi0.4",
|
||||
};
|
||||
static struct platform_device bfin_ad1836_machine = {
|
||||
.name = "bfin-snd-ad1836",
|
||||
.id = -1,
|
||||
.dev = {
|
||||
.platform_data = (void *)ad1836_link,
|
||||
},
|
||||
};
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_SND_BF5XX_SOC_AD73311) || \
|
||||
defined(CONFIG_SND_BF5XX_SOC_AD73311_MODULE)
|
||||
static const unsigned ad73311_gpio[] = {
|
||||
@ -2927,6 +2942,11 @@ static struct platform_device *stamp_devices[] __initdata = {
|
||||
&bfin_ac97_pcm,
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_SND_BF5XX_SOC_AD1836) || \
|
||||
defined(CONFIG_SND_BF5XX_SOC_AD1836_MODULE)
|
||||
&bfin_ad1836_machine,
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_SND_BF5XX_SOC_AD73311) || \
|
||||
defined(CONFIG_SND_BF5XX_SOC_AD73311_MODULE)
|
||||
&bfin_ad73311_machine,
|
||||
|
@ -539,6 +539,21 @@ static struct platform_device bfin_ac97 = {
|
||||
};
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_SND_BF5XX_SOC_AD1836) \
|
||||
|| defined(CONFIG_SND_BF5XX_SOC_AD1836_MODULE)
|
||||
static const char * const ad1836_link[] = {
|
||||
"bfin-tdm.0",
|
||||
"spi0.4",
|
||||
};
|
||||
static struct platform_device bfin_ad1836_machine = {
|
||||
.name = "bfin-snd-ad1836",
|
||||
.id = -1,
|
||||
.dev = {
|
||||
.platform_data = (void *)ad1836_link,
|
||||
},
|
||||
};
|
||||
#endif
|
||||
|
||||
static struct platform_device *ezkit_devices[] __initdata = {
|
||||
|
||||
&bfin_dpmc,
|
||||
@ -603,6 +618,11 @@ static struct platform_device *ezkit_devices[] __initdata = {
|
||||
#if defined(CONFIG_SND_BF5XX_AC97) || defined(CONFIG_SND_BF5XX_AC97_MODULE)
|
||||
&bfin_ac97,
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_SND_BF5XX_SOC_AD1836) || \
|
||||
defined(CONFIG_SND_BF5XX_SOC_AD1836_MODULE)
|
||||
&bfin_ad1836_machine,
|
||||
#endif
|
||||
};
|
||||
|
||||
static int __init net2272_init(void)
|
||||
|
@ -818,6 +818,21 @@ static struct platform_device bfin_i2s = {
|
||||
};
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_SND_BF5XX_SOC_AD1836) \
|
||||
|| defined(CONFIG_SND_BF5XX_SOC_AD1836_MODULE)
|
||||
static const char * const ad1836_link[] = {
|
||||
"bfin-tdm.0",
|
||||
"spi0.76",
|
||||
};
|
||||
static struct platform_device bfin_ad1836_machine = {
|
||||
.name = "bfin-snd-ad1836",
|
||||
.id = -1,
|
||||
.dev = {
|
||||
.platform_data = (void *)ad1836_link,
|
||||
},
|
||||
};
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_SND_SOC_BFIN_EVAL_ADAU1X61) || \
|
||||
defined(CONFIG_SND_SOC_BFIN_EVAL_ADAU1X61_MODULE)
|
||||
static struct platform_device adau1761_device = {
|
||||
@ -1557,6 +1572,10 @@ static struct platform_device *ezkit_devices[] __initdata = {
|
||||
defined(CONFIG_SND_BF6XX_SOC_I2S_MODULE)
|
||||
&bfin_i2s,
|
||||
#endif
|
||||
#if defined(CONFIG_SND_BF5XX_SOC_AD1836) || \
|
||||
defined(CONFIG_SND_BF5XX_SOC_AD1836_MODULE)
|
||||
&bfin_ad1836_machine,
|
||||
#endif
|
||||
#if defined(CONFIG_SND_SOC_BFIN_EVAL_ADAU1X61) || \
|
||||
defined(CONFIG_SND_SOC_BFIN_EVAL_ADAU1X61_MODULE)
|
||||
&adau1761_device,
|
||||
|
@ -497,7 +497,7 @@ acpi_numa_processor_affinity_init(struct acpi_srat_cpu_affinity *pa)
|
||||
srat_num_cpus++;
|
||||
}
|
||||
|
||||
void __init
|
||||
int __init
|
||||
acpi_numa_memory_affinity_init(struct acpi_srat_mem_affinity *ma)
|
||||
{
|
||||
unsigned long paddr, size;
|
||||
@ -512,7 +512,7 @@ acpi_numa_memory_affinity_init(struct acpi_srat_mem_affinity *ma)
|
||||
|
||||
/* Ignore disabled entries */
|
||||
if (!(ma->flags & ACPI_SRAT_MEM_ENABLED))
|
||||
return;
|
||||
return -1;
|
||||
|
||||
/* record this node in proximity bitmap */
|
||||
pxm_bit_set(pxm);
|
||||
@ -531,6 +531,7 @@ acpi_numa_memory_affinity_init(struct acpi_srat_mem_affinity *ma)
|
||||
p->size = size;
|
||||
p->nid = pxm;
|
||||
num_node_memblks++;
|
||||
return 0;
|
||||
}
|
||||
|
||||
void __init acpi_numa_arch_fixup(void)
|
||||
|
@ -54,18 +54,6 @@ config ZONE_DMA
|
||||
bool
|
||||
default y
|
||||
|
||||
config CPU_HAS_NO_BITFIELDS
|
||||
bool
|
||||
|
||||
config CPU_HAS_NO_MULDIV64
|
||||
bool
|
||||
|
||||
config CPU_HAS_ADDRESS_SPACES
|
||||
bool
|
||||
|
||||
config FPU
|
||||
bool
|
||||
|
||||
config HZ
|
||||
int
|
||||
default 1000 if CLEOPATRA
|
||||
|
@ -37,6 +37,7 @@ config M68000
|
||||
bool
|
||||
select CPU_HAS_NO_BITFIELDS
|
||||
select CPU_HAS_NO_MULDIV64
|
||||
select CPU_HAS_NO_UNALIGNED
|
||||
select GENERIC_CSUM
|
||||
help
|
||||
The Freescale (was Motorola) 68000 CPU is the first generation of
|
||||
@ -48,6 +49,7 @@ config M68000
|
||||
config MCPU32
|
||||
bool
|
||||
select CPU_HAS_NO_BITFIELDS
|
||||
select CPU_HAS_NO_UNALIGNED
|
||||
help
|
||||
The Freescale (was then Motorola) CPU32 is a CPU core that is
|
||||
based on the 68020 processor. For the most part it is used in
|
||||
@ -376,6 +378,18 @@ config NODES_SHIFT
|
||||
default "3"
|
||||
depends on !SINGLE_MEMORY_CHUNK
|
||||
|
||||
config CPU_HAS_NO_BITFIELDS
|
||||
bool
|
||||
|
||||
config CPU_HAS_NO_MULDIV64
|
||||
bool
|
||||
|
||||
config CPU_HAS_NO_UNALIGNED
|
||||
bool
|
||||
|
||||
config CPU_HAS_ADDRESS_SPACES
|
||||
bool
|
||||
|
||||
config FPU
|
||||
bool
|
||||
|
||||
|
@ -177,8 +177,8 @@ irqreturn_t dn_timer_int(int irq, void *dev_id)
|
||||
|
||||
timer_handler(irq, dev_id);
|
||||
|
||||
x=*(volatile unsigned char *)(timer+3);
|
||||
x=*(volatile unsigned char *)(timer+5);
|
||||
x = *(volatile unsigned char *)(apollo_timer + 3);
|
||||
x = *(volatile unsigned char *)(apollo_timer + 5);
|
||||
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
@ -186,17 +186,17 @@ irqreturn_t dn_timer_int(int irq, void *dev_id)
|
||||
void dn_sched_init(irq_handler_t timer_routine)
|
||||
{
|
||||
/* program timer 1 */
|
||||
*(volatile unsigned char *)(timer+3)=0x01;
|
||||
*(volatile unsigned char *)(timer+1)=0x40;
|
||||
*(volatile unsigned char *)(timer+5)=0x09;
|
||||
*(volatile unsigned char *)(timer+7)=0xc4;
|
||||
*(volatile unsigned char *)(apollo_timer + 3) = 0x01;
|
||||
*(volatile unsigned char *)(apollo_timer + 1) = 0x40;
|
||||
*(volatile unsigned char *)(apollo_timer + 5) = 0x09;
|
||||
*(volatile unsigned char *)(apollo_timer + 7) = 0xc4;
|
||||
|
||||
/* enable IRQ of PIC B */
|
||||
*(volatile unsigned char *)(pica+1)&=(~8);
|
||||
|
||||
#if 0
|
||||
printk("*(0x10803) %02x\n",*(volatile unsigned char *)(timer+0x3));
|
||||
printk("*(0x10803) %02x\n",*(volatile unsigned char *)(timer+0x3));
|
||||
printk("*(0x10803) %02x\n",*(volatile unsigned char *)(apollo_timer + 0x3));
|
||||
printk("*(0x10803) %02x\n",*(volatile unsigned char *)(apollo_timer + 0x3));
|
||||
#endif
|
||||
|
||||
if (request_irq(IRQ_APOLLO, dn_timer_int, 0, "time", timer_routine))
|
||||
|
@ -1,4 +1,29 @@
|
||||
include include/asm-generic/Kbuild.asm
|
||||
header-y += cachectl.h
|
||||
|
||||
generic-y += bitsperlong.h
|
||||
generic-y += cputime.h
|
||||
generic-y += device.h
|
||||
generic-y += emergency-restart.h
|
||||
generic-y += errno.h
|
||||
generic-y += futex.h
|
||||
generic-y += ioctl.h
|
||||
generic-y += ipcbuf.h
|
||||
generic-y += irq_regs.h
|
||||
generic-y += kdebug.h
|
||||
generic-y += kmap_types.h
|
||||
generic-y += kvm_para.h
|
||||
generic-y += local64.h
|
||||
generic-y += local.h
|
||||
generic-y += mman.h
|
||||
generic-y += mutex.h
|
||||
generic-y += percpu.h
|
||||
generic-y += resource.h
|
||||
generic-y += scatterlist.h
|
||||
generic-y += sections.h
|
||||
generic-y += siginfo.h
|
||||
generic-y += statfs.h
|
||||
generic-y += topology.h
|
||||
generic-y += types.h
|
||||
generic-y += word-at-a-time.h
|
||||
generic-y += xor.h
|
||||
|
@ -1,152 +0,0 @@
|
||||
|
||||
/* include/asm-m68knommu/MC68332.h: '332 control registers
|
||||
*
|
||||
* Copyright (C) 1998 Kenneth Albanowski <kjahds@kjahds.com>,
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _MC68332_H_
|
||||
#define _MC68332_H_
|
||||
|
||||
#define BYTE_REF(addr) (*((volatile unsigned char*)addr))
|
||||
#define WORD_REF(addr) (*((volatile unsigned short*)addr))
|
||||
|
||||
#define PORTE_ADDR 0xfffa11
|
||||
#define PORTE BYTE_REF(PORTE_ADDR)
|
||||
#define DDRE_ADDR 0xfffa15
|
||||
#define DDRE BYTE_REF(DDRE_ADDR)
|
||||
#define PEPAR_ADDR 0xfffa17
|
||||
#define PEPAR BYTE_REF(PEPAR_ADDR)
|
||||
|
||||
#define PORTF_ADDR 0xfffa19
|
||||
#define PORTF BYTE_REF(PORTF_ADDR)
|
||||
#define DDRF_ADDR 0xfffa1d
|
||||
#define DDRF BYTE_REF(DDRF_ADDR)
|
||||
#define PFPAR_ADDR 0xfffa1f
|
||||
#define PFPAR BYTE_REF(PFPAR_ADDR)
|
||||
|
||||
#define PORTQS_ADDR 0xfffc15
|
||||
#define PORTQS BYTE_REF(PORTQS_ADDR)
|
||||
#define DDRQS_ADDR 0xfffc17
|
||||
#define DDRQS BYTE_REF(DDRQS_ADDR)
|
||||
#define PQSPAR_ADDR 0xfffc16
|
||||
#define PQSPAR BYTE_REF(PQSPAR_ADDR)
|
||||
|
||||
#define CSPAR0_ADDR 0xFFFA44
|
||||
#define CSPAR0 WORD_REF(CSPAR0_ADDR)
|
||||
#define CSPAR1_ADDR 0xFFFA46
|
||||
#define CSPAR1 WORD_REF(CSPAR1_ADDR)
|
||||
#define CSARBT_ADDR 0xFFFA48
|
||||
#define CSARBT WORD_REF(CSARBT_ADDR)
|
||||
#define CSOPBT_ADDR 0xFFFA4A
|
||||
#define CSOPBT WORD_REF(CSOPBT_ADDR)
|
||||
#define CSBAR0_ADDR 0xFFFA4C
|
||||
#define CSBAR0 WORD_REF(CSBAR0_ADDR)
|
||||
#define CSOR0_ADDR 0xFFFA4E
|
||||
#define CSOR0 WORD_REF(CSOR0_ADDR)
|
||||
#define CSBAR1_ADDR 0xFFFA50
|
||||
#define CSBAR1 WORD_REF(CSBAR1_ADDR)
|
||||
#define CSOR1_ADDR 0xFFFA52
|
||||
#define CSOR1 WORD_REF(CSOR1_ADDR)
|
||||
#define CSBAR2_ADDR 0xFFFA54
|
||||
#define CSBAR2 WORD_REF(CSBAR2_ADDR)
|
||||
#define CSOR2_ADDR 0xFFFA56
|
||||
#define CSOR2 WORD_REF(CSOR2_ADDR)
|
||||
#define CSBAR3_ADDR 0xFFFA58
|
||||
#define CSBAR3 WORD_REF(CSBAR3_ADDR)
|
||||
#define CSOR3_ADDR 0xFFFA5A
|
||||
#define CSOR3 WORD_REF(CSOR3_ADDR)
|
||||
#define CSBAR4_ADDR 0xFFFA5C
|
||||
#define CSBAR4 WORD_REF(CSBAR4_ADDR)
|
||||
#define CSOR4_ADDR 0xFFFA5E
|
||||
#define CSOR4 WORD_REF(CSOR4_ADDR)
|
||||
#define CSBAR5_ADDR 0xFFFA60
|
||||
#define CSBAR5 WORD_REF(CSBAR5_ADDR)
|
||||
#define CSOR5_ADDR 0xFFFA62
|
||||
#define CSOR5 WORD_REF(CSOR5_ADDR)
|
||||
#define CSBAR6_ADDR 0xFFFA64
|
||||
#define CSBAR6 WORD_REF(CSBAR6_ADDR)
|
||||
#define CSOR6_ADDR 0xFFFA66
|
||||
#define CSOR6 WORD_REF(CSOR6_ADDR)
|
||||
#define CSBAR7_ADDR 0xFFFA68
|
||||
#define CSBAR7 WORD_REF(CSBAR7_ADDR)
|
||||
#define CSOR7_ADDR 0xFFFA6A
|
||||
#define CSOR7 WORD_REF(CSOR7_ADDR)
|
||||
#define CSBAR8_ADDR 0xFFFA6C
|
||||
#define CSBAR8 WORD_REF(CSBAR8_ADDR)
|
||||
#define CSOR8_ADDR 0xFFFA6E
|
||||
#define CSOR8 WORD_REF(CSOR8_ADDR)
|
||||
#define CSBAR9_ADDR 0xFFFA70
|
||||
#define CSBAR9 WORD_REF(CSBAR9_ADDR)
|
||||
#define CSOR9_ADDR 0xFFFA72
|
||||
#define CSOR9 WORD_REF(CSOR9_ADDR)
|
||||
#define CSBAR10_ADDR 0xFFFA74
|
||||
#define CSBAR10 WORD_REF(CSBAR10_ADDR)
|
||||
#define CSOR10_ADDR 0xFFFA76
|
||||
#define CSOR10 WORD_REF(CSOR10_ADDR)
|
||||
|
||||
#define CSOR_MODE_ASYNC 0x0000
|
||||
#define CSOR_MODE_SYNC 0x8000
|
||||
#define CSOR_MODE_MASK 0x8000
|
||||
#define CSOR_BYTE_DISABLE 0x0000
|
||||
#define CSOR_BYTE_UPPER 0x4000
|
||||
#define CSOR_BYTE_LOWER 0x2000
|
||||
#define CSOR_BYTE_BOTH 0x6000
|
||||
#define CSOR_BYTE_MASK 0x6000
|
||||
#define CSOR_RW_RSVD 0x0000
|
||||
#define CSOR_RW_READ 0x0800
|
||||
#define CSOR_RW_WRITE 0x1000
|
||||
#define CSOR_RW_BOTH 0x1800
|
||||
#define CSOR_RW_MASK 0x1800
|
||||
#define CSOR_STROBE_DS 0x0400
|
||||
#define CSOR_STROBE_AS 0x0000
|
||||
#define CSOR_STROBE_MASK 0x0400
|
||||
#define CSOR_DSACK_WAIT(x) (wait << 6)
|
||||
#define CSOR_DSACK_FTERM (14 << 6)
|
||||
#define CSOR_DSACK_EXTERNAL (15 << 6)
|
||||
#define CSOR_DSACK_MASK 0x03c0
|
||||
#define CSOR_SPACE_CPU 0x0000
|
||||
#define CSOR_SPACE_USER 0x0010
|
||||
#define CSOR_SPACE_SU 0x0020
|
||||
#define CSOR_SPACE_BOTH 0x0030
|
||||
#define CSOR_SPACE_MASK 0x0030
|
||||
#define CSOR_IPL_ALL 0x0000
|
||||
#define CSOR_IPL_PRIORITY(x) (x << 1)
|
||||
#define CSOR_IPL_MASK 0x000e
|
||||
#define CSOR_AVEC_ON 0x0001
|
||||
#define CSOR_AVEC_OFF 0x0000
|
||||
#define CSOR_AVEC_MASK 0x0001
|
||||
|
||||
#define CSBAR_ADDR(x) ((addr >> 11) << 3)
|
||||
#define CSBAR_ADDR_MASK 0xfff8
|
||||
#define CSBAR_BLKSIZE_2K 0x0000
|
||||
#define CSBAR_BLKSIZE_8K 0x0001
|
||||
#define CSBAR_BLKSIZE_16K 0x0002
|
||||
#define CSBAR_BLKSIZE_64K 0x0003
|
||||
#define CSBAR_BLKSIZE_128K 0x0004
|
||||
#define CSBAR_BLKSIZE_256K 0x0005
|
||||
#define CSBAR_BLKSIZE_512K 0x0006
|
||||
#define CSBAR_BLKSIZE_1M 0x0007
|
||||
#define CSBAR_BLKSIZE_MASK 0x0007
|
||||
|
||||
#define CSPAR_DISC 0
|
||||
#define CSPAR_ALT 1
|
||||
#define CSPAR_CS8 2
|
||||
#define CSPAR_CS16 3
|
||||
#define CSPAR_MASK 3
|
||||
|
||||
#define CSPAR0_CSBOOT(x) (x << 0)
|
||||
#define CSPAR0_CS0(x) (x << 2)
|
||||
#define CSPAR0_CS1(x) (x << 4)
|
||||
#define CSPAR0_CS2(x) (x << 6)
|
||||
#define CSPAR0_CS3(x) (x << 8)
|
||||
#define CSPAR0_CS4(x) (x << 10)
|
||||
#define CSPAR0_CS5(x) (x << 12)
|
||||
|
||||
#define CSPAR1_CS6(x) (x << 0)
|
||||
#define CSPAR1_CS7(x) (x << 2)
|
||||
#define CSPAR1_CS8(x) (x << 4)
|
||||
#define CSPAR1_CS9(x) (x << 6)
|
||||
#define CSPAR1_CS10(x) (x << 8)
|
||||
|
||||
#endif
|
@ -1,248 +0,0 @@
|
||||
/*
|
||||
* linux/include/asm/dma.h: Defines for using and allocating dma channels.
|
||||
* Written by Hennus Bergman, 1992.
|
||||
* High DMA channel support & info by Hannu Savolainen
|
||||
* and John Boyd, Nov. 1992.
|
||||
*/
|
||||
|
||||
#ifndef _ASM_APOLLO_DMA_H
|
||||
#define _ASM_APOLLO_DMA_H
|
||||
|
||||
#include <asm/apollohw.h> /* need byte IO */
|
||||
#include <linux/spinlock.h> /* And spinlocks */
|
||||
#include <linux/delay.h>
|
||||
|
||||
|
||||
#define dma_outb(val,addr) (*((volatile unsigned char *)(addr+IO_BASE)) = (val))
|
||||
#define dma_inb(addr) (*((volatile unsigned char *)(addr+IO_BASE)))
|
||||
|
||||
/*
|
||||
* NOTES about DMA transfers:
|
||||
*
|
||||
* controller 1: channels 0-3, byte operations, ports 00-1F
|
||||
* controller 2: channels 4-7, word operations, ports C0-DF
|
||||
*
|
||||
* - ALL registers are 8 bits only, regardless of transfer size
|
||||
* - channel 4 is not used - cascades 1 into 2.
|
||||
* - channels 0-3 are byte - addresses/counts are for physical bytes
|
||||
* - channels 5-7 are word - addresses/counts are for physical words
|
||||
* - transfers must not cross physical 64K (0-3) or 128K (5-7) boundaries
|
||||
* - transfer count loaded to registers is 1 less than actual count
|
||||
* - controller 2 offsets are all even (2x offsets for controller 1)
|
||||
* - page registers for 5-7 don't use data bit 0, represent 128K pages
|
||||
* - page registers for 0-3 use bit 0, represent 64K pages
|
||||
*
|
||||
* DMA transfers are limited to the lower 16MB of _physical_ memory.
|
||||
* Note that addresses loaded into registers must be _physical_ addresses,
|
||||
* not logical addresses (which may differ if paging is active).
|
||||
*
|
||||
* Address mapping for channels 0-3:
|
||||
*
|
||||
* A23 ... A16 A15 ... A8 A7 ... A0 (Physical addresses)
|
||||
* | ... | | ... | | ... |
|
||||
* | ... | | ... | | ... |
|
||||
* | ... | | ... | | ... |
|
||||
* P7 ... P0 A7 ... A0 A7 ... A0
|
||||
* | Page | Addr MSB | Addr LSB | (DMA registers)
|
||||
*
|
||||
* Address mapping for channels 5-7:
|
||||
*
|
||||
* A23 ... A17 A16 A15 ... A9 A8 A7 ... A1 A0 (Physical addresses)
|
||||
* | ... | \ \ ... \ \ \ ... \ \
|
||||
* | ... | \ \ ... \ \ \ ... \ (not used)
|
||||
* | ... | \ \ ... \ \ \ ... \
|
||||
* P7 ... P1 (0) A7 A6 ... A0 A7 A6 ... A0
|
||||
* | Page | Addr MSB | Addr LSB | (DMA registers)
|
||||
*
|
||||
* Again, channels 5-7 transfer _physical_ words (16 bits), so addresses
|
||||
* and counts _must_ be word-aligned (the lowest address bit is _ignored_ at
|
||||
* the hardware level, so odd-byte transfers aren't possible).
|
||||
*
|
||||
* Transfer count (_not # bytes_) is limited to 64K, represented as actual
|
||||
* count - 1 : 64K => 0xFFFF, 1 => 0x0000. Thus, count is always 1 or more,
|
||||
* and up to 128K bytes may be transferred on channels 5-7 in one operation.
|
||||
*
|
||||
*/
|
||||
|
||||
#define MAX_DMA_CHANNELS 8
|
||||
|
||||
/* The maximum address that we can perform a DMA transfer to on this platform */#define MAX_DMA_ADDRESS (PAGE_OFFSET+0x1000000)
|
||||
|
||||
/* 8237 DMA controllers */
|
||||
#define IO_DMA1_BASE 0x10C00 /* 8 bit slave DMA, channels 0..3 */
|
||||
#define IO_DMA2_BASE 0x10D00 /* 16 bit master DMA, ch 4(=slave input)..7 */
|
||||
|
||||
/* DMA controller registers */
|
||||
#define DMA1_CMD_REG (IO_DMA1_BASE+0x08) /* command register (w) */
|
||||
#define DMA1_STAT_REG (IO_DMA1_BASE+0x08) /* status register (r) */
|
||||
#define DMA1_REQ_REG (IO_DMA1_BASE+0x09) /* request register (w) */
|
||||
#define DMA1_MASK_REG (IO_DMA1_BASE+0x0A) /* single-channel mask (w) */
|
||||
#define DMA1_MODE_REG (IO_DMA1_BASE+0x0B) /* mode register (w) */
|
||||
#define DMA1_CLEAR_FF_REG (IO_DMA1_BASE+0x0C) /* clear pointer flip-flop (w) */
|
||||
#define DMA1_TEMP_REG (IO_DMA1_BASE+0x0D) /* Temporary Register (r) */
|
||||
#define DMA1_RESET_REG (IO_DMA1_BASE+0x0D) /* Master Clear (w) */
|
||||
#define DMA1_CLR_MASK_REG (IO_DMA1_BASE+0x0E) /* Clear Mask */
|
||||
#define DMA1_MASK_ALL_REG (IO_DMA1_BASE+0x0F) /* all-channels mask (w) */
|
||||
|
||||
#define DMA2_CMD_REG (IO_DMA2_BASE+0x10) /* command register (w) */
|
||||
#define DMA2_STAT_REG (IO_DMA2_BASE+0x10) /* status register (r) */
|
||||
#define DMA2_REQ_REG (IO_DMA2_BASE+0x12) /* request register (w) */
|
||||
#define DMA2_MASK_REG (IO_DMA2_BASE+0x14) /* single-channel mask (w) */
|
||||
#define DMA2_MODE_REG (IO_DMA2_BASE+0x16) /* mode register (w) */
|
||||
#define DMA2_CLEAR_FF_REG (IO_DMA2_BASE+0x18) /* clear pointer flip-flop (w) */
|
||||
#define DMA2_TEMP_REG (IO_DMA2_BASE+0x1A) /* Temporary Register (r) */
|
||||
#define DMA2_RESET_REG (IO_DMA2_BASE+0x1A) /* Master Clear (w) */
|
||||
#define DMA2_CLR_MASK_REG (IO_DMA2_BASE+0x1C) /* Clear Mask */
|
||||
#define DMA2_MASK_ALL_REG (IO_DMA2_BASE+0x1E) /* all-channels mask (w) */
|
||||
|
||||
#define DMA_ADDR_0 (IO_DMA1_BASE+0x00) /* DMA address registers */
|
||||
#define DMA_ADDR_1 (IO_DMA1_BASE+0x02)
|
||||
#define DMA_ADDR_2 (IO_DMA1_BASE+0x04)
|
||||
#define DMA_ADDR_3 (IO_DMA1_BASE+0x06)
|
||||
#define DMA_ADDR_4 (IO_DMA2_BASE+0x00)
|
||||
#define DMA_ADDR_5 (IO_DMA2_BASE+0x04)
|
||||
#define DMA_ADDR_6 (IO_DMA2_BASE+0x08)
|
||||
#define DMA_ADDR_7 (IO_DMA2_BASE+0x0C)
|
||||
|
||||
#define DMA_CNT_0 (IO_DMA1_BASE+0x01) /* DMA count registers */
|
||||
#define DMA_CNT_1 (IO_DMA1_BASE+0x03)
|
||||
#define DMA_CNT_2 (IO_DMA1_BASE+0x05)
|
||||
#define DMA_CNT_3 (IO_DMA1_BASE+0x07)
|
||||
#define DMA_CNT_4 (IO_DMA2_BASE+0x02)
|
||||
#define DMA_CNT_5 (IO_DMA2_BASE+0x06)
|
||||
#define DMA_CNT_6 (IO_DMA2_BASE+0x0A)
|
||||
#define DMA_CNT_7 (IO_DMA2_BASE+0x0E)
|
||||
|
||||
#define DMA_MODE_READ 0x44 /* I/O to memory, no autoinit, increment, single mode */
|
||||
#define DMA_MODE_WRITE 0x48 /* memory to I/O, no autoinit, increment, single mode */
|
||||
#define DMA_MODE_CASCADE 0xC0 /* pass thru DREQ->HRQ, DACK<-HLDA only */
|
||||
|
||||
#define DMA_AUTOINIT 0x10
|
||||
|
||||
#define DMA_8BIT 0
|
||||
#define DMA_16BIT 1
|
||||
#define DMA_BUSMASTER 2
|
||||
|
||||
extern spinlock_t dma_spin_lock;
|
||||
|
||||
static __inline__ unsigned long claim_dma_lock(void)
|
||||
{
|
||||
unsigned long flags;
|
||||
spin_lock_irqsave(&dma_spin_lock, flags);
|
||||
return flags;
|
||||
}
|
||||
|
||||
static __inline__ void release_dma_lock(unsigned long flags)
|
||||
{
|
||||
spin_unlock_irqrestore(&dma_spin_lock, flags);
|
||||
}
|
||||
|
||||
/* enable/disable a specific DMA channel */
|
||||
static __inline__ void enable_dma(unsigned int dmanr)
|
||||
{
|
||||
if (dmanr<=3)
|
||||
dma_outb(dmanr, DMA1_MASK_REG);
|
||||
else
|
||||
dma_outb(dmanr & 3, DMA2_MASK_REG);
|
||||
}
|
||||
|
||||
static __inline__ void disable_dma(unsigned int dmanr)
|
||||
{
|
||||
if (dmanr<=3)
|
||||
dma_outb(dmanr | 4, DMA1_MASK_REG);
|
||||
else
|
||||
dma_outb((dmanr & 3) | 4, DMA2_MASK_REG);
|
||||
}
|
||||
|
||||
/* Clear the 'DMA Pointer Flip Flop'.
|
||||
* Write 0 for LSB/MSB, 1 for MSB/LSB access.
|
||||
* Use this once to initialize the FF to a known state.
|
||||
* After that, keep track of it. :-)
|
||||
* --- In order to do that, the DMA routines below should ---
|
||||
* --- only be used while holding the DMA lock ! ---
|
||||
*/
|
||||
static __inline__ void clear_dma_ff(unsigned int dmanr)
|
||||
{
|
||||
if (dmanr<=3)
|
||||
dma_outb(0, DMA1_CLEAR_FF_REG);
|
||||
else
|
||||
dma_outb(0, DMA2_CLEAR_FF_REG);
|
||||
}
|
||||
|
||||
/* set mode (above) for a specific DMA channel */
|
||||
static __inline__ void set_dma_mode(unsigned int dmanr, char mode)
|
||||
{
|
||||
if (dmanr<=3)
|
||||
dma_outb(mode | dmanr, DMA1_MODE_REG);
|
||||
else
|
||||
dma_outb(mode | (dmanr&3), DMA2_MODE_REG);
|
||||
}
|
||||
|
||||
/* Set transfer address & page bits for specific DMA channel.
|
||||
* Assumes dma flipflop is clear.
|
||||
*/
|
||||
static __inline__ void set_dma_addr(unsigned int dmanr, unsigned int a)
|
||||
{
|
||||
if (dmanr <= 3) {
|
||||
dma_outb( a & 0xff, ((dmanr&3)<<1) + IO_DMA1_BASE );
|
||||
dma_outb( (a>>8) & 0xff, ((dmanr&3)<<1) + IO_DMA1_BASE );
|
||||
} else {
|
||||
dma_outb( (a>>1) & 0xff, ((dmanr&3)<<2) + IO_DMA2_BASE );
|
||||
dma_outb( (a>>9) & 0xff, ((dmanr&3)<<2) + IO_DMA2_BASE );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Set transfer size (max 64k for DMA1..3, 128k for DMA5..7) for
|
||||
* a specific DMA channel.
|
||||
* You must ensure the parameters are valid.
|
||||
* NOTE: from a manual: "the number of transfers is one more
|
||||
* than the initial word count"! This is taken into account.
|
||||
* Assumes dma flip-flop is clear.
|
||||
* NOTE 2: "count" represents _bytes_ and must be even for channels 5-7.
|
||||
*/
|
||||
static __inline__ void set_dma_count(unsigned int dmanr, unsigned int count)
|
||||
{
|
||||
count--;
|
||||
if (dmanr <= 3) {
|
||||
dma_outb( count & 0xff, ((dmanr&3)<<1) + 1 + IO_DMA1_BASE );
|
||||
dma_outb( (count>>8) & 0xff, ((dmanr&3)<<1) + 1 + IO_DMA1_BASE );
|
||||
} else {
|
||||
dma_outb( (count>>1) & 0xff, ((dmanr&3)<<2) + 2 + IO_DMA2_BASE );
|
||||
dma_outb( (count>>9) & 0xff, ((dmanr&3)<<2) + 2 + IO_DMA2_BASE );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Get DMA residue count. After a DMA transfer, this
|
||||
* should return zero. Reading this while a DMA transfer is
|
||||
* still in progress will return unpredictable results.
|
||||
* If called before the channel has been used, it may return 1.
|
||||
* Otherwise, it returns the number of _bytes_ left to transfer.
|
||||
*
|
||||
* Assumes DMA flip-flop is clear.
|
||||
*/
|
||||
static __inline__ int get_dma_residue(unsigned int dmanr)
|
||||
{
|
||||
unsigned int io_port = (dmanr<=3)? ((dmanr&3)<<1) + 1 + IO_DMA1_BASE
|
||||
: ((dmanr&3)<<2) + 2 + IO_DMA2_BASE;
|
||||
|
||||
/* using short to get 16-bit wrap around */
|
||||
unsigned short count;
|
||||
|
||||
count = 1 + dma_inb(io_port);
|
||||
count += dma_inb(io_port) << 8;
|
||||
|
||||
return (dmanr<=3)? count : (count<<1);
|
||||
}
|
||||
|
||||
|
||||
/* These are in kernel/dma.c: */
|
||||
extern int request_dma(unsigned int dmanr, const char * device_id); /* reserve a DMA channel */
|
||||
extern void free_dma(unsigned int dmanr); /* release it again */
|
||||
|
||||
/* These are in arch/m68k/apollo/dma.c: */
|
||||
extern unsigned short dma_map_page(unsigned long phys_addr,int count,int type);
|
||||
extern void dma_unmap_page(unsigned short dma_addr);
|
||||
|
||||
#endif /* _ASM_APOLLO_DMA_H */
|
@ -98,7 +98,7 @@ extern u_long timer_physaddr;
|
||||
#define cpuctrl (*(volatile unsigned int *)(IO_BASE + cpuctrl_physaddr))
|
||||
#define pica (IO_BASE + pica_physaddr)
|
||||
#define picb (IO_BASE + picb_physaddr)
|
||||
#define timer (IO_BASE + timer_physaddr)
|
||||
#define apollo_timer (IO_BASE + timer_physaddr)
|
||||
#define addr_xlat_map ((unsigned short *)(IO_BASE + 0x17000))
|
||||
|
||||
#define isaIO2mem(x) (((((x) & 0x3f8) << 7) | (((x) & 0xfc00) >> 6) | ((x) & 0x7)) + 0x40000 + IO_BASE)
|
||||
|
@ -1 +0,0 @@
|
||||
#include <asm-generic/bitsperlong.h>
|
@ -1,6 +0,0 @@
|
||||
#ifndef __M68K_CPUTIME_H
|
||||
#define __M68K_CPUTIME_H
|
||||
|
||||
#include <asm-generic/cputime.h>
|
||||
|
||||
#endif /* __M68K_CPUTIME_H */
|
@ -43,7 +43,7 @@ static inline void __delay(unsigned long loops)
|
||||
extern void __bad_udelay(void);
|
||||
|
||||
|
||||
#if defined(CONFIG_M68000) || defined(CONFIG_COLDFIRE)
|
||||
#ifdef CONFIG_CPU_HAS_NO_MULDIV64
|
||||
/*
|
||||
* The simpler m68k and ColdFire processors do not have a 32*32->64
|
||||
* multiply instruction. So we need to handle them a little differently.
|
||||
|
@ -1,7 +0,0 @@
|
||||
/*
|
||||
* Arch specific extensions to struct device
|
||||
*
|
||||
* This file is released under the GPLv2
|
||||
*/
|
||||
#include <asm-generic/device.h>
|
||||
|
@ -1,6 +0,0 @@
|
||||
#ifndef _ASM_EMERGENCY_RESTART_H
|
||||
#define _ASM_EMERGENCY_RESTART_H
|
||||
|
||||
#include <asm-generic/emergency-restart.h>
|
||||
|
||||
#endif /* _ASM_EMERGENCY_RESTART_H */
|
@ -1,6 +0,0 @@
|
||||
#ifndef _M68K_ERRNO_H
|
||||
#define _M68K_ERRNO_H
|
||||
|
||||
#include <asm-generic/errno.h>
|
||||
|
||||
#endif /* _M68K_ERRNO_H */
|
@ -1,6 +0,0 @@
|
||||
#ifndef _ASM_FUTEX_H
|
||||
#define _ASM_FUTEX_H
|
||||
|
||||
#include <asm-generic/futex.h>
|
||||
|
||||
#endif
|
@ -1 +0,0 @@
|
||||
#include <asm-generic/ioctl.h>
|
@ -1 +0,0 @@
|
||||
#include <asm-generic/ipcbuf.h>
|
@ -1 +0,0 @@
|
||||
#include <asm-generic/irq_regs.h>
|
@ -1 +0,0 @@
|
||||
#include <asm-generic/kdebug.h>
|
@ -1,6 +0,0 @@
|
||||
#ifndef __ASM_M68K_KMAP_TYPES_H
|
||||
#define __ASM_M68K_KMAP_TYPES_H
|
||||
|
||||
#include <asm-generic/kmap_types.h>
|
||||
|
||||
#endif /* __ASM_M68K_KMAP_TYPES_H */
|
@ -1 +0,0 @@
|
||||
#include <asm-generic/kvm_para.h>
|
@ -1,6 +0,0 @@
|
||||
#ifndef _ASM_M68K_LOCAL_H
|
||||
#define _ASM_M68K_LOCAL_H
|
||||
|
||||
#include <asm-generic/local.h>
|
||||
|
||||
#endif /* _ASM_M68K_LOCAL_H */
|
@ -1 +0,0 @@
|
||||
#include <asm-generic/local64.h>
|
@ -1,23 +0,0 @@
|
||||
#ifndef _ASM_MAC_MOUSE_H
|
||||
#define _ASM_MAC_MOUSE_H
|
||||
|
||||
/*
|
||||
* linux/include/asm-m68k/mac_mouse.h
|
||||
* header file for Macintosh ADB mouse driver
|
||||
* 27-10-97 Michael Schmitz
|
||||
* copied from:
|
||||
* header file for Atari Mouse driver
|
||||
* by Robert de Vries (robert@and.nl) on 19Jul93
|
||||
*/
|
||||
|
||||
struct mouse_status {
|
||||
char buttons;
|
||||
short dx;
|
||||
short dy;
|
||||
int ready;
|
||||
int active;
|
||||
wait_queue_head_t wait;
|
||||
struct fasync_struct *fasyncptr;
|
||||
};
|
||||
|
||||
#endif
|
@ -1,77 +0,0 @@
|
||||
/****************************************************************************/
|
||||
|
||||
/*
|
||||
* mcfmbus.h -- Coldfire MBUS support defines.
|
||||
*
|
||||
* (C) Copyright 1999, Martin Floeer (mfloeer@axcent.de)
|
||||
*/
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
#ifndef mcfmbus_h
|
||||
#define mcfmbus_h
|
||||
|
||||
|
||||
#define MCFMBUS_BASE 0x280
|
||||
#define MCFMBUS_IRQ_VECTOR 0x19
|
||||
#define MCFMBUS_IRQ 0x1
|
||||
#define MCFMBUS_CLK 0x3f
|
||||
#define MCFMBUS_IRQ_LEVEL 0x07 /*IRQ Level 1*/
|
||||
#define MCFMBUS_ADDRESS 0x01
|
||||
|
||||
|
||||
/*
|
||||
* Define the 5307 MBUS register set addresses
|
||||
*/
|
||||
|
||||
#define MCFMBUS_MADR 0x00
|
||||
#define MCFMBUS_MFDR 0x04
|
||||
#define MCFMBUS_MBCR 0x08
|
||||
#define MCFMBUS_MBSR 0x0C
|
||||
#define MCFMBUS_MBDR 0x10
|
||||
|
||||
|
||||
#define MCFMBUS_MADR_ADDR(a) (((a)&0x7F)<<0x01) /*Slave Address*/
|
||||
|
||||
#define MCFMBUS_MFDR_MBC(a) ((a)&0x3F) /*M-Bus Clock*/
|
||||
|
||||
/*
|
||||
* Define bit flags in Control Register
|
||||
*/
|
||||
|
||||
#define MCFMBUS_MBCR_MEN (0x80) /* M-Bus Enable */
|
||||
#define MCFMBUS_MBCR_MIEN (0x40) /* M-Bus Interrupt Enable */
|
||||
#define MCFMBUS_MBCR_MSTA (0x20) /* Master/Slave Mode Select Bit */
|
||||
#define MCFMBUS_MBCR_MTX (0x10) /* Transmit/Rcv Mode Select Bit */
|
||||
#define MCFMBUS_MBCR_TXAK (0x08) /* Transmit Acknowledge Enable */
|
||||
#define MCFMBUS_MBCR_RSTA (0x04) /* Repeat Start */
|
||||
|
||||
/*
|
||||
* Define bit flags in Status Register
|
||||
*/
|
||||
|
||||
#define MCFMBUS_MBSR_MCF (0x80) /* Data Transfer Complete */
|
||||
#define MCFMBUS_MBSR_MAAS (0x40) /* Addressed as a Slave */
|
||||
#define MCFMBUS_MBSR_MBB (0x20) /* Bus Busy */
|
||||
#define MCFMBUS_MBSR_MAL (0x10) /* Arbitration Lost */
|
||||
#define MCFMBUS_MBSR_SRW (0x04) /* Slave Transmit */
|
||||
#define MCFMBUS_MBSR_MIF (0x02) /* M-Bus Interrupt */
|
||||
#define MCFMBUS_MBSR_RXAK (0x01) /* No Acknowledge Received */
|
||||
|
||||
/*
|
||||
* Define bit flags in DATA I/O Register
|
||||
*/
|
||||
|
||||
#define MCFMBUS_MBDR_READ (0x01) /* 1=read 0=write MBUS */
|
||||
|
||||
#define MBUSIOCSCLOCK 1
|
||||
#define MBUSIOCGCLOCK 2
|
||||
#define MBUSIOCSADDR 3
|
||||
#define MBUSIOCGADDR 4
|
||||
#define MBUSIOCSSLADDR 5
|
||||
#define MBUSIOCGSLADDR 6
|
||||
#define MBUSIOCSSUBADDR 7
|
||||
#define MBUSIOCGSUBADDR 8
|
||||
|
||||
#endif
|
@ -1 +0,0 @@
|
||||
#include <asm-generic/mman.h>
|
@ -1,9 +0,0 @@
|
||||
/*
|
||||
* Pull in the generic implementation for the mutex fastpath.
|
||||
*
|
||||
* TODO: implement optimized primitives instead, or leave the generic
|
||||
* implementation in place, or pick the atomic_xchg() based generic
|
||||
* implementation. (see asm-generic/mutex-xchg.h for details)
|
||||
*/
|
||||
|
||||
#include <asm-generic/mutex-dec.h>
|
@ -1,6 +0,0 @@
|
||||
#ifndef __ASM_M68K_PERCPU_H
|
||||
#define __ASM_M68K_PERCPU_H
|
||||
|
||||
#include <asm-generic/percpu.h>
|
||||
|
||||
#endif /* __ASM_M68K_PERCPU_H */
|
@ -1,6 +0,0 @@
|
||||
#ifndef _M68K_RESOURCE_H
|
||||
#define _M68K_RESOURCE_H
|
||||
|
||||
#include <asm-generic/resource.h>
|
||||
|
||||
#endif /* _M68K_RESOURCE_H */
|
@ -1,45 +0,0 @@
|
||||
/*
|
||||
* some sbus structures and macros to make usage of sbus drivers possible
|
||||
*/
|
||||
|
||||
#ifndef __M68K_SBUS_H
|
||||
#define __M68K_SBUS_H
|
||||
|
||||
struct sbus_dev {
|
||||
struct {
|
||||
unsigned int which_io;
|
||||
unsigned int phys_addr;
|
||||
} reg_addrs[1];
|
||||
};
|
||||
|
||||
/* sbus IO functions stolen from include/asm-sparc/io.h for the serial driver */
|
||||
/* No SBUS on the Sun3, kludge -- sam */
|
||||
|
||||
static inline void _sbus_writeb(unsigned char val, unsigned long addr)
|
||||
{
|
||||
*(volatile unsigned char *)addr = val;
|
||||
}
|
||||
|
||||
static inline unsigned char _sbus_readb(unsigned long addr)
|
||||
{
|
||||
return *(volatile unsigned char *)addr;
|
||||
}
|
||||
|
||||
static inline void _sbus_writel(unsigned long val, unsigned long addr)
|
||||
{
|
||||
*(volatile unsigned long *)addr = val;
|
||||
|
||||
}
|
||||
|
||||
extern inline unsigned long _sbus_readl(unsigned long addr)
|
||||
{
|
||||
return *(volatile unsigned long *)addr;
|
||||
}
|
||||
|
||||
|
||||
#define sbus_readb(a) _sbus_readb((unsigned long)a)
|
||||
#define sbus_writeb(v, a) _sbus_writeb(v, (unsigned long)a)
|
||||
#define sbus_readl(a) _sbus_readl((unsigned long)a)
|
||||
#define sbus_writel(v, a) _sbus_writel(v, (unsigned long)a)
|
||||
|
||||
#endif
|
@ -1,6 +0,0 @@
|
||||
#ifndef _M68K_SCATTERLIST_H
|
||||
#define _M68K_SCATTERLIST_H
|
||||
|
||||
#include <asm-generic/scatterlist.h>
|
||||
|
||||
#endif /* !(_M68K_SCATTERLIST_H) */
|
@ -1,8 +0,0 @@
|
||||
#ifndef _ASM_M68K_SECTIONS_H
|
||||
#define _ASM_M68K_SECTIONS_H
|
||||
|
||||
#include <asm-generic/sections.h>
|
||||
|
||||
extern char _sbss[], _ebss[];
|
||||
|
||||
#endif /* _ASM_M68K_SECTIONS_H */
|
@ -1,31 +0,0 @@
|
||||
#ifndef _M68K_SHM_H
|
||||
#define _M68K_SHM_H
|
||||
|
||||
|
||||
/* format of page table entries that correspond to shared memory pages
|
||||
currently out in swap space (see also mm/swap.c):
|
||||
bits 0-1 (PAGE_PRESENT) is = 0
|
||||
bits 8..2 (SWP_TYPE) are = SHM_SWP_TYPE
|
||||
bits 31..9 are used like this:
|
||||
bits 15..9 (SHM_ID) the id of the shared memory segment
|
||||
bits 30..16 (SHM_IDX) the index of the page within the shared memory segment
|
||||
(actually only bits 25..16 get used since SHMMAX is so low)
|
||||
bit 31 (SHM_READ_ONLY) flag whether the page belongs to a read-only attach
|
||||
*/
|
||||
/* on the m68k both bits 0 and 1 must be zero */
|
||||
/* format on the sun3 is similar, but bits 30, 31 are set to zero and all
|
||||
others are reduced by 2. --m */
|
||||
|
||||
#ifndef CONFIG_SUN3
|
||||
#define SHM_ID_SHIFT 9
|
||||
#else
|
||||
#define SHM_ID_SHIFT 7
|
||||
#endif
|
||||
#define _SHM_ID_BITS 7
|
||||
#define SHM_ID_MASK ((1<<_SHM_ID_BITS)-1)
|
||||
|
||||
#define SHM_IDX_SHIFT (SHM_ID_SHIFT+_SHM_ID_BITS)
|
||||
#define _SHM_IDX_BITS 15
|
||||
#define SHM_IDX_MASK ((1<<_SHM_IDX_BITS)-1)
|
||||
|
||||
#endif /* _M68K_SHM_H */
|
@ -1,6 +0,0 @@
|
||||
#ifndef _M68K_SIGINFO_H
|
||||
#define _M68K_SIGINFO_H
|
||||
|
||||
#include <asm-generic/siginfo.h>
|
||||
|
||||
#endif
|
@ -1,6 +0,0 @@
|
||||
#ifndef _M68K_STATFS_H
|
||||
#define _M68K_STATFS_H
|
||||
|
||||
#include <asm-generic/statfs.h>
|
||||
|
||||
#endif /* _M68K_STATFS_H */
|
@ -1,6 +0,0 @@
|
||||
#ifndef _ASM_M68K_TOPOLOGY_H
|
||||
#define _ASM_M68K_TOPOLOGY_H
|
||||
|
||||
#include <asm-generic/topology.h>
|
||||
|
||||
#endif /* _ASM_M68K_TOPOLOGY_H */
|
@ -1,22 +0,0 @@
|
||||
#ifndef _M68K_TYPES_H
|
||||
#define _M68K_TYPES_H
|
||||
|
||||
/*
|
||||
* This file is never included by application software unless
|
||||
* explicitly requested (e.g., via linux/types.h) in which case the
|
||||
* application is Linux specific so (user-) name space pollution is
|
||||
* not a major issue. However, for interoperability, libraries still
|
||||
* need to be careful to avoid a name clashes.
|
||||
*/
|
||||
#include <asm-generic/int-ll64.h>
|
||||
|
||||
/*
|
||||
* These aren't exported outside the kernel to avoid name space clashes
|
||||
*/
|
||||
#ifdef __KERNEL__
|
||||
|
||||
#define BITS_PER_LONG 32
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
#endif /* _M68K_TYPES_H */
|
@ -2,7 +2,7 @@
|
||||
#define _ASM_M68K_UNALIGNED_H
|
||||
|
||||
|
||||
#if defined(CONFIG_COLDFIRE) || defined(CONFIG_M68000)
|
||||
#ifdef CONFIG_CPU_HAS_NO_UNALIGNED
|
||||
#include <linux/unaligned/be_struct.h>
|
||||
#include <linux/unaligned/le_byteshift.h>
|
||||
#include <linux/unaligned/generic.h>
|
||||
|
@ -1 +0,0 @@
|
||||
#include <asm-generic/xor.h>
|
@ -218,13 +218,10 @@ void __init setup_arch(char **cmdline_p)
|
||||
printk(KERN_INFO "Motorola M5235EVB support (C)2005 Syn-tech Systems, Inc. (Jate Sujjavanich)\n");
|
||||
#endif
|
||||
|
||||
pr_debug("KERNEL -> TEXT=0x%06x-0x%06x DATA=0x%06x-0x%06x "
|
||||
"BSS=0x%06x-0x%06x\n", (int) &_stext, (int) &_etext,
|
||||
(int) &_sdata, (int) &_edata,
|
||||
(int) &_sbss, (int) &_ebss);
|
||||
pr_debug("MEMORY -> ROMFS=0x%06x-0x%06x MEM=0x%06x-0x%06x\n ",
|
||||
(int) &_ebss, (int) memory_start,
|
||||
(int) memory_start, (int) memory_end);
|
||||
pr_debug("KERNEL -> TEXT=0x%p-0x%p DATA=0x%p-0x%p BSS=0x%p-0x%p\n",
|
||||
_stext, _etext, _sdata, _edata, __bss_start, __bss_stop);
|
||||
pr_debug("MEMORY -> ROMFS=0x%p-0x%06lx MEM=0x%06lx-0x%06lx\n ",
|
||||
__bss_stop, memory_start, memory_start, memory_end);
|
||||
|
||||
/* Keep a copy of command line */
|
||||
*cmdline_p = &command_line[0];
|
||||
|
@ -479,9 +479,13 @@ sys_atomic_cmpxchg_32(unsigned long newval, int oldval, int d3, int d4, int d5,
|
||||
goto bad_access;
|
||||
}
|
||||
|
||||
mem_value = *mem;
|
||||
/*
|
||||
* No need to check for EFAULT; we know that the page is
|
||||
* present and writable.
|
||||
*/
|
||||
__get_user(mem_value, mem);
|
||||
if (mem_value == oldval)
|
||||
*mem = newval;
|
||||
__put_user(newval, mem);
|
||||
|
||||
pte_unmap_unlock(pte, ptl);
|
||||
up_read(&mm->mmap_sem);
|
||||
|
@ -78,9 +78,7 @@ SECTIONS {
|
||||
__init_end = .;
|
||||
}
|
||||
|
||||
_sbss = .;
|
||||
BSS_SECTION(0, 0, 0)
|
||||
_ebss = .;
|
||||
|
||||
_end = .;
|
||||
|
||||
|
@ -31,9 +31,7 @@ SECTIONS
|
||||
|
||||
RW_DATA_SECTION(16, PAGE_SIZE, THREAD_SIZE)
|
||||
|
||||
_sbss = .;
|
||||
BSS_SECTION(0, 0, 0)
|
||||
_ebss = .;
|
||||
|
||||
_edata = .; /* End of data section */
|
||||
|
||||
|
@ -44,9 +44,7 @@ __init_begin = .;
|
||||
. = ALIGN(PAGE_SIZE);
|
||||
__init_end = .;
|
||||
|
||||
_sbss = .;
|
||||
BSS_SECTION(0, 0, 0)
|
||||
_ebss = .;
|
||||
|
||||
_end = . ;
|
||||
|
||||
|
@ -19,7 +19,7 @@ along with GNU CC; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#if defined(CONFIG_M68000) || defined(CONFIG_COLDFIRE)
|
||||
#ifdef CONFIG_CPU_HAS_NO_MULDIV64
|
||||
|
||||
#define SI_TYPE_SIZE 32
|
||||
#define __BITS4 (SI_TYPE_SIZE / 4)
|
||||
|
@ -104,7 +104,7 @@ void __init print_memmap(void)
|
||||
MLK_ROUNDUP(__init_begin, __init_end),
|
||||
MLK_ROUNDUP(_stext, _etext),
|
||||
MLK_ROUNDUP(_sdata, _edata),
|
||||
MLK_ROUNDUP(_sbss, _ebss));
|
||||
MLK_ROUNDUP(__bss_start, __bss_stop));
|
||||
}
|
||||
|
||||
void __init mem_init(void)
|
||||
|
@ -91,7 +91,7 @@ void __init mem_init(void)
|
||||
totalram_pages = free_all_bootmem();
|
||||
|
||||
codek = (_etext - _stext) >> 10;
|
||||
datak = (_ebss - _sdata) >> 10;
|
||||
datak = (__bss_stop - _sdata) >> 10;
|
||||
initk = (__init_begin - __init_end) >> 10;
|
||||
|
||||
tmp = nr_free_pages() << PAGE_SHIFT;
|
||||
|
@ -60,8 +60,8 @@ _start:
|
||||
* Move ROM filesystem above bss :-)
|
||||
*/
|
||||
|
||||
moveal #_sbss, %a0 /* romfs at the start of bss */
|
||||
moveal #_ebss, %a1 /* Set up destination */
|
||||
moveal #__bss_start, %a0 /* romfs at the start of bss */
|
||||
moveal #__bss_stop, %a1 /* Set up destination */
|
||||
movel %a0, %a2 /* Copy of bss start */
|
||||
|
||||
movel 8(%a0), %d1 /* Get size of ROMFS */
|
||||
@ -84,8 +84,8 @@ _start:
|
||||
* Initialize BSS segment to 0
|
||||
*/
|
||||
|
||||
lea _sbss, %a0
|
||||
lea _ebss, %a1
|
||||
lea __bss_start, %a0
|
||||
lea __bss_stop, %a1
|
||||
|
||||
/* Copy 0 to %a0 until %a0 == %a1 */
|
||||
2: cmpal %a0, %a1
|
||||
|
@ -110,7 +110,7 @@ L0:
|
||||
movel #CONFIG_VECTORBASE, %d7
|
||||
addl #16, %d7
|
||||
moveal %d7, %a0
|
||||
moveal #_ebss, %a1
|
||||
moveal #__bss_stop, %a1
|
||||
lea %a1@(512), %a2
|
||||
|
||||
DBG_PUTC('C')
|
||||
@ -138,8 +138,8 @@ LD1:
|
||||
|
||||
DBG_PUTC('E')
|
||||
|
||||
moveal #_sbss, %a0
|
||||
moveal #_ebss, %a1
|
||||
moveal #__bss_start, %a0
|
||||
moveal #__bss_stop, %a1
|
||||
|
||||
/* Copy 0 to %a0 until %a0 == %a1 */
|
||||
L1:
|
||||
@ -150,7 +150,7 @@ L1:
|
||||
DBG_PUTC('F')
|
||||
|
||||
/* Copy command line from end of bss to command line */
|
||||
moveal #_ebss, %a0
|
||||
moveal #__bss_stop, %a0
|
||||
moveal #command_line, %a1
|
||||
lea %a1@(512), %a2
|
||||
|
||||
@ -165,7 +165,7 @@ L3:
|
||||
|
||||
movel #_sdata, %d0
|
||||
movel %d0, _rambase
|
||||
movel #_ebss, %d0
|
||||
movel #__bss_stop, %d0
|
||||
movel %d0, _ramstart
|
||||
|
||||
movel %a4, %d0
|
||||
|
@ -76,8 +76,8 @@ pclp3:
|
||||
beq pclp3
|
||||
#endif /* DEBUG */
|
||||
moveal #0x007ffff0, %ssp
|
||||
moveal #_sbss, %a0
|
||||
moveal #_ebss, %a1
|
||||
moveal #__bss_start, %a0
|
||||
moveal #__bss_stop, %a1
|
||||
|
||||
/* Copy 0 to %a0 until %a0 >= %a1 */
|
||||
L1:
|
||||
|
@ -59,8 +59,8 @@ _stext: movew #0x2700,%sr
|
||||
cmpal %a1, %a2
|
||||
bhi 1b
|
||||
|
||||
moveal #_sbss, %a0
|
||||
moveal #_ebss, %a1
|
||||
moveal #__bss_start, %a0
|
||||
moveal #__bss_stop, %a1
|
||||
/* Copy 0 to %a0 until %a0 == %a1 */
|
||||
|
||||
1:
|
||||
@ -70,7 +70,7 @@ _stext: movew #0x2700,%sr
|
||||
|
||||
movel #_sdata, %d0
|
||||
movel %d0, _rambase
|
||||
movel #_ebss, %d0
|
||||
movel #__bss_stop, %d0
|
||||
movel %d0, _ramstart
|
||||
movel #RAMEND-CONFIG_MEMORY_RESERVE*0x100000, %d0
|
||||
movel %d0, _ramend
|
||||
|
@ -219,8 +219,8 @@ LD1:
|
||||
cmp.l #_edata, %a1
|
||||
blt LD1
|
||||
|
||||
moveal #_sbss, %a0
|
||||
moveal #_ebss, %a1
|
||||
moveal #__bss_start, %a0
|
||||
moveal #__bss_stop, %a1
|
||||
|
||||
/* Copy 0 to %a0 until %a0 == %a1 */
|
||||
L1:
|
||||
@ -234,7 +234,7 @@ load_quicc:
|
||||
store_ram_size:
|
||||
/* Set ram size information */
|
||||
move.l #_sdata, _rambase
|
||||
move.l #_ebss, _ramstart
|
||||
move.l #__bss_stop, _ramstart
|
||||
move.l #RAMEND, %d0
|
||||
sub.l #0x1000, %d0 /* Reserve 4K for stack space.*/
|
||||
move.l %d0, _ramend /* Different from RAMEND.*/
|
||||
|
@ -13,7 +13,7 @@
|
||||
*/
|
||||
|
||||
.global _stext
|
||||
.global _sbss
|
||||
.global __bss_start
|
||||
.global _start
|
||||
|
||||
.global _rambase
|
||||
@ -229,8 +229,8 @@ LD1:
|
||||
cmp.l #_edata, %a1
|
||||
blt LD1
|
||||
|
||||
moveal #_sbss, %a0
|
||||
moveal #_ebss, %a1
|
||||
moveal #__bss_start, %a0
|
||||
moveal #__bss_stop, %a1
|
||||
|
||||
/* Copy 0 to %a0 until %a0 == %a1 */
|
||||
L1:
|
||||
@ -244,7 +244,7 @@ load_quicc:
|
||||
store_ram_size:
|
||||
/* Set ram size information */
|
||||
move.l #_sdata, _rambase
|
||||
move.l #_ebss, _ramstart
|
||||
move.l #__bss_stop, _ramstart
|
||||
move.l #RAMEND, %d0
|
||||
sub.l #0x1000, %d0 /* Reserve 4K for stack space.*/
|
||||
move.l %d0, _ramend /* Different from RAMEND.*/
|
||||
|
@ -230,8 +230,8 @@ _vstart:
|
||||
/*
|
||||
* Move ROM filesystem above bss :-)
|
||||
*/
|
||||
lea _sbss,%a0 /* get start of bss */
|
||||
lea _ebss,%a1 /* set up destination */
|
||||
lea __bss_start,%a0 /* get start of bss */
|
||||
lea __bss_stop,%a1 /* set up destination */
|
||||
movel %a0,%a2 /* copy of bss start */
|
||||
|
||||
movel 8(%a0),%d0 /* get size of ROMFS */
|
||||
@ -249,7 +249,7 @@ _copy_romfs:
|
||||
bne _copy_romfs
|
||||
|
||||
#else /* CONFIG_ROMFS_FS */
|
||||
lea _ebss,%a1
|
||||
lea __bss_stop,%a1
|
||||
movel %a1,_ramstart
|
||||
#endif /* CONFIG_ROMFS_FS */
|
||||
|
||||
@ -257,8 +257,8 @@ _copy_romfs:
|
||||
/*
|
||||
* Zero out the bss region.
|
||||
*/
|
||||
lea _sbss,%a0 /* get start of bss */
|
||||
lea _ebss,%a1 /* get end of bss */
|
||||
lea __bss_start,%a0 /* get start of bss */
|
||||
lea __bss_stop,%a1 /* get end of bss */
|
||||
clrl %d0 /* set value */
|
||||
_clear_bss:
|
||||
movel %d0,(%a0)+ /* clear each word */
|
||||
|
@ -22,57 +22,13 @@ int prom_root_node;
|
||||
struct linux_nodeops *prom_nodeops;
|
||||
|
||||
/* You must call prom_init() before you attempt to use any of the
|
||||
* routines in the prom library. It returns 0 on success, 1 on
|
||||
* failure. It gets passed the pointer to the PROM vector.
|
||||
* routines in the prom library.
|
||||
* It gets passed the pointer to the PROM vector.
|
||||
*/
|
||||
|
||||
extern void prom_meminit(void);
|
||||
extern void prom_ranges_init(void);
|
||||
|
||||
void __init prom_init(struct linux_romvec *rp)
|
||||
{
|
||||
romvec = rp;
|
||||
#ifndef CONFIG_SUN3
|
||||
switch(romvec->pv_romvers) {
|
||||
case 0:
|
||||
prom_vers = PROM_V0;
|
||||
break;
|
||||
case 2:
|
||||
prom_vers = PROM_V2;
|
||||
break;
|
||||
case 3:
|
||||
prom_vers = PROM_V3;
|
||||
break;
|
||||
case 4:
|
||||
prom_vers = PROM_P1275;
|
||||
prom_printf("PROMLIB: Sun IEEE Prom not supported yet\n");
|
||||
prom_halt();
|
||||
break;
|
||||
default:
|
||||
prom_printf("PROMLIB: Bad PROM version %d\n",
|
||||
romvec->pv_romvers);
|
||||
prom_halt();
|
||||
break;
|
||||
};
|
||||
|
||||
prom_rev = romvec->pv_plugin_revision;
|
||||
prom_prev = romvec->pv_printrev;
|
||||
prom_nodeops = romvec->pv_nodeops;
|
||||
|
||||
prom_root_node = prom_getsibling(0);
|
||||
if((prom_root_node == 0) || (prom_root_node == -1))
|
||||
prom_halt();
|
||||
|
||||
if((((unsigned long) prom_nodeops) == 0) ||
|
||||
(((unsigned long) prom_nodeops) == -1))
|
||||
prom_halt();
|
||||
|
||||
prom_meminit();
|
||||
|
||||
prom_ranges_init();
|
||||
#endif
|
||||
// printk("PROMLIB: Sun Boot Prom Version %d Revision %d\n",
|
||||
// romvec->pv_romvers, prom_rev);
|
||||
|
||||
/* Initialization successful. */
|
||||
return;
|
||||
|
@ -18,10 +18,6 @@ extern char _ssbss[], _esbss[];
|
||||
extern unsigned long __ivt_start[], __ivt_end[];
|
||||
extern char _etext[], _stext[];
|
||||
|
||||
# ifdef CONFIG_MTD_UCLINUX
|
||||
extern char *_ebss;
|
||||
# endif
|
||||
|
||||
extern u32 _fdt_start[], _fdt_end[];
|
||||
|
||||
# endif /* !__ASSEMBLY__ */
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user