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.

TUSB8042A: TUSB8042A cannot recognize the USB 3.0 device when I disable anyone USB ports.

Part Number: TUSB8042A
Other Parts Discussed in Thread: TUSB8044AEVM

Tool/software:

HI I'm William.

Our design is use SMBUS mode. (HOST is BMC , slave is TUSB8042A)
 I use the command to disable USB port 3 from BMC.
 Below is my command.

i2cset -f -y 19 0x44 0x07 0x8f.
i2cset -f -y 19 0x44 0x08 0x0b. (disable port 3 USB)

The port 3 is success to disable.
 But port 1 & port2 only can recognize the USB 2.0 device cannot recognize the USB 3.0 device.
 I understand that only port 3 should be unusable; the other USB ports, both 2.0 and 3.0, should be functioning properly.
 Could you help to check this issue?

Thanks.

Below picture is plug USB 3.0 device but look like all USB ports cannot link USB 3.0 on OS USB tree tool.

Below picture is plug USB 2.0 device, look like all ports can link USB 2.0 device on OS USB tree tool.

  • Hi William:

       How is the value of  register 26h?

    Best

    Brian

  • Hi Brian.

    Above picture register 26h is show 0x01.

    But this is I use command to write register 26h 0x01 for my debug.

    Original value is 0x00. (Support USB 2.0 & 3.0)

  • did you clear the cfgActive in register F8h after write SMBus?

    Best

    Brian

  • Hi Brian,

    No.

    After I writed the register to disable port 3. 

    I'm not clear the cfgActive in register F8h.

    if i clear the cfgActive, the port 3 will return to normal , not disabled.

  • if  cfgActive is not cleared, upstream port will not be connected.

    But don't know why if you clear the cfgActive, the port 3 will return to normal.  let me check on our lab and let you know.

    Best

    Brian

  • Hi Brian,
    Let me explain my experimental results here.

    BMC console write command below

    i2cset -f -y 19 0x44 0xf8 0x01           (Clear cfgActive let upstream connect. At this point, the downstream USB port1 2 3 both can link the USB device 2.0 & 3.0 .)


    i2cset -f -y 19 0x44 0x07 0x8f           i2cset -f -y 19 0x44 0x08 0x0b       (disable USB port3)
    After disable USB port 3. USB port 1 & port 2 cannot link the USB 3.0 device but can link USB 2.0 device.
    Check the register 26h is 0x00.           (both can support 2.0 & 3.0)


    i2cset -f -y 19 0x44 0xf8 0x02
    i2cset -f -y 19 0x44 0xf8 0x01
    (All USB ports work normal both can link USB 2.0 & 3.0 device)

  • The above tests were conducted on the Windows operating system.

  • don't do reset :i2cset -f -y 19 0x44 0xf8 0x02

    Best

    Brian

  • This command (i2cset -f -y 19 0x44 0xf8 0x02.       i2cset -f -y 19 0x44 0xf8 0x01 ) only restores all my USB ports to normal, but it still doesn't explain why disable the USB port 3  , USB port1 & port2 USB 3.0 flash drive to be unrecognized.

    Could you help to try your system or EVB board to see if the same issue on this?

  • I mean just do   i2cset -f -y 19 0x44 0xf8 0x01 only after  changing 07h and 08h.

    never do reset.

    Best

    Brian

  • hi Brian,

    Below is my command. 

    It still cannot recognize the USB 3.0 device but can recognize USB 2.0 device on port 1 & port 2.

    i2cset -f -y 19 0x44 0x07 0x8f

    i2cset -f -y 19 0x44 0x08 0x0b

    i2cset -f -y 19 0x44 0xf8 0x01

    When I disable the port 3 then plug the USB 3 flash drive on port 1 & port 2 the USB tree tool show a problem.

    I can not  recognize USB 3.0 flash drive but USB 2.0 is OK to use.

     

  • Hi Brian,

    I use your TUSB8044AEVM board have the same issue.

    Please help to check.

    thank.

  • ok, I will check on my EVM.

    Best

    Brian

  • 1: change switch 2,3,4 of SW1 (red) to high and turn on power(blue), you sill see no LED on for any downstream port

    there is no hub at USB tree, since this is  still in SMBUS  programming mode

  • 2; write F8h=01, this will exit SMBUS mode., you will see all LEDs on for downstream ports

    you can see 4 ports under USB2 hub, 4 ports under USB3 hub

  • 3: power off and power on the EVM, get into SMBUS programming mode again, all LEDs are off now.

    4: write 07h=8F, 08h=0B, 26h=00,F8h=01

    5: you can see LED of port 3 is off.

    6: you can see 3 usb2 ports under USB2 hub, 3 USB3 ports under USB3 hub. it seems port 4 became port 3

    Best

    Brian

  • Hi Brian,
    thank for your support.
    Our system is ok to use.
    When the HUB has an upstream port connected (cfgActive cleared), you cannot directly disable or enable any downstream port,otherwise there will be issues.
    Changes to enable or disable the USB ports can only take effect when the HUB is not connected to the upstream port (cfgActive not cleared).
    This is my understanding. If there are any mistakes, please correct me.

  • that's correct

  • Hello Brian,

    I want to confirm once again, Is there a way for me to directly enable or disable USB port 3 downstream port during the upstream connection?

    Or do I have to disconnect the hub upstream first before I can enable or disable port 3?

    For example, if downstream port 2 is currently transferring data via a USB drive and I want to disable port 3, do I have to disconnect the upstream port first and then disable port 3? This would cause port 2, which is actively transferring data, to stop working.

    Is this the expected behavior of the hub?

  • HI:

      You need to disconnect the hub upstream first before you can enable or disable port 3.

       To  disconnect the hub upstream with SMBUSz, you can either do it during power on reset or just toggle GRSTz signal (you need to control GRST signal).

    Best

    Brian

  • hi Brian,
    Two questions as below
    1. Can you explain why do we need to disconnect hub upstream in order to configure disable?
    2. F1~F7 & F9 seem to have value changes (not mentioned in the spec). Can I know the meaning of these registers or how to set them?

  • 1. Can you explain why do we need to disconnect hub upstream in order to configure disable

    hub will  check if it's SMBUSz mode or I2C mode  during power on reset based on status of SMBUSz status.

    if in SMBUS mode (SMBUSZ is low), hub upstream port  will not connected to host until cfgActive  bit is cleared.

    F1~F7 & F9 seem to have value changes (not mentioned in the spec). Can I know the meaning of these registers or how to set them?

    This  is F0-F9 register information.

    Best

    Brian

  • Hi Brian,

    1. It seems you didn't answer my question. I wanted to ask why I can't directly disable port 3 after connecting upstream.

        Does the chip itself have any specific characteristics?

    2. Can you share the dicument for me to reference?

        And can we set the values for F1 to F7 and F9?  I tried, but it seems I can't set them. 

  • About question 1 
    My question is regarding the chip's register, which allows independent control of each port. However, why is a reset required before enabling or disabling a USB port? This behavior seems unusual. As mentioned earlier, if a user is transmitting large data through port A and tries to disable port B during the transmission, it causes port A to disconnect. This is not the expected behavior. Is this a known issue or a hardware limitation? If it's a hardware limitation, could you provide a more detailed explanation? 

  • for Q1:

        For TI hub, you only can change  configuration like port control  with EEPROM or SMBus programming mode during power on reset.

        You can not change configuration  on live during upstream connected, this is the way TI hub designed.

    For Q2:  for the document, how can I send to you , I can not just upload here.

       Do you have a user name?

    Best

    Brian

  • Hello Brian.

    Thank you. Please send the doc to my mail.

    Email:wchen31@lenovo.com

  • Hi Brian. 
    Sorry,  I have another question.
    Our system uses three downstream ports of your HUB. Port 1 is used for the internal USB, while ports 2 and 3 use a cable that is optional. I would like to know if, when this cable is connected, the registers of the HUB have values that can confirm whether downstream ports 2 and 3 are connected? Similar to a cable detect function. I'm not sure if the HUB registers can provide this information.

  • Hi William:

       TI hub don't support cable detect so there is no register for cable detection.

        I will send F1-F9 information though private message here.

    Best

    Brian