Getting USB over PCIe to work on SABRE 6SX dev board

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Getting USB over PCIe to work on SABRE 6SX dev board

Jump to solution
7,283 Views
msarwar
Contributor III

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

Labels (2)
1 Solution
1,246 Views
igorpadykov
NXP Employee
NXP Employee

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.

http://fit-pc.com/download/facet-cards/documents/PCI_Express_miniCard_Electromechanical_specs_rev1.2... 

Best regards
igor

View solution in original post

11 Replies
1,246 Views
igorpadykov
NXP Employee
NXP Employee

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!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos
1,246 Views
msarwar
Contributor III

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

0 Kudos
1,246 Views
igorpadykov
NXP Employee
NXP Employee

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

0 Kudos
1,246 Views
msarwar
Contributor III

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

0 Kudos
1,246 Views
igorpadykov
NXP Employee
NXP Employee

Hi Mahtab

IOMUXC_GPR8 defines some PCIe signal settings, if card works with

Embedded Artists BSP, one can check these settings and reuse them in  L4.9.11

Also one can try with other verified cards, described in sect.4.9.4.2 Tests attached Linux

Manual.

Best regards
igor

0 Kudos
1,246 Views
msarwar
Contributor III

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

0 Kudos
1,246 Views
igorpadykov
NXP Employee
NXP Employee

sect.40.4.2 Tests Linux Manual mentions as verified

"PCIe to USB3.0 standard PCIe X1 card"

Best regards
igor

0 Kudos
1,246 Views
msarwar
Contributor III

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

0 Kudos
1,247 Views
igorpadykov
NXP Employee
NXP Employee

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.

http://fit-pc.com/download/facet-cards/documents/PCI_Express_miniCard_Electromechanical_specs_rev1.2... 

Best regards
igor

1,246 Views
msarwar
Contributor III

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

0 Kudos
1,246 Views
msarwar
Contributor III

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:

pastedImage_1.png

pastedImage_2.png

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

0 Kudos