Commit 8552d28e authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'm68knommu-for-v5.11' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu

Pull m68knommu updates from Greg Ungerer:

 - cleanup of 68328 code

 - align BSS section to 32bit

* tag 'm68knommu-for-v5.11' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu:
  m68k: m68328: remove duplicate code
  m68k: m68328: move platform code to separate files
  m68knommu: align BSS section to 4-byte boundaries
parents 70990afa 8b22820e
...@@ -10,10 +10,11 @@ ...@@ -10,10 +10,11 @@
# 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_UCSIMM) += ucsimm.o
obj-$(CONFIG_UCDIMM) += ucsimm.o
extra-y := head.o extra-y := head.o
/***************************************************************************/ // SPDX-License-Identifier: GPL-2.0
/* /*
* m68VZ328.c - 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 * Copyright (C) 2001 Georges Menie, Ken Desmet
...@@ -11,37 +8,15 @@ ...@@ -11,37 +8,15 @@
* License. See the file COPYING in the main directory of this archive * License. See the file COPYING in the main directory of this archive
* for more details. * for more details.
*/ */
/***************************************************************************/
#include <linux/init.h> #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/machdep.h>
#include <asm/MC68VZ328.h> #include <asm/MC68VZ328.h>
#include <asm/bootstd.h>
#ifdef CONFIG_INIT_LCD
#include "bootlogo-vz.h"
#endif
/***************************************************************************/
int m68328_hwclk(int set, struct rtc_time *t);
/***************************************************************************/ /***************************************************************************/
/* Init Drangon Engine hardware */ /* Init Drangon Engine hardware */
/***************************************************************************/ /***************************************************************************/
#if defined(CONFIG_DRAGEN2)
static void m68vz328_reset(void) static void dragen2_reset(void)
{ {
local_irq_disable(); local_irq_disable();
...@@ -60,8 +35,10 @@ static void m68vz328_reset(void) ...@@ -60,8 +35,10 @@ static void m68vz328_reset(void)
); );
} }
static void __init init_hardware(char *command, int size) void __init init_dragen2(char *command, int size)
{ {
mach_reset = dragen2_reset;
#ifdef CONFIG_DIRECT_IO_ACCESS #ifdef CONFIG_DIRECT_IO_ACCESS
SCR = 0x10; /* allow user access to internal registers */ SCR = 0x10; /* allow user access to internal registers */
#endif #endif
...@@ -121,69 +98,3 @@ static void __init init_hardware(char *command, int size) ...@@ -121,69 +98,3 @@ static void __init init_hardware(char *command, int size)
PWMR = 0x037F; PWMR = 0x037F;
#endif #endif
} }
/***************************************************************************/
/* Init RT-Control uCdimm hardware */
/***************************************************************************/
#elif defined(CONFIG_UCDIMM)
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"
);
}
unsigned char *cs8900a_hwaddr;
static int errno;
_bsc0(char *, getserialnum)
_bsc1(unsigned char *, gethwaddr, int, a)
_bsc1(char *, getbenv, char *, a)
static void __init init_hardware(char *command, int size)
{
char *p;
pr_info("uCdimm serial string [%s]\n", getserialnum());
p = cs8900a_hwaddr = gethwaddr(0);
pr_info("uCdimm hwaddr %pM\n", p);
p = getbenv("APPEND");
if (p)
strcpy(p, command);
else
command[0] = 0;
}
/***************************************************************************/
#else
static void m68vz328_reset(void)
{
}
static void __init init_hardware(char *command, int size)
{
}
/***************************************************************************/
#endif
/***************************************************************************/
void __init config_BSP(char *command, int size)
{
pr_info("68VZ328 DragonBallVZ support (c) 2001 Lineo, Inc.\n");
init_hardware(command, size);
mach_sched_init = hw_timer_init;
mach_hwclk = m68328_hwclk;
mach_reset = m68vz328_reset;
}
/***************************************************************************/
/***************************************************************************/ /***************************************************************************/
/* /*
* 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,18 +21,18 @@ ...@@ -20,18 +21,18 @@
#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
/***************************************************************************/ #include "m68328.h"
int m68328_hwclk(int set, struct rtc_time *t);
/***************************************************************************/ /***************************************************************************/
void m68328_reset (void) static void m68328_reset(void)
{ {
local_irq_disable(); local_irq_disable();
asm volatile ("moveal #0x10c00000, %a0;\n\t" asm volatile ("moveal #0x10c00000, %a0;\n\t"
...@@ -45,12 +46,19 @@ void m68328_reset (void) ...@@ -45,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");
pr_info("68328/Pilot support Bernhard Kuhn <kuhn@lpr.e-technik.tu-muenchen.de>\n");
mach_hwclk = m68328_hwclk; mach_hwclk = m68328_hwclk;
mach_reset = m68328_reset; 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
} }
/***************************************************************************/ /***************************************************************************/
// SPDX-License-Identifier: GPL-2.0
void init_dragen2(char *command, int size);
void init_ucsimm(char *command, int size);
struct rtc_time;
int m68328_hwclk(int set, struct rtc_time *t);
/***************************************************************************/
/*
* 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
/***************************************************************************/
int m68328_hwclk(int set, struct rtc_time *t);
/***************************************************************************/
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"
);
}
/***************************************************************************/
unsigned char *cs8900a_hwaddr;
static int errno;
#ifdef CONFIG_UCSIMM
_bsc0(char *, getserialnum)
_bsc1(unsigned char *, gethwaddr, int, a)
_bsc1(char *, getbenv, char *, a)
#endif
void __init config_BSP(char *command, int len)
{
unsigned char *p;
pr_info("68EZ328 DragonBallEZ support (C) 1999 Rt-Control, Inc\n");
#ifdef CONFIG_UCSIMM
pr_info("uCsimm serial string [%s]\n", getserialnum());
p = cs8900a_hwaddr = gethwaddr(0);
pr_info("uCsimm hwaddr %pM\n", p);
p = getbenv("APPEND");
if (p) strcpy(p,command);
else command[0] = 0;
#endif
mach_sched_init = hw_timer_init;
mach_hwclk = m68328_hwclk;
mach_reset = m68ez328_reset;
}
/***************************************************************************/
// SPDX-License-Identifier: GPL-2.0
/*
* 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 <asm/bootstd.h>
#include <asm/machdep.h>
#include <asm/MC68VZ328.h>
#include "m68328.h"
unsigned char *cs8900a_hwaddr;
static int errno;
_bsc0(char *, getserialnum)
_bsc1(unsigned char *, gethwaddr, int, a)
_bsc1(char *, getbenv, char *, a)
void __init init_ucsimm(char *command, int size)
{
char *p;
pr_info("uCsimm/uCdimm serial string [%s]\n", getserialnum());
p = cs8900a_hwaddr = gethwaddr(0);
pr_info("uCsimm/uCdimm hwaddr %pM\n", p);
p = getbenv("APPEND");
if (p)
strcpy(p, command);
else
command[0] = 0;
}
...@@ -36,7 +36,7 @@ endchoice ...@@ -36,7 +36,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
...@@ -103,7 +103,7 @@ config M68060 ...@@ -103,7 +103,7 @@ 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 LEGACY_TIMER_TICK select LEGACY_TIMER_TICK
select M68000 select M68000
...@@ -111,7 +111,7 @@ config M68328 ...@@ -111,7 +111,7 @@ config M68328
Motorola 68328 processor support. Motorola 68328 processor support.
config M68EZ328 config M68EZ328
bool "MC68EZ328" bool
depends on !MMU depends on !MMU
select LEGACY_TIMER_TICK select LEGACY_TIMER_TICK
select M68000 select M68000
...@@ -119,7 +119,7 @@ config M68EZ328 ...@@ -119,7 +119,7 @@ config M68EZ328
Motorola 68EX328 processor support. Motorola 68EX328 processor support.
config M68VZ328 config M68VZ328
bool "MC68VZ328" bool
depends on !MMU depends on !MMU
select LEGACY_TIMER_TICK select LEGACY_TIMER_TICK
select M68000 select M68000
......
...@@ -145,14 +145,13 @@ config SUN3 ...@@ -145,14 +145,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.
...@@ -165,19 +164,22 @@ config XCOPILOT_BUGS ...@@ -165,19 +164,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.
...@@ -200,6 +202,8 @@ config MEMORY_RESERVE ...@@ -200,6 +202,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 )
......
...@@ -81,7 +81,7 @@ SECTIONS { ...@@ -81,7 +81,7 @@ SECTIONS {
__init_end = .; __init_end = .;
} }
BSS_SECTION(0, 0, 0) BSS_SECTION(4, 0, 4)
_end = .; _end = .;
......
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