imx6 HSIC usb2 probe hang

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

imx6 HSIC usb2 probe hang

ソリューションへジャンプ
3,389件の閲覧回数
andreacollamati
Contributor II

Hi All,

we are porting the imx_3.14.28_1.0.0_ga kernel on a  custom board based on a imx6dl processor.

On our board we connected the USB2 HSIC port to a microchip USB3503 HSIC HUB.

We attached our device tree.

 

The kernel hangs during the probe of usbhc2 inside the ci_hdrc_imx_probe.

Using kgdb we found  that the exact point is the call of device_add:

 

ci_hdrc_imx_probe -> ci_hdrc_imx_probe -> ci_hdrc_add_device   -> platform_device_add -> device_add

 

 

Do you have any suggestions?

Best Regards

            Andrea

Original Attachment has been moved to: devicetree.dts.zip

ラベル(2)
1 解決策
1,711件の閲覧回数
sagar_jariwala
Contributor I

Hello Andrea,

I have had the similar problem described by you. I was able to fix this issue with following changes.

Please review your changes against patch mentioned here. Re: imx6: usbhc2/3 and HSIC — ARM, OMAP, Xscale Linux Kernel

Changes in /drivers/usb/chipidea/usbmisc_imx.c are important to fix this hang issue.

It helped me resolve my hang issue. I hope it helps you as well.

Thanks,
Sagar

元の投稿で解決策を見る

3 返答(返信)
1,712件の閲覧回数
sagar_jariwala
Contributor I

Hello Andrea,

I have had the similar problem described by you. I was able to fix this issue with following changes.

Please review your changes against patch mentioned here. Re: imx6: usbhc2/3 and HSIC — ARM, OMAP, Xscale Linux Kernel

Changes in /drivers/usb/chipidea/usbmisc_imx.c are important to fix this hang issue.

It helped me resolve my hang issue. I hope it helps you as well.

Thanks,
Sagar

1,711件の閲覧回数
andreacollamati
Contributor II

Thank you very much Sagar.

It worked!

You are right the most important part is the patch inside /drivers/usb/chipidea/usbmisc_imx.c

+ if (usbdev->index == 2 || usbdev->index == 3) {

     + writel(0x00003000, usbmisc->base + usbdev->index * 4);

     + writel(0x80001842, usbmisc->base + 0x8 + usbdev->index * 4);

+ }

that enables the HSIC clock and HW and write also in reserved control bits...

Thank you again.

0 件の賞賛
返信
1,711件の閲覧回数
CarlosCasillas
NXP Employee
NXP Employee

Hi Andrea,

HSIC is supported in i.MX6 BSPs; please refer to attached i.MX6 Linux Reference Manual

Chapter 34 "ARC USB Driver" and <usb_hsic_xcvr.c> “HSIC featured phy's interface”.

Additionally, please take a look at the following thread which has related information:

HSIC under linux (imx6d)


Hope this will be useful for you.
Best regards!
/Carlos

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------