summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Odersky <jodersky@gmail.com>2015-01-13 16:23:31 +0100
committerJakob Odersky <jodersky@gmail.com>2015-03-08 12:01:31 +0100
commit893c304e3c50c8b942b2dd36a275df2a00ab257f (patch)
tree35b287b71da7393868d3c74630e21c3cf2771761
parent11afcdfee6a3961952dd92f02c1abaa4756b115f (diff)
downloadnuttx-893c304e3c50c8b942b2dd36a275df2a00ab257f.tar.gz
nuttx-893c304e3c50c8b942b2dd36a275df2a00ab257f.tar.bz2
nuttx-893c304e3c50c8b942b2dd36a275df2a00ab257f.zip
Port of basic functionalities to Kinetis K20 family
Conflicts: nuttx/configs/Kconfig
-rw-r--r--nuttx/arch/arm/include/kinetis/chip.h61
-rw-r--r--nuttx/arch/arm/include/kinetis/irq.h81
-rw-r--r--nuttx/arch/arm/src/kinetis/Kconfig8
-rw-r--r--nuttx/arch/arm/src/kinetis/kinetis_clockconfig.c2
-rw-r--r--nuttx/arch/arm/src/kinetis/kinetis_k20pinmux.h80
-rw-r--r--nuttx/arch/arm/src/kinetis/kinetis_memorymap.h118
-rw-r--r--nuttx/arch/arm/src/kinetis/kinetis_pinmux.h4
-rw-r--r--nuttx/arch/arm/src/kinetis/kinetis_vectors.S181
-rw-r--r--nuttx/configs/Kconfig696
9 files changed, 1099 insertions, 132 deletions
diff --git a/nuttx/arch/arm/include/kinetis/chip.h b/nuttx/arch/arm/include/kinetis/chip.h
index cb686c5d6..0129e7058 100644
--- a/nuttx/arch/arm/include/kinetis/chip.h
+++ b/nuttx/arch/arm/include/kinetis/chip.h
@@ -48,8 +48,50 @@
/* Get customizations for each supported chip */
-#if defined(CONFIG_ARCH_CHIP_MK40X64VFX50) || defined(CONFIG_ARCH_CHIP_MK40X64VLH50) || \
+#if defined(CONFIG_ARCH_CHIP_MK20DX256VLH7)
+# define KINETIS_K20 1 /* Kinetics K20 family */
+# undef KINETIS_K40 /* Not Kinetics K40 family */
+# undef KINETIS_K60 /* Not Kinetis K60 family */
+# define KINETIS_FLASH_SIZE (256*1024) /* 256Kb */
+# define KINETIS_FLEXMEM_SIZE (32*1024) /* 32Kb */
+# define KINETIS_SRAM_SIZE (64*1024) /* 64Kb */
+# undef KINETIS_MPU /* No memory protection unit */
+# undef KINETIS_EXTBUS /* No external bus interface */
+# define KINETIS_NDMACH 16 /* Up to 16 DMA channels */
+# undef KINETIS_NENET /* No Ethernet controller */
+# define KINETIS_NUSBHOST 1 /* One USB host controller */
+# define KINETIS_NUSBOTG 1 /* With USB OTG controller */
+# define KINETIS_NUSBDEV 1 /* One USB device controller */
+# undef KINETIS_NSDHC /* No SD host controller */
+# undef KINETIS_NTOUCHIF /* Xtrinsic touch sensing interface */
+# define KINETIS_NI2C 2 /* Two I2C modules */
+# undef KINETIS_NISO7816 /* No UART with ISO-786 */
+# define KINETIS_NUART 3 /* Three UARTs */
+# define KINETIS_NSPI 1 /* One SPI module */
+# define KINETIS_NCAN 1 /* Two CAN controller */
+# define KINETIS_NI2S 1 /* One I2S module */
+# undef KINETIS_NSLCD /* No segment LCD interface (up to 25x8/29x4) */
+# define KINETIS_NADC16 2 /* Two 16-bit ADC */
+# undef KINETIS_NADC12 /* No 12-channel ADC */
+# undef KINETIS_NADC13 /* No 13-channel ADC */
+# undef KINETIS_NADC15 /* No 15-channel ADC */
+# undef KINETIS_NADC18 /* No 18-channel ADC */
+# define KINETIS_NPGA 2 /* Two Programmable Gain Amplifiers */
+# define KINETIS_NCMP 3 /* Three analog comparators */
+# define KINETIS_NDAC6 3 /* Three 6-bit DAC */
+# define KINETIS_NDAC12 1 /* One 12-bit DAC */
+# define KINETIS_NVREF 1 /* Voltage reference */
+# define KINETIS_NTIMERS12 2 /* Two 12 channel timers */
+# undef KINETIS_NTIMERS20 /* No 20 channel timers */
+# undef KINETIS_NRNG /* No random number generator */
+# define KINETIS_NRTC 1 /* Real time clock */
+# undef KINETIS_NMMCAU /* No hardware encryption */
+# undef KINETIS_NTAMPER /* No tamper detect */
+# undef KINETIS_NCRC /* CRC */
+
+#elif defined(CONFIG_ARCH_CHIP_MK40X64VFX50) || defined(CONFIG_ARCH_CHIP_MK40X64VLH50) || \
defined(CONFIG_ARCH_CHIP_MK40X64VLK50) || defined(CONFIG_ARCH_CHIP_MK40X64VMB50)
+# undef KINETIS_K20 /* Not Kinetis K20 family */
# define KINETIS_K40 1 /* Kinetics K40 family */
# undef KINETIS_K60 /* Not Kinetis K60 family */
# define KINETIS_FLASH_SIZE (64*1024) /* 64Kb */
@@ -99,6 +141,7 @@
defined(CONFIG_ARCH_CHIP_MK40X128VFX72) || defined(CONFIG_ARCH_CHIP_MK40X128VLH72) || \
defined(CONFIG_ARCH_CHIP_MK40X128VLK72) || defined(CONFIG_ARCH_CHIP_MK40X128VMB72) || \
defined(CONFIG_ARCH_CHIP_MK40X128VLL72) || defined(CONFIG_ARCH_CHIP_MK40X128VML72)
+# undef KINETIS_K20 /* Not Kinetis K20 family */
# define KINETIS_K40 1 /* Kinetics K40 family */
# undef KINETIS_K60 /* Not Kinetis K60 family */
# define KINETIS_FLASH_SIZE (128*1024) /* 128Kb */
@@ -140,6 +183,7 @@
#elif defined(CONFIG_ARCH_CHIP_MK40X256VLK72) || defined(CONFIG_ARCH_CHIP_MK40X256VMB72) || \
defined(CONFIG_ARCH_CHIP_MK40X256VLL72) || defined(CONFIG_ARCH_CHIP_MK40X256VML72)
+# undef KINETIS_K20 /* Not Kinetis K20 family */
# define KINETIS_K40 1 /* Kinetics K40 family */
# undef KINETIS_K60 /* Not Kinetis K60 family */
# define KINETIS_FLASH_SIZE (256*1024) /* 256Kb */
@@ -180,6 +224,7 @@
# define KINETIS_NCRC 1 /* CRC */
#elif defined(CONFIG_ARCH_CHIP_MK40X128VLQ100) || defined(CONFIG_ARCH_CHIP_MK40X128VMD100)
+# undef KINETIS_K20 /* Not Kinetis K20 family */
# define KINETIS_K40 1 /* Kinetics K40 family */
# undef KINETIS_K60 /* Not Kinetis K60 family */
# define KINETIS_FLASH_SIZE (128*1024) /* 128Kb */
@@ -220,6 +265,7 @@
# define KINETIS_NCRC 1 /* CRC */
#elif defined(CONFIG_ARCH_CHIP_MK40X256VLQ100) || defined(CONFIG_ARCH_CHIP_MK40X256VMD100)
+# undef KINETIS_K20 /* Not Kinetis K20 family */
# define KINETIS_K40 1 /* Kinetics K40 family */
# undef KINETIS_K60 /* Not Kinetis K60 family */
# define KINETIS_FLASH_SIZE (256*1024) /* 256Kb */
@@ -262,6 +308,7 @@
#elif defined(CONFIG_ARCH_CHIP_MK40N512VLK100) || defined(CONFIG_ARCH_CHIP_MK40N512VMB100) || \
defined(CONFIG_ARCH_CHIP_MK40N512VLL100) || defined(CONFIG_ARCH_CHIP_MK40N512VML100) || \
defined(CONFIG_ARCH_CHIP_MK40N512VLQ100) || defined(CONFIG_ARCH_CHIP_MK40N512VMD100)
+# undef KINETIS_K20 /* Not Kinetis K20 family */
# define KINETIS_K40 1 /* Kinetics K40 family */
# undef KINETIS_K60 /* Not Kinetis K60 family */
# define KINETIS_FLASH_SIZE (512*1024) /* 512Kb */
@@ -302,6 +349,7 @@
# define KINETIS_NCRC 1 /* CRC */
#elif defined(CONFIG_ARCH_CHIP_MK60N256VLL100)
+# undef KINETIS_K20 /* Not Kinetis K20 family */
# undef KINETIS_K40 /* Not Kinetics K40 family */
# define KINETIS_K60 1 /* Kinetis K60 family */
# define KINETIS_FLASH_SIZE (256*1024) /* 256Kb */
@@ -345,6 +393,7 @@
# define KINETIS_NCRC 1 /* CRC */
#elif defined(CONFIG_ARCH_CHIP_MK60X256VLL100)
+# undef KINETIS_K20 /* Not Kinetis K20 family */
# undef KINETIS_K40 /* Not Kinetics K40 family */
# define KINETIS_K60 1 /* Kinetis K60 family */
# define KINETIS_FLASH_SIZE (256*1024) /* 256Kb */
@@ -388,6 +437,7 @@
# define KINETIS_NCRC 1 /* CRC */
#elif defined(CONFIG_ARCH_CHIP_MK60N512VLL100)
+# undef KINETIS_K20 /* Not Kinetis K20 family */
# undef KINETIS_K40 /* Not Kinetics K40 family */
# define KINETIS_K60 1 /* Kinetis K60 family */
# define KINETIS_FLASH_SIZE (512*1024) /* 256Kb */
@@ -431,6 +481,7 @@
# define KINETIS_NCRC 1 /* CRC */
#elif defined(CONFIG_ARCH_CHIP_MK60N256VML100)
+# undef KINETIS_K20 /* Not Kinetis K20 family */
# undef KINETIS_K40 /* Not Kinetics K40 family */
# define KINETIS_K60 1 /* Kinetis K60 family */
# define KINETIS_FLASH_SIZE (256*1024) /* 256Kb */
@@ -474,6 +525,7 @@
# define KINETIS_NCRC 1 /* CRC */
#elif defined(CONFIG_ARCH_CHIP_MK60X256VML100)
+# undef KINETIS_K20 /* Not Kinetis K20 family */
# undef KINETIS_K40 /* Not Kinetics K40 family */
# define KINETIS_K60 1 /* Kinetis K60 family */
# define KINETIS_FLASH_SIZE (256*1024) /* 256Kb */
@@ -517,6 +569,7 @@
# define KINETIS_NCRC 1 /* CRC */
#elif defined(CONFIG_ARCH_CHIP_MK60N512VML100)
+# undef KINETIS_K20 /* Not Kinetis K20 family */
# undef KINETIS_K40 /* Not Kinetics K40 family */
# define KINETIS_K60 1 /* Kinetis K60 family */
# define KINETIS_FLASH_SIZE (512*1024) /* 256Kb */
@@ -560,6 +613,7 @@
# define KINETIS_NCRC 1 /* CRC */
#elif defined(CONFIG_ARCH_CHIP_MK60N256VLQ100)
+# undef KINETIS_K20 /* Not Kinetis K20 family */
# undef KINETIS_K40 /* Not Kinetics K40 family */
# define KINETIS_K60 1 /* Kinetis K60 family */
# define KINETIS_FLASH_SIZE (256*1024) /* 256Kb */
@@ -603,6 +657,7 @@
# define KINETIS_NCRC 1 /* CRC */
#elif defined(CONFIG_ARCH_CHIP_MK60X256VLQ100)
+# undef KINETIS_K20 /* Not Kinetis K20 family */
# undef KINETIS_K40 /* Not Kinetics K40 family */
# define KINETIS_K60 1 /* Kinetis K60 family */
# define KINETIS_FLASH_SIZE (256*1024) /* 256Kb */
@@ -646,6 +701,7 @@
# define KINETIS_NCRC 1 /* CRC */
#elif defined(CONFIG_ARCH_CHIP_MK60N512VLQ100)
+# undef KINETIS_K20 /* Not Kinetis K20 family */
# undef KINETIS_K40 /* Not Kinetics K40 family */
# define KINETIS_K60 1 /* Kinetis K60 family */
# define KINETIS_FLASH_SIZE (512*1024) /* 512Kb */
@@ -689,6 +745,7 @@
# define KINETIS_NCRC 1 /* CRC */
#elif defined(CONFIG_ARCH_CHIP_MK60N256VMD100)
+# undef KINETIS_K20 /* Not Kinetis K20 family */
# undef KINETIS_K40 /* Not Kinetics K40 family */
# define KINETIS_K60 1 /* Kinetis K60 family */
# define KINETIS_FLASH_SIZE (256*1024) /* 256Kb */
@@ -732,6 +789,7 @@
# define KINETIS_NCRC 1 /* CRC */
#elif defined(CONFIG_ARCH_CHIP_MK60X256VMD100)
+# undef KINETIS_K20 /* Not Kinetis K20 family */
# undef KINETIS_K40 /* Not Kinetics K40 family */
# define KINETIS_K60 1 /* Kinetis K60 family */
# define KINETIS_FLASH_SIZE (256*1024) /* 256Kb */
@@ -775,6 +833,7 @@
# define KINETIS_NCRC 1 /* CRC */
#elif defined(CONFIG_ARCH_CHIP_MK60N512VMD100)
+# undef KINETIS_K20 /* Not Kinetis K20 family */
# undef KINETIS_K40 /* Not Kinetics K40 family */
# define KINETIS_K60 1 /* Kinetis K60 family */
# define KINETIS_FLASH_SIZE (512*1024) /* 512Kb */
diff --git a/nuttx/arch/arm/include/kinetis/irq.h b/nuttx/arch/arm/include/kinetis/irq.h
index 7d72fbd18..eaa5d3b1b 100644
--- a/nuttx/arch/arm/include/kinetis/irq.h
+++ b/nuttx/arch/arm/include/kinetis/irq.h
@@ -77,13 +77,92 @@
#define KINETIS_IRQ_EXTINT (16)
+/* K20 Family ***********************************************************************
+ *
+ * The interrupt vectors for the following parts is defined in Freescale document
+ * K20P64M72SF1RM
+ */
+
+#if defined(CONFIG_ARCH_CHIP_MK20DX256VLH7)
+# define KINETIS_IRQ_DMACH0 (16) /* Vector 16: DMA channel 0 transfer complete */
+# define KINETIS_IRQ_DMACH1 (17) /* Vector 17: DMA channel 1 transfer complete */
+# define KINETIS_IRQ_DMACH2 (18) /* Vector 18: DMA channel 2 transfer complete */
+# define KINETIS_IRQ_DMACH3 (19) /* Vector 19: DMA channel 3 transfer complete */
+# define KINETIS_IRQ_DMACH4 (20) /* Vector 20: DMA channel 4 transfer complete */
+# define KINETIS_IRQ_DMACH5 (21) /* Vector 21: DMA channel 5 transfer complete */
+# define KINETIS_IRQ_DMACH6 (22) /* Vector 22: DMA channel 6 transfer complete */
+# define KINETIS_IRQ_DMACH7 (23) /* Vector 23: DMA channel 7 transfer complete */
+# define KINETIS_IRQ_DMACH8 (24) /* Vector 24: DMA channel 8 transfer complete */
+# define KINETIS_IRQ_DMACH9 (25) /* Vector 25: DMA channel 9 transfer complete */
+# define KINETIS_IRQ_DMACH10 (26) /* Vector 26: DMA channel 10 transfer complete */
+# define KINETIS_IRQ_DMACH11 (27) /* Vector 27: DMA channel 11 transfer complete */
+# define KINETIS_IRQ_DMACH12 (28) /* Vector 28: DMA channel 12 transfer complete */
+# define KINETIS_IRQ_DMACH13 (29) /* Vector 29: DMA channel 13 transfer complete */
+# define KINETIS_IRQ_DMACH14 (30) /* Vector 30: DMA channel 14 transfer complete */
+# define KINETIS_IRQ_DMACH15 (31) /* Vector 31: DMA channel 15 transfer complete */
+# define KINETIS_IRQ_DMAERR (32) /* Vector 32: DMA error interrupt channels 0-15 */
+# define KINETIS_IRQ_FLASHCC (34) /* Vector 34: Flash memory command complete */
+# define KINETIS_IRQ_FLASHRC (35) /* Vector 35: Flash memory read collision */
+# define KINETIS_IRQ_SMCLVD (36) /* Vector 36: Mode Controller low-voltage
+ * detect, low-voltage warning */
+# define KINETIS_IRQ_LLWU (37) /* Vector 37: LLWU Normal Low Leakage Wakeup */
+# define KINETIS_IRQ_WDOG (38) /* Vector 38: Watchdog */
+# define KINETIS_IRQ_I2C0 (40) /* Vector 40: I2C0 */
+# define KINETIS_IRQ_I2C1 (41) /* Vector 41: I2C1 */
+# define KINETIS_IRQ_SPI0 (42) /* Vector 42: SPI0 all sources */
+# define KINETIS_IRQ_SPI1 (43) /* Vector 43: SPI1 all sources */
+# define KINETIS_IRQ_CAN0MB (45) /* Vector 45: CAN0 OR'ed Message buffer (0-15) */
+# define KINETIS_IRQ_CAN0BO (46) /* Vector 46: CAN0 Bus Off */
+# define KINETIS_IRQ_CAN0ERR (47) /* Vector 47: CAN0 Error */
+# define KINETIS_IRQ_CAN0TW (48) /* Vector 48: CAN0 Transmit Warning */
+# define KINETIS_IRQ_CAN0RW (49) /* Vector 49: CAN0 Receive Warning */
+# define KINETIS_IRQ_CAN0WU (50) /* Vector 50: CAN0 Wake UP */
+//TODO UART0_LON
+# define KINETIS_IRQ_UART0S (61) /* Vector 61: UART0 status */
+# define KINETIS_IRQ_UART0E (62) /* Vector 62: UART0 error */
+# define KINETIS_IRQ_UART1S (63) /* Vector 63: UART1 status */
+# define KINETIS_IRQ_UART1E (64) /* Vector 64: UART1 error */
+# define KINETIS_IRQ_UART2S (65) /* Vector 65: UART2 status */
+# define KINETIS_IRQ_UART2E (66) /* Vector 66: UART2 error */
+# define KINETIS_IRQ_ADC0 (73) /* Vector 73: ADC0 */
+# define KINETIS_IRQ_ADC1 (74) /* Vector 74: ADC1 */
+# define KINETIS_IRQ_CMP0 (75) /* Vector 75: CMP0 */
+# define KINETIS_IRQ_CMP1 (76) /* Vector 76: CMP1 */
+# define KINETIS_IRQ_CMP2 (77) /* Vector 77: CMP2 */
+# define KINETIS_IRQ_FTM0 (78) /* Vector 78: FTM0 all sources */
+# define KINETIS_IRQ_FTM1 (79) /* Vector 79: FTM1 all sources */
+# define KINETIS_IRQ_FTM2 (80) /* Vector 80: FTM2 all sources */
+# define KINETIS_IRQ_CMT (81) /* Vector 81: CMT */
+# define KINETIS_IRQ_RTC (82) /* Vector 82: RTC alarm interrupt */
+//TODO RTC_SECOND
+# define KINETIS_IRQ_PITCH0 (84) /* Vector 84: PIT channel 0 */
+# define KINETIS_IRQ_PITCH1 (85) /* Vector 85: PIT channel 1 */
+# define KINETIS_IRQ_PITCH2 (86) /* Vector 86: PIT channel 2 */
+# define KINETIS_IRQ_PITCH3 (87) /* Vector 87: PIT channel 3 */
+# define KINETIS_IRQ_PDB (88) /* Vector 88: PDB */
+# define KINETIS_IRQ_USBOTG (89) /* Vector 88: USB OTG */
+# define KINETIS_IRQ_USBCD (90) /* Vector 90: USB charger detect */
+# define KINETIS_IRQ_DAC0 (97) /* Vector 97: DAC0 */
+# define KINETIS_IRQ_TSI (99) /* Vector 97: TSI all sources */
+# define KINETIS_IRQ_MCG (100) /* Vector 100: MCG */
+# define KINETIS_IRQ_LPT (101) /* Vector 101: Low power timer */
+# define KINETIS_IRQ_PORTA (103) /* Vector 103: Pin detect port A */
+# define KINETIS_IRQ_PORTB (104) /* Vector 104: Pin detect port B */
+# define KINETIS_IRQ_PORTC (105) /* Vector 105: Pin detect port C */
+# define KINETIS_IRQ_PORTD (106) /* Vector 106: Pin detect port D */
+# define KINETIS_IRQ_PORTE (107) /* Vector 107: Pin detect port E */
+# define KINETIS_IRQ_SWI (110) /* Vector 110: Software interrupt */
+
+# define NR_VECTORS (111) /* 111 vectors */
+# define NR_IRQS (111) /* 94 interrupts but 111 IRQ numbers */
+
/* K40 Family ***********************************************************************
*
* The interrupt vectors for the following parts is defined in Freescale document
* K40P144M100SF2RM
*/
-#if defined(CONFIG_ARCH_CHIP_MK40X128VLQ100) || defined(CONFIG_ARCH_CHIP_MK40X128VMD100) || \
+#elif defined(CONFIG_ARCH_CHIP_MK40X128VLQ100) || defined(CONFIG_ARCH_CHIP_MK40X128VMD100) || \
defined(CONFIG_ARCH_CHIP_MK40X256VLQ100) || defined(CONFIG_ARCH_CHIP_MK40X256VMD100) || \
defined(CONFIG_ARCH_CHIP_MK40N512VLQ100) || defined(CONFIG_ARCH_CHIP_MK40N512VMD100)
diff --git a/nuttx/arch/arm/src/kinetis/Kconfig b/nuttx/arch/arm/src/kinetis/Kconfig
index bdca8c68b..e485c57d4 100644
--- a/nuttx/arch/arm/src/kinetis/Kconfig
+++ b/nuttx/arch/arm/src/kinetis/Kconfig
@@ -10,6 +10,10 @@ choice
default ARCH_CHIP_MK60N512VMD100
depends on ARCH_CHIP_KINETIS
+config ARCH_CHIP_MK20DX256VLH7
+ bool "MK20DX256VLH7"
+ select ARCH_FAMILY_K20
+
config ARCH_CHIP_MK40N512VLQ100
bool "MK40N512VLQ100"
select ARCH_FAMILY_K40
@@ -62,6 +66,10 @@ endchoice
# Chip families
+config ARCH_FAMILY_K20
+ bool
+ default n
+
config ARCH_FAMILY_K40
bool
default n
diff --git a/nuttx/arch/arm/src/kinetis/kinetis_clockconfig.c b/nuttx/arch/arm/src/kinetis/kinetis_clockconfig.c
index ad6e42884..8d383523a 100644
--- a/nuttx/arch/arm/src/kinetis/kinetis_clockconfig.c
+++ b/nuttx/arch/arm/src/kinetis/kinetis_clockconfig.c
@@ -343,7 +343,7 @@ void kinetis_clockconfig(void)
*
****************************************************************************/
-void __ramfunc__
+void __ramfunc__ __attribute__ ((noinline))
kinesis_setdividers(uint32_t div1, uint32_t div2, uint32_t div3, uint32_t div4)
{
uint32_t regval;
diff --git a/nuttx/arch/arm/src/kinetis/kinetis_k20pinmux.h b/nuttx/arch/arm/src/kinetis/kinetis_k20pinmux.h
new file mode 100644
index 000000000..e5592ce6a
--- /dev/null
+++ b/nuttx/arch/arm/src/kinetis/kinetis_k20pinmux.h
@@ -0,0 +1,80 @@
+/********************************************************************************************
+ * arch/arm/src/kinetis/kinetis_k40pinmux.h
+ *
+ * Copyright (C) 2011 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 __ARCH_ARM_SRC_KINETIS_KINETIS_K40PINMUX_H
+#define __ARCH_ARM_SRC_KINETIS_KINETIS_K40PINMUX_H
+
+/********************************************************************************************
+ * Included Files
+ ********************************************************************************************/
+
+#include <nuttx/config.h>
+
+#include "chip.h"
+
+/********************************************************************************************
+ * Pre-processor Definitions
+ ********************************************************************************************/
+/* Reference: Paragraph 10.3.1, p 207, of FreeScale document K20P64M72SF1RM
+ *
+ * In most cases, there are alternative configurations for various pins. Those alternative
+ * pins are labeled with a suffix like _1, _2, etc. in order to distinguish them. Logic in
+ * the board.h file must select the correct pin configuration for the board by defining a pin
+ * configuration (with no suffix) that maps to the correct alternative.
+ */
+
+#if defined(CONFIG_ARCH_CHIP_MK20DX256VLH7)
+
+/* Pin configurations are deferred to board configuration */
+
+#else
+ /* The pin muxing for other K20 parts is defined in other documents */
+
+# error "No pin multiplexing for this Kinetis K20 part"
+#endif
+
+/********************************************************************************************
+ * Public Types
+ ********************************************************************************************/
+
+/********************************************************************************************
+ * Public Data
+ ********************************************************************************************/
+
+/********************************************************************************************
+ * Public Functions
+ ********************************************************************************************/
+
+#endif /* __ARCH_ARM_SRC_KINETIS_KINETIS_K40PINMUX_H */
diff --git a/nuttx/arch/arm/src/kinetis/kinetis_memorymap.h b/nuttx/arch/arm/src/kinetis/kinetis_memorymap.h
index 7253717bd..a143e9c95 100644
--- a/nuttx/arch/arm/src/kinetis/kinetis_memorymap.h
+++ b/nuttx/arch/arm/src/kinetis/kinetis_memorymap.h
@@ -49,13 +49,129 @@
************************************************************************************/
/* Memory Map ***********************************************************************/
+/* K20 Family
+ *
+ * The memory map for the following parts is defined in Freescale document
+ * K20P64M72SF1RM
+ */
+
+#if defined(CONFIG_ARCH_CHIP_MK20DX256VLH7)
+
+# define KINETIS_FLASH_BASE 0x00000000 /* –0x0fffffff Program flash and read-
+ * only data (Includes exception
+ * vectors in first 1024 bytes) */
+# if !defined(KINETIS_FLEXMEM_SIZE)
+# define KINETIS_FLEXNVM_BASE 0x10000000 /* –0x13ffffff FlexNVM */
+# define KINETIS_FLEXRAM_BASE 0x14000000 /* –0x17ffffff FlexRAM */
+# endif
+ /* 0x18000000 * –0x1bffffff Reserved */
+# define KINETIS_SRAML_BASE 0x1C000000 /* –0x1fffffff SRAM_L: Lower SRAM
+ * (ICODE/DCODE) */
+# define KINETIS_SRAMU_BASE 0x20000000 /* –0x200fffff SRAM_U: Upper SRAM bitband
+ * region */
+ /* 0x20100000 * –0x21ffffff Reserved */
+# define KINETIS_SALIAS_BASE 0x22000000 /* –0x23ffffff Aliased to SRAM_U bitband */
+ /* 0x24000000 * –0x3fffffff Reserved */
+# define KINETIS_BRIDGE0_BASE 0x40000000 /* –0x4007ffff Bitband region for peripheral
+ * bridge 0 (AIPS-Lite0) */
+# define KINETIS_BRIDGE1_BASE 0x40080000 /* –0x400fffff Bitband region for peripheral
+ * bridge 1 (AIPS-Lite1) */
+# define KINETIS_GPIOBB_BASE 0x400ff000 /* –0x400fffff Bitband region for general
+ * purpose input/output (GPIO) */
+ /* 0x40100000 * –0x41ffffff Reserved */
+# define KINETIS_PALIAS_BASE 0x42000000 /* –0x43ffffff Aliased to peripheral bridge
+ * (AIPS-Lite) and general purpose
+ * input/output (GPIO) bitband */
+ /* 0x44000000 * –0xdfffffff Reserved */
+# define KINETIS_PERIPH_BASE 0xe0000000 /* –0xe00fffff Private peripherals */
+ /* 0xe0100000 * –0xffffffff Reserved */
+
+/* Peripheral Bridge 0 Memory Map ***************************************************/
+
+# define KINETIS_AIPS0_BASE 0x40000000 /* Peripheral bridge 0 (AIPS-Lite 0) */
+# define KINETIS_XBAR_BASE 0x40004000 /* Crossbar switch */
+# define KINETIS_DMAC_BASE 0x40008000 /* DMA controller */
+# define KINETIS_DMADESC_BASE 0x40009000 /* DMA controller transfer control descriptors */
+# define KINETIS_FMC_BASE 0x4001f000 /* Flash memory controller */
+# define KINETIS_FTFL_BASE 0x40020000 /* Flash memory */
+# define KINETIS_DMAMUX0_BASE 0x40021000 /* DMA channel mutiplexer 0 */
+# define KINETIS_CAN0_BASE 0x40024000 /* FlexCAN 0 */
+# define KINETIS_SPI0_BASE 0x4002c000 /* SPI 0 */
+# define KINETIS_SPI1_BASE 0x4002d000 /* SPI 1 */
+# define KINETIS_I2S0_BASE 0x4002f000 /* I2S 0 */
+# define KINETIS_CRC_BASE 0x40032000 /* CRC */
+# define KINETIS_USBDCD_BASE 0x40035000 /* USB DCD */
+# define KINETIS_PDB0_BASE 0x40036000 /* Programmable delay block */
+# define KINETIS_PIT_BASE 0x40037000 /* Periodic interrupt timers (PIT) */
+# define KINETIS_FTM0_BASE 0x40038000 /* FlexTimer 0 */
+# define KINETIS_FTM1_BASE 0x40039000 /* FlexTimer 1 */
+# define KINETIS_ADC0_BASE 0x4003b000 /* Analog-to-digital converter (ADC) 0 */
+# define KINETIS_RTC_BASE 0x4003d000 /* Real time clock */
+# define KINETIS_VBATR_BASE 0x4003e000 /* VBAT register file */
+# define KINETIS_LPTMR_BASE 0x40040000 /* Low power timer */
+# define KINETIS_SYSR_BASE 0x40041000 /* System register file */
+# define KINETIS_TSI0_BASE 0x40045000 /* Touch sense interface */
+# define KINETIS_SIMLP_BASE 0x40047000 /* SIM low-power logic */
+# define KINETIS_SIM_BASE 0x40048000 /* System integration module (SIM) */
+# define KINETIS_PORT_BASE(n) (0x40049000 + ((n) << 12))
+# define KINETIS_PORTA_BASE 0x40049000 /* Port A multiplexing control */
+# define KINETIS_PORTB_BASE 0x4004a000 /* Port B multiplexing control */
+# define KINETIS_PORTC_BASE 0x4004b000 /* Port C multiplexing control */
+# define KINETIS_PORTD_BASE 0x4004c000 /* Port D multiplexing control */
+# define KINETIS_PORTE_BASE 0x4004d000 /* Port E multiplexing control */
+# define KINETIS_WDOG_BASE 0x40052000 /* Software watchdog */
+# define KINETIS_EWM_BASE 0x40061000 /* External watchdog */
+# define KINETIS_CMT_BASE 0x40062000 /* Carrier modulator timer (CMT) */
+# define KINETIS_MCG_BASE 0x40064000 /* Multi-purpose Clock Generator (MCG) */
+# define KINETIS_OSC_BASE 0x40065000 /* System oscillator (OSC) */
+# define KINETIS_I2C0_BASE 0x40066000 /* I2C 0 */
+# define KINETIS_I2C1_BASE 0x40067000 /* I2C 1 */
+# define KINETIS_UART0_BASE 0x4006a000 /* UART0 */
+# define KINETIS_UART1_BASE 0x4006b000 /* UART1 */
+# define KINETIS_UART2_BASE 0x4006c000 /* UART2 */
+# define KINETIS_USB0_BASE 0x40072000 /* USB OTG FS/LS */
+# define KINETIS_CMP_BASE 0x40073000 /* Analog comparator (CMP) / 6-bit digital-to-analog converter (DAC) */
+# define KINETIS_VREF_BASE 0x40074000 /* Voltage reference (VREF) */
+# define KINETIS_LLWU_BASE 0x4007c000 /* Low-leakage wakeup unit (LLWU) */
+# define KINETIS_PMC_BASE 0x4007d000 /* Power management controller (PMC) */
+# define KINETIS_SMC_BASE 0x4007e000 /* System Mode controller (SMC) */
+
+/* Peripheral Bridge 1 Memory Map ***************************************************/
+
+# define KINETIS_AIPS1_BASE 0x40080000 /* Peripheral bridge 1 (AIPS-Lite 1) */
+# define KINETIS_FTM2_BASE 0x400b8000 /* FlexTimer 2 */
+# define KINETIS_ADC1_BASE 0x400bb000 /* Analog-to-digital converter (ADC) 1 */
+# define KINETIS_DAC0_BASE 0x400cc000 /* 12-bit digital-to-analog converter (DAC) 0 */
+
+# define KINETIS_XBARSS_BASE 0x400ff000 /* Not an AIPS-Lite slot. The 32-bit general
+ * purpose input/output module that shares the
+ * crossbar switch slave port with the AIPS-Lite
+ * is accessed at this address. */
+# define KINETIS_GPIO_BASE(n) (0x400ff000 + ((n) << 6))
+# define KINETIS_GPIOA_BASE 0x400ff000 /* GPIO PORTA registers */
+# define KINETIS_GPIOB_BASE 0x400ff040 /* GPIO PORTB registers */
+# define KINETIS_GPIOC_BASE 0x400ff080 /* GPIO PORTC registers */
+# define KINETIS_GPIOD_BASE 0x400ff0c0 /* GPIO PORTD registers */
+# define KINETIS_GPIOE_BASE 0x400ff100 /* GPIO PORTE registers */
+
+/* Private Peripheral Bus (PPB) Memory Map ******************************************/
+
+# define KINETIS_ITM_BASE 0xe0000000 /* Instrumentation Trace Macrocell (ITM) */
+# define KINETIS_DWT_BASE 0xe0001000 /* Data Watchpoint and Trace (DWT) */
+# define KINETIS_FPB_BASE 0xe0002000 /* Flash Patch and Breakpoint (FPB) */
+# define KINETIS_SCS_BASE 0xe000e000 /* System Control Space (SCS) (for NVIC) */
+# define KINETIS_TPIU_BASE 0xe0040000 /* Trace Port Interface Unit (TPIU) */
+# define KINETIS_MCM_BASE 0xe0080000 /* Miscellaneous Control Module (including ETB Almost Full) */
+# define KINETIS_ROMTAB_BASE 0xe00ff000 /* ROM Table - allows auto-detection of debug components */
+
+/* Memory Map ***********************************************************************/
/* K40 Family
*
* The memory map for the following parts is defined in Freescale document
* K40P144M100SF2RM
*/
-#if defined(CONFIG_ARCH_CHIP_MK40X128VLQ100) || defined(CONFIG_ARCH_CHIP_MK40X128VMD100) || \
+#elif defined(CONFIG_ARCH_CHIP_MK40X128VLQ100) || defined(CONFIG_ARCH_CHIP_MK40X128VMD100) || \
defined(CONFIG_ARCH_CHIP_MK40X256VLQ100) || defined(CONFIG_ARCH_CHIP_MK40X256VMD100) || \
defined(CONFIG_ARCH_CHIP_MK40N512VLQ100) || defined(CONFIG_ARCH_CHIP_MK40N512VMD100)
diff --git a/nuttx/arch/arm/src/kinetis/kinetis_pinmux.h b/nuttx/arch/arm/src/kinetis/kinetis_pinmux.h
index 9c791539f..4359728b6 100644
--- a/nuttx/arch/arm/src/kinetis/kinetis_pinmux.h
+++ b/nuttx/arch/arm/src/kinetis/kinetis_pinmux.h
@@ -48,7 +48,9 @@
* by the logic in chip.h.
*/
-#if defined(KINETIS_K40)
+#if defined(KINETIS_K20)
+# include "kinetis_k20pinmux.h"
+#elif defined(KINETIS_K40)
# include "kinetis_k40pinmux.h"
#elif defined(KINETIS_K60)
# include "kinetis_k60pinmux.h"
diff --git a/nuttx/arch/arm/src/kinetis/kinetis_vectors.S b/nuttx/arch/arm/src/kinetis/kinetis_vectors.S
index 220c64053..fcf5f2886 100644
--- a/nuttx/arch/arm/src/kinetis/kinetis_vectors.S
+++ b/nuttx/arch/arm/src/kinetis/kinetis_vectors.S
@@ -125,13 +125,116 @@ kinetis_vectors:
.word kinetis_systick /* Vector 15: System tick */
/* External Interrupts **************************************************************************/
+/* K20 Family ***********************************************************************************
+ *
+ * The interrupt vectors for the following parts is defined in Freescale document
+ * K20P64M72SF1RM
+ */
+
+#if defined(CONFIG_ARCH_CHIP_MK20DX256VLH7)
+ .word kinetis_dmach0 /* Vector 16: DMA channel 0 transfer complete */
+ .word kinetis_dmach1 /* Vector 17: DMA channel 1 transfer complete */
+ .word kinetis_dmach2 /* Vector 18: DMA channel 2 transfer complete */
+ .word kinetis_dmach3 /* Vector 19: DMA channel 3 transfer complete */
+ .word kinetis_dmach4 /* Vector 20: DMA channel 4 transfer complete */
+ .word kinetis_dmach5 /* Vector 21: DMA channel 5 transfer complete */
+ .word kinetis_dmach6 /* Vector 22: DMA channel 6 transfer complete */
+ .word kinetis_dmach7 /* Vector 23: DMA channel 7 transfer complete */
+ .word kinetis_dmach8 /* Vector 24: DMA channel 8 transfer complete */
+ .word kinetis_dmach9 /* Vector 25: DMA channel 9 transfer complete */
+ .word kinetis_dmach10 /* Vector 26: DMA channel 10 transfer complete */
+ .word kinetis_dmach11 /* Vector 27: DMA channel 11 transfer complete */
+ .word kinetis_dmach12 /* Vector 28: DMA channel 12 transfer complete */
+ .word kinetis_dmach13 /* Vector 29: DMA channel 13 transfer complete */
+ .word kinetis_dmach14 /* Vector 30: DMA channel 14 transfer complete */
+ .word kinetis_dmach15 /* Vector 31: DMA channel 15 transfer complete */
+ .word kinetis_dmaerr /* Vector 32: DMA error interrupt channels 0-15 */
+ .word kinetis_reserved /* Vector 33: Reserved */
+ .word kinetis_flashcc /* Vector 34: Flash memory command complete */
+ .word kinetis_flashrc /* Vector 35: Flash memory read collision */
+ .word kinetis_smclvd /* Vector 36: Mode Controller low-voltage detect, low-voltage warning */
+ .word kinetis_llwu /* Vector 37: LLWU Normal Low Leakage Wakeup */
+ .word kinetis_wdog /* Vector 38: Watchdog */
+ .word kinetis_reserved /* Vector 39: Reserved */
+ .word kinetis_i2c0 /* Vector 40: I2C0 */
+ .word kinetis_i2c1 /* Vector 41: I2C1 */
+ .word kinetis_spi0 /* Vector 42: SPI0 all sources */
+ .word kinetis_spi1 /* Vector 43: SPI1 all sources */
+ .word kinetis_reserved /* Vector 44: Reserved */
+ .word kinetis_can0mb /* Vector 45: CAN0 OR'ed Message buffer (0-15) */
+ .word kinetis_can0bo /* Vector 46: CAN0 Bus Off */
+ .word kinetis_can0err /* Vector 47: CAN0 Error */
+ .word kinetis_can0tw /* Vector 48: CAN0 Transmit Warning */
+ .word kinetis_can0rw /* Vector 49: CAN0 Receive Warning */
+ .word kinetis_can0wu /* Vector 50: CAN0 Wake UP */
+ .word kinetis_reserved /* Vector 51: Reserved */
+ .word kinetis_reserved /* Vector 52: Reserved */
+ .word kinetis_reserved /* Vector 53: Reserved */
+ .word kinetis_reserved /* Vector 54: Reserved */
+ .word kinetis_reserved /* Vector 55: Reserved */
+ .word kinetis_reserved /* Vector 56: Reserved */
+ .word kinetis_reserved /* Vector 57: Reserved */
+ .word kinetis_reserved /* Vector 58: Reserved */
+ .word kinetis_reserved /* Vector 59: Reserved */
+ .word kinetis_reserved /* Vector 60: Reserved */
+ .word kinetis_uart0s /* Vector 61: UART0 status */
+ .word kinetis_uart0e /* Vector 62: UART0 error */
+ .word kinetis_uart1s /* Vector 63: UART1 status */
+ .word kinetis_uart1e /* Vector 64: UART1 error */
+ .word kinetis_uart2s /* Vector 65: UART2 status */
+ .word kinetis_uart2e /* Vector 66: UART2 error */
+ .word kinetis_reserved /* Vector 67: Reserved */
+ .word kinetis_reserved /* Vector 68: Reserved */
+ .word kinetis_reserved /* Vector 69: Reserved */
+ .word kinetis_reserved /* Vector 70: Reserved */
+ .word kinetis_reserved /* Vector 71: Reserved */
+ .word kinetis_reserved /* Vector 72: Reserved */
+ .word kinetis_adc0 /* Vector 73: ADC0 */
+ .word kinetis_adc1 /* Vector 74: ADC1 */
+ .word kinetis_cmp0 /* Vector 75: CMP0 */
+ .word kinetis_cmp1 /* Vector 76: CMP1 */
+ .word kinetis_cmp2 /* Vector 77: CMP2 */
+ .word kinetis_ftm0 /* Vector 78: FTM0 all sources */
+ .word kinetis_ftm1 /* Vector 79: FTM1 all sources */
+ .word kinetis_ftm2 /* Vector 80: FTM2 all sources */
+ .word kinetis_cmt /* Vector 81: CMT */
+ .word kinetis_rtc /* Vector 82: RTC alarm interrupt */
+ .word kinetis_reserved /* Vector 83: Reserved */
+ .word kinetis_pitch0 /* Vector 84: PIT channel 0 */
+ .word kinetis_pitch1 /* Vector 85: PIT channel 1 */
+ .word kinetis_pitch2 /* Vector 86: PIT channel 2 */
+ .word kinetis_pitch3 /* Vector 87: PIT channel 3 */
+ .word kinetis_pdb /* Vector 88: PDB */
+ .word kinetis_usbotg /* Vector 88: USB OTG */
+ .word kinetis_usbcd /* Vector 90: USB charger detect */
+ .word kinetis_reserved /* Vector 91: Reserved */
+ .word kinetis_reserved /* Vector 92: Reserved */
+ .word kinetis_reserved /* Vector 93: Reserved */
+ .word kinetis_reserved /* Vector 94: Reserved */
+ .word kinetis_reserved /* Vector 95: Reserved */
+ .word kinetis_reserved /* Vector 96: Reserved */
+ .word kinetis_dac0 /* Vector 97: DAC0 */
+ .word kinetis_reserved /* Vector 98: Reserved */
+ .word kinetis_tsi /* Vector 99: TSI all sources */
+ .word kinetis_mcg /* Vector 100: MCG */
+ .word kinetis_lpt /* Vector 101: Low power timer */
+ .word kinetis_reserved /* Vector 102: Reserved */
+ .word kinetis_porta /* Vector 103: Pin detect port A */
+ .word kinetis_portb /* Vector 104: Pin detect port B */
+ .word kinetis_portc /* Vector 105: Pin detect port C */
+ .word kinetis_portd /* Vector 106: Pin detect port D */
+ .word kinetis_porte /* Vector 107: Pin detect port E */
+ .word kinetis_reserved /* Vector 108: Reserved */
+ .word kinetis_reserved /* Vector 109: Reserved */
+ .word kinetis_swi /* Vector 110: Software interrupt */
+
/* K40 Family ***********************************************************************************
*
* The interrupt vectors for the following parts is defined in Freescale document
* K40P144M100SF2RM
*/
-#if defined(CONFIG_ARCH_CHIP_MK40X128VLQ100) || defined(CONFIG_ARCH_CHIP_MK40X128VMD100) || \
+#elif defined(CONFIG_ARCH_CHIP_MK40X128VLQ100) || defined(CONFIG_ARCH_CHIP_MK40X128VMD100) || \
defined(CONFIG_ARCH_CHIP_MK40X256VLQ100) || defined(CONFIG_ARCH_CHIP_MK40X256VMD100) || \
defined(CONFIG_ARCH_CHIP_MK40N512VLQ100) || defined(CONFIG_ARCH_CHIP_MK40N512VMD100)
@@ -375,10 +478,84 @@ handlers:
/* K40 Family ***********************************************************************************
*
* The interrupt vectors for the following parts is defined in Freescale document
+ * K20P64M72SF1RM
+ */
+
+#if defined(CONFIG_ARCH_CHIP_MK20DX256VLH7)
+
+ HANDLER kinetis_dmach0, KINETIS_IRQ_DMACH0 /* Vector 16: DMA channel 0 transfer complete */
+ HANDLER kinetis_dmach1, KINETIS_IRQ_DMACH1 /* Vector 17: DMA channel 1 transfer complete */
+ HANDLER kinetis_dmach2, KINETIS_IRQ_DMACH2 /* Vector 18: DMA channel 2 transfer complete */
+ HANDLER kinetis_dmach3, KINETIS_IRQ_DMACH3 /* Vector 19: DMA channel 3 transfer complete */
+ HANDLER kinetis_dmach4, KINETIS_IRQ_DMACH4 /* Vector 20: DMA channel 4 transfer complete */
+ HANDLER kinetis_dmach5, KINETIS_IRQ_DMACH5 /* Vector 21: DMA channel 5 transfer complete */
+ HANDLER kinetis_dmach6, KINETIS_IRQ_DMACH6 /* Vector 22: DMA channel 6 transfer complete */
+ HANDLER kinetis_dmach7, KINETIS_IRQ_DMACH7 /* Vector 23: DMA channel 7 transfer complete */
+ HANDLER kinetis_dmach8, KINETIS_IRQ_DMACH8 /* Vector 24: DMA channel 8 transfer complete */
+ HANDLER kinetis_dmach9, KINETIS_IRQ_DMACH9 /* Vector 25: DMA channel 9 transfer complete */
+ HANDLER kinetis_dmach10, KINETIS_IRQ_DMACH10 /* Vector 26: DMA channel 10 transfer complete */
+ HANDLER kinetis_dmach11, KINETIS_IRQ_DMACH11 /* Vector 27: DMA channel 11 transfer complete */
+ HANDLER kinetis_dmach12, KINETIS_IRQ_DMACH12 /* Vector 28: DMA channel 12 transfer complete */
+ HANDLER kinetis_dmach13, KINETIS_IRQ_DMACH13 /* Vector 29: DMA channel 13 transfer complete */
+ HANDLER kinetis_dmach14, KINETIS_IRQ_DMACH14 /* Vector 30: DMA channel 14 transfer complete */
+ HANDLER kinetis_dmach15, KINETIS_IRQ_DMACH15 /* Vector 31: DMA channel 15 transfer complete */
+ HANDLER kinetis_dmaerr, KINETIS_IRQ_DMAERR /* Vector 32: DMA error interrupt channels 0-15 */
+ HANDLER kinetis_flashcc, KINETIS_IRQ_FLASHCC /* Vector 34: Flash memory command complete */
+ HANDLER kinetis_flashrc, KINETIS_IRQ_FLASHRC /* Vector 35: Flash memory read collision */
+ HANDLER kinetis_smclvd, KINETIS_IRQ_SMCLVD /* Vector 36: Mode Controller low-voltage detect, low-voltage warning */
+ HANDLER kinetis_llwu, KINETIS_IRQ_LLWU /* Vector 37: LLWU Normal Low Leakage Wakeup */
+ HANDLER kinetis_wdog, KINETIS_IRQ_WDOG /* Vector 38: Watchdog */
+ HANDLER kinetis_i2c0, KINETIS_IRQ_I2C0 /* Vector 40: I2C0 */
+ HANDLER kinetis_i2c1, KINETIS_IRQ_I2C1 /* Vector 41: I2C1 */
+ HANDLER kinetis_spi0, KINETIS_IRQ_SPI0 /* Vector 42: SPI0 all sources */
+ HANDLER kinetis_spi1, KINETIS_IRQ_SPI1 /* Vector 43: SPI1 all sources */
+ HANDLER kinetis_can0mb, KINETIS_IRQ_CAN0MB /* Vector 45: CAN0 OR'ed Message buffer (0-15) */
+ HANDLER kinetis_can0bo, KINETIS_IRQ_CAN0BO /* Vector 46: CAN0 Bus Off */
+ HANDLER kinetis_can0err, KINETIS_IRQ_CAN0ERR /* Vector 47: CAN0 Error */
+ HANDLER kinetis_can0tw, KINETIS_IRQ_CAN0TW /* Vector 48: CAN0 Transmit Warning */
+ HANDLER kinetis_can0rw, KINETIS_IRQ_CAN0RW /* Vector 49: CAN0 Receive Warning */
+ HANDLER kinetis_can0wu, KINETIS_IRQ_CAN0WU /* Vector 50: CAN0 Wake UP */
+ HANDLER kinetis_uart0s, KINETIS_IRQ_UART0S /* Vector 61: UART0 status */
+ HANDLER kinetis_uart0e, KINETIS_IRQ_UART0E /* Vector 62: UART0 error */
+ HANDLER kinetis_uart1s, KINETIS_IRQ_UART1S /* Vector 63: UART1 status */
+ HANDLER kinetis_uart1e, KINETIS_IRQ_UART1E /* Vector 64: UART1 error */
+ HANDLER kinetis_uart2s, KINETIS_IRQ_UART2S /* Vector 65: UART2 status */
+ HANDLER kinetis_uart2e, KINETIS_IRQ_UART2E /* Vector 66: UART2 error */
+ HANDLER kinetis_adc0, KINETIS_IRQ_ADC0 /* Vector 73: ADC0 */
+ HANDLER kinetis_adc1, KINETIS_IRQ_ADC1 /* Vector 74: ADC1 */
+ HANDLER kinetis_cmp0, KINETIS_IRQ_CMP0 /* Vector 75: CMP0 */
+ HANDLER kinetis_cmp1, KINETIS_IRQ_CMP1 /* Vector 76: CMP1 */
+ HANDLER kinetis_cmp2, KINETIS_IRQ_CMP2 /* Vector 77: CMP2 */
+ HANDLER kinetis_ftm0, KINETIS_IRQ_FTM0 /* Vector 78: FTM0 all sources */
+ HANDLER kinetis_ftm1, KINETIS_IRQ_FTM1 /* Vector 79: FTM1 all sources */
+ HANDLER kinetis_ftm2, KINETIS_IRQ_FTM2 /* Vector 80: FTM2 all sources */
+ HANDLER kinetis_cmt, KINETIS_IRQ_CMT /* Vector 81: CMT */
+ HANDLER kinetis_rtc, KINETIS_IRQ_RTC /* Vector 82: RTC alarm interrupt */
+ HANDLER kinetis_pitch0, KINETIS_IRQ_PITCH0 /* Vector 84: PIT channel 0 */
+ HANDLER kinetis_pitch1, KINETIS_IRQ_PITCH1 /* Vector 85: PIT channel 1 */
+ HANDLER kinetis_pitch2, KINETIS_IRQ_PITCH2 /* Vector 86: PIT channel 2 */
+ HANDLER kinetis_pitch3, KINETIS_IRQ_PITCH3 /* Vector 87: PIT channel 3 */
+ HANDLER kinetis_pdb, KINETIS_IRQ_PDB /* Vector 88: PDB */
+ HANDLER kinetis_usbotg, KINETIS_IRQ_USBOTG /* Vector 88: USB OTG */
+ HANDLER kinetis_usbcd, KINETIS_IRQ_USBCD /* Vector 90: USB charger detect */
+ HANDLER kinetis_dac0, KINETIS_IRQ_DAC0 /* Vector 97: DAC0 */
+ HANDLER kinetis_tsi, KINETIS_IRQ_TSI /* Vector 97: TSI all sources */
+ HANDLER kinetis_mcg, KINETIS_IRQ_MCG /* Vector 100: MCG */
+ HANDLER kinetis_lpt, KINETIS_IRQ_LPT /* Vector 101: Low power timer */
+ HANDLER kinetis_porta, KINETIS_IRQ_PORTA /* Vector 103: Pin detect port A */
+ HANDLER kinetis_portb, KINETIS_IRQ_PORTB /* Vector 104: Pin detect port B */
+ HANDLER kinetis_portc, KINETIS_IRQ_PORTC /* Vector 105: Pin detect port C */
+ HANDLER kinetis_portd, KINETIS_IRQ_PORTD /* Vector 106: Pin detect port D */
+ HANDLER kinetis_porte, KINETIS_IRQ_PORTE /* Vector 107: Pin detect port E */
+ HANDLER kinetis_swi, KINETIS_IRQ_SWI /* Vector 110: Software interrupt */
+
+/* K40 Family ***********************************************************************************
+ *
+ * The interrupt vectors for the following parts is defined in Freescale document
* K40P144M100SF2RM
*/
-#if defined(CONFIG_ARCH_CHIP_MK40X128VLQ100) || defined(CONFIG_ARCH_CHIP_MK40X128VMD100) || \
+#elif defined(CONFIG_ARCH_CHIP_MK40X128VLQ100) || defined(CONFIG_ARCH_CHIP_MK40X128VMD100) || \
defined(CONFIG_ARCH_CHIP_MK40X256VLQ100) || defined(CONFIG_ARCH_CHIP_MK40X256VMD100) || \
defined(CONFIG_ARCH_CHIP_MK40N512VLQ100) || defined(CONFIG_ARCH_CHIP_MK40N512VMD100)
diff --git a/nuttx/configs/Kconfig b/nuttx/configs/Kconfig
index b5b03b8f5..f06c40d34 100644
--- a/nuttx/configs/Kconfig
+++ b/nuttx/configs/Kconfig
@@ -7,7 +7,7 @@ choice
prompt "Select target board"
default ARCH_BOARD_CUSTOM
---help---
- Select the board hosting the architure. You must first select the
+ Select the board hosting the architecture. You must first select the
exact MCU part number, then the boards supporting that part will
be available for selection. Use ARCH_BOARD_CUSTOM to create a new
board configuration.
@@ -20,6 +20,14 @@ config ARCH_BOARD_AMBER
on the Atmel AVR ATMega128 MCU. There is not much there yet and what is
there is untested due to tool-related issues.
+config ARCH_BOARD_ARDUINO_DUE
+ bool "Arduino Due"
+ depends on ARCH_CHIP_ATSAM3X8E
+ select ARCH_HAVE_LEDS
+ ---help---
+ This options selects the Arduino DUE board featuring the Atmel
+ ATSAM3X8E MCU running at 84 MHz.
+
config ARCH_BOARD_AVR32DEV1
bool "Atmel AVR32DEV1 board"
depends on ARCH_CHIP_AT32UC3B0256
@@ -48,16 +56,27 @@ config ARCH_BOARD_C5471EVM
config ARCH_BOARD_CLOUDCTRL
bool "Darcy's CloudController stm32f10x board"
depends on ARCH_CHIP_STM32F107VC
+ select ARCH_HAVE_LEDS
+ select ARCH_HAVE_BUTTONS
+ select ARCH_HAVE_IRQBUTTONS
---help---
- Small network relay development board. Based on the Shenzhou IV development
+ Small network relay development board. Based on the Shenzhou IV development
board design.
+config ARCH_BOARD_COMPALE86
+ bool "Compal e86 phone"
+ depends on ARCH_CHIP_CALYPSO
+ ---help---
+ This configuration enables board support for Compal e86 phone.
+ This port derives from the Compal E88 port and was provided by Craig
+ Comstock.
+
config ARCH_BOARD_COMPALE88
bool "Compal e88 phone"
depends on ARCH_CHIP_CALYPSO
---help---
- These directories contain the board support for compal e88 and e99 phones.
- These ports are based on patches contributed by Denis Carikli for both the
+ This configuration enables board support for compal e88 phone.
+ This ports is based on patches contributed by Denis Carikli for both the
compal e99 and e88. The patches were made by Alan Carvalho de Assis and
Denis Carikli using the Stefan Richter's Osmocom-bb patches.
@@ -65,8 +84,8 @@ config ARCH_BOARD_COMPALE99
bool "Compal e99 phone"
depends on ARCH_CHIP_CALYPSO
---help---
- These directories contain the board support for compal e88 and e99 phones.
- These ports are based on patches contributed by Denis Carikli for both the
+ This configuration enables board support for compal e88 and e99 phones.
+ This port is based on patches contributed by Denis Carikli for both the
compal e99 and e88. The patches were made by Alan Carvalho de Assis and
Denis Carikli using the Stefan Richter's Osmocom-bb patches.
@@ -80,6 +99,16 @@ config ARCH_BOARD_DEMOS92S12NEC64
port uses the m9s12x GCC toolchain. STATUS: (Still) under development; it
is code complete but has not yet been verified.
+config ARCH_BOARD_DK_TM4C129X
+ bool "Tiva DK-TM4C129x Connected Development Kit"
+ depends on ARCH_CHIP_TM4C129XNC
+ select ARCH_HAVE_LEDS
+ select ARCH_HAVE_BUTTONS
+ select ARCH_HAVE_IRQBUTTONS
+ ---help---
+ Tiva DK-TM4C129x Connected Development Kit featuring the
+ TM4C129XNCZAD MCU.
+
config ARCH_BOARD_EA3131
bool "Embedded Artists EA3131 Development board"
depends on ARCH_CHIP_LPC3131
@@ -110,6 +139,22 @@ config ARCH_BOARD_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.
+config ARCH_BOARD_EFM32G8XXSTK
+ bool "EFM32 Gecko Starter Kit"
+ depends on ARCH_CHIP_EFM32G890F128
+ select ARCH_HAVE_LEDS
+ select ARCH_HAVE_BUTTONS
+ ---help---
+ 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"
depends on ARCH_CHIP_LM3S9B96
@@ -137,6 +182,18 @@ config ARCH_BOARD_EZ80F910200ZCO
development kit, eZ80F091 part, and the Zilog ZDS-II Windows command line
tools. The development environment is Cygwin under WinXP.
+config ARCH_BOARD_FIRE_STM32
+ bool "M3 Wildfire STM32 board"
+ depends on ARCH_CHIP_STM32F103VE
+ select ARCH_HAVE_LEDS
+ select ARCH_HAVE_BUTTONS
+ select ARCH_HAVE_IRQBUTTONS
+ ---help---
+ Support for the M3 Wildfire STM32 board. This board is based on the
+ STM32F103VET6 chip. See http://firestm32.taobao.com . Version 2
+ and 3 of the boards are supported but only version 2 has been
+ tested.
+
config ARCH_BOARD_FREEDOM_KL25Z
bool "Freescale Freedom KL25Z"
depends on ARCH_CHIP_MKL25Z128
@@ -145,9 +202,17 @@ config ARCH_BOARD_FREEDOM_KL25Z
This is the configuration for the Freescale Freedom KL25Z board. This
board has the K25Z120LE3AN chip with a built-in SDA debugger.
+config ARCH_BOARD_FREEDOM_KL26Z
+ bool "Freescale Freedom KL26Z"
+ depends on ARCH_CHIP_MKL26Z128
+ select ARCH_HAVE_LEDS
+ ---help---
+ This is the configuration for the Freescale Freedom KL26Z board. This
+ board has the K26Z128VLH4 chip with a built-in SDA debugger.
+
config ARCH_BOARD_HYMINI_STM32V
bool "HY-Mini STM32v board"
- depends on ARCH_CHIP_STM32F103VCT6
+ depends on ARCH_CHIP_STM32F103VC
select ARCH_HAVE_LEDS
select ARCH_HAVE_BUTTONS
select ARCH_HAVE_IRQBUTTONS
@@ -222,16 +287,18 @@ config ARCH_BOARD_LPC4330_XPLORER
select ARCH_HAVE_BUTTONS
select ARCH_HAVE_IRQBUTTONS
---help---
- NXG Technologoies LPC4330 Xplorer board. This board is based on the
+ NXG Technologies LPC4330 Xplorer board. This board is based on the
LPC4330FET100. The Code Red toolchain is used by default.
-config ARCH_BOARD_M68332EVB
- bool "Motoroloa M68332EVB"
- depends on ARCH_M68332
+config ARCH_BOARD_LPC4357_EVB
+ bool "NXP LPC4357-EVB"
+ depends on ARCH_CHIP_LPC4357FET256
+ select ARCH_HAVE_LEDS
+ select ARCH_HAVE_BUTTONS
+ select ARCH_HAVE_IRQBUTTONS
---help---
- This is a work in progress for the venerable m68322evb board from
- Motorola. This OS is also built with the arm-nuttx-elf toolchain. STATUS:
- This port was never completed.
+ NXP Technologies LPC4357 EVB board. This board is based on the
+ LPC4357FET256.
config ARCH_BOARD_MBED
bool "mbed LCP1768"
@@ -242,9 +309,9 @@ config ARCH_BOARD_MBED
that features the NXP LPC1768 microcontroller. This OS is also built
with the arm-nuttx-elf toolchain*. STATUS: Contributed.
-config ARCH_BOARD_MCU123
+config ARCH_BOARD_MCU123_LPC214X
bool "mcu123.com LPC2148 Development Board"
- depends on ARCH_CHIP_LPC2148
+ depends on ARCH_CHIP_LPC214X
select ARCH_HAVE_LEDS
---help---
This port is for the NXP LPC2148 as provided on the mcu123.com
@@ -259,6 +326,15 @@ config ARCH_BOARD_MICROPENDOUS3
be populated with either an AVR AT90USB646, 647, 1286, or 1287 MCU.
Support is configured for the AT90USB647.
+config ARCH_BOARD_MOTEINO_MEGA
+ bool "LowPowerLab MoteinoMEGA"
+ depends on ARCH_CHIP_ATMEGA1284P
+ select ARCH_HAVE_LEDS
+ ---help---
+ This is placeholder for the LowPowerLab MoteinoMEGA that is based
+ on the Atmel AVR ATMega1284P MCU. There is not much there yet and what is
+ there is untested due to tool-related issues.
+
config ARCH_BOARD_MX1ADS
bool "Motorola MX1ADS development board"
depends on ARCH_CHIP_IMX1
@@ -318,6 +394,18 @@ config ARCH_BOARD_LPC1766STK
This port uses the Olimex LPC1766-STK board and a GNU GCC toolchain* under
Linux or Cygwin. STATUS: Complete and mature.
+config ARCH_BOARD_MAPLE
+ bool "maple board"
+ depends on ARCH_CHIP_STM32F103RB || ARCH_CHIP_STM32F103CB
+ select ARCH_HAVE_LEDS
+ select ARCH_HAVE_BUTTONS
+ select ARCH_HAVE_IRQBUTTONS
+ ---help---
+ A configuration for the LeafLab's Maple and Maple Mini boards.
+ These boards are based on the STM32F103RBT6 chip for the standard
+ version and on the STM32F103CBT6 for the mini version
+ (See http://leaflabs.com/docs/hardware/maple.html)
+
config ARCH_BOARD_MIRTOO
bool "Mirtoo PIC32 Module from Dimitech"
depends on ARCH_CHIP_PIC32MX250F128D
@@ -331,10 +419,18 @@ config ARCH_BOARD_NUTINY_NUC120
depends on ARCH_CHIP_NUC120LE3AN
select ARCH_HAVE_LEDS
---help---
- This is the port to the Nuvoton NuTiny EVB 120 board. This board uses a
+ This is the port to the Nuvoton NuTiny EVB 120 board. This board uses a
Nuvoton NUC120 chip, specifically the NUC120LE3AN. See http://www.nuvoton.com/
for further information.
+config ARCH_BOARD_OLIMEX_EFM32G880F128_STK
+ bool "Olimex EFM32G880F128 STK"
+ depends on ARCH_CHIP_EFM32G880F128
+ select ARCH_HAVE_BUTTONS
+ select ARCH_HAVE_IRQBUTTONS
+ ---help---
+ This options selects the Olimex EFM32G880F128 STK
+
config ARCH_BOARD_OLIMEXLPC2378
bool "Olimex-lpc2378 board"
depends on ARCH_CHIP_LPC2378
@@ -344,6 +440,14 @@ config ARCH_BOARD_OLIMEXLPC2378
Linux or Cygwin. STATUS: ostest and NSH configurations available.
This port for the NXP LPC2378 was contributed by Rommel Marcelo.
+config ARCH_BOARD_OLIMEX_LPC_H3131
+ bool "Olimex LPC-H3131 Development board"
+ depends on ARCH_CHIP_LPC3131
+ select ARCH_HAVE_LEDS
+ ---help---
+ Olimex LPC-H3131 development board. This board is based on the the
+ NXP LPC3131 MCU.
+
config ARCH_BOARD_OLIMEX_STRP711
bool "Olimex STR-P711 board"
depends on ARCH_CHIP_STR71X
@@ -355,6 +459,18 @@ config ARCH_BOARD_OLIMEX_STRP711
further information. STATUS: Configurations for the basic OS test and NSH
are complete and verified.
+config ARCH_BOARD_OLIMEX_STM32H405
+ bool "Olimex STM32 H405 board"
+ depends on ARCH_CHIP_STM32F405RG
+ select ARCH_HAVE_LEDS
+ select ARCH_HAVE_BUTTONS
+ select ARCH_HAVE_IRQBUTTONS
+ ---help---
+ This port uses the Olimex STM32 H405 board and a GNU arm-nuttx-elf
+ toolchain* under Linux or Cygwin. See the http://www.olimex.com for
+ further information. This board features the STMicro STM32F405RGT6
+ MCU.
+
config ARCH_BOARD_OLIMEX_STM32P107
bool "Olimex STM32 P107 board"
depends on ARCH_CHIP_STM32F107VC
@@ -363,6 +479,17 @@ config ARCH_BOARD_OLIMEX_STM32P107
Linux or Cygwin. See the http://www.olimex.com for further information. This
board features the STMicro STM32F107VC MCU
+config ARCH_BOARD_OLIMEX_STM32P207
+ bool "Olimex STM32 P207 board"
+ depends on ARCH_CHIP_STM32F207ZE
+ select ARCH_HAVE_LEDS
+ select ARCH_HAVE_BUTTONS
+ select ARCH_HAVE_IRQBUTTONS
+ ---help---
+ This port uses the Olimex STM32 P207 board and a GNU arm-nuttx-elf toolchain* under
+ Linux or Cygwin. See the http://www.olimex.com for further information. This
+ board features the STMicro STM32F207ZE MCU
+
config ARCH_BOARD_OPEN1788
bool "Wave Share Open1788"
depends on ARCH_CHIP_LPC1788
@@ -412,8 +539,21 @@ config ARCH_BOARD_PCBLOGICPIC32MX
STATUS: Code complete but testing has been stalled due to tool related problems
(PICkit 2 does not work with the PIC32).
-config ARCH_BOARD_PIC32_STARTERKIT
- bool "Microchip PIC32 Ethernet Starter Kit (DM320004)"
+config ARCH_BOARD_PCDUINO_A10
+ bool "pcDuino A10"
+ depends on ARCH_CHIP_A10
+ select ARCH_HAVE_LEDS
+ select ARCH_HAVE_BUTTONS
+ select ARCH_HAVE_IRQBUTTONS
+ ---help---
+ This is the port of NuttX to the Allwinner A10-based pcDuino v1
+ board. See http://www.pcduino.com/ for information about pcDuino Lite, v1,
+ and v2. I have not compared these boards in detail, but I believe that
+ the differences are cosmetic. This port was developed on the v1 board,
+ but the others may be compatible.
+
+config ARCH_BOARD_PIC32MX_STARTERKIT
+ bool "Microchip PIC32MX Ethernet Starter Kit (DM320004)"
depends on ARCH_CHIP_PIC32MX795F512L
select ARCH_HAVE_LEDS
---help---
@@ -421,7 +561,7 @@ config ARCH_BOARD_PIC32_STARTERKIT
(DM320004) with the Multimedia Expansion Board (MEB, DM320005).
See www.microchip.com for further information.
-config ARCH_BOARD_PIC32_PIC32MX7MMB
+config ARCH_BOARD_PIC32MX7MMB
bool "Mikroelektronika PIC32MX7 MMB"
depends on ARCH_CHIP_PIC32MX795F512L
select ARCH_HAVE_LEDS
@@ -429,6 +569,22 @@ config ARCH_BOARD_PIC32_PIC32MX7MMB
This is the port NuttX to the Mikroelektronika PIC32MX7 Multimedia Board
(MMB). See http://www.mikroe.com/ for further information.
+config ARCH_BOARD_PIC32MZ_STARTERKIT
+ bool "Microchip PIC32MZ Ethernet Starter Kit ((DM320006)"
+ depends on ARCH_CHIP_PIC32MZ2048ECH || ARCH_CHIP_PIC32MZ2048ECM
+ select ARCH_HAVE_LEDS
+ ---help---
+ This is the port of NuttX to the Microchip PIC32MZ Embedded
+ Connectivity (EC) Starter Kit. There are two configurations of the
+ starter kit:
+
+ 1) The PIC32MZ Embedded Connectivity Starter Kit based on the
+ PIC32MZ2048ECH144-I/PH chip (DM320006), and
+ 2) The PIC32MZ Embedded Connectivity Starter Kit based on the
+ PIC32MZ2048ECM144-I/PH w/Crypto Engine (DM320006-C)
+
+ See www.microchip.com for further information.
+
config ARCH_BOARD_PIRELLI_DPL10
bool "Pirelli DPL10 phone"
depends on ARCH_CHIP_CALYPSO
@@ -436,13 +592,25 @@ config ARCH_BOARD_PIRELLI_DPL10
This directory contains the board support for Pirelli dpl10 phones. The
additions were made by Craig Comstock (with help form Alan Carvalho de Assis).
-config ARCH_BOARD_PJRC_87C52
- bool "PJRC 87C52 development system"
- depends on ARCH_CHIP_8052
+config ARCH_BOARD_NUCLEO_F401RE
+ bool "STM32F401 Nucleo F401RE"
+ depends on ARCH_CHIP_STM32F401RE
select ARCH_HAVE_LEDS
+ select ARCH_HAVE_BUTTONS
+ select ARCH_HAVE_IRQBUTTONS
---help---
- 8051 Microcontroller. This port uses the PJRC 87C52 development system
- and the SDCC toolchain. This port is not quite ready for prime time.
+ This is a minimal configuration that supports low-level test of the
+ Nucleo F401RE in the NuttX source tree.
+
+config ARCH_BOARD_NUCLEO_F411RE
+ bool "STM32F411 Nucleo F411RE"
+ depends on ARCH_CHIP_STM32F411RE
+ select ARCH_HAVE_LEDS
+ select ARCH_HAVE_BUTTONS
+ select ARCH_HAVE_IRQBUTTONS
+ ---help---
+ This is a minimal configuration that supports low-level test of the
+ Nucleo F411RE in the NuttX source tree.
config ARCH_BOARD_QEMU_I486
bool "Qemu i486 Mode"
@@ -464,15 +632,67 @@ config ARCH_BOARD_RGMP
See http://rgmp.sourceforge.net/wiki/index.php/Main_Page for further information
about RGMP.
+config ARCH_BOARD_SAMA5D3X_EK
+ bool "Atmel SAMA5D3x-EK development board"
+ depends on ARCH_CHIP_ATSAMA5D31 || ARCH_CHIP_ATSAMA5D33 || ARCH_CHIP_ATSAMA5D34 || ARCH_CHIP_ATSAMA5D35
+ select ARCH_HAVE_LEDS
+ select ARCH_HAVE_BUTTONS
+ select ARCH_HAVE_IRQBUTTONS
+ select ARCH_PHY_INTERRUPT if NETDEVICES
+ ---help---
+ The port of NuttX to the Atmel SAMA5D3x-EK development board (where x=1,3,4, or 5).
+
+config ARCH_BOARD_SAMA5D3_XPLAINED
+ bool "Atmel SAMA5D3 Xplained development board"
+ depends on ARCH_CHIP_ATSAMA5D36
+ select ARCH_HAVE_LEDS
+ select ARCH_HAVE_BUTTONS
+ select ARCH_HAVE_IRQBUTTONS
+ select ARCH_PHY_INTERRUPT if NETDEVICES
+ ---help---
+ The port of NuttX to the Atmel SAMA5D3 Xplained development board.
+
+config ARCH_BOARD_SAMA5D4_EK
+ bool "Atmel SAMA5D4-EK development board"
+ depends on ARCH_CHIP_ATSAMA5D44
+ select ARCH_HAVE_LEDS
+ select ARCH_HAVE_BUTTONS
+ select ARCH_HAVE_IRQBUTTONS
+ select ARCH_PHY_INTERRUPT if NETDEVICES
+ ---help---
+ The port of NuttX to the Atmel SAMA5D4-EK development board
+
+config ARCH_BOARD_SAMD20_XPLAINED
+ bool "Atmel SAMD20-Xplained Pro development board"
+ depends on ARCH_CHIP_SAMD20J18
+ select ARCH_HAVE_LEDS
+ select ARCH_HAVE_BUTTONS
+ select ARCH_HAVE_IRQBUTTONS
+ ---help---
+ The port of NuttX to the Atmel SAMD20-Xplained Pro development board.
+ This board features the ATSAMD20J18A MCU (Cortex-M0+ with 256KB of FLASH
+ and 32KB of SRAM).
+
config ARCH_BOARD_SAM3UEK
bool "Atmel SAM3U-EK development board"
- depends on ARCH_CHIP_AT91SAM3U4E
+ depends on ARCH_CHIP_ATSAM3U4E
select ARCH_HAVE_LEDS
select ARCH_HAVE_BUTTONS
select ARCH_HAVE_IRQBUTTONS
---help---
The port of NuttX to the Atmel SAM3U-EK development board.
+config ARCH_BOARD_SAM4EEK
+ bool "Atmel SAM4E-EK development board"
+ depends on ARCH_CHIP_ATSAM4E16E
+ select ARCH_HAVE_LEDS
+ select ARCH_HAVE_BUTTONS
+ select ARCH_HAVE_IRQBUTTONS
+ select ARCH_PHY_INTERRUPT if NETDEVICES
+ ---help---
+ The port of NuttX to the Atmel SAM4E-EK development board. This
+ board features the SAM4E16 MCU running at up to 120MHz.
+
config ARCH_BOARD_SAM4L_XPLAINED
bool "Atmel SAM4L-Xplained Pro development board"
depends on ARCH_CHIP_ATSAM4LC4C
@@ -482,6 +702,15 @@ config ARCH_BOARD_SAM4L_XPLAINED
---help---
The port of NuttX to the Atmel SAM4L-Xplained Pro development board.
+config ARCH_BOARD_SAM4S_XPLAINED_PRO
+ bool "Atmel SAM4S-Xplained Pro development board"
+ depends on ARCH_CHIP_ATSAM4SD32C
+ select ARCH_HAVE_LEDS
+ select ARCH_HAVE_BUTTONS
+ select ARCH_HAVE_IRQBUTTONS
+ ---help---
+ The port of NuttX to the Atmel SAM4S-Xplained Pro development board.
+
config ARCH_BOARD_SAM4S_XPLAINED
bool "Atmel SAM4S-Xplained development board"
depends on ARCH_CHIP_ATSAM4S16C
@@ -512,6 +741,17 @@ config ARCH_BOARD_SKP16C26
uses the GNU m32c toolchain. STATUS: The port is complete but untested
due to issues with compiler internal errors.
+config ARCH_BOARD_SPARK
+ bool "Spark Core"
+ depends on ARCH_CHIP_STM32F103CB
+ select ARCH_HAVE_LEDS
+ select ARCH_HAVE_BUTTONS
+ select ARCH_HAVE_IRQBUTTONS
+ ---help---
+ A configuration for the Spark Core from Spark Devices
+ (http://www.spark.io). This board features the STM32103CBT6
+ MCU from STMicro.
+
config ARCH_BOARD_STM32_TINY
bool "STM32-Tiny board"
depends on ARCH_CHIP_STM32F103C8
@@ -523,7 +763,7 @@ config ARCH_BOARD_STM32_TINY
config ARCH_BOARD_STM3210E_EVAL
bool "STMicro STM3210E-EVAL development board"
- depends on ARCH_CHIP_STM32F103ZET6
+ depends on ARCH_CHIP_STM32F103ZE
select ARCH_HAVE_LEDS
select ARCH_HAVE_BUTTONS
select ARCH_HAVE_IRQBUTTONS
@@ -553,15 +793,6 @@ config ARCH_BOARD_STM3240G_EVAL
microcontroller (ARM Cortex-M4 with FPU). This port uses a GNU Cortex-M4
toolchain (such as CodeSourcery).
-config ARCH_BOARD_STM32F100RC_GENERIC
- bool "STMicro STM32F100RC generic board"
- depends on ARCH_CHIP_STM32F100RC
- select ARCH_HAVE_LEDS
- select ARCH_HAVE_BUTTONS
- select ARCH_HAVE_IRQBUTTONS
- ---help---
- STMicro STM32F100RC generic board.
-
config ARCH_BOARD_STM32F3_DISCOVERY
bool "STMicro STM32F3-Discovery board"
depends on ARCH_CHIP_STM32F303VC
@@ -580,6 +811,15 @@ config ARCH_BOARD_STM32F4_DISCOVERY
---help---
STMicro STM32F4-Discovery board based on the STMicro STM32F407VGT6 MCU.
+config ARCH_BOARD_STM32F429I_DISCO
+ bool "STMicro STM32F429I-Discovery board"
+ depends on ARCH_CHIP_STM32F429Z
+ select ARCH_HAVE_LEDS
+ select ARCH_HAVE_BUTTONS
+ select ARCH_HAVE_IRQBUTTONS
+ ---help---
+ STMicro STM32F429I-Discovery board based on the STMicro STM32F429ZIT6 MCU.
+
config ARCH_BOARD_STM32L_DISCOVERY
bool "STMicro STM32L-Discovery board"
depends on ARCH_CHIP_STM32L152RB
@@ -589,6 +829,15 @@ config ARCH_BOARD_STM32L_DISCOVERY
---help---
STMicro STM32L-Discovery board based on the STMicro STM32L152RB MCU.
+config ARCH_BOARD_STM32VL_DISCOVERY
+ bool "STMicro STM32VL-Discovery board"
+ depends on ARCH_CHIP_STM32F100RB
+ select ARCH_HAVE_LEDS
+ select ARCH_HAVE_BUTTONS
+ select ARCH_HAVE_IRQBUTTONS
+ ---help---
+ STMicro STM32VL-Discovery board based on the STMicro STM32F100RB MCU.
+
config ARCH_BOARD_MIKROE_STM32F4
bool "MikroElektronika Mikromedia for STM32F4 board"
depends on ARCH_CHIP_STM32F407VG
@@ -599,7 +848,6 @@ config ARCH_BOARD_MIKROE_STM32F4
config ARCH_BOARD_SUREPIC32MX
bool "Sure PIC32MX boards"
depends on ARCH_CHIP_PIC32MX440F512H
- select ARCH_HAVE_LEDS
select ARCH_HAVE_BUTTONS
select ARCH_HAVE_IRQBUTTONS
---help---
@@ -618,6 +866,41 @@ config ARCH_BOARD_TEENSY
developed by http://pjrc.com/teensy/. The Teensy++ 2.0 is based
on an Atmel AT90USB1286 MCU.
+config ARCH_BOARD_TRIFLE
+ bool "Trifle flight controller based on PJRC Teensy 3.1 board"
+ depends on ARCH_CHIP_MK20DX256VLH7
+ select ARCH_HAVE_LEDS
+ ---help---
+ This is the port of NuttX to the PJRC Teensy 3.1 board. This board is
+ developed by http://pjrc.com/teensy31/.
+
+config ARCH_BOARD_TM4C123G_LAUNCHPAD
+ bool "Tiva TM4C123G LaunchPad"
+ depends on ARCH_CHIP_TM4C123GH6PMI
+ select ARCH_HAVE_LEDS
+ select ARCH_HAVE_BUTTONS
+ select ARCH_HAVE_IRQBUTTONS
+ ---help---
+ Tiva TM4C123G LaunchPad.
+
+config ARCH_BOARD_TM4C1294_LAUNCHPAD
+ bool "Tiva EK-TM4C1294XL LaunchPad"
+ depends on ARCH_CHIP_TM4C1294NC
+ select ARCH_HAVE_LEDS
+ select ARCH_HAVE_BUTTONS
+ ---help---
+ Tiva EK-TM4C1294XL LaunchPad.
+
+config ARCH_BOARD_CC3200_LAUNCHPAD
+ bool "Tiva CC3200 Launchpad"
+ depends on ARCH_CHIP_CC3200
+ select ARCH_HAVE_LEDS
+ select ARCH_HAVE_BUTTONS
+ select ARCH_HAVE_IRQBUTTONS
+ select TIVA_BOARD_EARLYINIT
+ ---help---
+ Tiva CC3200 Launchpad.
+
config ARCH_BOARD_TWR_K60N512
bool "FreeScale TWR-K60N512d evelopment board"
depends on ARCH_CHIP_MK60N512VMD100
@@ -645,13 +928,24 @@ config ARCH_BOARD_US7032EVB1
bool "Hitachi SH-1/US7032EVB1 board"
depends on ARCH_CHIP_SH7032
select ARCH_HAVE_LEDS
+ select ARCH_HAVE_BUTTONS
---help---
This is a port of the Hitachi SH-1 on the Hitachi SH-1/US7032EVB1 board.
STATUS: Work has just began on this port.
+config ARCH_BOARD_VIEWTOOL_STM32F107
+ bool "ViewTool STM32F103/F107"
+ depends on ARCH_CHIP_STM32F107VC || ARCH_CHIP_STM32F103VC
+ select ARCH_HAVE_LEDS
+ select ARCH_HAVE_BUTTONS
+ ---help---
+ This port uses the ViewTool STM32F103/F107 V1.2 board. This
+ board may be fitted with either: (1) STM32F107VCT6 or (2) STM32F103VCT6.
+ See http://www.viewtool.com/ for further information.
+
config ARCH_BOARD_VSN
bool "SOTEL NetClamps VSN sensor network platform"
- depends on ARCH_CHIP_STM32F103RET6
+ depends on ARCH_CHIP_STM32F103RE
select ARCH_HAVE_LEDS
select ARCH_HAVE_BUTTONS
---help---
@@ -708,7 +1002,7 @@ config ARCH_BOARD_Z8F64200100KIT
config ARCH_BOARD_ZP214XPA
bool "The0.net LPC2148 Development Board"
- depends on ARCH_CHIP_LPC2148
+ depends on ARCH_CHIP_LPC214X
---help---
This port is for the NXP LPC2148 as provided on the The0.net
ZPA213X/4XPA development board. Includes support for the
@@ -741,83 +1035,151 @@ config ARCH_BOARD_CUSTOM
endchoice
+if ARCH_BOARD_CUSTOM
+menu "Custom Board Configuration"
+
+config ARCH_BOARD_CUSTOM_DIR
+ string "Custom board directory"
+ depends on ARCH_BOARD_CUSTOM
+ ---help---
+ If the custom board configuration is selected, then it is necessary
+ to also tell the build system where it can find the board directory
+ for the custom board. This may be either a relative path from the
+ toplevel NuttX directory (like "configs/myboard") or an absolute path
+ to some location outside of the NuttX source tree (like
+ "~/projects/myboard").
+
+config BOARD_CUSTOM_LEDS
+ bool "Custom board LEDs"
+ default n
+ select ARCH_HAVE_LEDS
+ select ARCH_LEDS
+
+config BOARD_CUSTOM_BUTTONS
+ bool "Custom board buttons"
+ default n
+ select ARCH_HAVE_BUTTONS
+ select ARCH_BUTTONS
+
+config BOARD_CUSTOM_IRQBUTTONS
+ bool "Custom Board IRQ buttons"
+ default n
+ depends on BOARD_CUSTOM_BUTTONS
+ select ARCH_HAVE_IRQBUTTONS
+ select ARCH_IRQBUTTONS
+
+config BOARD_CUSTOM_INTERRUPT
+ bool "Custom board PHY interrupts"
+ default n
+ depends on NETDEVICES
+ select ARCH_PHY_INTERRUPT if NETDEVICES
+
+endmenu # Custom Board Configuration
+endif #ARCH_BOARD_CUSTOM
+
config ARCH_BOARD
string
- default "amber" if ARCH_BOARD_AMBER
- default "avr32dev1" if ARCH_BOARD_AVR32DEV1
- default "c5471evm" if ARCH_BOARD_C5471EVM
- default "compal_e88" if ARCH_BOARD_COMPALE88
- default "compal_e99" if ARCH_BOARD_COMPALE99
- default "demo9s12ne64" if ARCH_BOARD_DEMOS92S12NEC64
- default "ea3131" if ARCH_BOARD_EA3131
- default "ea3152" if ARCH_BOARD_EA3152
- default "eagle100" if ARCH_BOARD_EAGLE100
- default "ekk-lm3s9b96" if ARCH_BOARD_EKKLM3S9B96
- default "ez80f910200kitg" if ARCH_BOARD_EZ80F910200KITG
- default "ez80f910200zco" if ARCH_BOARD_EZ80F910200ZCO
- default "fire-stm32v2" if ARCH_BOARD_FIRE_STM32
- default "freedom-kl25z" if ARCH_BOARD_FREEDOM_KL25Z
- default "hymini-stm32v" if ARCH_BOARD_HYMINI_STM32V
- default "kwikstik-k40" if ARCH_BOARD_KWIKSTIK_K40
- default "lincoln60" if ARCH_BOARD_LINCOLN60
- default "lm3s6432-s2e" if ARCH_BOARD_LM3S6432S2E
- default "lm3s6965-ek" if ARCH_BOARD_LM3S6965EK
- default "lm3s8962-ek" if ARCH_BOARD_LM3S8962EK
- default "lm4f120-launchpad" if ARCH_BOARD_LM4F120_LAUNCHPAD
- default "lpc4330-xplorer" if ARCH_BOARD_LPC4330_XPLORER
- default "lpcxpresso-lpc1768" if ARCH_BOARD_LPCXPRESSO
- default "m68322evb" if ARCH_BOARD_M68332EVB
- default "mbed" if ARCH_BOARD_MBED
- default "mcu123-lpc214x" if ARCH_BOARD_MCU123
- default "micropendous3" if ARCH_BOARD_MICROPENDOUS3
- default "mirtoo" if ARCH_BOARD_MIRTOO
- default "mx1ads" if ARCH_BOARD_MX1ADS
- default "ne64badge" if ARCH_BOARD_NE64BADGE
- default "ntosd-dm320" if ARCH_BOARD_NTOSD_DM320
- default "nucleus2g" if ARCH_BOARD_NUCLEUS2G
- default "nutiny-nuc120" if ARCH_BOARD_NUTINY_NUC120
- default "olimex-lpc1766stk" if ARCH_BOARD_LPC1766STK
- default "olimex-lpc2378" if ARCH_BOARD_OLIMEXLPC2378
- default "olimex-stm32-p107" if ARCH_BOARD_OLIMEX_STM32P107
- default "olimex-strp711" if ARCH_BOARD_OLIMEX_STRP711
- default "open1788" if ARCH_BOARD_OPEN1788
- default "p112" if ARCH_BOARD_P112
- default "pcblogic-pic32mx" if ARCH_BOARD_PCBLOGICPIC32MX
- default "pic32-starterkit" if ARCH_BOARD_PIC32_STARTERKIT
- default "pic32mx7mmb" if ARCH_BOARD_PIC32_PIC32MX7MMB
- default "pirelli_dpl10" if ARCH_BOARD_PIRELLI_DPL10
- default "pjrc-8051" if ARCH_BOARD_PJRC_87C52
- default "qemu-i486" if ARCH_BOARD_QEMU_I486
- default "rgmp" if ARCH_BOARD_RGMP
- default "sam3u-ek" if ARCH_BOARD_SAM3UEK
- default "sam4l-xplained" if ARCH_BOARD_SAM4L_XPLAINED
- default "sam4s-xplained" if ARCH_BOARD_SAM4S_XPLAINED
- default "shenzhou" if ARCH_BOARD_SHENZHOU
- default "skp16c26" if ARCH_BOARD_SKP16C26
- default "stm32_tiny" if ARCH_BOARD_STM32_TINY
- default "stm3210e-eval" if ARCH_BOARD_STM3210E_EVAL
- default "stm3220g-eval" if ARCH_BOARD_STM3220G_EVAL
- default "stm3240g-eval" if ARCH_BOARD_STM3240G_EVAL
- default "stm32f100rc_generic" if ARCH_BOARD_STM32F100RC_GENERIC
- default "stm32f3discovery" if ARCH_BOARD_STM32F3_DISCOVERY
- default "stm32f4discovery" if ARCH_BOARD_STM32F4_DISCOVERY
- default "stm32ldiscovery" if ARCH_BOARD_STM32L_DISCOVERY
- default "mikroe-stm32f4" if ARCH_BOARD_MIKROE_STM32F4
- default "sure-pic32mx" if ARCH_BOARD_SUREPIC32MX
- default "teensy" if ARCH_BOARD_TEENSY
- default "twr-k60n512" if ARCH_BOARD_TWR_K60N512
- default "ubw32" if ARCH_BOARD_UBW32
- default "us7032evb1" if ARCH_BOARD_US7032EVB1
- default "vsn" if ARCH_BOARD_VSN
- default "xtrs" if ARCH_BOARD_XTRS
- default "z16f2800100zcog" if ARCH_BOARD_Z16F2800100ZCOG
- default "z80sim" if ARCH_BOARD_Z80SIM
- default "z8encore000zco" if ARCH_BOARD_Z8ENCORE000ZCO
- default "z8f64200100kit" if ARCH_BOARD_Z8F64200100KIT
- default "zp214xpa" if ARCH_BOARD_ZP214XPA
- default "zkit-arm-1769" if ARCH_BOARD_ZKITARM
- default "sim" if ARCH_BOARD_SIM
- default "" if ARCH_BOARD_CUSTOM
+ default "amber" if ARCH_BOARD_AMBER
+ default "arduino-due" if ARCH_BOARD_ARDUINO_DUE
+ default "avr32dev1" if ARCH_BOARD_AVR32DEV1
+ default "c5471evm" if ARCH_BOARD_C5471EVM
+ default "cloudctrl" if ARCH_BOARD_CLOUDCTRL
+ default "compal_e86" if ARCH_BOARD_COMPALE86
+ default "compal_e88" if ARCH_BOARD_COMPALE88
+ default "compal_e99" if ARCH_BOARD_COMPALE99
+ default "demo9s12ne64" if ARCH_BOARD_DEMOS92S12NEC64
+ default "dk-tm4c129x" if ARCH_BOARD_DK_TM4C129X
+ default "ea3131" if ARCH_BOARD_EA3131
+ 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
+ default "fire-stm32v2" if ARCH_BOARD_FIRE_STM32
+ default "freedom-kl25z" if ARCH_BOARD_FREEDOM_KL25Z
+ default "freedom-kl26z" if ARCH_BOARD_FREEDOM_KL26Z
+ default "hymini-stm32v" if ARCH_BOARD_HYMINI_STM32V
+ default "kwikstik-k40" if ARCH_BOARD_KWIKSTIK_K40
+ default "lincoln60" if ARCH_BOARD_LINCOLN60
+ default "lm3s6432-s2e" if ARCH_BOARD_LM3S6432S2E
+ default "lm3s6965-ek" if ARCH_BOARD_LM3S6965EK
+ default "lm3s8962-ek" if ARCH_BOARD_LM3S8962EK
+ default "lm4f120-launchpad" if ARCH_BOARD_LM4F120_LAUNCHPAD
+ default "lpc4330-xplorer" if ARCH_BOARD_LPC4330_XPLORER
+ default "lpc4357-evb" if ARCH_BOARD_LPC4357_EVB
+ default "lpcxpresso-lpc1768" if ARCH_BOARD_LPCXPRESSO
+ default "maple" if ARCH_BOARD_MAPLE
+ default "mbed" if ARCH_BOARD_MBED
+ default "mcu123-lpc214x" if ARCH_BOARD_MCU123_LPC214X
+ default "micropendous3" if ARCH_BOARD_MICROPENDOUS3
+ default "mirtoo" if ARCH_BOARD_MIRTOO
+ default "moteino-mega" if ARCH_BOARD_MOTEINO_MEGA
+ default "mx1ads" if ARCH_BOARD_MX1ADS
+ default "ne64badge" if ARCH_BOARD_NE64BADGE
+ default "ntosd-dm320" if ARCH_BOARD_NTOSD_DM320
+ default "nucleus2g" if ARCH_BOARD_NUCLEUS2G
+ default "nutiny-nuc120" if ARCH_BOARD_NUTINY_NUC120
+ default "olimex-efm32g880f128-stk" if ARCH_BOARD_OLIMEX_EFM32G880F128_STK
+ default "olimex-lpc1766stk" if ARCH_BOARD_LPC1766STK
+ default "olimex-lpc2378" if ARCH_BOARD_OLIMEXLPC2378
+ default "olimex-lpc-h3131" if ARCH_BOARD_OLIMEX_LPC_H3131
+ default "olimex-stm32-h405" if ARCH_BOARD_OLIMEX_STM32H405
+ default "olimex-stm32-p107" if ARCH_BOARD_OLIMEX_STM32P107
+ default "olimex-stm32-p207" if ARCH_BOARD_OLIMEX_STM32P207
+ default "olimex-strp711" if ARCH_BOARD_OLIMEX_STRP711
+ default "open1788" if ARCH_BOARD_OPEN1788
+ default "p112" if ARCH_BOARD_P112
+ default "pcblogic-pic32mx" if ARCH_BOARD_PCBLOGICPIC32MX
+ default "pcduino-a10" if ARCH_BOARD_PCDUINO_A10
+ default "pic32mx-starterkit" if ARCH_BOARD_PIC32MX_STARTERKIT
+ default "pic32mx7mmb" if ARCH_BOARD_PIC32MX7MMB
+ default "pic32mz-starterkit" if ARCH_BOARD_PIC32MZ_STARTERKIT
+ default "pirelli_dpl10" if ARCH_BOARD_PIRELLI_DPL10
+ default "nucleo-f4x1re" if ARCH_BOARD_NUCLEO_F401RE || ARCH_BOARD_NUCLEO_F411RE
+ default "qemu-i486" if ARCH_BOARD_QEMU_I486
+ default "rgmp" if ARCH_BOARD_RGMP
+ default "sama5d3x-ek" if ARCH_BOARD_SAMA5D3X_EK
+ default "sama5d3-xplained" if ARCH_BOARD_SAMA5D3_XPLAINED
+ default "sama5d4-ek" if ARCH_BOARD_SAMA5D4_EK
+ default "samd20-xplained" if ARCH_BOARD_SAMD20_XPLAINED
+ default "sam3u-ek" if ARCH_BOARD_SAM3UEK
+ default "sam4e-ek" if ARCH_BOARD_SAM4EEK
+ default "sam4l-xplained" if ARCH_BOARD_SAM4L_XPLAINED
+ default "sam4s-xplained" if ARCH_BOARD_SAM4S_XPLAINED
+ default "sam4s-xplained-pro" if ARCH_BOARD_SAM4S_XPLAINED_PRO
+ default "shenzhou" if ARCH_BOARD_SHENZHOU
+ default "skp16c26" if ARCH_BOARD_SKP16C26
+ default "spark" if ARCH_BOARD_SPARK
+ default "stm32_tiny" if ARCH_BOARD_STM32_TINY
+ default "stm3210e-eval" if ARCH_BOARD_STM3210E_EVAL
+ default "stm3220g-eval" if ARCH_BOARD_STM3220G_EVAL
+ default "stm3240g-eval" if ARCH_BOARD_STM3240G_EVAL
+ default "stm32f3discovery" if ARCH_BOARD_STM32F3_DISCOVERY
+ default "stm32f4discovery" if ARCH_BOARD_STM32F4_DISCOVERY
+ default "stm32f429i-disco" if ARCH_BOARD_STM32F429I_DISCO
+ default "stm32ldiscovery" if ARCH_BOARD_STM32L_DISCOVERY
+ default "stm32vldiscovery" if ARCH_BOARD_STM32VL_DISCOVERY
+ default "mikroe-stm32f4" if ARCH_BOARD_MIKROE_STM32F4
+ default "sure-pic32mx" if ARCH_BOARD_SUREPIC32MX
+ default "teensy" if ARCH_BOARD_TEENSY
+ default "tm4c123g-launchpad" if ARCH_BOARD_TM4C123G_LAUNCHPAD
+ default "tm4c1294-launchpad" if ARCH_BOARD_TM4C1294_LAUNCHPAD
+ default "cc3200-launchpad" if ARCH_BOARD_CC3200_LAUNCHPAD
+ default "twr-k60n512" if ARCH_BOARD_TWR_K60N512
+ default "ubw32" if ARCH_BOARD_UBW32
+ default "us7032evb1" if ARCH_BOARD_US7032EVB1
+ default "viewtool-stm32f107" if ARCH_BOARD_VIEWTOOL_STM32F107
+ default "vsn" if ARCH_BOARD_VSN
+ default "xtrs" if ARCH_BOARD_XTRS
+ default "z16f2800100zcog" if ARCH_BOARD_Z16F2800100ZCOG
+ default "z80sim" if ARCH_BOARD_Z80SIM
+ default "z8encore000zco" if ARCH_BOARD_Z8ENCORE000ZCO
+ default "z8f64200100kit" if ARCH_BOARD_Z8F64200100KIT
+ default "zp214xpa" if ARCH_BOARD_ZP214XPA
+ default "zkit-arm-1769" if ARCH_BOARD_ZKITARM
+ default "sim" if ARCH_BOARD_SIM
comment "Common Board Options"
@@ -877,12 +1239,21 @@ comment "Board-Specific Options"
if ARCH_BOARD_AMBER
source "configs/amber/Kconfig"
endif
+if ARCH_BOARD_ARDUINO_DUE
+source "configs/arduino-due/Kconfig"
+endif
if ARCH_BOARD_AVR32DEV1
source "configs/avr32dev1/Kconfig"
endif
if ARCH_BOARD_C5471EVM
source "configs/c5471evm/Kconfig"
endif
+if ARCH_BOARD_CLOUDCTRL
+source "configs/cloudctrl/Kconfig"
+endif
+if ARCH_BOARD_COMPALE86
+source "configs/compal_e86/Kconfig"
+endif
if ARCH_BOARD_COMPALE88
source "configs/compal_e88/Kconfig"
endif
@@ -892,6 +1263,9 @@ endif
if ARCH_BOARD_DEMOS92S12NEC64
source "configs/demo9s12ne64/Kconfig"
endif
+if ARCH_BOARD_DK_TM4C129X
+source "configs/dk-tm4c129x/Kconfig"
+endif
if ARCH_BOARD_EA3131
source "configs/ea3131/Kconfig"
endif
@@ -901,6 +1275,12 @@ endif
if ARCH_BOARD_EAGLE100
source "configs/eagle100/Kconfig"
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
@@ -913,6 +1293,12 @@ endif
if ARCH_BOARD_FIRE_STM32
source "configs/fire-stm32v2/Kconfig"
endif
+if ARCH_BOARD_FREEDOM_KL25Z
+source "configs/freedom-kl25z/Kconfig"
+endif
+if ARCH_BOARD_FREEDOM_KL26Z
+source "configs/freedom-kl26z/Kconfig"
+endif
if ARCH_BOARD_HYMINI_STM32V
source "configs/hymini-stm32v/Kconfig"
endif
@@ -937,16 +1323,19 @@ endif
if ARCH_BOARD_LPC4330_XPLORER
source "configs/lpc4330-xplorer/Kconfig"
endif
+if ARCH_BOARD_LPC4357_EVB
+source "configs/lpc4357-evb/Kconfig"
+endif
if ARCH_BOARD_LPCXPRESSO
source "configs/lpcxpresso-lpc1768/Kconfig"
endif
-if ARCH_BOARD_M68332EVB
-source "configs/m68332evb/Kconfig"
+if ARCH_BOARD_MAPLE
+source "configs/maple/Kconfig"
endif
if ARCH_BOARD_MBED
source "configs/mbed/Kconfig"
endif
-if ARCH_BOARD_MCU123
+if ARCH_BOARD_MCU123_LPC214X
source "configs/mcu123-lpc214x/Kconfig"
endif
if ARCH_BOARD_MICROPENDOUS3
@@ -958,6 +1347,9 @@ endif
if ARCH_BOARD_MIRTOO
source "configs/mirtoo/Kconfig"
endif
+if ARCH_BOARD_MOTEINO_MEGA
+source "configs/moteino-mega/Kconfig"
+endif
if ARCH_BOARD_MX1ADS
source "configs/mx1ads/Kconfig"
endif
@@ -973,15 +1365,27 @@ endif
if ARCH_BOARD_NUTINY_NUC120
source "configs/nutiny-nuc120/Kconfig"
endif
+if ARCH_BOARD_OLIMEX_EFM32G880F128_STK
+source "configs/olimex-efm32g880f128-stk/Kconfig"
+endif
if ARCH_BOARD_LPC1766STK
source "configs/olimex-lpc1766stk/Kconfig"
endif
if ARCH_BOARD_OLIMEXLPC2378
source "configs/olimex-lpc2378/Kconfig"
endif
+if ARCH_BOARD_OLIMEX_LPC_H3131
+source "configs/olimex-lpc-h3131/Kconfig"
+endif
+if ARCH_BOARD_OLIMEX_STM32H405
+source "configs/olimex-stm32-h405/Kconfig"
+endif
if ARCH_BOARD_OLIMEX_STM32P107
source "configs/olimex-stm32-p107/Kconfig"
endif
+if ARCH_BOARD_OLIMEX_STM32P207
+source "configs/olimex-stm32-p207/Kconfig"
+endif
if ARCH_BOARD_OLIMEX_STRP711
source "configs/olimex-strp711/Kconfig"
endif
@@ -991,17 +1395,23 @@ endif
if ARCH_BOARD_PCBLOGICPIC32MX
source "configs/pcblogic-pic32mx/Kconfig"
endif
-if ARCH_BOARD_PIC32_STARTERKIT
-source "configs/pic32-starterkit/Kconfig"
+if ARCH_BOARD_PCDUINO_A10
+source "configs/pcduino-a10/Kconfig"
+endif
+if ARCH_BOARD_PIC32MX_STARTERKIT
+source "configs/pic32mx-starterkit/Kconfig"
endif
-if ARCH_BOARD_PIC32_PIC32MX7MMB
+if ARCH_BOARD_PIC32MX7MMB
source "configs/pic32mx7mmb/Kconfig"
endif
+if ARCH_BOARD_PIC32MZ_STARTERKIT
+source "configs/pic32mz-starterkit/Kconfig"
+endif
if ARCH_BOARD_PIRELLI_DPL10
source "configs/pirelli_dpl10/Kconfig"
endif
-if ARCH_BOARD_PJRC_87C52
-source "configs/pjrc-8051/Kconfig"
+if ARCH_BOARD_NUCLEO_F401RE || ARCH_BOARD_NUCLEO_F411RE
+source "configs/nucleo-f4x1re/Kconfig"
endif
if ARCH_BOARD_QEMU_I486
source "configs/qemu-i486/Kconfig"
@@ -1009,21 +1419,42 @@ endif
if ARCH_BOARD_RGMP
source "configs/rgmp/Kconfig"
endif
+if ARCH_BOARD_SAMA5D3X_EK
+source "configs/sama5d3x-ek/Kconfig"
+endif
+if ARCH_BOARD_SAMA5D3_XPLAINED
+source "configs/sama5d3-xplained/Kconfig"
+endif
+if ARCH_BOARD_SAMA5D4_EK
+source "configs/sama5d4-ek/Kconfig"
+endif
+if ARCH_BOARD_SAMD20_XPLAINED
+source "configs/samd20-xplained/Kconfig"
+endif
if ARCH_BOARD_SAM3UEK
source "configs/sam3u-ek/Kconfig"
endif
+if ARCH_BOARD_SAM4EEK
+source "configs/sam4e-ek/Kconfig"
+endif
if ARCH_BOARD_SAM4L_XPLAINED
source "configs/sam4l-xplained/Kconfig"
endif
if ARCH_BOARD_SAM4S_XPLAINED
source "configs/sam4s-xplained/Kconfig"
endif
+if ARCH_BOARD_SAM4S_XPLAINED_PRO
+source "configs/sam4s-xplained-pro/Kconfig"
+endif
if ARCH_BOARD_SHENZHOU
source "configs/shenzhou/Kconfig"
endif
if ARCH_BOARD_SKP16C26
source "configs/skp16c26/Kconfig"
endif
+if ARCH_BOARD_SPARK
+source "configs/spark/Kconfig"
+endif
if ARCH_BOARD_STM32_TINY
source "configs/stm32_tiny/Kconfig"
endif
@@ -1036,21 +1467,33 @@ endif
if ARCH_BOARD_STM3240G_EVAL
source "configs/stm3240g-eval/Kconfig"
endif
-if ARCH_BOARD_STM32F100RC_GENERIC
-source "configs/stm32f100rc_generic/Kconfig"
-endif
if ARCH_BOARD_STM32F4_DISCOVERY
source "configs/stm32f4discovery/Kconfig"
endif
+if ARCH_BOARD_STM32F429I_DISCO
+source "configs/stm32f429i-disco/Kconfig"
+endif
if ARCH_BOARD_STM32L_DISCOVERY
source "configs/stm32ldiscovery/Kconfig"
endif
+if ARCH_BOARD_STM32VL_DISCOVERY
+source "configs/stm32vldiscovery/Kconfig"
+endif
if ARCH_BOARD_SUREPIC32MX
source "configs/sure-pic32mx/Kconfig"
endif
if ARCH_BOARD_TEENSY
source "configs/teensy/Kconfig"
endif
+if ARCH_BOARD_TM4C123G_LAUNCHPAD
+source "configs/tm4c123g-launchpad/Kconfig"
+endif
+if ARCH_BOARD_TM4C1294_LAUNCHPAD
+source "configs/tm4c1294-launchpad/Kconfig"
+endif
+if ARCH_BOARD_CC3200_LAUNCHPAD
+source "configs/cc3200-launchpad/Kconfig"
+endif
if ARCH_BOARD_TWR_K60N512
source "configs/twr-k60n512/Kconfig"
endif
@@ -1060,6 +1503,9 @@ endif
if ARCH_BOARD_US7032EVB1
source "configs/us7032evb1/Kconfig"
endif
+if ARCH_BOARD_VIEWTOOL_STM32F107
+source "configs/viewtool-stm32f107/Kconfig"
+endif
if ARCH_BOARD_VSN
source "configs/vsn/Kconfig"
endif