summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRussell King <rmk@flint.arm.linux.org.uk>2002-11-03 21:52:42 +0000
committerRussell King <rmk@flint.arm.linux.org.uk>2002-11-03 21:52:42 +0000
commitbbd265b5a0d28a7d710f6cec7547dc30d5b426cf (patch)
tree02c4d626ba5369ac3024eb81afadafbd883f5e72
parent37e093c18a2e7bb5253aff6d42bc91f3a1380f3d (diff)
[ARM] Fix various build errors in bk-cur
- Make ioremap.c compile - Fix armv4_early_abort -> v4_early_abort - Fix MT_MINICACHE -> MT_MINICLEAN - Add MAP_POPULATE and MAP_NONBLOCK for ARM - Fix last remaining usage of kstat.irqs[cpu] - Add support for .init.initramfs section
-rw-r--r--arch/arm/kernel/irq.c2
-rw-r--r--arch/arm/mm/ioremap.c16
-rw-r--r--arch/arm/mm/mm-armv.c2
-rw-r--r--arch/arm/mm/proc-sa110.S2
-rw-r--r--arch/arm/vmlinux-armv.lds.in4
-rw-r--r--include/asm-arm/mman.h2
6 files changed, 15 insertions, 13 deletions
diff --git a/arch/arm/kernel/irq.c b/arch/arm/kernel/irq.c
index 3f77c258ef2c..1fa4f5fb25f7 100644
--- a/arch/arm/kernel/irq.c
+++ b/arch/arm/kernel/irq.c
@@ -305,7 +305,7 @@ do_level_IRQ(unsigned int irq, struct irqdesc *desc, struct pt_regs *regs)
desc->chip->ack(irq);
if (likely(desc->enabled)) {
- kstat.irqs[cpu][irq]++;
+ kstat_cpu(cpu).irqs[irq]++;
/*
* Return with this interrupt masked if no action
diff --git a/arch/arm/mm/ioremap.c b/arch/arm/mm/ioremap.c
index 698db9e3c7fc..20fe93f7fc96 100644
--- a/arch/arm/mm/ioremap.c
+++ b/arch/arm/mm/ioremap.c
@@ -8,9 +8,7 @@
* Hacked for ARM by Phil Blundell <philb@gnu.org>
* Hacked to allow all architectures to build, and various cleanups
* by Russell King
- */
-
-/*
+ *
* This allows a driver to remap an arbitrary region of bus memory into
* virtual space. One should *only* use readl, writel, memcpy_toio and
* so on with such remapped areas.
@@ -21,11 +19,6 @@
* two 2GB chunks and mapping only one at a time into processor memory.
* We use MMU protection domains to trap any attempt to access the bank
* that is not currently mapped. (This isn't fully implemented yet.)
- *
- * DC21285 currently has a bug in that the PCI address extension
- * register affects the address of any writes waiting in the outbound
- * FIFO. Unfortunately, it is not possible to tell the DC21285 to
- * flush this - flushing the area causes the bus to lock.
*/
#include <linux/errno.h>
#include <linux/mm.h>
@@ -34,6 +27,7 @@
#include <asm/page.h>
#include <asm/pgalloc.h>
#include <asm/io.h>
+#include <asm/tlbflush.h>
static inline void remap_area_pte(pte_t * pte, unsigned long address, unsigned long size,
unsigned long phys_addr, pgprot_t pgprot)
@@ -76,7 +70,7 @@ static inline int remap_area_pmd(pmd_t * pmd, unsigned long address, unsigned lo
pgprot = __pgprot(L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_DIRTY | L_PTE_WRITE | flags);
do {
- pte_t * pte = pte_alloc(&init_mm, pmd, address);
+ pte_t * pte = pte_alloc_kernel(&init_mm, pmd, address);
if (!pte)
return -ENOMEM;
remap_area_pte(pte, address, end - address, address + phys_addr, pgprot);
@@ -129,7 +123,9 @@ static int remap_area_pages(unsigned long address, unsigned long phys_addr,
* 'flags' are the extra L_PTE_ flags that you want to specify for this
* mapping. See include/asm-arm/proc-armv/pgtable.h for more information.
*/
-void * __ioremap(unsigned long phys_addr, size_t size, unsigned long flags)
+void *
+__ioremap(unsigned long phys_addr, size_t size, unsigned long flags,
+ unsigned long align)
{
void * addr;
struct vm_struct * area;
diff --git a/arch/arm/mm/mm-armv.c b/arch/arm/mm/mm-armv.c
index ef7e71a2e215..a0bc8550cf08 100644
--- a/arch/arm/mm/mm-armv.c
+++ b/arch/arm/mm/mm-armv.c
@@ -279,7 +279,7 @@ static void __init build_mem_type_table(void)
if (cpu_arch < CPU_ARCH_ARMv5) {
writealloc = 0;
ecc = 0;
- mem_types[MT_MINICACHE].prot_sect &= ~PMD_SECT_TEX(1);
+ mem_types[MT_MINICLEAN].prot_sect &= ~PMD_SECT_TEX(1);
}
if (writethrough) {
diff --git a/arch/arm/mm/proc-sa110.S b/arch/arm/mm/proc-sa110.S
index 64e704ee0872..69a111109b9c 100644
--- a/arch/arm/mm/proc-sa110.S
+++ b/arch/arm/mm/proc-sa110.S
@@ -561,7 +561,7 @@ cpu_sa110_info:
*/
.type sa1100_processor_functions, #object
ENTRY(sa1100_processor_functions)
- .word armv4_early_abort
+ .word v4_early_abort
.word cpu_sa1100_check_bugs
.word cpu_sa1100_proc_init
.word cpu_sa1100_proc_fin
diff --git a/arch/arm/vmlinux-armv.lds.in b/arch/arm/vmlinux-armv.lds.in
index 1ade2c46af4c..3fb8c7708582 100644
--- a/arch/arm/vmlinux-armv.lds.in
+++ b/arch/arm/vmlinux-armv.lds.in
@@ -35,6 +35,10 @@ SECTIONS
*(.initcall6.init)
*(.initcall7.init)
__initcall_end = .;
+ . = ALIGN(32);
+ __initramfs_start = .;
+ *(.init.initramfs)
+ __initramfs_end = .;
. = ALIGN(4096);
__init_end = .;
}
diff --git a/include/asm-arm/mman.h b/include/asm-arm/mman.h
index 0c72de97d419..044a5ef62548 100644
--- a/include/asm-arm/mman.h
+++ b/include/asm-arm/mman.h
@@ -18,6 +18,8 @@
#define MAP_EXECUTABLE 0x1000 /* mark it as an executable */
#define MAP_LOCKED 0x2000 /* pages are locked */
#define MAP_NORESERVE 0x4000 /* don't check for reservations */
+#define MAP_POPULATE 0x8000 /* populate (prefault) page tables */
+#define MAP_NONBLOCK 0x10000 /* do not block on IO */
#define MS_ASYNC 1 /* sync memory asynchronously */
#define MS_INVALIDATE 2 /* invalidate the caches */