USB Interface
VID/PID Table
Section titled “VID/PID Table”All Genpix products share USB Vendor ID 0x09C0:
| PID | Product | State | Notes |
|---|---|---|---|
| 0x0200 | 8PSK-to-USB2 Rev.1 | Cold | Requires FW01 upload to RAM |
| 0x0201 | 8PSK-to-USB2 Rev.1 | Warm | Requires FW02 (BCM4500 firmware) |
| 0x0202 | 8PSK-to-USB2 Rev.2 | Warm | Boots from EEPROM |
| 0x0203 | SkyWalker-1 | Warm | Boots from EEPROM |
| 0x0204 | SkyWalker-1 (alternate) | Warm | Boots from EEPROM |
| 0x0205 | SkyWalker-2 | — | Not in kernel 6.16.5 |
| 0x0206 | SkyWalker CW3K | Warm | Requires CW3K_INIT (0x9D) |
PID 0x0203 was added to the Linux kernel dvb_usb_gp8psk device table after v6.6.1.
Endpoint Map
Section titled “Endpoint Map”| Property | Value |
|---|---|
| Control endpoint | EP0 (default pipe, vendor requests) |
| Bulk IN endpoint | EP2 (address 0x82) — MPEG-2 transport stream |
| Generic bulk CTRL endpoint | 0x01 (BCM4500 FW02 upload, Rev.1 only) |
Streaming Properties
Section titled “Streaming Properties”| Property | Value |
|---|---|
| URB count | 7 |
| URB buffer size | 8192 bytes each |
| Stream type | USB_BULK |
| FX2 controller type | CYPRESS_FX2 |
EP2 Endpoint Configuration
Section titled “EP2 Endpoint Configuration”EP2CFG = 0xE2; // valid=1, dir=IN, type=BULK, size=512, buf=DOUBLE| Bit | Value | Meaning |
|---|---|---|
| 7 (VALID) | 1 | Endpoint enabled |
| 6 (DIR) | 1 | IN (device to host) |
| 5:4 (TYPE) | 10 | Bulk transfer |
| 3 (SIZE) | 0 | 512-byte packets |
| 1:0 (BUF) | 10 | Double-buffered |
EP4, EP6, and EP8 are disabled (&= ~bmVALID). Only EP2 is used for data streaming.
Warm Boot Behavior
Section titled “Warm Boot Behavior”The SkyWalker-1 (PID 0x0203) enumerates directly as a “warm” device. The DVB-USB framework skips firmware download when cold_ids is NULL. No host-side firmware files are required.
| Device | PID | Needs FW01? | Needs FW02? | Boot Source |
|---|---|---|---|---|
| Rev.1 Cold | 0x0200 | Yes | — | RAM (empty) |
| Rev.1 Warm | 0x0201 | No | Yes | RAM (FW01 loaded) |
| Rev.2 | 0x0202 | No | No | EEPROM |
| SkyWalker-1 | 0x0203 | No | No | EEPROM |
| SkyWalker CW3K | 0x0206 | No | No | EEPROM |
USB Control Transfer Protocol
Section titled “USB Control Transfer Protocol”All vendor commands use USB control transfers with these common parameters:
| Parameter | Value |
|---|---|
| bmRequestType | USB_TYPE_VENDOR (0x40 for OUT, 0xC0 for IN) |
| Timeout | 2000 ms |
| Retry | Up to 3 attempts for IN operations if partial data received |
| Data buffer maximum | 80 bytes (kernel driver) |
See Vendor Commands for the complete command reference.
Kernel Driver Modules
Section titled “Kernel Driver Modules”The Linux kernel uses two modules for the SkyWalker-1:
| Module | Function |
|---|---|
dvb_usb_gp8psk | USB transport layer, device management, firmware loading |
gp8psk_fe | DVB frontend operations (demodulation, tuning, signal status) |