I'm trying to understand how the binary is stored and flashed to the EMMC for iMX8ULP.
uuu_version 1.2.39
# @_flash.bin | bootloader
# @_image [_flash.bin] | image burn to emmc, default is the same as bootloader
# This command will be run when ROM support stream mode
# i.MX8QXP, i.MX8QM
SDPS: boot -f _flash.bin
FB: ucmd setenv fastboot_dev mmc
FB: ucmd setenv mmcdev ${emmc_dev}
FB: ucmd mmc dev ${emmc_dev}
FB: flash bootloader _image
FB: ucmd if env exists emmc_ack; then ; else setenv emmc_ack 0; fi;
FB: ucmd mmc partconf ${emmc_dev} ${emmc_ack} 1 0
FB: Done
The shared SRAM controller has 7 ports, which are arbitrated to access the 768KB of SRAM Memory. The 7 ports, can access orthogonal regions of memory in parallel at the same time. The 768KB of SRAM Memory is partitioned into 8 blocks as shown by the table below.
I doubt when the `SDPS: boot -f _flash.bin` is inserted, where is the temporary storage to store the entire binary (flash.bin) as the SRAM is just around 768KB but the binary that I used is 1,777,664 bytes. Seem like the SRAM is not enough to fit in the entire binary.
Besides that, wondering what the flag used to indicate that the file already finished transferring so that the fast boot command can take over, and flash it into the emmc.