Skip to contentSkip to conversation

Platform code merge for 68000 core cpus

PATCH In review Luis Alves 3 participants 4 messages Oct 23, 2012 – Oct 25, 2012 m68k architecture

lore
Share & tools
lore

Luis Alves

author
#0 lore raw

PATCH 1/1 Platform code merge for 68000 core cpus

Hi all,

Finnaly I've found some time to get back to the 68k.

This patch merges all 68000 core cpus in one directory. Patch was generated using -B and -M and checked with scricts/checkpatch.pl

It doesn't include the MC68000 code. I expect the next patch to include the 68k board definition and mc68000 related code.
Also I expect to merge all entry*.S into a single file.

Regards,
Luis

---
 arch/m68k/Kconfig.cpu                              |    2 +-
 arch/m68k/Makefile                                 |    6 +-
 arch/m68k/platform/68000/Makefile                  |   23 ++
 .../{68VZ328/bootlogo.h => 68000/bootlogo-vz.h}    |    0
 arch/m68k/platform/{68328 => 68000}/bootlogo.h     |    0
 .../{68EZ328/config.c => 68000/config-ez.c}        |    0
 .../{68VZ328/config.c => 68000/config-vz.c}        |    2 +-
 arch/m68k/platform/{68328 => 68000}/config.c       |    0
 arch/m68k/platform/{68328 => 68000}/entry.S        |    0
 arch/m68k/platform/68000/head.S                    |  318 ++++++++++++++++++++
 arch/m68k/platform/{68328 => 68000}/ints.c         |    0
 arch/m68k/platform/{68328 => 68000}/romvec.S       |    0
 arch/m68k/platform/{68328 => 68000}/timers.c       |    0
 arch/m68k/platform/68328/Makefile                  |   21 --
 arch/m68k/platform/68328/head-de2.S                |  128 --------
 arch/m68k/platform/68328/head-pilot.S              |  207 -------------
 arch/m68k/platform/68328/head-ram.S                |  141 ---------
 arch/m68k/platform/68328/head-rom.S                |  105 -------
 arch/m68k/platform/68EZ328/Makefile                |    5 -
 arch/m68k/platform/68VZ328/Makefile                |    5 -
 20 files changed, 345 insertions(+), 618 deletions(-)
 create mode 100644 arch/m68k/platform/68000/Makefile
 rename arch/m68k/platform/{68VZ328/bootlogo.h => 68000/bootlogo-vz.h} (100%)
 rename arch/m68k/platform/{68328 => 68000}/bootlogo.h (100%)
 rename arch/m68k/platform/{68EZ328/config.c => 68000/config-ez.c} (100%)
 rename arch/m68k/platform/{68VZ328/config.c => 68000/config-vz.c} (99%)
 rename arch/m68k/platform/{68328 => 68000}/config.c (100%)
 rename arch/m68k/platform/{68328 => 68000}/entry.S (100%)
 create mode 100644 arch/m68k/platform/68000/head.S
 rename arch/m68k/platform/{68328 => 68000}/ints.c (100%)
 rename arch/m68k/platform/{68328 => 68000}/romvec.S (100%)
 rename arch/m68k/platform/{68328 => 68000}/timers.c (100%)
 delete mode 100644 arch/m68k/platform/68328/Makefile
 delete mode 100644 arch/m68k/platform/68328/head-de2.S
 delete mode 100644 arch/m68k/platform/68328/head-pilot.S
 delete mode 100644 arch/m68k/platform/68328/head-ram.S
 delete mode 100644 arch/m68k/platform/68328/head-rom.S
 delete mode 100644 arch/m68k/platform/68EZ328/Makefile
 delete mode 100644 arch/m68k/platform/68VZ328/Makefile
arch/m68k/Kconfig.cpu +1 -1
index c4eb79e..aad3b0b 100644
@@ -35,7 +35,7 @@ endchoice
 if M68KCLASSIC
 
 config M68000
-	bool
+	bool "MC68000"
 	select CPU_HAS_NO_BITFIELDS
 	select CPU_HAS_NO_MULDIV64
 	select CPU_HAS_NO_UNALIGNED
arch/m68k/Makefile +2 -4
index 7636751..2f02acf 100644
@@ -92,7 +92,7 @@ endif
 head-y				:= arch/m68k/kernel/head.o
 head-$(CONFIG_SUN3)		:= arch/m68k/kernel/sun3-head.o
 head-$(CONFIG_M68360)		:= arch/m68k/platform/68360/head.o
-head-$(CONFIG_M68000)		:= arch/m68k/platform/68328/head.o
+head-$(CONFIG_M68000)		:= arch/m68k/platform/68000/head.o
 head-$(CONFIG_COLDFIRE)		:= arch/m68k/platform/coldfire/head.o
 
 core-y				+= arch/m68k/kernel/	arch/m68k/mm/
@@ -114,9 +114,7 @@ core-$(CONFIG_M68040)		+= arch/m68k/fpsp040/
 core-$(CONFIG_M68060)		+= arch/m68k/ifpsp060/
 core-$(CONFIG_M68KFPU_EMU)	+= arch/m68k/math-emu/
 core-$(CONFIG_M68360)		+= arch/m68k/platform/68360/
-core-$(CONFIG_M68000)		+= arch/m68k/platform/68328/
-core-$(CONFIG_M68EZ328)		+= arch/m68k/platform/68EZ328/
-core-$(CONFIG_M68VZ328)		+= arch/m68k/platform/68VZ328/
+core-$(CONFIG_M68000)		+= arch/m68k/platform/68000/
 core-$(CONFIG_COLDFIRE)		+= arch/m68k/platform/coldfire/
 
 
arch/m68k/platform/68000/Makefile new file +23 -0
new file mode 100644
index 0000000..e1777ee
@@ -0,0 +1,23 @@
+##################################################
+#
+# Makefile for arch/m68k/platform/68000
+#
+# 2012.10.21, Luis Alves <[email protected]>
+#             Merged all 68000 based cpu's configuration
+#             files into a single directory.
+#
+
+# 68328, 68EZ328, 68VZ328
+
+obj-y				+= entry.o ints.o timers.o
+obj-$(CONFIG_M68328)		+= config.o
+obj-$(CONFIG_M68EZ328)		+= config-ez.o
+obj-$(CONFIG_M68VZ328)		+= config-vz.o
+obj-$(CONFIG_ROM)		+= romvec.o
+
+model-y				:= ram
+model-$(CONFIG_ROMKERNEL)	:= rom
+
+extra-y				:= head.o
+
+clean-files			:= $(obj)/head.o
arch/m68k/platform/68000/bootlogo-vz.h renamed from arch/m68k/platform/68VZ328/bootlogo.h +0 -0
similarity index 100%
rename from arch/m68k/platform/68VZ328/bootlogo.h
rename to arch/m68k/platform/68000/bootlogo-vz.h
arch/m68k/platform/68000/bootlogo.h renamed from arch/m68k/platform/68328/bootlogo.h +0 -0
similarity index 100%
rename from arch/m68k/platform/68328/bootlogo.h
rename to arch/m68k/platform/68000/bootlogo.h
arch/m68k/platform/68000/config-ez.c renamed from arch/m68k/platform/68EZ328/config.c +0 -0
similarity index 100%
rename from arch/m68k/platform/68EZ328/config.c
rename to arch/m68k/platform/68000/config-ez.c
arch/m68k/platform/68000/config-vz.c renamed from arch/m68k/platform/68VZ328/config.c +1 -1
similarity index 99%
rename from arch/m68k/platform/68VZ328/config.c
rename to arch/m68k/platform/68000/config-vz.c
index 2ed8dc3..810bc36 100644
@@ -28,7 +28,7 @@
 #include <asm/bootstd.h>
 
 #ifdef CONFIG_INIT_LCD
-#include "bootlogo.h"
+#include "bootlogo-vz.h"
 #endif
 
 /***************************************************************************/
arch/m68k/platform/68000/config.c renamed from arch/m68k/platform/68328/config.c +0 -0
similarity index 100%
rename from arch/m68k/platform/68328/config.c
rename to arch/m68k/platform/68000/config.c
arch/m68k/platform/68000/entry.S renamed from arch/m68k/platform/68328/entry.S +0 -0
similarity index 100%
rename from arch/m68k/platform/68328/entry.S
rename to arch/m68k/platform/68000/entry.S
arch/m68k/platform/68000/head.S new file +317 -0

317 lines not on this page · raw message

arch/m68k/platform/68000/ints.c renamed from arch/m68k/platform/68328/ints.c +0 -0
similarity index 100%
rename from arch/m68k/platform/68328/ints.c
rename to arch/m68k/platform/68000/ints.c
arch/m68k/platform/68000/romvec.S renamed from arch/m68k/platform/68328/romvec.S +0 -0
similarity index 100%
rename from arch/m68k/platform/68328/romvec.S
rename to arch/m68k/platform/68000/romvec.S
arch/m68k/platform/68000/timers.c renamed from arch/m68k/platform/68328/timers.c +0 -0
similarity index 100%
rename from arch/m68k/platform/68328/timers.c
rename to arch/m68k/platform/68000/timers.c
arch/m68k/platform/68328/Makefile deleted +0 -21
deleted file mode 100644
index ee61bf8..0000000
@@ -1,21 +0,0 @@
-#
-# Makefile for arch/m68knommu/platform/68328.
-#
-
-model-y			  := ram
-model-$(CONFIG_ROMKERNEL) := rom
-
-head-y			= head-$(model-y).o
-head-$(CONFIG_PILOT)	= head-pilot.o
-head-$(CONFIG_DRAGEN2)	= head-de2.o
-
-obj-y			+= entry.o ints.o timers.o
-obj-$(CONFIG_M68328)	+= config.o
-obj-$(CONFIG_ROM)	+= romvec.o
-
-extra-y			:= head.o
-
-$(obj)/head.o: $(obj)/$(head-y)
-	ln -sf $(head-y) $(obj)/head.o
-
-clean-files := $(obj)/head.o $(head-y)
arch/m68k/platform/68328/head-de2.S deleted +0 -128

128 lines not on this page · raw message

arch/m68k/platform/68328/head-pilot.S deleted +0 -207

207 lines not on this page · raw message

arch/m68k/platform/68328/head-ram.S deleted +0 -141

141 lines not on this page · raw message

arch/m68k/platform/68328/head-rom.S deleted +0 -105

105 lines not on this page · raw message

arch/m68k/platform/68EZ328/Makefile deleted +0 -5
deleted file mode 100644
index b44d799..0000000
@@ -1,5 +0,0 @@
-#
-# Makefile for arch/m68knommu/platform/68EZ328.
-#
-
-obj-y := config.o
arch/m68k/platform/68VZ328/Makefile deleted +0 -5
deleted file mode 100644
index 8166741..0000000
@@ -1,5 +0,0 @@
-#
-# Makefile for arch/m68k/platform/68VZ328.
-#
-
-obj-y		:= config.o
Signature · 1 line
1.7.10.4
#1 lore raw

Hi Luis,

Quoted 10 lines · Luis Alves

Finnaly I've found some time to get back to the 68k.

This patch merges all 68000 core cpus in one directory. Patch was generated using -B and -M and checked with scricts/checkpatch.pl

It doesn't include the MC68000 code. I expect the next patch to include the 68k board definition and mc68000 related code.
Also I expect to merge all entry*.S into a single file.

This looks pretty good. I am happy with the way the common 68000 code all falls out. Nice.It sure is a big patch on its own though.

Couple of minor things I single out below. And they are just minor.

Quoted 16 lines
arch/m68k/platform/68000/Makefile new file +9 -0
new file mode 100644
index 0000000..e1777ee
@@ -0,0 +1,23 @@
+##################################################
+#
+# Makefile for arch/m68k/platform/68000
+#
+# 2012.10.21, Luis Alves <[email protected]>
+#             Merged all 68000 based cpu's configuration
+#             files into a single directory.
+#
+

arch/m68k/platform/68000/Makefile line 19

Quoted 10 lines
arch/m68k/platform/68000/Makefile new file +10 -0
+# 68328, 68EZ328, 68VZ328
+
+obj-y				+= entry.o ints.o timers.o
+obj-$(CONFIG_M68328)		+= config.o
+obj-$(CONFIG_M68EZ328)		+= config-ez.o
+obj-$(CONFIG_M68VZ328)		+= config-vz.o
+obj-$(CONFIG_ROM)		+= romvec.o
+
+model-y				:= ram
+model-$(CONFIG_ROMKERNEL)	:= rom

Is this model-* still needed?

Quoted 14 lines
arch/m68k/platform/68000/config.c renamed from arch/m68k/platform/68328/config.c +0 -0
similarity index 100%
rename from arch/m68k/platform/68328/config.c
rename to arch/m68k/platform/68000/config.c
arch/m68k/platform/68000/entry.S renamed from arch/m68k/platform/68328/entry.S +0 -0
similarity index 100%
rename from arch/m68k/platform/68328/entry.S
rename to arch/m68k/platform/68000/entry.S
arch/m68k/platform/68000/head.S new file +0 -0
new file mode 100644
index 0000000..6e0e2de

arch/m68k/platform/68000/head.S line 2

Quoted 2 lines
arch/m68k/platform/68000/head.S new file +2 -0
@@ -0,0 +1,317 @@
+/*
+ * linux/arch/m68k/platform/68000/head.S

Having the full path name here is mostly frowned upon these days. It eventually goes stale, if/when files get moved.

Quoted 27 lines
arch/m68k/platform/68000/head.S new file +27 -0
+ *
+ * Common startup code for 68000 core based CPU's
+ *
+ * 2012.10.21, Luis Alves <[email protected]>, Single head.S file for all
+ *             68000 core based CPU's. Based on the sources from:
+ *             Coldfire by Greg Ungerer <[email protected]>
+ *             68328 by D. Jeff Dionne <[email protected]>,
+ *                      Kenneth Albanowski <[email protected]>,
+ *                      The Silver Hammer Group, Ltd.
+ *
+ */
+
+#include <linux/linkage.h>
+#include <linux/init.h>
+#include <asm/asm-offsets.h>
+#include <asm/thread_info.h>
+
+
+/*****************************************************************************
+ *
+ * UCSIMM and UCDIMM use CONFIG_MEMORY_RESERVE to reserve some RAM
+ *
+ *****************************************************************************/
+
+#ifdef CONFIG_MEMORY_RESERVE
+#define RAMEND	(CONFIG_RAMBASE + CONFIG_RAMSIZE) - (CONFIG_MEMORY_RESERVE * 0x100000)
+#else

arch/m68k/platform/68000/head.S line 39

Quoted 10 lines
arch/m68k/platform/68000/head.S new file +10 -0
+#define RAMEND	(CONFIG_RAMBASE + CONFIG_RAMSIZE)
+#endif
+
+/*****************************************************************************/
+
+.global	_start
+.global _rambase
+.global _ramvec
+.global	_ramstart
+.global	_ramend

Inconsistent indenting?

arch/m68k/platform/68000/head.S line 47

Quoted 7 lines
arch/m68k/platform/68000/head.S new file +7 -0
+#if defined(CONFIG_PILOT) || defined(CONFIG_INIT_LCD)
+.global bootlogo_bits
+#endif
+
+/* Defining DEBUG_HEAD_CODE, serial port in 68x328 is inited */
+#undef DEBUG_HEAD_CODE
+//#define DEBUG_HEAD_CODE

No use of '//' for comments please :-)

Quoted 76 lines
arch/m68k/platform/68000/head.S new file +76 -0
+.data
+
+/*****************************************************************************
+ *
+ * RAM setup pointers. Used by the kernel to determine RAM location and size.
+ *
+ *****************************************************************************/
+
+_rambase:
+	.long	0
+_ramvec:
+	.long	0
+_ramstart:
+	.long	0
+_ramend:
+	.long	0
+
+
+__HEAD
+
+
+/*****************************************************************************
+ *
+ * Entry point, where all begins!
+ *
+ *****************************************************************************/
+
+_start:
+
+
+/*****************************************************************************
+ *
+ * Pilot need this specific signature at the start of ROM
+ *
+ *****************************************************************************/
+
+#ifdef CONFIG_PILOT
+	.byte 0x4e, 0xfa, 0x00, 0x0a /* bra opcode (jump 10 bytes ahead) */
+	.byte 'b', 'o', 'o', 't'
+	.word 10000
+	nop
+	moveq	#0, %d0
+	movew   %d0, 0xfffff618 /* Watchdog off */
+	movel	#0x00011f07, 0xfffff114 /* CS A1 Mask */
+#endif /* CONFIG_PILOT */
+
+
+	movew	#0x2700, %sr			/* disable all interrupts */
+
+
+/*****************************************************************************
+ *
+ * Setup PLL and wait for it to settle (in 68x328 cpu's).
+ * Also, if enabled, init serial port.
+ *
+ *****************************************************************************/
+
+#if defined(CONFIG_M68328) || \
+    defined(CONFIG_M68EZ328) || \
+    defined(CONFIG_M68VZ328)
+
+/* Serial port setup. Should only be needed if debugging this startup code. */
+#ifdef DEBUG_HEAD_CODE
+	movew	#0x0800, 0xfffff906		/* Ignore CTS */
+	movew	#0x010b, 0xfffff902		/* BAUD to 9600 */
+	movew	#0xe100, 0xfffff900		/* enable */
+#endif /* DEBUG_HEAD */
+
+#ifdef CONFIG_PILOT
+	movew	#0x2410, 0xfffff200		/* PLLCR */
+#else
+	movew   #0x2400, 0xfffff200		/* PLLCR */
+#endif
+	movew	#0x0123, 0xfffff202		/* PLLFSR */
+
+	moveq   #0,%d0

arch/m68k/platform/68000/head.S line 134

Quoted 10 lines
arch/m68k/platform/68000/head.S new file +10 -0
+	movew	#16384, %d0			/* PLL settle wait loop */
+_pll_settle:
+	subw	#1, %d0
+	bne	_pll_settle
+
+#endif /* CONFIG_M68x328 */
+
+
+
+

Probably a bit too much white space used in a number of places in this file :-)

Quoted 75 lines
arch/m68k/platform/68000/head.S new file +75 -0
+/*****************************************************************************
+ *
+ * If running kernel from ROM/FLASH some specific initialization has
+ * to be done.
+ * (Assuming that everything is already init'ed when running from RAM)
+ *
+ *****************************************************************************/
+
+#ifdef CONFIG_ROMKERNEL
+
+
+/*****************************************************************************
+ *
+ * Init chip registers (uCsimm specific)
+ *
+ *****************************************************************************/
+#ifdef CONFIG_UCSIMM
+	moveb	#0x00,   0xfffffb0b	/* Watchdog off */
+	moveb	#0x10,   0xfffff000	/* SCR */
+
+	moveb	#0x00,   0xfffff40b	/* enable chip select */
+	moveb	#0x00,   0xfffff423	/* enable /DWE */
+	moveb	#0x08,   0xfffffd0d	/* disable hardmap */
+	moveb	#0x07,   0xfffffd0e	/* level 7 interrupt clear */
+
+	movew	#0x8600, 0xfffff100	/* FLASH at 0x10c00000 */
+	movew	#0x018b, 0xfffff110	/* 2Meg, enable, 0ws */
+
+	movew	#0x8f00, 0xfffffc00	/* DRAM configuration */
+	movew	#0x9667, 0xfffffc02	/* DRAM control */
+	movew	#0x0000, 0xfffff106	/* DRAM at 0x00000000 */
+	movew	#0x068f, 0xfffff116	/* 8Meg, enable, 0ws */
+
+	moveb	#0x40,   0xfffff300	/* IVR */
+	movel	#0x007FFFFF, %d0	/* IMR */
+	movel	%d0,     0xfffff304
+
+	moveb	0xfffff42b, %d0
+	andb	#0xe0,	 %d0
+	moveb	%d0,	 0xfffff42b
+#endif
+
+
+/*****************************************************************************
+ *
+ * Init LCD controller.
+ *
+ * NOTE: Assuming that LCD controller is already init'ed
+ *       when running from RAM.
+ *
+ *****************************************************************************/
+#ifdef CONFIG_INIT_LCD
+
+#ifdef CONFIG_PILOT
+	moveb	#0, 0xfffffA27			/* LCKCON */
+	movel   #_start, 0xfffffA00		/* LSSA */
+	moveb   #0xa, 0xfffffA05		/* LVPW */
+	movew	#0x9f, 0xFFFFFa08		/* LXMAX */
+	movew	#0x9f, 0xFFFFFa0a		/* LYMAX */
+	moveb   #9, 0xfffffa29			/* LBAR */
+	moveb   #0, 0xfffffa25			/* LPXCD */
+	moveb	#0x04, 0xFFFFFa20		/* LPICF */
+	moveb	#0x58, 0xfffffA27		/* LCKCON */
+	moveb	#0x85, 0xfffff429		/* PFDATA */
+	moveb	#0xd8, 0xfffffA27		/* LCKCON */
+	moveb	#0xc5, 0xfffff429		/* PFDATA */
+	moveb	#0xd5, 0xfffff429		/* PFDATA */
+
+	movel	#bootlogo_bits, 0xFFFFFA00	/* LSSA */
+	moveb	#10, 0xFFFFFA05			/* LVPW */
+	movew	#160, 0xFFFFFA08		/* LXMAX */
+	movew	#160, 0xFFFFFA0A		/* LYMAX */
+
+#else /* CONFIG_PILOT */
+

arch/m68k/platform/68000/head.S line 219

Quoted 10 lines
arch/m68k/platform/68000/head.S new file +10 -0
+	movel	#bootlogo_bits, 0xfffffA00	/* LSSA */
+	moveb	#0x28,   0xfffffA05		/* LVPW */
+	movew	#0x280,  0xFFFFFa08		/* LXMAX */
+	movew	#0x1df,  0xFFFFFa0a		/* LYMAX */
+	moveb	#0,      0xfffffa29		/* LBAR */
+	moveb	#0,      0xfffffa25		/* LPXCD */
+	moveb	#0x08,   0xFFFFFa20		/* LPICF */
+	moveb	#0x01,   0xFFFFFA21		/* -ve pol */
+	moveb	#0x81,   0xfffffA27		/* LCKCON */
+	movew	#0xff00, 0xfffff412		/* LCD pins */

Inconsistent spacing used on args throughout this file. I know some of this came strait from the older files. But lets use this chance to at least make it consistent now.

Quoted 39 lines
arch/m68k/platform/68000/head.S new file +39 -0
+#endif /* CONFIG_PILOT */
+
+#endif /* CONFIG_INIT_LCD */
+
+
+
+/*****************************************************************************
+ *
+ * Kernel is running from FLASH/ROM (XIP)
+ * Copy init text & data to RAM
+ *
+ *****************************************************************************/
+
+	moveal	#_etext, %a0
+	moveal	#_sdata, %a1
+	moveal	#_sbss, %a2
+_copy_initmem:
+	movel	%a0@+, %a1@+
+	cmpal	%a1, %a2
+	bhi	_copy_initmem
+
+#endif /* CONFIG_ROMKERNEL */
+
+
+
+/*****************************************************************************
+ *
+ * Setup basic memory information for kernel
+ *
+ *****************************************************************************/
+
+	movel	#CONFIG_VECTORBASE,_ramvec	/* set vector base location */
+	movel	#CONFIG_RAMBASE,_rambase	/* set the base of RAM */
+	movel	#RAMEND, _ramend		/* set end ram addr */
+	lea	_ebss,%a1
+	movel	%a1,_ramstart
+
+
+/*****************************************************************************

arch/m68k/platform/68000/head.S line 269

Quoted 10 lines
arch/m68k/platform/68000/head.S new file +10 -0
+ *
+ * If the kernel is in RAM, move romfs to right above bss and
+ * adjust _ramstart to where romfs ends.
+ *
+ * (Do this only if CONFIG_MTD_UCLINUX_EBSS is true)
+ *
+ *****************************************************************************/
+
+#if defined(CONFIG_ROMFS_FS) && defined(CONFIG_RAMKERNEL) && \
+    defined(CONFIG_MTD_UCLINUX_EBSS)

There is no CONFIG_MTD_UCLINUX_EBSS in mainline kernels. Just use CONFIG_MTD_UCLINUX.

Regards
Greg

------------------------------------------------------------------------

Greg Ungerer  --  Principal Engineer        EMAIL:     [email protected]
SnapGear Group, McAfee                      PHONE:       +61 7 3435 2888
8 Gardner Close                             FAX:         +61 7 3217 5323
Milton, QLD, 4064, Australia                WEB: http://www.SnapGear.com
#3 lore raw
In reply to Luis Alves

arch/m68k/Kconfig.cpu endchoice · line 41

Quoted 11 lines · Luis Alves
arch/m68k/Kconfig.cpu +1 -1
@@ -35,7 +35,7 @@ endchoice
 if M68KCLASSIC
 
 config M68000
-       bool
+       bool "MC68000"
        select CPU_HAS_NO_BITFIELDS
        select CPU_HAS_NO_MULDIV64
        select CPU_HAS_NO_UNALIGNED

This needs a "depends on !MMU".
Else allmodconfig will select it, causing -m68000 to be passed to the assembler, which may break the build depending on your version of binutils, a.o.

arch/m68k/kernel/entry.S:186: Error: invalid instruction for this architecture; needs 68020 or higher (68020 [68k, 68ec020], 68030 [68ec030], 68040 [68ec040], 68060 [68ec060]) -- statement bfextu %sp@(50){#0,#4},%d0' ignored arch/m68k/kernel/entry.S:211: Error: invalid operand mode for this architecture; needs 68020 or higher -- statement jbsr @(sys_call_table,%d0:l:4)@(0)' ignored

Cfr. http://kisskb.ellerman.id.au/kisskb/buildresult/7416877/

BTW, it didn't break the build on my ancient workhorse binutils, but that's no guarantee it would boot...

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds