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

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
Loading
Loading
Loading
Loading
+1 −4
Original line number Diff line number Diff line
@@ -10,10 +10,7 @@

# 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
+19 −12
Original line number Diff line number Diff line
/***************************************************************************/

/*
 *  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) 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
@@ -20,8 +21,10 @@
#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

@@ -29,10 +32,7 @@

/***************************************************************************/


/***************************************************************************/

void m68328_reset (void)
static void m68328_reset(void)
{
  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)
{
  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;

#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
}

/***************************************************************************/

arch/m68k/68000/m68EZ328.c

deleted100644 → 0
+0 −58
Original line number Diff line number Diff line
/***************************************************************************/

/*
 *  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;
}

/***************************************************************************/

arch/m68k/68000/m68VZ328.c

deleted100644 → 0
+0 −67
Original line number Diff line number Diff line
/***************************************************************************/

/*
 *  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
}

/***************************************************************************/
+4 −4
Original line number Diff line number Diff line
@@ -35,7 +35,7 @@ endchoice
if M68KCLASSIC

config M68000
	bool "MC68000"
	bool
	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
	bool "MC68328"
	bool
	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
	bool "MC68VZ328"
	bool
	depends on !MMU
	select M68000
	help
Loading