[PATCH] ARM: exynos: move sysram info to exynos.c

Tomasz Figa t.figa at samsung.com
Tue Jun 10 05:49:18 PDT 2014


Hi Olof,

On 03.06.2014 06:47, Olof Johansson wrote:
> This solves a problem with building with CONFIG_SMP=n due to missing
> sysram_base_addr (or sysram_ns_base_addr) variables.
> 
> The new setup method is more awkward than I'd like for it to be, but
> it can't be done in init_early() since ioremap is not yet available,
> but it needs to happen before SMP.
> 
> Reported-by: Russell King <linux at arm.linux.org.uk>
> Cc: Kukjin Kim <kgene.kim at samsung.com>
> Cc: Tomasz Figa <t.figa at samsung.com>
> Cc: Daniel Lezcano <daniel.lezcano at linaro.org>
> Signed-off-by: Olof Johansson <olof at lixom.net>
> ---
> 
> I'm not entirely happy with the solution here, especially the dual
> call path. The platsmp.c->exynos.c call isn't ideal either but I'm less
> worried about that. Seemed overkill to create a new c file just for this.
> 
> I've tested to make sure this still works on arndale, and the build
> errors as reported by Russell are definitely gone.

In general, I'm okay with this patch, so if nobody is willing to find a
better way feel free to add my Reviewed-by.

> 
> Better ideas welcome.
> 

Probably the best idea would be to find a way to always call
exynos_sysram_init() after DT unflattening and before SMP
initialization. Some platforms (e.g. tegra) abuse .init_irq callback for
this, e.g.:

mach-tegra/tegra.c:
	static void __init tegra_dt_init_irq(void)
	{
		tegra_pmc_init_irq();
		tegra_init_irq();
		irqchip_init();
		tegra_legacy_irq_syscore_init();
	}

We could do the same on Exynos if this is considered better.

Best regards,
Tomasz



More information about the linux-arm-kernel mailing list