mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-03-19 05:24:11 +00:00
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:
parent
a734bbf694
commit
8b22820efb
7 changed files with 43 additions and 151 deletions
arch/m68k
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
/***************************************************************************/
|
/***************************************************************************/
|
||||||
|
|
|
@ -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;
|
|
||||||
}
|
|
||||||
|
|
||||||
/***************************************************************************/
|
|
|
@ -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
|
|
||||||
}
|
|
||||||
|
|
||||||
/***************************************************************************/
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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 )
|
||||||
|
|
Loading…
Add table
Reference in a new issue