[U-Boot] [PATCH 0/2] am335x_boneblack: Enable fastboot flash support
Sam Protsenko
semen.protsenko at linaro.org
Tue Feb 27 23:38:39 UTC 2018
On 27 February 2018 at 23:56, Lukasz Majewski <lukma at denx.de> wrote:
> Hi Sam,
>
>> Standard and recommended way to upgrade the firmware is DFU. But DFU
>> has extremely low transmission speed (around 150 KiB/sec), thus it's
>> a bad fit for flashing big images (like rootfs). Low DFU speed is
>> mostly due to next reasons (kudos to Ruslan Bilovol for
>> investigation): 1. DFU works only via EP0, per DFU specification [1].
>> But AM335x doesn't have DMA for EP0, according to AM335x TRM [2]: from
>> section 16.2:
>>
>> "The CPPI DMA can be used to service Endpoints 1 to 15 not
>> Endpoint 0. CPU access method is used to service Endpoint 0
>> transactions."
>>
>> 2. Max transmission packet size via EP0 is 64 bytes, whereas for
>> other endpoints max transmission packet size is 512 bytes
>
> DFU was (and still is) supposed to work on all devices - even those
> with very tiny resources (like st microcontrollers).
>
> According to USB spec, EP0 is mandatory, so that is the reason for
> using it as a common denominator.
>
> Just for the record - fastboot is one of the options here.
>
> For BBB you may want to look at "dfu tftp" - which uses ETH's tftp
> protocol with dfu backend. It is supposed to be a remedy for problem
> described above.
>
> More information at:
> ./doc/README.dfutftp
>
Thank you for the explanation, Lukasz! Didn't know that "dfu tftp" was
designed to overcome that slow speed issue. Will try that.
>
> Of course I also don't mind using fastboot - it depends on your use
> case.
>
Yes, I'm trying to make BBB board to be a good educational platform
(we are working on some corporate courses). Main points are it's an
open hardware, has a good support in upstream and has a good pricing.
Anyway, my idea is to show people all the conventional methods for
flashing the board, so I need both Ethernet and USB ways working.
Also, I noticed that Debian rootfs is recommended to be flashed to
eMMC using SD card (and flashing is done from booted system, not from
U-Boot). Although I understand that this may be easier for an end user
(as it closely resembles PC way), still I can't say that I
particularly like or approve that method (especially for development
purposes). That's why I think that having functional USB link would be
beneficial for BBB.
>>
>> fastboot specification [3], on the other hand, says nothing about
>> which EP should be used (and I see that EP1 is used on BBB board). So
>> let's enable fastboot flash support on BeagleBone Black board to
>> provide a better way to flash big images via USB.
>>
>> [1] www.usb.org/developers/docs/devclass_docs/DFU_1.1.pdf
>> [2] www.ti.com/lit/ug/spruh73p/spruh73p.pdf
>> [3]
>> https://android.googlesource.com/platform/system/core/+/master/fastboot/README.md
>>
>> Sam Protsenko (2):
>> omap: Fix AM335x build with enabled fastboot flash
>> configs: am335x_boneblack: Enable fastboot flash capability
>>
>> arch/arm/mach-omap2/utils.c | 2 ++
>> configs/am335x_boneblack_defconfig | 2 ++
>> 2 files changed, 4 insertions(+)
>>
>
>
>
>
> Best regards,
>
> Lukasz Majewski
>
> --
>
> DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
> Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
More information about the U-Boot
mailing list