Skip to content
  • Heiko Schocher's avatar
    usb: dfu: introduce dfuMANIFEST state · 001a8319
    Heiko Schocher authored and Marek Vasut's avatar Marek Vasut committed
    on nand flash using ubi, after the download of the new image into
    the flash, the "rest" of the nand sectors get erased while flushing
    the medium. With current u-boot version dfu-util may show:
    
    Starting download: [##################################################] finished!
    state(7) = dfuMANIFEST, status(0) = No error condition is present
    unable to read DFU status
    
    as get_status is not answered while erasing sectors, if erasing
    needs some time.
    
    So do the following changes to prevent this:
    
    - introduce dfuManifest state
      According to dfu specification
      ( http://www.usb.org/developers/devclass_docs/usbdfu10.pdf
    
     ) section 7:
      "the device enters the dfuMANIFEST-SYNC state and awaits the solicitation
       of the status report by the host. Upon receipt of the anticipated
       DFU_GETSTATUS, the device enters the dfuMANIFEST state, where it
       completes its reprogramming operations."
    
    - when stepping into dfuManifest state, sending a PollTimeout
      DFU_MANIFEST_POLL_TIMEOUT in ms, to the host, so the host
      (dfu-util) waits the PollTimeout before sending a get_status again.
    
    Signed-off-by: default avatarHeiko Schocher <hs@denx.de>
    Cc: Lukasz Majewski <l.majewski@samsung.com>
    Cc: Kyungmin Park <kyungmin.park@samsung.com>
    Cc: Marek Vasut <marex@denx.de>
    Cc: Pantelis Antoniou <panto@antoniou-consulting.com>
    001a8319