m68k: m68328: remove duplicate code
authorArnd Bergmann <arnd@arndb.de>
Fri, 30 Oct 2020 14:26:24 +0000 (15:26 +0100)
committerGreg Ungerer <gerg@linux-m68k.org>
Sun, 6 Dec 2020 23:37:58 +0000 (09:37 +1000)
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: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Greg Ungerer <gerg@linux-m68k.org>
arch/m68k/68000/Makefile
arch/m68k/68000/m68328.c
arch/m68k/68000/m68EZ328.c [deleted file]
arch/m68k/68000/m68VZ328.c [deleted file]
arch/m68k/Kconfig.cpu
arch/m68k/Kconfig.machine
arch/m68k/kernel/setup_no.c

index ce0b26d..674541f 100644 (file)
 
 # 68328, 68EZ328, 68VZ328
 
 
 # 68328, 68EZ328, 68VZ328
 
-obj-y                  += entry.o ints.o timers.o
-obj-$(CONFIG_M68328)   += m68328.o
-obj-$(CONFIG_M68EZ328) += m68EZ328.o
-obj-$(CONFIG_M68VZ328) += m68VZ328.o
+obj-y                  += entry.o ints.o timers.o m68328.o
 obj-$(CONFIG_ROM)      += romvec.o
 
 obj-$(CONFIG_DRAGEN2)  += dragen2.o
 obj-$(CONFIG_ROM)      += romvec.o
 
 obj-$(CONFIG_DRAGEN2)  += dragen2.o
index 6a5cfc9..eab08da 100644 (file)
@@ -1,10 +1,11 @@
 /***************************************************************************/
 
 /*
 /***************************************************************************/
 
 /*
- *  m68328.c - 68328 specific config
+ *  m68328.c - 68328/68EZ328/68VZ328 specific config
  *
  *  Copyright (C) 1993 Hamish Macdonald
  *  Copyright (C) 1999 D. Jeff Dionne
  *
  *  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
  *
  * 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
 #include <linux/kernel.h>
 #include <linux/rtc.h>
 #include <asm/machdep.h>
 #include <linux/kernel.h>
 #include <linux/rtc.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"
 #endif
 
 #include "bootlogo.h"
 #endif
 
 
 /***************************************************************************/
 
 
 /***************************************************************************/
 
-
-/***************************************************************************/
-
-void m68328_reset (void)
+static void m68328_reset(void)
 {
   local_irq_disable();
   asm volatile ("moveal #0x10c00000, %a0;\n\t"
 {
   local_irq_disable();
   asm volatile ("moveal #0x10c00000, %a0;\n\t"
@@ -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");
-  pr_info("68328 support Kenneth Albanowski <kjahds@kjshds.com>\n");
-  pr_info("68328/Pilot support Bernhard Kuhn <kuhn@lpr.e-technik.tu-muenchen.de>\n");
+       mach_sched_init = hw_timer_init;
+       mach_hwclk = m68328_hwclk;
+       mach_reset = m68328_reset;
 
 
-  mach_hwclk = m68328_hwclk;
-  mach_reset = m68328_reset;
+#if   defined(CONFIG_PILOT) && defined(CONFIG_M68328)
+       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
 }
 
 /***************************************************************************/
 }
 
 /***************************************************************************/
diff --git a/arch/m68k/68000/m68EZ328.c b/arch/m68k/68000/m68EZ328.c
deleted file mode 100644 (file)
index 65bd112..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-/***************************************************************************/
-
-/*
- *  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;
-}
-
-/***************************************************************************/
diff --git a/arch/m68k/68000/m68VZ328.c b/arch/m68k/68000/m68VZ328.c
deleted file mode 100644 (file)
index 025da55..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-/***************************************************************************/
-
-/*
- *  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
-}
-
-/***************************************************************************/
index 694c4fc..a65ce76 100644 (file)
@@ -35,7 +35,7 @@ endchoice
 if M68KCLASSIC
 
 config M68000
 if M68KCLASSIC
 
 config M68000
-       bool "MC68000"
+       bool
        depends on !MMU
        select CPU_HAS_NO_BITFIELDS
        select CPU_HAS_NO_MULDIV64
        depends on !MMU
        select CPU_HAS_NO_BITFIELDS
        select CPU_HAS_NO_MULDIV64
@@ -102,21 +102,21 @@ config M68060
          processor, say Y. Otherwise, say N.
 
 config M68328
          processor, say Y. Otherwise, say N.
 
 config M68328
-       bool "MC68328"
+       bool
        depends on !MMU
        select M68000
        help
          Motorola 68328 processor support.
 
 config M68EZ328
        depends on !MMU
        select M68000
        help
          Motorola 68328 processor support.
 
 config M68EZ328
-       bool "MC68EZ328"
+       bool
        depends on !MMU
        select M68000
        help
          Motorola 68EX328 processor support.
 
 config M68VZ328
        depends on !MMU
        select M68000
        help
          Motorola 68EX328 processor support.
 
 config M68VZ328
-       bool "MC68VZ328"
+       bool
        depends on !MMU
        select M68000
        help
        depends on !MMU
        select M68000
        help
index 17e8c3a..1851c66 100644 (file)
@@ -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
        bool
 
 config PILOT3
        bool "Pilot 1000/5000, PalmPilot Personal/Pro, or PalmIII support"
 config PILOT
        bool
 
 config PILOT3
        bool "Pilot 1000/5000, PalmPilot Personal/Pro, or PalmIII support"
-       depends on M68328
+       depends on !MMU
+       select M68328
        select PILOT
        help
          Support for the Palm Pilot 1000/5000, Personal/Pro and PalmIII.
        select PILOT
        help
          Support for the Palm Pilot 1000/5000, Personal/Pro and PalmIII.
@@ -156,19 +155,22 @@ config XCOPILOT_BUGS
 
 config UCSIMM
        bool "uCsimm module support"
 
 config UCSIMM
        bool "uCsimm module support"
-       depends on M68EZ328
+       depends on !MMU
+       select M68EZ328
        help
          Support for the Arcturus Networks uCsimm module.
 
 config UCDIMM
        bool "uDsimm module support"
        help
          Support for the Arcturus Networks uCsimm module.
 
 config UCDIMM
        bool "uDsimm module support"
-       depends on M68VZ328
+       depends on !MMU
+       select M68VZ328
        help
          Support for the Arcturus Networks uDsimm module.
 
 config DRAGEN2
        bool "DragenEngine II board support"
        help
          Support for the Arcturus Networks uDsimm module.
 
 config DRAGEN2
        bool "DragenEngine II board support"
-       depends on M68VZ328
+       depends on !MMU
+       select M68VZ328
        help
          Support for the DragenEngine II board.
 
        help
          Support for the DragenEngine II board.
 
@@ -191,6 +193,8 @@ config MEMORY_RESERVE
        help
          Reserve certain memory regions on 68x328 based boards.
 
        help
          Reserve certain memory regions on 68x328 based boards.
 
+endif # M68KCLASSIC
+
 config ARN5206
        bool "Arnewsh 5206 board support"
        depends on M5206
 config ARN5206
        bool "Arnewsh 5206 board support"
        depends on M5206
index f66f4b1..58dbe10 100644 (file)
@@ -106,8 +106,16 @@ void __init setup_arch(char **cmdline_p)
 #ifdef CONFIG_UCDIMM
        pr_info("uCdimm by Lineo, Inc. <www.lineo.com>\n");
 #endif
 #ifdef CONFIG_UCDIMM
        pr_info("uCdimm by Lineo, Inc. <www.lineo.com>\n");
 #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
        pr_info("M68VZ328 support by Evan Stawnyczy <e@lineo.ca>\n");
 #ifdef CONFIG_M68VZ328
        pr_info("M68VZ328 support by Evan Stawnyczy <e@lineo.ca>\n");
+       pr_info("68VZ328 DragonBallVZ support (c) 2001 Lineo, Inc.\n");
 #endif
 #ifdef CONFIG_COLDFIRE
        pr_info("COLDFIRE port done by Greg Ungerer, gerg@snapgear.com\n");
 #endif
 #ifdef CONFIG_COLDFIRE
        pr_info("COLDFIRE port done by Greg Ungerer, gerg@snapgear.com\n");
@@ -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");
 
 #if defined( CONFIG_PILOT ) && defined( CONFIG_M68328 )
        pr_info("Flat model support (C) 1998,1999 Kenneth Albanowski, D. Jeff Dionne\n");
 
 #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");
 #endif
 #if defined( CONFIG_PILOT ) && defined( CONFIG_M68EZ328 )
        pr_info("TRG SuperPilot FLASH card support <info@trgnet.com>\n");
 #endif
 #if defined( CONFIG_PILOT ) && defined( CONFIG_M68EZ328 )