Hi community,
I have a sabre 6 Solo X dev board, and I'm using the morty BSP from the freescale github; linux 4.1-2.0.x+git. I've set dr_mode as host in the dtsi; enabled PCI, ChipIdea and MXS USB PHY USB support in the kernel config.
I know PCI works because inserting an Intel wifi card works. But I'm trying to connect to a Sierra Wireless modem which is USB over PCI, and although I can see the hub with ehci working, the hub doesn't find the device.
I have another dev board using the solo X, from Embedded Artists, which has the 3.14.52-1.1.1 kernel, and this board does see the device.
Dmesg from this device shows:
usb 1-1.1: new high-speed USB device number 3 using ci_hdrc
and lsusb:
Bus 001 Device 003: ID 1199:9091 Sierra Wireless, Inc.
But for the SABRE board with 4.1.38-fslc+gee67fc7e072d, dmesg shows:
2184800.usbmisc supply vbus-wakeup not found, using dummy regulator
ci_hdrc ci_hdrc.0: EHCI Host Controller
ci_hdrc ci_hdrc.0: new USB bus registered, assigned bus number 1
ci_hdrc ci_hdrc.0: USB 2.0 started, EHCI 1.00
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
ci_hdrc ci_hdrc.1: EHCI Host Controller
ci_hdrc ci_hdrc.1: new USB bus registered, assigned bus number 2
ci_hdrc ci_hdrc.1: USB 2.0 started, EHCI 1.00
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 1 port detected
and lsusb:
Bus 002 Device 001: ID 1d6b:0002
Bus 001 Device 001: ID 1d6b:0002
But it doesn't see any devices connected to the hub.
Any ideas what to do ? Is the kernel version wrong, or are there some steps other than using CHIPIDEA and PCI in the kernel and dr_mode=host in the dtsi ?
I've attached the dmesg output.
Thanks,
Mahtab
Solved! Go to Solution.
Hi Mahtab
these signals are optional (according to spec for that connector) and it is
different from usb functionality provided by additional PCIe card inserted to that connector.
Best regards
igor
Hi Mahtab
please try latest Linux 4.9.11_1.0.0 BSP described on
https://www.nxp.com/support/developer-resources/run-time-software/i.mx-developer-resources/i.mx-6ser...
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi Igor,
many thanks for the reply. Could you be a bit more specific about which package to use ? I get that the linux version is 4.9.11_1.0.0: I need the yocto sources because I need to change the kernel configuration. So if I follow the instructions from GitHub - Freescale/fsl-community-bsp-platform: BSP platform manifest :
$: PATH=${PATH}:~/bin$: mkdir fsl-community-bsp$: cd fsl-community-bsp$: repo init -u https://github.com/Freescale/fsl-community-bsp-platform -b morty$: repo sync
And change the -b morty to -b master, do I get the right version ? edit: can I simply change the linux--imx-inc to point SRCBRANCH = "imx_4.9.11_1.0.0_ga" in the sources directory ? I'm a yocto newbie and i'm a bit confused what exactly to use. Actually, I did try that master repo, it does have a later linux version than the morty, but in this one the linux-fslc-imx recipe doesn't support menuconfig, making it harder to change things.
Sorry for asking what must be a very simple question, but can you spell out exactly how to get the right yocto build and one which supports menuconfig ( at least, in the linux reference manual it speaks about menuconfig so I assume it works for all official releases ).
thanks
Mahtab
Hi Mahtab
please look at sect.5 Image Build attached Yocto Guide.
May be useful to check difference between Yocto Community BSP ("fslc") and Freescale BSP :
difference between Yocto Community BSP and Freescale BSP Release
Best regards
igor
Hi again @igorpadykov,
You were right about the linux version, but anyway I have built and compiled 4.9.11_1.0.0 and got an image:
Welcome to NXP i.MX Release Distro 4.9.11-1.0.0 (morty)!
However, with this release, I still can't see my PCIe to USB device on the SabreSD board. As before, PCI, USB_EHICI, CHIPIDEA, etc. are all enabled in menuconfig. Dmesg shows something strange about PCI:
OF: PCI: host bridge /soc/pcie@0x08000000 ranges:
OF: PCI: No bus range found for /soc/pcie@0x08000000, using [bus 00-ff]
OF: PCI: IO 0x08f80000..0x08f8ffff -> 0x00000000
OF: PCI: MEM 0x08000000..0x08efffff -> 0x08000000
imx6q-pcie 8ffc000.pcie: phy link never came up
imx6q-pcie 8ffc000.pcie: Link never came up
imx6q-pcie 8ffc000.pcie: failed to initialize host
imx6q-pcie: probe of 8ffc000.pcie failed with error -110
Should it be " imx6q-pcie .... " ? I am using the imx6sx, so I don't know if this is a problem or not. Apart from what's mentioned in the Linux user manual, is there anything else that needs to be set or done to get USB over PCIe working ?
thanks,
Mahtab
Thanks for the suggestions, I have checked the values of IOMUXC_GPR8 in the EA board, they are the same as far as I can tell:
/* Grab PCIe PHY Tx Settings */ | |
if (of_property_read_u32(node, "fsl,tx-deemph-gen1", | |
&imx6_pcie->tx_deemph_gen1)) | |
imx6_pcie->tx_deemph_gen1 = 20; |
If that is the right place where they are set, then they are all the same.
Do you know of any verified cards that are known to work ? The examples given in the manual are PCIe cards and not for USB over PCie ? Also have there been any similar kinds of questions in community ? I have tried searching but nothing I've found really matches exactly my problem :smileysad:
thanks,
Mahtab
sect.40.4.2 Tests Linux Manual mentions as verified
"PCIe to USB3.0 standard PCIe X1 card"
Best regards
igor
Ok Igor, thanks, I will look...
meanwhile, can I ask a quick question ? On the schematic for the sabre x board, there are 2 resistors connected to USB_HOST_DN and USB_HOST_DP, R177 & R178, they are zero ohm links, and they are marked DNP, so it means that to get USB over PCI working on the SABRE Solo X dev board these need to be fitted ? Is there any reason they are not fitted, will it cause problems elsewhere ?
Thanks,
Mahtab
Hi Mahtab
these signals are optional (according to spec for that connector) and it is
different from usb functionality provided by additional PCIe card inserted to that connector.
Best regards
igor
Hi Igor,
I'm back, I fitted those links and have made a bit of progress but not quite there. Now I get
usb 1-1: device not accepting address 4, error -71
usb 1-1: new high-speed USB device number 5 using ci_hdrc
kind of errors with the card. Also:
usb_otg1_vbus: disabling
Apparently error -71 usually means a device isn't powered, could that be anything to do with usb_otg1_vbus ? Although I thought the PCIe2USB controller on the SoloX was usb_otg2..still, do you have any suggestions what to do ?
edit: I can also see a
ci_hdrc ci_hdrc.0: there is a vbus glitch
in dmesg
Thanks,
mahtab
Igor,
Thank you, you've been very patient with me and the last document you sent looks like it's solved the mystery. From the card tech ref:
On the card, this USB_D+/ USB_D- are indeed different from the USB/PCIE functionality but still seem to be required for this card. I was worried that inserting the links would kill the usb otg serial console but I guess even if that happens otg can be configured differently to avoid any conflicts.
I'll have the links fitted and let you know how I get on ! My very best regards, enjoy your weekend ! :smileyhappy:
Mahtab