• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..--

src/11-Mar-2024-2414

CMakeLists.txtD11-Mar-2024224 96

KconfigD11-Mar-2024164 85

README.rstD11-Mar-20243.5 KiB9269

prj.confD11-Mar-2024232 107

sample.yamlD11-Mar-2024178 98

README.rst

1.. _testusb-app:
2
3Testusb application sample
4##########################
5
6The testusb sample implements a loopback function. This function can be used
7to test USB device drivers and the device stack connected to a Linux host
8and has a similar interface to "Gadget Zero" of the Linux kernel.
9The userspace tool ``testusb`` is needed to start the tests.
10
11Building and flashing
12*********************
13
14Follow the general procedure for building and flashing Zephyr device.
15
16Testing
17*******
18
19To run USB tests:
20
21#. Load the ``usbtest`` Linux kernel module on the Linux Host.
22
23   .. code-block:: console
24
25      $ sudo modprobe usbtest vendor=0x2fe3 product=0x0009
26
27   The ``usbtest`` module should claim the device:
28
29   .. code-block:: console
30
31      [21746.128743] usb 9-1: new full-speed USB device number 16 using uhci_hcd
32      [21746.303051] usb 9-1: New USB device found, idVendor=2fe3, idProduct=0009, bcdDevice= 2.03
33      [21746.303055] usb 9-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
34      [21746.303058] usb 9-1: Product: Zephyr testusb sample
35      [21746.303060] usb 9-1: Manufacturer: ZEPHYR
36      [21746.303063] usb 9-1: SerialNumber: 86FE679A598AC47A
37      [21746.306149] usbtest 9-1:1.0: matched module params, vend=0x2fe3 prod=0x0009
38      [21746.306153] usbtest 9-1:1.0: Generic USB device
39      [21746.306156] usbtest 9-1:1.0: full-speed {control} tests
40
41#. Use the ``testusb`` tool in ``linux/tools/usb`` inside Linux kernel source directory
42   to start the tests.
43
44   .. code-block:: console
45
46      $ sudo ./testusb -D /dev/bus/usb/009/016
47      /dev/bus/usb/009/016 test 0,    0.000007 secs
48      /dev/bus/usb/009/016 test 9,    4.994475 secs
49      /dev/bus/usb/009/016 test 10,   11.990054 secs
50
51#. To run all the tests the Zephyr's VID / PID should be inserted to USB
52   driver id table. The method for loading the ``usbtest`` driver for our
53   device is described here: https://lwn.net/Articles/160944/.
54
55   Since we use the "Gadget Zero" interface we specify reference device
56   ``0525:a4a0``.
57
58   .. code-block:: console
59
60      $ sudo sh -c "echo 0x2fe3 0x0009 0 0x0525 0xa4a0 > /sys/bus/usb/drivers/usbtest/new_id"
61
62#. Use the ``testusb`` tool in ``linux/tools/usb`` inside Linux kernel source directory
63   to start the tests.
64
65   .. code-block:: console
66
67      $ sudo ./testusb -v 512 -D /dev/bus/usb/009/016
68      /dev/bus/usb/009/017 test 0,    0.000008 secs
69      /dev/bus/usb/009/017 test 1,    2.000001 secs
70      /dev/bus/usb/009/017 test 2,    2.003058 secs
71      /dev/bus/usb/009/017 test 3,    1.054082 secs
72      /dev/bus/usb/009/017 test 4,    1.001010 secs
73      /dev/bus/usb/009/017 test 5,   57.962142 secs
74      /dev/bus/usb/009/017 test 6,   35.000096 secs
75      /dev/bus/usb/009/017 test 7,   30.000063 secs
76      /dev/bus/usb/009/017 test 8,   18.000159 secs
77      /dev/bus/usb/009/017 test 9,    4.984975 secs
78      /dev/bus/usb/009/017 test 10,   11.991022 secs
79      /dev/bus/usb/009/017 test 11,   17.030996 secs
80      /dev/bus/usb/009/017 test 12,   17.103034 secs
81      /dev/bus/usb/009/017 test 13,   18.022084 secs
82      /dev/bus/usb/009/017 test 14,    2.458976 secs
83      /dev/bus/usb/009/017 test 17,    2.001089 secs
84      /dev/bus/usb/009/017 test 18,    1.998975 secs
85      /dev/bus/usb/009/017 test 19,    2.010055 secs
86      /dev/bus/usb/009/017 test 20,    1.999911 secs
87      /dev/bus/usb/009/017 test 21,    2.440972 secs
88      /dev/bus/usb/009/017 test 24,   55.112078 secs
89      /dev/bus/usb/009/017 test 27,   56.911052 secs
90      /dev/bus/usb/009/017 test 28,   34.163089 secs
91      /dev/bus/usb/009/017 test 29,    3.983999 secs
92