3 Replies Latest reply on Nov 20, 2019 7:20 AM by HemanthR_06

    EZ-USB FX3 Examples: BOS USB 2.0 Extension bmAttributes wrong?

    DiDi_4439146

      Hi, I'm looking through the code examples in the EZ-USB FX3 SDK. I noticed a lot of these examples use the value as part of the BOS Descriptor's USB 2.0 bmAttribute value:

       0x1E,0x64,0x00,0x00,
      

       

      For example in the file EZ-USB FX3 SDK\1.3\firmware\basic_examples\cyfxusbdebug\cyfxusbdscr.c:

          /* USB 2.0 extension */
          0x07,                           /* Descriptor size */
          CY_U3P_DEVICE_CAPB_DESCR,       /* Device capability type descriptor */
          CY_U3P_USB2_EXTN_CAPB_TYPE,     /* USB 2.0 extension capability type */
          0x1E,0x64,0x00,0x00,            /* Supported device level features: LPM support, BESL supported,
                                             Baseline BESL=400 us, Deep BESL=1000 us. */
      

       

      Some of them use what I would expect the value to be of 0x02, for example in EZ-USB FX3 SDK\1.3\firmware\serialif_examples\cyfxusbuart\cyfxusbuartdscr.c:

       

          /* USB 2.0 extension */
          0x07,                           /* Descriptor size */
          CY_U3P_DEVICE_CAPB_DESCR,       /* Device capability type descriptor */
          CY_FX_USB2_EXTN_CAPB_TYPE,      /* USB 2.0 extension capability type */
          0x02,0x00,0x00,0x00,            /* Supported device level features: LPM support  */
      

       

      The examples have the 0x1E values in 40 instances:

      $ grep "2.0 extension capability" * -A2 -R | grep "0x1E" | wc -l
      40
      

       

      and the 0x02 values in 2 instances:

      $ grep "2.0 extension capability" * -A2 -R | grep "0x02" | wc -l
      2
      

       

      Section 9.6.2.1 of the USB 3.2 Spec states:

      Capture.PNG

       

      Which means the only valid values would be

      0x00, 0x00, 0x00, 0x00

      and

      0x02, 0x00, 0x00, 0x00

      for bmAttributes - NOT 0x1E, 0x64, 0x00, 0x00

       

      Is there an error in the examples or my understanding?

      Thank you