linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] ARM: shmobile: r8a7740: Instantiate GIC from C board code in legacy builds
@ 2014-12-17 13:40 Geert Uytterhoeven
  2014-12-17 14:20 ` Marc Zyngier
  0 siblings, 1 reply; 5+ messages in thread
From: Geert Uytterhoeven @ 2014-12-17 13:40 UTC (permalink / raw)
  To: linux-arm-kernel

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.

Signed-off-by: Geert Uytterhoeven <geert+renesas@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);
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH] ARM: shmobile: r8a7740: Instantiate GIC from C board code in legacy builds
  2014-12-17 13:40 [PATCH] ARM: shmobile: r8a7740: Instantiate GIC from C board code in legacy builds Geert Uytterhoeven
@ 2014-12-17 14:20 ` Marc Zyngier
  2014-12-18  0:33   ` Simon Horman
  0 siblings, 1 reply; 5+ messages in thread
From: Marc Zyngier @ 2014-12-17 14:20 UTC (permalink / raw)
  To: linux-arm-kernel

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@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@arm.com>

	M.
-- 
Jazz is not dead. It just smells funny...

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH] ARM: shmobile: r8a7740: Instantiate GIC from C board code in legacy builds
  2014-12-17 14:20 ` Marc Zyngier
@ 2014-12-18  0:33   ` Simon Horman
  2014-12-18  8:14     ` Geert Uytterhoeven
  0 siblings, 1 reply; 5+ messages in thread
From: Simon Horman @ 2014-12-18  0:33 UTC (permalink / raw)
  To: linux-arm-kernel

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@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@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.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH] ARM: shmobile: r8a7740: Instantiate GIC from C board code in legacy builds
  2014-12-18  0:33   ` Simon Horman
@ 2014-12-18  8:14     ` Geert Uytterhoeven
  2014-12-19  0:12       ` Simon Horman
  0 siblings, 1 reply; 5+ messages in thread
From: Geert Uytterhoeven @ 2014-12-18  8:14 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Simon,

On Thu, Dec 18, 2014 at 1:33 AM, Simon Horman <horms@verge.net.au> wrote:
> 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:

> 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 above-mentioned commit will be in v3.19-rc1. So getting it in
v3.19 only sounds
fine (unless you want to backport the IRQ domain breakage to 3.14-ltsi ;-)

Thanks!

> 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.

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert at linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH] ARM: shmobile: r8a7740: Instantiate GIC from C board code in legacy builds
  2014-12-18  8:14     ` Geert Uytterhoeven
@ 2014-12-19  0:12       ` Simon Horman
  0 siblings, 0 replies; 5+ messages in thread
From: Simon Horman @ 2014-12-19  0:12 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, Dec 18, 2014 at 09:14:46AM +0100, Geert Uytterhoeven wrote:
> Hi Simon,
> 
> On Thu, Dec 18, 2014 at 1:33 AM, Simon Horman <horms@verge.net.au> wrote:
> > 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:
> 
> > 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 above-mentioned commit will be in v3.19-rc1. So getting it in
> v3.19 only sounds fine

Thanks, I will see about making it so.

> (unless you want to backport the IRQ domain breakage to 3.14-ltsi ;-)

Hopefully not :)

> Thanks!
> 
> > 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.
> 
> Gr{oetje,eeting}s,
> 
>                         Geert
> 
> --
> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert at linux-m68k.org
> 
> In personal conversations with technical people, I call myself a hacker. But
> when I'm talking to journalists I just say "programmer" or something like that.
>                                 -- Linus Torvalds
> --
> To unsubscribe from this list: send the line "unsubscribe linux-sh" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2014-12-19  0:12 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-12-17 13:40 [PATCH] ARM: shmobile: r8a7740: Instantiate GIC from C board code in legacy builds Geert Uytterhoeven
2014-12-17 14:20 ` Marc Zyngier
2014-12-18  0:33   ` Simon Horman
2014-12-18  8:14     ` Geert Uytterhoeven
2014-12-19  0:12       ` Simon Horman

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).