diff mbox

[v5] ARM: new platform for Energy Micro's EFM32 Cortex-M3 SoCs

Message ID 1386694516-5876-1-git-send-email-u.kleine-koenig@pengutronix.de
State New
Headers show

Commit Message

Uwe Kleine-König Dec. 10, 2013, 4:55 p.m. UTC
There are still some missing parts (e.g. board support, device trees),
but with these bits added on top of this patch I can successfully boot a
EFM32GG-DK3750 board that uses an EFM32GG990F1024.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
---
Hello,

I'd like to get this patch in for 3.14. The latest submission (v4,
Message-Id:1383562853-17202-4-git-send-email-u.kleine-koenig@pengutronix.de)
had some strict dependencies:
 - http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=7889/1
   to be able to drop Makefile.boot, this is still in Status=Incoming in
   rmk's patch tracker.
 - http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=7890/1
   to be able to drop the unused <mach/entry-macro.S>. This is already
   applied by rmk in his for-next branch, so it's not stable yet.
 - My series to drop <mach/timex.h> for !MULTI_PLATFORM. I'll send a
   pull request for that soon.
 - Patch "clocksource: time-efm32: Select CLKSRC_MMIO". This is part of
   a pull request by Daniel Lezcano that is expected to hit Linus T.'s
   tree for the next -rc. It currently sits as
   4ff3774e451fefb1781638c76230b3cf9a206b92 in Daniel's tree at
   git://git.linaro.org/people/daniel.lezcano/linux.git clockevents/fixes
   .

To make application a bit easier I added dummy files to drop the
dependencies on the first three items of the list above.

So it would be great if you could apply this patch when 4ff3774e4 went
in. (In case you want to apply it already now, this last dependency
could be work arounded, too, by adding a "select CLKSRC_MMIO" to
ARCH_EFM32.)

Other than that the only change since v4 is that I mention the exact
board/processor combo in the changelog now.

Thanks for considering this patch, best regards
Uwe

 arch/arm/Kconfig                               |  19 ++++-
 arch/arm/Makefile                              |   1 +
 arch/arm/configs/efm32_defconfig               | 102 +++++++++++++++++++++++++
 arch/arm/mach-efm32/Makefile                   |   1 +
 arch/arm/mach-efm32/Makefile.boot              |   3 +
 arch/arm/mach-efm32/dtmachine.c                |  15 ++++
 arch/arm/mach-efm32/include/mach/entry-macro.S |   4 +
 arch/arm/mach-efm32/include/mach/timex.h       |   3 +
 8 files changed, 147 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/configs/efm32_defconfig
 create mode 100644 arch/arm/mach-efm32/Makefile
 create mode 100644 arch/arm/mach-efm32/Makefile.boot
 create mode 100644 arch/arm/mach-efm32/dtmachine.c
 create mode 100644 arch/arm/mach-efm32/include/mach/entry-macro.S
 create mode 100644 arch/arm/mach-efm32/include/mach/timex.h

Comments

Arnd Bergmann Dec. 10, 2013, 6:33 p.m. UTC | #1
On Tuesday 10 December 2013, Uwe Kleine-König wrote:
> There are still some missing parts (e.g. board support, device trees),
> but with these bits added on top of this patch I can successfully boot a
> EFM32GG-DK3750 board that uses an EFM32GG990F1024.
> 
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>

Acked-by: Arnd Bergmann <arnd@arndb.de>
Olof Johansson Dec. 12, 2013, 1:15 a.m. UTC | #2
On Tue, Dec 10, 2013 at 05:55:16PM +0100, Uwe Kleine-König wrote:
> There are still some missing parts (e.g. board support, device trees),
> but with these bits added on top of this patch I can successfully boot a
> EFM32GG-DK3750 board that uses an EFM32GG990F1024.
> 
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
> ---
> Hello,
> 
> I'd like to get this patch in for 3.14. The latest submission (v4,
> Message-Id:1383562853-17202-4-git-send-email-u.kleine-koenig@pengutronix.de)
> had some strict dependencies:
>  - http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=7889/1
>    to be able to drop Makefile.boot, this is still in Status=Incoming in
>    rmk's patch tracker.
>  - http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=7890/1
>    to be able to drop the unused <mach/entry-macro.S>. This is already
>    applied by rmk in his for-next branch, so it's not stable yet.
>  - My series to drop <mach/timex.h> for !MULTI_PLATFORM. I'll send a
>    pull request for that soon.
>  - Patch "clocksource: time-efm32: Select CLKSRC_MMIO". This is part of
>    a pull request by Daniel Lezcano that is expected to hit Linus T.'s
>    tree for the next -rc. It currently sits as
>    4ff3774e451fefb1781638c76230b3cf9a206b92 in Daniel's tree at
>    git://git.linaro.org/people/daniel.lezcano/linux.git clockevents/fixes
>    .
> 
> To make application a bit easier I added dummy files to drop the
> dependencies on the first three items of the list above.
> 
> So it would be great if you could apply this patch when 4ff3774e4 went
> in. (In case you want to apply it already now, this last dependency
> could be work arounded, too, by adding a "select CLKSRC_MMIO" to
> ARCH_EFM32.)
> 
> Other than that the only change since v4 is that I mention the exact
> board/processor combo in the changelog now.
> 
> Thanks for considering this patch, best regards

Applied to next/soc with a slightly tweaked patch subject.


-Olof
Uwe Kleine-König Dec. 12, 2013, 9:28 p.m. UTC | #3
On Wed, Dec 11, 2013 at 05:15:05PM -0800, Olof Johansson wrote:
> On Tue, Dec 10, 2013 at 05:55:16PM +0100, Uwe Kleine-König wrote:
> > There are still some missing parts (e.g. board support, device trees),
> > but with these bits added on top of this patch I can successfully boot a
> > EFM32GG-DK3750 board that uses an EFM32GG990F1024.
> > 
> > Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
> > ---
> > Hello,
> > 
> > I'd like to get this patch in for 3.14. The latest submission (v4,
> > Message-Id:1383562853-17202-4-git-send-email-u.kleine-koenig@pengutronix.de)
> > had some strict dependencies:
> >  - http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=7889/1
> >    to be able to drop Makefile.boot, this is still in Status=Incoming in
> >    rmk's patch tracker.
> >  - http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=7890/1
> >    to be able to drop the unused <mach/entry-macro.S>. This is already
> >    applied by rmk in his for-next branch, so it's not stable yet.
> >  - My series to drop <mach/timex.h> for !MULTI_PLATFORM. I'll send a
> >    pull request for that soon.
> >  - Patch "clocksource: time-efm32: Select CLKSRC_MMIO". This is part of
> >    a pull request by Daniel Lezcano that is expected to hit Linus T.'s
> >    tree for the next -rc. It currently sits as
> >    4ff3774e451fefb1781638c76230b3cf9a206b92 in Daniel's tree at
> >    git://git.linaro.org/people/daniel.lezcano/linux.git clockevents/fixes
> >    .
> > 
> > To make application a bit easier I added dummy files to drop the
> > dependencies on the first three items of the list above.
> > 
> > So it would be great if you could apply this patch when 4ff3774e4 went
> > in. (In case you want to apply it already now, this last dependency
> > could be work arounded, too, by adding a "select CLKSRC_MMIO" to
> > ARCH_EFM32.)
> > 
> > Other than that the only change since v4 is that I mention the exact
> > board/processor combo in the changelog now.
> > 
> > Thanks for considering this patch, best regards
> 
> Applied to next/soc with a slightly tweaked patch subject.
Thanks, but I wonder if it's a problem that the commit doesn't build? (i.e.

	git checkout f9b9cef1329c74607f33a20dce3f26e9a1f4ae96
	make efm32_defconfig
	make 

fails in

 - arch/arm/kernel/sigreturn_codes.S with
   "Error: selected processor does not support ARM opcodes" and a few
   variations.
 - drivers/clocksource/time-efm32.o fails to link, because next/soc
   isn't a decendant of 4ff3774e451f.

You can fix the latter by adding "select CLKSRC_MMIO" to ARCH_EFM32 if
you want. I don't remember what is the current state of the first
problem.)

Best regards
Uwe
Olof Johansson Dec. 12, 2013, 9:55 p.m. UTC | #4
On Thu, Dec 12, 2013 at 1:28 PM, Uwe Kleine-König
<u.kleine-koenig@pengutronix.de> wrote:
> On Wed, Dec 11, 2013 at 05:15:05PM -0800, Olof Johansson wrote:
>> On Tue, Dec 10, 2013 at 05:55:16PM +0100, Uwe Kleine-König wrote:
>> > There are still some missing parts (e.g. board support, device trees),
>> > but with these bits added on top of this patch I can successfully boot a
>> > EFM32GG-DK3750 board that uses an EFM32GG990F1024.
>> >
>> > Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
>> > ---
>> > Hello,
>> >
>> > I'd like to get this patch in for 3.14. The latest submission (v4,
>> > Message-Id:1383562853-17202-4-git-send-email-u.kleine-koenig@pengutronix.de)
>> > had some strict dependencies:
>> >  - http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=7889/1
>> >    to be able to drop Makefile.boot, this is still in Status=Incoming in
>> >    rmk's patch tracker.
>> >  - http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=7890/1
>> >    to be able to drop the unused <mach/entry-macro.S>. This is already
>> >    applied by rmk in his for-next branch, so it's not stable yet.
>> >  - My series to drop <mach/timex.h> for !MULTI_PLATFORM. I'll send a
>> >    pull request for that soon.
>> >  - Patch "clocksource: time-efm32: Select CLKSRC_MMIO". This is part of
>> >    a pull request by Daniel Lezcano that is expected to hit Linus T.'s
>> >    tree for the next -rc. It currently sits as
>> >    4ff3774e451fefb1781638c76230b3cf9a206b92 in Daniel's tree at
>> >    git://git.linaro.org/people/daniel.lezcano/linux.git clockevents/fixes
>> >    .
>> >
>> > To make application a bit easier I added dummy files to drop the
>> > dependencies on the first three items of the list above.
>> >
>> > So it would be great if you could apply this patch when 4ff3774e4 went
>> > in. (In case you want to apply it already now, this last dependency
>> > could be work arounded, too, by adding a "select CLKSRC_MMIO" to
>> > ARCH_EFM32.)
>> >
>> > Other than that the only change since v4 is that I mention the exact
>> > board/processor combo in the changelog now.
>> >
>> > Thanks for considering this patch, best regards
>>
>> Applied to next/soc with a slightly tweaked patch subject.
> Thanks, but I wonder if it's a problem that the commit doesn't build? (i.e.
>
>         git checkout f9b9cef1329c74607f33a20dce3f26e9a1f4ae96
>         make efm32_defconfig
>         make
>
> fails in
>
>  - arch/arm/kernel/sigreturn_codes.S with
>    "Error: selected processor does not support ARM opcodes" and a few
>    variations.
>  - drivers/clocksource/time-efm32.o fails to link, because next/soc
>    isn't a decendant of 4ff3774e451f.
>
> You can fix the latter by adding "select CLKSRC_MMIO" to ARCH_EFM32 if
> you want. I don't remember what is the current state of the first
> problem.)

Ok, dropped the patch again. Please let us know when the former has
been resolved.


-Olof
Uwe Kleine-König Dec. 13, 2013, 8:55 a.m. UTC | #5
Hello,

On Thu, Dec 12, 2013 at 01:55:38PM -0800, Olof Johansson wrote:
> On Thu, Dec 12, 2013 at 1:28 PM, Uwe Kleine-König
> <u.kleine-koenig@pengutronix.de> wrote:
> > On Wed, Dec 11, 2013 at 05:15:05PM -0800, Olof Johansson wrote:
> >> On Tue, Dec 10, 2013 at 05:55:16PM +0100, Uwe Kleine-König wrote:
> >> > There are still some missing parts (e.g. board support, device trees),
> >> > but with these bits added on top of this patch I can successfully boot a
> >> > EFM32GG-DK3750 board that uses an EFM32GG990F1024.
> >> >
> >> > Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
> >> > ---
> >> > Hello,
> >> >
> >> > I'd like to get this patch in for 3.14. The latest submission (v4,
> >> > Message-Id:1383562853-17202-4-git-send-email-u.kleine-koenig@pengutronix.de)
> >> > had some strict dependencies:
> >> >  - http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=7889/1
> >> >    to be able to drop Makefile.boot, this is still in Status=Incoming in
> >> >    rmk's patch tracker.
> >> >  - http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=7890/1
> >> >    to be able to drop the unused <mach/entry-macro.S>. This is already
> >> >    applied by rmk in his for-next branch, so it's not stable yet.
> >> >  - My series to drop <mach/timex.h> for !MULTI_PLATFORM. I'll send a
> >> >    pull request for that soon.
> >> >  - Patch "clocksource: time-efm32: Select CLKSRC_MMIO". This is part of
> >> >    a pull request by Daniel Lezcano that is expected to hit Linus T.'s
> >> >    tree for the next -rc. It currently sits as
> >> >    4ff3774e451fefb1781638c76230b3cf9a206b92 in Daniel's tree at
> >> >    git://git.linaro.org/people/daniel.lezcano/linux.git clockevents/fixes
> >> >    .
> >> >
> >> > To make application a bit easier I added dummy files to drop the
> >> > dependencies on the first three items of the list above.
> >> >
> >> > So it would be great if you could apply this patch when 4ff3774e4 went
> >> > in. (In case you want to apply it already now, this last dependency
> >> > could be work arounded, too, by adding a "select CLKSRC_MMIO" to
> >> > ARCH_EFM32.)
> >> >
> >> > Other than that the only change since v4 is that I mention the exact
> >> > board/processor combo in the changelog now.
> >> >
> >> > Thanks for considering this patch, best regards
> >>
> >> Applied to next/soc with a slightly tweaked patch subject.
> > Thanks, but I wonder if it's a problem that the commit doesn't build? (i.e.
> >
> >         git checkout f9b9cef1329c74607f33a20dce3f26e9a1f4ae96
> >         make efm32_defconfig
> >         make
> >
> > fails in
> >
> >  - arch/arm/kernel/sigreturn_codes.S with
> >    "Error: selected processor does not support ARM opcodes" and a few
> >    variations.
> >  - drivers/clocksource/time-efm32.o fails to link, because next/soc
> >    isn't a decendant of 4ff3774e451f.
> >
> > You can fix the latter by adding "select CLKSRC_MMIO" to ARCH_EFM32 if
> > you want. I don't remember what is the current state of the first
> > problem.)
> 
> Ok, dropped the patch again. Please let us know when the former has
> been resolved.
The former problem is fixed in 5091333 (ARM: 7895/1: signal: fix armv7-m
build issue in sigreturn_codes.S) which is in v3.13-rc3, but next/soc is
based on v3.13-rc1.

I suggest to wait until 4ff3774e451f hits Linus T.'s tree and then
reapply the patch.

Best regards
Uwe
Uwe Kleine-König Dec. 18, 2013, 2:09 p.m. UTC | #6
On Thu, Dec 12, 2013 at 01:55:38PM -0800, Olof Johansson wrote:
> On Thu, Dec 12, 2013 at 1:28 PM, Uwe Kleine-König
> <u.kleine-koenig@pengutronix.de> wrote:
> > On Wed, Dec 11, 2013 at 05:15:05PM -0800, Olof Johansson wrote:
> >> On Tue, Dec 10, 2013 at 05:55:16PM +0100, Uwe Kleine-König wrote:
> >> > There are still some missing parts (e.g. board support, device trees),
> >> > but with these bits added on top of this patch I can successfully boot a
> >> > EFM32GG-DK3750 board that uses an EFM32GG990F1024.
> >> >
> >> > Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
> >> > ---
> >> > Hello,
> >> >
> >> > I'd like to get this patch in for 3.14. The latest submission (v4,
> >> > Message-Id:1383562853-17202-4-git-send-email-u.kleine-koenig@pengutronix.de)
> >> > had some strict dependencies:
> >> >  - http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=7889/1
> >> >    to be able to drop Makefile.boot, this is still in Status=Incoming in
> >> >    rmk's patch tracker.
> >> >  - http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=7890/1
> >> >    to be able to drop the unused <mach/entry-macro.S>. This is already
> >> >    applied by rmk in his for-next branch, so it's not stable yet.
> >> >  - My series to drop <mach/timex.h> for !MULTI_PLATFORM. I'll send a
> >> >    pull request for that soon.
> >> >  - Patch "clocksource: time-efm32: Select CLKSRC_MMIO". This is part of
> >> >    a pull request by Daniel Lezcano that is expected to hit Linus T.'s
> >> >    tree for the next -rc. It currently sits as
> >> >    4ff3774e451fefb1781638c76230b3cf9a206b92 in Daniel's tree at
> >> >    git://git.linaro.org/people/daniel.lezcano/linux.git clockevents/fixes
> >> >    .
> >> >
> >> > To make application a bit easier I added dummy files to drop the
> >> > dependencies on the first three items of the list above.
> >> >
> >> > So it would be great if you could apply this patch when 4ff3774e4 went
> >> > in. (In case you want to apply it already now, this last dependency
> >> > could be work arounded, too, by adding a "select CLKSRC_MMIO" to
> >> > ARCH_EFM32.)
> >> >
> >> > Other than that the only change since v4 is that I mention the exact
> >> > board/processor combo in the changelog now.
> >> >
> >> > Thanks for considering this patch, best regards
> >>
> >> Applied to next/soc with a slightly tweaked patch subject.
> > Thanks, but I wonder if it's a problem that the commit doesn't build? (i.e.
> >
> >         git checkout f9b9cef1329c74607f33a20dce3f26e9a1f4ae96
> >         make efm32_defconfig
> >         make
> >
> > fails in
> >
> >  - arch/arm/kernel/sigreturn_codes.S with
> >    "Error: selected processor does not support ARM opcodes" and a few
> >    variations.
> >  - drivers/clocksource/time-efm32.o fails to link, because next/soc
> >    isn't a decendant of 4ff3774e451f.
> >
> > You can fix the latter by adding "select CLKSRC_MMIO" to ARCH_EFM32 if
> > you want. I don't remember what is the current state of the first
> > problem.)
> 
> Ok, dropped the patch again. Please let us know when the former has
> been resolved.
You did drop it, but when fetching today from armsoc, commit
f9b9cef1329c74607f made it back into next/soc. There is only a single
commit on top of it made by khilman (added to Cc:).

Hint: There is an open pull request that you can substitute
f9b9cef1329c74607f with.

Best regards
Uwe
Kevin Hilman Dec. 18, 2013, 3:45 p.m. UTC | #7
Uwe Kleine-König <u.kleine-koenig@pengutronix.de> writes:

> On Thu, Dec 12, 2013 at 01:55:38PM -0800, Olof Johansson wrote:
>> On Thu, Dec 12, 2013 at 1:28 PM, Uwe Kleine-König
>> <u.kleine-koenig@pengutronix.de> wrote:
>> > On Wed, Dec 11, 2013 at 05:15:05PM -0800, Olof Johansson wrote:
>> >> On Tue, Dec 10, 2013 at 05:55:16PM +0100, Uwe Kleine-König wrote:
>> >> > There are still some missing parts (e.g. board support, device trees),
>> >> > but with these bits added on top of this patch I can successfully boot a
>> >> > EFM32GG-DK3750 board that uses an EFM32GG990F1024.
>> >> >
>> >> > Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
>> >> > ---
>> >> > Hello,
>> >> >
>> >> > I'd like to get this patch in for 3.14. The latest submission (v4,
>> >> > Message-Id:1383562853-17202-4-git-send-email-u.kleine-koenig@pengutronix.de)
>> >> > had some strict dependencies:
>> >> >  - http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=7889/1
>> >> >    to be able to drop Makefile.boot, this is still in Status=Incoming in
>> >> >    rmk's patch tracker.
>> >> >  - http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=7890/1
>> >> >    to be able to drop the unused <mach/entry-macro.S>. This is already
>> >> >    applied by rmk in his for-next branch, so it's not stable yet.
>> >> >  - My series to drop <mach/timex.h> for !MULTI_PLATFORM. I'll send a
>> >> >    pull request for that soon.
>> >> >  - Patch "clocksource: time-efm32: Select CLKSRC_MMIO". This is part of
>> >> >    a pull request by Daniel Lezcano that is expected to hit Linus T.'s
>> >> >    tree for the next -rc. It currently sits as
>> >> >    4ff3774e451fefb1781638c76230b3cf9a206b92 in Daniel's tree at
>> >> >    git://git.linaro.org/people/daniel.lezcano/linux.git clockevents/fixes
>> >> >    .
>> >> >
>> >> > To make application a bit easier I added dummy files to drop the
>> >> > dependencies on the first three items of the list above.
>> >> >
>> >> > So it would be great if you could apply this patch when 4ff3774e4 went
>> >> > in. (In case you want to apply it already now, this last dependency
>> >> > could be work arounded, too, by adding a "select CLKSRC_MMIO" to
>> >> > ARCH_EFM32.)
>> >> >
>> >> > Other than that the only change since v4 is that I mention the exact
>> >> > board/processor combo in the changelog now.
>> >> >
>> >> > Thanks for considering this patch, best regards
>> >>
>> >> Applied to next/soc with a slightly tweaked patch subject.
>> > Thanks, but I wonder if it's a problem that the commit doesn't build? (i.e.
>> >
>> >         git checkout f9b9cef1329c74607f33a20dce3f26e9a1f4ae96
>> >         make efm32_defconfig
>> >         make
>> >
>> > fails in
>> >
>> >  - arch/arm/kernel/sigreturn_codes.S with
>> >    "Error: selected processor does not support ARM opcodes" and a few
>> >    variations.
>> >  - drivers/clocksource/time-efm32.o fails to link, because next/soc
>> >    isn't a decendant of 4ff3774e451f.
>> >
>> > You can fix the latter by adding "select CLKSRC_MMIO" to ARCH_EFM32 if
>> > you want. I don't remember what is the current state of the first
>> > problem.)
>> 
>> Ok, dropped the patch again. Please let us know when the former has
>> been resolved.
> You did drop it, but when fetching today from armsoc, commit
> f9b9cef1329c74607f made it back into next/soc. There is only a single
> commit on top of it made by khilman (added to Cc:).

OK, I rebuild next/soc with it *really* dropped this time. :)

> Hint: There is an open pull request that you can substitute
> f9b9cef1329c74607f with.

Yeah, it's in the queue.

Kevin
diff mbox

Patch

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index c1f1a7e..38ed5a9 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -410,6 +410,23 @@  config ARCH_EBSA110
 	  Ethernet interface, two PCMCIA sockets, two serial ports and a
 	  parallel port.
 
+config ARCH_EFM32
+	bool "Energy Micro efm32"
+	depends on !MMU
+	select ARCH_REQUIRE_GPIOLIB
+	select ARM_NVIC
+	select CLKSRC_OF
+	select COMMON_CLK
+	select CPU_V7M
+	select GENERIC_CLOCKEVENTS
+	select NO_DMA
+	select NO_IOPORT
+	select SPARSE_IRQ
+	select USE_OF
+	help
+	  Support for Energy Micro's (now Silicon Labs) efm32 Giant Gecko
+	  processors.
+
 config ARCH_EP93XX
 	bool "EP93xx-based"
 	select ARCH_HAS_HOLES_MEMORYMODEL
@@ -1799,7 +1816,7 @@  config FORCE_MAX_ZONEORDER
 	int "Maximum zone order" if ARCH_SHMOBILE
 	range 11 64 if ARCH_SHMOBILE
 	default "12" if SOC_AM33XX
-	default "9" if SA1111
+	default "9" if SA1111 || ARCH_EFM32
 	default "11"
 	help
 	  The kernel memory allocator divides physically contiguous memory
diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index c99b108..6da9abb 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -153,6 +153,7 @@  machine-$(CONFIG_ARCH_CNS3XXX)		+= cns3xxx
 machine-$(CONFIG_ARCH_DAVINCI)		+= davinci
 machine-$(CONFIG_ARCH_DOVE)		+= dove
 machine-$(CONFIG_ARCH_EBSA110)		+= ebsa110
+machine-$(CONFIG_ARCH_EFM32)		+= efm32
 machine-$(CONFIG_ARCH_EP93XX)		+= ep93xx
 machine-$(CONFIG_ARCH_EXYNOS)		+= exynos
 machine-$(CONFIG_ARCH_GEMINI)		+= gemini
diff --git a/arch/arm/configs/efm32_defconfig b/arch/arm/configs/efm32_defconfig
new file mode 100644
index 0000000..f59fffb
--- /dev/null
+++ b/arch/arm/configs/efm32_defconfig
@@ -0,0 +1,102 @@ 
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_LOG_BUF_SHIFT=12
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+# CONFIG_UID16 is not set
+# CONFIG_BASE_FULL is not set
+# CONFIG_FUTEX is not set
+# CONFIG_EPOLL is not set
+# CONFIG_SIGNALFD is not set
+# CONFIG_EVENTFD is not set
+# CONFIG_AIO is not set
+CONFIG_EMBEDDED=y
+# CONFIG_VM_EVENT_COUNTERS is not set
+# CONFIG_SLUB_DEBUG is not set
+# CONFIG_LBDAF is not set
+# CONFIG_BLK_DEV_BSG is not set
+# CONFIG_IOSCHED_DEADLINE is not set
+# CONFIG_IOSCHED_CFQ is not set
+# CONFIG_MMU is not set
+CONFIG_ARCH_EFM32=y
+# CONFIG_KUSER_HELPERS is not set
+CONFIG_SET_MEM_PARAM=y
+CONFIG_DRAM_BASE=0x88000000
+CONFIG_DRAM_SIZE=0x00400000
+CONFIG_FLASH_MEM_BASE=0x8c000000
+CONFIG_FLASH_SIZE=0x01000000
+CONFIG_PREEMPT=y
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_XIP_KERNEL=y
+CONFIG_XIP_PHYS_ADDR=0x8c000000
+CONFIG_BINFMT_FLAT=y
+CONFIG_BINFMT_SHARED_FLAT=y
+# CONFIG_COREDUMP is not set
+CONFIG_NET=y
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_INET=y
+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_BEET is not set
+# CONFIG_INET_LRO is not set
+# CONFIG_INET_DIAG is not set
+# CONFIG_IPV6 is not set
+# CONFIG_WIRELESS is not set
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+# CONFIG_FW_LOADER is not set
+CONFIG_MTD=y
+CONFIG_MTD_BLOCK_RO=y
+CONFIG_MTD_ROM=y
+CONFIG_MTD_UCLINUX=y
+CONFIG_PROC_DEVICETREE=y
+# CONFIG_BLK_DEV is not set
+CONFIG_NETDEVICES=y
+# CONFIG_NET_VENDOR_ARC is not set
+# CONFIG_NET_CADENCE is not set
+# CONFIG_NET_VENDOR_BROADCOM is not set
+# CONFIG_NET_VENDOR_CIRRUS is not set
+# CONFIG_NET_VENDOR_FARADAY is not set
+# CONFIG_NET_VENDOR_INTEL is not set
+# CONFIG_NET_VENDOR_MARVELL is not set
+CONFIG_KS8851=y
+# CONFIG_NET_VENDOR_MICROCHIP is not set
+# CONFIG_NET_VENDOR_NATSEMI is not set
+# CONFIG_NET_VENDOR_SEEQ is not set
+# CONFIG_NET_VENDOR_SMSC is not set
+# CONFIG_NET_VENDOR_STMICRO is not set
+# CONFIG_NET_VENDOR_VIA is not set
+# CONFIG_NET_VENDOR_WIZNET is not set
+# CONFIG_WLAN is not set
+# CONFIG_INPUT is not set
+# CONFIG_SERIO is not set
+# CONFIG_VT is not set
+# CONFIG_UNIX98_PTYS is not set
+# CONFIG_LEGACY_PTYS is not set
+CONFIG_SERIAL_NONSTANDARD=y
+# CONFIG_DEVKMEM is not set
+CONFIG_SERIAL_EFM32_UART=y
+CONFIG_SERIAL_EFM32_UART_CONSOLE=y
+# CONFIG_HW_RANDOM is not set
+CONFIG_SPI=y
+CONFIG_SPI_EFM32=y
+CONFIG_GPIO_SYSFS=y
+# CONFIG_USB_SUPPORT is not set
+CONFIG_MMC=y
+CONFIG_MMC_SPI=y
+# CONFIG_IOMMU_SUPPORT is not set
+CONFIG_EXT2_FS=y
+# CONFIG_FILE_LOCKING is not set
+# CONFIG_DNOTIFY is not set
+# CONFIG_INOTIFY_USER is not set
+CONFIG_ROMFS_FS=y
+CONFIG_ROMFS_BACKED_BY_MTD=y
+# CONFIG_NETWORK_FILESYSTEMS is not set
+CONFIG_PRINTK_TIME=y
+CONFIG_DEBUG_INFO=y
+# CONFIG_ENABLE_WARN_DEPRECATED is not set
+# CONFIG_ENABLE_MUST_CHECK is not set
+CONFIG_MAGIC_SYSRQ=y
+# CONFIG_SCHED_DEBUG is not set
+# CONFIG_DEBUG_BUGVERBOSE is not set
+# CONFIG_FTRACE is not set
diff --git a/arch/arm/mach-efm32/Makefile b/arch/arm/mach-efm32/Makefile
new file mode 100644
index 0000000..3a74af7
--- /dev/null
+++ b/arch/arm/mach-efm32/Makefile
@@ -0,0 +1 @@ 
+obj-y += dtmachine.o
diff --git a/arch/arm/mach-efm32/Makefile.boot b/arch/arm/mach-efm32/Makefile.boot
new file mode 100644
index 0000000..eacfc3f
--- /dev/null
+++ b/arch/arm/mach-efm32/Makefile.boot
@@ -0,0 +1,3 @@ 
+# Empty file waiting for deletion once Makefile.boot isn't needed any more.
+# Patch waits for application at
+# http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=7889/1 .
diff --git a/arch/arm/mach-efm32/dtmachine.c b/arch/arm/mach-efm32/dtmachine.c
new file mode 100644
index 0000000..2367495
--- /dev/null
+++ b/arch/arm/mach-efm32/dtmachine.c
@@ -0,0 +1,15 @@ 
+#include <linux/kernel.h>
+
+#include <asm/v7m.h>
+
+#include <asm/mach/arch.h>
+
+static const char *const efm32gg_compat[] __initconst = {
+	"efm32,dk3750",
+	NULL
+};
+
+DT_MACHINE_START(EFM32DT, "EFM32 (Device Tree Support)")
+	.dt_compat = efm32gg_compat,
+	.restart = armv7m_restart,
+MACHINE_END
diff --git a/arch/arm/mach-efm32/include/mach/entry-macro.S b/arch/arm/mach-efm32/include/mach/entry-macro.S
new file mode 100644
index 0000000..322159d
--- /dev/null
+++ b/arch/arm/mach-efm32/include/mach/entry-macro.S
@@ -0,0 +1,4 @@ 
+/*
+ * Empty file waiting for deletion once <mach/entry-macro.S> isn't needed any
+ * more. Patch "ARM: v7-M: drop using mach/entry-macro.S" sitting in next.
+ */
diff --git a/arch/arm/mach-efm32/include/mach/timex.h b/arch/arm/mach-efm32/include/mach/timex.h
new file mode 100644
index 0000000..7a8b26d
--- /dev/null
+++ b/arch/arm/mach-efm32/include/mach/timex.h
@@ -0,0 +1,3 @@ 
+/*
+ * Empty file waiting for deletion once <mach/timex.h> isn't needed any more.
+ */