diff options
| author | Russell King <rmk@flint.arm.linux.org.uk> | 2002-11-03 21:52:42 +0000 |
|---|---|---|
| committer | Russell King <rmk@flint.arm.linux.org.uk> | 2002-11-03 21:52:42 +0000 |
| commit | bbd265b5a0d28a7d710f6cec7547dc30d5b426cf (patch) | |
| tree | 02c4d626ba5369ac3024eb81afadafbd883f5e72 | |
| parent | 37e093c18a2e7bb5253aff6d42bc91f3a1380f3d (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.c | 2 | ||||
| -rw-r--r-- | arch/arm/mm/ioremap.c | 16 | ||||
| -rw-r--r-- | arch/arm/mm/mm-armv.c | 2 | ||||
| -rw-r--r-- | arch/arm/mm/proc-sa110.S | 2 | ||||
| -rw-r--r-- | arch/arm/vmlinux-armv.lds.in | 4 | ||||
| -rw-r--r-- | include/asm-arm/mman.h | 2 |
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 */ |
