I am trying to mount the USB port under the "Universal Serial Bus devices" on Windows as well, and I am also using ffs-test as a starting point. I have updated the anonymous struct to include the additional MS
static const struct {
struct usb_functionfs_descs_head_v2 header;
__le32 fs_count;
__le32 hs_count;
__le32 ss_count;
struct {
struct usb_interface_descriptor intf;
struct usb_endpoint_descriptor_no_audio sink;
struct usb_endpoint_descriptor_no_audio source;
} __attribute__((packed)) fs_descs, hs_descs;
struct {
struct usb_interface_descriptor intf;
struct usb_endpoint_descriptor_no_audio sink;
struct usb_ss_ep_comp_descriptor sink_comp;
struct usb_endpoint_descriptor_no_audio source;
struct usb_ss_ep_comp_descriptor source_comp;
} ss_descs;
#if 1
uint32_t os_count;
struct ms_os_compat os_compat;
struct ms_os_prop os_prop;
#endif
}
The gadget setup script already has the "extra step ln - s to os_desc".
Running the updated ffs-test application returns:
root@imx8mmevk:~/ffs# ../ffs-test.1
[ 3971.931837] read descriptors
ffs-test: info: ep0: writing descriptors (in v2 format)
ffs-test: warn: ep0: new format rejected, trying legacy
ffs-test: crit: ep0: write: descriptors: (-22) Invalid argument
root@imx8mmevk:~/ffs#
Looking for any insights. Thanks!