ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.6.tar.bz2
[linux-2.6.git] / arch / arm / mach-footbridge / arch.c
1 /*
2  * linux/arch/arm/mach-footbridge/arch.c
3  *
4  * Architecture specific fixups.  This is where any
5  * parameters in the params struct are fixed up, or
6  * any additional architecture specific information
7  * is pulled from the params struct.
8  */
9 #include <linux/config.h>
10 #include <linux/module.h>
11 #include <linux/tty.h>
12 #include <linux/delay.h>
13 #include <linux/pm.h>
14 #include <linux/init.h>
15
16 #include <asm/hardware/dec21285.h>
17 #include <asm/elf.h>
18 #include <asm/setup.h>
19 #include <asm/mach-types.h>
20
21 #include <asm/mach/arch.h>
22
23 extern void footbridge_map_io(void);
24 extern void footbridge_init_irq(void);
25
26 unsigned int mem_fclk_21285 = 50000000;
27
28 EXPORT_SYMBOL(mem_fclk_21285);
29
30 static int __init parse_tag_memclk(const struct tag *tag)
31 {
32         mem_fclk_21285 = tag->u.memclk.fmemclk;
33         return 0;
34 }
35
36 __tagtable(ATAG_MEMCLK, parse_tag_memclk);
37
38 #ifdef CONFIG_ARCH_EBSA285
39 MACHINE_START(EBSA285, "EBSA285")
40         MAINTAINER("Russell King")
41         BOOT_MEM(0x00000000, DC21285_ARMCSR_BASE, 0xfe000000)
42         BOOT_PARAMS(0x00000100)
43         VIDEO(0x000a0000, 0x000bffff)
44         MAPIO(footbridge_map_io)
45         INITIRQ(footbridge_init_irq)
46 MACHINE_END
47 #endif
48
49 #ifdef CONFIG_ARCH_NETWINDER
50 /*
51  * Older NeTTroms either do not provide a parameters
52  * page, or they don't supply correct information in
53  * the parameter page.
54  */
55 static void __init
56 fixup_netwinder(struct machine_desc *desc, struct tag *tags,
57                 char **cmdline, struct meminfo *mi)
58 {
59 #ifdef CONFIG_ISAPNP
60         extern int isapnp_disable;
61
62         /*
63          * We must not use the kernels ISAPnP code
64          * on the NetWinder - it will reset the settings
65          * for the WaveArtist chip and render it inoperable.
66          */
67         isapnp_disable = 1;
68 #endif
69 }
70
71 MACHINE_START(NETWINDER, "Rebel-NetWinder")
72         MAINTAINER("Russell King/Rebel.com")
73         BOOT_MEM(0x00000000, DC21285_ARMCSR_BASE, 0xfe000000)
74         BOOT_PARAMS(0x00000100)
75         VIDEO(0x000a0000, 0x000bffff)
76         DISABLE_PARPORT(0)
77         DISABLE_PARPORT(2)
78         FIXUP(fixup_netwinder)
79         MAPIO(footbridge_map_io)
80         INITIRQ(footbridge_init_irq)
81 MACHINE_END
82 #endif
83
84 #ifdef CONFIG_ARCH_CATS
85 /*
86  * CATS uses soft-reboot by default, since
87  * hard reboots fail on early boards.
88  */
89 static void __init
90 fixup_cats(struct machine_desc *desc, struct tag *tags,
91            char **cmdline, struct meminfo *mi)
92 {
93         ORIG_VIDEO_LINES  = 25;
94         ORIG_VIDEO_POINTS = 16;
95         ORIG_Y = 24;
96 }
97
98 MACHINE_START(CATS, "Chalice-CATS")
99         MAINTAINER("Philip Blundell")
100         BOOT_MEM(0x00000000, DC21285_ARMCSR_BASE, 0xfe000000)
101         BOOT_PARAMS(0x00000100)
102         SOFT_REBOOT
103         FIXUP(fixup_cats)
104         MAPIO(footbridge_map_io)
105         INITIRQ(footbridge_init_irq)
106 MACHINE_END
107 #endif
108
109 #ifdef CONFIG_ARCH_CO285
110
111 static void __init
112 fixup_coebsa285(struct machine_desc *desc, struct tag *tags,
113                 char **cmdline, struct meminfo *mi)
114 {
115         extern unsigned long boot_memory_end;
116         extern char boot_command_line[];
117
118         mi->nr_banks      = 1;
119         mi->bank[0].start = PHYS_OFFSET;
120         mi->bank[0].size  = boot_memory_end;
121         mi->bank[0].node  = 0;
122
123         *cmdline = boot_command_line;
124 }
125
126 MACHINE_START(CO285, "co-EBSA285")
127         MAINTAINER("Mark van Doesburg")
128         BOOT_MEM(0x00000000, DC21285_ARMCSR_BASE, 0x7cf00000)
129         FIXUP(fixup_coebsa285)
130         MAPIO(footbridge_map_io)
131         INITIRQ(footbridge_init_irq)
132 MACHINE_END
133 #endif
134
135 #ifdef CONFIG_ARCH_PERSONAL_SERVER
136 MACHINE_START(PERSONAL_SERVER, "Compaq-PersonalServer")
137         MAINTAINER("Jamey Hicks / George France")
138         BOOT_MEM(0x00000000, DC21285_ARMCSR_BASE, 0xfe000000)
139         BOOT_PARAMS(0x00000100)
140         MAPIO(footbridge_map_io)
141         INITIRQ(footbridge_init_irq)
142 MACHINE_END
143 #endif