Ticket #11 (closed defect: fixed)

Opened 6 years ago

Last modified 5 years ago

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:1 Changed 6 years ago by laforge@…

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

comment:2 Changed 6 years ago by laforge@…

  • Milestone set to Phase 0

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:4 Changed 6 years ago by sean_mosko@…

  • Priority changed from high to highest

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"

comment:7 Changed 6 years ago by laforge@…

  • Status changed from new to closed
  • Resolution set to fixed

This has now been implemented and is basically working, though a number of bugs
are still there. I will add bugzilla bugs for the major bugs and close this one.

comment:8 Changed 5 years ago by anonymous

  • Milestone Phase 0 deleted

Milestone Phase 0 deleted

Note: See TracTickets for help on using tickets.