Commit 8b22820e authored by Arnd Bergmann's avatar Arnd Bergmann Committed by Greg Ungerer

m68k: m68328: remove duplicate code

Building a kernel with multiple dragonball based boards
enabled needlessly causes a link failure because of duplicate
config_BSP() functions between the CPU versions.

Avoid that merging the three almost identical files into one,
and hiding the CPU configuration behind the board config.
The pr_info() lines are consolidated in one place.

It is still not possible to run a kernel configured for
more than one board, but at least configurations that can
be selected can also be built now.
Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
Signed-off-by: default avatarGreg Ungerer <gerg@linux-m68k.org>
parent a734bbf6
...@@ -10,10 +10,7 @@ ...@@ -10,10 +10,7 @@
# 68328, 68EZ328, 68VZ328 # 68328, 68EZ328, 68VZ328
obj-y += entry.o ints.o timers.o obj-y += entry.o ints.o timers.o m68328.o
obj-$(CONFIG_M68328) += m68328.o
obj-$(CONFIG_M68EZ328) += m68EZ328.o
obj-$(CONFIG_M68VZ328) += m68VZ328.o
obj-$(CONFIG_ROM) += romvec.o obj-$(CONFIG_ROM) += romvec.o
obj-$(CONFIG_DRAGEN2) += dragen2.o obj-$(CONFIG_DRAGEN2) += dragen2.o
......
/***************************************************************************/ /***************************************************************************/
/* /*
* m68328.c - 68328 specific config * m68328.c - 68328/68EZ328/68VZ328 specific config
* *
* Copyright (C) 1993 Hamish Macdonald * Copyright (C) 1993 Hamish Macdonald
* Copyright (C) 1999 D. Jeff Dionne * Copyright (C) 1999 D. Jeff Dionne
* Copyright (C) 2001 Georges Menie, Ken Desmet
* *
* This file is subject to the terms and conditions of the GNU General Public * This file is subject to the terms and conditions of the GNU General Public
* License. See the file COPYING in the main directory of this archive * License. See the file COPYING in the main directory of this archive
...@@ -20,8 +21,10 @@ ...@@ -20,8 +21,10 @@
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/rtc.h> #include <linux/rtc.h>
#include <asm/machdep.h> #include <asm/machdep.h>
#include <asm/MC68328.h>
#if defined(CONFIG_PILOT) || defined(CONFIG_INIT_LCD) #if defined(CONFIG_INIT_LCD) && defined(CONFIG_M68VZ328)
#include "bootlogo-vz.h"
#elif defined(CONFIG_PILOT) || defined(CONFIG_INIT_LCD)
#include "bootlogo.h" #include "bootlogo.h"
#endif #endif
...@@ -29,10 +32,7 @@ ...@@ -29,10 +32,7 @@
/***************************************************************************/ /***************************************************************************/
static void m68328_reset(void)
/***************************************************************************/
void m68328_reset (void)
{ {
local_irq_disable(); local_irq_disable();
asm volatile ("moveal #0x10c00000, %a0;\n\t" asm volatile ("moveal #0x10c00000, %a0;\n\t"
...@@ -46,12 +46,19 @@ void m68328_reset (void) ...@@ -46,12 +46,19 @@ void m68328_reset (void)
void __init config_BSP(char *command, int len) void __init config_BSP(char *command, int len)
{ {
pr_info("68328 support D. Jeff Dionne <jeff@uclinux.org>\n"); mach_sched_init = hw_timer_init;
pr_info("68328 support Kenneth Albanowski <kjahds@kjshds.com>\n"); mach_hwclk = m68328_hwclk;
pr_info("68328/Pilot support Bernhard Kuhn <kuhn@lpr.e-technik.tu-muenchen.de>\n"); mach_reset = m68328_reset;
mach_hwclk = m68328_hwclk; #if defined(CONFIG_PILOT) && defined(CONFIG_M68328)
mach_reset = m68328_reset; mach_sched_init = NULL;
#elif defined(CONFIG_UCSIMM)
init_ucsimm(command, len);
#elif defined(CONFIG_UCDIMM)
init_ucsimm(command, len);
#elif defined(CONFIG_DRAGEN2)
init_dragen2(command, len);
#endif
} }
/***************************************************************************/ /***************************************************************************/
/***************************************************************************/
/*
* m68EZ328.c - 68EZ328 specific config
*
* Copyright (C) 1993 Hamish Macdonald
* Copyright (C) 1999 D. Jeff Dionne
*
* This file is subject to the terms and conditions of the GNU General Public
* License. See the file COPYING in the main directory of this archive
* for more details.
*/
/***************************************************************************/
#include <linux/init.h>
#include <linux/types.h>
#include <linux/kernel.h>
#include <linux/rtc.h>
#include <linux/pgtable.h>
#include <asm/machdep.h>
#include <asm/MC68EZ328.h>
#ifdef CONFIG_UCSIMM
#include <asm/bootstd.h>
#endif
#include "m68328.h"
/***************************************************************************/
void m68ez328_reset(void)
{
local_irq_disable();
asm volatile (
"moveal #0x10c00000, %a0;\n"
"moveb #0, 0xFFFFF300;\n"
"moveal 0(%a0), %sp;\n"
"moveal 4(%a0), %a0;\n"
"jmp (%a0);\n"
);
}
/***************************************************************************/
void __init config_BSP(char *command, int len)
{
pr_info("68EZ328 DragonBallEZ support (C) 1999 Rt-Control, Inc\n");
#ifdef CONFIG_UCSIMM
init_ucsimm(command, len);
#endif
mach_sched_init = hw_timer_init;
mach_hwclk = m68328_hwclk;
mach_reset = m68ez328_reset;
}
/***************************************************************************/
/***************************************************************************/
/*
* m68VZ328.c - 68VZ328 specific config
*
* Copyright (C) 1993 Hamish Macdonald
* Copyright (C) 1999 D. Jeff Dionne
* Copyright (C) 2001 Georges Menie, Ken Desmet
*
* This file is subject to the terms and conditions of the GNU General Public
* License. See the file COPYING in the main directory of this archive
* for more details.
*/
/***************************************************************************/
#include <linux/init.h>
#include <linux/types.h>
#include <linux/kernel.h>
#include <linux/kd.h>
#include <linux/netdevice.h>
#include <linux/interrupt.h>
#include <linux/irq.h>
#include <linux/rtc.h>
#include <linux/pgtable.h>
#include <asm/machdep.h>
#include <asm/MC68VZ328.h>
#include <asm/bootstd.h>
#ifdef CONFIG_INIT_LCD
#include "bootlogo-vz.h"
#endif
#include "m68328.h"
/***************************************************************************/
static void m68vz328_reset(void)
{
local_irq_disable();
asm volatile (
"moveal #0x10c00000, %a0;\n\t"
"moveb #0, 0xFFFFF300;\n\t"
"moveal 0(%a0), %sp;\n\t"
"moveal 4(%a0), %a0;\n\t"
"jmp (%a0);\n"
);
}
/***************************************************************************/
void __init config_BSP(char *command, int size)
{
pr_info("68VZ328 DragonBallVZ support (c) 2001 Lineo, Inc.\n");
mach_sched_init = hw_timer_init;
mach_hwclk = m68328_hwclk;
mach_reset = m68vz328_reset;
#ifdef CONFIG_UCDIMM
init_ucsimm(command, len);
#elif defined(CONFIG_DRAGEN2)
init_dragen2(command, len);
#endif
}
/***************************************************************************/
...@@ -35,7 +35,7 @@ endchoice ...@@ -35,7 +35,7 @@ endchoice
if M68KCLASSIC if M68KCLASSIC
config M68000 config M68000
bool "MC68000" bool
depends on !MMU depends on !MMU
select CPU_HAS_NO_BITFIELDS select CPU_HAS_NO_BITFIELDS
select CPU_HAS_NO_MULDIV64 select CPU_HAS_NO_MULDIV64
...@@ -102,21 +102,21 @@ config M68060 ...@@ -102,21 +102,21 @@ config M68060
processor, say Y. Otherwise, say N. processor, say Y. Otherwise, say N.
config M68328 config M68328
bool "MC68328" bool
depends on !MMU depends on !MMU
select M68000 select M68000
help help
Motorola 68328 processor support. Motorola 68328 processor support.
config M68EZ328 config M68EZ328
bool "MC68EZ328" bool
depends on !MMU depends on !MMU
select M68000 select M68000
help help
Motorola 68EX328 processor support. Motorola 68EX328 processor support.
config M68VZ328 config M68VZ328
bool "MC68VZ328" bool
depends on !MMU depends on !MMU
select M68000 select M68000
help help
......
...@@ -136,14 +136,13 @@ config SUN3 ...@@ -136,14 +136,13 @@ config SUN3
If you don't want to compile a kernel exclusively for a Sun 3, say N. If you don't want to compile a kernel exclusively for a Sun 3, say N.
endif # M68KCLASSIC
config PILOT config PILOT
bool bool
config PILOT3 config PILOT3
bool "Pilot 1000/5000, PalmPilot Personal/Pro, or PalmIII support" bool "Pilot 1000/5000, PalmPilot Personal/Pro, or PalmIII support"
depends on M68328 depends on !MMU
select M68328
select PILOT select PILOT
help help
Support for the Palm Pilot 1000/5000, Personal/Pro and PalmIII. Support for the Palm Pilot 1000/5000, Personal/Pro and PalmIII.
...@@ -156,19 +155,22 @@ config XCOPILOT_BUGS ...@@ -156,19 +155,22 @@ config XCOPILOT_BUGS
config UCSIMM config UCSIMM
bool "uCsimm module support" bool "uCsimm module support"
depends on M68EZ328 depends on !MMU
select M68EZ328
help help
Support for the Arcturus Networks uCsimm module. Support for the Arcturus Networks uCsimm module.
config UCDIMM config UCDIMM
bool "uDsimm module support" bool "uDsimm module support"
depends on M68VZ328 depends on !MMU
select M68VZ328
help help
Support for the Arcturus Networks uDsimm module. Support for the Arcturus Networks uDsimm module.
config DRAGEN2 config DRAGEN2
bool "DragenEngine II board support" bool "DragenEngine II board support"
depends on M68VZ328 depends on !MMU
select M68VZ328
help help
Support for the DragenEngine II board. Support for the DragenEngine II board.
...@@ -191,6 +193,8 @@ config MEMORY_RESERVE ...@@ -191,6 +193,8 @@ config MEMORY_RESERVE
help help
Reserve certain memory regions on 68x328 based boards. Reserve certain memory regions on 68x328 based boards.
endif # M68KCLASSIC
config ARN5206 config ARN5206
bool "Arnewsh 5206 board support" bool "Arnewsh 5206 board support"
depends on M5206 depends on M5206
......
...@@ -106,8 +106,16 @@ void __init setup_arch(char **cmdline_p) ...@@ -106,8 +106,16 @@ void __init setup_arch(char **cmdline_p)
#ifdef CONFIG_UCDIMM #ifdef CONFIG_UCDIMM
pr_info("uCdimm by Lineo, Inc. <www.lineo.com>\n"); pr_info("uCdimm by Lineo, Inc. <www.lineo.com>\n");
#endif #endif
#ifdef CONFIG_M68328
pr_info("68328 support D. Jeff Dionne <jeff@uclinux.org>\n");
pr_info("68328 support Kenneth Albanowski <kjahds@kjshds.com>\n");
#endif
#ifdef CONFIG_M68EZ328
pr_info("68EZ328 DragonBallEZ support (C) 1999 Rt-Control, Inc\n");
#endif
#ifdef CONFIG_M68VZ328 #ifdef CONFIG_M68VZ328
pr_info("M68VZ328 support by Evan Stawnyczy <e@lineo.ca>\n"); pr_info("M68VZ328 support by Evan Stawnyczy <e@lineo.ca>\n");
pr_info("68VZ328 DragonBallVZ support (c) 2001 Lineo, Inc.\n");
#endif #endif
#ifdef CONFIG_COLDFIRE #ifdef CONFIG_COLDFIRE
pr_info("COLDFIRE port done by Greg Ungerer, gerg@snapgear.com\n"); pr_info("COLDFIRE port done by Greg Ungerer, gerg@snapgear.com\n");
...@@ -121,6 +129,7 @@ void __init setup_arch(char **cmdline_p) ...@@ -121,6 +129,7 @@ void __init setup_arch(char **cmdline_p)
pr_info("Flat model support (C) 1998,1999 Kenneth Albanowski, D. Jeff Dionne\n"); pr_info("Flat model support (C) 1998,1999 Kenneth Albanowski, D. Jeff Dionne\n");
#if defined( CONFIG_PILOT ) && defined( CONFIG_M68328 ) #if defined( CONFIG_PILOT ) && defined( CONFIG_M68328 )
pr_info("68328/Pilot support Bernhard Kuhn <kuhn@lpr.e-technik.tu-muenchen.de>\n");
pr_info("TRG SuperPilot FLASH card support <info@trgnet.com>\n"); pr_info("TRG SuperPilot FLASH card support <info@trgnet.com>\n");
#endif #endif
#if defined( CONFIG_PILOT ) && defined( CONFIG_M68EZ328 ) #if defined( CONFIG_PILOT ) && defined( CONFIG_M68EZ328 )
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment