NOTICE: The Processors Wiki will End-of-Life on January 15, 2021. It is recommended to download any files or other content you may need that are hosted on processors.wiki.ti.com. The site is now set to read only.
PDK/BSP STW To PDK Migration Guide
Contents
Overview[edit]
This guide provides the detailed instructions required to migrate from Starterware/BSP to PDK package. PDK package combines the features provided by Starterware and BSP package and provides a unified package to demonstrate the capabilities of the peripherals on TDAx platforms for development and deployment along with demos, sample applications and UT's. Migration from STW/BSP to PDK doesn't require any API changes.
STW/BSP to PDK Changes[edit]
This section covers the changes user needs to be aware while moving from Starterware/BSP to PDK. In PDK all the generated libraries are placed under each component libs/ directory instead of binary/ folder.
Driver and Library changes[edit]
The following table shows the mapping of source code from STW/BSP to PDK
STW Module (Folder Name) | PDK |
---|---|
build | packages/ti/build |
drivers | csl (spread across different folders under soc and src, include top level csl_<ip>.h and cslr_<ip>.h file |
system_config | packages/ti/csl/arch and packages/ti/csl/soc |
security | packages/ti/boot/sbl_auto/security |
diagLib | packages/ti/diag |
ipclib | packages/ti/drv/ipc_lite |
safetylib | packages/ti/drv/fw_l3l4 |
bootloader | packages/ti/boot/sbl_auto |
norflashlib | packages/ti/boot/sbl_auto/norflash |
qspilib | packages/ti/boot/sbl_auto/qspiflash |
boards | packages/ti/drv/stw_lld/boards |
devices | packages/ti/drv/stw_lld/devices |
i2clib | packages/ti/drv/stw_lld/i2clld |
platform | packages/ti/drv/stw_lld/platform |
fatlib | packages/ti/drv/stw_lld/fatlib |
utils | packages/ti/drv/stw_lld/uartconsole packages/ti/drv/vps/src/osal and packages/ti/drv/vps/src/common |
tools | packages/ti/boot/sbl_auto/tools |
BSP Module (Folder Name) | PDK |
---|---|
build | packages/ti/build |
src/boards | packages/ti/drv/vps/src/boards |
vpslib | packages/ti/drv/vps/src/vpslib |
src/devices | packages/ti/drv/vps/src/devices |
src/fvid2 | packages/ti/drv/vps/src/fvid2 |
src/osal | packages/ti/drv/vps/src/osal |
src/platforms | packages/ti/drv/vps/src/platforms |
src/vps | packages/ti/drv/vps/src/vpsdrv |
src/i2c | packages/ti/drv/bsp_lld/i2c |
src/mcspi | packages/ti/drv/bsp_lld/mcspi |
src/uart | packages/ti/drv/bsp_lld/uart |
src/audio | Not available |
src/mcasp | Not available |
Examples changes[edit]
All the example under Starterware and BSP packages are ported to PDK and are spread across multiple directory based on the module and use case.
- csl/examples - These examples are based on baremetal drivers (DAL) and don't have dependency on any driver or library outside csl. These examples are ported from STW.
- diag/examples - These examples showcase the use of diagnostic library.
- drv/bsp_lld/<module>/examples - These are the serial driver examples ported from BSP.
- drv/fw_l3l4 - Firewall security examples ported from STW.
- drc/ipc_lite - Examples showcasing the use ipc_lite library. These examples are ported from STW
- drv/pm/examples - Power management examples ported from STW.
- drv/vps/examples - Video and display driver examples ported from BSP package.
- drv/stw_lld/examples - mmcsd, vps baremetal, mcasp examples ported from STW.
Build Environment changes[edit]
Build Commands[edit]
Following points mentions few of the basic build commands used. Please refer to Building the PDK for details.
gmake -s all BOARD=tda3xx-evm CORE=ipu1_0
- For building the package for a specific PLATFORM/SOC, BOARD=<board> is used instead of PLATFORM=<board>
- For building in debug or release mode, BUILD_PROFILE=debug instead of PROFILE=debug
- By default only ipu1_0 core will be build. For building other cores user needs to mention the core to be build, eg. CORE=a15_0. Default core to be build can be changing
CORE ?= ipu1_0 to CORE ?= <core>
in packages/ti/build/Rules.make file
- All cores for a specific board can be build using below command
gmake -s allcores BOARD=<board>
C Flags for Platform Build[edit]
Following table shows the C Flags which are changed.
STW/BSP Flags | PDK Flags |
---|---|
TDA2XX_BUILD | SOC_TDA2XX |
TDA2EX_BUILD | SOC_TDA2EX |
TDA3XX_BUILD | SOC_TDA3XX |
BUILD_M4 | BUILD_IPU1_0 or BUILD_IPU1_1 or BUILD_IPU2_0 or BUILD_IPU2_1 |
BUILD_A15 | BUILD_A15_0 or BUILD_A15_1 |
BUILD_DSP | BUILD_DSP_1 or BUILD_DSP_2 |
BUILD_EVE or BUILD_EVEX | BUILD_ARP32_X |
Following table shows the C Flags which are no longer supported.
STW/BSP Flags |
---|
TDA2XX_FAMILY_BUILD |
TDA3XX_FAMILY_BUILD |
STW/BSP to PDK migration steps[edit]
Use needs to follow the below steps to build the migrate the application from STW/BSP to PDK
Updating the file include[edit]
PDK package provides a script to update the includes. Script is available at '<install_path>/docs/stw_bsp_include_path_migration.sh'. Run the following command to fine and replace the file includes as per PDK directory structure.
stw_bsp_include_path_migration.sh <Application folder to change> <PDK installed location (for sanity check file exists)>
Updating the makefile[edit]
- Update the Component list as per PDK component list. Please refer to below table
BSP/STW Component List | PDK Component List |
---|---|
starterware_boards | stw_boards |
starterware_devices | stw_devices |
fat_lib | stw_fatlib |
i2c_lib | i2c_lld |
utils_platform | stw_platform |
uartConsole | stw_uartconsole |
starterware_examples_utility | stw_examples_utility |
bsp_fvid2 | fvid2 |
bsp_devices | vps_devices |
starterware_vpslib | vpslib |
starterware_vpslib (for baremetal module) | vpsdrv_baremetal |
bsp_vps | vpsdrv |
bsp_platforms | vps_platforms |
bsp_osal | vps_osal_tirtos |
starterware_osal | vps_osal_baremetal |
starterware_common | vps_common |
bsp_common | vps_common |
bsp_boards | vps_boards |
starterware_pm_lib | pm_lib |
starterware_pm_hal | pm_hal |
ipc_lib | ipc_lib |
safety_lib | firewall_l3l4 |
bsp_i2c | bsp_i2c |
bsp_mcspi | bsp_mcspi |
bsp_uart | bsp_uart |
diag_lib | diag |
starterware_hal | csl |
norflash_lib | norflash |
qspi_flashlib | qspiflash |
sbl_lib | sbl_lib |
sbl_utils | sbl_utils |
- Add following Component if build for a15 core
COMP_LIST_a15_0 = csl_init