SPRADN0 December 2024 F29H850TU , F29H859TU-Q1
With the inclusion of the HSM, the BootROM expects all incoming images to be in a binary format and be combined with a X.509 certificate. The first 0x1000 bytes of the binary file must contain the key certificate.
Listed below are the default post-build steps provided by UART flash kernel and other SDK examples to generate the combined binary image with X.509 certificate.
For new Code Composer Studio projects, paste the following script in the Post-build Steps section under Build category of the project properties. To run the script standalone, find import.mak in the root directory of the device SDK for the default alias of the variable.
RAM post-build steps (for Flash Kernel):
${CG_TOOL_OBJCOPY} --strip-all -O binary ${ProjName}.out ${ProjName}.bin
$(PYTHON) ${COM_TI_MCU_SDK_INSTALL_DIR}/tools/boot/signing/mcu_rom_image_gen.py --image-bin ${ProjName}.bin --core C29 --swrv 1 --loadaddr 0x200E1000 --sign-key ${COM_TI_MCU_SDK_INSTALL_DIR}/tools/boot/signing/mcu_custMpk.pem --out-image ${ProjName}.cert.bin --boot RAM --device f29h85x --debug DBG_SOC_DEFAULT
Flash post-build steps (for Flash application images):
${CG_TOOL_OBJCOPY} --remove-section=cert -O binary ${ProjName}.out ${ProjName}.bin
$(PYTHON) ${COM_TI_MCU_SDK_INSTALL_DIR}/tools/boot/signing/mcu_rom_image_gen.py --image-bin ${ProjName}.bin --core C29 --swrv 1 --loadaddr 0x10001000 --sign-key ${COM_TI_MCU_SDK_INSTALL_DIR}/tools/boot/signing/mcu_gpkey.pem --out-image ${ProjName}_cert.bin --device f29h85x --boot FLASH --img_integ no
${CG_TOOL_OBJCOPY} --update-section cert=C29-cert-pad.bin ${ProjName}.out ${ProjName}_cert.out
$(DELETE) ${ProjName}.out C29-cert-pad.bin;
$(RENAME) ${ProjName}_cert.out ${ProjName}.out
Both post build steps shown above generate a certificate for the application, converts the application .out file into binary, and creates a combined binary image with an X.509 certificate.
Additionally, the post-build steps leverages two different keys provided in the SDK:
To change the generated key certificate with a custom key certificate, provide an alternate key and pass into the python script via parameter --sign-key. This is necessary for all flash images concerning HS-KP and HS-SE, and HSMRt for HS-SE.