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: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Greg Ungerer <gerg@linux-m68k.org>
This commit is contained in:
Arnd Bergmann 2020-10-30 15:26:24 +01:00 committed by Greg Ungerer
parent a734bbf694
commit 8b22820efb
7 changed files with 43 additions and 151 deletions

View file

@ -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

View file

@ -1,10 +1,11 @@
/***************************************************************************/ /***************************************************************************/
/* /*
* 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 @@
#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 @@
/***************************************************************************/ /***************************************************************************/
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)
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
} }
/***************************************************************************/ /***************************************************************************/

View file

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

View file

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

View file

@ -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
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

View 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 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
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
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

View file

@ -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)
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 )