cc3200: Add support for the TI CC32xx SoC Series

Initial support is for the CC3200 SoC, comprising a network coprocessor
and Cortex-M4 MPU.

This leverages the CC3200 SDK driver peripheral library, installed
separately, or built from ext/hal/.

Jira: ZEP-1109

Change-Id: I508afc8596c165b309a4ec641c39abadc779eea3
Signed-off-by: Gil Pitney <gil.pitney@linaro.org>
This commit is contained in:
Gil Pitney 2016-10-25 16:49:35 -07:00 committed by Kumar Gala
commit 385c7be8af
13 changed files with 156 additions and 0 deletions

View file

@ -0,0 +1 @@
obj-y += $(SOC_SERIES)/

View file

@ -0,0 +1,15 @@
# Kconfig - Texas Instruments SimpleLink Family
#
config SOC_FAMILY_TISIMPLELINK
bool
# omit prompt to signify a "hidden" option
default n
if SOC_FAMILY_TISIMPLELINK
config SOC_FAMILY
string
default ti_simplelink
endif
source "arch/arm/soc/ti_simplelink/*/Kconfig.soc"

View file

@ -0,0 +1 @@
source "arch/arm/soc/ti_simplelink/*/Kconfig.defconfig.series"

View file

@ -0,0 +1,4 @@
# Kconfig - Texas Instruments SimpleLink Family
#
source "arch/arm/soc/ti_simplelink/*/Kconfig.series"

View file

@ -0,0 +1,32 @@
# Kconfig.defconfig.cc3200- TI SimpleLink CC3200 SoC
#
if SOC_CC3200
config SOC
string
default cc3200
config SYS_CLOCK_HW_CYCLES_PER_SEC
int
default 80000000
config SRAM_SIZE
default 240
config FLASH_SIZE
default 0
config CC3200SDK_LIBRARY
def_bool n
config CC3200SDK_INSTALL_PATH
default ""
config NUM_IRQS
int
# must be >= the highest interrupt number used
# This includes the NWP interrupt
default 179
endif # SOC_CC3200

View file

@ -0,0 +1,18 @@
# Kconfig.defconfig.series - TI SimpleLink Family
#
if SOC_SERIES_CC32XX
source "arch/arm/soc/ti_simplelink/cc32xx/Kconfig.defconfig.cc32*"
config SOC_SERIES
default cc32xx
config SRAM_BASE_ADDRESS
default 0x20004000
config NUM_IRQ_PRIO_BITS
int
default 3
endif # SOC_SERIES_CC32XX

View file

@ -0,0 +1,10 @@
# Kconfig.series - TI SimpleLink CC32xx
#
config SOC_SERIES_CC32XX
bool "TI SimpleLink Family"
select CPU_CORTEX_M
select CPU_CORTEX_M4
select SOC_FAMILY_TISIMPLELINK
help
Enable support for TI SimpleLink CC32xx

View file

@ -0,0 +1,13 @@
# Kconfig.soc - Texas Instruments CC3200
#
choice
prompt "TI SimpleLink MCU Selection"
depends on SOC_SERIES_CC32XX
config SOC_CC3200
bool "CC3200"
select CPU_HAS_FPU
select HAS_CC3200SDK
endchoice

View file

@ -0,0 +1 @@
obj-y += soc.o

View file

@ -0,0 +1,10 @@
CC3200 Board and Bootloader info taken from:
* http://www.ti.com.cn/cn/lit/ug/swru367c/swru367c.pdf
* http://www.ti.com/lit/ug/swru369c/swru369c.pdf
Notes:
* CC3200 has no integrated flash Memory.
* TI bootloader takes first 16Kb of the 256Kb SRAM, so app must start at
0x20004000. CC3200 Kconfig must set SRAM size to 240Kb or less, since
Zephyr computes TOP_OF_MEMORY (used for stack) based on SRAM_BASE_ADDRESS
+ SRAM_SIZE.

View file

@ -0,0 +1,3 @@
/* linker.ld - Linker command/script file */
#include <arch/arm/cortex_m/scripts/linker.ld>

View file

@ -0,0 +1,31 @@
/*
* Copyright (c) 2016, Texas Instruments Incorporated
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <nanokernel.h>
#include <device.h>
#include <init.h>
#include <soc.h>
static int ti_cc3200_init(struct device *arg)
{
ARG_UNUSED(arg);
PRCMCC3200MCUInit();
return 0;
}
SYS_INIT(ti_cc3200_init, PRIMARY, 0);

View file

@ -0,0 +1,17 @@
/*
* Copyright (c) 2016, Texas Instruments Incorporated
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <inc/hw_types.h>
#include <driverlib/prcm.h>