This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

FX2 - Firmware download

I have just started using a FX2 device.
When the linux machine boots up (with USB device already attached) or when the USB device is plugged into a running Linux machine, then the device enumerates as a default device and then downloads the firmware from the linux machine and then renumerates.

I want to know, if there is a way to download the firmware again, without disconnecting and then re-connecting the device?

Also after power-loss, when the linux machine boots up, this enumeration/renumeration process somehow wouldn't work, evn though the device is detected. Can somebody explain why it is so and how to get around it without disconnecting and then re-connecting the device?

  • Yes, you can always load a new firmware into any of the Cypress usb devices. The download request is implemented in the usbcore.
    The device will be recognized when you are doing the Enum call in the firmware.
    For more information you should take a look into the datasheets.

    Thomas

  • I have figured out the problem (Now all I need is a solution)

    It has to do with coldplugging on Linux.
    The FX2 device that I am using, is a bus-powered device.
    When the linux machine is already up and then if I plugin a FX2 device, Linux detects it and using hotplug scripts, downloads the firmware.

    But if the machine is powered-down and the powered-up, with FX2 device already connected then it won't download the firmware, even though linux detects this FX2 device.

    Any suggestions?

  • I think this is a problem with the linux driver. On win ezusb.sys handles the download when the device gets enumerated. Mayby this is not the case on the used linux driver.
    The solution is quite simple:
    load the FW from the EEprom on startup (B6 download in case of the FX2 I think)

    Thomas

  • Problem was with Redhat cold-plugging scheme. Modified it and now its working.


    Thanks