diff options
author | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 18:20:36 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 18:20:36 -0400 |
commit | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (patch) | |
tree | 0bba044c4ce775e45a88a51686b5d9f90697ea9d /arch/arm/mach-l7200 |
Linux-2.6.12-rc2v2.6.12-rc2
Initial git repository build. I'm not bothering with the full history,
even though we have it. We can create a separate "historical" git
archive of that later if we want to, and in the meantime it's about
3.2GB when imported into git - space that would just make the early
git days unnecessarily complicated, when we don't have a lot of good
infrastructure for it.
Let it rip!
Diffstat (limited to 'arch/arm/mach-l7200')
-rw-r--r-- | arch/arm/mach-l7200/Makefile | 11 | ||||
-rw-r--r-- | arch/arm/mach-l7200/Makefile.boot | 2 | ||||
-rw-r--r-- | arch/arm/mach-l7200/core.c | 89 |
3 files changed, 102 insertions, 0 deletions
diff --git a/arch/arm/mach-l7200/Makefile b/arch/arm/mach-l7200/Makefile new file mode 100644 index 000000000000..4bd8ebd70e7b --- /dev/null +++ b/arch/arm/mach-l7200/Makefile | |||
@@ -0,0 +1,11 @@ | |||
1 | # | ||
2 | # Makefile for the linux kernel. | ||
3 | # | ||
4 | |||
5 | # Object file lists. | ||
6 | |||
7 | obj-y := core.o | ||
8 | obj-m := | ||
9 | obj-n := | ||
10 | obj- := | ||
11 | |||
diff --git a/arch/arm/mach-l7200/Makefile.boot b/arch/arm/mach-l7200/Makefile.boot new file mode 100644 index 000000000000..6c72ecbe6b64 --- /dev/null +++ b/arch/arm/mach-l7200/Makefile.boot | |||
@@ -0,0 +1,2 @@ | |||
1 | zreladdr-y := 0xf0008000 | ||
2 | |||
diff --git a/arch/arm/mach-l7200/core.c b/arch/arm/mach-l7200/core.c new file mode 100644 index 000000000000..606ca95f8217 --- /dev/null +++ b/arch/arm/mach-l7200/core.c | |||
@@ -0,0 +1,89 @@ | |||
1 | /* | ||
2 | * linux/arch/arm/mm/mm-lusl7200.c | ||
3 | * | ||
4 | * Copyright (C) 2000 Steve Hill (sjhill@cotw.com) | ||
5 | * | ||
6 | * Extra MM routines for L7200 architecture | ||
7 | */ | ||
8 | #include <linux/kernel.h> | ||
9 | #include <linux/init.h> | ||
10 | |||
11 | #include <asm/hardware.h> | ||
12 | #include <asm/page.h> | ||
13 | |||
14 | #include <asm/mach/map.h> | ||
15 | #include <asm/arch/hardware.h> | ||
16 | |||
17 | /* | ||
18 | * IRQ base register | ||
19 | */ | ||
20 | #define IRQ_BASE (IO_BASE_2 + 0x1000) | ||
21 | |||
22 | /* | ||
23 | * Normal IRQ registers | ||
24 | */ | ||
25 | #define IRQ_STATUS (*(volatile unsigned long *) (IRQ_BASE + 0x000)) | ||
26 | #define IRQ_RAWSTATUS (*(volatile unsigned long *) (IRQ_BASE + 0x004)) | ||
27 | #define IRQ_ENABLE (*(volatile unsigned long *) (IRQ_BASE + 0x008)) | ||
28 | #define IRQ_ENABLECLEAR (*(volatile unsigned long *) (IRQ_BASE + 0x00c)) | ||
29 | #define IRQ_SOFT (*(volatile unsigned long *) (IRQ_BASE + 0x010)) | ||
30 | #define IRQ_SOURCESEL (*(volatile unsigned long *) (IRQ_BASE + 0x018)) | ||
31 | |||
32 | /* | ||
33 | * Fast IRQ registers | ||
34 | */ | ||
35 | #define FIQ_STATUS (*(volatile unsigned long *) (IRQ_BASE + 0x100)) | ||
36 | #define FIQ_RAWSTATUS (*(volatile unsigned long *) (IRQ_BASE + 0x104)) | ||
37 | #define FIQ_ENABLE (*(volatile unsigned long *) (IRQ_BASE + 0x108)) | ||
38 | #define FIQ_ENABLECLEAR (*(volatile unsigned long *) (IRQ_BASE + 0x10c)) | ||
39 | #define FIQ_SOFT (*(volatile unsigned long *) (IRQ_BASE + 0x110)) | ||
40 | #define FIQ_SOURCESEL (*(volatile unsigned long *) (IRQ_BASE + 0x118)) | ||
41 | |||
42 | static void l7200_mask_irq(unsigned int irq) | ||
43 | { | ||
44 | IRQ_ENABLECLEAR = 1 << irq; | ||
45 | } | ||
46 | |||
47 | static void l7200_unmask_irq(unsigned int irq) | ||
48 | { | ||
49 | IRQ_ENABLE = 1 << irq; | ||
50 | } | ||
51 | |||
52 | static void __init l7200_init_irq(void) | ||
53 | { | ||
54 | int irq; | ||
55 | |||
56 | IRQ_ENABLECLEAR = 0xffffffff; /* clear all interrupt enables */ | ||
57 | FIQ_ENABLECLEAR = 0xffffffff; /* clear all fast interrupt enables */ | ||
58 | |||
59 | for (irq = 0; irq < NR_IRQS; irq++) { | ||
60 | irq_desc[irq].valid = 1; | ||
61 | irq_desc[irq].probe_ok = 1; | ||
62 | irq_desc[irq].mask_ack = l7200_mask_irq; | ||
63 | irq_desc[irq].mask = l7200_mask_irq; | ||
64 | irq_desc[irq].unmask = l7200_unmask_irq; | ||
65 | } | ||
66 | |||
67 | init_FIQ(); | ||
68 | } | ||
69 | |||
70 | static struct map_desc l7200_io_desc[] __initdata = { | ||
71 | { IO_BASE, IO_START, IO_SIZE, MT_DEVICE }, | ||
72 | { IO_BASE_2, IO_START_2, IO_SIZE_2, MT_DEVICE }, | ||
73 | { AUX_BASE, AUX_START, AUX_SIZE, MT_DEVICE }, | ||
74 | { FLASH1_BASE, FLASH1_START, FLASH1_SIZE, MT_DEVICE }, | ||
75 | { FLASH2_BASE, FLASH2_START, FLASH2_SIZE, MT_DEVICE } | ||
76 | }; | ||
77 | |||
78 | static void __init l7200_map_io(void) | ||
79 | { | ||
80 | iotable_init(l7200_io_desc, ARRAY_SIZE(l7200_io_desc)); | ||
81 | } | ||
82 | |||
83 | MACHINE_START(L7200, "LinkUp Systems L7200") | ||
84 | MAINTAINER("Steve Hill / Scott McConnell") | ||
85 | BOOT_MEM(0xf0000000, 0x80040000, 0xd0000000) | ||
86 | MAPIO(l7200_map_io) | ||
87 | INITIRQ(l7200_init_irq) | ||
88 | MACHINE_END | ||
89 | |||