diff options
Diffstat (limited to 'configs/platform-energymicro-efm32gg-dk3750/patches/linux-3.12-rc4/0004-ARM-new-platform-for-Energy-Micro-s-EFM32-Cortex-M3-.patch')
-rw-r--r-- | configs/platform-energymicro-efm32gg-dk3750/patches/linux-3.12-rc4/0004-ARM-new-platform-for-Energy-Micro-s-EFM32-Cortex-M3-.patch | 209 |
1 files changed, 209 insertions, 0 deletions
diff --git a/configs/platform-energymicro-efm32gg-dk3750/patches/linux-3.12-rc4/0004-ARM-new-platform-for-Energy-Micro-s-EFM32-Cortex-M3-.patch b/configs/platform-energymicro-efm32gg-dk3750/patches/linux-3.12-rc4/0004-ARM-new-platform-for-Energy-Micro-s-EFM32-Cortex-M3-.patch new file mode 100644 index 0000000..762a3c1 --- /dev/null +++ b/configs/platform-energymicro-efm32gg-dk3750/patches/linux-3.12-rc4/0004-ARM-new-platform-for-Energy-Micro-s-EFM32-Cortex-M3-.patch @@ -0,0 +1,209 @@ +From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= <u.kleine-koenig@pengutronix.de> +Date: Thu, 17 Nov 2011 14:36:23 +0100 +Subject: [PATCH] ARM: new platform for Energy Micro's EFM32 Cortex-M3 SoCs +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +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> +--- + arch/arm/Kconfig | 20 +++++++- + arch/arm/Makefile | 1 + + arch/arm/configs/efm32_defconfig | 102 +++++++++++++++++++++++++++++++++++++++ + arch/arm/mach-efm32/Makefile | 1 + + arch/arm/mach-efm32/dtmachine.c | 15 ++++++ + 5 files changed, 138 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/dtmachine.c + +diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig +index f480753..23029da 100644 +--- a/arch/arm/Kconfig ++++ b/arch/arm/Kconfig +@@ -413,6 +413,24 @@ 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_MMIO ++ 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 +@@ -1818,7 +1836,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 a37a50f..bee8be4 100644 +--- a/arch/arm/Makefile ++++ b/arch/arm/Makefile +@@ -152,6 +152,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/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 |