summaryrefslogtreecommitdiff
path: root/nuttx
diff options
context:
space:
mode:
authorGregory Nutt <gnutt@nuttx.org>2014-11-03 17:22:38 -0600
committerGregory Nutt <gnutt@nuttx.org>2014-11-03 17:22:38 -0600
commite3744bf55eca655566a8f9304e25a3591acd13a5 (patch)
tree859f74925711262342cedff19fd8f118da0aa55d /nuttx
parent8c68010a7bf2d234e985d90cd0f68b63983763e5 (diff)
parent66439e77dcf8da9a8482f643632f1be8ed02d94b (diff)
downloadnuttx-e3744bf55eca655566a8f9304e25a3591acd13a5.tar.gz
nuttx-e3744bf55eca655566a8f9304e25a3591acd13a5.tar.bz2
nuttx-e3744bf55eca655566a8f9304e25a3591acd13a5.zip
Merge remote-tracking branch 'origin/master' into bas24
Diffstat (limited to 'nuttx')
-rwxr-xr-xnuttx/ChangeLog3
-rw-r--r--nuttx/Documentation/NuttX.html9
-rw-r--r--nuttx/arch/arm/include/efm32/chip.h9
-rw-r--r--nuttx/arch/arm/src/efm32/Kconfig8
-rwxr-xr-xnuttx/configs/Kconfig14
-rw-r--r--nuttx/configs/README.txt7
-rw-r--r--nuttx/configs/efm32-g8xx-stk/include/board.h2
-rw-r--r--nuttx/configs/efm32-g8xx-stk/src/efm32-g8xx-stk.h18
-rw-r--r--nuttx/configs/efm32gg-stk3700/Kconfig22
-rw-r--r--nuttx/configs/efm32gg-stk3700/README.txt21
-rw-r--r--nuttx/configs/efm32gg-stk3700/include/board.h288
-rw-r--r--nuttx/configs/efm32gg-stk3700/nsh/Make.defs111
-rw-r--r--nuttx/configs/efm32gg-stk3700/nsh/defconfig841
-rwxr-xr-xnuttx/configs/efm32gg-stk3700/nsh/setenv.sh63
-rw-r--r--nuttx/configs/efm32gg-stk3700/scripts/ld.script110
-rw-r--r--nuttx/configs/efm32gg-stk3700/src/.gitignore2
-rw-r--r--nuttx/configs/efm32gg-stk3700/src/Makefile83
-rw-r--r--nuttx/configs/efm32gg-stk3700/src/efm32_autoleds.c175
-rw-r--r--nuttx/configs/efm32gg-stk3700/src/efm32_boot.c98
-rw-r--r--nuttx/configs/efm32gg-stk3700/src/efm32_userleds.c153
-rw-r--r--nuttx/configs/efm32gg-stk3700/src/efm32gg-stk3700.h100
21 files changed, 2113 insertions, 24 deletions
diff --git a/nuttx/ChangeLog b/nuttx/ChangeLog
index e88e4ba09..509d45adf 100755
--- a/nuttx/ChangeLog
+++ b/nuttx/ChangeLog
@@ -8902,4 +8902,7 @@
PDC or DMAC support is required (2014-10-29).
* configs/sam4e-ek/src/sam4e-ek.h: Fix an error in a USART1 pin number
(2014-10-29).
+ * configs/efm32gg-stk3700: Board support for the SiLbas EFM32GG
+ Giant Gecko Starter kit. Current with basic NSH configuration only.
+ Testing is on hold until I receive hardware (20145-11-03).
diff --git a/nuttx/Documentation/NuttX.html b/nuttx/Documentation/NuttX.html
index 39777f9ab..ca4ebcdac 100644
--- a/nuttx/Documentation/NuttX.html
+++ b/nuttx/Documentation/NuttX.html
@@ -1391,7 +1391,7 @@
<li><a href="#m16c">Renesas M16C/26</a></li>
</ul>
</li>
- <li>Silicon Laboratories
+ <li>Silicon Laboratories, Inc.
<ul>
<li><a href="#efm32g">EFM32 Gecko</a> <small>(ARM Cortex-M3)</small></li>
<li><a href="#emf32gg">EFM32 Giant Gecko</a> <small>(ARM Cortex-M3)</small></li>
@@ -2283,7 +2283,7 @@ nsh>
<td>
<p>
<a name="efm32g"><b>SiLabs EFM32 Gecko</b>.</a>
- This is a port for the Silicon Laboraties EFM32 <i>Gecko</i> family.
+ This is a port for the Silicon Laboratories' EFM32 <i>Gecko</i> family.
Board support is available for the following:
</p>
<ol>
@@ -2352,7 +2352,7 @@ nsh>
<td>
<p>
<a name="efm32gg"><b>SiLabs EFM32 Giant Gecko</b>.</a>
- This is a port for the Silicon Laboraties EFM32 <i>Giant Gecko</i> family.
+ This is a port for the Silicon Laboratories' EFM32 <i>Giant Gecko</i> family.
</p>
<ul>
<p>
@@ -4672,11 +4672,12 @@ if [ -x "$WINELOADER" ]; then exec "$WINELOADER" "$appname" "$@"; fi
</table>
<ul>
- <li>ARM, ARM7 ARM7TDMI, ARM9, ARM920T, ARM926EJS Cortex-M3 are trademarks of Advanced RISC Machines, Limited.</li>
+ <li>ARM, ARM7 ARM7TDMI, ARM9, ARM920T, ARM926EJS, Cortex-M3 are trademarks of Advanced RISC Machines, Limited.</li>
<li>Cygwin is a trademark of Red Hat, Incorporated.</li>
<li>Linux is a registered trademark of Linus Torvalds.</li>
<li>Eagle-100 is a trademark of <a href=" http://www.micromint.com/">Micromint USA, LLC</a>.
<li>EnergyLite is a trademark of STMicroelectronics.</li>
+ <li>EFM32 is a trademark of Silicon Laboratories, Inc.</li>
<li>LPC2148 is a trademark of NXP Semiconductors.</li>
<li>TI is a tradename of Texas Instruments Incorporated.</li>
<li>UNIX is a registered trademark of The Open Group.</li>
diff --git a/nuttx/arch/arm/include/efm32/chip.h b/nuttx/arch/arm/include/efm32/chip.h
index 9b3fb6cee..f063daf7c 100644
--- a/nuttx/arch/arm/include/efm32/chip.h
+++ b/nuttx/arch/arm/include/efm32/chip.h
@@ -46,7 +46,7 @@
* Pre-processor Definitions
************************************************************************************/
-/* EFM32 EnergyMicro ************************************************************/
+/* EFM32 EnergyMicro ****************************************************************/
/* Tiny Gecko with 32KiB FLASH and 4KiB RAM in a QFN64 package */
@@ -59,9 +59,12 @@
#elif defined(CONFIG_ARCH_CHIP_EFM32G880F128) || \
defined(CONFIG_ARCH_CHIP_EFM32G890F128)
-/* Giant Gecko with 1024KiB FLASH and 128KiB RAM in a QFP64 package */
+/* Giant Gecko with 1024KiB FLASH and 128KiB RAM in a QFP64 package
+ * (EFM32GG332F1024) or BGA112 (EFM32GG990F1024) package
+ */
-#elif defined(CONFIG_ARCH_CHIP_EFM32GG332F1024)
+#elif defined(CONFIG_ARCH_CHIP_EFM32GG332F1024) || \
+ defined(CONFIG_ARCH_CHIP_EFM32GG990F1024)
#else
# error "Unsupported EFM32 chip"
diff --git a/nuttx/arch/arm/src/efm32/Kconfig b/nuttx/arch/arm/src/efm32/Kconfig
index 3fb0f8040..97a11e798 100644
--- a/nuttx/arch/arm/src/efm32/Kconfig
+++ b/nuttx/arch/arm/src/efm32/Kconfig
@@ -42,6 +42,14 @@ config ARCH_CHIP_EFM32GG332F1024
This chip is a Giant Gecko with 1024KiB flash and 128KiB RAM in a
QFP64 package.
+config ARCH_CHIP_EFM32GG990F1024
+ bool "EFM32GG990F1024"
+ select EFM32_EFM32GG
+ select ARCH_CORTEXM3
+ ---help---
+ This chip is a Giant Gecko with 1024KiB flash and 128KiB RAM in a
+ BGA112 package.
+
endchoice
# These hidden selections represent automatically selected MCU families and,
diff --git a/nuttx/configs/Kconfig b/nuttx/configs/Kconfig
index 9941eaf63..de1380c49 100755
--- a/nuttx/configs/Kconfig
+++ b/nuttx/configs/Kconfig
@@ -132,7 +132,15 @@ config ARCH_BOARD_EFM32G8XXSTK
select ARCH_HAVE_LEDS
select ARCH_HAVE_BUTTONS
---help---
- This options selects the EFM32 Gecko Starter Kit (EFM32-G8XX-STK).
+ This option selects the EFM32 Gecko Starter Kit (EFM32-G8XX-STK).
+
+config ARCH_BOARD_EFM32GG_STK3700
+ bool "EFM32 Giant Gecko Starter Kit"
+ depends on ARCH_CHIP_EFM32GG990F1024
+ select ARCH_HAVE_LEDS
+ select ARCH_HAVE_BUTTONS
+ ---help---
+ This option selects the EFM32 Giant Gecko Starter Kit (EFM32GG-STK3700).
config ARCH_BOARD_EKKLM3S9B96
bool "TI/Stellaris EKK-LM3S9B96"
@@ -1017,6 +1025,7 @@ config ARCH_BOARD
default "ea3152" if ARCH_BOARD_EA3152
default "eagle100" if ARCH_BOARD_EAGLE100
default "efm32-g8xx-stk" if ARCH_BOARD_EFM32G8XXSTK
+ default "efm32gg-stk3700" if ARCH_BOARD_EFM32GG_STK3700
default "ekk-lm3s9b96" if ARCH_BOARD_EKKLM3S9B96
default "ez80f910200kitg" if ARCH_BOARD_EZ80F910200KITG
default "ez80f910200zco" if ARCH_BOARD_EZ80F910200ZCO
@@ -1192,6 +1201,9 @@ endif
if ARCH_BOARD_EFM32G8XXSTK
source "configs/efm32-g8xx-stk/Kconfig"
endif
+if ARCH_BOARD_EFM32GG_STK3700
+source "configs/efm32gg-stk3700/Kconfig"
+endif
if ARCH_BOARD_EKKLM3S9B96
source "configs/ekk-lm3s9b96/Kconfig"
endif
diff --git a/nuttx/configs/README.txt b/nuttx/configs/README.txt
index 0138cbdf0..c24e18b66 100644
--- a/nuttx/configs/README.txt
+++ b/nuttx/configs/README.txt
@@ -218,6 +218,13 @@ configs/eagle100
an ARM Cortex-M3 MCU, the Luminary LM3S6918. This OS is built with the
arm-nuttx-elf toolchain*. STATUS: This port is complete and mature.
+configs/efm32-g8xx-stk
+ The port of NuttX to the the EFM32 Gecko Starter Kit (EFM32-G8XX-STK).
+
+configs/efm32gg-stk3700
+ The port of NuttX to the the EFM32 Giant Gecko Starter Kit
+ (EFM32GG-STK3700).
+
configs/ekk-lm3s9b96
TI/Stellaris EKK-LM3S9B96 board. This board is based on the
an EKK-LM3S9B96 which is a Cortex-M3.
diff --git a/nuttx/configs/efm32-g8xx-stk/include/board.h b/nuttx/configs/efm32-g8xx-stk/include/board.h
index ffcd64f2b..b0767f70e 100644
--- a/nuttx/configs/efm32-g8xx-stk/include/board.h
+++ b/nuttx/configs/efm32-g8xx-stk/include/board.h
@@ -240,4 +240,4 @@ void efm32_setled(int led, bool ledon);
void efm32_setleds(uint8_t ledset);
#endif
-#endif /* __CONFIGS_EFM32_DK3650_INCLUDE_BOARD_H */
+#endif /* __CONFIGS_EFM32_G8XX_STK_INCLUDE_BOARD_H */
diff --git a/nuttx/configs/efm32-g8xx-stk/src/efm32-g8xx-stk.h b/nuttx/configs/efm32-g8xx-stk/src/efm32-g8xx-stk.h
index ea11a95db..da5bda332 100644
--- a/nuttx/configs/efm32-g8xx-stk/src/efm32-g8xx-stk.h
+++ b/nuttx/configs/efm32-g8xx-stk/src/efm32-g8xx-stk.h
@@ -43,14 +43,14 @@
/****************************************************************************
* Pre-processor Definitions
****************************************************************************/
- /* UART0
- *
- * The control MCU acts as a board controller (BC). There is a UART
- * connection between the EFM and the BC. The connection is made by
- * setting the EFM_BC_EN (PD13) line high. The EFM can then use the BSP to
- * send commands to the BC. When EFM_BC_EN is low, EFM_BC_TX and EFM_BC_RX
- * can be used by other applications.
- */
+/* UART0
+ *
+ * The control MCU acts as a board controller (BC). There is a UART
+ * connection between the EFM and the BC. The connection is made by
+ * setting the EFM_BC_EN (PD13) line high. The EFM can then use the BSP to
+ * send commands to the BC. When EFM_BC_EN is low, EFM_BC_TX and EFM_BC_RX
+ * can be used by other applications.
+ */
#ifdef CONFIG_EFM32G8STK_BCEN
# define GPIO_BC_EN (GPIO_OUTPUT_PUSHPULL|GPIO_OUTPUT_SET|\
@@ -99,4 +99,4 @@
void board_led_initialize(void);
#endif
-#endif /* __CONFIGS_EFM32_DK3650_INCLUDE_BOARD_H */
+#endif /* __CONFIGS_EFM32_G8XX_STK_SRC_EFM32_G8XX_STK_H */
diff --git a/nuttx/configs/efm32gg-stk3700/Kconfig b/nuttx/configs/efm32gg-stk3700/Kconfig
new file mode 100644
index 000000000..7dea480ab
--- /dev/null
+++ b/nuttx/configs/efm32gg-stk3700/Kconfig
@@ -0,0 +1,22 @@
+#
+# For a description of the syntax of this configuration file,
+# see misc/tools/kconfig-language.txt.
+#
+
+if ARCH_BOARD_EFM32GG_STK3700
+
+comment "EFM32GG-STK3700 Hardware Configuration"
+
+config EFM32GG_STK3700_BCEN
+ bool "Enable BC_EN"
+ default n
+ ---help---
+ The kit contains a board controller that is responsible for
+ performing various board level tasks, such as handling the debugger
+ and the Advanced Energy Monitor. An interface is provided between
+ the EFM32 and the board controller in the form of a UART connection.
+ The connection is enabled by setting the EFM_BC_EN (PF7) line high,
+ and using the lines EFM_BC_TX (PE0) and EFM_BC_RX (PE1) for
+ communicating.
+
+endif # ARCH_BOARD_EFM32GG_STK3700
diff --git a/nuttx/configs/efm32gg-stk3700/README.txt b/nuttx/configs/efm32gg-stk3700/README.txt
index 8a8e61643..524f00579 100644
--- a/nuttx/configs/efm32gg-stk3700/README.txt
+++ b/nuttx/configs/efm32gg-stk3700/README.txt
@@ -26,16 +26,16 @@ README
STATUS
======
- This README now exists only as some analysis for a port to the EFM32 Giant
- Gecko Starter Kit. That port has not yet been developed and I do not now
- have hardware in hand. So the status is partially analyzed, but not yet implemented.
+ 2014-11-02: Completed the basic NSH configuration for the EFM32 Giant Gecko
+ Starter Kit. The hardware is on order and the port will be verified sometime
+ thereafter.
LEDs and Buttons
================
LEDs
----
- The EFM32 Giant Gecko Start Kit has two yellow LEDs marke LED0 and LED1.
+ The EFM32 Giant Gecko Start Kit has two yellow LEDs marked LED0 and LED1.
These LEDs are controlled by GPIO pins on the EFM32. The LEDs are
connected to pins PE2 and PE3 in an active high configuration:
@@ -74,6 +74,10 @@ LEDs and Buttons
LED_PANIC The system has crashed OFF Blinking
LED_IDLE STM32 is is sleep mode Not used
+ Thus if LED0 statically on, NuttX has successfully booted and is,
+ apparently, running normally. If LED1 is flashing at approximately
+ 2Hz, then a fatal error has been detected and the system has halted.
+
Buttons
-------
The EFM32 Giant Gecko Start Kit has two buttons marked PB0 and PB1. They
@@ -94,7 +98,12 @@ Serial Console
Default Serial Console
----------------------
- UART0 is configured as the default serial console at 115200 8N1
+ LEUART0 is configured as the default serial console at 2400 8N1
+ on pins PD5 and PD4. It certainly be possible to go to 4800 baud
+ and the documentation claims that 9600 baud is possible (although
+ I am not sure how).
+
+ It should also be possible to use UART0 is configured at 115200 8N1
on pins PE0 and PE1.
Communication through the Board Controller
@@ -126,7 +135,7 @@ Configurations
nsh:
---
Configures the NuttShell (nsh) located at apps/examples/nsh. The
- Configuration enables the serial interfaces on UART0. Support for
+ Configuration enables the serial interfaces on LEUART0. Support for
built-in applications is enabled, but in the base configuration no
built-in applications are selected (see NOTES below).
diff --git a/nuttx/configs/efm32gg-stk3700/include/board.h b/nuttx/configs/efm32gg-stk3700/include/board.h
new file mode 100644
index 000000000..1482553ae
--- /dev/null
+++ b/nuttx/configs/efm32gg-stk3700/include/board.h
@@ -0,0 +1,288 @@
+/****************************************************************************
+ * configs/efm32gg-stk3700/include/board.h
+ *
+ * Copyright (C) 2014 Gregory Nutt. All rights reserved.
+ * Author: Gregory Nutt <gnutt@nuttx.org>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ * 3. Neither the name NuttX nor the names of its contributors may be
+ * used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ ****************************************************************************/
+
+#ifndef __CONFIGS_EFM32GG_STK3700_INCLUDE_BOARD_H
+#define __CONFIGS_EFM32GG_STK3700_INCLUDE_BOARD_H
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include <nuttx/config.h>
+
+#include <stdbool.h>
+
+#include "chip/efm32_cmu.h"
+#include "chip/efm32_usart.h"
+
+/****************************************************************************
+ * Pre-Processor Definitions
+ ****************************************************************************/
+/* Clocking *****************************************************************/
+/* Clock Sources
+ * - 1-28 MHz High Frequency RC Oscillator (HFRCO)
+ * - 4-32 MHz High Frequency Crystal Oscillator (HFXO)
+ * - 32.768 kHz Low Frequency RC Oscillator (LFRCO)
+ * - 32.768 kHz Low Frequency Crystal Oscillator (LFXO)
+ * - 1KHz Ultra Low Frequency RC Oscillator (ULFRCO)
+ *
+ * The device boots with 14 MHz HFRCO as the HFCLK source.
+ */
+
+#define BOARD_HAVE_HFXO 1 /* Have High frequency crystal oscillator */
+#define BOARD_HAVE_LFXO 1 /* Have Loq frequency crystal oscillator */
+
+#define BOARD_HFRCO_FREQUENCY 14000000 /* 14MHz on reset */
+#define BOARD_HFXO_FREQUENCY 48000000 /* 48MHz crystal on board */
+#define BOARD_LFRCO_FREQUENCY 32768 /* Low frequency oscillator */
+#define BOARD_LFXO_FREQUENCY 32768 /* 32MHz crystal on board */
+#define BOARD_ULFRCO_FREQUNCY 1000 /* Ultra low frequency oscillator */
+
+/* HFCLK - High Frequency Clock
+ *
+ * HFCLK is the selected High Frequency Clock. This clock is used by the CMU
+ * and drives the two prescalers that generate HFCORECLK and HFPERCLK. The
+ * HFCLK can be driven by a high-frequency oscillator (HFRCO or HFXO) or one
+ * of the low-frequency oscillators (LFRCO or LFXO). By default the HFRCO is
+ * selected.
+ */
+
+#define BOARD_HFCLKSEL _CMU_CMD_HFCLKSEL_HFXO
+#define BOARD_HFCLKDIV 0 /* Does not apply to EFM32G */
+#define BOARD_HFCLK_FREQUENCY BOARD_HFXO_FREQUENCY
+
+/* HFCORECLK - High Frequency Core Clock
+ *
+ * HFCORECLK is a prescaled version of HFCLK. This clock drives the Core
+ * Modules, which consists of the CPU and modules that are tightly coupled
+ * to the CPU, e.g. MSC, DMA etc. The frequency of HFCORECLK is set using
+ * the CMU_HFCORECLKDIV register.
+ */
+
+#define BOARD_HFCORECLKDIV _CMU_HFCORECLKDIV_HFCORECLKDIV_DEFAULT
+#define BOARD_HFCORECLK_FREQUENCY BOARD_HFXO_FREQUENCY
+
+/* HFPERCLK - High Frequency Peripheral Clock
+ *
+ * Like HFCORECLK, HFPERCLK can also be a prescaled version of HFCLK. This
+ * clock drives the High-Frequency Peripherals. The frequency of HFPERCLK is
+ * set using the CMU_HFPERCLKDIV register.
+ */
+
+#define BOARD_HFPERCLKDIV _CMU_HFPERCLKDIV_HFPERCLKDIV_DEFAULT
+#define BOARD_HFPERCLK_FREQUENCY BOARD_HFXO_FREQUENCY
+
+/* LFACLK - Low Frequency A Clock
+ *
+ * LFACLK is the selected clock for the Low Energy A Peripherals. There are
+ * four selectable sources for LFACLK: LFRCO, LFXO, HFCORECLK/2 and ULFRCO.
+ * From reset, the LFACLK source is set to LFRCO. However, note that the
+ * LFRCO is disabled from reset. The selection is configured using the LFA
+ * field in CMU_LFCLKSEL. The HFCORECLK/2 setting allows the Low Energy A
+ * Peripherals to be used as high-frequency peripherals.
+ *
+ * Use _CMU_LFCLKSEL_LFA_DISABLED to disable.
+ * ULFRCO is a special case.
+ */
+
+#if BOARD_HAVE_LFXO
+# define BOARD_LFACLKSEL _CMU_LFCLKSEL_LFA_LFXO
+# undef BOARD_LFACLK_ULFRCO
+# define BOARD_LFACLK_FREQUENCY BOARD_LFXO_FREQUENCY
+#else
+# define BOARD_LFACLKSEL _CMU_LFCLKSEL_LFA_LFRCO
+# undef BOARD_LFACLK_ULFRCO
+# define BOARD_LFACLK_FREQUENCY BOARD_LFRCO_FREQUENCY
+#endif
+
+/* LFBCLK - Low Frequency B Clock
+ *
+ * LFBCLK is the selected clock for the Low Energy B Peripherals. There are
+ * four selectable sources for LFBCLK: LFRCO, LFXO, HFCORECLK/2 and ULFRCO.
+ * From reset, the LFBCLK source is set to LFRCO. However, note that the
+ * LFRCO is disabled from reset. The selection is configured using the LFB
+ * field in CMU_LFCLKSEL. The HFCORECLK/2 setting allows the Low Energy B
+ * Peripherals to be used as high-frequency peripherals.
+ *
+ * Use _CMU_LFCLKSEL_LFA_DISABLED to disable.
+ * ULFRCO is a special case.
+ */
+
+#define BOARD_LFBCLKSEL _CMU_LFCLKSEL_LFB_LFXO
+#undef BOARD_LFBCLK_ULFRCO
+#define BOARD_LFBCLK_FREQUENCY BOARD_LFXO_FREQUENCY
+
+/* PCNTnCLK - Pulse Counter n Clock
+ *
+ * Each available pulse counter is driven by its own clock, PCNTnCLK where
+ * n is the pulse counter instance number. Each pulse counter can be
+ * configured to use an external pin (PCNTn_S0) or LFACLK as PCNTnCLK.
+ */
+
+/* WDOGCLK - Watchdog Timer Clock
+ *
+ * The Watchdog Timer (WDOG) can be configured to use one of three different
+ * clock sources: LFRCO, LFXO or ULFRCO. ULFRCO (Ultra Low Frequency RC
+ * Oscillator) is a separate 1 kHz RC oscillator that also runs in EM3.
+ */
+
+/* AUXCLK - Auxiliary Clock
+ *
+ * AUXCLK is a 1-28 MHz clock driven by a separate RC oscillator, AUXHFRCO.
+ * This clock is used for flash programming and Serial Wire Output (SWO).
+ * During flash programming this clock will be active. If the AUXHFRCO has
+ * not been enabled explicitly by software, the MSC will automatically
+ * start and stop it. The AUXHFRCO is enabled by writing a 1 to AUXHFRCOEN
+ * in CMU_OSCENCMD. This explicit enabling is required when SWO is used.
+ */
+
+/* LEDs *********************************************************************/
+/* The EFM32 Giant Gecko Start Kit has two yellow LEDs marked LED0 and LED1.
+ * These LEDs are controlled by GPIO pins on the EFM32. The LEDs are
+ * connected to pins PE2 and PE3 in an active high configuration:
+ *
+ * ------------------------------------- --------------------
+ * EFM32 PIN BOARD SIGNALS
+ * ------------------------------------- --------------------
+ * E2/BCK_VOUT/EBI_A09 #0/ MCU_PE2 UIF_LED0
+ * TIM3_CC2 #1/U1_TX #3/ACMP0_O #1
+ * E3/BCK_STAT/EBI_A10 #0/U1_RX #3/ MCU_PE3 UIF_LED1
+ * ACMP1_O #1
+ * ------------------------------------- --------------------
+ *
+ * All LEDs are grounded and so are illuminated by outputting a high
+ * value to the LED.
+ */
+
+/* LED index values for use with efm32_setled() */
+
+#define BOARD_LED0 0
+#define BOARD_LED1 1
+#define BOARD_NLEDS 2
+
+/* LED bits for use with efm32_setleds() */
+
+#define BOARD_LED0_BIT (1 << BOARD_LED0)
+#define BOARD_LED1_BIT (1 << BOARD_LED1)
+
+/* These LEDs are not used by the board port unless CONFIG_ARCH_LEDS is
+ * defined. In that case, the usage by the board port is defined in
+ * include/board.h and src/efm32_autoleds.c. The LEDs are used to
+ * encode OS-related events as follows:
+ *
+ * SYMBOL Val Meaning LED state
+ * LED0 LED1
+ * ----------------- --- ----------------------- -------- -------- */
+#define LED_STARTED 0 /* NuttX has been started OFF OFF */
+#define LED_HEAPALLOCATE 0 /* Heap has been allocated OFF OFF */
+#define LED_IRQSENABLED 0 /* Interrupts enabled OFF OFF */
+#define LED_STACKCREATED 1 /* Idle stack created ON OFF */
+#define LED_INIRQ 2 /* In an interrupt No change */
+#define LED_SIGNAL 2 /* In a signal handler No change */
+#define LED_ASSERTION 2 /* An assertion failed No change */
+#define LED_PANIC 3 /* The system has crashed OFF Blinking */
+#undef LED_IDLE /* MCU is is sleep mode Not used */
+
+/* Buttons ******************************************************************/
+/* The EFM32 Giant Gecko Start Kit has two buttons marked PB0 and PB1. They
+ * are connected to the EFM32, and are debounced by RC filters with a time
+ * constant of 1ms. The buttons are connected to pins PB9 and PB10:
+ *
+ * ------------------------------------- --------------------
+ * EFM32 PIN BOARD SIGNALS
+ * ------------------------------------- --------------------
+ * B9/EBI_A03/U1_TX #2 MCU_PB9 UIF_PB0
+ * B10/EBI_A04/U1_RX #2 MCU_PB10 UIF_PB1
+ * ------------------------------------- --------------------
+ *
+ * Buttons are connected to ground so they will read low when closed.
+ */
+
+#define BUTTON_PB0 0
+#define BUTTON_PB1 1
+#define NUM_BUTTONS 2
+
+#define BUTTON_PB0_BIT (1 << BUTTON_PB0)
+#define BUTTON_PB1_BIT (1 << BUTTON_PB1)
+
+/* Pin routing **************************************************************/
+/* UART0:
+ *
+ * The kit contains a board controller that is responsible for performing
+ * various board level tasks, such as handling the debugger and the Advanced
+ * Energy Monitor. An interface is provided between the EFM32 and the board
+ * controller in the form of a UART connection. The connection is enabled by
+ * setting the EFM_BC_EN (PF7) line high, and using the lines EFM_BC_TX
+ * (PE0) and EFM_BC_RX (PE1) for communicating.
+ *
+ * U0_TX #1 PE0 MCU_PE0, UART0_TX #0, EFM_BC_RX, BC_UART_RX
+ * U0_RX #1 PE1 MCU_PE1, UART0_TX #1, EFM_BC_TX, BC_UART_TX
+ */
+
+#define BOARD_UART0_RX_GPIO (GPIO_PORTE|GPIO_PIN1)
+#define BOARD_UART0_TX_GPIO (GPIO_PORTE|GPIO_PIN0)
+#define BOARD_UART0_ROUTE_LOCATION _USART_ROUTE_LOCATION_LOC1
+
+/* LEUART0:
+ *
+ * LEU0_RX #0 PD4 Available on TP121 and EXP pin 12
+ * LEU0_TX #0 PD5 Available on TP122 and EXP pin 14
+ */
+
+#define BOARD_LEUART0_RX_GPIO (GPIO_PORTD|GPIO_PIN4)
+#define BOARD_LEUART0_TX_GPIO (GPIO_PORTD|GPIO_PIN5)
+#define BOARD_LEUART0_ROUTE_LOCATION _LEUART_ROUTE_LOCATION_LOC0
+
+/****************************************************************************
+ * Public Function Prototypes
+ ****************************************************************************/
+
+/****************************************************************************
+ * Name: efm32_ledinit, efm32_setled, and efm32_setleds
+ *
+ * Description:
+ * If CONFIG_ARCH_LEDS is defined, then NuttX will control the on-board
+ * LEDs. If CONFIG_ARCH_LEDS is not defined, then the following interfaces
+ * are available to control the LEDs from user applications.
+ *
+ ****************************************************************************/
+
+#ifndef CONFIG_ARCH_LEDS
+void efm32_ledinit(void);
+void efm32_setled(int led, bool ledon);
+void efm32_setleds(uint8_t ledset);
+#endif
+
+#endif /* __CONFIGS_EFM32GG_STK3700_INCLUDE_BOARD_H */
diff --git a/nuttx/configs/efm32gg-stk3700/nsh/Make.defs b/nuttx/configs/efm32gg-stk3700/nsh/Make.defs
new file mode 100644
index 000000000..4b7e46154
--- /dev/null
+++ b/nuttx/configs/efm32gg-stk3700/nsh/Make.defs
@@ -0,0 +1,111 @@
+############################################################################
+# configs/efm32-g8xx-stk/nsh/Make.defs
+#
+# Copyright (C) 2014 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <gnutt@nuttx.org>
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in
+# the documentation and/or other materials provided with the
+# distribution.
+# 3. Neither the name NuttX nor the names of its contributors may be
+# used to endorse or promote products derived from this software
+# without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+#
+############################################################################
+
+include ${TOPDIR}/.config
+include ${TOPDIR}/arch/arm/src/armv7-m/Toolchain.defs
+include ${TOPDIR}/tools/Config.mk
+
+LDSCRIPT = ld.script
+
+ifeq ($(WINTOOL),y)
+ # Windows-native toolchains
+ DIRLINK = $(TOPDIR)/tools/copydir.sh
+ DIRUNLINK = $(TOPDIR)/tools/unlink.sh
+ MKDEP = $(TOPDIR)/tools/mknulldeps.sh
+ ARCHINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)/include}"
+ ARCHXXINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)/include}" -isystem "${shell cygpath -w $(TOPDIR)/include/cxx}"
+ ARCHSCRIPT = -T "${shell cygpath -w $(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/$(LDSCRIPT)}"
+else
+ # Linux/Cygwin-native toolchain
+ MKDEP = $(TOPDIR)/tools/mkdeps.sh
+ ARCHINCLUDES = -I. -isystem $(TOPDIR)/include
+ ARCHXXINCLUDES = -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/include/cxx
+ ARCHSCRIPT = -T$(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/$(LDSCRIPT)
+endif
+
+CC = $(CROSSDEV)gcc
+CXX = $(CROSSDEV)g++
+CPP = $(CROSSDEV)gcc -E
+LD = $(CROSSDEV)ld
+AR = $(CROSSDEV)ar rcs
+NM = $(CROSSDEV)nm
+OBJCOPY = $(CROSSDEV)objcopy
+OBJDUMP = $(CROSSDEV)objdump
+
+ARCHCCVERSION = ${shell $(CC) -v 2>&1 | sed -n '/^gcc version/p' | sed -e 's/^gcc version \([0-9\.]\)/\1/g' -e 's/[-\ ].*//g' -e '1q'}
+ARCHCCMAJOR = ${shell echo $(ARCHCCVERSION) | cut -d'.' -f1}
+
+ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
+ ARCHOPTIMIZATION = -g
+endif
+
+ifneq ($(CONFIG_DEBUG_NOOPT),y)
+ ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing -fno-strength-reduce -fomit-frame-pointer
+endif
+
+ARCHCFLAGS = -fno-builtin
+ARCHCXXFLAGS = -fno-builtin -fno-exceptions -fno-rtti
+ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow
+ARCHWARNINGSXX = -Wall -Wshadow
+ARCHDEFINES =
+ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
+
+CFLAGS = $(ARCHCFLAGS) $(ARCHWARNINGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe
+CPICFLAGS = $(ARCHPICFLAGS) $(CFLAGS)
+CXXFLAGS = $(ARCHCXXFLAGS) $(ARCHWARNINGSXX) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHXXINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe
+CXXPICFLAGS = $(ARCHPICFLAGS) $(CXXFLAGS)
+CPPFLAGS = $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES)
+AFLAGS = $(CFLAGS) -D__ASSEMBLY__
+
+NXFLATLDFLAGS1 = -r -d -warn-common
+NXFLATLDFLAGS2 = $(NXFLATLDFLAGS1) -T$(TOPDIR)/binfmt/libnxflat/gnu-nxflat-pcrel.ld -no-check-sections
+LDNXFLATFLAGS = -e main -s 2048
+
+OBJEXT = .o
+LIBEXT = .a
+EXEEXT =
+
+ifneq ($(CROSSDEV),arm-nuttx-elf-)
+ LDFLAGS += -nostartfiles -nodefaultlibs
+endif
+ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
+ LDFLAGS += -g
+endif
+
+
+HOSTCC = gcc
+HOSTINCLUDES = -I.
+HOSTCFLAGS = -Wall -Wstrict-prototypes -Wshadow -g -pipe
+HOSTLDFLAGS =
diff --git a/nuttx/configs/efm32gg-stk3700/nsh/defconfig b/nuttx/configs/efm32gg-stk3700/nsh/defconfig
new file mode 100644
index 000000000..b3da56050
--- /dev/null
+++ b/nuttx/configs/efm32gg-stk3700/nsh/defconfig
@@ -0,0 +1,841 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# Nuttx/ Configuration
+#
+
+#
+# Build Setup
+#
+# CONFIG_EXPERIMENTAL is not set
+# CONFIG_DEFAULT_SMALL is not set
+# CONFIG_HOST_LINUX is not set
+# CONFIG_HOST_OSX is not set
+CONFIG_HOST_WINDOWS=y
+# CONFIG_HOST_OTHER is not set
+# CONFIG_WINDOWS_NATIVE is not set
+CONFIG_WINDOWS_CYGWIN=y
+# CONFIG_WINDOWS_MSYS is not set
+# CONFIG_WINDOWS_OTHER is not set
+
+#
+# Build Configuration
+#
+# CONFIG_APPS_DIR="../apps"
+CONFIG_BUILD_FLAT=y
+# CONFIG_BUILD_2PASS is not set
+
+#
+# Binary Output Formats
+#
+# CONFIG_RRLOAD_BINARY is not set
+# CONFIG_INTELHEX_BINARY is not set
+# CONFIG_MOTOROLA_SREC is not set
+CONFIG_RAW_BINARY=y
+# CONFIG_UBOOT_UIMAGE is not set
+
+#
+# Customize Header Files
+#
+# CONFIG_ARCH_STDINT_H is not set
+# CONFIG_ARCH_STDBOOL_H is not set
+# CONFIG_ARCH_MATH_H is not set
+# CONFIG_ARCH_FLOAT_H is not set
+# CONFIG_ARCH_STDARG_H is not set
+
+#
+# Debug Options
+#
+# CONFIG_DEBUG is not set
+CONFIG_ARCH_HAVE_STACKCHECK=y
+# CONFIG_ARCH_HAVE_HEAPCHECK is not set
+# CONFIG_DEBUG_SYMBOLS is not set
+CONFIG_ARCH_HAVE_CUSTOMOPT=y
+# CONFIG_DEBUG_NOOPT is not set
+# CONFIG_DEBUG_CUSTOMOPT is not set
+CONFIG_DEBUG_FULLOPT=y
+
+#
+# System Type
+#
+CONFIG_ARCH_ARM=y
+# CONFIG_ARCH_AVR is not set
+# CONFIG_ARCH_HC is not set
+# CONFIG_ARCH_MIPS is not set
+# CONFIG_ARCH_RGMP is not set
+# CONFIG_ARCH_SH is not set
+# CONFIG_ARCH_SIM is not set
+# CONFIG_ARCH_X86 is not set
+# CONFIG_ARCH_Z16 is not set
+# CONFIG_ARCH_Z80 is not set
+CONFIG_ARCH="arm"
+
+#
+# ARM Options
+#
+# CONFIG_ARCH_CHIP_A1X is not set
+# CONFIG_ARCH_CHIP_C5471 is not set
+# CONFIG_ARCH_CHIP_CALYPSO is not set
+# CONFIG_ARCH_CHIP_DM320 is not set
+CONFIG_ARCH_CHIP_EFM32=y
+# CONFIG_ARCH_CHIP_IMX is not set
+# CONFIG_ARCH_CHIP_KINETIS is not set
+# CONFIG_ARCH_CHIP_KL is not set
+# CONFIG_ARCH_CHIP_LM is not set
+# CONFIG_ARCH_CHIP_TIVA is not set
+# CONFIG_ARCH_CHIP_LPC17XX is not set
+# CONFIG_ARCH_CHIP_LPC214X is not set
+# CONFIG_ARCH_CHIP_LPC2378 is not set
+# CONFIG_ARCH_CHIP_LPC31XX is not set
+# CONFIG_ARCH_CHIP_LPC43XX is not set
+# CONFIG_ARCH_CHIP_NUC1XX is not set
+# CONFIG_ARCH_CHIP_SAMA5 is not set
+# CONFIG_ARCH_CHIP_SAMD is not set
+# CONFIG_ARCH_CHIP_SAM34 is not set
+# CONFIG_ARCH_CHIP_STM32 is not set
+# CONFIG_ARCH_CHIP_STR71X is not set
+# CONFIG_ARCH_ARM7TDMI is not set
+# CONFIG_ARCH_ARM926EJS is not set
+# CONFIG_ARCH_ARM920T is not set
+# CONFIG_ARCH_CORTEXM0 is not set
+CONFIG_ARCH_CORTEXM3=y
+# CONFIG_ARCH_CORTEXM4 is not set
+# CONFIG_ARCH_CORTEXA5 is not set
+# CONFIG_ARCH_CORTEXA8 is not set
+CONFIG_ARCH_FAMILY="armv7-m"
+CONFIG_ARCH_CHIP="efm32"
+# CONFIG_ARMV7M_USEBASEPRI is not set
+CONFIG_ARCH_HAVE_CMNVECTOR=y
+CONFIG_ARMV7M_CMNVECTOR=y
+# CONFIG_ARCH_HAVE_FPU is not set
+
+#
+# ARMV7M Configuration Options
+#
+# CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC is not set
+# CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set
+# CONFIG_ARMV7M_TOOLCHAIN_CODEREDW is not set
+CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW=y
+# CONFIG_ARMV7M_TOOLCHAIN_DEVKITARM is not set
+# CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL is not set
+# CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIW is not set
+# CONFIG_ARMV7M_TOOLCHAIN_RAISONANCE is not set
+# CONFIG_ARMV7M_ITMSYSLOG is not set
+
+#
+# EFM32 Configuration Options
+#
+# CONFIG_ARCH_CHIP_EFM32TG840F32 is not set
+# CONFIG_ARCH_CHIP_EFM32G880F128 is not set
+# CONFIG_ARCH_CHIP_EFM32G890F128 is not set
+# CONFIG_ARCH_CHIP_EFM32GG332F1024 is not set
+CONFIG_ARCH_CHIP_EFM32GG990F1024=y
+# CONFIG_EFM32_EFM32TG is not set
+# CONFIG_EFM32_EFM32G is not set
+CONFIG_EFM32_EFM32GG=y
+
+#
+# EFM32 Peripheral Support
+#
+CONFIG_EFM32_HAVE_USART2=y
+CONFIG_EFM32_HAVE_UART0=y
+CONFIG_EFM32_HAVE_UART1=y
+CONFIG_EFM32_HAVE_LEUART1=y
+# CONFIG_EFM32_USART_ISUART is not set
+# CONFIG_EFM32_USART_ISSPI is not set
+# CONFIG_EFM32_UART is not set
+CONFIG_EFM32_LEUART=y
+# CONFIG_EFM32_DMA is not set
+# CONFIG_EFM32_USART0 is not set
+# CONFIG_EFM32_USART1 is not set
+# CONFIG_EFM32_USART2 is not set
+# CONFIG_EFM32_UART0 is not set
+# CONFIG_EFM32_UART1 is not set
+CONFIG_EFM32_LEUART0=y
+# CONFIG_EFM32_LEUART1 is not set
+CONFIG_EFM32_GPIO_IRQ=y
+CONFIG_LEUART0_SERIAL_CONSOLE=y
+# CONFIG_NO_LEUART_SERIAL_CONSOLE is not set
+
+#
+# LEUART0 Configuration
+#
+CONFIG_LEUART0_RXBUFSIZE=64
+CONFIG_LEUART0_TXBUFSIZE=64
+CONFIG_LEUART0_BAUD=2400
+CONFIG_LEUART0_BITS=8
+CONFIG_LEUART0_PARITY=0
+CONFIG_LEUART0_2STOP=0
+
+#
+# Architecture Options
+#
+# CONFIG_ARCH_NOINTC is not set
+# CONFIG_ARCH_VECNOTIRQ is not set
+# CONFIG_ARCH_DMA is not set
+CONFIG_ARCH_HAVE_IRQPRIO=y
+# CONFIG_ARCH_L2CACHE is not set
+# CONFIG_ARCH_HAVE_COHERENT_DCACHE is not set
+# CONFIG_ARCH_HAVE_ADDRENV is not set
+# CONFIG_ARCH_NEED_ADDRENV_MAPPING is not set
+CONFIG_ARCH_HAVE_VFORK=y
+# CONFIG_ARCH_HAVE_MMU is not set
+# CONFIG_ARCH_HAVE_MPU is not set
+# CONFIG_ARCH_NAND_HWECC is not set
+# CONFIG_ARCH_HAVE_EXTCLK is not set
+# CONFIG_ARCH_IRQPRIO is not set
+CONFIG_ARCH_STACKDUMP=y
+# CONFIG_ENDIAN_BIG is not set
+# CONFIG_ARCH_IDLE_CUSTOM is not set
+# CONFIG_ARCH_HAVE_RAMFUNCS is not set
+CONFIG_ARCH_HAVE_RAMVECTORS=y
+# CONFIG_ARCH_RAMVECTORS is not set
+
+#
+# Board Settings
+#
+CONFIG_BOARD_LOOPSPERMSEC=2662
+# CONFIG_ARCH_CALIBRATION is not set
+
+#
+# Interrupt options
+#
+CONFIG_ARCH_HAVE_INTERRUPTSTACK=y
+CONFIG_ARCH_INTERRUPTSTACK=0
+CONFIG_ARCH_HAVE_HIPRI_INTERRUPT=y
+# CONFIG_ARCH_HIPRI_INTERRUPT is not set
+
+#
+# Boot options
+#
+# CONFIG_BOOT_RUNFROMEXTSRAM is not set
+CONFIG_BOOT_RUNFROMFLASH=y
+# CONFIG_BOOT_RUNFROMISRAM is not set
+# CONFIG_BOOT_RUNFROMSDRAM is not set
+# CONFIG_BOOT_COPYTORAM is not set
+
+#
+# Boot Memory Configuration
+#
+CONFIG_RAM_START=0x20000000
+CONFIG_RAM_SIZE=131072
+# CONFIG_ARCH_HAVE_SDRAM is not set
+
+#
+# Board Selection
+#
+CONFIG_ARCH_BOARD_EFM32GG_STK3700=y
+# CONFIG_ARCH_BOARD_CUSTOM is not set
+CONFIG_ARCH_BOARD="efm32gg-stk3700"
+
+#
+# Common Board Options
+#
+CONFIG_ARCH_HAVE_LEDS=y
+CONFIG_ARCH_LEDS=y
+CONFIG_ARCH_HAVE_BUTTONS=y
+# CONFIG_ARCH_BUTTONS is not set
+CONFIG_NSH_MMCSDMINOR=0
+
+#
+# Board-Specific Options
+#
+
+#
+# EFM32GG-STK3700 Hardware Configuration
+#
+# CONFIG_EFM32GG_STK3700_BCEN is not set
+
+#
+# RTOS Features
+#
+CONFIG_DISABLE_OS_API=y
+# CONFIG_DISABLE_POSIX_TIMERS is not set
+# CONFIG_DISABLE_PTHREAD is not set
+# CONFIG_DISABLE_SIGNALS is not set
+# CONFIG_DISABLE_MQUEUE is not set
+CONFIG_DISABLE_ENVIRON=y
+
+#
+# Clocks and Timers
+#
+CONFIG_USEC_PER_TICK=10000
+# CONFIG_SYSTEM_TIME64 is not set
+# CONFIG_CLOCK_MONOTONIC is not set
+# CONFIG_JULIAN_TIME is not set
+CONFIG_START_YEAR=2010
+CONFIG_START_MONTH=5
+CONFIG_START_DAY=6
+CONFIG_MAX_WDOGPARMS=2
+CONFIG_PREALLOC_WDOGS=4
+CONFIG_WDOG_INTRESERVE=1
+CONFIG_PREALLOC_TIMERS=4
+
+#
+# Tasks and Scheduling
+#
+# CONFIG_INIT_NONE is not set
+CONFIG_INIT_ENTRYPOINT=y
+# CONFIG_INIT_FILEPATH is not set
+CONFIG_USER_ENTRYPOINT="nsh_main"
+CONFIG_RR_INTERVAL=200
+CONFIG_TASK_NAME_SIZE=0
+CONFIG_MAX_TASK_ARGS=4
+CONFIG_MAX_TASKS=16
+# CONFIG_SCHED_HAVE_PARENT is not set
+# CONFIG_SCHED_WAITPID is not set
+
+#
+# Pthread Options
+#
+# CONFIG_MUTEX_TYPES is not set
+CONFIG_NPTHREAD_KEYS=4
+
+#
+# Performance Monitoring
+#
+# CONFIG_SCHED_CPULOAD is not set
+# CONFIG_SCHED_INSTRUMENTATION is not set
+
+#
+# Files and I/O
+#
+CONFIG_DEV_CONSOLE=y
+# CONFIG_FDCLONE_DISABLE is not set
+# CONFIG_FDCLONE_STDIO is not set
+CONFIG_SDCLONE_DISABLE=y
+CONFIG_NFILE_DESCRIPTORS=8
+CONFIG_NFILE_STREAMS=8
+CONFIG_NAME_MAX=32
+# CONFIG_PRIORITY_INHERITANCE is not set
+
+#
+# RTOS hooks
+#
+# CONFIG_BOARD_INITIALIZE is not set
+# CONFIG_SCHED_STARTHOOK is not set
+# CONFIG_SCHED_ATEXIT is not set
+# CONFIG_SCHED_ONEXIT is not set
+
+#
+# Signal Numbers
+#
+CONFIG_SIG_SIGUSR1=1
+CONFIG_SIG_SIGUSR2=2
+CONFIG_SIG_SIGALARM=3
+CONFIG_SIG_SIGCONDTIMEDOUT=16
+
+#
+# POSIX Message Queue Options
+#
+CONFIG_PREALLOC_MQ_MSGS=4
+CONFIG_MQ_MAXMSGSIZE=32
+
+#
+# Work Queue Support
+#
+# CONFIG_SCHED_WORKQUEUE is not set
+# CONFIG_SCHED_HPWORK is not set
+# CONFIG_SCHED_LPWORK is not set
+
+#
+# Stack and heap information
+#
+CONFIG_IDLETHREAD_STACKSIZE=1024
+CONFIG_USERMAIN_STACKSIZE=2048
+CONFIG_PTHREAD_STACK_MIN=256
+CONFIG_PTHREAD_STACK_DEFAULT=2048
+# CONFIG_LIB_SYSCALL is not set
+
+#
+# Device Drivers
+#
+CONFIG_DISABLE_POLL=y
+CONFIG_DEV_NULL=y
+# CONFIG_DEV_ZERO is not set
+# CONFIG_LOOP is not set
+
+#
+# Buffering
+#
+# CONFIG_DRVR_WRITEBUFFER is not set
+# CONFIG_DRVR_READAHEAD is not set
+# CONFIG_RAMDISK is not set
+# CONFIG_CAN is not set
+# CONFIG_ARCH_HAVE_PWM_PULSECOUNT is not set
+# CONFIG_PWM is not set
+# CONFIG_ARCH_HAVE_I2CRESET is not set
+# CONFIG_I2C is not set
+# CONFIG_SPI is not set
+# CONFIG_I2S is not set
+# CONFIG_RTC is not set
+# CONFIG_WATCHDOG is not set
+# CONFIG_TIMER is not set
+# CONFIG_ANALOG is not set
+# CONFIG_AUDIO_DEVICES is not set
+# CONFIG_VIDEO_DEVICES is not set
+# CONFIG_BCH is not set
+# CONFIG_INPUT is not set
+# CONFIG_LCD is not set
+# CONFIG_MMCSD is not set
+# CONFIG_MTD is not set
+# CONFIG_PIPES is not set
+# CONFIG_PM is not set
+# CONFIG_POWER is not set
+# CONFIG_SENSORS is not set
+# CONFIG_SERCOMM_CONSOLE is not set
+CONFIG_SERIAL=y
+# CONFIG_DEV_LOWCONSOLE is not set
+# CONFIG_16550_UART is not set
+# CONFIG_ARCH_HAVE_UART is not set
+# CONFIG_ARCH_HAVE_UART0 is not set
+# CONFIG_ARCH_HAVE_UART1 is not set
+# CONFIG_ARCH_HAVE_UART2 is not set
+# CONFIG_ARCH_HAVE_UART3 is not set
+# CONFIG_ARCH_HAVE_UART4 is not set
+# CONFIG_ARCH_HAVE_UART5 is not set
+# CONFIG_ARCH_HAVE_UART6 is not set
+# CONFIG_ARCH_HAVE_UART7 is not set
+# CONFIG_ARCH_HAVE_UART8 is not set
+# CONFIG_ARCH_HAVE_SCI0 is not set
+# CONFIG_ARCH_HAVE_SCI1 is not set
+# CONFIG_ARCH_HAVE_USART0 is not set
+# CONFIG_ARCH_HAVE_USART1 is not set
+# CONFIG_ARCH_HAVE_USART2 is not set
+# CONFIG_ARCH_HAVE_USART3 is not set
+# CONFIG_ARCH_HAVE_USART4 is not set
+# CONFIG_ARCH_HAVE_USART5 is not set
+# CONFIG_ARCH_HAVE_USART6 is not set
+# CONFIG_ARCH_HAVE_USART7 is not set
+# CONFIG_ARCH_HAVE_USART8 is not set
+CONFIG_ARCH_HAVE_OTHER_UART=y
+
+#
+# USART Configuration
+#
+CONFIG_MCU_SERIAL=y
+CONFIG_STANDARD_SERIAL=y
+# CONFIG_ARCH_HAVE_SERIAL_TERMIOS is not set
+CONFIG_OTHER_SERIAL_CONSOLE=y
+# CONFIG_NO_SERIAL_CONSOLE is not set
+# CONFIG_SERIAL_IFLOWCONTROL is not set
+# CONFIG_SERIAL_OFLOWCONTROL is not set
+# CONFIG_USBDEV is not set
+# CONFIG_USBHOST is not set
+# CONFIG_WIRELESS is not set
+
+#
+# System Logging Device Options
+#
+
+#
+# System Logging
+#
+# CONFIG_RAMLOG is not set
+
+#
+# Networking Support
+#
+# CONFIG_ARCH_HAVE_NET is not set
+# CONFIG_ARCH_HAVE_PHY is not set
+# CONFIG_NET is not set
+
+#
+# Crypto API
+#
+# CONFIG_CRYPTO is not set
+
+#
+# File Systems
+#
+
+#
+# File system configuration
+#
+CONFIG_DISABLE_MOUNTPOINT=y
+# CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set
+# CONFIG_FS_READABLE is not set
+# CONFIG_FS_WRITABLE is not set
+# CONFIG_FS_NAMED_SEMAPHORES is not set
+CONFIG_FS_MQUEUE_MPATH="/var/mqueue"
+# CONFIG_FS_RAMMAP is not set
+# CONFIG_FS_PROCFS is not set
+
+#
+# System Logging
+#
+# CONFIG_SYSLOG is not set
+# CONFIG_SYSLOG_TIMESTAMP is not set
+
+#
+# Graphics Support
+#
+# CONFIG_NX is not set
+
+#
+# Memory Management
+#
+# CONFIG_MM_SMALL is not set
+CONFIG_MM_REGIONS=1
+# CONFIG_ARCH_HAVE_HEAP2 is not set
+# CONFIG_GRAN is not set
+
+#
+# Audio Support
+#
+# CONFIG_AUDIO is not set
+
+#
+# Binary Loader
+#
+# CONFIG_BINFMT_DISABLE is not set
+# CONFIG_NXFLAT is not set
+# CONFIG_ELF is not set
+# CONFIG_BUILTIN is not set
+# CONFIG_PIC is not set
+# CONFIG_SYMTAB_ORDEREDBYNAME is not set
+
+#
+# Library Routines
+#
+
+#
+# Standard C Library Options
+#
+CONFIG_STDIO_BUFFER_SIZE=64
+CONFIG_STDIO_LINEBUFFER=y
+CONFIG_NUNGET_CHARS=2
+# CONFIG_LIBM is not set
+# CONFIG_NOPRINTF_FIELDWIDTH is not set
+# CONFIG_LIBC_FLOATINGPOINT is not set
+CONFIG_LIB_RAND_ORDER=1
+# CONFIG_EOL_IS_CR is not set
+# CONFIG_EOL_IS_LF is not set
+# CONFIG_EOL_IS_BOTH_CRLF is not set
+CONFIG_EOL_IS_EITHER_CRLF=y
+# CONFIG_LIBC_EXECFUNCS is not set
+CONFIG_POSIX_SPAWN_PROXY_STACKSIZE=1024
+CONFIG_TASK_SPAWN_DEFAULT_STACKSIZE=2048
+# CONFIG_LIBC_STRERROR is not set
+# CONFIG_LIBC_PERROR_STDOUT is not set
+CONFIG_ARCH_LOWPUTC=y
+CONFIG_LIB_SENDFILE_BUFSIZE=512
+# CONFIG_ARCH_ROMGETC is not set
+# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set
+
+#
+# Non-standard Library Support
+#
+# CONFIG_LIB_KBDCODEC is not set
+# CONFIG_LIB_SLCDCODEC is not set
+
+#
+# Basic CXX Support
+#
+# CONFIG_C99_BOOL8 is not set
+# CONFIG_HAVE_CXX is not set
+
+#
+# Application Configuration
+#
+
+#
+# Built-In Applications
+#
+
+#
+# Examples
+#
+# CONFIG_EXAMPLES_BUTTONS is not set
+# CONFIG_EXAMPLES_CAN is not set
+# CONFIG_EXAMPLES_CONFIGDATA is not set
+# CONFIG_EXAMPLES_CPUHOG is not set
+# CONFIG_EXAMPLES_DHCPD is not set
+# CONFIG_EXAMPLES_ELF is not set
+# CONFIG_EXAMPLES_FTPC is not set
+# CONFIG_EXAMPLES_FTPD is not set
+# CONFIG_EXAMPLES_HELLO is not set
+# CONFIG_EXAMPLES_HELLOXX is not set
+# CONFIG_EXAMPLES_JSON is not set
+# CONFIG_EXAMPLES_HIDKBD is not set
+# CONFIG_EXAMPLES_KEYPADTEST is not set
+# CONFIG_EXAMPLES_IGMP is not set
+# CONFIG_EXAMPLES_MM is not set
+# CONFIG_EXAMPLES_MODBUS is not set
+# CONFIG_EXAMPLES_MOUNT is not set
+# CONFIG_EXAMPLES_NRF24L01TERM is not set
+CONFIG_EXAMPLES_NSH=y
+# CONFIG_EXAMPLES_NULL is not set
+# CONFIG_EXAMPLES_NX is not set
+# CONFIG_EXAMPLES_NXTERM is not set
+# CONFIG_EXAMPLES_NXFFS is not set
+# CONFIG_EXAMPLES_NXFLAT is not set
+# CONFIG_EXAMPLES_NXHELLO is not set
+# CONFIG_EXAMPLES_NXIMAGE is not set
+# CONFIG_EXAMPLES_NXLINES is not set
+# CONFIG_EXAMPLES_NXTEXT is not set
+# CONFIG_EXAMPLES_OSTEST is not set
+# CONFIG_EXAMPLES_PIPE is not set
+# CONFIG_EXAMPLES_POLL is not set
+# CONFIG_EXAMPLES_POSIXSPAWN is not set
+# CONFIG_EXAMPLES_QENCODER is not set
+# CONFIG_EXAMPLES_RGMP is not set
+# CONFIG_EXAMPLES_ROMFS is not set
+# CONFIG_EXAMPLES_SENDMAIL is not set
+# CONFIG_EXAMPLES_SERIALBLASTER is not set
+# CONFIG_EXAMPLES_SERIALRX is not set
+# CONFIG_EXAMPLES_SERLOOP is not set
+# CONFIG_EXAMPLES_SLCD is not set
+# CONFIG_EXAMPLES_SMART is not set
+# CONFIG_EXAMPLES_TCPECHO is not set
+# CONFIG_EXAMPLES_TELNETD is not set
+# CONFIG_EXAMPLES_THTTPD is not set
+# CONFIG_EXAMPLES_TIFF is not set
+# CONFIG_EXAMPLES_TOUCHSCREEN is not set
+# CONFIG_EXAMPLES_UDP is not set
+# CONFIG_EXAMPLES_WEBSERVER is not set
+# CONFIG_EXAMPLES_USBSERIAL is not set
+# CONFIG_EXAMPLES_USBTERM is not set
+# CONFIG_EXAMPLES_WATCHDOG is not set
+
+#
+# Graphics Support
+#
+# CONFIG_TIFF is not set
+
+#
+# Interpreters
+#
+# CONFIG_INTERPRETERS_FICL is not set
+# CONFIG_INTERPRETERS_PCODE is not set
+
+#
+# Network Utilities
+#
+
+#
+# Networking Utilities
+#
+# CONFIG_NETUTILS_CODECS is not set
+# CONFIG_NETUTILS_DHCPD is not set
+# CONFIG_NETUTILS_FTPC is not set
+# CONFIG_NETUTILS_FTPD is not set
+# CONFIG_NETUTILS_JSON is not set
+# CONFIG_NETUTILS_SMTP is not set
+# CONFIG_NETUTILS_TFTPC is not set
+# CONFIG_NETUTILS_THTTPD is not set
+# CONFIG_NETUTILS_NETLIB is not set
+# CONFIG_NETUTILS_WEBCLIENT is not set
+
+#
+# FreeModBus
+#
+# CONFIG_MODBUS is not set
+
+#
+# NSH Library
+#
+CONFIG_NSH_LIBRARY=y
+
+#
+# Command Line Configuration
+#
+# CONFIG_NSH_READLINE is not set
+CONFIG_NSH_CLE=y
+CONFIG_NSH_LINELEN=78
+# CONFIG_NSH_DISABLE_SEMICOLON is not set
+CONFIG_NSH_MAXARGUMENTS=6
+CONFIG_NSH_ARGCAT=y
+CONFIG_NSH_NESTDEPTH=3
+# CONFIG_NSH_DISABLEBG is not set
+
+#
+# Disable Individual commands
+#
+# CONFIG_NSH_DISABLE_ADDROUTE is not set
+# CONFIG_NSH_DISABLE_CAT is not set
+# CONFIG_NSH_DISABLE_CD is not set
+# CONFIG_NSH_DISABLE_CP is not set
+# CONFIG_NSH_DISABLE_CMP is not set
+# CONFIG_NSH_DISABLE_DD is not set
+# CONFIG_NSH_DISABLE_DF is not set
+# CONFIG_NSH_DISABLE_DELROUTE is not set
+# CONFIG_NSH_DISABLE_ECHO is not set
+# CONFIG_NSH_DISABLE_EXEC is not set
+# CONFIG_NSH_DISABLE_EXIT is not set
+# CONFIG_NSH_DISABLE_FREE is not set
+# CONFIG_NSH_DISABLE_GET is not set
+# CONFIG_NSH_DISABLE_HELP is not set
+# CONFIG_NSH_DISABLE_HEXDUMP is not set
+# CONFIG_NSH_DISABLE_IFCONFIG is not set
+# CONFIG_NSH_DISABLE_KILL is not set
+# CONFIG_NSH_DISABLE_LOSETUP is not set
+# CONFIG_NSH_DISABLE_LS is not set
+# CONFIG_NSH_DISABLE_MB is not set
+# CONFIG_NSH_DISABLE_MKDIR is not set
+# CONFIG_NSH_DISABLE_MKFIFO is not set
+# CONFIG_NSH_DISABLE_MKRD is not set
+# CONFIG_NSH_DISABLE_MH is not set
+# CONFIG_NSH_DISABLE_MOUNT is not set
+# CONFIG_NSH_DISABLE_MW is not set
+# CONFIG_NSH_DISABLE_PS is not set
+# CONFIG_NSH_DISABLE_PUT is not set
+# CONFIG_NSH_DISABLE_PWD is not set
+# CONFIG_NSH_DISABLE_RM is not set
+# CONFIG_NSH_DISABLE_RMDIR is not set
+# CONFIG_NSH_DISABLE_SET is not set
+# CONFIG_NSH_DISABLE_SH is not set
+# CONFIG_NSH_DISABLE_SLEEP is not set
+# CONFIG_NSH_DISABLE_TEST is not set
+# CONFIG_NSH_DISABLE_UMOUNT is not set
+# CONFIG_NSH_DISABLE_UNSET is not set
+# CONFIG_NSH_DISABLE_USLEEP is not set
+# CONFIG_NSH_DISABLE_WGET is not set
+# CONFIG_NSH_DISABLE_XD is not set
+
+#
+# Configure Command Options
+#
+CONFIG_NSH_CMDOPT_DF_H=y
+CONFIG_NSH_CODECS_BUFSIZE=128
+CONFIG_NSH_CMDOPT_HEXDUMP=y
+CONFIG_NSH_FILEIOSIZE=256
+
+#
+# Scripting Support
+#
+# CONFIG_NSH_DISABLESCRIPT is not set
+# CONFIG_NSH_DISABLE_ITEF is not set
+# CONFIG_NSH_DISABLE_LOOPS is not set
+
+#
+# Console Configuration
+#
+CONFIG_NSH_CONSOLE=y
+# CONFIG_NSH_ALTCONDEV is not set
+# CONFIG_NSH_ARCHINIT is not set
+
+#
+# NxWidgets/NxWM
+#
+
+#
+# Platform-specific Support
+#
+# CONFIG_PLATFORM_CONFIGDATA is not set
+
+#
+# System Libraries and NSH Add-Ons
+#
+
+#
+# Custom Free Memory Command
+#
+# CONFIG_SYSTEM_FREE is not set
+
+#
+# EMACS-like Command Line Editor
+#
+CONFIG_SYSTEM_CLE=y
+CONFIG_SYSTEM_CLE_DEBUGLEVEL=0
+
+#
+# FLASH Program Installation
+#
+# CONFIG_SYSTEM_INSTALL is not set
+
+#
+# FLASH Erase-all Command
+#
+
+#
+# Intel HEX to binary conversion
+#
+# CONFIG_SYSTEM_HEX2BIN is not set
+
+#
+# I2C tool
+#
+
+#
+# INI File Parser
+#
+# CONFIG_SYSTEM_INIFILE is not set
+
+#
+# NxPlayer media player library / command Line
+#
+# CONFIG_SYSTEM_NXPLAYER is not set
+
+#
+# RAM test
+#
+# CONFIG_SYSTEM_RAMTEST is not set
+
+#
+# readline()
+#
+CONFIG_SYSTEM_READLINE=y
+CONFIG_READLINE_ECHO=y
+
+#
+# P-Code Support
+#
+
+#
+# PHY Tool
+#
+
+#
+# Power Off
+#
+# CONFIG_SYSTEM_POWEROFF is not set
+
+#
+# RAMTRON
+#
+# CONFIG_SYSTEM_RAMTRON is not set
+
+#
+# SD Card
+#
+# CONFIG_SYSTEM_SDCARD is not set
+
+#
+# Sudoku
+#
+# CONFIG_SYSTEM_SUDOKU is not set
+
+#
+# Sysinfo
+#
+# CONFIG_SYSTEM_SYSINFO is not set
+
+#
+# VI Work-Alike Editor
+#
+# CONFIG_SYSTEM_VI is not set
+
+#
+# Stack Monitor
+#
+
+#
+# USB CDC/ACM Device Commands
+#
+
+#
+# USB Composite Device Commands
+#
+
+#
+# USB Mass Storage Device Commands
+#
+
+#
+# USB Monitor
+#
+
+#
+# Zmodem Commands
+#
+# CONFIG_SYSTEM_ZMODEM is not set
diff --git a/nuttx/configs/efm32gg-stk3700/nsh/setenv.sh b/nuttx/configs/efm32gg-stk3700/nsh/setenv.sh
new file mode 100755
index 000000000..bf73cc9af
--- /dev/null
+++ b/nuttx/configs/efm32gg-stk3700/nsh/setenv.sh
@@ -0,0 +1,63 @@
+#!/bin/bash
+# configs/efm32-g8xx-stk/nsh/setenv.sh
+#
+# Copyright (C) 2014 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <gnutt@nuttx.org>
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in
+# the documentation and/or other materials provided with the
+# distribution.
+# 3. Neither the name NuttX nor the names of its contributors may be
+# used to endorse or promote products derived from this software
+# without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+#
+
+if [ "$_" = "$0" ] ; then
+ echo "You must source this script, not run it!" 1>&2
+ exit 1
+fi
+
+WD=`pwd`
+if [ ! -x "setenv.sh" ]; then
+ echo "This script must be executed from the top-level NuttX build directory"
+ exit 1
+fi
+
+if [ -z "${PATH_ORIG}" ]; then
+ export PATH_ORIG="${PATH}"
+fi
+
+# This is the Cygwin path to the location where I installed the CodeSourcery
+# toolchain under windows. You will also have to edit this if you install
+# the CodeSourcery toolchain in any other location
+export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/CodeSourcery/Sourcery G++ Lite/bin"
+#export TOOLCHAIN_BIN="/cygdrive/c/Users/MyName/MentorGraphics/Sourcery_CodeBench_Lite_for_ARM_EABI/bin"
+
+# This is the Cygwin path to the location where I build the buildroot
+# toolchain.
+#export TOOLCHAIN_BIN="${WD}/../misc/buildroot/build_arm_nofpu/staging_dir/bin"
+
+# Add the path to the toolchain to the PATH varialble
+export PATH="${TOOLCHAIN_BIN}:/sbin:/usr/sbin:${PATH_ORIG}"
+
+echo "PATH : ${PATH}"
diff --git a/nuttx/configs/efm32gg-stk3700/scripts/ld.script b/nuttx/configs/efm32gg-stk3700/scripts/ld.script
new file mode 100644
index 000000000..a2069de6b
--- /dev/null
+++ b/nuttx/configs/efm32gg-stk3700/scripts/ld.script
@@ -0,0 +1,110 @@
+/****************************************************************************
+ * configs/efm32gg-stk3700/scripts/ld.script
+ *
+ * Copyright (C) 2014 Gregory Nutt. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ * 3. Neither the name NuttX nor the names of its contributors may be
+ * used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ ****************************************************************************/
+
+MEMORY
+{
+ flash (rx) : ORIGIN = 0x00000000, LENGTH = 1M
+ sram (rwx) : ORIGIN = 0x20000000, LENGTH = 128M
+}
+
+OUTPUT_ARCH(arm)
+EXTERN(_vectors)
+ENTRY(_stext)
+
+SECTIONS
+{
+ .text : {
+ _stext = ABSOLUTE(.);
+ *(.vectors)
+ *(.text .text.*)
+ *(.fixup)
+ *(.gnu.warning)
+ *(.rodata .rodata.*)
+ *(.gnu.linkonce.t.*)
+ *(.glue_7)
+ *(.glue_7t)
+ *(.got)
+ *(.gcc_except_table)
+ *(.gnu.linkonce.r.*)
+ _etext = ABSOLUTE(.);
+ } > flash
+
+ .init_section : {
+ _sinit = ABSOLUTE(.);
+ *(.init_array .init_array.*)
+ _einit = ABSOLUTE(.);
+ } > flash
+
+ .ARM.extab : {
+ *(.ARM.extab*)
+ } > flash
+
+ __exidx_start = ABSOLUTE(.);
+ .ARM.exidx : {
+ *(.ARM.exidx*)
+ } > flash
+ __exidx_end = ABSOLUTE(.);
+
+ _eronly = ABSOLUTE(.);
+
+ .data : {
+ _sdata = ABSOLUTE(.);
+ *(.data .data.*)
+ *(.gnu.linkonce.d.*)
+ CONSTRUCTORS
+ _edata = ABSOLUTE(.);
+ } > sram AT > flash
+
+ .bss : {
+ _sbss = ABSOLUTE(.);
+ *(.bss .bss.*)
+ *(.gnu.linkonce.b.*)
+ *(COMMON)
+ _ebss = ABSOLUTE(.);
+ } > sram
+
+ /* Stabs debugging sections. */
+ .stab 0 : { *(.stab) }
+ .stabstr 0 : { *(.stabstr) }
+ .stab.excl 0 : { *(.stab.excl) }
+ .stab.exclstr 0 : { *(.stab.exclstr) }
+ .stab.index 0 : { *(.stab.index) }
+ .stab.indexstr 0 : { *(.stab.indexstr) }
+ .comment 0 : { *(.comment) }
+ .debug_abbrev 0 : { *(.debug_abbrev) }
+ .debug_info 0 : { *(.debug_info) }
+ .debug_line 0 : { *(.debug_line) }
+ .debug_pubnames 0 : { *(.debug_pubnames) }
+ .debug_aranges 0 : { *(.debug_aranges) }
+}
diff --git a/nuttx/configs/efm32gg-stk3700/src/.gitignore b/nuttx/configs/efm32gg-stk3700/src/.gitignore
new file mode 100644
index 000000000..726d936e1
--- /dev/null
+++ b/nuttx/configs/efm32gg-stk3700/src/.gitignore
@@ -0,0 +1,2 @@
+/.depend
+/Make.dep
diff --git a/nuttx/configs/efm32gg-stk3700/src/Makefile b/nuttx/configs/efm32gg-stk3700/src/Makefile
new file mode 100644
index 000000000..ae6b40c69
--- /dev/null
+++ b/nuttx/configs/efm32gg-stk3700/src/Makefile
@@ -0,0 +1,83 @@
+############################################################################
+# configs/efm32gg-stk3700/src/Makefile
+#
+# Copyright (C) 2014 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <gnutt@nuttx.org>
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in
+# the documentation and/or other materials provided with the
+# distribution.
+# 3. Neither the name NuttX nor the names of its contributors may be
+# used to endorse or promote products derived from this software
+# without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+#
+############################################################################
+
+-include $(TOPDIR)/Make.defs
+
+CSRCS = efm32_boot.c
+
+ifeq ($(CONFIG_ARCH_LEDS),y)
+CSRCS += efm32_autoleds.c
+else
+CSRCS += efm32_userleds.c
+endif
+
+COBJS = $(CSRCS:.c=$(OBJEXT))
+SRCS = $(ASRCS) $(CSRCS)
+OBJS = $(AOBJS) $(COBJS)
+
+ARCH_SRCDIR = $(TOPDIR)/arch/$(CONFIG_ARCH)/src
+ifeq ($(CONFIG_WINDOWS_NATIVE),y)
+ CFLAGS += -I$(ARCH_SRCDIR)\chip -I$(ARCH_SRCDIR)\common -I$(ARCH_SRCDIR)\armv7-m
+else
+ifeq ($(WINTOOL),y)
+ CFLAGS += -I "${shell cygpath -w $(ARCH_SRCDIR)/chip}" \
+ -I "${shell cygpath -w $(ARCH_SRCDIR)/common}" \
+ -I "${shell cygpath -w $(ARCH_SRCDIR)/armv7-m}"
+else
+ CFLAGS += -I$(ARCH_SRCDIR)/chip -I$(ARCH_SRCDIR)/common -I$(ARCH_SRCDIR)/armv7-m
+endif
+endif
+
+$(COBJS) $(LINKOBJS): %$(OBJEXT): %.c
+ $(call COMPILE, $<, $@)
+
+libboard$(LIBEXT): $(OBJS)
+ $(call ARCHIVE, $@, $(OBJS))
+
+.depend: Makefile $(SRCS)
+ $(Q) $(MKDEP) $(CC) -- $(CFLAGS) -- $(SRCS) >Make.dep
+ $(Q) touch $@
+
+depend: .depend
+
+clean:
+ $(call DELFILE, libboard$(LIBEXT))
+ $(call CLEAN)
+
+distclean: clean
+ $(call DELFILE, Make.dep)
+ $(call DELFILE, .depend)
+
+-include Make.dep
diff --git a/nuttx/configs/efm32gg-stk3700/src/efm32_autoleds.c b/nuttx/configs/efm32gg-stk3700/src/efm32_autoleds.c
new file mode 100644
index 000000000..96c077c55
--- /dev/null
+++ b/nuttx/configs/efm32gg-stk3700/src/efm32_autoleds.c
@@ -0,0 +1,175 @@
+/****************************************************************************
+ * configs/efm32gg-stk3700/include/efm32_autoleds.c
+ *
+ * Copyright (C) 2014 Gregory Nutt. All rights reserved.
+ * Author: Gregory Nutt <gnutt@nuttx.org>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ * 3. Neither the name NuttX nor the names of its contributors may be
+ * used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ ****************************************************************************/
+/* The EFM32 Giant Gecko Start Kit has two yellow LEDs marked LED0 and LED1.
+ * These LEDs are controlled by GPIO pins on the EFM32. The LEDs are
+ * connected to pins PE2 and PE3 in an active high configuration:
+ *
+ * ------------------------------------- --------------------
+ * EFM32 PIN BOARD SIGNALS
+ * ------------------------------------- --------------------
+ * E2/BCK_VOUT/EBI_A09 #0/ MCU_PE2 UIF_LED0
+ * TIM3_CC2 #1/U1_TX #3/ACMP0_O #1
+ * E3/BCK_STAT/EBI_A10 #0/U1_RX #3/ MCU_PE3 UIF_LED1
+ * ACMP1_O #1
+ * ------------------------------------- --------------------
+ *
+ * All LEDs are grounded and so are illuminated by outputting a high
+ * value to the LED.
+ *
+ * These LEDs are not used by the board port unless CONFIG_ARCH_LEDS is
+ * defined. In that case, the usage by the board port is defined in
+ * include/board.h and src/efm32_autoleds.c. The LEDs are used to
+ * encode OS-related events as follows:
+ *
+ * SYMBOL Meaning LED state
+ * LED0 LED1
+ * ------------------- ----------------------- -------- --------
+ * LED_STARTED NuttX has been started OFF OFF
+ * LED_HEAPALLOCATE Heap has been allocated OFF OFF
+ * LED_IRQSENABLED Interrupts enabled OFF OFF
+ * LED_STACKCREATED Idle stack created ON OFF
+ * LED_INIRQ In an interrupt No change
+ * LED_SIGNAL In a signal handler No change
+ * LED_ASSERTION An assertion failed No change
+ * LED_PANIC The system has crashed OFF Blinking
+ * LED_IDLE STM32 is is sleep mode Not used
+ *
+ * Thus if LED0 statically on, NuttX has successfully booted and is,
+ * apparently, running normally. If LED1 is flashing at approximately
+ * 2Hz, then a fatal error has been detected and the system has halted.
+ */
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include <nuttx/config.h>
+
+#include <stdint.h>
+#include <stdbool.h>
+#include <debug.h>
+
+#include <arch/board/board.h>
+
+#include "efm32_gpio.h"
+#include "efm32gg-stk3700.h"
+
+#ifdef CONFIG_ARCH_LEDS
+
+/****************************************************************************
+ * Pre-processor Definitions
+ ****************************************************************************/
+
+/* CONFIG_DEBUG_LEDS enables debug output from this file (needs CONFIG_DEBUG
+ * with CONFIG_DEBUG_VERBOSE too)
+ */
+
+#ifdef CONFIG_DEBUG_LEDS
+# define leddbg lldbg
+# define ledvdbg llvdbg
+#else
+# define leddbg(x...)
+# define ledvdbg(x...)
+#endif
+
+/****************************************************************************
+ * Private Data
+ ****************************************************************************/
+
+/****************************************************************************
+ * Private Functions
+ ****************************************************************************/
+
+/****************************************************************************
+ * Public Functions
+ ****************************************************************************/
+
+/****************************************************************************
+ * Name: board_led_initialize
+ ****************************************************************************/
+
+void board_led_initialize(void)
+{
+ /* Configure LED PIOs for output */
+
+ efm32_configgpio(GPIO_LED0);
+ efm32_configgpio(GPIO_LED1);
+}
+
+/****************************************************************************
+ * Name: board_led_on
+ ****************************************************************************/
+
+void board_led_on(int led)
+{
+ bool led0on = false; /* High illuminates */
+ bool led1on = false; /* High illuminates */
+
+ switch (led)
+ {
+ case 0: /* LED_STARTED, LED_HEAPALLOCATE, LED_IRQSENABLED */
+ break;
+
+ case 1: /* LED_STACKCREATED */
+ led0on = true;
+ break;
+
+ default:
+ case 2: /* LED_INIRQ, LED_SIGNAL, LED_ASSERTION */
+ return;
+
+ case 3: /* LED_PANIC */
+ led1on = true;
+ break;
+ }
+
+ efm32_gpiowrite(GPIO_LED0, led0on);
+ efm32_gpiowrite(GPIO_LED1, led1on);
+}
+
+/****************************************************************************
+ * Name: board_led_off
+ ****************************************************************************/
+
+void board_led_off(int led)
+{
+ if (led != 2)
+ {
+ efm32_gpiowrite(GPIO_LED0, false); /* High illuminates */
+ efm32_gpiowrite(GPIO_LED1, false); /* High illuminates */
+ }
+}
+
+#endif /* CONFIG_ARCH_LEDS */
diff --git a/nuttx/configs/efm32gg-stk3700/src/efm32_boot.c b/nuttx/configs/efm32gg-stk3700/src/efm32_boot.c
new file mode 100644
index 000000000..544fe3930
--- /dev/null
+++ b/nuttx/configs/efm32gg-stk3700/src/efm32_boot.c
@@ -0,0 +1,98 @@
+/*****************************************************************************
+ * configs/efm32gg-stk3700/src/efm32_boot.c
+ *
+ * Copyright (C) 2014 Gregory Nutt. All rights reserved.
+ * Author: Gregory Nutt <gnutt@nuttx.org>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ * 3. Neither the name NuttX nor the names of its contributors may be
+ * used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ ****************************************************************************/
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include <nuttx/config.h>
+
+#include "efm32_gpio.h"
+#include "efm32_start.h"
+#include "efm32gg-stk3700.h"
+
+/****************************************************************************
+ * Public Functions
+ ****************************************************************************/
+
+/****************************************************************************
+ * Name: efm32_boardinitialize
+ *
+ * Description:
+ * All EFM32 architectures must provide the following entry point. This
+ * entry point is called early in the initialization before any devices
+ * have been initialized.
+ *
+ ****************************************************************************/
+
+void efm32_boardinitialize(void)
+{
+#ifdef CONFIG_EFM32_UART0
+ /* The kit contains a board controller that is responsible for performing
+ * various board level tasks, such as handling the debugger and the Advanced
+ * Energy Monitor. An interface is provided between the EFM32 and the board
+ * controller in the form of a UART connection. The connection is enabled by
+ * setting the EFM_BC_EN (PF7) line high, and using the lines EFM_BC_TX
+ * (PE0) and EFM_BC_RX (PE1) for communicating.
+ */
+
+ efm32_configgpio(GPIO_BC_EN);
+#endif
+
+#ifdef CONFIG_ARCH_LEDS
+ /* Configure on-board LEDs if LED support has been selected. */
+
+ board_led_initialize();
+#endif
+}
+
+/****************************************************************************
+ * Name: board_initialize
+ *
+ * Description:
+ * If CONFIG_BOARD_INITIALIZE is selected, then an additional
+ * initialization call will be performed in the boot-up sequence to a
+ * function called board_initialize(). board_initialize() will be
+ * called immediately after up_initialize() is called and just before the
+ * initial application is started. This additional initialization phase
+ * may be used, for example, to initialize board-specific device drivers.
+ *
+ ****************************************************************************/
+
+#ifdef CONFIG_BOARD_INITIALIZE
+void board_initialize(void)
+{
+}
+#endif
diff --git a/nuttx/configs/efm32gg-stk3700/src/efm32_userleds.c b/nuttx/configs/efm32gg-stk3700/src/efm32_userleds.c
new file mode 100644
index 000000000..eab14d5e8
--- /dev/null
+++ b/nuttx/configs/efm32gg-stk3700/src/efm32_userleds.c
@@ -0,0 +1,153 @@
+/****************************************************************************
+ * configs/efm32gg-stk3700/include/efm32_userleds.c
+ *
+ * Copyright (C) 2014 Gregory Nutt. All rights reserved.
+ * Author: Gregory Nutt <gnutt@nuttx.org>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ * 3. Neither the name NuttX nor the names of its contributors may be
+ * used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ ****************************************************************************/
+/* The EFM32 Giant Gecko Start Kit has two yellow LEDs marked LED0 and LED1.
+ * These LEDs are controlled by GPIO pins on the EFM32. The LEDs are
+ * connected to pins PE2 and PE3 in an active high configuration:
+ *
+ * ------------------------------------- --------------------
+ * EFM32 PIN BOARD SIGNALS
+ * ------------------------------------- --------------------
+ * E2/BCK_VOUT/EBI_A09 #0/ MCU_PE2 UIF_LED0
+ * TIM3_CC2 #1/U1_TX #3/ACMP0_O #1
+ * E3/BCK_STAT/EBI_A10 #0/U1_RX #3/ MCU_PE3 UIF_LED1
+ * ACMP1_O #1
+ * ------------------------------------- --------------------
+ *
+ * All LEDs are grounded and so are illuminated by outputting a high
+ * value to the LED.
+ */
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include <nuttx/config.h>
+
+#include <stdint.h>
+#include <stdbool.h>
+#include <debug.h>
+
+#include <arch/board/board.h>
+
+#include "efm32_gpio.h"
+#include "efm32gg-stk3700.h"
+
+#ifndef CONFIG_ARCH_LEDS
+
+/****************************************************************************
+ * Definitions
+ ****************************************************************************/
+
+/* CONFIG_DEBUG_LEDS enables debug output from this file (needs CONFIG_DEBUG
+ * with CONFIG_DEBUG_VERBOSE too)
+ */
+
+#ifdef CONFIG_DEBUG_LEDS
+# define leddbg lldbg
+# define ledvdbg llvdbg
+#else
+# define leddbg(x...)
+# define ledvdbg(x...)
+#endif
+
+/****************************************************************************
+ * Private Data
+ ****************************************************************************/
+
+/****************************************************************************
+ * Private Function Prototypes
+ ****************************************************************************/
+
+/****************************************************************************
+ * Private Data
+ ****************************************************************************/
+
+/****************************************************************************
+ * Private Functions
+ ****************************************************************************/
+
+/****************************************************************************
+ * Public Functions
+ ****************************************************************************/
+
+/****************************************************************************
+ * Name: sam_ledinit
+ ****************************************************************************/
+
+void sam_ledinit(void)
+{
+ /* Configure LED PIOs for output */
+
+ efm32_configgpio(GPIO_LED0);
+ efm32_configgpio(GPIO_LED1);
+}
+
+/****************************************************************************
+ * Name: sam_setled
+ ****************************************************************************/
+
+void sam_setled(int led, bool ledon)
+{
+ uint32_t ledcfg;
+
+ if (led == BOARD_LED0)
+ {
+ ledcfg = GPIO_LED0;
+ }
+ else if (led == BOARD_LED1)
+ {
+ ledcfg = GPIO_LED1;
+ }
+ else
+ {
+ return;
+ }
+
+ efm32_gpiowrite(ledcfg, ledon); /* High illuminates */
+}
+
+/****************************************************************************
+ * Name: sam_setleds
+ ****************************************************************************/
+
+void sam_setleds(uint8_t ledset)
+{
+ /* Hight illuminates */
+
+ efm32_gpiowrite(GPIO_LED0, (ledset & BOARD_LED0_BIT) != 0);
+ efm32_gpiowrite(GPIO_LED1, (ledset & BOARD_LED1_BIT) != 0);
+}
+
+#endif /* !CONFIG_ARCH_LEDS */
diff --git a/nuttx/configs/efm32gg-stk3700/src/efm32gg-stk3700.h b/nuttx/configs/efm32gg-stk3700/src/efm32gg-stk3700.h
new file mode 100644
index 000000000..724dc7b15
--- /dev/null
+++ b/nuttx/configs/efm32gg-stk3700/src/efm32gg-stk3700.h
@@ -0,0 +1,100 @@
+/****************************************************************************
+ * configs/efm32gg-stk3700/include/efm32gg-stk3700.h
+ *
+ * Copyright (C) 2014 Gregory Nutt. All rights reserved.
+ * Author: Gregory Nutt <gnutt@nuttx.org>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ * 3. Neither the name NuttX nor the names of its contributors may be
+ * used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ ****************************************************************************/
+
+#ifndef __CONFIGS_EFM32GG_STK3700_SRC_EFM32GG_STK3700_H
+#define __CONFIGS_EFM32GG_STK3700_SRC_EFM32GG_STK3700_H
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+/****************************************************************************
+ * Pre-processor Definitions
+ ****************************************************************************/
+/* UART0
+ *
+ * The kit contains a board controller that is responsible for performing
+ * various board level tasks, such as handling the debugger and the Advanced
+ * Energy Monitor. An interface is provided between the EFM32 and the board
+ * controller in the form of a UART connection. The connection is enabled by
+ * setting the EFM_BC_EN (PF7) line high, and using the lines EFM_BC_TX
+ * (PE0) and EFM_BC_RX (PE1) for communicating.
+ */
+
+#ifdef CONFIG_EFM32GG_STK3700_BCEN
+# define GPIO_BC_EN (GPIO_OUTPUT_PUSHPULL|GPIO_OUTPUT_SET|\
+ GPIO_PORTF|GPIO_PIN7)
+#else
+# define GPIO_BC_EN (GPIO_OUTPUT_PUSHPULL|GPIO_OUTPUT_CLEAR|\
+ GPIO_PORTF|GPIO_PIN7)
+#endif
+
+/* LEDs
+ *
+ * The EFM32 Giant Gecko Start Kit has two yellow LEDs marked LED0 and LED1.
+ * These LEDs are controlled by GPIO pins on the EFM32. The LEDs are
+ * connected to pins PE2 and PE3 in an active high configuration:
+ *
+ * ------------------------------------- --------------------
+ * EFM32 PIN BOARD SIGNALS
+ * ------------------------------------- --------------------
+ * E2/BCK_VOUT/EBI_A09 #0/ MCU_PE2 UIF_LED0
+ * TIM3_CC2 #1/U1_TX #3/ACMP0_O #1
+ * E3/BCK_STAT/EBI_A10 #0/U1_RX #3/ MCU_PE3 UIF_LED1
+ * ACMP1_O #1
+ * ------------------------------------- --------------------
+ *
+ * All LEDs are grounded and so are illuminated by outputting a high
+ * value to the LED.
+ */
+
+#define GPIO_LED0 (GPIO_OUTPUT_WIREDOR_PULLDOWN|\
+ GPIO_OUTPUT_CLEAR|GPIO_PORTE|GPIO_PIN2)
+#define GPIO_LED1 (GPIO_OUTPUT_WIREDOR_PULLDOWN|\
+ GPIO_OUTPUT_CLEAR|GPIO_PORTE|GPIO_PIN3)
+
+/****************************************************************************
+ * Public Function Prototypes
+ ****************************************************************************/
+
+/****************************************************************************
+ * Name: board_led_initialize
+ ****************************************************************************/
+
+#ifdef CONFIG_ARCH_LEDS
+void board_led_initialize(void);
+#endif
+
+#endif /* __CONFIGS_EFM32GG_STK3700_SRC_EFM32GG_STK3700_H */