public inbox for linux-m68k@lists.linux-m68k.org
 help / color / mirror / Atom feed
From: Greg Ungerer <gerg@snapgear.com>
To: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: linux-m68k@vger.kernel.org, uclinux-dev@uclinux.org,
	Greg Ungerer <gerg@uclinux.org>
Subject: Re: [PATCH 35/35] m68k: allow ColdFire 547x and 548x CPUs to be built with MMU enabled
Date: Wed, 28 Dec 2011 11:35:40 +1000	[thread overview]
Message-ID: <4EFA726C.6040406@snapgear.com> (raw)
In-Reply-To: <alpine.DEB.2.00.1112261011590.4517@ayla.of.borg>

Hi Geert,

On 27/12/11 05:32, Geert Uytterhoeven wrote:
> 	Hi Greg,
>
> On Fri, 23 Dec 2011, gerg@snapgear.com wrote:
>> From: Greg Ungerer<gerg@uclinux.org>
>>
>> The ColdFire 547x and 548x CPUs have internal MMU hardware. All code
>> to support this is now in, so we can build kernels with it enabled.
>>
>> Signed-off-by: Greg Ungerer<gerg@uclinux.org>
>> Acked-by: Geert Uytterhoeven<geert@linux-m68k.org>
>> Acked-by: Matt Waddel<mwaddel@yahoo.com>
>> Acked-by: Kurt Mahan<kmahan@xmission.com>
>> ---
>>   arch/m68k/Kconfig.cpu |    4 ++--
>>   1 files changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/arch/m68k/Kconfig.cpu b/arch/m68k/Kconfig.cpu
>> index 5ae1d63..a4c75ad 100644
>> --- a/arch/m68k/Kconfig.cpu
>> +++ b/arch/m68k/Kconfig.cpu
>> @@ -226,8 +226,8 @@ config M54xx
>>
>>   config M547x
>>   	bool "MCF547x"
>> -	depends on !MMU
>>   	select COLDFIRE
>> +	select MMU_COLDFIRE if MMU
>>   	select M54xx
>>   	select HAVE_CACHE_CB
>>   	select HAVE_MBAR
>> @@ -236,8 +236,8 @@ config M547x
>>
>>   config M548x
>>   	bool "MCF548x"
>> -	depends on !MMU
>>   	select COLDFIRE
>> +	select MMU_COLDFIRE if MMU
>>   	select M54xx
>>   	select HAVE_CACHE_CB
>>   	select HAVE_MBAR
>
> This breaks allmodconfig, which now tries to build a hybrid classic/coldfire
> kernel, which is not supported.
>
> In addition, M54xx kernels with e.g. Amiga or Atari support won't build
> neither (I think, I haven't tried --- We may want to reconsider later as
> there do exist Coldfire accelerator cards for some machines).
>
> At first I tried to fix it transparently by introducing CONFIG_M68KCLASSIC and
> using a combination of select and depends, cfr. Sun3 MMU support, but that
> failed due to a circular Kconfig dependency.
>
> So I came up with the patch below. Note that some defconfigs must be
> regenerated, as they may create configs without CPU support.

Yep, that makes sense. I had considered during development of these
patches if we needed something like a M68KCLASSIC define. Looks like
we do :-)

I applied this patch before the the 0035 patch that created this problem.
So that should keep everything able to build (and bisectable) with
allmodconfig. I also squashed the change to use "choice" into this
patch as well.

When I get another minute I'll look at updating the defconfigs based on
this too.

Thanks!
Greg


> from c56cfe6a186f45a88ffc3e628be4649ae51e61ad Mon Sep 17 00:00:00 2001
> From: Geert Uytterhoeven<geert@linux-m68k.org>
> Date: Mon, 26 Dec 2011 19:57:33 +0100
> Subject: [PATCH] m68k/Kconfig: Separate classic m68k and coldfire early
>
> While you can build multiplatform kernels for machines with classic
> m68k processors, you cannot mix support for classic m68k and coldfire
> processors. To avoid such hybrid kernels, introduce CONFIG_M68KCLASSIC
> as an antipole for CONFIG_COLDFIRE, and make all specific processor
> support depend on one of them.
> All classic m68k machine support also needs to depend on this.
>
> The defaults (CONFIG_M68KCLASSIC if MMU, CONFIG_COLDFIRE if !MMU) are
> chosen such to make most of the existing configs build and work.
>
> Signed-off-by: Geert Uytterhoeven<geert@linux-m68k.org>
> ---
>   arch/m68k/Kconfig.cpu     |   63 +++++++++++++++++++++++++--------------------
>   arch/m68k/Kconfig.machine |    4 +++
>   2 files changed, 39 insertions(+), 28 deletions(-)
>
> diff --git a/arch/m68k/Kconfig.cpu b/arch/m68k/Kconfig.cpu
> index a4c75ad..58d4b52 100644
> --- a/arch/m68k/Kconfig.cpu
> +++ b/arch/m68k/Kconfig.cpu
> @@ -1,5 +1,34 @@
>   comment "Processor Type"
>
> +config M68KCLASSIC
> +	bool "Classic M68K CPU family support"
> +	default y if MMU
> +	help
> +	  The Freescale (was Motorola) M68K family of processors implements
> +	  the full 68000 processor instruction set.
> +	  If you anticipate running this kernel on a computer with a classic
> +	  MC68xxx processor, say Y. Otherwise, say N.
> +
> +config COLDFIRE
> +	bool "Coldfire CPU family support"
> +	depends on !M68KCLASSIC
> +	select GENERIC_GPIO
> +	select ARCH_REQUIRE_GPIOLIB
> +	select CPU_HAS_NO_BITFIELDS
> +	select CPU_HAS_NO_MULDIV64
> +	select GENERIC_CSUM
> +	default y if !MMU
> +	help
> +	  The Freescale ColdFire family of processors is a modern derivitive
> +	  of the 68000 processor family. They are mainly targeted at embedded
> +	  applications, and are all System-On-Chip (SOC) devices, as opposed
> +	  to stand alone CPUs. They implement a subset of the original 68000
> +	  processor instruction set.
> +	  If you anticipate running this kernel on a computer with a ColdFire
> +	  processor, say Y. Otherwise, say N.
> +
> +if M68KCLASSIC
> +
>   config M68000
>   	bool
>   	select CPU_HAS_NO_BITFIELDS
> @@ -20,20 +49,6 @@ config MCPU32
>   	  based on the 68020 processor. For the most part it is used in
>   	  System-On-Chip parts, and does not contain a paging MMU.
>
> -config COLDFIRE
> -	bool
> -	select GENERIC_GPIO
> -	select ARCH_REQUIRE_GPIOLIB
> -	select CPU_HAS_NO_BITFIELDS
> -	select CPU_HAS_NO_MULDIV64
> -	select GENERIC_CSUM
> -	help
> -	  The Freescale ColdFire family of processors is a modern derivitive
> -	  of the 68000 processor family. They are mainly targeted at embedded
> -	  applications, and are all System-On-Chip (SOC) devices, as opposed
> -	  to stand alone CPUs. They implement a subset of the original 68000
> -	  processor instruction set.
> -
>   config M68020
>   	bool "68020 support"
>   	depends on MMU
> @@ -103,10 +118,13 @@ config M68360
>   	help
>   	  Motorola 68360 processor support.
>
> +endif # M68KCLASSIC
> +
> +if COLDFIRE
> +
>   config M5206
>   	bool "MCF5206"
>   	depends on !MMU
> -	select COLDFIRE
>   	select COLDFIRE_SW_A7
>   	select HAVE_MBAR
>   	help
> @@ -115,7 +133,6 @@ config M5206
>   config M5206e
>   	bool "MCF5206e"
>   	depends on !MMU
> -	select COLDFIRE
>   	select COLDFIRE_SW_A7
>   	select HAVE_MBAR
>   	help
> @@ -124,7 +141,6 @@ config M5206e
>   config M520x
>   	bool "MCF520x"
>   	depends on !MMU
> -	select COLDFIRE
>   	select GENERIC_CLOCKEVENTS
>   	select HAVE_CACHE_SPLIT
>   	help
> @@ -133,7 +149,6 @@ config M520x
>   config M523x
>   	bool "MCF523x"
>   	depends on !MMU
> -	select COLDFIRE
>   	select GENERIC_CLOCKEVENTS
>   	select HAVE_CACHE_SPLIT
>   	select HAVE_IPSBAR
> @@ -143,7 +158,6 @@ config M523x
>   config M5249
>   	bool "MCF5249"
>   	depends on !MMU
> -	select COLDFIRE
>   	select COLDFIRE_SW_A7
>   	select HAVE_MBAR
>   	help
> @@ -155,7 +169,6 @@ config M527x
>   config M5271
>   	bool "MCF5271"
>   	depends on !MMU
> -	select COLDFIRE
>   	select M527x
>   	select HAVE_CACHE_SPLIT
>   	select HAVE_IPSBAR
> @@ -166,7 +179,6 @@ config M5271
>   config M5272
>   	bool "MCF5272"
>   	depends on !MMU
> -	select COLDFIRE
>   	select COLDFIRE_SW_A7
>   	select HAVE_MBAR
>   	help
> @@ -175,7 +187,6 @@ config M5272
>   config M5275
>   	bool "MCF5275"
>   	depends on !MMU
> -	select COLDFIRE
>   	select M527x
>   	select HAVE_CACHE_SPLIT
>   	select HAVE_IPSBAR
> @@ -186,7 +197,6 @@ config M5275
>   config M528x
>   	bool "MCF528x"
>   	depends on !MMU
> -	select COLDFIRE
>   	select GENERIC_CLOCKEVENTS
>   	select HAVE_CACHE_SPLIT
>   	select HAVE_IPSBAR
> @@ -196,7 +206,6 @@ config M528x
>   config M5307
>   	bool "MCF5307"
>   	depends on !MMU
> -	select COLDFIRE
>   	select COLDFIRE_SW_A7
>   	select HAVE_CACHE_CB
>   	select HAVE_MBAR
> @@ -206,7 +215,6 @@ config M5307
>   config M532x
>   	bool "MCF532x"
>   	depends on !MMU
> -	select COLDFIRE
>   	select HAVE_CACHE_CB
>   	help
>   	  Freescale (Motorola) ColdFire 532x processor support.
> @@ -214,7 +222,6 @@ config M532x
>   config M5407
>   	bool "MCF5407"
>   	depends on !MMU
> -	select COLDFIRE
>   	select COLDFIRE_SW_A7
>   	select HAVE_CACHE_CB
>   	select HAVE_MBAR
> @@ -226,7 +233,6 @@ config M54xx
>
>   config M547x
>   	bool "MCF547x"
> -	select COLDFIRE
>   	select MMU_COLDFIRE if MMU
>   	select M54xx
>   	select HAVE_CACHE_CB
> @@ -236,7 +242,6 @@ config M547x
>
>   config M548x
>   	bool "MCF548x"
> -	select COLDFIRE
>   	select MMU_COLDFIRE if MMU
>   	select M54xx
>   	select HAVE_CACHE_CB
> @@ -244,6 +249,8 @@ config M548x
>   	help
>   	  Freescale ColdFire 5480/5481/5482/5483/5484/5485 processor support.
>
> +endif # COLDFIRE
> +
>
>   comment "Processor Specific Options"
>
> diff --git a/arch/m68k/Kconfig.machine b/arch/m68k/Kconfig.machine
> index ef4a26a..7cdf6b0 100644
> --- a/arch/m68k/Kconfig.machine
> +++ b/arch/m68k/Kconfig.machine
> @@ -1,5 +1,7 @@
>   comment "Machine Types"
>
> +if M68KCLASSIC
> +
>   config AMIGA
>   	bool "Amiga support"
>   	depends on MMU
> @@ -130,6 +132,8 @@ config SUN3
>
>   	  If you don't want to compile a kernel exclusively for a Sun 3, say N.
>
> +endif # M68KCLASSIC
> +
>   config PILOT
>   	bool
>


-- 
------------------------------------------------------------------------
Greg Ungerer  --  Principal Engineer        EMAIL:     gerg@snapgear.com
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

  parent reply	other threads:[~2011-12-28  1:35 UTC|newest]

Thread overview: 65+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-12-23  3:15 [PATCH 00/35 v4] m68k: ColdFire MMU support gerg
2011-12-23  3:15 ` [PATCH 01/35] m68k: add machine and CPU definitions for ColdFire cores gerg
2011-12-23  3:15 ` [PATCH 02/35] m68k: show ColdFire CPU/FPU/MMU type gerg
2011-12-23  3:15 ` [PATCH 03/35] m68k: definitions for the ColdFire V4e MMU hardware gerg
2011-12-23  3:15 ` [PATCH 04/35] m68k: make interrupt definitions conditional on correct CPU types gerg
2011-12-23  3:15 ` [PATCH 05/35] m68k: add TASK definitions for ColdFires running with MMU gerg
2011-12-23  3:15 ` [PATCH 06/35] m68k: modify user space access functions to support ColdFire CPUs gerg
2011-12-25 19:56   ` Geert Uytterhoeven
2011-12-23  3:15 ` [PATCH 07/35] m68k: use addr_limit checking for m68k CPUs that do no support address spaces gerg
2011-12-25 20:01   ` Geert Uytterhoeven
2011-12-27 12:30     ` Greg Ungerer
2011-12-23  3:15 ` [PATCH 08/35] m68k: init the MMU hardware for the 54xx ColdFire gerg
2011-12-23  3:15 ` [PATCH 09/35] m68k: add ColdFire 54xx CPU MMU memory init code gerg
2011-12-25 20:05   ` Geert Uytterhoeven
2011-12-23  3:15 ` [PATCH 10/35] m68k: set register a2 to current if MMU enabled on ColdFire gerg
2011-12-25 20:09   ` Geert Uytterhoeven
2011-12-23  3:15 ` [PATCH 11/35] m68k: page table support definitions and code for ColdFire MMU gerg
2011-12-23  3:15 ` [PATCH 12/35] m68k: add page table size definitions for ColdFire V4e MMU gerg
2011-12-23  3:15 ` [PATCH 13/35] m68k: add ColdFire paging exception handling code gerg
2011-12-23  3:15 ` [PATCH 14/35] m68k: add cache support for V4e ColdFire cores running with MMU enabled gerg
2011-12-23  3:15 ` [PATCH 15/35] m68k: modify ColdFire 54xx cache support for " gerg
2011-12-23  3:15 ` [PATCH 16/35] m68k: add TLB flush support for the ColdFire V4e MMU hardware gerg
2011-12-23  3:15 ` [PATCH 17/35] m68k: define PAGE_OFFSET_RAW for ColdFire CPU with MMU enabled gerg
2011-12-25 20:15   ` Geert Uytterhoeven
2011-12-27 12:08     ` Greg Ungerer
2011-12-23  3:15 ` [PATCH 18/35] m68k: set ColdFire MMU page size gerg
2011-12-23  3:15 ` [PATCH 19/35] m68k: MMU enabled ColdFire needs 8k ELF alignment gerg
2011-12-23  3:15 ` [PATCH 20/35] m68k: ColdFire V4e MMU context support code gerg
2011-12-23  3:15 ` [PATCH 21/35] m68k: use tracehook_report_syscall_entry/exit for ColdFire MMU ptrace path gerg
2011-12-23  3:15 ` [PATCH 22/35] m68k: modify cache push and clear code for ColdFire with MMU enable gerg
2011-12-23  3:15 ` [PATCH 23/35] m68k: use ColdFire MMU read/write bit flags when ioremapping gerg
2011-12-25 20:23   ` Geert Uytterhoeven
2011-12-23  3:15 ` [PATCH 24/35] m68k: ColdFire V4e MMU paging init code and miss handler gerg
2011-12-23  3:15 ` [PATCH 25/35] m68k: compile appropriate mm arch files for ColdFire MMU support gerg
2011-12-23  3:15 ` [PATCH 26/35] m68k: create ColdFire MMU pgalloc code gerg
2011-12-23  3:15 ` [PATCH 27/35] m68k: use non-MMU entry.S code when compiling for ColdFire CPU gerg
2011-12-23  3:15 ` [PATCH 28/35] m68k: add code to setup a ColdFire 54xx platform when MMU enabled gerg
2011-12-23  3:15 ` [PATCH 29/35] m68k: ColdFire with MMU enabled uses same clocking code as non-MMU gerg
2011-12-25 20:24   ` Geert Uytterhoeven
2011-12-23  3:15 ` [PATCH 30/35] m68k: use non-MMU linker script for ColdFire MMU builds gerg
2011-12-23  3:15 ` [PATCH 31/35] m68k: adjustments to stack frame for ColdFire with MMU enabled gerg
2011-12-23  3:15 ` [PATCH 32/35] m68k: add ColdFire FPU support for the V4e ColdFire CPU's gerg
2011-12-24 19:38   ` Geert Uytterhoeven
2011-12-27 12:36     ` Greg Ungerer
2011-12-28  5:53     ` Greg Ungerer
2011-12-28 10:06       ` Geert Uytterhoeven
2011-12-28 12:32         ` Greg Ungerer
2011-12-28 12:47           ` Andreas Schwab
2011-12-28 11:17       ` Joshua Juran
2011-12-28 12:57         ` Greg Ungerer
2011-12-23  3:15 ` [PATCH 33/35] m68k: do not use m68k startup or interrupt code for " gerg
2011-12-25 20:33   ` Geert Uytterhoeven
2011-12-27 12:24     ` Greg Ungerer
2011-12-27 18:30       ` Geert Uytterhoeven
2011-12-28  0:22         ` Greg Ungerer
2011-12-28 10:09           ` Geert Uytterhoeven
2011-12-29  2:01             ` Greg Ungerer
2011-12-23  3:15 ` [PATCH 34/35] m68k: add ColdFire with MMU enabled support to the m68k mem init code gerg
2011-12-23  3:15 ` [PATCH 35/35] m68k: allow ColdFire 547x and 548x CPUs to be built with MMU enabled gerg
2011-12-26 19:32   ` Geert Uytterhoeven
2011-12-26 19:33     ` Geert Uytterhoeven
2011-12-28  1:35     ` Greg Ungerer [this message]
2011-12-29  4:52       ` Greg Ungerer
  -- strict thread matches above, loose matches on Subject: below --
2011-12-16 12:35 [PATCH 00/35 v3] m68k: ColdFire MMU support gerg
2011-12-16 12:36 ` [PATCH 35/35] m68k: allow ColdFire 547x and 548x CPUs to be built with MMU enabled gerg
2011-11-25  3:40 [PATCH 00/35 v2] m68k: ColdFire MMU support gerg
2011-11-25  3:41 ` [PATCH 35/35] m68k: allow ColdFire 547x and 548x CPUs to be built with MMU enabled gerg

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4EFA726C.6040406@snapgear.com \
    --to=gerg@snapgear.com \
    --cc=geert@linux-m68k.org \
    --cc=gerg@uclinux.org \
    --cc=linux-m68k@vger.kernel.org \
    --cc=uclinux-dev@uclinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox