zephyr/ext/hal/ti/simplelink
Brett Witherspoon e8ac495660 soc: cc13x2_cc26x2: support setting CCFG values via Kconfig
Several customer configuration (CCFG) settings are useful for
development and deployment. This commit adds support for setting CCFG
values via Kconfig. It follows TI's recommendation of setting CCFG
values and then including the TI provided CCFG. This commit includes
support for enabling the ROM bootloader and additional settings can be
added as needed.

Signed-off-by: Brett Witherspoon <spoonb@cdspooner.com>
2019-05-30 17:15:53 -04:00
..
kernel/zephyr/dpl all: Update reserved function names 2019-03-11 13:48:42 -04:00
source/ti soc: cc13x2_cc26x2: support setting CCFG values via Kconfig 2019-05-30 17:15:53 -04:00
CMakeLists.txt ext: simplelink: Remove build warnings 2019-03-05 11:37:10 -05:00
Kconfig ext: simplelink: import HAL from TI CC13x2 / CC26x2 SDK 3.10.00.53 2019-05-04 09:13:43 -05:00
README ext: simplelink: modify CC13x2/CC26x2 CCFG to use appropriate sections 2019-05-04 09:13:43 -05:00

README

The SimpleLink SDKs provide peripheral driver and WiFi libraries
and hardware register access header files for the Texas Instruments
SimpleLink SoCs.

For an explanation of the SimpleLink family SDK directory structure, see:
http://dev.ti.com/tirex/content/simplelink_cc32xx_sdk_2_40_01_01/docs/simplelink_mcu_sdk/Users_Guide.html#directory-structure

1. CC13x2/26x2 SDK

The current version supported in Zephyr is the SimpleLink CC13x2 and CC26x2 SDK
3.10.00.53, downloaded from:

  http://www.ti.com/tool/simplelink-cc13x2-26x2-sdk

The driver library source is copied from the SDK, as follows:

  EXT_DIR=$ZEPHYR_BASE/ext/hal/ti/simplelink/source/ti
  pushd simplelink_cc13x2_26x2_sdk_3_10_00_53/source/ti
  find devices/cc13x2_cc26x2/{driverlib,inc,rf_patches} -depth -name '*.[c|h]' -print0 | cpio --null -pvdm $EXT_DIR
  find devices/cc13x2_cc26x2/startup_files -depth -name ccfg.c -print0 | cpio --null -pvd $EXT_DIR
  find $EXT_DIR/devices/cc13x2_cc26x2 -name '*.[c|h]' -exec dos2unix {} \;
  popd

The source file startup_files/ccfg.c has been modified to use the appropriate
sections when linking.

TI provides the driver library functions burned into ROM at the factory,
or updated via a service pack patch, thus saving application code space.

After setting CONFIG_HAS_CC13X2_CC26X2_SDK=y in Kconfig, most of the
peripheral driver library functions will be accessible from ROM.

2. CC32xx SDK

The current version supported in Zephyr is the SimpleLink CC32xx SDK
2.40.01.01, downloaded from:

	http://www.ti.com/tool/download/simplelink-cc32xx-sdk

Source files from select subdirectories are copied from the
source/ti/ subdirectory of the SDK installation, as follows:

	EXT_DIR=$ZEPHYR_BASE/ext/hal/ti/simplelink/source/ti
	find devices -not -path '*/\.*' -name '*.[c|h]' | \
		cpio -pdm $EXT_DIR
	find drivers -name '*.[c|h]' | \
		cpio -pdm $EXT_DIR
	find net -maxdepth 1 -name '*.[c|h]' | cpio -pdm $EXT_DIR
	cd $EXT_DIR
	find . -name '*.[c|h]' -exec chmod 664 {} \;

In addition, some files in the drivers/net/wifi/porting directory
may need to be updated: notably user.h, cc_pal.h, and CC3220SF_LAUNCHXL.c.

Note: TI provides the driver library functions burned into ROM at the factory,
or updated via a service pack patch, thus saving application code space.

Calling driverlib APIs prefixed by "MAP_" will vector to those functions
already existing in ROM.

After setting CONFIG_HAS_CC3220SDK=y in Kconfig, most of the
peripheral driver library functions will be accessible from ROM,
except for some functions in the following modules, which are
compiled in the Kbuild file:
- driverlib/pin.c
- driverlib/utils.c
- driverlib/prcm.c

Setting CONFIG_SIMPLELINK_HOST_DRIVER=y builds the SimpleLink Host
Driver, which communicates over dedicated SPI to the
network coprocessor.

2. MSP432 SDK

The current version supported in Zephyr is MSP432 SDK V1.50.00.12, downloaded
from:

        http://www.ti.com/tool/simplelink-msp432-sdk

Files in source/ti/devices/msp432p4xx/driverlib/ and inc/ are copied from
a Linux SDK installation (without modification).

TI provides the driver library functions burned into ROM at the factory,
or updated via a service pack patch, thus saving application code space.

Calling driverlib APIs prefixed by "MAP_" will vector to those functions
already existing in ROM.

After setting CONFIG_HAS_MSP432P4XXSDK=y in Kconfig, most of the
peripheral driver library functions will be accessible from ROM.