Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts: drivers/net/wireless/ath5k/base.c net/8021q/vlan_core.c
This commit is contained in:
commit
9eeda9abd1
739 changed files with 7279 additions and 6648 deletions
|
@ -21,11 +21,14 @@ This driver is known to work with the following cards:
|
||||||
* SA E200
|
* SA E200
|
||||||
* SA E200i
|
* SA E200i
|
||||||
* SA E500
|
* SA E500
|
||||||
|
* SA P700m
|
||||||
* SA P212
|
* SA P212
|
||||||
* SA P410
|
* SA P410
|
||||||
* SA P410i
|
* SA P410i
|
||||||
* SA P411
|
* SA P411
|
||||||
* SA P812
|
* SA P812
|
||||||
|
* SA P712m
|
||||||
|
* SA P711m
|
||||||
|
|
||||||
Detecting drive failures:
|
Detecting drive failures:
|
||||||
-------------------------
|
-------------------------
|
||||||
|
|
|
@ -213,4 +213,29 @@ TkRat (GUI)
|
||||||
|
|
||||||
Works. Use "Insert file..." or external editor.
|
Works. Use "Insert file..." or external editor.
|
||||||
|
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
Gmail (Web GUI)
|
||||||
|
|
||||||
|
If you just have to use Gmail to send patches, it CAN be made to work. It
|
||||||
|
requires a bit of external help, though.
|
||||||
|
|
||||||
|
The first problem is that Gmail converts tabs to spaces. This will
|
||||||
|
totally break your patches. To prevent this, you have to use a different
|
||||||
|
editor. There is a firefox extension called "ViewSourceWith"
|
||||||
|
(https://addons.mozilla.org/en-US/firefox/addon/394) which allows you to
|
||||||
|
edit any text box in the editor of your choice. Configure it to launch
|
||||||
|
your favorite editor. When you want to send a patch, use this technique.
|
||||||
|
Once you have crafted your messsage + patch, save and exit the editor,
|
||||||
|
which should reload the Gmail edit box. GMAIL WILL PRESERVE THE TABS.
|
||||||
|
Hoorah. Apparently you can cut-n-paste literal tabs, but Gmail will
|
||||||
|
convert those to spaces upon sending!
|
||||||
|
|
||||||
|
The second problem is that Gmail converts tabs to spaces on replies. If
|
||||||
|
you reply to a patch, don't expect to be able to apply it as a patch.
|
||||||
|
|
||||||
|
The last problem is that Gmail will base64-encode any message that has a
|
||||||
|
non-ASCII character. That includes things like European names. Be aware.
|
||||||
|
|
||||||
|
Gmail is not convenient for lkml patches, but CAN be made to work.
|
||||||
|
|
||||||
###
|
###
|
||||||
|
|
|
@ -8,6 +8,12 @@ if you want to format from within Linux.
|
||||||
|
|
||||||
VFAT MOUNT OPTIONS
|
VFAT MOUNT OPTIONS
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
uid=### -- Set the owner of all files on this filesystem.
|
||||||
|
The default is the uid of current process.
|
||||||
|
|
||||||
|
gid=### -- Set the group of all files on this filesystem.
|
||||||
|
The default is the gid of current process.
|
||||||
|
|
||||||
umask=### -- The permission mask (for files and directories, see umask(1)).
|
umask=### -- The permission mask (for files and directories, see umask(1)).
|
||||||
The default is the umask of current process.
|
The default is the umask of current process.
|
||||||
|
|
||||||
|
@ -36,7 +42,7 @@ codepage=### -- Sets the codepage number for converting to shortname
|
||||||
characters on FAT filesystem.
|
characters on FAT filesystem.
|
||||||
By default, FAT_DEFAULT_CODEPAGE setting is used.
|
By default, FAT_DEFAULT_CODEPAGE setting is used.
|
||||||
|
|
||||||
iocharset=name -- Character set to use for converting between the
|
iocharset=<name> -- Character set to use for converting between the
|
||||||
encoding is used for user visible filename and 16 bit
|
encoding is used for user visible filename and 16 bit
|
||||||
Unicode characters. Long filenames are stored on disk
|
Unicode characters. Long filenames are stored on disk
|
||||||
in Unicode format, but Unix for the most part doesn't
|
in Unicode format, but Unix for the most part doesn't
|
||||||
|
@ -86,6 +92,8 @@ check=s|r|n -- Case sensitivity checking setting.
|
||||||
r: relaxed, case insensitive
|
r: relaxed, case insensitive
|
||||||
n: normal, default setting, currently case insensitive
|
n: normal, default setting, currently case insensitive
|
||||||
|
|
||||||
|
nocase -- This was deprecated for vfat. Use shortname=win95 instead.
|
||||||
|
|
||||||
shortname=lower|win95|winnt|mixed
|
shortname=lower|win95|winnt|mixed
|
||||||
-- Shortname display/create setting.
|
-- Shortname display/create setting.
|
||||||
lower: convert to lowercase for display,
|
lower: convert to lowercase for display,
|
||||||
|
@ -99,11 +107,31 @@ shortname=lower|win95|winnt|mixed
|
||||||
tz=UTC -- Interpret timestamps as UTC rather than local time.
|
tz=UTC -- Interpret timestamps as UTC rather than local time.
|
||||||
This option disables the conversion of timestamps
|
This option disables the conversion of timestamps
|
||||||
between local time (as used by Windows on FAT) and UTC
|
between local time (as used by Windows on FAT) and UTC
|
||||||
(which Linux uses internally). This is particuluarly
|
(which Linux uses internally). This is particularly
|
||||||
useful when mounting devices (like digital cameras)
|
useful when mounting devices (like digital cameras)
|
||||||
that are set to UTC in order to avoid the pitfalls of
|
that are set to UTC in order to avoid the pitfalls of
|
||||||
local time.
|
local time.
|
||||||
|
|
||||||
|
showexec -- If set, the execute permission bits of the file will be
|
||||||
|
allowed only if the extension part of the name is .EXE,
|
||||||
|
.COM, or .BAT. Not set by default.
|
||||||
|
|
||||||
|
debug -- Can be set, but unused by the current implementation.
|
||||||
|
|
||||||
|
sys_immutable -- If set, ATTR_SYS attribute on FAT is handled as
|
||||||
|
IMMUTABLE flag on Linux. Not set by default.
|
||||||
|
|
||||||
|
flush -- If set, the filesystem will try to flush to disk more
|
||||||
|
early than normal. Not set by default.
|
||||||
|
|
||||||
|
rodir -- FAT has the ATTR_RO (read-only) attribute. But on Windows,
|
||||||
|
the ATTR_RO of the directory will be just ignored actually,
|
||||||
|
and is used by only applications as flag. E.g. it's setted
|
||||||
|
for the customized folder.
|
||||||
|
|
||||||
|
If you want to use ATTR_RO as read-only flag even for
|
||||||
|
the directory, set this option.
|
||||||
|
|
||||||
<bool>: 0,1,yes,no,true,false
|
<bool>: 0,1,yes,no,true,false
|
||||||
|
|
||||||
TODO
|
TODO
|
||||||
|
|
82
Documentation/io-mapping.txt
Normal file
82
Documentation/io-mapping.txt
Normal file
|
@ -0,0 +1,82 @@
|
||||||
|
The io_mapping functions in linux/io-mapping.h provide an abstraction for
|
||||||
|
efficiently mapping small regions of an I/O device to the CPU. The initial
|
||||||
|
usage is to support the large graphics aperture on 32-bit processors where
|
||||||
|
ioremap_wc cannot be used to statically map the entire aperture to the CPU
|
||||||
|
as it would consume too much of the kernel address space.
|
||||||
|
|
||||||
|
A mapping object is created during driver initialization using
|
||||||
|
|
||||||
|
struct io_mapping *io_mapping_create_wc(unsigned long base,
|
||||||
|
unsigned long size)
|
||||||
|
|
||||||
|
'base' is the bus address of the region to be made
|
||||||
|
mappable, while 'size' indicates how large a mapping region to
|
||||||
|
enable. Both are in bytes.
|
||||||
|
|
||||||
|
This _wc variant provides a mapping which may only be used
|
||||||
|
with the io_mapping_map_atomic_wc or io_mapping_map_wc.
|
||||||
|
|
||||||
|
With this mapping object, individual pages can be mapped either atomically
|
||||||
|
or not, depending on the necessary scheduling environment. Of course, atomic
|
||||||
|
maps are more efficient:
|
||||||
|
|
||||||
|
void *io_mapping_map_atomic_wc(struct io_mapping *mapping,
|
||||||
|
unsigned long offset)
|
||||||
|
|
||||||
|
'offset' is the offset within the defined mapping region.
|
||||||
|
Accessing addresses beyond the region specified in the
|
||||||
|
creation function yields undefined results. Using an offset
|
||||||
|
which is not page aligned yields an undefined result. The
|
||||||
|
return value points to a single page in CPU address space.
|
||||||
|
|
||||||
|
This _wc variant returns a write-combining map to the
|
||||||
|
page and may only be used with mappings created by
|
||||||
|
io_mapping_create_wc
|
||||||
|
|
||||||
|
Note that the task may not sleep while holding this page
|
||||||
|
mapped.
|
||||||
|
|
||||||
|
void io_mapping_unmap_atomic(void *vaddr)
|
||||||
|
|
||||||
|
'vaddr' must be the the value returned by the last
|
||||||
|
io_mapping_map_atomic_wc call. This unmaps the specified
|
||||||
|
page and allows the task to sleep once again.
|
||||||
|
|
||||||
|
If you need to sleep while holding the lock, you can use the non-atomic
|
||||||
|
variant, although they may be significantly slower.
|
||||||
|
|
||||||
|
void *io_mapping_map_wc(struct io_mapping *mapping,
|
||||||
|
unsigned long offset)
|
||||||
|
|
||||||
|
This works like io_mapping_map_atomic_wc except it allows
|
||||||
|
the task to sleep while holding the page mapped.
|
||||||
|
|
||||||
|
void io_mapping_unmap(void *vaddr)
|
||||||
|
|
||||||
|
This works like io_mapping_unmap_atomic, except it is used
|
||||||
|
for pages mapped with io_mapping_map_wc.
|
||||||
|
|
||||||
|
At driver close time, the io_mapping object must be freed:
|
||||||
|
|
||||||
|
void io_mapping_free(struct io_mapping *mapping)
|
||||||
|
|
||||||
|
Current Implementation:
|
||||||
|
|
||||||
|
The initial implementation of these functions uses existing mapping
|
||||||
|
mechanisms and so provides only an abstraction layer and no new
|
||||||
|
functionality.
|
||||||
|
|
||||||
|
On 64-bit processors, io_mapping_create_wc calls ioremap_wc for the whole
|
||||||
|
range, creating a permanent kernel-visible mapping to the resource. The
|
||||||
|
map_atomic and map functions add the requested offset to the base of the
|
||||||
|
virtual address returned by ioremap_wc.
|
||||||
|
|
||||||
|
On 32-bit processors with HIGHMEM defined, io_mapping_map_atomic_wc uses
|
||||||
|
kmap_atomic_pfn to map the specified page in an atomic fashion;
|
||||||
|
kmap_atomic_pfn isn't really supposed to be used with device pages, but it
|
||||||
|
provides an efficient mapping for this usage.
|
||||||
|
|
||||||
|
On 32-bit processors without HIGHMEM defined, io_mapping_map_atomic_wc and
|
||||||
|
io_mapping_map_wc both use ioremap_wc, a terribly inefficient function which
|
||||||
|
performs an IPI to inform all processors about the new mapping. This results
|
||||||
|
in a significant performance penalty.
|
|
@ -995,13 +995,15 @@ and is between 256 and 4096 characters. It is defined in the file
|
||||||
Format:
|
Format:
|
||||||
<cpu number>,...,<cpu number>
|
<cpu number>,...,<cpu number>
|
||||||
or
|
or
|
||||||
<cpu number>-<cpu number> (must be a positive range in ascending order)
|
<cpu number>-<cpu number>
|
||||||
|
(must be a positive range in ascending order)
|
||||||
or a mixture
|
or a mixture
|
||||||
<cpu number>,...,<cpu number>-<cpu number>
|
<cpu number>,...,<cpu number>-<cpu number>
|
||||||
|
|
||||||
This option can be used to specify one or more CPUs
|
This option can be used to specify one or more CPUs
|
||||||
to isolate from the general SMP balancing and scheduling
|
to isolate from the general SMP balancing and scheduling
|
||||||
algorithms. The only way to move a process onto or off
|
algorithms. You can move a process onto or off an
|
||||||
an "isolated" CPU is via the CPU affinity syscalls.
|
"isolated" CPU via the CPU affinity syscalls or cpuset.
|
||||||
<cpu number> begins at 0 and the maximum value is
|
<cpu number> begins at 0 and the maximum value is
|
||||||
"number of CPUs in system - 1".
|
"number of CPUs in system - 1".
|
||||||
|
|
||||||
|
@ -1470,8 +1472,6 @@ and is between 256 and 4096 characters. It is defined in the file
|
||||||
Valid arguments: on, off
|
Valid arguments: on, off
|
||||||
Default: on
|
Default: on
|
||||||
|
|
||||||
noirqbalance [X86-32,SMP,KNL] Disable kernel irq balancing
|
|
||||||
|
|
||||||
noirqdebug [X86-32] Disables the code which attempts to detect and
|
noirqdebug [X86-32] Disables the code which attempts to detect and
|
||||||
disable unhandled interrupt sources.
|
disable unhandled interrupt sources.
|
||||||
|
|
||||||
|
|
|
@ -47,9 +47,7 @@ Next, for companion chips:
|
||||||
`-- sh
|
`-- sh
|
||||||
`-- cchips
|
`-- cchips
|
||||||
`-- hd6446x
|
`-- hd6446x
|
||||||
|-- hd64461
|
`-- hd64461
|
||||||
| `-- cchip-specific files
|
|
||||||
`-- hd64465
|
|
||||||
`-- cchip-specific files
|
`-- cchip-specific files
|
||||||
|
|
||||||
... and so on. Headers for the companion chips are treated the same way as
|
... and so on. Headers for the companion chips are treated the same way as
|
||||||
|
|
|
@ -721,7 +721,7 @@ W: http://sourceforge.net/projects/acpi4asus
|
||||||
W: http://xf.iksaif.net/acpi4asus
|
W: http://xf.iksaif.net/acpi4asus
|
||||||
S: Maintained
|
S: Maintained
|
||||||
|
|
||||||
ASYNCHRONOUS TRANSFERS/TRANSFORMS API
|
ASYNCHRONOUS TRANSFERS/TRANSFORMS (IOAT) API
|
||||||
P: Dan Williams
|
P: Dan Williams
|
||||||
M: dan.j.williams@intel.com
|
M: dan.j.williams@intel.com
|
||||||
P: Maciej Sosnowski
|
P: Maciej Sosnowski
|
||||||
|
|
2
Makefile
2
Makefile
|
@ -1,7 +1,7 @@
|
||||||
VERSION = 2
|
VERSION = 2
|
||||||
PATCHLEVEL = 6
|
PATCHLEVEL = 6
|
||||||
SUBLEVEL = 28
|
SUBLEVEL = 28
|
||||||
EXTRAVERSION = -rc2
|
EXTRAVERSION = -rc3
|
||||||
NAME = Killer Bat of Doom
|
NAME = Killer Bat of Doom
|
||||||
|
|
||||||
# *DOCUMENTATION*
|
# *DOCUMENTATION*
|
||||||
|
|
|
@ -44,10 +44,10 @@
|
||||||
* The module space lives between the addresses given by TASK_SIZE
|
* The module space lives between the addresses given by TASK_SIZE
|
||||||
* and PAGE_OFFSET - it must be within 32MB of the kernel text.
|
* and PAGE_OFFSET - it must be within 32MB of the kernel text.
|
||||||
*/
|
*/
|
||||||
#define MODULE_END (PAGE_OFFSET)
|
#define MODULES_END (PAGE_OFFSET)
|
||||||
#define MODULE_START (MODULE_END - 16*1048576)
|
#define MODULES_VADDR (MODULES_END - 16*1048576)
|
||||||
|
|
||||||
#if TASK_SIZE > MODULE_START
|
#if TASK_SIZE > MODULES_VADDR
|
||||||
#error Top of user space clashes with start of module space
|
#error Top of user space clashes with start of module space
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -56,7 +56,7 @@
|
||||||
* Since we use sections to map it, this macro replaces the physical address
|
* Since we use sections to map it, this macro replaces the physical address
|
||||||
* with its virtual address while keeping offset from the base section.
|
* with its virtual address while keeping offset from the base section.
|
||||||
*/
|
*/
|
||||||
#define XIP_VIRT_ADDR(physaddr) (MODULE_START + ((physaddr) & 0x000fffff))
|
#define XIP_VIRT_ADDR(physaddr) (MODULES_VADDR + ((physaddr) & 0x000fffff))
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Allow 16MB-aligned ioremap pages
|
* Allow 16MB-aligned ioremap pages
|
||||||
|
@ -94,8 +94,8 @@
|
||||||
/*
|
/*
|
||||||
* The module can be at any place in ram in nommu mode.
|
* The module can be at any place in ram in nommu mode.
|
||||||
*/
|
*/
|
||||||
#define MODULE_END (END_MEM)
|
#define MODULES_END (END_MEM)
|
||||||
#define MODULE_START (PHYS_OFFSET)
|
#define MODULES_VADDR (PHYS_OFFSET)
|
||||||
|
|
||||||
#endif /* !CONFIG_MMU */
|
#endif /* !CONFIG_MMU */
|
||||||
|
|
||||||
|
|
|
@ -42,6 +42,10 @@
|
||||||
#define CR_U (1 << 22) /* Unaligned access operation */
|
#define CR_U (1 << 22) /* Unaligned access operation */
|
||||||
#define CR_XP (1 << 23) /* Extended page tables */
|
#define CR_XP (1 << 23) /* Extended page tables */
|
||||||
#define CR_VE (1 << 24) /* Vectored interrupts */
|
#define CR_VE (1 << 24) /* Vectored interrupts */
|
||||||
|
#define CR_EE (1 << 25) /* Exception (Big) Endian */
|
||||||
|
#define CR_TRE (1 << 28) /* TEX remap enable */
|
||||||
|
#define CR_AFE (1 << 29) /* Access flag enable */
|
||||||
|
#define CR_TE (1 << 30) /* Thumb exception enable */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This is used to ensure the compiler did actually allocate the register we
|
* This is used to ensure the compiler did actually allocate the register we
|
||||||
|
|
|
@ -21,12 +21,16 @@ int elf_check_arch(const struct elf32_hdr *x)
|
||||||
|
|
||||||
eflags = x->e_flags;
|
eflags = x->e_flags;
|
||||||
if ((eflags & EF_ARM_EABI_MASK) == EF_ARM_EABI_UNKNOWN) {
|
if ((eflags & EF_ARM_EABI_MASK) == EF_ARM_EABI_UNKNOWN) {
|
||||||
|
unsigned int flt_fmt;
|
||||||
|
|
||||||
/* APCS26 is only allowed if the CPU supports it */
|
/* APCS26 is only allowed if the CPU supports it */
|
||||||
if ((eflags & EF_ARM_APCS_26) && !(elf_hwcap & HWCAP_26BIT))
|
if ((eflags & EF_ARM_APCS_26) && !(elf_hwcap & HWCAP_26BIT))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
flt_fmt = eflags & (EF_ARM_VFP_FLOAT | EF_ARM_SOFT_FLOAT);
|
||||||
|
|
||||||
/* VFP requires the supporting code */
|
/* VFP requires the supporting code */
|
||||||
if ((eflags & EF_ARM_VFP_FLOAT) && !(elf_hwcap & HWCAP_VFP))
|
if (flt_fmt == EF_ARM_VFP_FLOAT && !(elf_hwcap & HWCAP_VFP))
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
|
|
|
@ -26,12 +26,12 @@
|
||||||
/*
|
/*
|
||||||
* The XIP kernel text is mapped in the module area for modules and
|
* The XIP kernel text is mapped in the module area for modules and
|
||||||
* some other stuff to work without any indirect relocations.
|
* some other stuff to work without any indirect relocations.
|
||||||
* MODULE_START is redefined here and not in asm/memory.h to avoid
|
* MODULES_VADDR is redefined here and not in asm/memory.h to avoid
|
||||||
* recompiling the whole kernel when CONFIG_XIP_KERNEL is turned on/off.
|
* recompiling the whole kernel when CONFIG_XIP_KERNEL is turned on/off.
|
||||||
*/
|
*/
|
||||||
extern void _etext;
|
extern void _etext;
|
||||||
#undef MODULE_START
|
#undef MODULES_VADDR
|
||||||
#define MODULE_START (((unsigned long)&_etext + ~PGDIR_MASK) & PGDIR_MASK)
|
#define MODULES_VADDR (((unsigned long)&_etext + ~PGDIR_MASK) & PGDIR_MASK)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_MMU
|
#ifdef CONFIG_MMU
|
||||||
|
@ -43,7 +43,7 @@ void *module_alloc(unsigned long size)
|
||||||
if (!size)
|
if (!size)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
area = __get_vm_area(size, VM_ALLOC, MODULE_START, MODULE_END);
|
area = __get_vm_area(size, VM_ALLOC, MODULES_VADDR, MODULES_END);
|
||||||
if (!area)
|
if (!area)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
|
|
|
@ -429,18 +429,16 @@ void __init gpmc_init(void)
|
||||||
gpmc_l3_clk = clk_get(NULL, ck);
|
gpmc_l3_clk = clk_get(NULL, ck);
|
||||||
if (IS_ERR(gpmc_l3_clk)) {
|
if (IS_ERR(gpmc_l3_clk)) {
|
||||||
printk(KERN_ERR "Could not get GPMC clock %s\n", ck);
|
printk(KERN_ERR "Could not get GPMC clock %s\n", ck);
|
||||||
return -ENODEV;
|
BUG();
|
||||||
}
|
}
|
||||||
|
|
||||||
gpmc_base = ioremap(l, SZ_4K);
|
gpmc_base = ioremap(l, SZ_4K);
|
||||||
if (!gpmc_base) {
|
if (!gpmc_base) {
|
||||||
clk_put(gpmc_l3_clk);
|
clk_put(gpmc_l3_clk);
|
||||||
printk(KERN_ERR "Could not get GPMC register memory\n");
|
printk(KERN_ERR "Could not get GPMC register memory\n");
|
||||||
return -ENOMEM;
|
BUG();
|
||||||
}
|
}
|
||||||
|
|
||||||
BUG_ON(IS_ERR(gpmc_l3_clk));
|
|
||||||
|
|
||||||
l = gpmc_read_reg(GPMC_REVISION);
|
l = gpmc_read_reg(GPMC_REVISION);
|
||||||
printk(KERN_INFO "GPMC revision %d.%d\n", (l >> 4) & 0x0f, l & 0x0f);
|
printk(KERN_INFO "GPMC revision %d.%d\n", (l >> 4) & 0x0f, l & 0x0f);
|
||||||
/* Set smart idle mode and automatic L3 clock gating */
|
/* Set smart idle mode and automatic L3 clock gating */
|
||||||
|
|
|
@ -98,7 +98,7 @@ static void xsc3_l2_inv_range(unsigned long start, unsigned long end)
|
||||||
/*
|
/*
|
||||||
* Clean and invalidate partial last cache line.
|
* Clean and invalidate partial last cache line.
|
||||||
*/
|
*/
|
||||||
if (end & (CACHE_LINE_SIZE - 1)) {
|
if (start < end && (end & (CACHE_LINE_SIZE - 1))) {
|
||||||
xsc3_l2_clean_pa(end & ~(CACHE_LINE_SIZE - 1));
|
xsc3_l2_clean_pa(end & ~(CACHE_LINE_SIZE - 1));
|
||||||
xsc3_l2_inv_pa(end & ~(CACHE_LINE_SIZE - 1));
|
xsc3_l2_inv_pa(end & ~(CACHE_LINE_SIZE - 1));
|
||||||
end &= ~(CACHE_LINE_SIZE - 1);
|
end &= ~(CACHE_LINE_SIZE - 1);
|
||||||
|
@ -107,7 +107,7 @@ static void xsc3_l2_inv_range(unsigned long start, unsigned long end)
|
||||||
/*
|
/*
|
||||||
* Invalidate all full cache lines between 'start' and 'end'.
|
* Invalidate all full cache lines between 'start' and 'end'.
|
||||||
*/
|
*/
|
||||||
while (start != end) {
|
while (start < end) {
|
||||||
xsc3_l2_inv_pa(start);
|
xsc3_l2_inv_pa(start);
|
||||||
start += CACHE_LINE_SIZE;
|
start += CACHE_LINE_SIZE;
|
||||||
}
|
}
|
||||||
|
|
|
@ -180,20 +180,20 @@ void adjust_cr(unsigned long mask, unsigned long set)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define PROT_PTE_DEVICE L_PTE_PRESENT|L_PTE_YOUNG|L_PTE_DIRTY|L_PTE_WRITE
|
#define PROT_PTE_DEVICE L_PTE_PRESENT|L_PTE_YOUNG|L_PTE_DIRTY|L_PTE_WRITE
|
||||||
#define PROT_SECT_DEVICE PMD_TYPE_SECT|PMD_SECT_XN|PMD_SECT_AP_WRITE
|
#define PROT_SECT_DEVICE PMD_TYPE_SECT|PMD_SECT_AP_WRITE
|
||||||
|
|
||||||
static struct mem_type mem_types[] = {
|
static struct mem_type mem_types[] = {
|
||||||
[MT_DEVICE] = { /* Strongly ordered / ARMv6 shared device */
|
[MT_DEVICE] = { /* Strongly ordered / ARMv6 shared device */
|
||||||
.prot_pte = PROT_PTE_DEVICE | L_PTE_MT_DEV_SHARED |
|
.prot_pte = PROT_PTE_DEVICE | L_PTE_MT_DEV_SHARED |
|
||||||
L_PTE_SHARED,
|
L_PTE_SHARED,
|
||||||
.prot_l1 = PMD_TYPE_TABLE,
|
.prot_l1 = PMD_TYPE_TABLE,
|
||||||
.prot_sect = PROT_SECT_DEVICE | PMD_SECT_UNCACHED,
|
.prot_sect = PROT_SECT_DEVICE | PMD_SECT_S,
|
||||||
.domain = DOMAIN_IO,
|
.domain = DOMAIN_IO,
|
||||||
},
|
},
|
||||||
[MT_DEVICE_NONSHARED] = { /* ARMv6 non-shared device */
|
[MT_DEVICE_NONSHARED] = { /* ARMv6 non-shared device */
|
||||||
.prot_pte = PROT_PTE_DEVICE | L_PTE_MT_DEV_NONSHARED,
|
.prot_pte = PROT_PTE_DEVICE | L_PTE_MT_DEV_NONSHARED,
|
||||||
.prot_l1 = PMD_TYPE_TABLE,
|
.prot_l1 = PMD_TYPE_TABLE,
|
||||||
.prot_sect = PROT_SECT_DEVICE | PMD_SECT_TEX(2),
|
.prot_sect = PROT_SECT_DEVICE,
|
||||||
.domain = DOMAIN_IO,
|
.domain = DOMAIN_IO,
|
||||||
},
|
},
|
||||||
[MT_DEVICE_CACHED] = { /* ioremap_cached */
|
[MT_DEVICE_CACHED] = { /* ioremap_cached */
|
||||||
|
@ -205,7 +205,7 @@ static struct mem_type mem_types[] = {
|
||||||
[MT_DEVICE_WC] = { /* ioremap_wc */
|
[MT_DEVICE_WC] = { /* ioremap_wc */
|
||||||
.prot_pte = PROT_PTE_DEVICE | L_PTE_MT_DEV_WC,
|
.prot_pte = PROT_PTE_DEVICE | L_PTE_MT_DEV_WC,
|
||||||
.prot_l1 = PMD_TYPE_TABLE,
|
.prot_l1 = PMD_TYPE_TABLE,
|
||||||
.prot_sect = PROT_SECT_DEVICE | PMD_SECT_BUFFERABLE,
|
.prot_sect = PROT_SECT_DEVICE,
|
||||||
.domain = DOMAIN_IO,
|
.domain = DOMAIN_IO,
|
||||||
},
|
},
|
||||||
[MT_CACHECLEAN] = {
|
[MT_CACHECLEAN] = {
|
||||||
|
@ -273,22 +273,23 @@ static void __init build_mem_type_table(void)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* On non-Xscale3 ARMv5-and-older systems, use CB=01
|
* Strip out features not present on earlier architectures.
|
||||||
* (Uncached/Buffered) for ioremap_wc() mappings. On XScale3
|
* Pre-ARMv5 CPUs don't have TEX bits. Pre-ARMv6 CPUs or those
|
||||||
* and ARMv6+, use TEXCB=00100 mappings (Inner/Outer Uncacheable
|
* without extended page tables don't have the 'Shared' bit.
|
||||||
* in xsc3 parlance, Uncached Normal in ARMv6 parlance).
|
|
||||||
*/
|
*/
|
||||||
if (cpu_is_xsc3() || cpu_arch >= CPU_ARCH_ARMv6) {
|
if (cpu_arch < CPU_ARCH_ARMv5)
|
||||||
mem_types[MT_DEVICE_WC].prot_sect |= PMD_SECT_TEX(1);
|
for (i = 0; i < ARRAY_SIZE(mem_types); i++)
|
||||||
mem_types[MT_DEVICE_WC].prot_sect &= ~PMD_SECT_BUFFERABLE;
|
mem_types[i].prot_sect &= ~PMD_SECT_TEX(7);
|
||||||
}
|
if ((cpu_arch < CPU_ARCH_ARMv6 || !(cr & CR_XP)) && !cpu_is_xsc3())
|
||||||
|
for (i = 0; i < ARRAY_SIZE(mem_types); i++)
|
||||||
|
mem_types[i].prot_sect &= ~PMD_SECT_S;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ARMv5 and lower, bit 4 must be set for page tables.
|
* ARMv5 and lower, bit 4 must be set for page tables (was: cache
|
||||||
* (was: cache "update-able on write" bit on ARM610)
|
* "update-able on write" bit on ARM610). However, Xscale and
|
||||||
* However, Xscale cores require this bit to be cleared.
|
* Xscale3 require this bit to be cleared.
|
||||||
*/
|
*/
|
||||||
if (cpu_is_xscale()) {
|
if (cpu_is_xscale() || cpu_is_xsc3()) {
|
||||||
for (i = 0; i < ARRAY_SIZE(mem_types); i++) {
|
for (i = 0; i < ARRAY_SIZE(mem_types); i++) {
|
||||||
mem_types[i].prot_sect &= ~PMD_BIT4;
|
mem_types[i].prot_sect &= ~PMD_BIT4;
|
||||||
mem_types[i].prot_l1 &= ~PMD_BIT4;
|
mem_types[i].prot_l1 &= ~PMD_BIT4;
|
||||||
|
@ -302,6 +303,64 @@ static void __init build_mem_type_table(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Mark the device areas according to the CPU/architecture.
|
||||||
|
*/
|
||||||
|
if (cpu_is_xsc3() || (cpu_arch >= CPU_ARCH_ARMv6 && (cr & CR_XP))) {
|
||||||
|
if (!cpu_is_xsc3()) {
|
||||||
|
/*
|
||||||
|
* Mark device regions on ARMv6+ as execute-never
|
||||||
|
* to prevent speculative instruction fetches.
|
||||||
|
*/
|
||||||
|
mem_types[MT_DEVICE].prot_sect |= PMD_SECT_XN;
|
||||||
|
mem_types[MT_DEVICE_NONSHARED].prot_sect |= PMD_SECT_XN;
|
||||||
|
mem_types[MT_DEVICE_CACHED].prot_sect |= PMD_SECT_XN;
|
||||||
|
mem_types[MT_DEVICE_WC].prot_sect |= PMD_SECT_XN;
|
||||||
|
}
|
||||||
|
if (cpu_arch >= CPU_ARCH_ARMv7 && (cr & CR_TRE)) {
|
||||||
|
/*
|
||||||
|
* For ARMv7 with TEX remapping,
|
||||||
|
* - shared device is SXCB=1100
|
||||||
|
* - nonshared device is SXCB=0100
|
||||||
|
* - write combine device mem is SXCB=0001
|
||||||
|
* (Uncached Normal memory)
|
||||||
|
*/
|
||||||
|
mem_types[MT_DEVICE].prot_sect |= PMD_SECT_TEX(1);
|
||||||
|
mem_types[MT_DEVICE_NONSHARED].prot_sect |= PMD_SECT_TEX(1);
|
||||||
|
mem_types[MT_DEVICE_WC].prot_sect |= PMD_SECT_BUFFERABLE;
|
||||||
|
} else if (cpu_is_xsc3()) {
|
||||||
|
/*
|
||||||
|
* For Xscale3,
|
||||||
|
* - shared device is TEXCB=00101
|
||||||
|
* - nonshared device is TEXCB=01000
|
||||||
|
* - write combine device mem is TEXCB=00100
|
||||||
|
* (Inner/Outer Uncacheable in xsc3 parlance)
|
||||||
|
*/
|
||||||
|
mem_types[MT_DEVICE].prot_sect |= PMD_SECT_TEX(1) | PMD_SECT_BUFFERED;
|
||||||
|
mem_types[MT_DEVICE_NONSHARED].prot_sect |= PMD_SECT_TEX(2);
|
||||||
|
mem_types[MT_DEVICE_WC].prot_sect |= PMD_SECT_TEX(1);
|
||||||
|
} else {
|
||||||
|
/*
|
||||||
|
* For ARMv6 and ARMv7 without TEX remapping,
|
||||||
|
* - shared device is TEXCB=00001
|
||||||
|
* - nonshared device is TEXCB=01000
|
||||||
|
* - write combine device mem is TEXCB=00100
|
||||||
|
* (Uncached Normal in ARMv6 parlance).
|
||||||
|
*/
|
||||||
|
mem_types[MT_DEVICE].prot_sect |= PMD_SECT_BUFFERED;
|
||||||
|
mem_types[MT_DEVICE_NONSHARED].prot_sect |= PMD_SECT_TEX(2);
|
||||||
|
mem_types[MT_DEVICE_WC].prot_sect |= PMD_SECT_TEX(1);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
/*
|
||||||
|
* On others, write combining is "Uncached/Buffered"
|
||||||
|
*/
|
||||||
|
mem_types[MT_DEVICE_WC].prot_sect |= PMD_SECT_BUFFERABLE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Now deal with the memory-type mappings
|
||||||
|
*/
|
||||||
cp = &cache_policies[cachepolicy];
|
cp = &cache_policies[cachepolicy];
|
||||||
vecs_pgprot = kern_pgprot = user_pgprot = cp->pte;
|
vecs_pgprot = kern_pgprot = user_pgprot = cp->pte;
|
||||||
|
|
||||||
|
@ -317,12 +376,8 @@ static void __init build_mem_type_table(void)
|
||||||
* Enable CPU-specific coherency if supported.
|
* Enable CPU-specific coherency if supported.
|
||||||
* (Only available on XSC3 at the moment.)
|
* (Only available on XSC3 at the moment.)
|
||||||
*/
|
*/
|
||||||
if (arch_is_coherent()) {
|
if (arch_is_coherent() && cpu_is_xsc3())
|
||||||
if (cpu_is_xsc3()) {
|
mem_types[MT_MEMORY].prot_sect |= PMD_SECT_S;
|
||||||
mem_types[MT_MEMORY].prot_sect |= PMD_SECT_S;
|
|
||||||
mem_types[MT_MEMORY].prot_pte |= L_PTE_SHARED;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ARMv6 and above have extended page tables.
|
* ARMv6 and above have extended page tables.
|
||||||
|
@ -336,11 +391,6 @@ static void __init build_mem_type_table(void)
|
||||||
mem_types[MT_MINICLEAN].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
|
mem_types[MT_MINICLEAN].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
|
||||||
mem_types[MT_CACHECLEAN].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
|
mem_types[MT_CACHECLEAN].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
|
||||||
|
|
||||||
/*
|
|
||||||
* Mark the device area as "shared device"
|
|
||||||
*/
|
|
||||||
mem_types[MT_DEVICE].prot_sect |= PMD_SECT_BUFFERED;
|
|
||||||
|
|
||||||
#ifdef CONFIG_SMP
|
#ifdef CONFIG_SMP
|
||||||
/*
|
/*
|
||||||
* Mark memory with the "shared" attribute for SMP systems
|
* Mark memory with the "shared" attribute for SMP systems
|
||||||
|
@ -360,9 +410,6 @@ static void __init build_mem_type_table(void)
|
||||||
mem_types[MT_LOW_VECTORS].prot_pte |= vecs_pgprot;
|
mem_types[MT_LOW_VECTORS].prot_pte |= vecs_pgprot;
|
||||||
mem_types[MT_HIGH_VECTORS].prot_pte |= vecs_pgprot;
|
mem_types[MT_HIGH_VECTORS].prot_pte |= vecs_pgprot;
|
||||||
|
|
||||||
if (cpu_arch < CPU_ARCH_ARMv5)
|
|
||||||
mem_types[MT_MINICLEAN].prot_sect &= ~PMD_SECT_TEX(1);
|
|
||||||
|
|
||||||
pgprot_user = __pgprot(L_PTE_PRESENT | L_PTE_YOUNG | user_pgprot);
|
pgprot_user = __pgprot(L_PTE_PRESENT | L_PTE_YOUNG | user_pgprot);
|
||||||
pgprot_kernel = __pgprot(L_PTE_PRESENT | L_PTE_YOUNG |
|
pgprot_kernel = __pgprot(L_PTE_PRESENT | L_PTE_YOUNG |
|
||||||
L_PTE_DIRTY | L_PTE_WRITE |
|
L_PTE_DIRTY | L_PTE_WRITE |
|
||||||
|
@ -654,7 +701,7 @@ static inline void prepare_page_table(struct meminfo *mi)
|
||||||
/*
|
/*
|
||||||
* Clear out all the mappings below the kernel image.
|
* Clear out all the mappings below the kernel image.
|
||||||
*/
|
*/
|
||||||
for (addr = 0; addr < MODULE_START; addr += PGDIR_SIZE)
|
for (addr = 0; addr < MODULES_VADDR; addr += PGDIR_SIZE)
|
||||||
pmd_clear(pmd_off_k(addr));
|
pmd_clear(pmd_off_k(addr));
|
||||||
|
|
||||||
#ifdef CONFIG_XIP_KERNEL
|
#ifdef CONFIG_XIP_KERNEL
|
||||||
|
@ -766,7 +813,7 @@ static void __init devicemaps_init(struct machine_desc *mdesc)
|
||||||
*/
|
*/
|
||||||
#ifdef CONFIG_XIP_KERNEL
|
#ifdef CONFIG_XIP_KERNEL
|
||||||
map.pfn = __phys_to_pfn(CONFIG_XIP_PHYS_ADDR & SECTION_MASK);
|
map.pfn = __phys_to_pfn(CONFIG_XIP_PHYS_ADDR & SECTION_MASK);
|
||||||
map.virtual = MODULE_START;
|
map.virtual = MODULES_VADDR;
|
||||||
map.length = ((unsigned long)&_etext - map.virtual + ~SECTION_MASK) & SECTION_MASK;
|
map.length = ((unsigned long)&_etext - map.virtual + ~SECTION_MASK) & SECTION_MASK;
|
||||||
map.type = MT_ROM;
|
map.type = MT_ROM;
|
||||||
create_mapping(&map);
|
create_mapping(&map);
|
||||||
|
|
|
@ -115,7 +115,7 @@ ENTRY(cpu_v7_set_pte_ext)
|
||||||
orr r3, r3, r2
|
orr r3, r3, r2
|
||||||
orr r3, r3, #PTE_EXT_AP0 | 2
|
orr r3, r3, #PTE_EXT_AP0 | 2
|
||||||
|
|
||||||
tst r2, #1 << 4
|
tst r1, #1 << 4
|
||||||
orrne r3, r3, #PTE_EXT_TEX(1)
|
orrne r3, r3, #PTE_EXT_TEX(1)
|
||||||
|
|
||||||
tst r1, #L_PTE_WRITE
|
tst r1, #L_PTE_WRITE
|
||||||
|
@ -192,11 +192,11 @@ __v7_setup:
|
||||||
mov pc, lr @ return to head.S:__ret
|
mov pc, lr @ return to head.S:__ret
|
||||||
ENDPROC(__v7_setup)
|
ENDPROC(__v7_setup)
|
||||||
|
|
||||||
/*
|
/* AT
|
||||||
* V X F I D LR
|
* TFR EV X F I D LR
|
||||||
* .... ...E PUI. .T.T 4RVI ZFRS BLDP WCAM
|
* .EEE ..EE PUI. .T.T 4RVI ZFRS BLDP WCAM
|
||||||
* rrrr rrrx xxx0 0101 xxxx xxxx x111 xxxx < forced
|
* rxxx rrxx xxx0 0101 xxxx xxxx x111 xxxx < forced
|
||||||
* 0 110 0011 1.00 .111 1101 < we want
|
* 1 0 110 0011 1.00 .111 1101 < we want
|
||||||
*/
|
*/
|
||||||
.type v7_crval, #object
|
.type v7_crval, #object
|
||||||
v7_crval:
|
v7_crval:
|
||||||
|
|
|
@ -428,23 +428,23 @@ static int clk_debugfs_register_one(struct clk *c)
|
||||||
if (c->id != 0)
|
if (c->id != 0)
|
||||||
sprintf(p, ":%d", c->id);
|
sprintf(p, ":%d", c->id);
|
||||||
d = debugfs_create_dir(s, pa ? pa->dent : clk_debugfs_root);
|
d = debugfs_create_dir(s, pa ? pa->dent : clk_debugfs_root);
|
||||||
if (IS_ERR(d))
|
if (!d)
|
||||||
return PTR_ERR(d);
|
return -ENOMEM;
|
||||||
c->dent = d;
|
c->dent = d;
|
||||||
|
|
||||||
d = debugfs_create_u8("usecount", S_IRUGO, c->dent, (u8 *)&c->usecount);
|
d = debugfs_create_u8("usecount", S_IRUGO, c->dent, (u8 *)&c->usecount);
|
||||||
if (IS_ERR(d)) {
|
if (!d) {
|
||||||
err = PTR_ERR(d);
|
err = -ENOMEM;
|
||||||
goto err_out;
|
goto err_out;
|
||||||
}
|
}
|
||||||
d = debugfs_create_u32("rate", S_IRUGO, c->dent, (u32 *)&c->rate);
|
d = debugfs_create_u32("rate", S_IRUGO, c->dent, (u32 *)&c->rate);
|
||||||
if (IS_ERR(d)) {
|
if (!d) {
|
||||||
err = PTR_ERR(d);
|
err = -ENOMEM;
|
||||||
goto err_out;
|
goto err_out;
|
||||||
}
|
}
|
||||||
d = debugfs_create_x32("flags", S_IRUGO, c->dent, (u32 *)&c->flags);
|
d = debugfs_create_x32("flags", S_IRUGO, c->dent, (u32 *)&c->flags);
|
||||||
if (IS_ERR(d)) {
|
if (!d) {
|
||||||
err = PTR_ERR(d);
|
err = -ENOMEM;
|
||||||
goto err_out;
|
goto err_out;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -483,8 +483,8 @@ static int __init clk_debugfs_init(void)
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
d = debugfs_create_dir("clock", NULL);
|
d = debugfs_create_dir("clock", NULL);
|
||||||
if (IS_ERR(d))
|
if (!d)
|
||||||
return PTR_ERR(d);
|
return -ENOMEM;
|
||||||
clk_debugfs_root = d;
|
clk_debugfs_root = d;
|
||||||
|
|
||||||
list_for_each_entry(c, &clocks, node) {
|
list_for_each_entry(c, &clocks, node) {
|
||||||
|
|
|
@ -65,7 +65,8 @@
|
||||||
#include <mach/omap34xx.h>
|
#include <mach/omap34xx.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define INTCPS_SIR_IRQ_OFFSET 0x0040 /* Active interrupt number */
|
#define INTCPS_SIR_IRQ_OFFSET 0x0040 /* Active interrupt offset */
|
||||||
|
#define ACTIVEIRQ_MASK 0x7f /* Active interrupt bits */
|
||||||
|
|
||||||
.macro disable_fiq
|
.macro disable_fiq
|
||||||
.endm
|
.endm
|
||||||
|
@ -88,6 +89,7 @@
|
||||||
cmp \irqnr, #0x0
|
cmp \irqnr, #0x0
|
||||||
2222:
|
2222:
|
||||||
ldrne \irqnr, [\base, #INTCPS_SIR_IRQ_OFFSET]
|
ldrne \irqnr, [\base, #INTCPS_SIR_IRQ_OFFSET]
|
||||||
|
and \irqnr, \irqnr, #ACTIVEIRQ_MASK /* Clear spurious bits */
|
||||||
|
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
|
|
|
@ -372,7 +372,7 @@
|
||||||
|
|
||||||
/* External TWL4030 gpio interrupts are optional */
|
/* External TWL4030 gpio interrupts are optional */
|
||||||
#define TWL4030_GPIO_IRQ_BASE TWL4030_PWR_IRQ_END
|
#define TWL4030_GPIO_IRQ_BASE TWL4030_PWR_IRQ_END
|
||||||
#ifdef CONFIG_TWL4030_GPIO
|
#ifdef CONFIG_GPIO_TWL4030
|
||||||
#define TWL4030_GPIO_NR_IRQS 18
|
#define TWL4030_GPIO_NR_IRQS 18
|
||||||
#else
|
#else
|
||||||
#define TWL4030_GPIO_NR_IRQS 0
|
#define TWL4030_GPIO_NR_IRQS 0
|
||||||
|
|
|
@ -23,12 +23,17 @@ mach-$(CONFIG_ETRAXFS) := fs
|
||||||
|
|
||||||
ifneq ($(arch-y),)
|
ifneq ($(arch-y),)
|
||||||
SARCH := arch-$(arch-y)
|
SARCH := arch-$(arch-y)
|
||||||
|
inc := -Iarch/cris/include/$(SARCH)
|
||||||
|
inc += -Iarch/cris/include/$(SARCH)/arch
|
||||||
else
|
else
|
||||||
SARCH :=
|
SARCH :=
|
||||||
|
inc :=
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifneq ($(mach-y),)
|
ifneq ($(mach-y),)
|
||||||
MACH := mach-$(mach-y)
|
MACH := mach-$(mach-y)
|
||||||
|
inc += -Iarch/cris/include/$(SARCH)/$(MACH)/
|
||||||
|
inc += -Iarch/cris/include/$(SARCH)/$(MACH)/mach
|
||||||
else
|
else
|
||||||
MACH :=
|
MACH :=
|
||||||
endif
|
endif
|
||||||
|
@ -39,95 +44,57 @@ OBJCOPYFLAGS := -O binary -R .note -R .comment -S
|
||||||
|
|
||||||
CPPFLAGS_vmlinux.lds = -DDRAM_VIRTUAL_BASE=0x$(CONFIG_ETRAX_DRAM_VIRTUAL_BASE)
|
CPPFLAGS_vmlinux.lds = -DDRAM_VIRTUAL_BASE=0x$(CONFIG_ETRAX_DRAM_VIRTUAL_BASE)
|
||||||
|
|
||||||
KBUILD_AFLAGS += -mlinux -march=$(arch-y) -Iinclude/asm/arch/mach -Iinclude/asm/arch
|
KBUILD_AFLAGS += -mlinux -march=$(arch-y) $(inc)
|
||||||
|
KBUILD_CFLAGS += -mlinux -march=$(arch-y) -pipe $(inc)
|
||||||
KBUILD_CFLAGS += -mlinux -march=$(arch-y) -pipe -Iinclude/asm/arch/mach -Iinclude/asm/arch
|
KBUILD_CPPFLAGS += $(inc)
|
||||||
|
|
||||||
ifdef CONFIG_FRAME_POINTER
|
ifdef CONFIG_FRAME_POINTER
|
||||||
KBUILD_CFLAGS := $(subst -fomit-frame-pointer,,$(KBUILD_CFLAGS)) -g
|
KBUILD_CFLAGS := $(subst -fomit-frame-pointer,,$(KBUILD_CFLAGS)) -g
|
||||||
KBUILD_CFLAGS += -fno-omit-frame-pointer
|
KBUILD_CFLAGS += -fno-omit-frame-pointer
|
||||||
endif
|
endif
|
||||||
|
|
||||||
head-y := arch/$(ARCH)/$(SARCH)/kernel/head.o
|
head-y := arch/cris/$(SARCH)/kernel/head.o
|
||||||
|
|
||||||
LIBGCC = $(shell $(CC) $(KBUILD_CFLAGS) -print-file-name=libgcc.a)
|
LIBGCC = $(shell $(CC) $(KBUILD_CFLAGS) -print-file-name=libgcc.a)
|
||||||
|
|
||||||
core-y += arch/$(ARCH)/kernel/ arch/$(ARCH)/mm/
|
core-y += arch/cris/kernel/ arch/cris/mm/
|
||||||
core-y += arch/$(ARCH)/$(SARCH)/kernel/ arch/$(ARCH)/$(SARCH)/mm/
|
core-y += arch/cris/$(SARCH)/kernel/ arch/cris/$(SARCH)/mm/
|
||||||
ifdef CONFIG_ETRAX_ARCH_V32
|
ifdef CONFIG_ETRAX_ARCH_V32
|
||||||
core-y += arch/$(ARCH)/$(SARCH)/$(MACH)/
|
core-y += arch/cris/$(SARCH)/$(MACH)/
|
||||||
endif
|
endif
|
||||||
drivers-y += arch/$(ARCH)/$(SARCH)/drivers/
|
drivers-y += arch/cris/$(SARCH)/drivers/
|
||||||
libs-y += arch/$(ARCH)/$(SARCH)/lib/ $(LIBGCC)
|
libs-y += arch/cris/$(SARCH)/lib/ $(LIBGCC)
|
||||||
|
|
||||||
# cris source path
|
# cris source path
|
||||||
SRC_ARCH = $(srctree)/arch/$(ARCH)
|
SRC_ARCH = $(srctree)/arch/cris
|
||||||
# cris object files path
|
# cris object files path
|
||||||
OBJ_ARCH = $(objtree)/arch/$(ARCH)
|
OBJ_ARCH = $(objtree)/arch/cris
|
||||||
|
|
||||||
boot := arch/$(ARCH)/boot
|
boot := arch/cris/$(SARCH)/boot
|
||||||
MACHINE := arch/$(ARCH)/$(SARCH)
|
MACHINE := arch/cris/$(SARCH)
|
||||||
|
|
||||||
all: zImage
|
all: zImage
|
||||||
|
|
||||||
zImage Image: vmlinux
|
zImage Image: vmlinux
|
||||||
$(Q)$(MAKE) $(build)=$(boot) MACHINE=$(MACHINE) $(boot)/$@
|
$(Q)$(MAKE) $(build)=$(boot) MACHINE=$(MACHINE) $(boot)/$@
|
||||||
|
|
||||||
archprepare: $(SRC_ARCH)/.links $(srctree)/include/asm-$(ARCH)/.arch FORCE
|
archprepare:
|
||||||
|
|
||||||
# Create some links to make all tools happy
|
|
||||||
$(SRC_ARCH)/.links:
|
|
||||||
@rm -rf $(SRC_ARCH)/drivers
|
|
||||||
@ln -sfn $(SARCH)/drivers $(SRC_ARCH)/drivers
|
|
||||||
@rm -rf $(SRC_ARCH)/boot
|
|
||||||
@ln -sfn $(SARCH)/boot $(SRC_ARCH)/boot
|
|
||||||
@rm -rf $(SRC_ARCH)/lib
|
|
||||||
@ln -sfn $(SARCH)/lib $(SRC_ARCH)/lib
|
|
||||||
@rm -f $(SRC_ARCH)/arch/mach
|
|
||||||
@rm -rf $(SRC_ARCH)/arch
|
|
||||||
@ln -sfn $(SARCH) $(SRC_ARCH)/arch
|
|
||||||
ifdef CONFIG_ETRAX_ARCH_V32
|
|
||||||
@ln -sfn ../$(SARCH)/$(MACH) $(SRC_ARCH)/arch/mach
|
|
||||||
endif
|
|
||||||
@rm -rf $(SRC_ARCH)/kernel/vmlinux.lds.S
|
|
||||||
@ln -sfn ../$(SARCH)/vmlinux.lds.S $(SRC_ARCH)/kernel/vmlinux.lds.S
|
|
||||||
@rm -rf $(SRC_ARCH)/kernel/asm-offsets.c
|
|
||||||
@ln -sfn ../$(SARCH)/kernel/asm-offsets.c $(SRC_ARCH)/kernel/asm-offsets.c
|
|
||||||
@touch $@
|
|
||||||
|
|
||||||
# Create link to sub arch includes
|
|
||||||
$(srctree)/include/asm-$(ARCH)/.arch: $(wildcard include/config/arch/*.h)
|
|
||||||
@echo ' SYMLINK include/asm-$(ARCH)/arch -> include/asm-$(ARCH)/$(SARCH)'
|
|
||||||
@rm -f $(srctree)/include/asm-$(ARCH)/arch/mach
|
|
||||||
@rm -f $(srctree)/include/asm-$(ARCH)/arch
|
|
||||||
@ln -sf $(SARCH) $(srctree)/include/asm-$(ARCH)/arch
|
|
||||||
ifdef CONFIG_ETRAX_ARCH_V32
|
|
||||||
@ln -sf $(MACH) $(srctree)/include/asm-$(ARCH)/arch/mach
|
|
||||||
endif
|
|
||||||
@touch $@
|
|
||||||
|
|
||||||
archclean:
|
archclean:
|
||||||
$(Q)if [ -e arch/$(ARCH)/boot ]; then \
|
$(Q)if [ -e arch/cris/$(SARCH)/boot ]; then \
|
||||||
$(MAKE) $(clean)=arch/$(ARCH)/boot; \
|
$(MAKE) $(clean)=arch/cris/$(SARCH)/boot; \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
CLEAN_FILES += \
|
CLEAN_FILES += \
|
||||||
$(MACHINE)/boot/zImage \
|
$(MACHINE)/boot/zImage \
|
||||||
$(MACHINE)/boot/compressed/decompress.bin \
|
$(MACHINE)/boot/compressed/decompress.bin \
|
||||||
$(MACHINE)/boot/compressed/piggy.gz \
|
$(MACHINE)/boot/compressed/piggy.gz \
|
||||||
$(MACHINE)/boot/rescue/rescue.bin \
|
$(MACHINE)/boot/rescue/rescue.bin
|
||||||
$(SRC_ARCH)/.links \
|
|
||||||
$(srctree)/include/asm-$(ARCH)/.arch
|
|
||||||
|
|
||||||
MRPROPER_FILES += \
|
|
||||||
$(SRC_ARCH)/drivers \
|
# MRPROPER_FILES +=
|
||||||
$(SRC_ARCH)/boot \
|
|
||||||
$(SRC_ARCH)/lib \
|
|
||||||
$(SRC_ARCH)/arch \
|
|
||||||
$(SRC_ARCH)/kernel/vmlinux.lds.S \
|
|
||||||
$(SRC_ARCH)/kernel/asm-offsets.c
|
|
||||||
|
|
||||||
define archhelp
|
define archhelp
|
||||||
echo '* zImage - Compressed kernel image (arch/$(ARCH)/boot/zImage)'
|
echo '* zImage - Compressed kernel image (arch/cris/boot/zImage)'
|
||||||
echo '* Image - Uncompressed kernel image (arch/$(ARCH)/boot/Image)'
|
echo '* Image - Uncompressed kernel image (arch/cris/boot/Image)'
|
||||||
endef
|
endef
|
||||||
|
|
2
arch/cris/arch-v10/boot/.gitignore
vendored
Normal file
2
arch/cris/arch-v10/boot/.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Image
|
||||||
|
zImage
|
|
@ -9,7 +9,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define ASSEMBLER_MACROS_ONLY
|
#define ASSEMBLER_MACROS_ONLY
|
||||||
#include <asm/arch/sv_addr_ag.h>
|
#include <arch/sv_addr_ag.h>
|
||||||
|
|
||||||
#define RAM_INIT_MAGIC 0x56902387
|
#define RAM_INIT_MAGIC 0x56902387
|
||||||
#define COMMAND_LINE_MAGIC 0x87109563
|
#define COMMAND_LINE_MAGIC 0x87109563
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
|
|
||||||
|
|
||||||
#include <linux/types.h>
|
#include <linux/types.h>
|
||||||
#include <asm/arch/svinto.h>
|
#include <arch/svinto.h>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* gzip declarations
|
* gzip declarations
|
||||||
|
|
|
@ -65,7 +65,7 @@
|
||||||
#ifdef CONFIG_ETRAX_AXISFLASHMAP
|
#ifdef CONFIG_ETRAX_AXISFLASHMAP
|
||||||
|
|
||||||
#define ASSEMBLER_MACROS_ONLY
|
#define ASSEMBLER_MACROS_ONLY
|
||||||
#include <asm/arch/sv_addr_ag.h>
|
#include <arch/sv_addr_ag.h>
|
||||||
|
|
||||||
;; The partitiontable is looked for at the first sector after the boot
|
;; The partitiontable is looked for at the first sector after the boot
|
||||||
;; sector. Sector size is 65536 bytes in all flashes we use.
|
;; sector. Sector size is 65536 bytes in all flashes we use.
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define ASSEMBLER_MACROS_ONLY
|
#define ASSEMBLER_MACROS_ONLY
|
||||||
#include <asm/arch/sv_addr_ag.h>
|
#include <arch/sv_addr_ag.h>
|
||||||
|
|
||||||
#define CODE_START 0x40004000
|
#define CODE_START 0x40004000
|
||||||
#define CODE_LENGTH 784
|
#define CODE_LENGTH 784
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define ASSEMBLER_MACROS_ONLY
|
#define ASSEMBLER_MACROS_ONLY
|
||||||
#include <asm/arch/sv_addr_ag.h>
|
#include <arch/sv_addr_ag.h>
|
||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
|
|
||||||
#include <asm/axisflashmap.h>
|
#include <asm/axisflashmap.h>
|
||||||
#include <asm/mmu.h>
|
#include <asm/mmu.h>
|
||||||
#include <asm/arch/sv_addr_ag.h>
|
#include <arch/sv_addr_ag.h>
|
||||||
|
|
||||||
#ifdef CONFIG_CRIS_LOW_MAP
|
#ifdef CONFIG_CRIS_LOW_MAP
|
||||||
#define FLASH_UNCACHED_ADDR KSEG_8
|
#define FLASH_UNCACHED_ADDR KSEG_8
|
||||||
|
|
|
@ -24,10 +24,10 @@
|
||||||
|
|
||||||
#include <asm/uaccess.h>
|
#include <asm/uaccess.h>
|
||||||
#include <asm/system.h>
|
#include <asm/system.h>
|
||||||
#include <asm/arch/svinto.h>
|
#include <arch/svinto.h>
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <asm/rtc.h>
|
#include <asm/rtc.h>
|
||||||
#include <asm/arch/io_interface_mux.h>
|
#include <arch/io_interface_mux.h>
|
||||||
|
|
||||||
#include "i2c.h"
|
#include "i2c.h"
|
||||||
|
|
||||||
|
|
|
@ -23,11 +23,11 @@
|
||||||
#include <linux/interrupt.h>
|
#include <linux/interrupt.h>
|
||||||
|
|
||||||
#include <asm/etraxgpio.h>
|
#include <asm/etraxgpio.h>
|
||||||
#include <asm/arch/svinto.h>
|
#include <arch/svinto.h>
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <asm/system.h>
|
#include <asm/system.h>
|
||||||
#include <asm/irq.h>
|
#include <asm/irq.h>
|
||||||
#include <asm/arch/io_interface_mux.h>
|
#include <arch/io_interface_mux.h>
|
||||||
|
|
||||||
#define GPIO_MAJOR 120 /* experimental MAJOR number */
|
#define GPIO_MAJOR 120 /* experimental MAJOR number */
|
||||||
|
|
||||||
|
|
|
@ -25,10 +25,10 @@
|
||||||
#include <asm/etraxi2c.h>
|
#include <asm/etraxi2c.h>
|
||||||
|
|
||||||
#include <asm/system.h>
|
#include <asm/system.h>
|
||||||
#include <asm/arch/svinto.h>
|
#include <arch/svinto.h>
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <asm/delay.h>
|
#include <asm/delay.h>
|
||||||
#include <asm/arch/io_interface_mux.h>
|
#include <arch/io_interface_mux.h>
|
||||||
|
|
||||||
#include "i2c.h"
|
#include "i2c.h"
|
||||||
|
|
||||||
|
|
|
@ -26,11 +26,11 @@
|
||||||
#include <asm/irq.h>
|
#include <asm/irq.h>
|
||||||
#include <asm/dma.h>
|
#include <asm/dma.h>
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <asm/arch/svinto.h>
|
#include <arch/svinto.h>
|
||||||
#include <asm/uaccess.h>
|
#include <asm/uaccess.h>
|
||||||
#include <asm/system.h>
|
#include <asm/system.h>
|
||||||
#include <asm/sync_serial.h>
|
#include <asm/sync_serial.h>
|
||||||
#include <asm/arch/io_interface_mux.h>
|
#include <arch/io_interface_mux.h>
|
||||||
|
|
||||||
/* The receiver is a bit tricky beacuse of the continuous stream of data.*/
|
/* The receiver is a bit tricky beacuse of the continuous stream of data.*/
|
||||||
/* */
|
/* */
|
||||||
|
|
|
@ -1,47 +0,0 @@
|
||||||
#include <linux/sched.h>
|
|
||||||
#include <asm/thread_info.h>
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Generate definitions needed by assembly language modules.
|
|
||||||
* This code generates raw asm output which is post-processed to extract
|
|
||||||
* and format the required data.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define DEFINE(sym, val) \
|
|
||||||
asm volatile("\n->" #sym " %0 " #val : : "i" (val))
|
|
||||||
|
|
||||||
#define BLANK() asm volatile("\n->" : : )
|
|
||||||
|
|
||||||
int main(void)
|
|
||||||
{
|
|
||||||
#define ENTRY(entry) DEFINE(PT_ ## entry, offsetof(struct pt_regs, entry))
|
|
||||||
ENTRY(orig_r10);
|
|
||||||
ENTRY(r13);
|
|
||||||
ENTRY(r12);
|
|
||||||
ENTRY(r11);
|
|
||||||
ENTRY(r10);
|
|
||||||
ENTRY(r9);
|
|
||||||
ENTRY(mof);
|
|
||||||
ENTRY(dccr);
|
|
||||||
ENTRY(srp);
|
|
||||||
BLANK();
|
|
||||||
#undef ENTRY
|
|
||||||
#define ENTRY(entry) DEFINE(TI_ ## entry, offsetof(struct thread_info, entry))
|
|
||||||
ENTRY(task);
|
|
||||||
ENTRY(flags);
|
|
||||||
ENTRY(preempt_count);
|
|
||||||
BLANK();
|
|
||||||
#undef ENTRY
|
|
||||||
#define ENTRY(entry) DEFINE(THREAD_ ## entry, offsetof(struct thread_struct, entry))
|
|
||||||
ENTRY(ksp);
|
|
||||||
ENTRY(usp);
|
|
||||||
ENTRY(dccr);
|
|
||||||
BLANK();
|
|
||||||
#undef ENTRY
|
|
||||||
#define ENTRY(entry) DEFINE(TASK_ ## entry, offsetof(struct task_struct, entry))
|
|
||||||
ENTRY(pid);
|
|
||||||
BLANK();
|
|
||||||
DEFINE(LCLONE_VM, CLONE_VM);
|
|
||||||
DEFINE(LCLONE_UNTRACED, CLONE_UNTRACED);
|
|
||||||
return 0;
|
|
||||||
}
|
|
|
@ -1,6 +1,6 @@
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <asm/arch/svinto.h>
|
#include <arch/svinto.h>
|
||||||
|
|
||||||
/* Export shadow registers for the CPU I/O pins */
|
/* Export shadow registers for the CPU I/O pins */
|
||||||
EXPORT_SYMBOL(genconfig_shadow);
|
EXPORT_SYMBOL(genconfig_shadow);
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
#include <linux/tty.h>
|
#include <linux/tty.h>
|
||||||
#include <asm/system.h>
|
#include <asm/system.h>
|
||||||
#include <asm/arch/svinto.h>
|
#include <arch/svinto.h>
|
||||||
#include <asm/io.h> /* Get SIMCOUT. */
|
#include <asm/io.h> /* Get SIMCOUT. */
|
||||||
|
|
||||||
extern void reset_watchdog(void);
|
extern void reset_watchdog(void);
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
#include <linux/errno.h>
|
#include <linux/errno.h>
|
||||||
|
|
||||||
#include <asm/dma.h>
|
#include <asm/dma.h>
|
||||||
#include <asm/arch/svinto.h>
|
#include <arch/svinto.h>
|
||||||
|
|
||||||
/* Macro to access ETRAX 100 registers */
|
/* Macro to access ETRAX 100 registers */
|
||||||
#define SETS(var, reg, field, val) var = (var & ~IO_MASK_(reg##_, field##_)) | \
|
#define SETS(var, reg, field, val) var = (var & ~IO_MASK_(reg##_, field##_)) | \
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
#include <linux/linkage.h>
|
#include <linux/linkage.h>
|
||||||
#include <linux/sys.h>
|
#include <linux/sys.h>
|
||||||
#include <asm/unistd.h>
|
#include <asm/unistd.h>
|
||||||
#include <asm/arch/sv_addr_ag.h>
|
#include <arch/sv_addr_ag.h>
|
||||||
#include <asm/errno.h>
|
#include <asm/errno.h>
|
||||||
#include <asm/thread_info.h>
|
#include <asm/thread_info.h>
|
||||||
#include <asm/asm-offsets.h>
|
#include <asm/asm-offsets.h>
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
#include <asm/rtc.h>
|
#include <asm/rtc.h>
|
||||||
|
|
||||||
|
|
||||||
#include <asm/arch/svinto.h>
|
#include <arch/svinto.h>
|
||||||
#include <asm/fasttimer.h>
|
#include <asm/fasttimer.h>
|
||||||
#include <linux/proc_fs.h>
|
#include <linux/proc_fs.h>
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
#define ASSEMBLER_MACROS_ONLY
|
#define ASSEMBLER_MACROS_ONLY
|
||||||
/* The IO_* macros use the ## token concatenation operator, so
|
/* The IO_* macros use the ## token concatenation operator, so
|
||||||
-traditional must not be used when assembling this file. */
|
-traditional must not be used when assembling this file. */
|
||||||
#include <asm/arch/sv_addr_ag.h>
|
#include <arch/sv_addr_ag.h>
|
||||||
|
|
||||||
#define CRAMFS_MAGIC 0x28cd3d45
|
#define CRAMFS_MAGIC 0x28cd3d45
|
||||||
#define RAM_INIT_MAGIC 0x56902387
|
#define RAM_INIT_MAGIC 0x56902387
|
||||||
|
|
|
@ -11,9 +11,9 @@
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
|
|
||||||
#include <asm/arch/svinto.h>
|
#include <arch/svinto.h>
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <asm/arch/io_interface_mux.h>
|
#include <arch/io_interface_mux.h>
|
||||||
|
|
||||||
|
|
||||||
#define DBG(s)
|
#define DBG(s)
|
||||||
|
|
|
@ -176,7 +176,7 @@
|
||||||
#include <asm/setup.h>
|
#include <asm/setup.h>
|
||||||
#include <asm/ptrace.h>
|
#include <asm/ptrace.h>
|
||||||
|
|
||||||
#include <asm/arch/svinto.h>
|
#include <arch/svinto.h>
|
||||||
#include <asm/irq.h>
|
#include <asm/irq.h>
|
||||||
|
|
||||||
static int kgdb_started = 0;
|
static int kgdb_started = 0;
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
#include <linux/err.h>
|
#include <linux/err.h>
|
||||||
#include <linux/fs.h>
|
#include <linux/fs.h>
|
||||||
#include <linux/slab.h>
|
#include <linux/slab.h>
|
||||||
#include <asm/arch/svinto.h>
|
#include <arch/svinto.h>
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
|
|
||||||
#ifdef CONFIG_ETRAX_GPIO
|
#ifdef CONFIG_ETRAX_GPIO
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
#include <linux/sched.h>
|
#include <linux/sched.h>
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
#include <linux/mm.h>
|
#include <linux/mm.h>
|
||||||
#include <asm/arch/svinto.h>
|
#include <arch/svinto.h>
|
||||||
#include <asm/types.h>
|
#include <asm/types.h>
|
||||||
#include <asm/signal.h>
|
#include <asm/signal.h>
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
|
|
||||||
#include <linux/ptrace.h>
|
#include <linux/ptrace.h>
|
||||||
#include <asm/uaccess.h>
|
#include <asm/uaccess.h>
|
||||||
#include <asm/arch/sv_addr_ag.h>
|
#include <arch/sv_addr_ag.h>
|
||||||
|
|
||||||
void
|
void
|
||||||
show_registers(struct pt_regs *regs)
|
show_registers(struct pt_regs *regs)
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
#include <linux/mm.h>
|
#include <linux/mm.h>
|
||||||
#include <asm/uaccess.h>
|
#include <asm/uaccess.h>
|
||||||
#include <asm/pgtable.h>
|
#include <asm/pgtable.h>
|
||||||
#include <asm/arch/svinto.h>
|
#include <arch/svinto.h>
|
||||||
#include <asm/mmu_context.h>
|
#include <asm/mmu_context.h>
|
||||||
|
|
||||||
/* debug of low-level TLB reload */
|
/* debug of low-level TLB reload */
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
#include <asm/mmu.h>
|
#include <asm/mmu.h>
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <asm/mmu_context.h>
|
#include <asm/mmu_context.h>
|
||||||
#include <asm/arch/svinto.h>
|
#include <arch/svinto.h>
|
||||||
|
|
||||||
extern void tlb_init(void);
|
extern void tlb_init(void);
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
|
|
||||||
#include <asm/tlb.h>
|
#include <asm/tlb.h>
|
||||||
#include <asm/mmu_context.h>
|
#include <asm/mmu_context.h>
|
||||||
#include <asm/arch/svinto.h>
|
#include <arch/svinto.h>
|
||||||
|
|
||||||
#define D(x)
|
#define D(x)
|
||||||
|
|
||||||
|
|
|
@ -1,118 +0,0 @@
|
||||||
/* ld script to make the Linux/CRIS kernel
|
|
||||||
* Authors: Bjorn Wesen (bjornw@axis.com)
|
|
||||||
*
|
|
||||||
* It is VERY DANGEROUS to fiddle around with the symbols in this
|
|
||||||
* script. It is for example quite vital that all generated sections
|
|
||||||
* that are used are actually named here, otherwise the linker will
|
|
||||||
* put them at the end, where the init stuff is which is FREED after
|
|
||||||
* the kernel has booted.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <asm-generic/vmlinux.lds.h>
|
|
||||||
#include <asm/page.h>
|
|
||||||
|
|
||||||
jiffies = jiffies_64;
|
|
||||||
SECTIONS
|
|
||||||
{
|
|
||||||
. = DRAM_VIRTUAL_BASE;
|
|
||||||
dram_start = .;
|
|
||||||
ibr_start = .;
|
|
||||||
. = . + 0x4000; /* see head.S and pages reserved at the start */
|
|
||||||
|
|
||||||
_text = .; /* Text and read-only data */
|
|
||||||
text_start = .; /* lots of aliases */
|
|
||||||
_stext = .;
|
|
||||||
__stext = .;
|
|
||||||
.text : {
|
|
||||||
TEXT_TEXT
|
|
||||||
SCHED_TEXT
|
|
||||||
LOCK_TEXT
|
|
||||||
*(.fixup)
|
|
||||||
*(.text.__*)
|
|
||||||
}
|
|
||||||
|
|
||||||
_etext = . ; /* End of text section */
|
|
||||||
__etext = .;
|
|
||||||
|
|
||||||
. = ALIGN(4); /* Exception table */
|
|
||||||
__start___ex_table = .;
|
|
||||||
__ex_table : { *(__ex_table) }
|
|
||||||
__stop___ex_table = .;
|
|
||||||
|
|
||||||
RODATA
|
|
||||||
|
|
||||||
. = ALIGN (4);
|
|
||||||
___data_start = . ;
|
|
||||||
__Sdata = . ;
|
|
||||||
.data : { /* Data */
|
|
||||||
DATA_DATA
|
|
||||||
}
|
|
||||||
__edata = . ; /* End of data section */
|
|
||||||
_edata = . ;
|
|
||||||
|
|
||||||
. = ALIGN(PAGE_SIZE); /* init_task and stack, must be aligned */
|
|
||||||
.data.init_task : { *(.data.init_task) }
|
|
||||||
|
|
||||||
. = ALIGN(PAGE_SIZE); /* Init code and data */
|
|
||||||
__init_begin = .;
|
|
||||||
.init.text : {
|
|
||||||
_sinittext = .;
|
|
||||||
INIT_TEXT
|
|
||||||
_einittext = .;
|
|
||||||
}
|
|
||||||
.init.data : { INIT_DATA }
|
|
||||||
. = ALIGN(16);
|
|
||||||
__setup_start = .;
|
|
||||||
.init.setup : { *(.init.setup) }
|
|
||||||
__setup_end = .;
|
|
||||||
.initcall.init : {
|
|
||||||
__initcall_start = .;
|
|
||||||
INITCALLS
|
|
||||||
__initcall_end = .;
|
|
||||||
}
|
|
||||||
|
|
||||||
.con_initcall.init : {
|
|
||||||
__con_initcall_start = .;
|
|
||||||
*(.con_initcall.init)
|
|
||||||
__con_initcall_end = .;
|
|
||||||
}
|
|
||||||
SECURITY_INIT
|
|
||||||
|
|
||||||
#ifdef CONFIG_BLK_DEV_INITRD
|
|
||||||
.init.ramfs : {
|
|
||||||
__initramfs_start = .;
|
|
||||||
*(.init.ramfs)
|
|
||||||
__initramfs_end = .;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
__vmlinux_end = .; /* last address of the physical file */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* We fill to the next page, so we can discard all init
|
|
||||||
* pages without needing to consider what payload might be
|
|
||||||
* appended to the kernel image.
|
|
||||||
*/
|
|
||||||
. = ALIGN(PAGE_SIZE);
|
|
||||||
|
|
||||||
__init_end = .;
|
|
||||||
|
|
||||||
__data_end = . ; /* Move to _edata ? */
|
|
||||||
__bss_start = .; /* BSS */
|
|
||||||
.bss : {
|
|
||||||
*(COMMON)
|
|
||||||
*(.bss)
|
|
||||||
}
|
|
||||||
|
|
||||||
. = ALIGN (0x20);
|
|
||||||
_end = .;
|
|
||||||
__end = .;
|
|
||||||
|
|
||||||
/* Sections to be discarded */
|
|
||||||
/DISCARD/ : {
|
|
||||||
EXIT_TEXT
|
|
||||||
EXIT_DATA
|
|
||||||
*(.exitcall.exit)
|
|
||||||
}
|
|
||||||
|
|
||||||
dram_end = dram_start + CONFIG_ETRAX_DRAM_SIZE*1024*1024;
|
|
||||||
}
|
|
|
@ -7,7 +7,7 @@
|
||||||
|
|
||||||
#define ASSEMBLER_MACROS_ONLY
|
#define ASSEMBLER_MACROS_ONLY
|
||||||
#include <hwregs/asm/reg_map_asm.h>
|
#include <hwregs/asm/reg_map_asm.h>
|
||||||
#include <asm/arch/mach/startup.inc>
|
#include <mach/startup.inc>
|
||||||
|
|
||||||
#define RAM_INIT_MAGIC 0x56902387
|
#define RAM_INIT_MAGIC 0x56902387
|
||||||
#define COMMAND_LINE_MAGIC 0x87109563
|
#define COMMAND_LINE_MAGIC 0x87109563
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
.globl input_data
|
.globl input_data
|
||||||
|
|
||||||
.text
|
.text
|
||||||
start:
|
_start:
|
||||||
di
|
di
|
||||||
|
|
||||||
;; Start clocks for used blocks.
|
;; Start clocks for used blocks.
|
||||||
|
@ -28,7 +28,13 @@ start:
|
||||||
beq dram_init_finished
|
beq dram_init_finished
|
||||||
nop
|
nop
|
||||||
|
|
||||||
#include "../../mach/dram_init.S"
|
#if defined CONFIG_ETRAXFS
|
||||||
|
#include "../../mach-fs/dram_init.S"
|
||||||
|
#elif defined CONFIG_CRIS_MACH_ARTPEC3
|
||||||
|
#include "../../mach-a3/dram_init.S"
|
||||||
|
#else
|
||||||
|
#error Only ETRAXFS and ARTPEC-3 supported!
|
||||||
|
#endif
|
||||||
|
|
||||||
dram_init_finished:
|
dram_init_finished:
|
||||||
|
|
||||||
|
@ -130,4 +136,10 @@ _cmd_line_addr:
|
||||||
_boot_source:
|
_boot_source:
|
||||||
.dword 0
|
.dword 0
|
||||||
|
|
||||||
#include "../../mach/hw_settings.S"
|
#if defined CONFIG_ETRAXFS
|
||||||
|
#include "../../mach-fs/hw_settings.S"
|
||||||
|
#elif defined CONFIG_CRIS_MACH_ARTPEC3
|
||||||
|
#include "../../mach-a3/hw_settings.S"
|
||||||
|
#else
|
||||||
|
#error Only ETRAXFS and ARTPEC-3 supported!
|
||||||
|
#endif
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <asm/system.h>
|
#include <asm/system.h>
|
||||||
#include <asm/irq.h>
|
#include <asm/irq.h>
|
||||||
#include <asm/arch/mach/pinmux.h>
|
#include <mach/pinmux.h>
|
||||||
|
|
||||||
#ifdef CONFIG_ETRAX_VIRTUAL_GPIO
|
#ifdef CONFIG_ETRAX_VIRTUAL_GPIO
|
||||||
#include "../i2c.h"
|
#include "../i2c.h"
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
#include <linux/mtd/mtd.h>
|
#include <linux/mtd/mtd.h>
|
||||||
#include <linux/mtd/nand.h>
|
#include <linux/mtd/nand.h>
|
||||||
#include <linux/mtd/partitions.h>
|
#include <linux/mtd/partitions.h>
|
||||||
#include <asm/arch/memmap.h>
|
#include <arch/memmap.h>
|
||||||
#include <hwregs/reg_map.h>
|
#include <hwregs/reg_map.h>
|
||||||
#include <hwregs/reg_rdwr.h>
|
#include <hwregs/reg_rdwr.h>
|
||||||
#include <hwregs/pio_defs.h>
|
#include <hwregs/pio_defs.h>
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
#include <linux/mtd/mtd.h>
|
#include <linux/mtd/mtd.h>
|
||||||
#include <linux/mtd/nand.h>
|
#include <linux/mtd/nand.h>
|
||||||
#include <linux/mtd/partitions.h>
|
#include <linux/mtd/partitions.h>
|
||||||
#include <asm/arch/memmap.h>
|
#include <arch/memmap.h>
|
||||||
#include <hwregs/reg_map.h>
|
#include <hwregs/reg_map.h>
|
||||||
#include <hwregs/reg_rdwr.h>
|
#include <hwregs/reg_rdwr.h>
|
||||||
#include <hwregs/gio_defs.h>
|
#include <hwregs/gio_defs.h>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#include <linux/pci.h>
|
#include <linux/pci.h>
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
#include <asm/arch/hwregs/intr_vect.h>
|
#include <arch/hwregs/intr_vect.h>
|
||||||
|
|
||||||
void __devinit pcibios_fixup_bus(struct pci_bus *b)
|
void __devinit pcibios_fixup_bus(struct pci_bus *b)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <asm/arch/cache.h>
|
#include <arch/cache.h>
|
||||||
#include <asm/arch/hwregs/dma.h>
|
#include <arch/hwregs/dma.h>
|
||||||
|
|
||||||
/* This file is used to workaround a cache bug, Guinness TR 106. */
|
/* This file is used to workaround a cache bug, Guinness TR 106. */
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <linux/irq.h>
|
#include <linux/irq.h>
|
||||||
#include <asm/arch/dma.h>
|
#include <arch/dma.h>
|
||||||
#include <asm/arch/intmem.h>
|
#include <arch/intmem.h>
|
||||||
#include <asm/arch/mach/pinmux.h>
|
#include <mach/pinmux.h>
|
||||||
#include <asm/arch/io.h>
|
#include <arch/io.h>
|
||||||
|
|
||||||
/* Functions for allocating DMA channels */
|
/* Functions for allocating DMA channels */
|
||||||
EXPORT_SYMBOL(crisv32_request_dma);
|
EXPORT_SYMBOL(crisv32_request_dma);
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
#include <hwregs/reg_map.h>
|
#include <hwregs/reg_map.h>
|
||||||
#include <hwregs/ser_defs.h>
|
#include <hwregs/ser_defs.h>
|
||||||
#include <hwregs/dma_defs.h>
|
#include <hwregs/dma_defs.h>
|
||||||
#include <asm/arch/mach/pinmux.h>
|
#include <mach/pinmux.h>
|
||||||
|
|
||||||
struct dbg_port
|
struct dbg_port
|
||||||
{
|
{
|
||||||
|
|
|
@ -24,8 +24,8 @@
|
||||||
#include <asm/thread_info.h>
|
#include <asm/thread_info.h>
|
||||||
#include <asm/asm-offsets.h>
|
#include <asm/asm-offsets.h>
|
||||||
|
|
||||||
#include <asm/arch/hwregs/asm/reg_map_asm.h>
|
#include <hwregs/asm/reg_map_asm.h>
|
||||||
#include <asm/arch/hwregs/asm/intr_vect_defs_asm.h>
|
#include <hwregs/asm/intr_vect_defs_asm.h>
|
||||||
|
|
||||||
;; Exported functions.
|
;; Exported functions.
|
||||||
.globl system_call
|
.globl system_call
|
||||||
|
|
|
@ -10,12 +10,13 @@
|
||||||
* The macros found in mmu_defs_asm.h uses the ## concatenation operator, so
|
* The macros found in mmu_defs_asm.h uses the ## concatenation operator, so
|
||||||
* -traditional must not be used when assembling this file.
|
* -traditional must not be used when assembling this file.
|
||||||
*/
|
*/
|
||||||
|
#include <linux/autoconf.h>
|
||||||
|
#include <arch/memmap.h>
|
||||||
#include <hwregs/reg_rdwr.h>
|
#include <hwregs/reg_rdwr.h>
|
||||||
#include <asm/arch/memmap.h>
|
|
||||||
#include <hwregs/intr_vect.h>
|
#include <hwregs/intr_vect.h>
|
||||||
#include <hwregs/asm/mmu_defs_asm.h>
|
#include <hwregs/asm/mmu_defs_asm.h>
|
||||||
#include <hwregs/asm/reg_map_asm.h>
|
#include <hwregs/asm/reg_map_asm.h>
|
||||||
#include <asm/arch/mach/startup.inc>
|
#include <mach/startup.inc>
|
||||||
|
|
||||||
#define CRAMFS_MAGIC 0x28cd3d45
|
#define CRAMFS_MAGIC 0x28cd3d45
|
||||||
#define JHEAD_MAGIC 0x1FF528A6
|
#define JHEAD_MAGIC 0x1FF528A6
|
||||||
|
@ -217,7 +218,14 @@ _inflash:
|
||||||
beq _dram_initialized
|
beq _dram_initialized
|
||||||
nop
|
nop
|
||||||
|
|
||||||
#include "../mach/dram_init.S"
|
#if defined CONFIG_ETRAXFS
|
||||||
|
#include "../mach-fs/dram_init.S"
|
||||||
|
#elif defined CONFIG_CRIS_MACH_ARTPEC3
|
||||||
|
#include "../mach-a3/dram_init.S"
|
||||||
|
#else
|
||||||
|
#error Only ETRAXFS and ARTPEC-3 supported!
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
_dram_initialized:
|
_dram_initialized:
|
||||||
;; Copy the text and data section to DRAM. This depends on that the
|
;; Copy the text and data section to DRAM. This depends on that the
|
||||||
|
@ -472,4 +480,10 @@ swapper_pg_dir = 0xc0002000
|
||||||
|
|
||||||
.section ".init.data", "aw"
|
.section ".init.data", "aw"
|
||||||
|
|
||||||
#include "../mach/hw_settings.S"
|
#if defined CONFIG_ETRAXFS
|
||||||
|
#include "../mach-fs/hw_settings.S"
|
||||||
|
#elif defined CONFIG_CRIS_MACH_ARTPEC3
|
||||||
|
#include "../mach-a3/hw_settings.S"
|
||||||
|
#else
|
||||||
|
#error Only ETRAXFS and ARTPEC-3 supported!
|
||||||
|
#endif
|
||||||
|
|
|
@ -174,10 +174,10 @@
|
||||||
#include <asm/ptrace.h>
|
#include <asm/ptrace.h>
|
||||||
|
|
||||||
#include <asm/irq.h>
|
#include <asm/irq.h>
|
||||||
#include <asm/arch/hwregs/reg_map.h>
|
#include <arch/hwregs/reg_map.h>
|
||||||
#include <asm/arch/hwregs/reg_rdwr.h>
|
#include <arch/hwregs/reg_rdwr.h>
|
||||||
#include <asm/arch/hwregs/intr_vect_defs.h>
|
#include <arch/hwregs/intr_vect_defs.h>
|
||||||
#include <asm/arch/hwregs/ser_defs.h>
|
#include <arch/hwregs/ser_defs.h>
|
||||||
|
|
||||||
/* From entry.S. */
|
/* From entry.S. */
|
||||||
extern void gdb_handle_exception(void);
|
extern void gdb_handle_exception(void);
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
* port exceptions for kernel debugging purposes.
|
* port exceptions for kernel debugging purposes.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <asm/arch/hwregs/intr_vect.h>
|
#include <arch/hwregs/intr_vect.h>
|
||||||
|
|
||||||
;; Exported functions.
|
;; Exported functions.
|
||||||
.globl kgdb_handle_exception
|
.globl kgdb_handle_exception
|
||||||
|
|
|
@ -11,10 +11,10 @@
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
#include <linux/string.h>
|
#include <linux/string.h>
|
||||||
#include <linux/spinlock.h>
|
#include <linux/spinlock.h>
|
||||||
#include <asm/arch/hwregs/reg_map.h>
|
#include <arch/hwregs/reg_map.h>
|
||||||
#include <asm/arch/hwregs/reg_rdwr.h>
|
#include <arch/hwregs/reg_rdwr.h>
|
||||||
#include <asm/arch/pinmux.h>
|
#include <arch/pinmux.h>
|
||||||
#include <asm/arch/hwregs/pinmux_defs.h>
|
#include <arch/hwregs/pinmux_defs.h>
|
||||||
|
|
||||||
#undef DEBUG
|
#undef DEBUG
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
#include <asm/pgtable.h>
|
#include <asm/pgtable.h>
|
||||||
#include <asm/system.h>
|
#include <asm/system.h>
|
||||||
#include <asm/processor.h>
|
#include <asm/processor.h>
|
||||||
#include <asm/arch/hwregs/supp_reg.h>
|
#include <arch/hwregs/supp_reg.h>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Determines which bits in CCS the user has access to.
|
* Determines which bits in CCS the user has access to.
|
||||||
|
|
|
@ -18,8 +18,8 @@
|
||||||
#include <asm/processor.h>
|
#include <asm/processor.h>
|
||||||
#include <asm/ucontext.h>
|
#include <asm/ucontext.h>
|
||||||
#include <asm/uaccess.h>
|
#include <asm/uaccess.h>
|
||||||
#include <asm/arch/ptrace.h>
|
#include <arch/ptrace.h>
|
||||||
#include <asm/arch/hwregs/cpu_vect.h>
|
#include <arch/hwregs/cpu_vect.h>
|
||||||
|
|
||||||
extern unsigned long cris_signal_return_page;
|
extern unsigned long cris_signal_return_page;
|
||||||
|
|
||||||
|
|
|
@ -22,11 +22,11 @@
|
||||||
##
|
##
|
||||||
##=============================================================================
|
##=============================================================================
|
||||||
|
|
||||||
#include <asm/arch/hwregs/asm/reg_map_asm.h>
|
#include <arch/hwregs/asm/reg_map_asm.h>
|
||||||
#include <asm/arch/hwregs/asm/gio_defs_asm.h>
|
#include <arch/hwregs/asm/gio_defs_asm.h>
|
||||||
#include <asm/arch/hwregs/asm/pinmux_defs_asm.h>
|
#include <arch/hwregs/asm/pinmux_defs_asm.h>
|
||||||
#include <asm/arch/hwregs/asm/bif_core_defs_asm.h>
|
#include <arch/hwregs/asm/bif_core_defs_asm.h>
|
||||||
#include <asm/arch/hwregs/asm/config_defs_asm.h>
|
#include <arch/hwregs/asm/config_defs_asm.h>
|
||||||
|
|
||||||
;; There are 8-bit NAND flashes and 16-bit NAND flashes.
|
;; There are 8-bit NAND flashes and 16-bit NAND flashes.
|
||||||
;; We need to treat them slightly different.
|
;; We need to treat them slightly different.
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
#include <linux/spinlock.h>
|
#include <linux/spinlock.h>
|
||||||
#include <asm/arch/mach/dma.h>
|
#include <mach/dma.h>
|
||||||
#include <hwregs/reg_map.h>
|
#include <hwregs/reg_map.h>
|
||||||
#include <hwregs/reg_rdwr.h>
|
#include <hwregs/reg_rdwr.h>
|
||||||
#include <hwregs/marb_defs.h>
|
#include <hwregs/marb_defs.h>
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <asm/arch/mach/pinmux.h>
|
#include <mach/pinmux.h>
|
||||||
#include <hwregs/gio_defs.h>
|
#include <hwregs/gio_defs.h>
|
||||||
|
|
||||||
struct crisv32_ioport crisv32_ioports[] = {
|
struct crisv32_ioport crisv32_ioports[] = {
|
||||||
|
|
|
@ -2,9 +2,9 @@
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <linux/cpufreq.h>
|
#include <linux/cpufreq.h>
|
||||||
#include <hwregs/reg_map.h>
|
#include <hwregs/reg_map.h>
|
||||||
#include <asm/arch/hwregs/reg_rdwr.h>
|
#include <arch/hwregs/reg_rdwr.h>
|
||||||
#include <asm/arch/hwregs/config_defs.h>
|
#include <arch/hwregs/config_defs.h>
|
||||||
#include <asm/arch/hwregs/bif_core_defs.h>
|
#include <arch/hwregs/bif_core_defs.h>
|
||||||
|
|
||||||
static int
|
static int
|
||||||
cris_sdram_freq_notifier(struct notifier_block *nb, unsigned long val,
|
cris_sdram_freq_notifier(struct notifier_block *nb, unsigned long val,
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
#include <hwregs/strmux_defs.h>
|
#include <hwregs/strmux_defs.h>
|
||||||
#include <linux/errno.h>
|
#include <linux/errno.h>
|
||||||
#include <asm/system.h>
|
#include <asm/system.h>
|
||||||
#include <asm/arch/mach/arbiter.h>
|
#include <mach/arbiter.h>
|
||||||
|
|
||||||
static char used_dma_channels[MAX_DMA_CHANNELS];
|
static char used_dma_channels[MAX_DMA_CHANNELS];
|
||||||
static const char *used_dma_channels_users[MAX_DMA_CHANNELS];
|
static const char *used_dma_channels_users[MAX_DMA_CHANNELS];
|
||||||
|
|
|
@ -12,8 +12,8 @@
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <asm/arch/pinmux.h>
|
#include <mach/pinmux.h>
|
||||||
#include <asm/arch/hwregs/gio_defs.h>
|
#include <hwregs/gio_defs.h>
|
||||||
|
|
||||||
#ifndef DEBUG
|
#ifndef DEBUG
|
||||||
#define DEBUG(x)
|
#define DEBUG(x)
|
||||||
|
|
|
@ -5,8 +5,8 @@
|
||||||
|
|
||||||
#include "vcs_hook.h"
|
#include "vcs_hook.h"
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <asm/arch-v32/hwregs/reg_map.h>
|
#include <arch-v32/hwregs/reg_map.h>
|
||||||
#include <asm/arch-v32/hwregs/intr_vect_defs.h>
|
#include <arch-v32/hwregs/intr_vect_defs.h>
|
||||||
|
|
||||||
#define HOOK_TRIG_ADDR 0xb7000000 /* hook cvlog model reg address */
|
#define HOOK_TRIG_ADDR 0xb7000000 /* hook cvlog model reg address */
|
||||||
#define HOOK_MEM_BASE_ADDR 0xa0000000 /* csp4 (shared mem) base addr */
|
#define HOOK_MEM_BASE_ADDR 0xa0000000 /* csp4 (shared mem) base addr */
|
||||||
|
|
|
@ -16,8 +16,8 @@
|
||||||
#include <asm/mmu.h>
|
#include <asm/mmu.h>
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <asm/mmu_context.h>
|
#include <asm/mmu_context.h>
|
||||||
#include <asm/arch/hwregs/asm/mmu_defs_asm.h>
|
#include <arch/hwregs/asm/mmu_defs_asm.h>
|
||||||
#include <asm/arch/hwregs/supp_reg.h>
|
#include <arch/hwregs/supp_reg.h>
|
||||||
|
|
||||||
extern void tlb_init(void);
|
extern void tlb_init(void);
|
||||||
|
|
||||||
|
|
|
@ -9,8 +9,8 @@
|
||||||
|
|
||||||
#include <asm/tlb.h>
|
#include <asm/tlb.h>
|
||||||
#include <asm/mmu_context.h>
|
#include <asm/mmu_context.h>
|
||||||
#include <asm/arch/hwregs/asm/mmu_defs_asm.h>
|
#include <arch/hwregs/asm/mmu_defs_asm.h>
|
||||||
#include <asm/arch/hwregs/supp_reg.h>
|
#include <arch/hwregs/supp_reg.h>
|
||||||
|
|
||||||
#define UPDATE_TLB_SEL_IDX(val) \
|
#define UPDATE_TLB_SEL_IDX(val) \
|
||||||
do { \
|
do { \
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#ifndef _ASM_ARCH_CRIS_IO_H
|
#ifndef _ASM_ARCH_CRIS_IO_H
|
||||||
#define _ASM_ARCH_CRIS_IO_H
|
#define _ASM_ARCH_CRIS_IO_H
|
||||||
|
|
||||||
#include <asm/arch/svinto.h>
|
#include <arch/svinto.h>
|
||||||
|
|
||||||
/* Etrax shadow registers - which live in arch/cris/kernel/shadows.c */
|
/* Etrax shadow registers - which live in arch/cris/kernel/shadows.c */
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
#ifndef _ASM_ARCH_IRQ_H
|
#ifndef _ASM_ARCH_IRQ_H
|
||||||
#define _ASM_ARCH_IRQ_H
|
#define _ASM_ARCH_IRQ_H
|
||||||
|
|
||||||
#include <asm/arch/sv_addr_ag.h>
|
#include <arch/sv_addr_ag.h>
|
||||||
|
|
||||||
#define NR_IRQS 32
|
#define NR_IRQS 32
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue