---
title: 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
