This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Linux/DRA750: dra7xx evm doesn't generate eye diagram on usb port 2

Part Number: DRA750


Tool/software: Linux

Hi all,

we are using DRA7xx_GLSDK_7.04.00.03 on dra7xx evm.

We need to measure the eye diagram on usb port2 (usb 2.0).
Refer to processors.wiki.ti.com/.../USB_General_Guide_Linux_v3.8,

# mount -t debugfs debugfs /mnt

# echo "test_packet" > /mnt/488d0000.usb/test_mode

but no pattern was generated after above sequence.

Is there any extra step need to make for generating eye diagram?

Thank you.

  • Hi Shawn,

    I have forwarded your question to USB expert.

    Regards,
    Yordan
  • Shawn lin

    Above mentioned steps are correct. Can you check once USB2 port is working in host/device mode. Once its working issue "test_packet" command. Capture the bus trace and check.

    Regards
    Ravi
  • Hi Ravi,
    thanks for your reply.
    We have checked these two situation, no difference between them.
    Nothing happened after test_packet command.

  • Hi Shawn

    Before issuing "test_packet" command, whether the specific USB port X is functionally working in host or device mode ? Do you see SOF on the bus and enumeration sequence ?

    Regards
    Ravi
  • Hi Ravi,
    I'm sorry, could you please kindly tell me exactly how to perform this test?
    Something like step 1: connect a usb disk to check the host port is functionally working,
    step 2: issuing test_packet and capture the wave form,
    step3: ...

    I am afraid that i might misunderstand what you mean before.
    Sorry for my poor English and tank you again for your help.
  • Yes, you are correct, i meant verify the USB host mode by connecting the USB disk and check USB disk is enumerated successfully.

    Are you using USB0 or USB1 port ?

    Regards

    Ravi

  • OK, if you mean USB0 is a USB 3.0 port and USB1 is a USB2.0 port, then I'm using USB1.
    (on dra7-evm board, there are only USB1(3.0) adn USB2(2.0)),
    The usb disk can be enumerated successfully and we can read/write files to it after we mount it.
    But after we send the "test_packet" command, nothing happened.
  • Shawn

    Did you tried below sequence .

    1) Connect the USB disk to USB1 or USB2 port through analyzer and capture the bus trace and make sure you are able to capture the USB transaction & SOFs on the bus.

    2) Without disconnecting the USB disk, initiate test_packet generation.

    #mount -t debugfs debugfs /mnt

    #echo "test_packet" > /mnt/488<9 or d>0000.usb/test_mode

    3) You must see the test packet on the bus trace.

    Regards

    Ravi

  • Hi Ravi,
    1) yes we did.
    2) yes we did.
    3) nothing changed

    thanks for your reply,
    please give us some direction to debug this issue.
    Thanks again.
  • Shawn

    Sorry for delayed response.

    Did you checked writing manually to USB_PORTMSC1 register ?

    Check with below sequence.

    1) boot the kernel and make sure host is working and SOF seen on USB bus trace.

    2) from kernel prompt

    #devmem2 0x488d0424 w 0x40000000

    The USB_PORTMSC1 register 0x488d0424 bit[31..28] is for Port Test controls.

    bit [31..28] = 1 - Test J STATE

    2 - TEST-K STATE

    3 - TEST-SE0 NAK

    4 -TEST PACKET 

    etc..

    refer to DRA7X TRM and XHCI specification for more details

    Regards

    Ravi

  • Shawn

    The echo "test_packet" > /mnt/488<9 or d>0000.usb/testmode is supported only for device mode.
    Put the USB1 or USB2 port in device mode and issue the above command from kernel, the test_packet (53bytes) should be generated in device mode as well.

    For host mode, you can use above mentioned writing to USBPORTMS1 register from kernel.

    Regards
    Ravi