diff mbox

possible regression caused by "ARM: shmobile: r8a7778: Instantiate

Message ID 20150619081416.GA434@verge.net.au (mailing list archive)
State RFC
Delegated to: Simon Horman
Headers show

Commit Message

Simon Horman June 19, 2015, 8:14 a.m. UTC
GIC from C board code in legacy builds"
Reply-To: 

cpu_possible_mask to fix SMP broadcast
Reply-To: 
Organisation: Horms Solutions Ltd.

Hi Magnus, Hi All,

I have observed what appears to be a regression caused by
1fbbc3f0c544 ("ARM: shmobile: r8a7778: Instantiate GIC from C board code in
legacy builds"), which was included in v3.19.

As its subject states,
patch in question is initiates the GIC from C board code in legacy builds.
And this appears to work when booting using non-DT-reference. However,
it causes the boot to fail - I see no console output - for DT-reference.

The patch below is a work-around I used while investigating the problem.

I can think of two solutions:
* A run-time check to see if DT-reference is in use or not:
  possibly by checking for a GIC node in DT.
* Scheduling bockw-reference for removal.

Given our recent discussion of a regression in marzen legacy
I suspect the latter will be preferred.

-- >8 --
From: Simon Horman <horms@verge.net.au>

Subject: [RFC/PATCH] ARM: shmobile: r8a7778: Do not instantiate GIC from C board
 code in DT-reference builds

This is just a work around as it will break booting (non-reference) using
legacy C code if CONFIG_MACH_BOCKW_REFERENCE is enabled.

*** For informational purposes only
*** Not for mainline merge

Fixes: 1fbbc3f0c5440 ("ARM: shmobile: r8a7778: Instantiate GIC from C board
code in legacy builds")
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
---
 arch/arm/mach-shmobile/setup-r8a7778.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Magnus Damm June 19, 2015, 8:18 a.m. UTC | #1
Hi Simon,

Shouldn't DT reference simply go away?

/ magnus

On Fri, Jun 19, 2015 at 5:14 PM, Simon Horman <horms@verge.net.au> wrote:
> GIC from C board code in legacy builds"
> Reply-To:
>
> cpu_possible_mask to fix SMP broadcast
> Reply-To:
> Organisation: Horms Solutions Ltd.
>
> Hi Magnus, Hi All,
>
> I have observed what appears to be a regression caused by
> 1fbbc3f0c544 ("ARM: shmobile: r8a7778: Instantiate GIC from C board code in
> legacy builds"), which was included in v3.19.
>
> As its subject states,
> patch in question is initiates the GIC from C board code in legacy builds.
> And this appears to work when booting using non-DT-reference. However,
> it causes the boot to fail - I see no console output - for DT-reference.
>
> The patch below is a work-around I used while investigating the problem.
>
> I can think of two solutions:
> * A run-time check to see if DT-reference is in use or not:
>   possibly by checking for a GIC node in DT.
> * Scheduling bockw-reference for removal.
>
> Given our recent discussion of a regression in marzen legacy
> I suspect the latter will be preferred.
>
> -- >8 --
> From: Simon Horman <horms@verge.net.au>
>
> Subject: [RFC/PATCH] ARM: shmobile: r8a7778: Do not instantiate GIC from C board
>  code in DT-reference builds
>
> This is just a work around as it will break booting (non-reference) using
> legacy C code if CONFIG_MACH_BOCKW_REFERENCE is enabled.
>
> *** For informational purposes only
> *** Not for mainline merge
>
> Fixes: 1fbbc3f0c5440 ("ARM: shmobile: r8a7778: Instantiate GIC from C board
> code in legacy builds")
> Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
> ---
>  arch/arm/mach-shmobile/setup-r8a7778.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm/mach-shmobile/setup-r8a7778.c b/arch/arm/mach-shmobile/setup-r8a7778.c
> index c49aa094fe17..94d5489b4b07 100644
> --- a/arch/arm/mach-shmobile/setup-r8a7778.c
> +++ b/arch/arm/mach-shmobile/setup-r8a7778.c
> @@ -592,14 +592,14 @@ void __init r8a7778_init_irq_extpin(int irlm)
>  void __init r8a7778_init_irq_dt(void)
>  {
>         void __iomem *base = ioremap_nocache(0xfe700000, 0x00100000);
> -#ifdef CONFIG_ARCH_SHMOBILE_LEGACY
> +#if defined(CONFIG_ARCH_SHMOBILE_LEGACY) && !defined(CONFIG_MACH_BOCKW_REFERENCE)
>         void __iomem *gic_dist_base = ioremap_nocache(0xfe438000, 0x1000);
>         void __iomem *gic_cpu_base = ioremap_nocache(0xfe430000, 0x1000);
>  #endif
>
>         BUG_ON(!base);
>
> -#ifdef CONFIG_ARCH_SHMOBILE_LEGACY
> +#if defined(CONFIG_ARCH_SHMOBILE_LEGACY) && !defined(CONFIG_MACH_BOCKW_REFERENCE)
>         gic_init(0, 29, gic_dist_base, gic_cpu_base);
>  #else
>         irqchip_init();
> --
> 2.1.4
>
--
To unsubscribe from this list: send the line "unsubscribe linux-sh" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Simon Horman June 19, 2015, 8:23 a.m. UTC | #2
On Fri, Jun 19, 2015 at 05:18:03PM +0900, Magnus Damm wrote:
> Hi Simon,
> 
> Shouldn't DT reference simply go away?

Hi Magnus,

yes, I think that would solve things quite nicely.
--
To unsubscribe from this list: send the line "unsubscribe linux-sh" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/arch/arm/mach-shmobile/setup-r8a7778.c b/arch/arm/mach-shmobile/setup-r8a7778.c
index c49aa094fe17..94d5489b4b07 100644
--- a/arch/arm/mach-shmobile/setup-r8a7778.c
+++ b/arch/arm/mach-shmobile/setup-r8a7778.c
@@ -592,14 +592,14 @@  void __init r8a7778_init_irq_extpin(int irlm)
 void __init r8a7778_init_irq_dt(void)
 {
 	void __iomem *base = ioremap_nocache(0xfe700000, 0x00100000);
-#ifdef CONFIG_ARCH_SHMOBILE_LEGACY
+#if defined(CONFIG_ARCH_SHMOBILE_LEGACY) && !defined(CONFIG_MACH_BOCKW_REFERENCE)
 	void __iomem *gic_dist_base = ioremap_nocache(0xfe438000, 0x1000);
 	void __iomem *gic_cpu_base = ioremap_nocache(0xfe430000, 0x1000);
 #endif
 
 	BUG_ON(!base);
 
-#ifdef CONFIG_ARCH_SHMOBILE_LEGACY
+#if defined(CONFIG_ARCH_SHMOBILE_LEGACY) && !defined(CONFIG_MACH_BOCKW_REFERENCE)
 	gic_init(0, 29, gic_dist_base, gic_cpu_base);
 #else
 	irqchip_init();