diff options
Diffstat (limited to 'arch/m68k/sun3x/config.c')
-rw-r--r-- | arch/m68k/sun3x/config.c | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/arch/m68k/sun3x/config.c b/arch/m68k/sun3x/config.c new file mode 100644 index 000000000000..0ef547f5494d --- /dev/null +++ b/arch/m68k/sun3x/config.c | |||
@@ -0,0 +1,99 @@ | |||
1 | /* | ||
2 | * Setup kernel for a Sun3x machine | ||
3 | * | ||
4 | * (C) 1999 Thomas Bogendoerfer (tsbogend@alpha.franken.de) | ||
5 | * | ||
6 | * based on code from Oliver Jowett <oliver@jowett.manawatu.gen.nz> | ||
7 | */ | ||
8 | |||
9 | #include <linux/config.h> | ||
10 | #include <linux/types.h> | ||
11 | #include <linux/mm.h> | ||
12 | #include <linux/console.h> | ||
13 | #include <linux/init.h> | ||
14 | |||
15 | #include <asm/system.h> | ||
16 | #include <asm/machdep.h> | ||
17 | #include <asm/irq.h> | ||
18 | #include <asm/sun3xprom.h> | ||
19 | #include <asm/sun3ints.h> | ||
20 | #include <asm/setup.h> | ||
21 | #include <asm/oplib.h> | ||
22 | |||
23 | #include "time.h" | ||
24 | |||
25 | volatile char *clock_va; | ||
26 | extern volatile unsigned char *sun3_intreg; | ||
27 | |||
28 | extern void sun3_get_model(char *model); | ||
29 | |||
30 | void sun3_leds(unsigned int i) | ||
31 | { | ||
32 | |||
33 | } | ||
34 | |||
35 | static int sun3x_get_hardware_list(char *buffer) | ||
36 | { | ||
37 | |||
38 | int len = 0; | ||
39 | |||
40 | len += sprintf(buffer + len, "PROM Revision:\t%s\n", | ||
41 | romvec->pv_monid); | ||
42 | |||
43 | return len; | ||
44 | |||
45 | } | ||
46 | |||
47 | /* | ||
48 | * Setup the sun3x configuration info | ||
49 | */ | ||
50 | void __init config_sun3x(void) | ||
51 | { | ||
52 | |||
53 | sun3x_prom_init(); | ||
54 | |||
55 | mach_get_irq_list = show_sun3_interrupts; | ||
56 | mach_max_dma_address = 0xffffffff; /* we can DMA anywhere, whee */ | ||
57 | |||
58 | mach_default_handler = &sun3_default_handler; | ||
59 | mach_sched_init = sun3x_sched_init; | ||
60 | mach_init_IRQ = sun3_init_IRQ; | ||
61 | enable_irq = sun3_enable_irq; | ||
62 | disable_irq = sun3_disable_irq; | ||
63 | mach_request_irq = sun3_request_irq; | ||
64 | mach_free_irq = sun3_free_irq; | ||
65 | mach_process_int = sun3_process_int; | ||
66 | |||
67 | mach_gettimeoffset = sun3x_gettimeoffset; | ||
68 | mach_reset = sun3x_reboot; | ||
69 | |||
70 | mach_hwclk = sun3x_hwclk; | ||
71 | mach_get_model = sun3_get_model; | ||
72 | mach_get_hardware_list = sun3x_get_hardware_list; | ||
73 | |||
74 | #ifdef CONFIG_DUMMY_CONSOLE | ||
75 | conswitchp = &dummy_con; | ||
76 | #endif | ||
77 | |||
78 | sun3_intreg = (unsigned char *)SUN3X_INTREG; | ||
79 | |||
80 | /* only the serial console is known to work anyway... */ | ||
81 | #if 0 | ||
82 | switch (*(unsigned char *)SUN3X_EEPROM_CONS) { | ||
83 | case 0x10: | ||
84 | serial_console = 1; | ||
85 | conswitchp = NULL; | ||
86 | break; | ||
87 | case 0x11: | ||
88 | serial_console = 2; | ||
89 | conswitchp = NULL; | ||
90 | break; | ||
91 | default: | ||
92 | serial_console = 0; | ||
93 | conswitchp = &dummy_con; | ||
94 | break; | ||
95 | } | ||
96 | #endif | ||
97 | |||
98 | } | ||
99 | |||