aboutsummaryrefslogtreecommitdiffstats
path: root/arch/m68k
diff options
context:
space:
mode:
Diffstat (limited to 'arch/m68k')
-rw-r--r--arch/m68k/Kconfig36
-rw-r--r--arch/m68k/Makefile2
-rw-r--r--arch/m68k/amiga/config.c22
-rw-r--r--arch/m68k/atari/debug.c37
-rw-r--r--arch/m68k/fpsp040/Makefile1
-rw-r--r--arch/m68k/ifpsp060/Makefile1
-rw-r--r--arch/m68k/kernel/Makefile2
-rw-r--r--arch/m68k/kernel/setup.c9
-rw-r--r--arch/m68k/kernel/vmlinux-std.lds3
-rw-r--r--arch/m68k/kernel/vmlinux-sun3.lds7
-rw-r--r--arch/m68k/lib/Makefile2
-rw-r--r--arch/m68k/mac/Makefile2
-rw-r--r--arch/m68k/mac/baboon.c26
-rw-r--r--arch/m68k/mac/bootparse.c122
-rw-r--r--arch/m68k/mac/config.c11
-rw-r--r--arch/m68k/mac/debug.c41
-rw-r--r--arch/m68k/mac/oss.c8
-rw-r--r--arch/m68k/mac/psc.c4
-rw-r--r--arch/m68k/mac/via.c2
-rw-r--r--arch/m68k/math-emu/Makefile2
-rw-r--r--arch/m68k/mm/motorola.c1
-rw-r--r--arch/m68k/mm/sun3mmu.c1
-rw-r--r--arch/m68k/q40/config.c26
-rw-r--r--arch/m68k/sun3/Makefile2
-rw-r--r--arch/m68k/sun3/config.c7
-rw-r--r--arch/m68k/sun3/dvma.c2
-rw-r--r--arch/m68k/sun3/idprom.c4
-rw-r--r--arch/m68k/sun3/mmu_emu.c2
-rw-r--r--arch/m68k/sun3/prom/Makefile1
-rw-r--r--arch/m68k/sun3/prom/console.c6
-rw-r--r--arch/m68k/sun3/prom/init.c11
-rw-r--r--arch/m68k/sun3/prom/misc.c2
-rw-r--r--arch/m68k/sun3/prom/printf.c7
-rw-r--r--arch/m68k/sun3/sbus.c27
-rw-r--r--arch/m68k/sun3/sun3dvma.c2
-rw-r--r--arch/m68k/sun3/sun3ints.c2
36 files changed, 95 insertions, 348 deletions
diff --git a/arch/m68k/Kconfig b/arch/m68k/Kconfig
index 55ea52fe6aca..8c5e1de68fcb 100644
--- a/arch/m68k/Kconfig
+++ b/arch/m68k/Kconfig
@@ -490,28 +490,6 @@ config ATARI_MFPSER
490 Note for Falcon users: You also have an MFP port, it's just not 490 Note for Falcon users: You also have an MFP port, it's just not
491 wired to the outside... But you could use the port under Linux. 491 wired to the outside... But you could use the port under Linux.
492 492
493config ATARI_SCC
494 tristate "Atari SCC serial support"
495 depends on ATARI
496 ---help---
497 If you have serial ports based on a Zilog SCC chip (Modem2, Serial2,
498 LAN) and like to use them under Linux, say Y. All built-in SCC's are
499 supported (TT, MegaSTE, Falcon), and also the ST-ESCC. If you have
500 two connectors for channel A (Serial2 and LAN), they are visible as
501 two separate devices.
502
503 To compile this driver as a module, choose M here.
504
505config ATARI_SCC_DMA
506 bool "Atari SCC serial DMA support"
507 depends on ATARI_SCC
508 help
509 This enables DMA support for receiving data on channel A of the SCC.
510 If you have a TT you may say Y here and read
511 drivers/char/atari_SCC.README. All other users should say N here,
512 because only the TT has SCC-DMA, even if your machine keeps claiming
513 so at boot time.
514
515config ATARI_MIDI 493config ATARI_MIDI
516 tristate "Atari MIDI serial support" 494 tristate "Atari MIDI serial support"
517 depends on ATARI 495 depends on ATARI
@@ -578,18 +556,6 @@ config MAC_HID
578 depends on INPUT_ADBHID 556 depends on INPUT_ADBHID
579 default y 557 default y
580 558
581config ADB_KEYBOARD
582 bool "Support for ADB keyboard (old driver)"
583 depends on MAC && !INPUT_ADBHID
584 help
585 This option allows you to use an ADB keyboard attached to your
586 machine. Note that this disables any other (ie. PS/2) keyboard
587 support, even if your machine is physically capable of using both at
588 the same time.
589
590 If you use an ADB keyboard (4 pin connector), say Y here.
591 If you use a PS/2 keyboard (6 pin connector), say N here.
592
593config HPDCA 559config HPDCA
594 tristate "HP DCA serial support" 560 tristate "HP DCA serial support"
595 depends on DIO && SERIAL_8250 561 depends on DIO && SERIAL_8250
@@ -640,7 +606,7 @@ config DN_SERIAL
640 606
641config SERIAL_CONSOLE 607config SERIAL_CONSOLE
642 bool "Support for serial port console" 608 bool "Support for serial port console"
643 depends on (AMIGA || ATARI || MAC || SUN3 || SUN3X || VME || APOLLO) && (ATARI_MFPSER=y || ATARI_SCC=y || ATARI_MIDI=y || MAC_SCC=y || AMIGA_BUILTIN_SERIAL=y || GVPIOEXT=y || MULTIFACE_III_TTY=y || SERIAL=y || MVME147_SCC || SERIAL167 || MVME162_SCC || BVME6000_SCC || DN_SERIAL) 609 depends on (AMIGA || ATARI || MAC || SUN3 || SUN3X || VME || APOLLO) && (ATARI_MFPSER=y || ATARI_MIDI=y || MAC_SCC=y || AMIGA_BUILTIN_SERIAL=y || GVPIOEXT=y || MULTIFACE_III_TTY=y || SERIAL=y || MVME147_SCC || SERIAL167 || MVME162_SCC || BVME6000_SCC || DN_SERIAL)
644 ---help--- 610 ---help---
645 If you say Y here, it will be possible to use a serial port as the 611 If you say Y here, it will be possible to use a serial port as the
646 system console (the system console is the device which receives all 612 system console (the system console is the device which receives all
diff --git a/arch/m68k/Makefile b/arch/m68k/Makefile
index b15173f28a23..8133dbc44964 100644
--- a/arch/m68k/Makefile
+++ b/arch/m68k/Makefile
@@ -13,7 +13,7 @@
13# Copyright (C) 1994 by Hamish Macdonald 13# Copyright (C) 1994 by Hamish Macdonald
14# 14#
15 15
16KBUILD_DEFCONFIG := amiga_defconfig 16KBUILD_DEFCONFIG := multi_defconfig
17 17
18# override top level makefile 18# override top level makefile
19AS += -m68020 19AS += -m68020
diff --git a/arch/m68k/amiga/config.c b/arch/m68k/amiga/config.c
index 50f5daab46b7..df679d96b1cb 100644
--- a/arch/m68k/amiga/config.c
+++ b/arch/m68k/amiga/config.c
@@ -36,14 +36,11 @@
36#include <asm/machdep.h> 36#include <asm/machdep.h>
37#include <asm/io.h> 37#include <asm/io.h>
38 38
39unsigned long amiga_model; 39static unsigned long amiga_model;
40EXPORT_SYMBOL(amiga_model);
41 40
42unsigned long amiga_eclock; 41unsigned long amiga_eclock;
43EXPORT_SYMBOL(amiga_eclock); 42EXPORT_SYMBOL(amiga_eclock);
44 43
45unsigned long amiga_masterclock;
46
47unsigned long amiga_colorclock; 44unsigned long amiga_colorclock;
48EXPORT_SYMBOL(amiga_colorclock); 45EXPORT_SYMBOL(amiga_colorclock);
49 46
@@ -51,7 +48,9 @@ unsigned long amiga_chipset;
51EXPORT_SYMBOL(amiga_chipset); 48EXPORT_SYMBOL(amiga_chipset);
52 49
53unsigned char amiga_vblank; 50unsigned char amiga_vblank;
54unsigned char amiga_psfreq; 51EXPORT_SYMBOL(amiga_vblank);
52
53static unsigned char amiga_psfreq;
55 54
56struct amiga_hw_present amiga_hw_present; 55struct amiga_hw_present amiga_hw_present;
57EXPORT_SYMBOL(amiga_hw_present); 56EXPORT_SYMBOL(amiga_hw_present);
@@ -92,8 +91,6 @@ static char *amiga_models[] __initdata = {
92static char amiga_model_name[13] = "Amiga "; 91static char amiga_model_name[13] = "Amiga ";
93 92
94static void amiga_sched_init(irq_handler_t handler); 93static void amiga_sched_init(irq_handler_t handler);
95/* amiga specific irq functions */
96extern void amiga_init_IRQ(void);
97static void amiga_get_model(char *model); 94static void amiga_get_model(char *model);
98static int amiga_get_hardware_list(char *buffer); 95static int amiga_get_hardware_list(char *buffer);
99/* amiga specific timer functions */ 96/* amiga specific timer functions */
@@ -107,8 +104,6 @@ static void amiga_reset(void);
107extern void amiga_init_sound(void); 104extern void amiga_init_sound(void);
108static void amiga_mem_console_write(struct console *co, const char *b, 105static void amiga_mem_console_write(struct console *co, const char *b,
109 unsigned int count); 106 unsigned int count);
110void amiga_serial_console_write(struct console *co, const char *s,
111 unsigned int count);
112#ifdef CONFIG_HEARTBEAT 107#ifdef CONFIG_HEARTBEAT
113static void amiga_heartbeat(int on); 108static void amiga_heartbeat(int on);
114#endif 109#endif
@@ -418,8 +413,7 @@ void __init config_amiga(void)
418 mach_heartbeat = amiga_heartbeat; 413 mach_heartbeat = amiga_heartbeat;
419#endif 414#endif
420 415
421 /* Fill in the clock values (based on the 700 kHz E-Clock) */ 416 /* Fill in the clock value (based on the 700 kHz E-Clock) */
422 amiga_masterclock = 40*amiga_eclock; /* 28 MHz */
423 amiga_colorclock = 5*amiga_eclock; /* 3.5 MHz */ 417 amiga_colorclock = 5*amiga_eclock; /* 3.5 MHz */
424 418
425 /* clear all DMA bits */ 419 /* clear all DMA bits */
@@ -817,8 +811,8 @@ static void amiga_serial_putc(char c)
817 ; 811 ;
818} 812}
819 813
820void amiga_serial_console_write(struct console *co, const char *s, 814static void amiga_serial_console_write(struct console *co, const char *s,
821 unsigned int count) 815 unsigned int count)
822{ 816{
823 while (count--) { 817 while (count--) {
824 if (*s == '\n') 818 if (*s == '\n')
@@ -827,7 +821,7 @@ void amiga_serial_console_write(struct console *co, const char *s,
827 } 821 }
828} 822}
829 823
830#ifdef CONFIG_SERIAL_CONSOLE 824#if 0
831void amiga_serial_puts(const char *s) 825void amiga_serial_puts(const char *s)
832{ 826{
833 amiga_serial_console_write(NULL, s, strlen(s)); 827 amiga_serial_console_write(NULL, s, strlen(s));
diff --git a/arch/m68k/atari/debug.c b/arch/m68k/atari/debug.c
index 043ddbc61c7b..702b15ccfab7 100644
--- a/arch/m68k/atari/debug.c
+++ b/arch/m68k/atari/debug.c
@@ -20,14 +20,6 @@
20#include <asm/atarihw.h> 20#include <asm/atarihw.h>
21#include <asm/atariints.h> 21#include <asm/atariints.h>
22 22
23/* Flag that Modem1 port is already initialized and used */
24int atari_MFP_init_done;
25EXPORT_SYMBOL(atari_MFP_init_done);
26
27/* Flag that Modem1 port is already initialized and used */
28int atari_SCC_init_done;
29EXPORT_SYMBOL(atari_SCC_init_done);
30
31/* Can be set somewhere, if a SCC master reset has already be done and should 23/* Can be set somewhere, if a SCC master reset has already be done and should
32 * not be repeated; used by kgdb */ 24 * not be repeated; used by kgdb */
33int atari_SCC_reset_done; 25int atari_SCC_reset_done;
@@ -47,8 +39,8 @@ static inline void ata_mfp_out(char c)
47 mfp.usart_dta = c; 39 mfp.usart_dta = c;
48} 40}
49 41
50void atari_mfp_console_write(struct console *co, const char *str, 42static void atari_mfp_console_write(struct console *co, const char *str,
51 unsigned int count) 43 unsigned int count)
52{ 44{
53 while (count--) { 45 while (count--) {
54 if (*str == '\n') 46 if (*str == '\n')
@@ -66,8 +58,8 @@ static inline void ata_scc_out(char c)
66 scc.cha_b_data = c; 58 scc.cha_b_data = c;
67} 59}
68 60
69void atari_scc_console_write(struct console *co, const char *str, 61static void atari_scc_console_write(struct console *co, const char *str,
70 unsigned int count) 62 unsigned int count)
71{ 63{
72 while (count--) { 64 while (count--) {
73 if (*str == '\n') 65 if (*str == '\n')
@@ -83,8 +75,8 @@ static inline void ata_midi_out(char c)
83 acia.mid_data = c; 75 acia.mid_data = c;
84} 76}
85 77
86void atari_midi_console_write(struct console *co, const char *str, 78static void atari_midi_console_write(struct console *co, const char *str,
87 unsigned int count) 79 unsigned int count)
88{ 80{
89 while (count--) { 81 while (count--) {
90 if (*str == '\n') 82 if (*str == '\n')
@@ -136,7 +128,7 @@ static void atari_par_console_write(struct console *co, const char *str,
136 } 128 }
137} 129}
138 130
139#ifdef CONFIG_SERIAL_CONSOLE 131#if 0
140int atari_mfp_console_wait_key(struct console *co) 132int atari_mfp_console_wait_key(struct console *co)
141{ 133{
142 while (!(mfp.rcv_stat & 0x80)) /* wait for rx buf filled */ 134 while (!(mfp.rcv_stat & 0x80)) /* wait for rx buf filled */
@@ -166,11 +158,7 @@ int atari_midi_console_wait_key(struct console *co)
166 * SCC serial ports. They're used by the debugging interface, kgdb, and the 158 * SCC serial ports. They're used by the debugging interface, kgdb, and the
167 * serial console code. 159 * serial console code.
168 */ 160 */
169#ifndef CONFIG_SERIAL_CONSOLE
170static void __init atari_init_mfp_port(int cflag) 161static void __init atari_init_mfp_port(int cflag)
171#else
172void atari_init_mfp_port(int cflag)
173#endif
174{ 162{
175 /* 163 /*
176 * timer values for 1200...115200 bps; > 38400 select 110, 134, or 150 164 * timer values for 1200...115200 bps; > 38400 select 110, 134, or 150
@@ -193,8 +181,6 @@ void atari_init_mfp_port(int cflag)
193 mfp.tim_dt_d = baud_table[baud]; 181 mfp.tim_dt_d = baud_table[baud];
194 mfp.tim_ct_cd |= 0x01; /* start timer D, 1:4 */ 182 mfp.tim_ct_cd |= 0x01; /* start timer D, 1:4 */
195 mfp.trn_stat |= 0x01; /* enable TX */ 183 mfp.trn_stat |= 0x01; /* enable TX */
196
197 atari_MFP_init_done = 1;
198} 184}
199 185
200#define SCC_WRITE(reg, val) \ 186#define SCC_WRITE(reg, val) \
@@ -214,11 +200,7 @@ void atari_init_mfp_port(int cflag)
214 MFPDELAY(); \ 200 MFPDELAY(); \
215 } while (0) 201 } while (0)
216 202
217#ifndef CONFIG_SERIAL_CONSOLE
218static void __init atari_init_scc_port(int cflag) 203static void __init atari_init_scc_port(int cflag)
219#else
220void atari_init_scc_port(int cflag)
221#endif
222{ 204{
223 extern int atari_SCC_reset_done; 205 extern int atari_SCC_reset_done;
224 static int clksrc_table[9] = 206 static int clksrc_table[9] =
@@ -277,14 +259,9 @@ void atari_init_scc_port(int cflag)
277 SCC_WRITE(5, reg5 | 8); 259 SCC_WRITE(5, reg5 | 8);
278 260
279 atari_SCC_reset_done = 1; 261 atari_SCC_reset_done = 1;
280 atari_SCC_init_done = 1;
281} 262}
282 263
283#ifndef CONFIG_SERIAL_CONSOLE
284static void __init atari_init_midi_port(int cflag) 264static void __init atari_init_midi_port(int cflag)
285#else
286void atari_init_midi_port(int cflag)
287#endif
288{ 265{
289 int baud = cflag & CBAUD; 266 int baud = cflag & CBAUD;
290 int csize = ((cflag & CSIZE) == CS8) ? 0x10 : 0x00; 267 int csize = ((cflag & CSIZE) == CS8) ? 0x10 : 0x00;
diff --git a/arch/m68k/fpsp040/Makefile b/arch/m68k/fpsp040/Makefile
index 0214d2f6f8b0..9506d883ace5 100644
--- a/arch/m68k/fpsp040/Makefile
+++ b/arch/m68k/fpsp040/Makefile
@@ -10,7 +10,6 @@ obj-y := bindec.o binstr.o decbin.o do_func.o gen_except.o get_op.o \
10 x_bsun.o x_fline.o x_operr.o x_ovfl.o x_snan.o x_store.o \ 10 x_bsun.o x_fline.o x_operr.o x_ovfl.o x_snan.o x_store.o \
11 x_unfl.o x_unimp.o x_unsupp.o bugfix.o skeleton.o 11 x_unfl.o x_unimp.o x_unsupp.o bugfix.o skeleton.o
12 12
13EXTRA_AFLAGS := -traditional
14EXTRA_LDFLAGS := -x 13EXTRA_LDFLAGS := -x
15 14
16$(OS_OBJS): fpsp.h 15$(OS_OBJS): fpsp.h
diff --git a/arch/m68k/ifpsp060/Makefile b/arch/m68k/ifpsp060/Makefile
index 2fe8472cb5e3..43b435049452 100644
--- a/arch/m68k/ifpsp060/Makefile
+++ b/arch/m68k/ifpsp060/Makefile
@@ -6,5 +6,4 @@
6 6
7obj-y := fskeleton.o iskeleton.o os.o 7obj-y := fskeleton.o iskeleton.o os.o
8 8
9EXTRA_AFLAGS := -traditional
10EXTRA_LDFLAGS := -x 9EXTRA_LDFLAGS := -x
diff --git a/arch/m68k/kernel/Makefile b/arch/m68k/kernel/Makefile
index 7a62a718143b..3a7f62225504 100644
--- a/arch/m68k/kernel/Makefile
+++ b/arch/m68k/kernel/Makefile
@@ -16,5 +16,3 @@ devres-y = ../../../kernel/irq/devres.o
16 16
17obj-$(CONFIG_PCI) += bios32.o 17obj-$(CONFIG_PCI) += bios32.o
18obj-y$(CONFIG_MMU_SUN3) += dma.o # no, it's not a typo 18obj-y$(CONFIG_MMU_SUN3) += dma.o # no, it's not a typo
19
20EXTRA_AFLAGS := -traditional
diff --git a/arch/m68k/kernel/setup.c b/arch/m68k/kernel/setup.c
index a9fb83a8c180..ea1e44da19b9 100644
--- a/arch/m68k/kernel/setup.c
+++ b/arch/m68k/kernel/setup.c
@@ -26,6 +26,7 @@
26 26
27#include <asm/bootinfo.h> 27#include <asm/bootinfo.h>
28#include <asm/setup.h> 28#include <asm/setup.h>
29#include <asm/fpu.h>
29#include <asm/irq.h> 30#include <asm/irq.h>
30#include <asm/io.h> 31#include <asm/io.h>
31#include <asm/machdep.h> 32#include <asm/machdep.h>
@@ -40,6 +41,11 @@
40#include <asm/dvma.h> 41#include <asm/dvma.h>
41#endif 42#endif
42 43
44#if !FPSTATESIZE || !NR_IRQS
45#warning No CPU/platform type selected, your kernel will not work!
46#warning Are you building an allnoconfig kernel?
47#endif
48
43unsigned long m68k_machtype; 49unsigned long m68k_machtype;
44EXPORT_SYMBOL(m68k_machtype); 50EXPORT_SYMBOL(m68k_machtype);
45unsigned long m68k_cputype; 51unsigned long m68k_cputype;
@@ -116,6 +122,7 @@ extern int bvme6000_parse_bootinfo(const struct bi_record *);
116extern int mvme16x_parse_bootinfo(const struct bi_record *); 122extern int mvme16x_parse_bootinfo(const struct bi_record *);
117extern int mvme147_parse_bootinfo(const struct bi_record *); 123extern int mvme147_parse_bootinfo(const struct bi_record *);
118extern int hp300_parse_bootinfo(const struct bi_record *); 124extern int hp300_parse_bootinfo(const struct bi_record *);
125extern int apollo_parse_bootinfo(const struct bi_record *);
119 126
120extern void config_amiga(void); 127extern void config_amiga(void);
121extern void config_atari(void); 128extern void config_atari(void);
@@ -183,6 +190,8 @@ static void __init m68k_parse_bootinfo(const struct bi_record *record)
183 unknown = mvme147_parse_bootinfo(record); 190 unknown = mvme147_parse_bootinfo(record);
184 else if (MACH_IS_HP300) 191 else if (MACH_IS_HP300)
185 unknown = hp300_parse_bootinfo(record); 192 unknown = hp300_parse_bootinfo(record);
193 else if (MACH_IS_APOLLO)
194 unknown = apollo_parse_bootinfo(record);
186 else 195 else
187 unknown = 1; 196 unknown = 1;
188 } 197 }
diff --git a/arch/m68k/kernel/vmlinux-std.lds b/arch/m68k/kernel/vmlinux-std.lds
index 7537cc5e6159..99b0784c0552 100644
--- a/arch/m68k/kernel/vmlinux-std.lds
+++ b/arch/m68k/kernel/vmlinux-std.lds
@@ -1,6 +1,7 @@
1/* ld script to make m68k Linux kernel */ 1/* ld script to make m68k Linux kernel */
2 2
3#include <asm-generic/vmlinux.lds.h> 3#include <asm-generic/vmlinux.lds.h>
4#include <asm/page.h>
4 5
5OUTPUT_FORMAT("elf32-m68k", "elf32-m68k", "elf32-m68k") 6OUTPUT_FORMAT("elf32-m68k", "elf32-m68k", "elf32-m68k")
6OUTPUT_ARCH(m68k) 7OUTPUT_ARCH(m68k)
@@ -41,7 +42,7 @@ SECTIONS
41 _edata = .; /* End of data section */ 42 _edata = .; /* End of data section */
42 43
43 /* will be freed after init */ 44 /* will be freed after init */
44 . = ALIGN(4096); /* Init code and data */ 45 . = ALIGN(PAGE_SIZE); /* Init code and data */
45 __init_begin = .; 46 __init_begin = .;
46 .init.text : { 47 .init.text : {
47 _sinittext = .; 48 _sinittext = .;
diff --git a/arch/m68k/kernel/vmlinux-sun3.lds b/arch/m68k/kernel/vmlinux-sun3.lds
index cdc313e7c299..8a4919e4d36a 100644
--- a/arch/m68k/kernel/vmlinux-sun3.lds
+++ b/arch/m68k/kernel/vmlinux-sun3.lds
@@ -1,6 +1,7 @@
1/* ld script to make m68k Linux kernel */ 1/* ld script to make m68k Linux kernel */
2 2
3#include <asm-generic/vmlinux.lds.h> 3#include <asm-generic/vmlinux.lds.h>
4#include <asm/page.h>
4 5
5OUTPUT_FORMAT("elf32-m68k", "elf32-m68k", "elf32-m68k") 6OUTPUT_FORMAT("elf32-m68k", "elf32-m68k", "elf32-m68k")
6OUTPUT_ARCH(m68k) 7OUTPUT_ARCH(m68k)
@@ -34,7 +35,7 @@ SECTIONS
34 _edata = .; 35 _edata = .;
35 36
36 /* will be freed after init */ 37 /* will be freed after init */
37 . = ALIGN(8192); /* Init code and data */ 38 . = ALIGN(PAGE_SIZE); /* Init code and data */
38__init_begin = .; 39__init_begin = .;
39 .init.text : { 40 .init.text : {
40 _sinittext = .; 41 _sinittext = .;
@@ -61,12 +62,12 @@ __init_begin = .;
61 } 62 }
62 SECURITY_INIT 63 SECURITY_INIT
63#ifdef CONFIG_BLK_DEV_INITRD 64#ifdef CONFIG_BLK_DEV_INITRD
64 . = ALIGN(8192); 65 . = ALIGN(PAGE_SIZE);
65 __initramfs_start = .; 66 __initramfs_start = .;
66 .init.ramfs : { *(.init.ramfs) } 67 .init.ramfs : { *(.init.ramfs) }
67 __initramfs_end = .; 68 __initramfs_end = .;
68#endif 69#endif
69 . = ALIGN(8192); 70 . = ALIGN(PAGE_SIZE);
70 __init_end = .; 71 __init_end = .;
71 .data.init.task : { *(.data.init_task) } 72 .data.init.task : { *(.data.init_task) }
72 73
diff --git a/arch/m68k/lib/Makefile b/arch/m68k/lib/Makefile
index a18af095cd7c..af9abf8d9d98 100644
--- a/arch/m68k/lib/Makefile
+++ b/arch/m68k/lib/Makefile
@@ -2,7 +2,5 @@
2# Makefile for m68k-specific library files.. 2# Makefile for m68k-specific library files..
3# 3#
4 4
5EXTRA_AFLAGS := -traditional
6
7lib-y := ashldi3.o ashrdi3.o lshrdi3.o muldi3.o \ 5lib-y := ashldi3.o ashrdi3.o lshrdi3.o muldi3.o \
8 checksum.o string.o uaccess.o 6 checksum.o string.o uaccess.o
diff --git a/arch/m68k/mac/Makefile b/arch/m68k/mac/Makefile
index 1d265ba365ad..daebd80bdef0 100644
--- a/arch/m68k/mac/Makefile
+++ b/arch/m68k/mac/Makefile
@@ -2,5 +2,5 @@
2# Makefile for Linux arch/m68k/mac source directory 2# Makefile for Linux arch/m68k/mac source directory
3# 3#
4 4
5obj-y := config.o bootparse.o macints.o iop.o via.o oss.o psc.o \ 5obj-y := config.o macints.o iop.o via.o oss.o psc.o \
6 baboon.o macboing.o debug.o misc.o 6 baboon.o macboing.o debug.o misc.o
diff --git a/arch/m68k/mac/baboon.c b/arch/m68k/mac/baboon.c
index 673a1085984d..dae9c982aa89 100644
--- a/arch/m68k/mac/baboon.c
+++ b/arch/m68k/mac/baboon.c
@@ -23,9 +23,7 @@
23/* #define DEBUG_IRQS */ 23/* #define DEBUG_IRQS */
24 24
25int baboon_present; 25int baboon_present;
26volatile struct baboon *baboon; 26static volatile struct baboon *baboon;
27
28irqreturn_t baboon_irq(int, void *);
29 27
30#if 0 28#if 0
31extern int macide_ack_intr(struct ata_channel *); 29extern int macide_ack_intr(struct ata_channel *);
@@ -50,20 +48,10 @@ void __init baboon_init(void)
50} 48}
51 49
52/* 50/*
53 * Register the Baboon interrupt dispatcher on nubus slot $C.
54 */
55
56void __init baboon_register_interrupts(void)
57{
58 request_irq(IRQ_NUBUS_C, baboon_irq, IRQ_FLG_LOCK|IRQ_FLG_FAST,
59 "baboon", (void *) baboon);
60}
61
62/*
63 * Baboon interrupt handler. This works a lot like a VIA. 51 * Baboon interrupt handler. This works a lot like a VIA.
64 */ 52 */
65 53
66irqreturn_t baboon_irq(int irq, void *dev_id) 54static irqreturn_t baboon_irq(int irq, void *dev_id)
67{ 55{
68 int irq_bit, irq_num; 56 int irq_bit, irq_num;
69 unsigned char events; 57 unsigned char events;
@@ -95,6 +83,16 @@ irqreturn_t baboon_irq(int irq, void *dev_id)
95 return IRQ_HANDLED; 83 return IRQ_HANDLED;
96} 84}
97 85
86/*
87 * Register the Baboon interrupt dispatcher on nubus slot $C.
88 */
89
90void __init baboon_register_interrupts(void)
91{
92 request_irq(IRQ_NUBUS_C, baboon_irq, IRQ_FLG_LOCK|IRQ_FLG_FAST,
93 "baboon", (void *) baboon);
94}
95
98void baboon_irq_enable(int irq) { 96void baboon_irq_enable(int irq) {
99#ifdef DEBUG_IRQUSE 97#ifdef DEBUG_IRQUSE
100 printk("baboon_irq_enable(%d)\n", irq); 98 printk("baboon_irq_enable(%d)\n", irq);
diff --git a/arch/m68k/mac/bootparse.c b/arch/m68k/mac/bootparse.c
deleted file mode 100644
index 36d223609823..000000000000
--- a/arch/m68k/mac/bootparse.c
+++ /dev/null
@@ -1,122 +0,0 @@
1#include <linux/string.h>
2#include <linux/kernel.h>
3#include <linux/sched.h>
4#include <asm/irq.h>
5#include <asm/setup.h>
6#include <asm/bootinfo.h>
7#include <asm/macintosh.h>
8
9/*
10 * Booter vars
11 */
12
13int boothowto;
14int _boothowto;
15
16/*
17 * Called early to parse the environment (passed to us from the booter)
18 * into a bootinfo struct. Will die as soon as we have our own booter
19 */
20
21#define atol(x) simple_strtoul(x,NULL,0)
22
23void parse_booter(char *env)
24{
25 char *name;
26 char *value;
27#if 0
28 while(0 && *env)
29#else
30 while(*env)
31#endif
32 {
33 name=env;
34 value=name;
35 while(*value!='='&&*value)
36 value++;
37 if(*value=='=')
38 *value++=0;
39 env=value;
40 while(*env)
41 env++;
42 env++;
43#if 0
44 if(strcmp(name,"VIDEO_ADDR")==0)
45 mac_mch.videoaddr=atol(value);
46 if(strcmp(name,"ROW_BYTES")==0)
47 mac_mch.videorow=atol(value);
48 if(strcmp(name,"SCREEN_DEPTH")==0)
49 mac_mch.videodepth=atol(value);
50 if(strcmp(name,"DIMENSIONS")==0)
51 mac_mch.dimensions=atol(value);
52#endif
53 if(strcmp(name,"BOOTTIME")==0)
54 mac_bi_data.boottime=atol(value);
55 if(strcmp(name,"GMTBIAS")==0)
56 mac_bi_data.gmtbias=atol(value);
57 if(strcmp(name,"BOOTERVER")==0)
58 mac_bi_data.bootver=atol(value);
59 if(strcmp(name,"MACOS_VIDEO")==0)
60 mac_bi_data.videological=atol(value);
61 if(strcmp(name,"MACOS_SCC")==0)
62 mac_bi_data.sccbase=atol(value);
63 if(strcmp(name,"MACHINEID")==0)
64 mac_bi_data.id=atol(value);
65 if(strcmp(name,"MEMSIZE")==0)
66 mac_bi_data.memsize=atol(value);
67 if(strcmp(name,"SERIAL_MODEM_FLAGS")==0)
68 mac_bi_data.serialmf=atol(value);
69 if(strcmp(name,"SERIAL_MODEM_HSKICLK")==0)
70 mac_bi_data.serialhsk=atol(value);
71 if(strcmp(name,"SERIAL_MODEM_GPICLK")==0)
72 mac_bi_data.serialgpi=atol(value);
73 if(strcmp(name,"SERIAL_PRINT_FLAGS")==0)
74 mac_bi_data.printmf=atol(value);
75 if(strcmp(name,"SERIAL_PRINT_HSKICLK")==0)
76 mac_bi_data.printhsk=atol(value);
77 if(strcmp(name,"SERIAL_PRINT_GPICLK")==0)
78 mac_bi_data.printgpi=atol(value);
79 if(strcmp(name,"PROCESSOR")==0)
80 mac_bi_data.cpuid=atol(value);
81 if(strcmp(name,"ROMBASE")==0)
82 mac_bi_data.rombase=atol(value);
83 if(strcmp(name,"TIMEDBRA")==0)
84 mac_bi_data.timedbra=atol(value);
85 if(strcmp(name,"ADBDELAY")==0)
86 mac_bi_data.adbdelay=atol(value);
87 }
88#if 0 /* XXX: TODO with m68k_mach_* */
89 /* Fill in the base stuff */
90 boot_info.machtype=MACH_MAC;
91 /* Read this from the macinfo we got ! */
92/* boot_info.cputype=CPU_68020|FPUB_68881;*/
93/* boot_info.memory[0].addr=0;*/
94/* boot_info.memory[0].size=((mac_bi_data.id>>7)&31)<<20;*/
95 boot_info.num_memory=1; /* On a MacII */
96 boot_info.ramdisk_size=0; /* For now */
97 *boot_info.command_line=0;
98#endif
99 }
100
101
102void print_booter(char *env)
103{
104 char *name;
105 char *value;
106 while(*env)
107 {
108 name=env;
109 value=name;
110 while(*value!='='&&*value)
111 value++;
112 if(*value=='=')
113 *value++=0;
114 env=value;
115 while(*env)
116 env++;
117 env++;
118 printk("%s=%s\n", name,value);
119 }
120 }
121
122
diff --git a/arch/m68k/mac/config.c b/arch/m68k/mac/config.c
index ad3e3bacae39..c45e18449f32 100644
--- a/arch/m68k/mac/config.c
+++ b/arch/m68k/mac/config.c
@@ -46,7 +46,6 @@
46/* Mac bootinfo struct */ 46/* Mac bootinfo struct */
47 47
48struct mac_booter_data mac_bi_data; 48struct mac_booter_data mac_bi_data;
49int mac_bisize = sizeof mac_bi_data;
50 49
51/* New m68k bootinfo stuff and videobase */ 50/* New m68k bootinfo stuff and videobase */
52 51
@@ -55,10 +54,8 @@ extern struct mem_info m68k_memory[NUM_MEMINFO];
55 54
56extern struct mem_info m68k_ramdisk; 55extern struct mem_info m68k_ramdisk;
57 56
58void *mac_env; /* Loaded by the boot asm */
59
60/* The phys. video addr. - might be bogus on some machines */ 57/* The phys. video addr. - might be bogus on some machines */
61unsigned long mac_orig_videoaddr; 58static unsigned long mac_orig_videoaddr;
62 59
63/* Mac specific timer functions */ 60/* Mac specific timer functions */
64extern unsigned long mac_gettimeoffset(void); 61extern unsigned long mac_gettimeoffset(void);
@@ -79,6 +76,8 @@ extern void mac_mksound(unsigned int, unsigned int);
79extern void nubus_sweep_video(void); 76extern void nubus_sweep_video(void);
80 77
81static void mac_get_model(char *str); 78static void mac_get_model(char *str);
79static void mac_identify(void);
80static void mac_report_hardware(void);
82 81
83static void __init mac_sched_init(irq_handler_t vector) 82static void __init mac_sched_init(irq_handler_t vector)
84{ 83{
@@ -765,7 +764,7 @@ static struct mac_model mac_data_table[] = {
765 } 764 }
766}; 765};
767 766
768void __init mac_identify(void) 767static void __init mac_identify(void)
769{ 768{
770 struct mac_model *m; 769 struct mac_model *m;
771 770
@@ -821,7 +820,7 @@ void __init mac_identify(void)
821 baboon_init(); 820 baboon_init();
822} 821}
823 822
824void __init mac_report_hardware(void) 823static void __init mac_report_hardware(void)
825{ 824{
826 printk(KERN_INFO "Apple Macintosh %s\n", macintosh_config->name); 825 printk(KERN_INFO "Apple Macintosh %s\n", macintosh_config->name);
827} 826}
diff --git a/arch/m68k/mac/debug.c b/arch/m68k/mac/debug.c
index e8a57138b4a6..2165740786a5 100644
--- a/arch/m68k/mac/debug.c
+++ b/arch/m68k/mac/debug.c
@@ -51,6 +51,8 @@ extern void mac_serial_print(const char *);
51static int peng, line; 51static int peng, line;
52#endif 52#endif
53 53
54#if 0
55
54void mac_debugging_short(int pos, short num) 56void mac_debugging_short(int pos, short num)
55{ 57{
56#ifdef DEBUG_SCREEN 58#ifdef DEBUG_SCREEN
@@ -125,6 +127,8 @@ void mac_debugging_long(int pos, long addr)
125#endif 127#endif
126} 128}
127 129
130#endif /* 0 */
131
128#ifdef DEBUG_SERIAL 132#ifdef DEBUG_SERIAL
129/* 133/*
130 * TODO: serial debug code 134 * TODO: serial debug code
@@ -142,12 +146,6 @@ struct mac_SCC {
142 146
143# define scc (*((volatile struct mac_SCC*)mac_bi_data.sccbase)) 147# define scc (*((volatile struct mac_SCC*)mac_bi_data.sccbase))
144 148
145/* Flag that serial port is already initialized and used */
146int mac_SCC_init_done;
147/* Can be set somewhere, if a SCC master reset has already be done and should
148 * not be repeated; used by kgdb */
149int mac_SCC_reset_done;
150
151static int scc_port = -1; 149static int scc_port = -1;
152 150
153static struct console mac_console_driver = { 151static struct console mac_console_driver = {
@@ -171,8 +169,8 @@ static struct console mac_console_driver = {
171 * this driver if Mac. 169 * this driver if Mac.
172 */ 170 */
173 171
174void mac_debug_console_write(struct console *co, const char *str, 172static void mac_debug_console_write(struct console *co, const char *str,
175 unsigned int count) 173 unsigned int count)
176{ 174{
177 mac_serial_print(str); 175 mac_serial_print(str);
178} 176}
@@ -209,8 +207,8 @@ static inline void mac_scca_out(char c)
209 scc.cha_a_data = c; 207 scc.cha_a_data = c;
210} 208}
211 209
212void mac_sccb_console_write(struct console *co, const char *str, 210static void mac_sccb_console_write(struct console *co, const char *str,
213 unsigned int count) 211 unsigned int count)
214{ 212{
215 while (count--) { 213 while (count--) {
216 if (*str == '\n') 214 if (*str == '\n')
@@ -219,8 +217,8 @@ void mac_sccb_console_write(struct console *co, const char *str,
219 } 217 }
220} 218}
221 219
222void mac_scca_console_write(struct console *co, const char *str, 220static void mac_scca_console_write(struct console *co, const char *str,
223 unsigned int count) 221 unsigned int count)
224{ 222{
225 while (count--) { 223 while (count--) {
226 if (*str == '\n') 224 if (*str == '\n')
@@ -265,14 +263,8 @@ void mac_scca_console_write(struct console *co, const char *str,
265 barrier(); \ 263 barrier(); \
266 } while(0) 264 } while(0)
267 265
268#ifndef CONFIG_SERIAL_CONSOLE
269static void __init mac_init_scc_port(int cflag, int port) 266static void __init mac_init_scc_port(int cflag, int port)
270#else
271void mac_init_scc_port(int cflag, int port)
272#endif
273{ 267{
274 extern int mac_SCC_reset_done;
275
276 /* 268 /*
277 * baud rates: 1200, 1800, 2400, 4800, 9600, 19.2k, 38.4k, 57.6k, 115.2k 269 * baud rates: 1200, 1800, 2400, 4800, 9600, 19.2k, 38.4k, 57.6k, 115.2k
278 */ 270 */
@@ -340,22 +332,9 @@ void mac_init_scc_port(int cflag, int port)
340 SCCA_WRITE(3, reg3 | 1); 332 SCCA_WRITE(3, reg3 | 1);
341 SCCA_WRITE(5, reg5 | 8); 333 SCCA_WRITE(5, reg5 | 8);
342 } 334 }
343
344 mac_SCC_reset_done = 1;
345 mac_SCC_init_done = 1;
346} 335}
347#endif /* DEBUG_SERIAL */ 336#endif /* DEBUG_SERIAL */
348 337
349void mac_init_scca_port(int cflag)
350{
351 mac_init_scc_port(cflag, 0);
352}
353
354void mac_init_sccb_port(int cflag)
355{
356 mac_init_scc_port(cflag, 1);
357}
358
359static int __init mac_debug_setup(char *arg) 338static int __init mac_debug_setup(char *arg)
360{ 339{
361 if (!MACH_IS_MAC) 340 if (!MACH_IS_MAC)
diff --git a/arch/m68k/mac/oss.c b/arch/m68k/mac/oss.c
index 3c943d2ec570..43d83e054b8e 100644
--- a/arch/m68k/mac/oss.c
+++ b/arch/m68k/mac/oss.c
@@ -30,8 +30,8 @@
30int oss_present; 30int oss_present;
31volatile struct mac_oss *oss; 31volatile struct mac_oss *oss;
32 32
33irqreturn_t oss_irq(int, void *); 33static irqreturn_t oss_irq(int, void *);
34irqreturn_t oss_nubus_irq(int, void *); 34static irqreturn_t oss_nubus_irq(int, void *);
35 35
36extern irqreturn_t via1_irq(int, void *); 36extern irqreturn_t via1_irq(int, void *);
37extern irqreturn_t mac_scc_dispatch(int, void *); 37extern irqreturn_t mac_scc_dispatch(int, void *);
@@ -92,7 +92,7 @@ void __init oss_nubus_init(void)
92 * and SCSI; everything else is routed to its own autovector IRQ. 92 * and SCSI; everything else is routed to its own autovector IRQ.
93 */ 93 */
94 94
95irqreturn_t oss_irq(int irq, void *dev_id) 95static irqreturn_t oss_irq(int irq, void *dev_id)
96{ 96{
97 int events; 97 int events;
98 98
@@ -126,7 +126,7 @@ irqreturn_t oss_irq(int irq, void *dev_id)
126 * Unlike the VIA/RBV this is on its own autovector interrupt level. 126 * Unlike the VIA/RBV this is on its own autovector interrupt level.
127 */ 127 */
128 128
129irqreturn_t oss_nubus_irq(int irq, void *dev_id) 129static irqreturn_t oss_nubus_irq(int irq, void *dev_id)
130{ 130{
131 int events, irq_bit, i; 131 int events, irq_bit, i;
132 132
diff --git a/arch/m68k/mac/psc.c b/arch/m68k/mac/psc.c
index d66f723b17c3..f84a4dd64f94 100644
--- a/arch/m68k/mac/psc.c
+++ b/arch/m68k/mac/psc.c
@@ -36,7 +36,7 @@ irqreturn_t psc_irq(int, void *);
36 * Debugging dump, used in various places to see what's going on. 36 * Debugging dump, used in various places to see what's going on.
37 */ 37 */
38 38
39void psc_debug_dump(void) 39static void psc_debug_dump(void)
40{ 40{
41 int i; 41 int i;
42 42
@@ -55,7 +55,7 @@ void psc_debug_dump(void)
55 * expanded to cover what I think are the other 7 channels. 55 * expanded to cover what I think are the other 7 channels.
56 */ 56 */
57 57
58void psc_dma_die_die_die(void) 58static void psc_dma_die_die_die(void)
59{ 59{
60 int i; 60 int i;
61 61
diff --git a/arch/m68k/mac/via.c b/arch/m68k/mac/via.c
index fa485df4160e..f3b27d04a31f 100644
--- a/arch/m68k/mac/via.c
+++ b/arch/m68k/mac/via.c
@@ -45,7 +45,7 @@ volatile long *via_memory_bogon=(long *)&via_memory_bogon;
45int rbv_present; 45int rbv_present;
46int via_alt_mapping; 46int via_alt_mapping;
47EXPORT_SYMBOL(via_alt_mapping); 47EXPORT_SYMBOL(via_alt_mapping);
48__u8 rbv_clear; 48static __u8 rbv_clear;
49 49
50/* 50/*
51 * Globals for accessing the VIA chip registers without having to 51 * Globals for accessing the VIA chip registers without having to
diff --git a/arch/m68k/math-emu/Makefile b/arch/m68k/math-emu/Makefile
index 539940401814..a0935bf98362 100644
--- a/arch/m68k/math-emu/Makefile
+++ b/arch/m68k/math-emu/Makefile
@@ -2,8 +2,6 @@
2# Makefile for the linux kernel. 2# Makefile for the linux kernel.
3# 3#
4 4
5EXTRA_AFLAGS := -traditional
6
7#EXTRA_AFLAGS += -DFPU_EMU_DEBUG 5#EXTRA_AFLAGS += -DFPU_EMU_DEBUG
8#EXTRA_CFLAGS += -DFPU_EMU_DEBUG 6#EXTRA_CFLAGS += -DFPU_EMU_DEBUG
9 7
diff --git a/arch/m68k/mm/motorola.c b/arch/m68k/mm/motorola.c
index 30d34f285024..226795bdf355 100644
--- a/arch/m68k/mm/motorola.c
+++ b/arch/m68k/mm/motorola.c
@@ -285,7 +285,6 @@ void __init paging_init(void)
285 * to a couple of allocated pages 285 * to a couple of allocated pages
286 */ 286 */
287 empty_zero_page = alloc_bootmem_pages(PAGE_SIZE); 287 empty_zero_page = alloc_bootmem_pages(PAGE_SIZE);
288 memset(empty_zero_page, 0, PAGE_SIZE);
289 288
290 /* 289 /*
291 * Set up SFC/DFC registers 290 * Set up SFC/DFC registers
diff --git a/arch/m68k/mm/sun3mmu.c b/arch/m68k/mm/sun3mmu.c
index 6a6513aa1ce8..edceefc18870 100644
--- a/arch/m68k/mm/sun3mmu.c
+++ b/arch/m68k/mm/sun3mmu.c
@@ -53,7 +53,6 @@ void __init paging_init(void)
53 wp_works_ok = 0; 53 wp_works_ok = 0;
54#endif 54#endif
55 empty_zero_page = alloc_bootmem_pages(PAGE_SIZE); 55 empty_zero_page = alloc_bootmem_pages(PAGE_SIZE);
56 memset(empty_zero_page, 0, PAGE_SIZE);
57 56
58 address = PAGE_OFFSET; 57 address = PAGE_OFFSET;
59 pg_dir = swapper_pg_dir; 58 pg_dir = swapper_pg_dir;
diff --git a/arch/m68k/q40/config.c b/arch/m68k/q40/config.c
index 476e18eca758..be9de2f3dc48 100644
--- a/arch/m68k/q40/config.c
+++ b/arch/m68k/q40/config.c
@@ -41,14 +41,12 @@ static void q40_get_model(char *model);
41static int q40_get_hardware_list(char *buffer); 41static int q40_get_hardware_list(char *buffer);
42extern void q40_sched_init(irq_handler_t handler); 42extern void q40_sched_init(irq_handler_t handler);
43 43
44extern unsigned long q40_gettimeoffset(void); 44static unsigned long q40_gettimeoffset(void);
45extern int q40_hwclk(int, struct rtc_time *); 45static int q40_hwclk(int, struct rtc_time *);
46extern unsigned int q40_get_ss(void); 46static unsigned int q40_get_ss(void);
47extern int q40_set_clock_mmss(unsigned long); 47static int q40_set_clock_mmss(unsigned long);
48static int q40_get_rtc_pll(struct rtc_pll_info *pll); 48static int q40_get_rtc_pll(struct rtc_pll_info *pll);
49static int q40_set_rtc_pll(struct rtc_pll_info *pll); 49static int q40_set_rtc_pll(struct rtc_pll_info *pll);
50extern void q40_reset(void);
51void q40_halt(void);
52extern void q40_waitbut(void); 50extern void q40_waitbut(void);
53void q40_set_vectors(void); 51void q40_set_vectors(void);
54 52
@@ -127,7 +125,7 @@ static void q40_heartbeat(int on)
127} 125}
128#endif 126#endif
129 127
130void q40_reset(void) 128static void q40_reset(void)
131{ 129{
132 halted = 1; 130 halted = 1;
133 printk("\n\n*******************************************\n" 131 printk("\n\n*******************************************\n"
@@ -137,7 +135,8 @@ void q40_reset(void)
137 while (1) 135 while (1)
138 ; 136 ;
139} 137}
140void q40_halt(void) 138
139static void q40_halt(void)
141{ 140{
142 halted = 1; 141 halted = 1;
143 printk("\n\n*******************\n" 142 printk("\n\n*******************\n"
@@ -165,7 +164,8 @@ static unsigned int serports[] =
165{ 164{
166 0x3f8,0x2f8,0x3e8,0x2e8,0 165 0x3f8,0x2f8,0x3e8,0x2e8,0
167}; 166};
168void q40_disable_irqs(void) 167
168static void q40_disable_irqs(void)
169{ 169{
170 unsigned i, j; 170 unsigned i, j;
171 171
@@ -227,7 +227,7 @@ static inline unsigned char bin2bcd(unsigned char b)
227} 227}
228 228
229 229
230unsigned long q40_gettimeoffset(void) 230static unsigned long q40_gettimeoffset(void)
231{ 231{
232 return 5000 * (ql_ticks != 0); 232 return 5000 * (ql_ticks != 0);
233} 233}
@@ -248,7 +248,7 @@ unsigned long q40_gettimeoffset(void)
248 * }; 248 * };
249 */ 249 */
250 250
251int q40_hwclk(int op, struct rtc_time *t) 251static int q40_hwclk(int op, struct rtc_time *t)
252{ 252{
253 if (op) { 253 if (op) {
254 /* Write.... */ 254 /* Write.... */
@@ -285,7 +285,7 @@ int q40_hwclk(int op, struct rtc_time *t)
285 return 0; 285 return 0;
286} 286}
287 287
288unsigned int q40_get_ss(void) 288static unsigned int q40_get_ss(void)
289{ 289{
290 return bcd2bin(Q40_RTC_SECS); 290 return bcd2bin(Q40_RTC_SECS);
291} 291}
@@ -295,7 +295,7 @@ unsigned int q40_get_ss(void)
295 * clock is out by > 30 minutes. Logic lifted from atari code. 295 * clock is out by > 30 minutes. Logic lifted from atari code.
296 */ 296 */
297 297
298int q40_set_clock_mmss(unsigned long nowtime) 298static int q40_set_clock_mmss(unsigned long nowtime)
299{ 299{
300 int retval = 0; 300 int retval = 0;
301 short real_seconds = nowtime % 60, real_minutes = (nowtime / 60) % 60; 301 short real_seconds = nowtime % 60, real_minutes = (nowtime / 60) % 60;
diff --git a/arch/m68k/sun3/Makefile b/arch/m68k/sun3/Makefile
index be1a8470d636..38ba0e0cedad 100644
--- a/arch/m68k/sun3/Makefile
+++ b/arch/m68k/sun3/Makefile
@@ -2,6 +2,6 @@
2# Makefile for Linux arch/m68k/sun3 source directory 2# Makefile for Linux arch/m68k/sun3 source directory
3# 3#
4 4
5obj-y := sun3ints.o sun3dvma.o sbus.o idprom.o 5obj-y := sun3ints.o sun3dvma.o idprom.o
6 6
7obj-$(CONFIG_SUN3) += config.o mmu_emu.o leds.o dvma.o intersil.o 7obj-$(CONFIG_SUN3) += config.o mmu_emu.o leds.o dvma.o intersil.o
diff --git a/arch/m68k/sun3/config.c b/arch/m68k/sun3/config.c
index c0fbd278fbb1..732087d0735c 100644
--- a/arch/m68k/sun3/config.c
+++ b/arch/m68k/sun3/config.c
@@ -36,7 +36,7 @@ extern char _text, _end;
36char sun3_reserved_pmeg[SUN3_PMEGS_NUM]; 36char sun3_reserved_pmeg[SUN3_PMEGS_NUM];
37 37
38extern unsigned long sun3_gettimeoffset(void); 38extern unsigned long sun3_gettimeoffset(void);
39extern void sun3_sched_init(irq_handler_t handler); 39static void sun3_sched_init(irq_handler_t handler);
40extern void sun3_get_model (char* model); 40extern void sun3_get_model (char* model);
41extern void idprom_init (void); 41extern void idprom_init (void);
42extern int sun3_hwclk(int set, struct rtc_time *t); 42extern int sun3_hwclk(int set, struct rtc_time *t);
@@ -114,7 +114,8 @@ static void sun3_halt (void)
114 114
115/* sun3 bootmem allocation */ 115/* sun3 bootmem allocation */
116 116
117void __init sun3_bootmem_alloc(unsigned long memory_start, unsigned long memory_end) 117static void __init sun3_bootmem_alloc(unsigned long memory_start,
118 unsigned long memory_end)
118{ 119{
119 unsigned long start_page; 120 unsigned long start_page;
120 121
@@ -164,7 +165,7 @@ void __init config_sun3(void)
164 sun3_bootmem_alloc(memory_start, memory_end); 165 sun3_bootmem_alloc(memory_start, memory_end);
165} 166}
166 167
167void __init sun3_sched_init(irq_handler_t timer_routine) 168static void __init sun3_sched_init(irq_handler_t timer_routine)
168{ 169{
169 sun3_disable_interrupts(); 170 sun3_disable_interrupts();
170 intersil_clock->cmd_reg=(INTERSIL_RUN|INTERSIL_INT_DISABLE|INTERSIL_24H_MODE); 171 intersil_clock->cmd_reg=(INTERSIL_RUN|INTERSIL_INT_DISABLE|INTERSIL_24H_MODE);
diff --git a/arch/m68k/sun3/dvma.c b/arch/m68k/sun3/dvma.c
index d2b3093f2405..d522eaab4551 100644
--- a/arch/m68k/sun3/dvma.c
+++ b/arch/m68k/sun3/dvma.c
@@ -19,7 +19,7 @@
19 19
20static unsigned long ptelist[120]; 20static unsigned long ptelist[120];
21 21
22inline unsigned long dvma_page(unsigned long kaddr, unsigned long vaddr) 22static unsigned long dvma_page(unsigned long kaddr, unsigned long vaddr)
23{ 23{
24 unsigned long pte; 24 unsigned long pte;
25 unsigned long j; 25 unsigned long j;
diff --git a/arch/m68k/sun3/idprom.c b/arch/m68k/sun3/idprom.c
index dca6ab6a4ede..c86ac37d1983 100644
--- a/arch/m68k/sun3/idprom.c
+++ b/arch/m68k/sun3/idprom.c
@@ -1,4 +1,4 @@
1/* $Id: idprom.c,v 1.22 1996/11/13 05:09:25 davem Exp $ 1/*
2 * idprom.c: Routines to load the idprom into kernel addresses and 2 * idprom.c: Routines to load the idprom into kernel addresses and
3 * interpret the data contained within. 3 * interpret the data contained within.
4 * 4 *
@@ -25,7 +25,7 @@ static struct idprom idprom_buffer;
25 * of the Sparc CPU and have a meaningful IDPROM machtype value that we 25 * of the Sparc CPU and have a meaningful IDPROM machtype value that we
26 * know about. See asm-sparc/machines.h for empirical constants. 26 * know about. See asm-sparc/machines.h for empirical constants.
27 */ 27 */
28struct Sun_Machine_Models Sun_Machines[NUM_SUN_MACHINES] = { 28static struct Sun_Machine_Models Sun_Machines[NUM_SUN_MACHINES] = {
29/* First, Sun3's */ 29/* First, Sun3's */
30 { .name = "Sun 3/160 Series", .id_machtype = (SM_SUN3 | SM_3_160) }, 30 { .name = "Sun 3/160 Series", .id_machtype = (SM_SUN3 | SM_3_160) },
31 { .name = "Sun 3/50", .id_machtype = (SM_SUN3 | SM_3_50) }, 31 { .name = "Sun 3/50", .id_machtype = (SM_SUN3 | SM_3_50) },
diff --git a/arch/m68k/sun3/mmu_emu.c b/arch/m68k/sun3/mmu_emu.c
index fb0f6a20cc3c..60f9d4500d72 100644
--- a/arch/m68k/sun3/mmu_emu.c
+++ b/arch/m68k/sun3/mmu_emu.c
@@ -55,7 +55,7 @@ unsigned char pmeg_ctx[PMEGS_NUM];
55 55
56/* pointers to the mm structs for each task in each 56/* pointers to the mm structs for each task in each
57 context. 0xffffffff is a marker for kernel context */ 57 context. 0xffffffff is a marker for kernel context */
58struct mm_struct *ctx_alloc[CONTEXTS_NUM] = { 58static struct mm_struct *ctx_alloc[CONTEXTS_NUM] = {
59 [0] = (struct mm_struct *)0xffffffff 59 [0] = (struct mm_struct *)0xffffffff
60}; 60};
61 61
diff --git a/arch/m68k/sun3/prom/Makefile b/arch/m68k/sun3/prom/Makefile
index 6e48ae2a7175..da7eac06bca0 100644
--- a/arch/m68k/sun3/prom/Makefile
+++ b/arch/m68k/sun3/prom/Makefile
@@ -1,4 +1,3 @@
1# $Id: Makefile,v 1.5 1995/11/25 00:59:48 davem Exp $
2# Makefile for the Sun Boot PROM interface library under 1# Makefile for the Sun Boot PROM interface library under
3# Linux. 2# Linux.
4# 3#
diff --git a/arch/m68k/sun3/prom/console.c b/arch/m68k/sun3/prom/console.c
index 52c1427863de..2bcb6e4bfe54 100644
--- a/arch/m68k/sun3/prom/console.c
+++ b/arch/m68k/sun3/prom/console.c
@@ -1,4 +1,4 @@
1/* $Id: console.c,v 1.10 1996/12/18 06:46:54 tridge Exp $ 1/*
2 * console.c: Routines that deal with sending and receiving IO 2 * console.c: Routines that deal with sending and receiving IO
3 * to/from the current console device using the PROM. 3 * to/from the current console device using the PROM.
4 * 4 *
@@ -104,8 +104,6 @@ prom_query_input_device()
104 return PROMDEV_ITTYB; 104 return PROMDEV_ITTYB;
105 } 105 }
106 return PROMDEV_I_UNK; 106 return PROMDEV_I_UNK;
107 case PROM_AP1000:
108 return PROMDEV_I_UNK;
109 }; 107 };
110} 108}
111#endif 109#endif
@@ -166,8 +164,6 @@ prom_query_output_device()
166 }; 164 };
167 } 165 }
168 break; 166 break;
169 case PROM_AP1000:
170 return PROMDEV_I_UNK;
171 }; 167 };
172 return PROMDEV_O_UNK; 168 return PROMDEV_O_UNK;
173} 169}
diff --git a/arch/m68k/sun3/prom/init.c b/arch/m68k/sun3/prom/init.c
index 202adfcc316e..d8e6349336b4 100644
--- a/arch/m68k/sun3/prom/init.c
+++ b/arch/m68k/sun3/prom/init.c
@@ -1,4 +1,4 @@
1/* $Id: init.c,v 1.9 1996/12/18 06:46:55 tridge Exp $ 1/*
2 * init.c: Initialize internal variables used by the PROM 2 * init.c: Initialize internal variables used by the PROM
3 * library functions. 3 * library functions.
4 * 4 *
@@ -31,11 +31,6 @@ extern void prom_ranges_init(void);
31 31
32void __init prom_init(struct linux_romvec *rp) 32void __init prom_init(struct linux_romvec *rp)
33{ 33{
34#ifdef CONFIG_AP1000
35 extern struct linux_romvec *ap_prom_init(void);
36 rp = ap_prom_init();
37#endif
38
39 romvec = rp; 34 romvec = rp;
40#ifndef CONFIG_SUN3 35#ifndef CONFIG_SUN3
41 switch(romvec->pv_romvers) { 36 switch(romvec->pv_romvers) {
@@ -53,10 +48,6 @@ void __init prom_init(struct linux_romvec *rp)
53 prom_printf("PROMLIB: Sun IEEE Prom not supported yet\n"); 48 prom_printf("PROMLIB: Sun IEEE Prom not supported yet\n");
54 prom_halt(); 49 prom_halt();
55 break; 50 break;
56 case 42: /* why not :-) */
57 prom_vers = PROM_AP1000;
58 break;
59
60 default: 51 default:
61 prom_printf("PROMLIB: Bad PROM version %d\n", 52 prom_printf("PROMLIB: Bad PROM version %d\n",
62 romvec->pv_romvers); 53 romvec->pv_romvers);
diff --git a/arch/m68k/sun3/prom/misc.c b/arch/m68k/sun3/prom/misc.c
index b88716f2c68c..3d60e1337f75 100644
--- a/arch/m68k/sun3/prom/misc.c
+++ b/arch/m68k/sun3/prom/misc.c
@@ -1,4 +1,4 @@
1/* $Id: misc.c,v 1.15 1997/05/14 20:45:00 davem Exp $ 1/*
2 * misc.c: Miscellaneous prom functions that don't belong 2 * misc.c: Miscellaneous prom functions that don't belong
3 * anywhere else. 3 * anywhere else.
4 * 4 *
diff --git a/arch/m68k/sun3/prom/printf.c b/arch/m68k/sun3/prom/printf.c
index e7bfde377b5e..df85018f487a 100644
--- a/arch/m68k/sun3/prom/printf.c
+++ b/arch/m68k/sun3/prom/printf.c
@@ -1,4 +1,4 @@
1/* $Id: printf.c,v 1.5 1996/04/04 16:31:07 tridge Exp $ 1/*
2 * printf.c: Internal prom library printf facility. 2 * printf.c: Internal prom library printf facility.
3 * 3 *
4 * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu) 4 * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
@@ -37,10 +37,6 @@ prom_printf(char *fmt, ...)
37 37
38 bptr = ppbuf; 38 bptr = ppbuf;
39 39
40#ifdef CONFIG_AP1000
41 ap_write(1,bptr,strlen(bptr));
42#else
43
44#ifdef CONFIG_KGDB 40#ifdef CONFIG_KGDB
45 if (kgdb_initialized) { 41 if (kgdb_initialized) {
46 printk("kgdb_initialized = %d\n", kgdb_initialized); 42 printk("kgdb_initialized = %d\n", kgdb_initialized);
@@ -54,7 +50,6 @@ prom_printf(char *fmt, ...)
54 prom_putchar(ch); 50 prom_putchar(ch);
55 } 51 }
56#endif 52#endif
57#endif
58 va_end(args); 53 va_end(args);
59 return; 54 return;
60} 55}
diff --git a/arch/m68k/sun3/sbus.c b/arch/m68k/sun3/sbus.c
deleted file mode 100644
index babdbfa3cda7..000000000000
--- a/arch/m68k/sun3/sbus.c
+++ /dev/null
@@ -1,27 +0,0 @@
1/*
2 * SBus helper functions
3 *
4 * Sun3 don't have a sbus, but many of the used devices are also
5 * used on Sparc machines with sbus. To avoid having a lot of
6 * duplicate code, we provide necessary glue stuff to make using
7 * of the sbus driver code possible.
8 *
9 * (C) 1999 Thomas Bogendoerfer (tsbogend@alpha.franken.de)
10 */
11
12#include <linux/types.h>
13#include <linux/compiler.h>
14#include <linux/init.h>
15
16int __init sbus_init(void)
17{
18 return 0;
19}
20
21void *sparc_alloc_io (u32 address, void *virtual, int len, char *name,
22 u32 bus_type, int rdonly)
23{
24 return (void *)address;
25}
26
27subsys_initcall(sbus_init);
diff --git a/arch/m68k/sun3/sun3dvma.c b/arch/m68k/sun3/sun3dvma.c
index 8709677fa025..f9277e8b4159 100644
--- a/arch/m68k/sun3/sun3dvma.c
+++ b/arch/m68k/sun3/sun3dvma.c
@@ -29,7 +29,7 @@ static inline void dvma_unmap_iommu(unsigned long a, int b)
29extern void sun3_dvma_init(void); 29extern void sun3_dvma_init(void);
30#endif 30#endif
31 31
32unsigned long iommu_use[IOMMU_TOTAL_ENTRIES]; 32static unsigned long iommu_use[IOMMU_TOTAL_ENTRIES];
33 33
34#define dvma_index(baddr) ((baddr - DVMA_START) >> DVMA_PAGE_SHIFT) 34#define dvma_index(baddr) ((baddr - DVMA_START) >> DVMA_PAGE_SHIFT)
35 35
diff --git a/arch/m68k/sun3/sun3ints.c b/arch/m68k/sun3/sun3ints.c
index cf93481adb1d..7364cd67455e 100644
--- a/arch/m68k/sun3/sun3ints.c
+++ b/arch/m68k/sun3/sun3ints.c
@@ -30,7 +30,7 @@ void sun3_enable_interrupts(void)
30 sun3_enable_irq(0); 30 sun3_enable_irq(0);
31} 31}
32 32
33int led_pattern[8] = { 33static int led_pattern[8] = {
34 ~(0x80), ~(0x01), 34 ~(0x80), ~(0x01),
35 ~(0x40), ~(0x02), 35 ~(0x40), ~(0x02),
36 ~(0x20), ~(0x04), 36 ~(0x20), ~(0x04),