Name
fxload - Firmware download to EZ-USB devicesSynopsis
- Fxload is a program which downloads firmware to USB devices based on AnchorChips EZ-USB, Cypress EZ-USB FX, or Cypress EZ-USB FX2 microcontrollers. These have 8-bit 8051 cores with special extensions for USB I/O. The FX2 supports high speed USB 2.0 transfers (480 Mbit/sec) as well as full speed USB 1.1 transfers (12 Mbit/sec), while the earlier parts supports only full speed transfers.
- The package provides the installation files for Cypress USB-Serial Composite Device Driver version 3.13.0.59. If the driver is already installed on your system, updating (overwrite-installing) may fix various issues, add new functions, or just upgrade to the available version.
- Download drivers for Cypress USB-Serial (Single Channel) Vendor 1 chipsets (Windows 10 x64), or install DriverPack Solution software for automatic driver download and update. Are you tired of looking for the drivers for your devices? DriverPack Online will find and install the drivers you need automatically.
- Vendor driver along with Cypress USB-Serial application library is used to communicate with peripheral devices such as SPI, I2C, Vendor UART, JTAG, GPIO, User Flash Access etc. This user guide describes the steps to install the Cypress drivers for USB-Serial devices in Windows.
Cypress Generic Usb Device free download - USB Video Device, USB Human Interface Device, Panda USB Vaccine, and many more programs.
] [ -ttype] [ -cconfig] [ -sloader]fxload [ -Ddevpath] [ -Llink] [ -mmode]
fxload [ -V ]
Description
fxload is a program which downloads firmware to USB devices based on AnchorChips EZ-USB,Cypress EZ-USB FX, or Cypress EZ-USB FX2 microcontrollers. These have 8-bit 8051 cores with special extensions for USB I/O. The FX2 supports high speed USB 2.0transfers (480 Mbit/sec) as well as full speed USB 1.1 transfers (12 Mbit/sec), while the earlier parts supports only full speed transfers. These controllershave several package options, and can be set up with external memory (on-chip memory is usually about 8K), EEPROMs, and ROMs when device costs allow.This uses 'usbfs' (older name: 'usbdevfs') to access devices, and issues vendor specific control requests to download and reset the EZ-USB devices.Normally, firmware will then 'renumerate' by disconnecting from USB and then reconnecting as a new device. It then appears with new device descriptors andfunctionality, as provided by the firmware which has been downloaded.
To support some non-firmware applications, this can also set up symbolic links for those usbfs names. It can also change their access modes. Both of thesecan help simplify software applications that need to talk to USB devices using user mode drivers, don't want to run with privileges or to examine all of theexisting USB devices, and which don't need more kernel drivers.
See the Linux-Hotplug web site for information about how to use fxload to download device firmware when hotplugging USB devices, usingdriver-specific scripts stored in the /etc/hotplug/usb directory.
Function Letters
At least one of the following options must be specified. Note that as usual with UNIX andLinux commands, the order of command option flags does not matter. You may use these in any order.- devmode=0666 are also available.
- -V
- Identifies the version of fxload being invoked, and exits without performing other actions.
Note that when downloading firmware that renumerates, there's no point in changing the device permissions or creating a symbolic link.
Options
By default, fxload assumes the device uses an EZ-USB or EZ-USB FX. It also assumes that thedevice in question has been specified by USB kernel hotplugging conventions, using the DEVICE environment variable to name a 'usbfs' file that can beused to talk to the device.- -sloader
- This identifies the hex file holding a second stage loader (in the same hex file format as the firmware itself), which is loaded into internal memory. Thisloader understands additional vendor control requests, beyond the one built into all EZ-USB hardware, which are needed to write external RAM or EEPROM. As alast step when loading firmware, fxload normally overwrites this second stage loader with parts of the firmware residing on-chip.
- -ttype
- Indicates which type of microcontroller is used in the device; type may be one of an21 (the original AnchorChips devices), fx (Cypress'updated version, the EZ-USB FX), or fx2 (the Cypress EZ-USB FX2, supporting high speed transfers). Except when writing to EEPROM, all that normallymatters when downloading firmware is whether or not the device uses an FX2.
- -v
- Prints some diagnostics, such as download addresses and sizes, to standard error. Repeat the flag (-vv, -vvv) to get more diagnostics.
- -Ddevpath
- Specifies the 'usbfs' path name for the device in question, such as /proc/bus/usb/004/080. This takes precedence over any DEVICE environmentvariable that may be set.
Notes
This program implements one extension to the standard 'hex file' format. Lines beginning with a '#' character are ignored, and may be used to hold copyrightstatements and other information. Other tools may not handle hexfiles using this extension.
At this writing, 'usbfs' is a kernel configuration option. That means that device drivers relying on user mode firmware downloading may need to depend onthat kernel configuration option. A less preferable alternative involves compiling the firmware into the kernel and managing downloads and renumeration there.This is less preferable in part because much device firmware is provided with GPL-incompatible licensing, and in part because storing such firmware firmwarewastes kernel memory.
For EZ-USB family devices, the hardware's first stage loader (supporting the 0xA0 vendor request) can't write into external memory. Configurations that putfirmware into external memory thus need a second stage loader. For typical 'flat' memory architectures, a loader supporting the 0xA3 vendor request is used towrite into that memory. Similarly, a second stage loader that supports the 0xA2 vendor request is needed when writing boot firmware into an I2C EEPROM. These0xA2 and 0xA3 vendor commands are conventions defined by Cypress. Devices that use bank switching or similar mechanisms to stretch the 64KByte address spacemay need different approach to loading firmware.
Not all devices support EEPROM updates. Some EZ-USB based devices don't have an I2C EEPROM; many such EEPROMs are too small to store firmware; and somefirmware can't be placed in bootable I2C EEPROMs.