
Hi Ravi,
Hi Lucasz
Thanks for active support.
- Would it be hard to add SPL-DFU support also to BeagleBone
Black(am335x) (BBB) board? I'm asking since BBB is far more pervasive than dra7x (and I might be able to cover SPL-DFU easily with our new ptest (DFU) test suite).
It's possible to extend this for other platform, but SPL size would be 152k.
That was my point to reduce the size as much as possible and only provide minimal functionality to fit the bill.
Since DFU is tighly coupled to u-boot infrastructure , the size will increase due to multiple dependencies to compile u-boot DFU source in SPL. Let me re-think on possibility and come back.
If you would need any assistance, please let me know (I don't have dra7x, but I do have Beagle Bone Black).
The current implementation of dfu (drivers/dfu/dfu.c) relies on environment modules (getenv,setenv), and hash algo methods. The mandatory modules for DFU includes USB(dwc3/musb), gadget, drivers/dfu, hash, environ modules. Added to this mmc/sf support, with filesystem fat/ext4 would definitely increase the size.
I've double checked BBB SPL setup:
- SPL is the MLO (./common/spl/) - Its size shall be less than 128 KiB - It can reside on eMMC (fat partition, raw LBA offset), NAND or be sent via serial port.
I've build the am335x_boneblack_defconfig and MLO size is 75 KiB.
Please correct me, but it seems that the SPL-DFU support adds around 30 KiB to SPL binary size.
If yes, then even BBB's SPL can support DFU without any problems (105KiB < 128 KiB).
I'm also wondering if we could even shrink the code more with reusing or extending the code at ./common/spl/spl_{ext|fat|mmc|sf, etc}.c (in this way we avoid adding the whole fat, ext, sf "commands").
For more aggressive size reduction we could for example disable hash algo checking and add ./common/spl/spl_dfu.c file with ordinary functions and rid of the need to add the whole dfu command.
I have tried minimal subset adding DFU-SF serial flash support alone in SPL, this itself increases SPL size to 30K+ (SPL size approx. 107KB for dra7x).
But beagle bone IRAM would be around 64KB right? Definetly this will not fit.
Can we enable this feature for platform with minimum SRAM size of 160KB. So SPL-DFU cannot be supported for platform less than 160KB (like am335x).
I will ask on ML if there is any other interested party in SPL-DFU support (and what are their limitations of SPL code size).
Any suggestion ?
Regards Ravi