2 * linux/arch/arm/mm/mm-tbox.c
4 * Copyright (C) 1998, 1999, 2000 Phil Blundell
5 * Copyright (C) 1998-1999 Russell King
7 * Extra MM routines for the Tbox architecture
9 #include <linux/kernel.h>
11 #include <linux/init.h>
14 #include <asm/setup.h>
15 #include <asm/mach-types.h>
17 #include <asm/pgtable.h>
20 #include <asm/mach/arch.h>
21 #include <asm/mach/map.h>
23 extern unsigned long soft_irq_mask;
25 static void tbox_mask_irq(unsigned int irq)
27 __raw_writel(0, INTCONT + (irq << 2));
28 soft_irq_mask &= ~(1<<irq);
31 static void tbox_unmask_irq(unsigned int irq)
33 soft_irq_mask |= (1<<irq);
34 __raw_writel(1, INTCONT + (irq << 2));
37 static void tbox_init_irq(void)
41 /* Disable all interrupts initially. */
42 for (i = 0; i < NR_IRQS; i++) {
43 if (i <= 10 || (i >= 12 && i <= 13)) {
44 irq_desc[i].valid = 1;
45 irq_desc[i].probe_ok = 0;
46 irq_desc[i].mask_ack = tbox_mask_irq;
47 irq_desc[i].mask = tbox_mask_irq;
48 irq_desc[i].unmask = tbox_unmask_irq;
51 irq_desc[i].valid = 0;
52 irq_desc[i].probe_ok = 0;
57 static struct map_desc tbox_io_desc[] __initdata = {
58 /* See hardware.h for details */
59 { IO_BASE, IO_START, 0x00100000, MT_DEVICE }
62 static void __init tbox_map_io(void)
64 iotable_init(tbox_io_desc, ARRAY_SIZE(tbox_io_desc));
67 MACHINE_START(TBOX, "unknown-TBOX")
68 MAINTAINER("Philip Blundell")
69 BOOT_MEM(0x80000000, 0x00400000, 0xe0000000)
71 INITIRQ(tbox_init_irq)