AM243x MCU+ SDK  10.01.00
SYSFW Tools

Note
To see the exact sequence of steps in which boardcfg generation is done, see the makefile inside the ${SDK_INSTALL_PATH}/tools/sysfw/boardcfg/ folder.

Introduction

This section describes the various tools used in conjunction with System Controller Firmware (SYSFW)

Tool requirements on host PC

  • The tools mentioned are implemented using python and needs python version 3.x
  • Refer to the page, Python3 , to install python and the required python packages on your PC.
  • SysConfig tool for using K3 Resource Partitioning Tool: Download SysConfig

Important files and folders

Folder/Files Description
${SDK_INSTALL_PATH}/tools/bin2c/
bin2c.py Tool to convert a binary file to a C array of hexadecimals
${SDK_INSTALL_PATH}/tools/sysfw/boardcfg/
sysfw_boardcfg_validator.py Python script which validates the boardcfg. Used internally in the boardcfg makefile

K3 Resource Partitioning Tool

This tool is based on Texas Instrument's SysConfig tool. It allows you to configure various system level parameters and generate the data which can be fed into many software components. Typical usage for this tool is for System integrators, where one would be able to partition various resources across different software components. These resources includes DMA channels, rings, proxies, interrupts, etc. Apart from this, the tool supports configuration of QoS (Quality of Service) and Firewall parameters which helps in ensuring partitioning of peripheral devices across different CPUs or virtual machines.

Please refer to Modifying resource allocation guide if you want to modify the default resources using K3 Resource Partitioning Tool.

SYSFW Board Config Generation

Note
Please refer to K3 Resource Partitioning Tool section if you want to modify the default resources.

SYSFW Board Config is a SOC specific configuration data regarding the various system attributes controlled by the SYSFW. These include resources, power and clock, security etc. This configuration is sent to SYSFW during boot time. The default configuration is stored in source/drivers/sciclient/sciclient_defaultBoardCfg/{SOC}/

  • Resource Management BoardCfg - sciclient_defaultBoardCfg_rm.c
  • Power Management BoardCfg - sciclient_defaultBoardCfg_pm.c
  • Security BoardCfg - sciclient_defaultBoardCfg_security.c
  • For sending it to SYSFW, these files are converted to hex arrays. We use the bin2c.py python script to do this. This is done internally in the boardcfg makefile. If we change the boardcfg in the above mentioned files, run the following command to generate the hex array header files
make -s -C tools/sysfw/boardcfg sciclient_boardcfg SOC=am243x
  • Once these header files are generated, rebuild the libraries by doing
cd ${SDK_INSTALL_PATH}
gmake -s libs DEVICE={device}
  • After this, make sure to rebuild the secondary bootloader (SBL) applications. You can do this by
cd ${SDK_INSTALL_PATH}
gmake -s sbl DEVICE={device}
  • If you're not using any of the SBLs (SBL UART, SBL OSPI, SBL NULL) and is following the CCS boot method (SOC Initialization Using CCS Scripting), make sure to build the sciclient_ccs_init application by doing
cd ${SDK_INSTALL_PATH}
gmake -s -C examples/drivers/sciclient/sciclient_ccs_init/{board}/r5fss0-0_nortos/ti-arm-clang
Note
This step is only needed if you are using the CCS boot method
  • Once the build is completed, copy the .out file generated and replace with the one already present in ${SDK_INSTALL_PATH}/tools/ccs_load/am243x/ folder.