Message ID | CALG0vJtjS2wP_s=-iyG1ABKw_ct=B9OdNXY9YCrnkhAnpaN1Zw@mail.gmail.com (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
On 06/10/2013 12:07:43 PM, Michael Guntsche wrote: > Good evening, > > On Mon, Jun 10, 2013 at 1:41 PM, Rojhalat Ibrahim <imr@rtschenk.de> > wrote: > > Hi Mike, > > > > could you please try this patch: > > https://lists.ozlabs.org/pipermail/linuxppc-dev/2013-May/106624.html > > http://patchwork.ozlabs.org/patch/244515/ > > > > Rojhalat > > > > > > On Saturday 08 June 2013 21:39:37 Michael Guntsche wrote: > >> After bisecting I found the responsible commit. > >> > >> 50d8f87d2b3: powerpc/fsl-pci Make PCIe hotplug work with Freescale > >> PCIe controllers > >> > >> Reverting this commit allowed my board to boot again. > >> > >> @Rojhalat: Please have a look at > >> http://marc.info/?l=linux-kernel&m=137071294204858&w=2 > >> for my initial bugreport. > >> > >> What I do not understand at all is why this is affecting my > platform. > >> AFAIK there is no PCIe hardware on it AND I completely disabled > PCIe > >> support in config. > >> > >> Kind regards, > >> Mike > > This patch does not fix the problem, during boot the kernel still > panics. I had a closer look at the commit and the following patch > fixes it for me.... > > diff --git a/arch/powerpc/sysdev/fsl_pci.c > b/arch/powerpc/sysdev/fsl_pci.c > index 028ac1f..21b687f 100644 > --- a/arch/powerpc/sysdev/fsl_pci.c > +++ b/arch/powerpc/sysdev/fsl_pci.c > @@ -814,7 +814,7 @@ int __init mpc83xx_add_bridge(struct device_node > *dev) > if (ret) > goto err0; > } else { > - fsl_setup_indirect_pci(hose, rsrc_cfg.start, > + setup_indirect_pci(hose, rsrc_cfg.start, > rsrc_cfg.start + 4, 0); > } The only difference here is that you're not setting hose->ops to fsl_indirect_pci_ops. Do you know why that is helping, and what hose->ops is set to instead? -Scott
On Monday 10 June 2013 17:52:33 Scott Wood wrote: > On 06/10/2013 12:07:43 PM, Michael Guntsche wrote: > > Good evening, > > > > On Mon, Jun 10, 2013 at 1:41 PM, Rojhalat Ibrahim <imr@rtschenk.de> > > > > wrote: > > > Hi Mike, > > > > > > could you please try this patch: > > > https://lists.ozlabs.org/pipermail/linuxppc-dev/2013-May/106624.html > > > http://patchwork.ozlabs.org/patch/244515/ > > > > > > Rojhalat > > > > > > On Saturday 08 June 2013 21:39:37 Michael Guntsche wrote: > > >> After bisecting I found the responsible commit. > > >> > > >> 50d8f87d2b3: powerpc/fsl-pci Make PCIe hotplug work with Freescale > > >> PCIe controllers > > >> > > >> Reverting this commit allowed my board to boot again. > > >> > > >> @Rojhalat: Please have a look at > > >> http://marc.info/?l=linux-kernel&m=137071294204858&w=2 > > >> for my initial bugreport. > > >> > > >> What I do not understand at all is why this is affecting my > > > > platform. > > > > >> AFAIK there is no PCIe hardware on it AND I completely disabled > > > > PCIe > > > > >> support in config. > > >> > > >> Kind regards, > > >> Mike > > > > This patch does not fix the problem, during boot the kernel still > > panics. I had a closer look at the commit and the following patch > > fixes it for me.... > > > > diff --git a/arch/powerpc/sysdev/fsl_pci.c > > b/arch/powerpc/sysdev/fsl_pci.c > > index 028ac1f..21b687f 100644 > > --- a/arch/powerpc/sysdev/fsl_pci.c > > +++ b/arch/powerpc/sysdev/fsl_pci.c > > @@ -814,7 +814,7 @@ int __init mpc83xx_add_bridge(struct device_node > > *dev) > > > > if (ret) > > > > goto err0; > > > > } else { > > > > - fsl_setup_indirect_pci(hose, rsrc_cfg.start, > > + setup_indirect_pci(hose, rsrc_cfg.start, > > > > rsrc_cfg.start + 4, 0); > > > > } > > The only difference here is that you're not setting hose->ops to > fsl_indirect_pci_ops. Do you know why that is helping, and what > hose->ops is set to instead? > > -Scott The difference is only the read function in hose->ops, which is set to indirect_read_config instead of fsl_indirect_read_config. fsl_indirect_read_config calls fsl_pcie_check_link, which is where the Oops occurs. Mike, can you find out where exactly in fsl_pcie_check_link the bad access happens? Enabling CONFIG_DEBUG_BUGVERBOSE might help. Rojhalat
On Tue, Jun 11, 2013 at 7:00 PM, Scott Wood <scottwood@freescale.com> wrote: > On 06/11/2013 02:24:28 AM, Rojhalat Ibrahim wrote: >> >> On Monday 10 June 2013 17:52:33 Scott Wood wrote: >> > On 06/10/2013 12:07:43 PM, Michael Guntsche wrote: >> > > Good evening, >> > > >> > > This patch does not fix the problem, during boot the kernel still >> > > panics. I had a closer look at the commit and the following patch >> > > fixes it for me.... >> > > >> > > diff --git a/arch/powerpc/sysdev/fsl_pci.c >> > > b/arch/powerpc/sysdev/fsl_pci.c >> > > index 028ac1f..21b687f 100644 >> > > --- a/arch/powerpc/sysdev/fsl_pci.c >> > > +++ b/arch/powerpc/sysdev/fsl_pci.c >> > > @@ -814,7 +814,7 @@ int __init mpc83xx_add_bridge(struct device_node >> > > *dev) >> > > >> > > if (ret) >> > > >> > > goto err0; >> > > >> > > } else { >> > > >> > > - fsl_setup_indirect_pci(hose, rsrc_cfg.start, >> > > + setup_indirect_pci(hose, rsrc_cfg.start, >> > > >> > > rsrc_cfg.start + 4, 0); >> > > >> > > } >> > >> > The only difference here is that you're not setting hose->ops to >> > fsl_indirect_pci_ops. Do you know why that is helping, and what >> > hose->ops is set to instead? >> > >> > -Scott >> >> The difference is only the read function in hose->ops, which is set to >> indirect_read_config instead of fsl_indirect_read_config. >> >> fsl_indirect_read_config calls fsl_pcie_check_link, which is where the >> Oops >> occurs. > > > Why is fsl_pcie_check_link being called for non-PCIe buses? > > >> Mike, can you find out where exactly in fsl_pcie_check_link the bad access >> happens? Enabling CONFIG_DEBUG_BUGVERBOSE might help. > > > Why does it matter? You shouldn't be calling that function at all. > > -Scott For the record BUGVERBOSE is already set with this build so this is the most detailed trace I get. And regarding Scott's remark, maybe I was not clear enough in my first report. This is a PCI only board so I also wondered about the call to fsl_pcie_check_link in the first place. Since apparently the 83xx related add bridge code already has a case for boards with PCIe support. So I think the change should really happen somewhere in this code and not in the PCI only path. /Mike
diff --git a/arch/powerpc/sysdev/fsl_pci.c b/arch/powerpc/sysdev/fsl_pci.c index 028ac1f..21b687f 100644 --- a/arch/powerpc/sysdev/fsl_pci.c +++ b/arch/powerpc/sysdev/fsl_pci.c @@ -814,7 +814,7 @@ int __init mpc83xx_add_bridge(struct device_node *dev) if (ret) goto err0; } else { - fsl_setup_indirect_pci(hose, rsrc_cfg.start, + setup_indirect_pci(hose, rsrc_cfg.start, rsrc_cfg.start + 4, 0); }