linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Shengzhou Liu <Shengzhou.Liu@freescale.com>
Cc: linux-usb@vger.kernel.org, linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH] powerpc/usb: fix bug of kernel hang when initializing usb
Date: Fri, 17 Feb 2012 11:02:35 +1100	[thread overview]
Message-ID: <1329436955.2892.32.camel@pasglop> (raw)
In-Reply-To: <1329433132.2892.30.camel@pasglop>

On Fri, 2012-02-17 at 09:58 +1100, Benjamin Herrenschmidt wrote:
> On Thu, 2012-02-16 at 18:02 +0800, Shengzhou Liu wrote:
> > If USB UTMI PHY is not enable, writing to portsc register will lead to
> > kernel hang during boot up.
> > 
> > Signed-off-by: Shengzhou Liu <Shengzhou.Liu@freescale.com>
> > ---
> > Apply for master branch of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git 
> > Tested on P5020DS, the issue was reported by Benjamin Herrenschmidt. 
> 
> This fixes the hang, but sadly doesn't make USB work. I now get:

 .../...

Ok, found the problem.

First, the SDK kernel had a delay after setting that bit, I added that
back in. This is not what fixed it but it looks like the right thing to
do, though please, use msleep rather than udelay here if possible (not
in atomic context).

Then, the real culprit is (CC'ing Kumar and Scott to figure out why)
this statement:

#if defined(CONFIG_PPC32) && !defined(CONFIG_NOT_COHERENT_CACHE)
	/*
	 * Turn on cache snooping hardware, since some PowerPC platforms
	 * wholly rely on hardware to deal with cache coherent
	 */

	/* Setup Snooping for all the 4GB space */
	/* SNOOP1 starts from 0x0, size 2G */
	out_be32(non_ehci + FSL_SOC_USB_SNOOP1, 0x0 | SNOOP_SIZE_2GB);
	/* SNOOP2 starts from 0x80000000, size 2G */
	out_be32(non_ehci + FSL_SOC_USB_SNOOP2, 0x80000000 | SNOOP_SIZE_2GB);
#endif

I'm building a 64-bit kernel so this isn't compiled and it looks like
the EHCI is thus not snooping.

By removing the defined(CONFIG_PPC32) part of the statement, my problem
goes away.

Cheers,
Ben.

  reply	other threads:[~2012-02-17  0:02 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-16 10:02 [PATCH] powerpc/usb: fix bug of kernel hang when initializing usb Shengzhou Liu
2012-02-16 10:39 ` Benjamin Herrenschmidt
2012-02-16 16:19   ` Greg KH
2012-02-16 22:58 ` Benjamin Herrenschmidt
2012-02-17  0:02   ` Benjamin Herrenschmidt [this message]
2012-02-17  2:32     ` Liu Shengzhou-B36685
2012-02-17  3:20       ` Pan Jiafei-B37022
2012-02-17  3:42         ` Benjamin Herrenschmidt
2012-02-17  3:46           ` Pan Jiafei-B37022
2012-02-17  3:54           ` Pan Jiafei-B37022
2012-02-18 15:39 ` Sergei Shtylyov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1329436955.2892.32.camel@pasglop \
    --to=benh@kernel.crashing.org \
    --cc=Shengzhou.Liu@freescale.com \
    --cc=linux-usb@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).