Switch to No Firmware-loader Flow
Firmware loader is designed for flexible firmware change. The firmware can be uploaded to DDR from host side(e.g. a PC). However, it is designed for USB interface integrated application, or say host-companion design. If there is no USB available, it is a potential risk on boot-from-flash with failed flash programing due to single boot partition.
As the schematic diagram above shows the beginning SRAM address of fw_scpu.bin are different. Also, flash table for those binaries in with/without firmware loader are different. Due to the difference, we need to rebuild the fw_scpu.bin and use different flash table to use no-fw-loader flow.
Step 1: rebuild fw_scpu.bin
- set #define PROJ_NOT_USE_FW_LOADER 1 in project.h, e.g. ./build/solution_kdp2_host_mipi/sn52096/project.h
- change scatter file by replace scatter_load.sct by kdp.sct in firmware/build/solution_kdp2_host_mipi/sn52096/scpu_keil/scpu.uvprojx (you can do the same change by Keil -> Project -> Options for Target 'dev' -> linker tab -> Scatter file)
- compile/link the project/workspace
Step 2: compose flash image
- prepare the
flash_image.binby utility, bin_gen, with -n parameter. e.g. "python3 bin_gen.py -n"
Then, the generated
flash_image.bin is for no-firmware-loader flow.