Ticket #11 (closed defect: fixed)
u-boot lacks USB DFU support
| Reported by: | laforge@… | Owned by: | ken_zhao@… |
|---|---|---|---|
| Priority: | high | Milestone: | |
| Component: | u-boot | Version: | current svn head |
| Severity: | blocker | Keywords: | |
| Cc: | buglog@… | Blocked By: | |
| Blocking: | Estimated Completion (week): | ||
| HasPatchForReview: | PatchReviewResult: | ||
| Reproducible: |
Description
we need USB device firmware upgrade in order to allow users to do a full
firmware upgrade (or backup).
Change History
comment:3 Changed 6 years ago by sean_mosko@…
Our original plan for the USB firmware update was to implement USB DFU
(the official USB Device Firmware Upgrade protocol as described in
http://www.usb.org/developers/devclass_docs/usbdfu10.pdf)
I have already implemented USB DFU in gcc-arm, but only specifically for
a AT91SAM7S256 SoC, not for the S3C2410. My source code for the SAM7
can be found at http://svn.openpcd.org/trunk/firmware/src/dfu/
(if you want to look at the big picture, check out the whole
http://svn.openpcd.org/trunk/firmware/ branch)
If you can try to port or re-implement my SAM7 DFU code to our u-boot on
S3C2410, then this could be the final solution for the end product.
You can find a matching Linux DFU upload/download host program at
http://people.openpcd.org/laforge/releases/dfu-programmer/0.3.0-hmw4/dfu-programmer-0.3.0-hmw4.tar.bz2
If you have questions about DFU, don't hesitate to contact me. I did
that other implementation just some two months ago, so the whole
protocol is still very clear in my mind :)
comment:5 Changed 6 years ago by sean_mosko@…
- Owner changed from laforge@… to ken_zhao@…
- Priority changed from highest to high
Harald,
Ken, Gordon, and Teddy will look into this bug. Sorry about the major slip here.
The person in Taiwan who was supposed to fix this bug completely dropped the
ball and I was juggling too many to see that this one slipped through the cracks.
We'll stay on it now!
-Sean
comment:6 Changed 6 years ago by laforge@…
The idea would be to have our DFU code export multiple interfaces in the dfu
configuration descriptor:
Interface 0: download code into RAM and execute it (optional, later)
Interface 1: flash u-boot partition
Interface 2: flash kernel partition
Interface 3: flash initrd partition
Interface 4: flash rootfs partition
The interface names should be exported via the regular USB String descriptors,
i.e. "lsusb -v" on the host should indicate that Interface 4 is for "rootfs"

* Bug 37 has been marked as a duplicate of this bug. *