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/AM5716: kernel crash during boot using USB1 and PCIE2 simultaneously

Genius 5785 points

Part Number: AM5716

Tool/software: Linux

Hello,

We're debugging the AM5716 custom board with PSDK Linux v03.01.00.06. We have a problem with simultaneous use of USB1 and PCIE2.

We use USB1 as USB2.0 Host using USB2PHY1.
AM571x TRM (SPRUHZ7E) : Figure 24-138. USB1 Highlight

We use PCIE2 as a port of PCIe using USB3_PHY. We also use PCIE1 as another port of PCIe. Each of the opposite devices of PCIe ports is a PCIe-Ethernet Switch.
Figure 26-18. PCIe PHY Subsystem Block Diagram

When I try to use USB1 as USB2.0 Host and PCIE2 simultaneously, a kernel crash occurs during boot. When I don't initialize PCIE at all or use only PCIE1 (x1 mode), it boots normally and works fine. I attached the boot log added some NOTEs, please give me some advice.

Regards,
Kazu

4382.usb_error.log

  • Hi,

    Have you gone through this : e2e.ti.com/.../437761

    L3 Custom Error: MASTER MPU TARGET L4_PER3_P3 (Idle): Data Access in User mode during Functional access

    They discuss about similar crash. Hope it helps.

  • Hello Dwarakesh,

    Sorry for my late reply.

    According to your thread, it certainly looks like my kernel error. However, I've not made any changes to the source code related to USB address. I just inserted some printk functions in the usb driver. Please see the attached file.

    If I do not initialize PCIe, the kernel occurs no error and passes its initialization. So, it doesn't have any kernel errors after accessing usb2(HS-PHY) and the following usb3(SS-PHY) virtual address. Therefore, when I initialize PCIe, I think that the kernel error has occurred while accessing usb3 virtual address. It may be a matter of PCIe initialization.

    Could you tell me how we should check? Please give me some advice.

    Regards,
    Kazu

    6763.usb_driver_diff.zip

  • Dear Experts,

    I need your help. Could you give me some advice on this issue?

    Regards,
    Kazu

  • Kazu,

    Since your design doesn't use USB superspeed, have you tried to remove the usb3_phy1 reference from USB1?

    diff --git a/arch/arm/boot/dts/dra7.dtsi b/arch/arm/boot/dts/dra7.dtsi
    index a05300c64bf3..3e80c3166778 100644
    --- a/arch/arm/boot/dts/dra7.dtsi
    +++ b/arch/arm/boot/dts/dra7.dtsi
    @@ -1771,10 +1771,10 @@
                                    interrupt-names = "peripheral",
                                                      "host",
                                                      "otg";
    -                               phys = <&usb2_phy1>, <&usb3_phy1>;
    -                               phy-names = "usb2-phy", "usb3-phy";
    +                               phys = <&usb2_phy1>;
    +                               phy-names = "usb2-phy";
                                    tx-fifo-resize;
    -                               maximum-speed = "super-speed";
    +                               maximum-speed = "high-speed";
                                    dr_mode = "otg";
                                    snps,dis_u3_susphy_quirk;
                                    snps,dis_u2_susphy_quirk;
    
  • Hello Bin,

    I’m sorry for the late reply. Thank you for your support. Now I'm checking and will feed back the results.

    Regards,
    Kazu