Plugin: Parade USB Hub
Introduction
Parade USB hubs such as PS5512 have a built-in SPI-Master engine for programming external SPI ROM flash. The USB2.0 hub device can do control transfers to control an internal mailbox.
Firmware Format
The daemon will decompress the cabinet archive and extract a firmware blob in a packed binary file format.
This plugin supports the following protocol ID:
com.paradetech.usbhub
GUID Generation
These devices use the standard USB DeviceInstanceId values, e.g.
USB\VID_273F&PID_1001
Update Behavior
- Load 384KB SPI ROM data buffer
- Specify target SPI ROM bank, ex: HUB_FW#1 or HUB_FW#2
- Set UFP Disconnect Flag register to notify firmware that we are doing firmware update
- Acquire SPI Master
- Unprotect SPI ROM bank
- Erase SPI ROM bank
- Update SPI ROM bank
- Protect SPI ROM bank
- Verify checksum for the just updated SPI ROM bank
It takes around 90 seconds to update the FW#1 64KB firmware. FW#2 is the factory default with a known good firmware. Please do a full power cycle to make new firmware take effect.
Vendor ID Security
The vendor ID is set from the USB vendor, in this instance set to USB:0x273F
Quirk Use
This plugin uses the following plugin-specific quirks:
ParadeUsbhubChip
Set the chip used, e.g. ps188
or ps5512
, defaulting to the latter.
Since: 2.0.2
External Interface Access
This plugin requires read/write access to /dev/bus/usb
.
Version Considerations
This plugin has been available since fwupd version 2.0.0
.
Owners
Anyone can submit a pull request to modify this plugin, but the following people should be consulted before making major or functional changes:
- Hub Lin:
hublin2024
- Jimmy Tu:
jimmytu5167
- Andy Chu:
andychu5168