
Hi Ravi,
Hi Lukasz
The problem here is, how o flash the images first time to fresh boards to QSPI or eMMC device, where there is no MMC/SD boot option available. The solution to this problem is use peripheral USB boot mode (configuring sysboot switches), where the ROM loads the intial SPL(+DFU builtin for spi/eMMC) to IRAM, then run dfu/sf or dfu/eMMC to flash the binaries from PC using USB interface. Refer to SPL-DFU support based on 2014.07 u-boot http://www.ti.com/lit/an/sprac33/sprac33.pdf.
I know about similar bootstrap (on TI board), which uses serial instead of USB.
In this approach MLO was loaded by serial, then it loaded u-boot, which was responsible for factory setting of the device (flashing rootfs, boot and other partitions).
One question:
Would it be possible to develop SPL (MLO) for your platform, which does following things:
- Loads the full-fledge u-boot to SDRAM 2. Starts the u-boot and 3.
u-boot flash all the needed stuff
By using such approach we could restrict our dfu support in SPL u-boot only to receiving data and uploading it to SDRAM (i.e. we wouldn't need to add write support for ext, fat and eMMC).
This is not possible, because combining MLO and u-boot.img will not fit in IRAM (512k). The u-boot.img itself is around 640K.
My point here is to first load SPL u-boot (which size is around 110 KiB), and then download via DFU full-featured u-boot, which would be placed in SDRAM.
Then u-boot downloads and flash all needed images.
One big advantage is that our SPL DFU support can be minimal - we don't need to implement fat, ext ,emmc write support.
Regards Ravi