New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
FS#497 - ipq806x: non-working USB 3.0 port on R7500 / Netgear X4 nighthawk #5654
Comments
dissent1: Try adding lines 116-134 from here https://git.lede-project.org/?p=source.git;a=blob;f=target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-r7500v2.dts;h=4edfbeb72db42f7a91eee00ab8ad10a97be90721;hb=HEAD into r7500 Dts. |
reiffert: I tried and nothing changed. |
dissent1: Has it been ever working? |
reiffert: Using Netgear Stock Software on linux-3.4.103 it's working just fine. |
dissent1: I mean in lede, half a year ago maybe |
reiffert: These issues are known to occurr since Netgear R7500 ipq806x made it into lede, check out the comments here https://lists.openwrt.org/pipermail/openwrt-devel/2015-August/035335.html |
reiffert: Please find the register dumps taken from /sys/kernel/debug/dwc3/regdump and the diffs as follows.
OEVT set to 0x00000000 and OSTS set to 0x0000000e: it works I tried setting the two registers to 0x0 and 0x0e but had no luck. Someone suggested that these registers are read only and might indicate that something is in a hung state OR needs to finish is initialization. E.g. the PCIe. Needs to be investigated at a later point in time. |
reiffert: Add to arch/arm/boot/dts/qcom-ipq8064.dtsi: Add to arch/arm/boot/dts/qcom-ipq8064-r7500.dts:
pinmux@1a4000b0 {
pinctrl-names = "default";
pinctrl-0 = <&board_pins>;
After booting you would notice:
And that's a working primary USB port! Just so you know, the following can be found in the .dtsi file, however there is no code in phy-qcom-dwc3.c nor dwc3-of-simple.c which would handle it. I wonder why it was added to the .dtsi file while there is no code handling it. You are safe to remove all occurrences of it. syscon-tcsr = <&tcsr 0xb0 1>; FYI, IPQ_TCSR_USB_CONTROLLER_TYPE_SEL was taken from the Netgear GPL. 0xb0 and 0x03 is coming from there too. The above is an attempt to "writel(0x03, 0x1a400000 + 0xb0);" using the devicetree bindings without changing the kernel source code. If anyone knows a smarter way of how to do that .. feel free to add a comment. Let me know if anyone else is able to reproduce this and I will work on a patch. |
reiffert: http://patchwork.ozlabs.org/patch/743409/ fixes it in combination with c2d50bd |
reiffert:
Device problem occurs on all lede versions. It's known to be working with the stock linux kernel-3.4.104
The 2nd USB 3.0 port is not working at all and you can read from dmesg as follows:
[ 74.689113] usb usb2-port1: connect-debounce failed
Instead connecting a USB 2. drive to USB port 2:
[ 162.744896] usb usb2-port1: connect-debounce failed
Connecting it again:
[ 3867.976984] xhci-hcd xhci-hcd.0.auto: Cannot set link state.
[ 3867.977104] usb usb2-port1: cannot disable (err = -32)
I can confirm +5V vs. GND voltage when observing it.
A dmesg output when it happens: [[http://snap.reifferscheid.org/usb.txt|here]]
Latest ipq806x related devicetree changes: [[http://lists.infradead.org/pipermail/lede-commits/2016-November/001566.html|here]] and [[http://lists.infradead.org/pipermail/lede-commits/2016-November/001565.html|here]]
Initial ipq806x related changes: [[https://lists.openwrt.org/pipermail/openwrt-devel/2015-August/035335.html|here]] and [[https://lists.openwrt.org/pipermail/openwrt-devel/2015-August/035341.html|here]]
Netgear GPL source code with Linux kernel-3.4.104: [[http://www.downloads.netgear.com/files/GPL/R7500-and_qtn_gpl_src_V1.0.0.94.zip|here]]
Please let me know what to do - I have one device at hands for testing related changes.
The text was updated successfully, but these errors were encountered: