fwupd/plugins/genesys
Richard Hughes 5ef0ae182d Add a 'name' attribute to each FuProgress step
This allows us to print better warning strings, and in the future
would allow us to profile each operation in a meaningful way.

Also, add context to some of the progress steps as required.
2022-06-01 15:05:43 +01:00
..
tests Add a new plugin to handle HP M2xfd monitors 2022-02-21 08:30:43 +00:00
fu-genesys-common.h genesys: Add support for detecting GL3521 2022-04-05 14:00:32 +01:00
fu-genesys-scaler-device.c Add a 'name' attribute to each FuProgress step 2022-06-01 15:05:43 +01:00
fu-genesys-scaler-device.h Add a new plugin to handle HP M2xfd monitors 2022-02-21 08:30:43 +00:00
fu-genesys-scaler-firmware.c genesys: Remove some dead code 2022-04-23 10:28:16 +01:00
fu-genesys-scaler-firmware.h genesys: scaler: Fix Special Protect Sector structure length 2022-03-22 14:19:48 +00:00
fu-genesys-usbhub-device.c Add a 'name' attribute to each FuProgress step 2022-06-01 15:05:43 +01:00
fu-genesys-usbhub-device.h Add a new plugin to handle HP M2xfd monitors 2022-02-21 08:30:43 +00:00
fu-genesys-usbhub-firmware.c genesys: Remove unused variable 2022-04-23 10:28:16 +01:00
fu-genesys-usbhub-firmware.h Add a new plugin to handle HP M2xfd monitors 2022-02-21 08:30:43 +00:00
fu-plugin-genesys.c Add plugin quirk keys earlier in the startup process 2022-05-09 11:13:52 +01:00
genesys.quirk Support Google Servo Dock 2022-04-07 09:39:12 -05:00
meson.build Convert build system to use meson tristate features 2022-02-28 08:34:48 -06:00
README.md genesys: usbhub: Fix typo 2022-04-05 19:00:01 +01:00

Genesys Logic

Introduction

This plugin allows updating the Genesys Logic USB Hub devices.

  • GL3521
  • GL3523
  • GL3590

Additionally, this plugin allows updating the MStar Semiconductor Scaler connected via an I²C bus.

  • TSUM G

Firmware Format

The daemon will decompress the cabinet archives and extract the firmware blob in an unspecified binary file format.

This plugin supports the following protocol IDs:

  • com.genesys.usbhub
  • com.mstarsemi.scaler

GUID Generation

These devices use the standard USB DeviceInstanceId values for the USB Hub, e.g.

  • GenesysLogic USB2.0 Hub: USB\VID_05E3&PID_0610
  • HP USB-C Controller: USB\VID_03F0&PID_0610

Additionally, some customized instance IDs are added. e.g.

  • GenesysLogic USB2.0 Hub: USB\VID_03F0&PID_0610&IC_352330&BONDING_0F
  • GenesysLogic USB2.0 Hub: USB\VID_03F0&PID_0610&VENDOR_GENESYSLOGIC&IC_352330&BONDING_0F&PORTNUM_23&VENDORSUP_C09B5DD3-1A23-51D2-995A-F7366AAB3CA4
  • HP M24fd USB-C Controller: USB\VID_03F0&PID_0610&PUBKEY_B335BDCE-7073-5D0E-9BD3-9B69C1A6899F
  • HP M27fd USB-C Controller: USB\VID_03F0&PID_0610&PUBKEY_847A3650-8648-586B-83C8-8B53714F37E3

These devices also use custom GUID values for the Scaler, e.g.

  • HP M24fd USB-C Monitor: GENESYS_SCALER\MSTAR_TSUM_G&PUBKEY_B335BDCE-7073-5D0E-9BD3-9B69C1A6899F
  • HP M27fd USB-C Monitor: GENESYS_SCALER\MSTAR_TSUM_G&PUBKEY_847A3650-8648-586B-83C8-8B53714F37E3

The Public Key is product-specific and is required to identify the product.

Quirk Use

This plugin uses the following plugin-specific quirks:

has-mstar-scaler

USB Hub has a MStar Semiconductor Scaler attached via I²C.

Since 1.7.6.

has-public-key

Device has a public-key appended to firmware.

Since 1.8.0

GenesysUsbhubSwitchRequest

USB Hub Switch Request value.

  • HP Mxfd FHD Monitors: 0xA1

Since 1.7.6.

GenesysUsbhubReadRequest

USB Hub Read Request value.

  • HP Mxfd FHD Monitors: 0xA2

Since 1.7.6.

GenesysUsbhubWriteRequest

USB Hub Write Request value.

  • HP Mxfd FHD Monitors: 0xA3

Since 1.7.6.

use-i2c-ch0

Scalar uses I²C channel 0.

Since 1.7.6.

pause-r2-cpu

Scalar pause R2 CPU.

Since 1.7.6.

GenesysScalerDeviceTransferSize

Scaler Block size to use for transfers.

  • MStar Semiconductor TSUM G: 0x40

Since 1.7.6.

GenesysScalerGpioOutputRegister

Scaler GPIO Output Register value.

  • MStar Semiconductor TSUM G: 0x0426

Since 1.7.6.

GenesysScalerGpioEnableRegister

Scaler GPIO Enable Register value.

  • MStar Semiconductor TSUM G: 0x0428

Since 1.7.6.

GenesysScalerGpioValue

Scaler GPIO value.

  • MStar Semiconductor TSUM G: 0x01

Since 1.7.6.

Runtime Requirement

The USB Hub devices and its attached Scaler require libgusb version 0.3.8 or later to be detected.

Update Behavior

The devices are independently updated at runtime using USB control transfers.

The firmware is deployed when the device is in normal runtime mode, and the device will reset when the new firmware has been written.

The HP Mxfd FHD Monitors must be connected to host via the USB-C cable to apply an update. The devices remain functional during the update; the Scaler update is ~10 minute long.

Vendor ID Security

The vendor ID is set from the USB vendor, for example set to USB:0x03F0 for HP.

External Interface Access

This plugin requires read/write access to /dev/bus/usb.