mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-25 21:20:51 +07:00
2c0f62f9e4
Summary of how to test FFS (FunctionFS) function of USB gadget. Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@samsung.com> Signed-off-by: Felipe Balbi <balbi@ti.com>
161 lines
4.9 KiB
Plaintext
161 lines
4.9 KiB
Plaintext
This file summarizes information on basic testing of USB functions
|
|
provided by gadgets.
|
|
|
|
1. ACM function
|
|
2. ECM function
|
|
3. ECM subset function
|
|
4. EEM function
|
|
5. FFS function
|
|
|
|
|
|
1. ACM function
|
|
===============
|
|
|
|
The function is provided by usb_f_acm.ko module.
|
|
|
|
Function-specific configfs interface
|
|
------------------------------------
|
|
|
|
The function name to use when creating the function directory is "acm".
|
|
The ACM function provides just one attribute in its function directory:
|
|
|
|
port_num
|
|
|
|
The attribute is read-only.
|
|
|
|
There can be at most 4 ACM/generic serial/OBEX ports in the system.
|
|
|
|
|
|
Testing the ACM function
|
|
------------------------
|
|
|
|
On the host: cat > /dev/ttyACM<X>
|
|
On the device : cat /dev/ttyGS<Y>
|
|
|
|
then the other way round
|
|
|
|
On the device: cat > /dev/ttyGS<Y>
|
|
On the host: cat /dev/ttyACM<X>
|
|
|
|
2. ECM function
|
|
===============
|
|
|
|
The function is provided by usb_f_ecm.ko module.
|
|
|
|
Function-specific configfs interface
|
|
------------------------------------
|
|
|
|
The function name to use when creating the function directory is "ecm".
|
|
The ECM function provides these attributes in its function directory:
|
|
|
|
ifname - network device interface name associated with this
|
|
function instance
|
|
qmult - queue length multiplier for high and super speed
|
|
host_addr - MAC address of host's end of this
|
|
Ethernet over USB link
|
|
dev_addr - MAC address of device's end of this
|
|
Ethernet over USB link
|
|
|
|
and after creating the functions/ecm.<instance name> they contain default
|
|
values: qmult is 5, dev_addr and host_addr are randomly selected.
|
|
Except for ifname they can be written to until the function is linked to a
|
|
configuration. The ifname is read-only and contains the name of the interface
|
|
which was assigned by the net core, e. g. usb0.
|
|
|
|
Testing the ECM function
|
|
------------------------
|
|
|
|
Configure IP addresses of the device and the host. Then:
|
|
|
|
On the device: ping <host's IP>
|
|
On the host: ping <device's IP>
|
|
|
|
3. ECM subset function
|
|
======================
|
|
|
|
The function is provided by usb_f_ecm_subset.ko module.
|
|
|
|
Function-specific configfs interface
|
|
------------------------------------
|
|
|
|
The function name to use when creating the function directory is "geth".
|
|
The ECM subset function provides these attributes in its function directory:
|
|
|
|
ifname - network device interface name associated with this
|
|
function instance
|
|
qmult - queue length multiplier for high and super speed
|
|
host_addr - MAC address of host's end of this
|
|
Ethernet over USB link
|
|
dev_addr - MAC address of device's end of this
|
|
Ethernet over USB link
|
|
|
|
and after creating the functions/ecm.<instance name> they contain default
|
|
values: qmult is 5, dev_addr and host_addr are randomly selected.
|
|
Except for ifname they can be written to until the function is linked to a
|
|
configuration. The ifname is read-only and contains the name of the interface
|
|
which was assigned by the net core, e. g. usb0.
|
|
|
|
Testing the ECM subset function
|
|
-------------------------------
|
|
|
|
Configure IP addresses of the device and the host. Then:
|
|
|
|
On the device: ping <host's IP>
|
|
On the host: ping <device's IP>
|
|
|
|
4. EEM function
|
|
===============
|
|
|
|
The function is provided by usb_f_eem.ko module.
|
|
|
|
Function-specific configfs interface
|
|
------------------------------------
|
|
|
|
The function name to use when creating the function directory is "eem".
|
|
The EEM function provides these attributes in its function directory:
|
|
|
|
ifname - network device interface name associated with this
|
|
function instance
|
|
qmult - queue length multiplier for high and super speed
|
|
host_addr - MAC address of host's end of this
|
|
Ethernet over USB link
|
|
dev_addr - MAC address of device's end of this
|
|
Ethernet over USB link
|
|
|
|
and after creating the functions/eem.<instance name> they contain default
|
|
values: qmult is 5, dev_addr and host_addr are randomly selected.
|
|
Except for ifname they can be written to until the function is linked to a
|
|
configuration. The ifname is read-only and contains the name of the interface
|
|
which was assigned by the net core, e. g. usb0.
|
|
|
|
Testing the EEM function
|
|
------------------------
|
|
|
|
Configure IP addresses of the device and the host. Then:
|
|
|
|
On the device: ping <host's IP>
|
|
On the host: ping <device's IP>
|
|
|
|
5. FFS function
|
|
===============
|
|
|
|
The function is provided by usb_f_fs.ko module.
|
|
|
|
Function-specific configfs interface
|
|
------------------------------------
|
|
|
|
The function name to use when creating the function directory is "ffs".
|
|
The function directory is intentionally empty and not modifiable.
|
|
|
|
After creating the directory there is a new instance (a "device") of FunctionFS
|
|
available in the system. Once a "device" is available, the user should follow
|
|
the standard procedure for using FunctionFS (mount it, run the userspace
|
|
process which implements the function proper). The gadget should be enabled
|
|
by writing a suitable string to usb_gadget/<gadget>/UDC.
|
|
|
|
Testing the FFS function
|
|
------------------------
|
|
|
|
On the device: start the function's userspace daemon, enable the gadget
|
|
On the host: use the USB function provided by the device
|