10 #define PASSMARK_USB_H
13 #include <libusb-1.0/libusb.h>
19 #define LOOPBACK_VENDOR_ID 0x0403
20 #define LOOPBACK_USB_2_PRODUCT_ID 0xff0a
21 #define LOOPBACK_USB_3_PRODUCT_ID 0xff0b
23 #define MAXNUMUSBPORTS 20
24 #define MAXSERIALNUMLEN 20
25 #define MAX_DRIVER_NAME 64
31 #define USB_2_CHANGEMODE 0xB0 // Passmark vendor command setup in firmware
32 #define USB_2_CHANGEMODEIN 1 // Number of parameters sent to this firmware command
33 #define USB_2_CHANGEMODEOUT 2
35 #define USB_2_CHANGEMODEOUTSTAT 50
36 #define USB_2_INITIALISATION 0
37 #define USB_2_LOOPBACK 1
38 #define USB_2_BENCHMARK 2
39 #define USB_2_STATISTICS 3
40 #define USB_2_CHANGELEDS 4
42 #define USB_2_EPLOOPOUT 0x02 //Loopback out endpoint
43 #define USB_2_EPLOOPIN 0x86 //Loopback in endpoint
45 #define USB_2_EPBENCHIN 0x88 //Benchmark in endpoint
46 #define USB_2_EPBENCHOUT 0x04 //Benchmark out endpoint
47 #define USB_2_EPHISTORY 0x81 //history report endpoint
52 #define USB_2_FSFIFOSIZE 64 // Size of blocks handled by USB device (chuncked into these blocks at a lower layer)
53 #define USB_2_HSFIFOSIZE 512 // Size of blocks handled by USB device (chuncked into these blocks at a lower layer)
54 #define USB_2_LOOPBACKFSBUFFERSIZE 64 // Buffersize for loopback in FullSpeed mode = FIFO buffer size
55 #define USB_2_LOOPBACKHSBUFFERSIZE 512 // Buffersize for loopback in HighSpeed mode = FIFO buffer size - 4095 is linux limit?
57 #define USB_2_BENCHMARKFSBUFFERSIZE 2048 // Buffersize for benchmark in FullSpeed mode = worst case history buffer full
58 #define USB_2_BENCHMARKHSBUFFERSIZE 32768 // Buffersize for benchmark in HighSpeed mode = worst case history buffer full
59 #define USB_2_BENCHMARKHISTBUFFERSIZE 64 // Buffersize for benchmark History report
61 #define READWRITECYCLES 10 //Number of times bencmark test will send or read data during a cycle
62 #define BENCHMARKCYCLES 10 //Number of times benchmark will run read/write cycle
66 #define USB_3_EPLOOPOUT 0x01
67 #define USB_3_EPLOOPIN 0x81
70 #define USB_3_BENCHMARK_RW_BUFFER_SIZE 24576
71 #define USB_3_BENCHMARK_RW_BUFFER_COUNT 2
73 #define USB_3_BENCHMARK_BUFFER_SIZE 49512
74 #define USB_3_BENCHMARK_BUFFER_COUNT 2
76 #define USB_3_LOOPBACK_BUFFER_SIZE 1024
77 #define USB_3_LOOPBACK_BUFFER_COUNT 64
139 #define USB_3_DISPLAY_DISABLE 0
140 #define USB_3_DISPLAY_ENABLE (1 << 8)
142 #define LPM_ENTRY_DISABLE 0
143 #define LPM_ENTRY_ENABLE (1 << 8)
145 #define USB_3_PHY_ERROR_DECODE_EV (1 << 0)
146 #define USB_3_PHY_ERROR_EB_OVR_EV (1 << 1)
147 #define USB_3_PHY_ERROR_EB_UND_EV (1 << 2)
148 #define USB_3_PHY_ERROR_DISPARITY_EV (1 << 3)
149 #define USB_3_RX_ERROR_CRC5_EV (1 << 5)
150 #define USB_3_RX_ERROR_CRC16_EV (1 << 6)
151 #define USB_3_RX_ERROR_CRC32_EV (1 << 7)
152 #define USB_3_TRAINING_ERROR_EV (1 << 8)
153 #define USB_3_PHY_LOCK_EV (1 << 9)
155 #define USB_3_HP_TIMEOUT_EN (1 << 0)
156 #define USB_3_RX_SEQ_NUM_ERR_EN (1 << 1)
157 #define USB_3_RX_HP_FAIL_EN (1 << 2)
158 #define USB_3_MISSING_LGOOD_EN (1 << 3)
159 #define USB_3_MISSING_LCRD_EN (1 << 4)
160 #define USB_3_CREDIT_HP_TIMEOUT_EN (1 << 5)
161 #define USB_3_PM_LC_TIMEOUT_EN (1 << 6)
162 #define USB_3_TX_SEQ_NUM_ERR_EN (1 << 7)
163 #define USB_3_HDR_ADV_TIMEOUT_EN (1 << 8)
164 #define USB_3_HDR_ADV_HP_EN (1 << 9)
165 #define USB_3_HDR_ADV_LCRD_EN (1 << 10)
166 #define USB_3_HDR_ADV_LGO_EN (1 << 11)
198 int SendUSB_2_VendorCommand ( libusb_device_handle* udev,
int ReqMode,
int Parameter,
unsigned char* bufferout,
int bufferSize );
199 bool ConnectUSBPlug (
bool bReconnect,
int usbPlugIndex,
USB3_SPEED Speed,
USB_3_TEST_MODE TestMode, libusb_device_handle **handle_udev,
unsigned long *MaxTransferSize,
unsigned long *CurrentTransferSize ,
unsigned char **inBuffer,
unsigned char **outBuffer);
200 int GetUSBDeviceInfo ( libusb_device_handle *udev,
char* serial,
unsigned int serial_size,
char* desc,
unsigned int desc_size,
float* fwVer);
207 int LoopbackTest(libusb_device_handle *handle_udev,
int usbIndex,
int maxTransferSize,
unsigned char *inBuffer,
unsigned char *outBuffer);
209 #endif //PASSMARK_USB_H
Definition: PassMarkUSB.h:82
Definition: PassMarkUSB.h:81
Definition: PassMarkUSB.h:117
unsigned char ss_burst_len
Definition: PassMarkUSB.h:102
Definition: PassMarkUSB.h:89
Definition: PassMarkUSB.h:135
struct USBInfo * USBInfoPtr
#define MAXSERIALNUMLEN
Definition: PassMarkUSB.h:24
enum _USB_3_TEST_MODE USB_3_TEST_MODE
Definition: PassMarkUSB.h:180
Definition: PassMarkUSB.h:125
Definition: PassMarkUSB.h:116
Definition: PassMarkUSB.h:126
Definition: PassMarkUSB.h:123
int SendUSB_3_VendorCommand(libusb_device_handle *udev, int wValue, unsigned char *buf, long bufflen)
Definition: usb_pmusb02_loopback_test.cc:153
Definition: PassMarkUSB.h:185
unsigned char buffer_count
Definition: PassMarkUSB.h:109
Definition: PassMarkUSB.h:119
Definition: PassMarkUSB.h:121
void wait_USB(int wait_time)
Definition: usb_pmusb02_loopback_test.cc:1116
_USB_3_SPEED
Definition: PassMarkUSB.h:130
Definition: PassMarkUSB.h:83
Definition: PassMarkUSB.h:120
Definition: PassMarkUSB.h:181
struct _BENCHMARK_RESULTS BENCHMARK_RESULTS
unsigned char speed
Definition: PassMarkUSB.h:108
enum _USB_3_EP_TYPE USB_3_EP_TYPE
Definition: PassMarkUSB.h:132
unsigned char ep_out
Definition: PassMarkUSB.h:101
Definition: PassMarkUSB.h:91
Definition: PassMarkUSB.h:124
float MaxWriteSpeed
Definition: PassMarkUSB.h:188
unsigned char ep_in
Definition: PassMarkUSB.h:100
USBInfo usbInfo[MAXNUMUSBPORTS+1]
Definition: PassMarkUSB.h:193
int LoopbackTest(libusb_device_handle *handle_udev, int usbIndex, int maxTransferSize, unsigned char *inBuffer, unsigned char *outBuffer)
Definition: usb_pmusb02_loopback_test.cc:1128
Definition: PassMarkUSB.h:122
int SendUSB_2_VendorCommand(libusb_device_handle *udev, int ReqMode, int Parameter, unsigned char *bufferout, int bufferSize)
Definition: usb_pmusb02_loopback_test.cc:207
unsigned char iso_transactions_per_bus_interval
Definition: PassMarkUSB.h:105
int speed
Definition: PassMarkUSB.h:175
enum _DATA_PATTERN DATA_PATTERN
Definition: PassMarkUSB.h:90
Definition: PassMarkUSB.h:118
unsigned short iso_bytes_per_bus_interval
Definition: PassMarkUSB.h:106
unsigned short buffer_size
Definition: PassMarkUSB.h:110
#define MAXNUMUSBPORTS
Definition: PassMarkUSB.h:23
bool ConnectUSBPlug(bool bReconnect, int usbPlugIndex, USB3_SPEED Speed, USB_3_TEST_MODE TestMode, libusb_device_handle **handle_udev, unsigned long *MaxTransferSize, unsigned long *CurrentTransferSize, unsigned char **inBuffer, unsigned char **outBuffer)
Definition: usb_pmusb02_loopback_test.cc:839
unsigned char polling_interval
Definition: PassMarkUSB.h:103
char usbSerial[MAXSERIALNUMLEN]
Definition: PassMarkUSB.h:171
unsigned char test_mode
Definition: PassMarkUSB.h:98
Definition: PassMarkUSB.h:134
int type
Definition: PassMarkUSB.h:174
unsigned char ep_type
Definition: PassMarkUSB.h:99
unsigned char hs_bulk_nak_interval
Definition: PassMarkUSB.h:104
Definition: PassMarkUSB.h:133
Definition: PassMarkUSB.h:127
enum _USB_3_SPEED USB3_SPEED
Definition: PassMarkUSB.h:182
int GetUSBDeviceInfo(libusb_device_handle *udev, char *serial, unsigned int serial_size, char *desc, unsigned int desc_size, float *fwVer)
_DATA_PATTERN
Definition: PassMarkUSB.h:179
_USB_3_EP_TYPE
Definition: PassMarkUSB.h:87
Definition: PassMarkUSB.h:92
int bus
Definition: PassMarkUSB.h:172
float fwVer
Definition: PassMarkUSB.h:176
Definition: PassMarkUSB.h:96
libusb_context * USB_context
Definition: PassMarkUSB.h:192
Definition: PassMarkUSB.h:169
_USB_3_TEST_MODE
Definition: PassMarkUSB.h:79
float MaxReadSpeed
Definition: PassMarkUSB.h:187
int port
Definition: PassMarkUSB.h:173
int GetUSBPortsInfo()
Definition: usb_pmusb02_loopback_test.cc:601
Definition: PassMarkUSB.h:84