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
next prev 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