> Date: Thu, 11 May 2017 07:02:52 -0700 > From: Tim Harvey <thar...@gateworks.com> > To: Stefano Babic <sba...@denx.de> > Cc: Marek Vasut <ma...@denx.de>, U-Boot-Denx <u-boot@lists.denx.de>, > Peter Senna Tschudin <peter.se...@collabora.com>, Lucas Stach > <l.st...@pengutronix.de> > Subject: Re: [U-Boot] [RFC] drivers: pci: imx: add imx_pcie_remove > function > Message-ID: > <caj+vnu2mop_1bsh5musgaujpdasb7+kdpqgdg+yu4gfbtbs...@mail.gmail.com> > Content-Type: text/plain; charset="UTF-8" > > On Thu, May 11, 2017 at 6:18 AM, Stefano Babic <sba...@denx.de> wrote: > > Hi Fabio, > > > > On 11/05/2017 13:06, Fabio Estevam wrote: > >> On Thu, May 11, 2017 at 6:01 AM, Peter Senna Tschudin > >> <peter.se...@collabora.com> wrote: > >> > >>> Thank you for working on this! Your patch worked for me, but I needed to > >>> add an "extern void imx_pcie_remove(void);" before calling the function, > >>> which probably means I'm missing something. > >> The extern should be added into a header file. > >> > >>> After applying this patch to u-boot, u-boot can initialize PCI and > >>> 4.11.0-next-20170510 will boot. Without your patch 4.11.0-next-20170510 > >>> do not boot if u-boot initialize the PCI bus. > >>> > >>> Thanks a lot! > >>> > >>> Here is the patch I'm using for our board: > >> Stefano, > >> > >> The patches that Tim/Peter posted solve a kernel hang with kernel 4.11 > >> on mx6q when U-Boot has PCI support. > >> > >> Could you please take a look and let us know if there is a more > >> generic way to fix this issue, like fixing it for all mx6qdl boards > >> that have PCI support? > >> > >> I understand that ideally the imx6 pci driver should be converted to > >> driver model and then we add the .remove hook, like Lucas did for > >> Barebox: > >> https://git.pengutronix.de/cgit/barebox/commit/?id=f1da98da2760c21487bbba8f7fb957c843a22896 > >> > >> While the imx pci driver is not converted to device model, would you > >> be willing to accept such per board patches for the time being? > >> > >> Please advise. > > > > Ok - let wait for Tim's answer, if he has enough time to work on this to > > move to DM. If not, it will be ok for now to fix it in this way, hoping > > to move soon to DM. > > > > Regards, > > Stefano > Stefano, > > I don't have enough time to work on the DM conversion currently but it > sounds like this would be a welcomed 'fix' that we should get in > sooner than later. > > I know the include is missing from a header but I didn't bother as I > though there would be a better arch-specific place to put the call to > the remove. I don't think putting it in ft_board_setup made sense. Do > you have any suggestions where it should go? > > Tim
Tim, this patch in addition to your original drivers/pci/pcie_imx.c changes works for me on a tbs2910 board. Since I did not touch board-specific code, this should also work for all affected boards. Regards, Soeren diff --git a/arch/arm/imx-common/cpu.c b/arch/arm/imx-common/cpu.c index 40fe813..7ed9ca0 100644 --- a/arch/arm/imx-common/cpu.c +++ b/arch/arm/imx-common/cpu.c @@ -273,8 +273,13 @@ u32 get_ahb_clk(void) } #endif +extern void imx_pcie_remove(void); + void arch_preboot_os(void) { +#if defined(CONFIG_PCIE_IMX) + imx_pcie_remove(); +#endif #if defined(CONFIG_CMD_SATA) sata_stop(); #if defined(CONFIG_MX6) _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot