[PATCH] ARM: shmobile: r8a7740: Instantiate GIC from C board code in legacy builds
Simon Horman
horms at verge.net.au
Wed Dec 17 16:33:12 PST 2014
On Wed, Dec 17, 2014 at 02:20:09PM +0000, Marc Zyngier wrote:
> On 17/12/14 13:40, Geert Uytterhoeven wrote:
> > As of commit 9a1091ef0017c40a ("irqchip: gic: Support hierarchy irq
> > domain."), armadillo-legacy hangs during boot with:
> >
> > sh-tmu.0: ch0: used for clock events
> > sh-tmu.0: ch0: used for periodic clock events
> > sh-tmu.0: ch0: failed to request irq 230
> > sh-tmu.0: ch1: used as clock source
> > sh-cmt-48.1: ch0: failed to request irq 90
> > sh-cmt-48.1: ch0: registration failed
> > earlytimer: unable to probe sh-cmt-48 early.
> > Calibrating delay loop...
> >
> > This happens because the IRQ numbers of the GIC are now virtual, and no
> > longer match the hardcoded hardware IRQ numbers in the platform board
> > code.
> > To fix this, instantiate the GIC from platform board code when compiling
> > a legacy kernel, like is done on sh73a0 for kzm9g-legacy.
>
> Ah, that explains why kzm9g-legacy didn't explode in -next...
>
> > Signed-off-by: Geert Uytterhoeven <geert+renesas at glider.be>
> > ---
> > arch/arm/mach-shmobile/setup-r8a7740.c | 7 +++++++
> > 1 file changed, 7 insertions(+)
> >
> > diff --git a/arch/arm/mach-shmobile/setup-r8a7740.c b/arch/arm/mach-shmobile/setup-r8a7740.c
> > index 79ad93dfdae4ee70..d191cf4197313482 100644
> > --- a/arch/arm/mach-shmobile/setup-r8a7740.c
> > +++ b/arch/arm/mach-shmobile/setup-r8a7740.c
> > @@ -800,7 +800,14 @@ void __init r8a7740_init_irq_of(void)
> > void __iomem *intc_msk_base = ioremap_nocache(0xe6900040, 0x10);
> > void __iomem *pfc_inta_ctrl = ioremap_nocache(0xe605807c, 0x4);
> >
> > +#ifdef CONFIG_ARCH_SHMOBILE_LEGACY
> > + void __iomem *gic_dist_base = ioremap_nocache(0xc2800000, 0x1000);
> > + void __iomem *gic_cpu_base = ioremap_nocache(0xc2000000, 0x1000);
> > +
> > + gic_init(0, 29, gic_dist_base, gic_cpu_base);
> > +#else
> > irqchip_init();
> > +#endif
> >
> > /* route signals to GIC */
> > iowrite32(0x0, pfc_inta_ctrl);
> >
>
> Hopefully we'll be able to move away from this kind of thing at some
> point. Until then:
>
> Acked-by: Marc Zyngier <marc.zyngier at arm.com>
Hi Marc,
I believe that is in progress.
As I understand things the plan is to move away from this when
multiplatform support for the r8a7740 and the Armadillo800-EVM board are
complete. And thus we can remove legacy-C support for that SoC and board.
Lots of deletions!
Geert,
can I confirm that you would like me to pick this up - there are a lot of
changes flying around at the moment? If so would you like it considered as
a fix for v3.19 and stable? If so I will need some information about what
patch introduced the problem in which release. If not can you state why?
The reason for requesting such information is so that I can pass it on to
the ARM SoC maintainers so it is clear to them how to handle the patch and
why.
More information about the linux-arm-kernel
mailing list