mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-08 14:13:53 +00:00
Merge branch 'imx/fixes-for-3.6' of git://git.linaro.org/people/shawnguo/linux-2.6 into fixes
* 'imx/fixes-for-3.6' of git://git.linaro.org/people/shawnguo/linux-2.6: ARM: dts: imx51-babbage: fix esdhc cd/wp properties ARM: imx6: spin the cpu until hardware takes it down ARM i.MX6q: Add virtual 1/3.5 dividers in the LDB clock path Also updates to Linux 3.6-rc2 Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
commit
1e72fe1fca
@ -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>
|
||||
|
@ -10,8 +10,8 @@ Required properties:
|
||||
- compatible : Should be "fsl,<chip>-esdhc"
|
||||
|
||||
Optional properties:
|
||||
- fsl,cd-internal : Indicate to use controller internal card detection
|
||||
- fsl,wp-internal : Indicate to use controller internal write protection
|
||||
- fsl,cd-controller : Indicate to use controller internal card detection
|
||||
- fsl,wp-controller : Indicate to use controller internal write protection
|
||||
|
||||
Examples:
|
||||
|
||||
@ -19,8 +19,8 @@ esdhc@70004000 {
|
||||
compatible = "fsl,imx51-esdhc";
|
||||
reg = <0x70004000 0x4000>;
|
||||
interrupts = <1>;
|
||||
fsl,cd-internal;
|
||||
fsl,wp-internal;
|
||||
fsl,cd-controller;
|
||||
fsl,wp-controller;
|
||||
};
|
||||
|
||||
esdhc@70008000 {
|
||||
|
@ -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.
|
||||
|
||||
|
30
MAINTAINERS
30
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
|
||||
|
||||
@ -1232,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/
|
||||
@ -2364,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*
|
||||
@ -3552,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
|
||||
@ -3595,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)
|
||||
@ -3608,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
|
||||
@ -5334,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*
|
||||
|
@ -19,6 +19,12 @@ aliases {
|
||||
serial3 = &uart4;
|
||||
serial4 = &uart5;
|
||||
serial5 = &uart6;
|
||||
gpio0 = &gpio1;
|
||||
gpio1 = &gpio2;
|
||||
gpio2 = &gpio3;
|
||||
gpio3 = &gpio4;
|
||||
gpio4 = &gpio5;
|
||||
gpio5 = &gpio6;
|
||||
};
|
||||
|
||||
avic: avic-interrupt-controller@e0000000 {
|
||||
|
@ -25,8 +25,8 @@ soc {
|
||||
aips@70000000 { /* aips-1 */
|
||||
spba@70000000 {
|
||||
esdhc@70004000 { /* ESDHC1 */
|
||||
fsl,cd-internal;
|
||||
fsl,wp-internal;
|
||||
fsl,cd-controller;
|
||||
fsl,wp-controller;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
|
@ -17,6 +17,10 @@ aliases {
|
||||
serial0 = &uart1;
|
||||
serial1 = &uart2;
|
||||
serial2 = &uart3;
|
||||
gpio0 = &gpio1;
|
||||
gpio1 = &gpio2;
|
||||
gpio2 = &gpio3;
|
||||
gpio3 = &gpio4;
|
||||
};
|
||||
|
||||
tzic: tz-interrupt-controller@e0000000 {
|
||||
|
@ -19,6 +19,13 @@ aliases {
|
||||
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 {
|
||||
|
@ -19,6 +19,13 @@ aliases {
|
||||
serial2 = &uart3;
|
||||
serial3 = &uart4;
|
||||
serial4 = &uart5;
|
||||
gpio0 = &gpio1;
|
||||
gpio1 = &gpio2;
|
||||
gpio2 = &gpio3;
|
||||
gpio3 = &gpio4;
|
||||
gpio4 = &gpio5;
|
||||
gpio5 = &gpio6;
|
||||
gpio6 = &gpio7;
|
||||
};
|
||||
|
||||
cpus {
|
||||
|
@ -152,7 +152,7 @@ enum mx6q_clks {
|
||||
ssi2, ssi3, uart_ipg, uart_serial, usboh3, usdhc1, usdhc2, usdhc3,
|
||||
usdhc4, vdo_axi, vpu_axi, cko1, pll1_sys, pll2_bus, pll3_usb_otg,
|
||||
pll4_audio, pll5_video, pll6_mlb, pll7_usb_host, pll8_enet, ssi1_ipg,
|
||||
ssi2_ipg, ssi3_ipg, rom, usbphy1, usbphy2,
|
||||
ssi2_ipg, ssi3_ipg, rom, usbphy1, usbphy2, ldb_di0_div_3_5, ldb_di1_div_3_5,
|
||||
clk_max
|
||||
};
|
||||
|
||||
@ -288,8 +288,10 @@ int __init mx6q_clocks_init(void)
|
||||
clk[gpu3d_shader] = imx_clk_divider("gpu3d_shader", "gpu3d_shader_sel", base + 0x18, 29, 3);
|
||||
clk[ipu1_podf] = imx_clk_divider("ipu1_podf", "ipu1_sel", base + 0x3c, 11, 3);
|
||||
clk[ipu2_podf] = imx_clk_divider("ipu2_podf", "ipu2_sel", base + 0x3c, 16, 3);
|
||||
clk[ldb_di0_podf] = imx_clk_divider("ldb_di0_podf", "ldb_di0_sel", base + 0x20, 10, 1);
|
||||
clk[ldb_di1_podf] = imx_clk_divider("ldb_di1_podf", "ldb_di1_sel", base + 0x20, 11, 1);
|
||||
clk[ldb_di0_div_3_5] = imx_clk_fixed_factor("ldb_di0_div_3_5", "ldb_di0_sel", 2, 7);
|
||||
clk[ldb_di0_podf] = imx_clk_divider("ldb_di0_podf", "ldb_di0_div_3_5", base + 0x20, 10, 1);
|
||||
clk[ldb_di1_div_3_5] = imx_clk_fixed_factor("ldb_di1_div_3_5", "ldb_di1_sel", 2, 7);
|
||||
clk[ldb_di1_podf] = imx_clk_divider("ldb_di1_podf", "ldb_di1_div_3_5", base + 0x20, 11, 1);
|
||||
clk[ipu1_di0_pre] = imx_clk_divider("ipu1_di0_pre", "ipu1_di0_pre_sel", base + 0x34, 3, 3);
|
||||
clk[ipu1_di1_pre] = imx_clk_divider("ipu1_di1_pre", "ipu1_di1_pre_sel", base + 0x34, 12, 3);
|
||||
clk[ipu2_di0_pre] = imx_clk_divider("ipu2_di0_pre", "ipu2_di0_pre_sel", base + 0x38, 3, 3);
|
||||
|
@ -42,22 +42,6 @@ static inline void cpu_enter_lowpower(void)
|
||||
: "cc");
|
||||
}
|
||||
|
||||
static inline void cpu_leave_lowpower(void)
|
||||
{
|
||||
unsigned int v;
|
||||
|
||||
asm volatile(
|
||||
"mrc p15, 0, %0, c1, c0, 0\n"
|
||||
" orr %0, %0, %1\n"
|
||||
" mcr p15, 0, %0, c1, c0, 0\n"
|
||||
" mrc p15, 0, %0, c1, c0, 1\n"
|
||||
" orr %0, %0, %2\n"
|
||||
" mcr p15, 0, %0, c1, c0, 1\n"
|
||||
: "=&r" (v)
|
||||
: "Ir" (CR_C), "Ir" (0x40)
|
||||
: "cc");
|
||||
}
|
||||
|
||||
/*
|
||||
* platform-specific code to shutdown a CPU
|
||||
*
|
||||
@ -67,11 +51,10 @@ void platform_cpu_die(unsigned int cpu)
|
||||
{
|
||||
cpu_enter_lowpower();
|
||||
imx_enable_cpu(cpu, false);
|
||||
cpu_do_idle();
|
||||
cpu_leave_lowpower();
|
||||
|
||||
/* We should never return from idle */
|
||||
panic("cpu %d unexpectedly exit from shutdown\n", cpu);
|
||||
/* spin here until hardware takes it down */
|
||||
while (1)
|
||||
;
|
||||
}
|
||||
|
||||
int platform_cpu_disable(unsigned int cpu)
|
||||
|
@ -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
|
||||
*/
|
||||
|
@ -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);
|
||||
|
@ -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>
|
||||
@ -12,7 +12,7 @@
|
||||
|
||||
#else
|
||||
/*
|
||||
* The m68k can do unaligned accesses itself.
|
||||
* The m68k can do unaligned accesses itself.
|
||||
*/
|
||||
#include <linux/unaligned/access_ok.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__ */
|
||||
|
@ -21,9 +21,6 @@
|
||||
#include <linux/ftrace.h>
|
||||
#include <linux/uaccess.h>
|
||||
|
||||
extern char *_ebss;
|
||||
EXPORT_SYMBOL_GPL(_ebss);
|
||||
|
||||
#ifdef CONFIG_FUNCTION_TRACER
|
||||
extern void _mcount(void);
|
||||
EXPORT_SYMBOL(_mcount);
|
||||
|
@ -121,7 +121,7 @@ void __init machine_early_init(const char *cmdline, unsigned int ram,
|
||||
|
||||
/* Move ROMFS out of BSS before clearing it */
|
||||
if (romfs_size > 0) {
|
||||
memmove(&_ebss, (int *)romfs_base, romfs_size);
|
||||
memmove(&__bss_stop, (int *)romfs_base, romfs_size);
|
||||
klimit += romfs_size;
|
||||
}
|
||||
#endif
|
||||
@ -165,7 +165,7 @@ void __init machine_early_init(const char *cmdline, unsigned int ram,
|
||||
BUG_ON(romfs_size < 0); /* What else can we do? */
|
||||
|
||||
printk("Moved 0x%08x bytes from 0x%08x to 0x%08x\n",
|
||||
romfs_size, romfs_base, (unsigned)&_ebss);
|
||||
romfs_size, romfs_base, (unsigned)&__bss_stop);
|
||||
|
||||
printk("New klimit: 0x%08x\n", (unsigned)klimit);
|
||||
#endif
|
||||
|
@ -131,7 +131,6 @@ SECTIONS {
|
||||
*(COMMON)
|
||||
. = ALIGN (4) ;
|
||||
__bss_stop = . ;
|
||||
_ebss = . ;
|
||||
}
|
||||
. = ALIGN(PAGE_SIZE);
|
||||
_end = .;
|
||||
|
@ -124,6 +124,7 @@ config S390
|
||||
select GENERIC_TIME_VSYSCALL
|
||||
select GENERIC_CLOCKEVENTS
|
||||
select KTIME_SCALAR if 32BIT
|
||||
select HAVE_ARCH_SECCOMP_FILTER
|
||||
|
||||
config SCHED_OMIT_FRAME_POINTER
|
||||
def_bool y
|
||||
|
@ -4,13 +4,11 @@
|
||||
#ifdef CONFIG_64BIT
|
||||
|
||||
#define SECTION_SIZE_BITS 28
|
||||
#define MAX_PHYSADDR_BITS 46
|
||||
#define MAX_PHYSMEM_BITS 46
|
||||
|
||||
#else
|
||||
|
||||
#define SECTION_SIZE_BITS 25
|
||||
#define MAX_PHYSADDR_BITS 31
|
||||
#define MAX_PHYSMEM_BITS 31
|
||||
|
||||
#endif /* CONFIG_64BIT */
|
||||
|
@ -12,6 +12,7 @@
|
||||
#ifndef _ASM_SYSCALL_H
|
||||
#define _ASM_SYSCALL_H 1
|
||||
|
||||
#include <linux/audit.h>
|
||||
#include <linux/sched.h>
|
||||
#include <linux/err.h>
|
||||
#include <asm/ptrace.h>
|
||||
@ -87,4 +88,13 @@ static inline void syscall_set_arguments(struct task_struct *task,
|
||||
regs->orig_gpr2 = args[0];
|
||||
}
|
||||
|
||||
static inline int syscall_get_arch(struct task_struct *task,
|
||||
struct pt_regs *regs)
|
||||
{
|
||||
#ifdef CONFIG_COMPAT
|
||||
if (test_tsk_thread_flag(task, TIF_31BIT))
|
||||
return AUDIT_ARCH_S390;
|
||||
#endif
|
||||
return sizeof(long) == 8 ? AUDIT_ARCH_S390X : AUDIT_ARCH_S390;
|
||||
}
|
||||
#endif /* _ASM_SYSCALL_H */
|
||||
|
@ -620,7 +620,6 @@ asmlinkage unsigned long old32_mmap(struct mmap_arg_struct_emu31 __user *arg)
|
||||
return -EFAULT;
|
||||
if (a.offset & ~PAGE_MASK)
|
||||
return -EINVAL;
|
||||
a.addr = (unsigned long) compat_ptr(a.addr);
|
||||
return sys_mmap_pgoff(a.addr, a.len, a.prot, a.flags, a.fd,
|
||||
a.offset >> PAGE_SHIFT);
|
||||
}
|
||||
@ -631,7 +630,6 @@ asmlinkage long sys32_mmap2(struct mmap_arg_struct_emu31 __user *arg)
|
||||
|
||||
if (copy_from_user(&a, arg, sizeof(a)))
|
||||
return -EFAULT;
|
||||
a.addr = (unsigned long) compat_ptr(a.addr);
|
||||
return sys_mmap_pgoff(a.addr, a.len, a.prot, a.flags, a.fd, a.offset);
|
||||
}
|
||||
|
||||
|
@ -1635,7 +1635,7 @@ ENTRY(compat_sys_process_vm_readv_wrapper)
|
||||
llgfr %r6,%r6 # unsigned long
|
||||
llgf %r0,164(%r15) # unsigned long
|
||||
stg %r0,160(%r15)
|
||||
jg sys_process_vm_readv
|
||||
jg compat_sys_process_vm_readv
|
||||
|
||||
ENTRY(compat_sys_process_vm_writev_wrapper)
|
||||
lgfr %r2,%r2 # compat_pid_t
|
||||
@ -1645,4 +1645,4 @@ ENTRY(compat_sys_process_vm_writev_wrapper)
|
||||
llgfr %r6,%r6 # unsigned long
|
||||
llgf %r0,164(%r15) # unsigned long
|
||||
stg %r0,160(%r15)
|
||||
jg sys_process_vm_writev
|
||||
jg compat_sys_process_vm_writev
|
||||
|
@ -719,7 +719,11 @@ asmlinkage long do_syscall_trace_enter(struct pt_regs *regs)
|
||||
long ret = 0;
|
||||
|
||||
/* Do the secure computing check first. */
|
||||
secure_computing_strict(regs->gprs[2]);
|
||||
if (secure_computing(regs->gprs[2])) {
|
||||
/* seccomp failures shouldn't expose any additional code. */
|
||||
ret = -1;
|
||||
goto out;
|
||||
}
|
||||
|
||||
/*
|
||||
* The sysc_tracesys code in entry.S stored the system
|
||||
@ -745,6 +749,7 @@ asmlinkage long do_syscall_trace_enter(struct pt_regs *regs)
|
||||
regs->gprs[2], regs->orig_gpr2,
|
||||
regs->gprs[3], regs->gprs[4],
|
||||
regs->gprs[5]);
|
||||
out:
|
||||
return ret ?: regs->gprs[2];
|
||||
}
|
||||
|
||||
|
@ -81,11 +81,12 @@ SYSCALL_DEFINE1(s390_personality, unsigned int, personality)
|
||||
{
|
||||
unsigned int ret;
|
||||
|
||||
if (current->personality == PER_LINUX32 && personality == PER_LINUX)
|
||||
personality = PER_LINUX32;
|
||||
if (personality(current->personality) == PER_LINUX32 &&
|
||||
personality(personality) == PER_LINUX)
|
||||
personality |= PER_LINUX32;
|
||||
ret = sys_personality(personality);
|
||||
if (ret == PER_LINUX32)
|
||||
ret = PER_LINUX;
|
||||
if (personality(ret) == PER_LINUX32)
|
||||
ret &= ~PER_LINUX32;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -335,7 +335,7 @@ static int dmae_irq_init(void)
|
||||
|
||||
for (n = 0; n < NR_DMAE; n++) {
|
||||
int i = request_irq(get_dma_error_irq(n), dma_err,
|
||||
IRQF_SHARED, dmae_name[n], NULL);
|
||||
IRQF_SHARED, dmae_name[n], (void *)dmae_name[n]);
|
||||
if (unlikely(i < 0)) {
|
||||
printk(KERN_ERR "%s request_irq fail\n", dmae_name[n]);
|
||||
return i;
|
||||
|
@ -6,7 +6,6 @@
|
||||
extern long __nosave_begin, __nosave_end;
|
||||
extern long __machvec_start, __machvec_end;
|
||||
extern char __uncached_start, __uncached_end;
|
||||
extern char _ebss[];
|
||||
extern char __start_eh_frame[], __stop_eh_frame[];
|
||||
|
||||
#endif /* __ASM_SH_SECTIONS_H */
|
||||
|
@ -183,18 +183,30 @@ enum {
|
||||
GPIO_FN_DV_DATA1, GPIO_FN_DV_DATA0,
|
||||
GPIO_FN_LCD_CLK, GPIO_FN_LCD_EXTCLK,
|
||||
GPIO_FN_LCD_VSYNC, GPIO_FN_LCD_HSYNC, GPIO_FN_LCD_DE,
|
||||
GPIO_FN_LCD_DATA23, GPIO_FN_LCD_DATA22,
|
||||
GPIO_FN_LCD_DATA21, GPIO_FN_LCD_DATA20,
|
||||
GPIO_FN_LCD_DATA19, GPIO_FN_LCD_DATA18,
|
||||
GPIO_FN_LCD_DATA17, GPIO_FN_LCD_DATA16,
|
||||
GPIO_FN_LCD_DATA15, GPIO_FN_LCD_DATA14,
|
||||
GPIO_FN_LCD_DATA13, GPIO_FN_LCD_DATA12,
|
||||
GPIO_FN_LCD_DATA11, GPIO_FN_LCD_DATA10,
|
||||
GPIO_FN_LCD_DATA9, GPIO_FN_LCD_DATA8,
|
||||
GPIO_FN_LCD_DATA7, GPIO_FN_LCD_DATA6,
|
||||
GPIO_FN_LCD_DATA5, GPIO_FN_LCD_DATA4,
|
||||
GPIO_FN_LCD_DATA3, GPIO_FN_LCD_DATA2,
|
||||
GPIO_FN_LCD_DATA1, GPIO_FN_LCD_DATA0,
|
||||
GPIO_FN_LCD_DATA23_PG23, GPIO_FN_LCD_DATA22_PG22,
|
||||
GPIO_FN_LCD_DATA21_PG21, GPIO_FN_LCD_DATA20_PG20,
|
||||
GPIO_FN_LCD_DATA19_PG19, GPIO_FN_LCD_DATA18_PG18,
|
||||
GPIO_FN_LCD_DATA17_PG17, GPIO_FN_LCD_DATA16_PG16,
|
||||
GPIO_FN_LCD_DATA15_PG15, GPIO_FN_LCD_DATA14_PG14,
|
||||
GPIO_FN_LCD_DATA13_PG13, GPIO_FN_LCD_DATA12_PG12,
|
||||
GPIO_FN_LCD_DATA11_PG11, GPIO_FN_LCD_DATA10_PG10,
|
||||
GPIO_FN_LCD_DATA9_PG9, GPIO_FN_LCD_DATA8_PG8,
|
||||
GPIO_FN_LCD_DATA7_PG7, GPIO_FN_LCD_DATA6_PG6,
|
||||
GPIO_FN_LCD_DATA5_PG5, GPIO_FN_LCD_DATA4_PG4,
|
||||
GPIO_FN_LCD_DATA3_PG3, GPIO_FN_LCD_DATA2_PG2,
|
||||
GPIO_FN_LCD_DATA1_PG1, GPIO_FN_LCD_DATA0_PG0,
|
||||
GPIO_FN_LCD_DATA23_PJ23, GPIO_FN_LCD_DATA22_PJ22,
|
||||
GPIO_FN_LCD_DATA21_PJ21, GPIO_FN_LCD_DATA20_PJ20,
|
||||
GPIO_FN_LCD_DATA19_PJ19, GPIO_FN_LCD_DATA18_PJ18,
|
||||
GPIO_FN_LCD_DATA17_PJ17, GPIO_FN_LCD_DATA16_PJ16,
|
||||
GPIO_FN_LCD_DATA15_PJ15, GPIO_FN_LCD_DATA14_PJ14,
|
||||
GPIO_FN_LCD_DATA13_PJ13, GPIO_FN_LCD_DATA12_PJ12,
|
||||
GPIO_FN_LCD_DATA11_PJ11, GPIO_FN_LCD_DATA10_PJ10,
|
||||
GPIO_FN_LCD_DATA9_PJ9, GPIO_FN_LCD_DATA8_PJ8,
|
||||
GPIO_FN_LCD_DATA7_PJ7, GPIO_FN_LCD_DATA6_PJ6,
|
||||
GPIO_FN_LCD_DATA5_PJ5, GPIO_FN_LCD_DATA4_PJ4,
|
||||
GPIO_FN_LCD_DATA3_PJ3, GPIO_FN_LCD_DATA2_PJ2,
|
||||
GPIO_FN_LCD_DATA1_PJ1, GPIO_FN_LCD_DATA0_PJ0,
|
||||
GPIO_FN_LCD_M_DISP,
|
||||
};
|
||||
|
||||
|
@ -758,12 +758,22 @@ enum {
|
||||
DV_DATA3_MARK, DV_DATA2_MARK, DV_DATA1_MARK, DV_DATA0_MARK,
|
||||
LCD_CLK_MARK, LCD_EXTCLK_MARK,
|
||||
LCD_VSYNC_MARK, LCD_HSYNC_MARK, LCD_DE_MARK,
|
||||
LCD_DATA23_MARK, LCD_DATA22_MARK, LCD_DATA21_MARK, LCD_DATA20_MARK,
|
||||
LCD_DATA19_MARK, LCD_DATA18_MARK, LCD_DATA17_MARK, LCD_DATA16_MARK,
|
||||
LCD_DATA15_MARK, LCD_DATA14_MARK, LCD_DATA13_MARK, LCD_DATA12_MARK,
|
||||
LCD_DATA11_MARK, LCD_DATA10_MARK, LCD_DATA9_MARK, LCD_DATA8_MARK,
|
||||
LCD_DATA7_MARK, LCD_DATA6_MARK, LCD_DATA5_MARK, LCD_DATA4_MARK,
|
||||
LCD_DATA3_MARK, LCD_DATA2_MARK, LCD_DATA1_MARK, LCD_DATA0_MARK,
|
||||
LCD_DATA23_PG23_MARK, LCD_DATA22_PG22_MARK, LCD_DATA21_PG21_MARK,
|
||||
LCD_DATA20_PG20_MARK, LCD_DATA19_PG19_MARK, LCD_DATA18_PG18_MARK,
|
||||
LCD_DATA17_PG17_MARK, LCD_DATA16_PG16_MARK, LCD_DATA15_PG15_MARK,
|
||||
LCD_DATA14_PG14_MARK, LCD_DATA13_PG13_MARK, LCD_DATA12_PG12_MARK,
|
||||
LCD_DATA11_PG11_MARK, LCD_DATA10_PG10_MARK, LCD_DATA9_PG9_MARK,
|
||||
LCD_DATA8_PG8_MARK, LCD_DATA7_PG7_MARK, LCD_DATA6_PG6_MARK,
|
||||
LCD_DATA5_PG5_MARK, LCD_DATA4_PG4_MARK, LCD_DATA3_PG3_MARK,
|
||||
LCD_DATA2_PG2_MARK, LCD_DATA1_PG1_MARK, LCD_DATA0_PG0_MARK,
|
||||
LCD_DATA23_PJ23_MARK, LCD_DATA22_PJ22_MARK, LCD_DATA21_PJ21_MARK,
|
||||
LCD_DATA20_PJ20_MARK, LCD_DATA19_PJ19_MARK, LCD_DATA18_PJ18_MARK,
|
||||
LCD_DATA17_PJ17_MARK, LCD_DATA16_PJ16_MARK, LCD_DATA15_PJ15_MARK,
|
||||
LCD_DATA14_PJ14_MARK, LCD_DATA13_PJ13_MARK, LCD_DATA12_PJ12_MARK,
|
||||
LCD_DATA11_PJ11_MARK, LCD_DATA10_PJ10_MARK, LCD_DATA9_PJ9_MARK,
|
||||
LCD_DATA8_PJ8_MARK, LCD_DATA7_PJ7_MARK, LCD_DATA6_PJ6_MARK,
|
||||
LCD_DATA5_PJ5_MARK, LCD_DATA4_PJ4_MARK, LCD_DATA3_PJ3_MARK,
|
||||
LCD_DATA2_PJ2_MARK, LCD_DATA1_PJ1_MARK, LCD_DATA0_PJ0_MARK,
|
||||
LCD_TCON6_MARK, LCD_TCON5_MARK, LCD_TCON4_MARK,
|
||||
LCD_TCON3_MARK, LCD_TCON2_MARK, LCD_TCON1_MARK, LCD_TCON0_MARK,
|
||||
LCD_M_DISP_MARK,
|
||||
@ -1036,6 +1046,7 @@ static pinmux_enum_t pinmux_data[] = {
|
||||
|
||||
PINMUX_DATA(PF1_DATA, PF1MD_000),
|
||||
PINMUX_DATA(BACK_MARK, PF1MD_001),
|
||||
PINMUX_DATA(SSL10_MARK, PF1MD_011),
|
||||
PINMUX_DATA(TIOC4B_MARK, PF1MD_100),
|
||||
PINMUX_DATA(DACK0_MARK, PF1MD_101),
|
||||
|
||||
@ -1049,47 +1060,50 @@ static pinmux_enum_t pinmux_data[] = {
|
||||
PINMUX_DATA(PG27_DATA, PG27MD_00),
|
||||
PINMUX_DATA(LCD_TCON2_MARK, PG27MD_10),
|
||||
PINMUX_DATA(LCD_EXTCLK_MARK, PG27MD_11),
|
||||
PINMUX_DATA(LCD_DE_MARK, PG27MD_11),
|
||||
|
||||
PINMUX_DATA(PG26_DATA, PG26MD_00),
|
||||
PINMUX_DATA(LCD_TCON1_MARK, PG26MD_10),
|
||||
PINMUX_DATA(LCD_HSYNC_MARK, PG26MD_10),
|
||||
|
||||
PINMUX_DATA(PG25_DATA, PG25MD_00),
|
||||
PINMUX_DATA(LCD_TCON0_MARK, PG25MD_10),
|
||||
PINMUX_DATA(LCD_VSYNC_MARK, PG25MD_10),
|
||||
|
||||
PINMUX_DATA(PG24_DATA, PG24MD_00),
|
||||
PINMUX_DATA(LCD_CLK_MARK, PG24MD_10),
|
||||
|
||||
PINMUX_DATA(PG23_DATA, PG23MD_000),
|
||||
PINMUX_DATA(LCD_DATA23_MARK, PG23MD_010),
|
||||
PINMUX_DATA(LCD_DATA23_PG23_MARK, PG23MD_010),
|
||||
PINMUX_DATA(LCD_TCON6_MARK, PG23MD_011),
|
||||
PINMUX_DATA(TXD5_MARK, PG23MD_100),
|
||||
|
||||
PINMUX_DATA(PG22_DATA, PG22MD_000),
|
||||
PINMUX_DATA(LCD_DATA22_MARK, PG22MD_010),
|
||||
PINMUX_DATA(LCD_DATA22_PG22_MARK, PG22MD_010),
|
||||
PINMUX_DATA(LCD_TCON5_MARK, PG22MD_011),
|
||||
PINMUX_DATA(RXD5_MARK, PG22MD_100),
|
||||
|
||||
PINMUX_DATA(PG21_DATA, PG21MD_000),
|
||||
PINMUX_DATA(DV_DATA7_MARK, PG21MD_001),
|
||||
PINMUX_DATA(LCD_DATA21_MARK, PG21MD_010),
|
||||
PINMUX_DATA(LCD_DATA21_PG21_MARK, PG21MD_010),
|
||||
PINMUX_DATA(LCD_TCON4_MARK, PG21MD_011),
|
||||
PINMUX_DATA(TXD4_MARK, PG21MD_100),
|
||||
|
||||
PINMUX_DATA(PG20_DATA, PG20MD_000),
|
||||
PINMUX_DATA(DV_DATA6_MARK, PG20MD_001),
|
||||
PINMUX_DATA(LCD_DATA20_MARK, PG21MD_010),
|
||||
PINMUX_DATA(LCD_DATA20_PG20_MARK, PG21MD_010),
|
||||
PINMUX_DATA(LCD_TCON3_MARK, PG20MD_011),
|
||||
PINMUX_DATA(RXD4_MARK, PG20MD_100),
|
||||
|
||||
PINMUX_DATA(PG19_DATA, PG19MD_000),
|
||||
PINMUX_DATA(DV_DATA5_MARK, PG19MD_001),
|
||||
PINMUX_DATA(LCD_DATA19_MARK, PG19MD_010),
|
||||
PINMUX_DATA(LCD_DATA19_PG19_MARK, PG19MD_010),
|
||||
PINMUX_DATA(SPDIF_OUT_MARK, PG19MD_011),
|
||||
PINMUX_DATA(SCK5_MARK, PG19MD_100),
|
||||
|
||||
PINMUX_DATA(PG18_DATA, PG18MD_000),
|
||||
PINMUX_DATA(DV_DATA4_MARK, PG18MD_001),
|
||||
PINMUX_DATA(LCD_DATA18_MARK, PG18MD_010),
|
||||
PINMUX_DATA(LCD_DATA18_PG18_MARK, PG18MD_010),
|
||||
PINMUX_DATA(SPDIF_IN_MARK, PG18MD_011),
|
||||
PINMUX_DATA(SCK4_MARK, PG18MD_100),
|
||||
|
||||
@ -1097,103 +1111,103 @@ static pinmux_enum_t pinmux_data[] = {
|
||||
// we're going with 2 bits
|
||||
PINMUX_DATA(PG17_DATA, PG17MD_00),
|
||||
PINMUX_DATA(WE3ICIOWRAHDQMUU_MARK, PG17MD_01),
|
||||
PINMUX_DATA(LCD_DATA17_MARK, PG17MD_10),
|
||||
PINMUX_DATA(LCD_DATA17_PG17_MARK, PG17MD_10),
|
||||
|
||||
// TODO hardware manual has PG16 3 bits wide in reg picture and 2 bits in description
|
||||
// we're going with 2 bits
|
||||
PINMUX_DATA(PG16_DATA, PG16MD_00),
|
||||
PINMUX_DATA(WE2ICIORDDQMUL_MARK, PG16MD_01),
|
||||
PINMUX_DATA(LCD_DATA16_MARK, PG16MD_10),
|
||||
PINMUX_DATA(LCD_DATA16_PG16_MARK, PG16MD_10),
|
||||
|
||||
PINMUX_DATA(PG15_DATA, PG15MD_00),
|
||||
PINMUX_DATA(D31_MARK, PG15MD_01),
|
||||
PINMUX_DATA(LCD_DATA15_MARK, PG15MD_10),
|
||||
PINMUX_DATA(LCD_DATA15_PG15_MARK, PG15MD_10),
|
||||
PINMUX_DATA(PINT7_PG_MARK, PG15MD_11),
|
||||
|
||||
PINMUX_DATA(PG14_DATA, PG14MD_00),
|
||||
PINMUX_DATA(D30_MARK, PG14MD_01),
|
||||
PINMUX_DATA(LCD_DATA14_MARK, PG14MD_10),
|
||||
PINMUX_DATA(LCD_DATA14_PG14_MARK, PG14MD_10),
|
||||
PINMUX_DATA(PINT6_PG_MARK, PG14MD_11),
|
||||
|
||||
PINMUX_DATA(PG13_DATA, PG13MD_00),
|
||||
PINMUX_DATA(D29_MARK, PG13MD_01),
|
||||
PINMUX_DATA(LCD_DATA13_MARK, PG13MD_10),
|
||||
PINMUX_DATA(LCD_DATA13_PG13_MARK, PG13MD_10),
|
||||
PINMUX_DATA(PINT5_PG_MARK, PG13MD_11),
|
||||
|
||||
PINMUX_DATA(PG12_DATA, PG12MD_00),
|
||||
PINMUX_DATA(D28_MARK, PG12MD_01),
|
||||
PINMUX_DATA(LCD_DATA12_MARK, PG12MD_10),
|
||||
PINMUX_DATA(LCD_DATA12_PG12_MARK, PG12MD_10),
|
||||
PINMUX_DATA(PINT4_PG_MARK, PG12MD_11),
|
||||
|
||||
PINMUX_DATA(PG11_DATA, PG11MD_000),
|
||||
PINMUX_DATA(D27_MARK, PG11MD_001),
|
||||
PINMUX_DATA(LCD_DATA11_MARK, PG11MD_010),
|
||||
PINMUX_DATA(LCD_DATA11_PG11_MARK, PG11MD_010),
|
||||
PINMUX_DATA(PINT3_PG_MARK, PG11MD_011),
|
||||
PINMUX_DATA(TIOC3D_MARK, PG11MD_100),
|
||||
|
||||
PINMUX_DATA(PG10_DATA, PG10MD_000),
|
||||
PINMUX_DATA(D26_MARK, PG10MD_001),
|
||||
PINMUX_DATA(LCD_DATA10_MARK, PG10MD_010),
|
||||
PINMUX_DATA(LCD_DATA10_PG10_MARK, PG10MD_010),
|
||||
PINMUX_DATA(PINT2_PG_MARK, PG10MD_011),
|
||||
PINMUX_DATA(TIOC3C_MARK, PG10MD_100),
|
||||
|
||||
PINMUX_DATA(PG9_DATA, PG9MD_000),
|
||||
PINMUX_DATA(D25_MARK, PG9MD_001),
|
||||
PINMUX_DATA(LCD_DATA9_MARK, PG9MD_010),
|
||||
PINMUX_DATA(LCD_DATA9_PG9_MARK, PG9MD_010),
|
||||
PINMUX_DATA(PINT1_PG_MARK, PG9MD_011),
|
||||
PINMUX_DATA(TIOC3B_MARK, PG9MD_100),
|
||||
|
||||
PINMUX_DATA(PG8_DATA, PG8MD_000),
|
||||
PINMUX_DATA(D24_MARK, PG8MD_001),
|
||||
PINMUX_DATA(LCD_DATA8_MARK, PG8MD_010),
|
||||
PINMUX_DATA(LCD_DATA8_PG8_MARK, PG8MD_010),
|
||||
PINMUX_DATA(PINT0_PG_MARK, PG8MD_011),
|
||||
PINMUX_DATA(TIOC3A_MARK, PG8MD_100),
|
||||
|
||||
PINMUX_DATA(PG7_DATA, PG7MD_000),
|
||||
PINMUX_DATA(D23_MARK, PG7MD_001),
|
||||
PINMUX_DATA(LCD_DATA7_MARK, PG7MD_010),
|
||||
PINMUX_DATA(LCD_DATA7_PG7_MARK, PG7MD_010),
|
||||
PINMUX_DATA(IRQ7_PG_MARK, PG7MD_011),
|
||||
PINMUX_DATA(TIOC2B_MARK, PG7MD_100),
|
||||
|
||||
PINMUX_DATA(PG6_DATA, PG6MD_000),
|
||||
PINMUX_DATA(D22_MARK, PG6MD_001),
|
||||
PINMUX_DATA(LCD_DATA6_MARK, PG6MD_010),
|
||||
PINMUX_DATA(LCD_DATA6_PG6_MARK, PG6MD_010),
|
||||
PINMUX_DATA(IRQ6_PG_MARK, PG6MD_011),
|
||||
PINMUX_DATA(TIOC2A_MARK, PG6MD_100),
|
||||
|
||||
PINMUX_DATA(PG5_DATA, PG5MD_000),
|
||||
PINMUX_DATA(D21_MARK, PG5MD_001),
|
||||
PINMUX_DATA(LCD_DATA5_MARK, PG5MD_010),
|
||||
PINMUX_DATA(LCD_DATA5_PG5_MARK, PG5MD_010),
|
||||
PINMUX_DATA(IRQ5_PG_MARK, PG5MD_011),
|
||||
PINMUX_DATA(TIOC1B_MARK, PG5MD_100),
|
||||
|
||||
PINMUX_DATA(PG4_DATA, PG4MD_000),
|
||||
PINMUX_DATA(D20_MARK, PG4MD_001),
|
||||
PINMUX_DATA(LCD_DATA4_MARK, PG4MD_010),
|
||||
PINMUX_DATA(LCD_DATA4_PG4_MARK, PG4MD_010),
|
||||
PINMUX_DATA(IRQ4_PG_MARK, PG4MD_011),
|
||||
PINMUX_DATA(TIOC1A_MARK, PG4MD_100),
|
||||
|
||||
PINMUX_DATA(PG3_DATA, PG3MD_000),
|
||||
PINMUX_DATA(D19_MARK, PG3MD_001),
|
||||
PINMUX_DATA(LCD_DATA3_MARK, PG3MD_010),
|
||||
PINMUX_DATA(LCD_DATA3_PG3_MARK, PG3MD_010),
|
||||
PINMUX_DATA(IRQ3_PG_MARK, PG3MD_011),
|
||||
PINMUX_DATA(TIOC0D_MARK, PG3MD_100),
|
||||
|
||||
PINMUX_DATA(PG2_DATA, PG2MD_000),
|
||||
PINMUX_DATA(D18_MARK, PG2MD_001),
|
||||
PINMUX_DATA(LCD_DATA2_MARK, PG2MD_010),
|
||||
PINMUX_DATA(LCD_DATA2_PG2_MARK, PG2MD_010),
|
||||
PINMUX_DATA(IRQ2_PG_MARK, PG2MD_011),
|
||||
PINMUX_DATA(TIOC0C_MARK, PG2MD_100),
|
||||
|
||||
PINMUX_DATA(PG1_DATA, PG1MD_000),
|
||||
PINMUX_DATA(D17_MARK, PG1MD_001),
|
||||
PINMUX_DATA(LCD_DATA1_MARK, PG1MD_010),
|
||||
PINMUX_DATA(LCD_DATA1_PG1_MARK, PG1MD_010),
|
||||
PINMUX_DATA(IRQ1_PG_MARK, PG1MD_011),
|
||||
PINMUX_DATA(TIOC0B_MARK, PG1MD_100),
|
||||
|
||||
PINMUX_DATA(PG0_DATA, PG0MD_000),
|
||||
PINMUX_DATA(D16_MARK, PG0MD_001),
|
||||
PINMUX_DATA(LCD_DATA0_MARK, PG0MD_010),
|
||||
PINMUX_DATA(LCD_DATA0_PG0_MARK, PG0MD_010),
|
||||
PINMUX_DATA(IRQ0_PG_MARK, PG0MD_011),
|
||||
PINMUX_DATA(TIOC0A_MARK, PG0MD_100),
|
||||
|
||||
@ -1275,14 +1289,14 @@ static pinmux_enum_t pinmux_data[] = {
|
||||
|
||||
PINMUX_DATA(PJ23_DATA, PJ23MD_000),
|
||||
PINMUX_DATA(DV_DATA23_MARK, PJ23MD_001),
|
||||
PINMUX_DATA(LCD_DATA23_MARK, PJ23MD_010),
|
||||
PINMUX_DATA(LCD_DATA23_PJ23_MARK, PJ23MD_010),
|
||||
PINMUX_DATA(LCD_TCON6_MARK, PJ23MD_011),
|
||||
PINMUX_DATA(IRQ3_PJ_MARK, PJ23MD_100),
|
||||
PINMUX_DATA(CTX1_MARK, PJ23MD_101),
|
||||
|
||||
PINMUX_DATA(PJ22_DATA, PJ22MD_000),
|
||||
PINMUX_DATA(DV_DATA22_MARK, PJ22MD_001),
|
||||
PINMUX_DATA(LCD_DATA22_MARK, PJ22MD_010),
|
||||
PINMUX_DATA(LCD_DATA22_PJ22_MARK, PJ22MD_010),
|
||||
PINMUX_DATA(LCD_TCON5_MARK, PJ22MD_011),
|
||||
PINMUX_DATA(IRQ2_PJ_MARK, PJ22MD_100),
|
||||
PINMUX_DATA(CRX1_MARK, PJ22MD_101),
|
||||
@ -1290,14 +1304,14 @@ static pinmux_enum_t pinmux_data[] = {
|
||||
|
||||
PINMUX_DATA(PJ21_DATA, PJ21MD_000),
|
||||
PINMUX_DATA(DV_DATA21_MARK, PJ21MD_001),
|
||||
PINMUX_DATA(LCD_DATA21_MARK, PJ21MD_010),
|
||||
PINMUX_DATA(LCD_DATA21_PJ21_MARK, PJ21MD_010),
|
||||
PINMUX_DATA(LCD_TCON4_MARK, PJ21MD_011),
|
||||
PINMUX_DATA(IRQ1_PJ_MARK, PJ21MD_100),
|
||||
PINMUX_DATA(CTX2_MARK, PJ21MD_101),
|
||||
|
||||
PINMUX_DATA(PJ20_DATA, PJ20MD_000),
|
||||
PINMUX_DATA(DV_DATA20_MARK, PJ20MD_001),
|
||||
PINMUX_DATA(LCD_DATA20_MARK, PJ20MD_010),
|
||||
PINMUX_DATA(LCD_DATA20_PJ20_MARK, PJ20MD_010),
|
||||
PINMUX_DATA(LCD_TCON3_MARK, PJ20MD_011),
|
||||
PINMUX_DATA(IRQ0_PJ_MARK, PJ20MD_100),
|
||||
PINMUX_DATA(CRX2_MARK, PJ20MD_101),
|
||||
@ -1305,7 +1319,7 @@ static pinmux_enum_t pinmux_data[] = {
|
||||
|
||||
PINMUX_DATA(PJ19_DATA, PJ19MD_000),
|
||||
PINMUX_DATA(DV_DATA19_MARK, PJ19MD_001),
|
||||
PINMUX_DATA(LCD_DATA19_MARK, PJ19MD_010),
|
||||
PINMUX_DATA(LCD_DATA19_PJ19_MARK, PJ19MD_010),
|
||||
PINMUX_DATA(MISO0_PJ19_MARK, PJ19MD_011),
|
||||
PINMUX_DATA(TIOC0D_MARK, PJ19MD_100),
|
||||
PINMUX_DATA(SIOFRXD_MARK, PJ19MD_101),
|
||||
@ -1313,126 +1327,126 @@ static pinmux_enum_t pinmux_data[] = {
|
||||
|
||||
PINMUX_DATA(PJ18_DATA, PJ18MD_000),
|
||||
PINMUX_DATA(DV_DATA18_MARK, PJ18MD_001),
|
||||
PINMUX_DATA(LCD_DATA18_MARK, PJ18MD_010),
|
||||
PINMUX_DATA(LCD_DATA18_PJ18_MARK, PJ18MD_010),
|
||||
PINMUX_DATA(MOSI0_PJ18_MARK, PJ18MD_011),
|
||||
PINMUX_DATA(TIOC0C_MARK, PJ18MD_100),
|
||||
PINMUX_DATA(SIOFTXD_MARK, PJ18MD_101),
|
||||
|
||||
PINMUX_DATA(PJ17_DATA, PJ17MD_000),
|
||||
PINMUX_DATA(DV_DATA17_MARK, PJ17MD_001),
|
||||
PINMUX_DATA(LCD_DATA17_MARK, PJ17MD_010),
|
||||
PINMUX_DATA(LCD_DATA17_PJ17_MARK, PJ17MD_010),
|
||||
PINMUX_DATA(SSL00_PJ17_MARK, PJ17MD_011),
|
||||
PINMUX_DATA(TIOC0B_MARK, PJ17MD_100),
|
||||
PINMUX_DATA(SIOFSYNC_MARK, PJ17MD_101),
|
||||
|
||||
PINMUX_DATA(PJ16_DATA, PJ16MD_000),
|
||||
PINMUX_DATA(DV_DATA16_MARK, PJ16MD_001),
|
||||
PINMUX_DATA(LCD_DATA16_MARK, PJ16MD_010),
|
||||
PINMUX_DATA(LCD_DATA16_PJ16_MARK, PJ16MD_010),
|
||||
PINMUX_DATA(RSPCK0_PJ16_MARK, PJ16MD_011),
|
||||
PINMUX_DATA(TIOC0A_MARK, PJ16MD_100),
|
||||
PINMUX_DATA(SIOFSCK_MARK, PJ16MD_101),
|
||||
|
||||
PINMUX_DATA(PJ15_DATA, PJ15MD_000),
|
||||
PINMUX_DATA(DV_DATA15_MARK, PJ15MD_001),
|
||||
PINMUX_DATA(LCD_DATA15_MARK, PJ15MD_010),
|
||||
PINMUX_DATA(LCD_DATA15_PJ15_MARK, PJ15MD_010),
|
||||
PINMUX_DATA(PINT7_PJ_MARK, PJ15MD_011),
|
||||
PINMUX_DATA(PWM2H_MARK, PJ15MD_100),
|
||||
PINMUX_DATA(TXD7_MARK, PJ15MD_101),
|
||||
|
||||
PINMUX_DATA(PJ14_DATA, PJ14MD_000),
|
||||
PINMUX_DATA(DV_DATA14_MARK, PJ14MD_001),
|
||||
PINMUX_DATA(LCD_DATA14_MARK, PJ14MD_010),
|
||||
PINMUX_DATA(LCD_DATA14_PJ14_MARK, PJ14MD_010),
|
||||
PINMUX_DATA(PINT6_PJ_MARK, PJ14MD_011),
|
||||
PINMUX_DATA(PWM2G_MARK, PJ14MD_100),
|
||||
PINMUX_DATA(TXD6_MARK, PJ14MD_101),
|
||||
|
||||
PINMUX_DATA(PJ13_DATA, PJ13MD_000),
|
||||
PINMUX_DATA(DV_DATA13_MARK, PJ13MD_001),
|
||||
PINMUX_DATA(LCD_DATA13_MARK, PJ13MD_010),
|
||||
PINMUX_DATA(LCD_DATA13_PJ13_MARK, PJ13MD_010),
|
||||
PINMUX_DATA(PINT5_PJ_MARK, PJ13MD_011),
|
||||
PINMUX_DATA(PWM2F_MARK, PJ13MD_100),
|
||||
PINMUX_DATA(TXD5_MARK, PJ13MD_101),
|
||||
|
||||
PINMUX_DATA(PJ12_DATA, PJ12MD_000),
|
||||
PINMUX_DATA(DV_DATA12_MARK, PJ12MD_001),
|
||||
PINMUX_DATA(LCD_DATA12_MARK, PJ12MD_010),
|
||||
PINMUX_DATA(LCD_DATA12_PJ12_MARK, PJ12MD_010),
|
||||
PINMUX_DATA(PINT4_PJ_MARK, PJ12MD_011),
|
||||
PINMUX_DATA(PWM2E_MARK, PJ12MD_100),
|
||||
PINMUX_DATA(SCK7_MARK, PJ12MD_101),
|
||||
|
||||
PINMUX_DATA(PJ11_DATA, PJ11MD_000),
|
||||
PINMUX_DATA(DV_DATA11_MARK, PJ11MD_001),
|
||||
PINMUX_DATA(LCD_DATA11_MARK, PJ11MD_010),
|
||||
PINMUX_DATA(LCD_DATA11_PJ11_MARK, PJ11MD_010),
|
||||
PINMUX_DATA(PINT3_PJ_MARK, PJ11MD_011),
|
||||
PINMUX_DATA(PWM2D_MARK, PJ11MD_100),
|
||||
PINMUX_DATA(SCK6_MARK, PJ11MD_101),
|
||||
|
||||
PINMUX_DATA(PJ10_DATA, PJ10MD_000),
|
||||
PINMUX_DATA(DV_DATA10_MARK, PJ10MD_001),
|
||||
PINMUX_DATA(LCD_DATA10_MARK, PJ10MD_010),
|
||||
PINMUX_DATA(LCD_DATA10_PJ10_MARK, PJ10MD_010),
|
||||
PINMUX_DATA(PINT2_PJ_MARK, PJ10MD_011),
|
||||
PINMUX_DATA(PWM2C_MARK, PJ10MD_100),
|
||||
PINMUX_DATA(SCK5_MARK, PJ10MD_101),
|
||||
|
||||
PINMUX_DATA(PJ9_DATA, PJ9MD_000),
|
||||
PINMUX_DATA(DV_DATA9_MARK, PJ9MD_001),
|
||||
PINMUX_DATA(LCD_DATA9_MARK, PJ9MD_010),
|
||||
PINMUX_DATA(LCD_DATA9_PJ9_MARK, PJ9MD_010),
|
||||
PINMUX_DATA(PINT1_PJ_MARK, PJ9MD_011),
|
||||
PINMUX_DATA(PWM2B_MARK, PJ9MD_100),
|
||||
PINMUX_DATA(RTS5_MARK, PJ9MD_101),
|
||||
|
||||
PINMUX_DATA(PJ8_DATA, PJ8MD_000),
|
||||
PINMUX_DATA(DV_DATA8_MARK, PJ8MD_001),
|
||||
PINMUX_DATA(LCD_DATA8_MARK, PJ8MD_010),
|
||||
PINMUX_DATA(LCD_DATA8_PJ8_MARK, PJ8MD_010),
|
||||
PINMUX_DATA(PINT0_PJ_MARK, PJ8MD_011),
|
||||
PINMUX_DATA(PWM2A_MARK, PJ8MD_100),
|
||||
PINMUX_DATA(CTS5_MARK, PJ8MD_101),
|
||||
|
||||
PINMUX_DATA(PJ7_DATA, PJ7MD_000),
|
||||
PINMUX_DATA(DV_DATA7_MARK, PJ7MD_001),
|
||||
PINMUX_DATA(LCD_DATA7_MARK, PJ7MD_010),
|
||||
PINMUX_DATA(LCD_DATA7_PJ7_MARK, PJ7MD_010),
|
||||
PINMUX_DATA(SD_D2_MARK, PJ7MD_011),
|
||||
PINMUX_DATA(PWM1H_MARK, PJ7MD_100),
|
||||
|
||||
PINMUX_DATA(PJ6_DATA, PJ6MD_000),
|
||||
PINMUX_DATA(DV_DATA6_MARK, PJ6MD_001),
|
||||
PINMUX_DATA(LCD_DATA6_MARK, PJ6MD_010),
|
||||
PINMUX_DATA(LCD_DATA6_PJ6_MARK, PJ6MD_010),
|
||||
PINMUX_DATA(SD_D3_MARK, PJ6MD_011),
|
||||
PINMUX_DATA(PWM1G_MARK, PJ6MD_100),
|
||||
|
||||
PINMUX_DATA(PJ5_DATA, PJ5MD_000),
|
||||
PINMUX_DATA(DV_DATA5_MARK, PJ5MD_001),
|
||||
PINMUX_DATA(LCD_DATA5_MARK, PJ5MD_010),
|
||||
PINMUX_DATA(LCD_DATA5_PJ5_MARK, PJ5MD_010),
|
||||
PINMUX_DATA(SD_CMD_MARK, PJ5MD_011),
|
||||
PINMUX_DATA(PWM1F_MARK, PJ5MD_100),
|
||||
|
||||
PINMUX_DATA(PJ4_DATA, PJ4MD_000),
|
||||
PINMUX_DATA(DV_DATA4_MARK, PJ4MD_001),
|
||||
PINMUX_DATA(LCD_DATA4_MARK, PJ4MD_010),
|
||||
PINMUX_DATA(LCD_DATA4_PJ4_MARK, PJ4MD_010),
|
||||
PINMUX_DATA(SD_CLK_MARK, PJ4MD_011),
|
||||
PINMUX_DATA(PWM1E_MARK, PJ4MD_100),
|
||||
|
||||
PINMUX_DATA(PJ3_DATA, PJ3MD_000),
|
||||
PINMUX_DATA(DV_DATA3_MARK, PJ3MD_001),
|
||||
PINMUX_DATA(LCD_DATA3_MARK, PJ3MD_010),
|
||||
PINMUX_DATA(LCD_DATA3_PJ3_MARK, PJ3MD_010),
|
||||
PINMUX_DATA(SD_D0_MARK, PJ3MD_011),
|
||||
PINMUX_DATA(PWM1D_MARK, PJ3MD_100),
|
||||
|
||||
PINMUX_DATA(PJ2_DATA, PJ2MD_000),
|
||||
PINMUX_DATA(DV_DATA2_MARK, PJ2MD_001),
|
||||
PINMUX_DATA(LCD_DATA2_MARK, PJ2MD_010),
|
||||
PINMUX_DATA(LCD_DATA2_PJ2_MARK, PJ2MD_010),
|
||||
PINMUX_DATA(SD_D1_MARK, PJ2MD_011),
|
||||
PINMUX_DATA(PWM1C_MARK, PJ2MD_100),
|
||||
|
||||
PINMUX_DATA(PJ1_DATA, PJ1MD_000),
|
||||
PINMUX_DATA(DV_DATA1_MARK, PJ1MD_001),
|
||||
PINMUX_DATA(LCD_DATA1_MARK, PJ1MD_010),
|
||||
PINMUX_DATA(LCD_DATA1_PJ1_MARK, PJ1MD_010),
|
||||
PINMUX_DATA(SD_WP_MARK, PJ1MD_011),
|
||||
PINMUX_DATA(PWM1B_MARK, PJ1MD_100),
|
||||
|
||||
PINMUX_DATA(PJ0_DATA, PJ0MD_000),
|
||||
PINMUX_DATA(DV_DATA0_MARK, PJ0MD_001),
|
||||
PINMUX_DATA(LCD_DATA0_MARK, PJ0MD_010),
|
||||
PINMUX_DATA(LCD_DATA0_PJ0_MARK, PJ0MD_010),
|
||||
PINMUX_DATA(SD_CD_MARK, PJ0MD_011),
|
||||
PINMUX_DATA(PWM1A_MARK, PJ0MD_100),
|
||||
};
|
||||
@ -1877,30 +1891,55 @@ static struct pinmux_gpio pinmux_gpios[] = {
|
||||
PINMUX_GPIO(GPIO_FN_LCD_HSYNC, LCD_HSYNC_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DE, LCD_DE_MARK),
|
||||
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA23, LCD_DATA23_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA22, LCD_DATA22_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA21, LCD_DATA21_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA20, LCD_DATA20_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA19, LCD_DATA19_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA18, LCD_DATA18_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA17, LCD_DATA17_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA16, LCD_DATA16_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA15, LCD_DATA15_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA14, LCD_DATA14_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA13, LCD_DATA13_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA12, LCD_DATA12_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA11, LCD_DATA11_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA10, LCD_DATA10_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA9, LCD_DATA9_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA8, LCD_DATA8_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA7, LCD_DATA7_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA6, LCD_DATA6_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA5, LCD_DATA5_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA4, LCD_DATA4_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA3, LCD_DATA3_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA2, LCD_DATA2_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA1, LCD_DATA1_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA0, LCD_DATA0_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA23_PG23, LCD_DATA23_PG23_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA22_PG22, LCD_DATA22_PG22_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA21_PG21, LCD_DATA21_PG21_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA20_PG20, LCD_DATA20_PG20_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA19_PG19, LCD_DATA19_PG19_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA18_PG18, LCD_DATA18_PG18_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA17_PG17, LCD_DATA17_PG17_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA16_PG16, LCD_DATA16_PG16_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA15_PG15, LCD_DATA15_PG15_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA14_PG14, LCD_DATA14_PG14_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA13_PG13, LCD_DATA13_PG13_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA12_PG12, LCD_DATA12_PG12_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA11_PG11, LCD_DATA11_PG11_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA10_PG10, LCD_DATA10_PG10_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA9_PG9, LCD_DATA9_PG9_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA8_PG8, LCD_DATA8_PG8_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA7_PG7, LCD_DATA7_PG7_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA6_PG6, LCD_DATA6_PG6_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA5_PG5, LCD_DATA5_PG5_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA4_PG4, LCD_DATA4_PG4_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA3_PG3, LCD_DATA3_PG3_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA2_PG2, LCD_DATA2_PG2_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA1_PG1, LCD_DATA1_PG1_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA0_PG0, LCD_DATA0_PG0_MARK),
|
||||
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA23_PJ23, LCD_DATA23_PJ23_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA22_PJ22, LCD_DATA22_PJ22_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA21_PJ21, LCD_DATA21_PJ21_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA20_PJ20, LCD_DATA20_PJ20_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA19_PJ19, LCD_DATA19_PJ19_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA18_PJ18, LCD_DATA18_PJ18_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA17_PJ17, LCD_DATA17_PJ17_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA16_PJ16, LCD_DATA16_PJ16_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA15_PJ15, LCD_DATA15_PJ15_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA14_PJ14, LCD_DATA14_PJ14_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA13_PJ13, LCD_DATA13_PJ13_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA12_PJ12, LCD_DATA12_PJ12_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA11_PJ11, LCD_DATA11_PJ11_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA10_PJ10, LCD_DATA10_PJ10_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA9_PJ9, LCD_DATA9_PJ9_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA8_PJ8, LCD_DATA8_PJ8_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA7_PJ7, LCD_DATA7_PJ7_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA6_PJ6, LCD_DATA6_PJ6_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA5_PJ5, LCD_DATA5_PJ5_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA4_PJ4, LCD_DATA4_PJ4_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA3_PJ3, LCD_DATA3_PJ3_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA2_PJ2, LCD_DATA2_PJ2_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA1_PJ1, LCD_DATA1_PJ1_MARK),
|
||||
PINMUX_GPIO(GPIO_FN_LCD_DATA0_PJ0, LCD_DATA0_PJ0_MARK),
|
||||
|
||||
PINMUX_GPIO(GPIO_FN_LCD_M_DISP, LCD_M_DISP_MARK),
|
||||
};
|
||||
|
@ -273,7 +273,7 @@ void __init setup_arch(char **cmdline_p)
|
||||
data_resource.start = virt_to_phys(_etext);
|
||||
data_resource.end = virt_to_phys(_edata)-1;
|
||||
bss_resource.start = virt_to_phys(__bss_start);
|
||||
bss_resource.end = virt_to_phys(_ebss)-1;
|
||||
bss_resource.end = virt_to_phys(__bss_stop)-1;
|
||||
|
||||
#ifdef CONFIG_CMDLINE_OVERWRITE
|
||||
strlcpy(command_line, CONFIG_CMDLINE, sizeof(command_line));
|
||||
|
@ -19,7 +19,6 @@ EXPORT_SYMBOL(csum_partial);
|
||||
EXPORT_SYMBOL(csum_partial_copy_generic);
|
||||
EXPORT_SYMBOL(copy_page);
|
||||
EXPORT_SYMBOL(__clear_user);
|
||||
EXPORT_SYMBOL(_ebss);
|
||||
EXPORT_SYMBOL(empty_zero_page);
|
||||
|
||||
#define DECLARE_EXPORT(name) \
|
||||
|
@ -78,7 +78,6 @@ SECTIONS
|
||||
. = ALIGN(PAGE_SIZE);
|
||||
__init_end = .;
|
||||
BSS_SECTION(0, PAGE_SIZE, 4)
|
||||
_ebss = .; /* uClinux MTD sucks */
|
||||
_end = . ;
|
||||
|
||||
STABS_DEBUG
|
||||
|
@ -39,7 +39,7 @@
|
||||
*
|
||||
* Make sure the stack pointer contains a valid address. Valid
|
||||
* addresses for kernel stacks are anywhere after the bss
|
||||
* (after _ebss) and anywhere in init_thread_union (init_stack).
|
||||
* (after __bss_stop) and anywhere in init_thread_union (init_stack).
|
||||
*/
|
||||
#define STACK_CHECK() \
|
||||
mov #(THREAD_SIZE >> 10), r0; \
|
||||
@ -60,7 +60,7 @@
|
||||
cmp/hi r2, r1; \
|
||||
bf stack_panic; \
|
||||
\
|
||||
/* If sp > _ebss then we're OK. */ \
|
||||
/* If sp > __bss_stop then we're OK. */ \
|
||||
mov.l .L_ebss, r1; \
|
||||
cmp/hi r1, r15; \
|
||||
bt 1f; \
|
||||
@ -70,7 +70,7 @@
|
||||
cmp/hs r1, r15; \
|
||||
bf stack_panic; \
|
||||
\
|
||||
/* If sp > init_stack && sp < _ebss, not OK. */ \
|
||||
/* If sp > init_stack && sp < __bss_stop, not OK. */ \
|
||||
add r0, r1; \
|
||||
cmp/hs r1, r15; \
|
||||
bt stack_panic; \
|
||||
@ -292,8 +292,6 @@ stack_panic:
|
||||
nop
|
||||
|
||||
.align 2
|
||||
.L_ebss:
|
||||
.long _ebss
|
||||
.L_init_thread_union:
|
||||
.long init_thread_union
|
||||
.Lpanic:
|
||||
|
@ -502,12 +502,12 @@ SYSCALL_DEFINE1(sparc64_personality, unsigned long, personality)
|
||||
{
|
||||
int ret;
|
||||
|
||||
if (current->personality == PER_LINUX32 &&
|
||||
personality == PER_LINUX)
|
||||
personality = PER_LINUX32;
|
||||
if (personality(current->personality) == PER_LINUX32 &&
|
||||
personality(personality) == PER_LINUX)
|
||||
personality |= PER_LINUX32;
|
||||
ret = sys_personality(personality);
|
||||
if (ret == PER_LINUX32)
|
||||
ret = PER_LINUX;
|
||||
if (personality(ret) == PER_LINUX32)
|
||||
ret &= ~PER_LINUX32;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -2020,6 +2020,9 @@ EXPORT_SYMBOL(_PAGE_CACHE);
|
||||
#ifdef CONFIG_SPARSEMEM_VMEMMAP
|
||||
unsigned long vmemmap_table[VMEMMAP_SIZE];
|
||||
|
||||
static long __meminitdata addr_start, addr_end;
|
||||
static int __meminitdata node_start;
|
||||
|
||||
int __meminit vmemmap_populate(struct page *start, unsigned long nr, int node)
|
||||
{
|
||||
unsigned long vstart = (unsigned long) start;
|
||||
@ -2050,15 +2053,30 @@ int __meminit vmemmap_populate(struct page *start, unsigned long nr, int node)
|
||||
|
||||
*vmem_pp = pte_base | __pa(block);
|
||||
|
||||
printk(KERN_INFO "[%p-%p] page_structs=%lu "
|
||||
"node=%d entry=%lu/%lu\n", start, block, nr,
|
||||
node,
|
||||
addr >> VMEMMAP_CHUNK_SHIFT,
|
||||
VMEMMAP_SIZE);
|
||||
/* check to see if we have contiguous blocks */
|
||||
if (addr_end != addr || node_start != node) {
|
||||
if (addr_start)
|
||||
printk(KERN_DEBUG " [%lx-%lx] on node %d\n",
|
||||
addr_start, addr_end-1, node_start);
|
||||
addr_start = addr;
|
||||
node_start = node;
|
||||
}
|
||||
addr_end = addr + VMEMMAP_CHUNK;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void __meminit vmemmap_populate_print_last(void)
|
||||
{
|
||||
if (addr_start) {
|
||||
printk(KERN_DEBUG " [%lx-%lx] on node %d\n",
|
||||
addr_start, addr_end-1, node_start);
|
||||
addr_start = 0;
|
||||
addr_end = 0;
|
||||
node_start = 0;
|
||||
}
|
||||
}
|
||||
#endif /* CONFIG_SPARSEMEM_VMEMMAP */
|
||||
|
||||
static void prot_init_common(unsigned long page_none,
|
||||
|
@ -1527,7 +1527,7 @@ config SECCOMP
|
||||
If unsure, say Y. Only embedded should say N here.
|
||||
|
||||
config CC_STACKPROTECTOR
|
||||
bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)"
|
||||
bool "Enable -fstack-protector buffer overflow detection"
|
||||
---help---
|
||||
This option turns on the -fstack-protector GCC feature. This
|
||||
feature puts, at the beginning of functions, a canary value on
|
||||
|
@ -33,6 +33,14 @@
|
||||
#define MCI_STATUS_PCC (1ULL<<57) /* processor context corrupt */
|
||||
#define MCI_STATUS_S (1ULL<<56) /* Signaled machine check */
|
||||
#define MCI_STATUS_AR (1ULL<<55) /* Action required */
|
||||
#define MCACOD 0xffff /* MCA Error Code */
|
||||
|
||||
/* Architecturally defined codes from SDM Vol. 3B Chapter 15 */
|
||||
#define MCACOD_SCRUB 0x00C0 /* 0xC0-0xCF Memory Scrubbing */
|
||||
#define MCACOD_SCRUBMSK 0xfff0
|
||||
#define MCACOD_L3WB 0x017A /* L3 Explicit Writeback */
|
||||
#define MCACOD_DATA 0x0134 /* Data Load */
|
||||
#define MCACOD_INSTR 0x0150 /* Instruction Fetch */
|
||||
|
||||
/* MCi_MISC register defines */
|
||||
#define MCI_MISC_ADDR_LSB(m) ((m) & 0x3f)
|
||||
|
@ -196,11 +196,16 @@ static inline u32 get_ibs_caps(void) { return 0; }
|
||||
extern void perf_events_lapic_init(void);
|
||||
|
||||
/*
|
||||
* Abuse bit 3 of the cpu eflags register to indicate proper PEBS IP fixups.
|
||||
* This flag is otherwise unused and ABI specified to be 0, so nobody should
|
||||
* care what we do with it.
|
||||
* Abuse bits {3,5} of the cpu eflags register. These flags are otherwise
|
||||
* unused and ABI specified to be 0, so nobody should care what we do with
|
||||
* them.
|
||||
*
|
||||
* EXACT - the IP points to the exact instruction that triggered the
|
||||
* event (HW bugs exempt).
|
||||
* VM - original X86_VM_MASK; see set_linear_ip().
|
||||
*/
|
||||
#define PERF_EFLAGS_EXACT (1UL << 3)
|
||||
#define PERF_EFLAGS_VM (1UL << 5)
|
||||
|
||||
struct pt_regs;
|
||||
extern unsigned long perf_instruction_pointer(struct pt_regs *regs);
|
||||
|
@ -25,10 +25,6 @@ unsigned long acpi_realmode_flags;
|
||||
static char temp_stack[4096];
|
||||
#endif
|
||||
|
||||
asmlinkage void acpi_enter_s3(void)
|
||||
{
|
||||
acpi_enter_sleep_state(3, wake_sleep_flags);
|
||||
}
|
||||
/**
|
||||
* acpi_suspend_lowlevel - save kernel state
|
||||
*
|
||||
|
@ -2,7 +2,6 @@
|
||||
* Variables and functions used by the code in sleep.c
|
||||
*/
|
||||
|
||||
#include <linux/linkage.h>
|
||||
#include <asm/realmode.h>
|
||||
|
||||
extern unsigned long saved_video_mode;
|
||||
@ -11,7 +10,6 @@ extern long saved_magic;
|
||||
extern int wakeup_pmode_return;
|
||||
|
||||
extern u8 wake_sleep_flags;
|
||||
extern asmlinkage void acpi_enter_s3(void);
|
||||
|
||||
extern unsigned long acpi_copy_wakeup_routine(unsigned long);
|
||||
extern void wakeup_long64(void);
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user