diff options
author | Jakob Odersky <jodersky@gmail.com> | 2015-01-13 16:23:31 +0100 |
---|---|---|
committer | Jakob Odersky <jodersky@gmail.com> | 2015-03-08 12:01:31 +0100 |
commit | 893c304e3c50c8b942b2dd36a275df2a00ab257f (patch) | |
tree | 35b287b71da7393868d3c74630e21c3cf2771761 | |
parent | 11afcdfee6a3961952dd92f02c1abaa4756b115f (diff) | |
download | nuttx-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.h | 61 | ||||
-rw-r--r-- | nuttx/arch/arm/include/kinetis/irq.h | 81 | ||||
-rw-r--r-- | nuttx/arch/arm/src/kinetis/Kconfig | 8 | ||||
-rw-r--r-- | nuttx/arch/arm/src/kinetis/kinetis_clockconfig.c | 2 | ||||
-rw-r--r-- | nuttx/arch/arm/src/kinetis/kinetis_k20pinmux.h | 80 | ||||
-rw-r--r-- | nuttx/arch/arm/src/kinetis/kinetis_memorymap.h | 118 | ||||
-rw-r--r-- | nuttx/arch/arm/src/kinetis/kinetis_pinmux.h | 4 | ||||
-rw-r--r-- | nuttx/arch/arm/src/kinetis/kinetis_vectors.S | 181 | ||||
-rw-r--r-- | nuttx/configs/Kconfig | 696 |
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 |