[PATCHv2 for soc 4/4] arm: socfpga: Add SMP support for actual socfpga harware

Olof Johansson olof at lixom.net
Thu Jan 31 22:50:40 EST 2013


Hi,

On Thu, Jan 31, 2013 at 11:05:43AM -0600, dinguyen at altera.com wrote:
> From: Dinh Nguyen <dinguyen at altera.com>
> 
> Because the CPU1 start address is different for socfpga-vt and
> socfpga-cyclone5, we add code to use the correct CPU1 start addr.
> 
> Signed-off-by: Dinh Nguyen <dinguyen at altera.com>
> Cc: Russell King <linux at arm.linux.org.uk>
> Cc: Arnd Bergmann <arnd at arndb.de>
> Cc: Olof Johansson <olof at lixom.net>
> Cc: Pavel Machek <pavel at denx.de>
> ---
>  .../bindings/arm/altera/socfpga-system.txt         |    2 ++
>  arch/arm/boot/dts/socfpga_cyclone5.dts             |    4 ++++
>  arch/arm/boot/dts/socfpga_vt.dts                   |    4 ++++
>  arch/arm/mach-socfpga/core.h                       |    4 +++-
>  arch/arm/mach-socfpga/headsmp.S                    |   16 ++++++++++++----
>  arch/arm/mach-socfpga/platsmp.c                    |    3 ++-
>  arch/arm/mach-socfpga/socfpga.c                    |    8 ++++++++
>  7 files changed, 35 insertions(+), 6 deletions(-)

> @@ -72,6 +73,13 @@ void __init socfpga_sysmgr_init(void)
>  	struct device_node *np;
>  
>  	np = of_find_compatible_node(NULL, NULL, "altr,sys-mgr");
> +
> +	if (of_property_read_u32(np, "cpu1-start-addr",
> +			(u32 *) &cpu1start_addr)) {
> +		early_printk("Need cpu1-start-addr in device tree.\n");
> +		panic("Need cpu1-start-addr in device tree.\n");
> +	}
> +
>  	sys_manager_base_addr = of_iomap(np, 0);

Wouldn't it be easier to diagnose this failure if you just printed the error
and continued booting without the second CPU? An early panic is usually really
hard to debug since you might not get early console without extra work.


-Olof



More information about the linux-arm-kernel mailing list