Sideband Registers can be accessed or changed through $USB4SBRegisters, a global variable with the following fields:
|
Field Name |
Possible Values (defaults in bold) |
|
Vendor ID Register (0) |
|
|
VID_Low |
0xFF |
|
VID_High |
0x05 |
|
VID_Rsvd1 |
0 |
|
VID_Rsvd2 |
0 |
|
Product ID Register (1) |
|
|
PID_Low |
0x04 |
|
PID_High |
0x00 |
|
PID_Rsvd1 |
0 |
|
PID_Rsvd2 |
0 |
|
Opcode Register (8) |
|
|
OPC_0 |
0 |
|
OPC_1 |
0 |
|
OPC_2 |
0 |
|
OPC_3 |
0 |
|
MetaData Register (9) |
|
|
MD_Metadata |
0 |
|
Link Configuration Register (12) |
|
|
LC_EnablingDecisionLane0 |
USB4_FALSE USB4_TRUE |
|
LC_EnablingDecisionLane1 |
USB4_FALSE USB4_TRUE |
|
LC_AsymmetricDecisionTx |
USB4_FALSE USB4_TRUE |
|
LC_AsymmetricDecisionRx |
USB4_FALSE USB4_TRUE |
|
LC_Rsvd0 |
0 |
|
LC_EnablingRequestLane0 |
USB4_FALSE USB4_TRUE |
|
LC_EnablingRequestLane1 |
USB4_FALSE USB4_TRUE |
|
LC_Rsvd1 |
0 |
|
LC_BondingSupport |
USB4_FALSE USB4_TRUE |
|
LC_Gen3Support |
USB4_FALSE USB4_TRUE |
|
LC_RSFEC_RequestGen2 |
USB4_FALSE USB4_TRUE |
|
LC_RSFEC_RequestGen3 |
USB4_FALSE USB4_TRUE |
|
LC_USB4SidebandChannelSupport |
USB4_FALSE USB4_TRUE |
|
LC_TBT3CompatibleSpeedsSupport |
USB4_FALSE USB4_TRUE |
|
LC_Gen4Support |
USB4_FALSE USB4_TRUE |
|
LC_AsymmetricSupport3Tx |
USB4_FALSE USB4_TRUE |
|
LC_AsymmetricSupport3Rx |
USB4_FALSE USB4_TRUE |
|
LC_RequestAsymmetricTx |
USB4_FALSE USB4_TRUE |
|
LC_RequestAsymmetricRx |
USB4_FALSE USB4_TRUE |
|
LC_Rsvd2 |
0 |
|
Gen 2/3 TxFFE Register (13) |
|
|
TxFFE_RequestLane0 |
0 |
|
TxFFE_RxLockedLane0 |
0 |
|
TxFFE_RxActiveLane0 |
0 |
|
TxFFE_ClockSwitchDoneLane0 |
0 |
|
TxFFE_NewRequestLane0 |
0 |
|
TxFFE_RequestLane1 |
0 |
|
TxFFE_RxLockedLane1 |
0 |
|
TxFFE_RxActiveLane1 |
0 |
|
TxFFE_ClockSwitchDoneLane1 |
0 |
|
TxFFE_NewRequestLane1 |
0 |
|
TxFFE_SettingLane0 |
0 |
|
TxFFE_Rsvd1 |
0 |
|
TxFFE_RequestDoneLane0 |
0 |
|
TxFFE_TxActiveLane0 |
0 |
|
TxFFE_SettingLane1 |
0 |
|
TxFFE_Rsvd2 |
0 |
|
TxFFE_RequestDoneLane1 |
0 |
|
TxFFE_TxActiveLane1 |
0 |
|
Gen 4 TxFFE Register (14) |
|
|
G4TxFFERx0_Request |
0 |
|
G4TxFFERx0_Reserved |
0 |
|
G4TxFFERx0_NewRequest |
0 |
|
G4TxFFERx1_Request |
0 |
|
G4TxFFERx1_Reserved |
0 |
|
G4TxFFERx1_NewRequest |
0 |
|
G4TxFFETx0_Setting |
0 |
|
G4TxFFETx0_RequestDone |
0 |
|
G4TxFFETx0_StartTxFFE |
0 |
|
G4TxFFETx1_Setting |
0 |
|
G4TxFFETx1_RequestDone |
0 |
|
G4TxFFETx1_StartTxFFE |
0 |
|
Sideband Channel Version Register (15) |
|
|
CV_SubVersion |
0 |
|
CV_MinorVersion |
0 |
|
CV_MajorVersionLSB |
0 |
|
CV_MajorVersionMSB |
0 |
|
Data Register (18) |
|
|
DATA0 |
0 |
|
DATA1 |
0 |
|
DATA2 |
0 |
|
DATA3 |
0 |
|
DATA4 |
0 |
|
DATA5 |
0 |
|
DATA6 |
0 |
|
DATA7 |
0 |
|
DATA8 |
0 |
|
DATA9 |
0 |
|
DATA10 |
0 |
|
DATA11 |
0 |
|
DATA12 |
0 |
|
DATA13 |
0 |
|
DATA14 |
0 |
|
DATA15 |
0 |
Examples
Set $USB4SBRegisters.LC_BondingSupport = USB4_TRUE
Set $USB4SBRegisters.LC_Gen3Support = USB4_FALSE
Set $USB4SBRegisters.LC_RSFEC_RequestGen2 = USB4_FALSE
Set $USB4SBRegisters.LC_RSFEC_RequestGen3 = USB4_FALSE
Gen 4 is off by default. To run the Exerciser at Gen 4, enable LC_Gen4Support. Gen 4 generation requires a Voyager M480x or M4120 with the USB4 Gen 4 Exerciser license.
Set $USB4SBRegisters.LC_Gen3Support = USB4_TRUE
Set $USB4SBRegisters.LC_Gen4Support = USB4_TRUE