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: Thu, 29 Dec 2011 14:52:17 +1000 [thread overview]
Message-ID: <4EFBF201.7090201@snapgear.com> (raw)
In-Reply-To: <4EFA726C.6040406@snapgear.com>
Hi Geert,
On 28/12/11 11:35, Greg Ungerer wrote:
> On 27/12/11 05:32, Geert Uytterhoeven wrote:
>> 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.
Ran through all the defconfigs again, and with the choice change none
of them needed updating. They all build with the correct CPU choices
in place.
Nice work :-)
Regards
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-29 4:52 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
2011-12-29 4:52 ` Greg Ungerer [this message]
-- 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=4EFBF201.7090201@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