[U-Boot] SPL Dfu update
Michael Trimarchi
michael at amarulasolutions.com
Wed Oct 30 14:15:40 CET 2013
Hi Lukasz
On Wed, Oct 30, 2013 at 1:58 PM, Lukasz Majewski <l.majewski at samsung.com> wrote:
> Hi Michael,
>
>> Hi
>>
>> On Wed, Oct 30, 2013 at 9:28 AM, Michael Trimarchi
>> <michael at amarulasolutions.com> wrote:
>> > Hi Lukasz
>> >
>> > We have discussed during the u-boot mini-summit the possibility to
>> > have the dfu update from SPL. Right now I'm trying to understand
>> > what is the best way to do:
>> >
>> >
>> > void spl_dfu_load_image()
>> > {
>> > int rv;
>> >
>> > env_init();
>> > env_relocate();
>> > setenv("dfu_alt_info", DFU_BOARD_FLASHINFO);
>> > board_usb_init();
>> > g_dnl_register(s);
>> >
>> > One option could be do the same of do_dfu command and let upload
>> > all the image that is needed to flash and the issue a usb reset. I
>> > don't sure if the reset can be triggered
>
> With the dfu-util -R you can issue reset on the board. It already works
> in mainline (please refer to CMD_DFU).
>
>> and then do a cpu board
>> > reset and let it boot from the booting device.
>> >
>> > What is for you the best approch?
>> >
>>
>> better pseudo code
>>
>> void spl_dfu_load_image()
>> {
>> ret = dfu_config_entities(DFU_BOARD_FLASHINFO,
>> DFU_BOARD_INTERFACE, DFU_BOARD_NUMBER);
>> board_usb_init();
>> g_dnl_register(s);
>> while(1) {
>> if (ctrlc())
>> goto exit;
>> ret = usb_gadget_handle_interrupts();
>> if (ret)
>> goto exit;
>> }
>>
>> exit:
>> g_dnl_unregister();
>> dfu_free_entities();
>> board_reset();
>> }
>>
>
> In general the presented structure is correct.
>
> However, I've got other concerns:
>
> The DFU + composite + gadget + UDC driver code is large (around 24KiB
> in binary size [1] for the TRATS).
>
This is not a problem because this should not be supported by all the
architecture.
Optimization can come later on
> I'm not sure if this size would be acceptable for SPL. Of course there
> are some spots for code base size reduction (like optimizing and often
> hardcoding code ported from linux kernel).
>
> I _predict_, that with really aggressive approach for optimization the
> size [1] can be reduced, maybe up to 30%.
>
>
Michael
>> Michael
>>
>> > Michael
>
>
>
> --
> Best regards,
>
> Lukasz Majewski
>
> Samsung R&D Institute Poland (SRPOL) | Linux Platform Group
More information about the U-Boot
mailing list