Flashing tools allow to flash binaries to the flash on a EVM.
UART is used as the transport or interface to send the file to flash to the EVM.
Folder/Files | Description |
---|---|
${SDK_INSTALL_PATH}/tools/boot/ | |
uart_uniflash.py | Flashing tool |
sbl_prebuilt/am62ax-sk | Pre-built bootloader images and default flash configuration files for a supported EVM |
${SDK_INSTALL_PATH}/examples/drivers/boot/ | |
sbl_uart_uniflash | Flashing application that is run on the EVM to receive files to flash |
sbl_null | SOC init bootloader application that can be used to init the SOC when working in CCS IDE environment. |
sbl_uart_uniflash_multistage
), OSPI NAND bootloader (sbl_ospi_nand_linux_multistage
), EMMC bootloader (sbl_emmc_linux_multistage
) and the user application (*.appimage
) you want to flash is built for the EVM.{SDK_INSTALL_PATH}/tools/boot/sbl_prebuilt/{board}
{SDK_INSTALL_PATH}/examples/drivers/boot
.tiimage
files that are generated as part of the build.*.appimage
file that is generated as part of the build.${SDK_INSTALL_PATH}/tools/boot/sbl_prebuilt/{board}/default_sbl_ospi_linux_hs_fs.cfg
--flash-writer={path to flash application .tiimage} --file={path to OSPI bootloader .tiimage} --operation=flash --flash-offset=0x0
.appimage
) file --file={path to your application .appimage file} --operation=flash --flash-offset=0x80000
.appimage_xip
) file. When not using XIP mode, this file input is optional. --file={path to your application .appimage_xip file} --operation=flash-xip
${SDK_INSTALL_PATH}/tools/boot/sbl_prebuilt/{board}/default_sbl_emmc_linux.cfg
--flash-writer={path to flash application .tiimage} --file={path to eMMC bootloader .tiimage} --operation=flash-emmc --flash-offset=0x0
.appimage
) file needs to be specified in the configuration file as --file={path to your application .appimage file} --operation=flash-emmc --flash-offset=0x800000
cmd.exe
) or Linux bash shell to flash the files. cd ${SDK_INSTALL_PATH}/tools/boot python uart_uniflash.py -p {name of your UART com port} --cfg={path to your edited config file}
cd ${SDK_INSTALL_PATH}/tools/boot python uart_uniflash.py --help
If the flashing fails, the error message will give a hint as to why it failed. Some common error messages, reasons and potential solutions are listed below.
Error | Possible Reason | Solution |
---|---|---|
Serial port not found or not accessible | Wrong UART port passed as argument or the UART port is open in some other terminal application. | Check the UART port, UART ports are named as COM1 , COM2 , and so on in Windows and as /dev/ttyUSB0 , /dev/ttyUSB1 , and so on in Linux. Also make sure to close all open UART terminals and try again. |
No response or error response from EVM. | Either EVM is not in power-ON state or EVM is not setup in UART boot mode. | Use Ctrl-C to terminate the script if it is stuck. Check UART boot mode switch setting, check power to EVM, power-cycle EVM and try again |
Flashing failed error message | This should not happen ideally on TI EVMs. On custom EVM this could happen if there is some issue in the flash driver on the EVM. | Power cycle EVM and try again. If the problem still does not go away, then likely the flash on the EVM has gone bad. Try other SOC initialization options and check the flash driver via CCS IDE debug. |
Config file parsing error | Wrong config file passed or input files not found. | Check the message that is printed, and edit the config file to fix the parsing errors. Make sure to specify file paths with forward slash / , including in Windows. The default config file should not have any errors though. |
Python not found error or python packages not not found error | Python or python packages needed for this script are not installed | Follow steps mentioned in Python3 to install python and related packages |
Parsing config file error | SBL binaries are missing from the prebuilt folder | Build sbl using below command: make -s sbl DEVICE=am62ax |
The detailed sequence of steps that happen when flashing files is listed below, refer to the EVM Setup page to see how to setup the EVM in different boot modes that are needed for this sequence of steps.
sbl_uart_uniflash_stage1.release.tiimage
) via the flashing tool using UART+XMODEM protocol underneath.