Re: [PATCH 2/2] m68k: m68328: remove duplicate code

2020-11-01 Thread Greg Ungerer

Hi Arnd,

On 31/10/20 12:25 am, Arnd Bergmann wrote:

On Mon, Oct 19, 2020 at 2:06 PM Arnd Bergmann  wrote:


On Mon, Oct 19, 2020 at 1:45 AM Greg Ungerer  wrote:

On 15/10/20 10:32 pm, Arnd Bergmann wrote:



diff --git a/arch/m68k/Kconfig.machine b/arch/m68k/Kconfig.machine
index 17e8c3a292d7..1851c66e8667 100644
--- a/arch/m68k/Kconfig.machine
+++ b/arch/m68k/Kconfig.machine
@@ -136,14 +136,13 @@ config SUN3

 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"
- depends on M68328
+ depends on !MMU
+ select M68328


Given that M68328 depends on !MMU do you also need or want that here?


Yes, that is exactly the reason: if M68328 depends on !MMU and gets
selected by something that lacks the !MMU dependency, we'd get a
Kconfig warning and a failed build when enabling PILOT3 with MMU
enabled.


It looks like my reply never made it out because of mail server issues.
I hope the above answers your question.

I'm rebasing this series (along with some others) now, and will resend in a bit.


Ok, no worries.
Otherwise looked good.

I will review v2 and most likely push into the m68knommu git tree.

Regards
Greg


Re: [PATCH 2/2] m68k: m68328: remove duplicate code

2020-10-18 Thread Greg Ungerer

Hi Arnd,

Overall looks good.


On 15/10/20 10:32 pm, Arnd Bergmann wrote:
[snip]

diff --git a/arch/m68k/Kconfig.cpu b/arch/m68k/Kconfig.cpu
index 694c4fca9f5d..a65ce7618232 100644
--- a/arch/m68k/Kconfig.cpu
+++ b/arch/m68k/Kconfig.cpu
@@ -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
diff --git a/arch/m68k/Kconfig.machine b/arch/m68k/Kconfig.machine
index 17e8c3a292d7..1851c66e8667 100644
--- a/arch/m68k/Kconfig.machine
+++ b/arch/m68k/Kconfig.machine
@@ -136,14 +136,13 @@ config SUN3
  
  	  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"
-   depends on M68328
+   depends on !MMU
+   select M68328


Given that M68328 depends on !MMU do you also need or want that here?

Regards
Greg





[PATCH 2/2] m68k: m68328: remove duplicate code

2020-10-15 Thread Arnd Bergmann
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 
---
 arch/m68k/68000/Makefile|  5 +--
 arch/m68k/68000/m68328.c| 31 ++---
 arch/m68k/68000/m68EZ328.c  | 58 
 arch/m68k/68000/m68VZ328.c  | 67 -
 arch/m68k/Kconfig.cpu   |  8 ++---
 arch/m68k/Kconfig.machine   | 16 +
 arch/m68k/kernel/setup_no.c |  9 +
 7 files changed, 43 insertions(+), 151 deletions(-)
 delete mode 100644 arch/m68k/68000/m68EZ328.c
 delete mode 100644 arch/m68k/68000/m68VZ328.c

diff --git a/arch/m68k/68000/Makefile b/arch/m68k/68000/Makefile
index ce0b26d6580d..674541fdf5b8 100644
--- a/arch/m68k/68000/Makefile
+++ b/arch/m68k/68000/Makefile
@@ -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
diff --git a/arch/m68k/68000/m68328.c b/arch/m68k/68000/m68328.c
index 6a5cfc977150..eab08da058c6 100644
--- a/arch/m68k/68000/m68328.c
+++ b/arch/m68k/68000/m68328.c
@@ -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) 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 
 #include 
 #include 
-#include 
-#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 #0x10c0, %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 \n");
-  pr_info("68328 support Kenneth Albanowski \n");
-  pr_info("68328/Pilot support Bernhard Kuhn 
\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
index 65bd112285ef..
--- a/arch/m68k/68000/m68EZ328.c
+++ /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 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#ifdef CONFIG_UCSIMM
-#include 
-#endif
-
-#include "m68328.h"
-
-/***/
-
-void m68ez328_reset(void)
-{
-  local_irq_disable();
-  asm volatile (
-"moveal #0x10c0, %a0;\n"
-"moveb #0, 0xF300;\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
-
-