06 Aug, 2013

1 commit

  • Add per-CPU SMP boot / sleep code that can be used by all
    SoCs included in mach-shmobile.

    The boot code reads out the per-CPU MPIDR id value and
    matches it with the value stored for any CPU number, and
    if there is a match and the boot function is set as well
    then the boot function will be executed.

    The sleep code simply uses WFI and then jumps back to the
    boot code to see if anyone has asked to wake up that CPU,
    if not it will sleep again.

    Signed-off-by: Magnus Damm
    [horms+renesas@verge.net.au: Remove trailing whitespace]
    Signed-off-by: Simon Horman

    Magnus Damm
     

13 Jan, 2013

1 commit

  • Now that the GIC initialization sets up the handle_arch_irq pointer, we
    can remove it for all machines and make it static.

    Signed-off-by: Rob Herring
    Cc: Russell King
    Cc: Anton Vorontsov
    Cc: Kyungmin Park
    Cc: Sascha Hauer
    Cc: David Brown
    Cc: Daniel Walker
    Cc: Bryan Huntsman
    Acked-by: Tony Lindgren
    Cc: Paul Mundt
    Cc: Magnus Damm
    Cc: Dinh Nguyen
    Cc: Shiraz Hashim
    Acked-by: Stephen Warren
    Cc: Srinidhi Kasagar
    Cc: Linus Walleij
    Acked-by: Viresh Kumar
    Acked-by: Kukjin Kim
    Acked-by: Shawn Guo
    Acked-by: Olof Johansson
    Acked-by: Arnd Bergmann

    Rob Herring
     

11 Jan, 2013

1 commit

  • In preparation of moving gic code to drivers/irqchip, remove the direct
    platform dependencies on gic_raise_softirq. Move the setup of
    smp_cross_call into the gic code and use arch_send_wakeup_ipi_mask
    function to trigger wake-up IPIs.

    Signed-off-by: Rob Herring
    Cc: Russell King
    Cc: Kukjin Kim
    Cc: Sascha Hauer
    Cc: David Brown
    Cc: Daniel Walker
    Cc: Bryan Huntsman
    Acked-by: Tony Lindgren
    Acked-by: Santosh Shilimkar
    Cc: Paul Mundt
    Cc: Magnus Damm
    Acked-by: Viresh Kumar
    Cc: Shiraz Hashim
    Acked-by: Stephen Warren
    Cc: Srinidhi Kasagar
    Cc: Linus Walleij
    Acked-by: Olof Johansson

    Rob Herring
     

14 Sep, 2012

1 commit


07 Jul, 2012

1 commit

  • Fix build error in the case of SMP=y but ARCH_SH73A0=n
    introduced by:

    9601e87 ARM: shmobile: fix smp build

    The use of of_machine_is_compatible() will link in the
    the SoC-specific symbols:
    "sh73a0_get_core_count", "sh73a0_smp_prepare_cpus",
    "sh73a0_secondary_init" and "sh73a0_boot_secondary".

    This patch adds an ugly #ifdef wrapper as a stop-gap
    solution.

    Signed-off-by: Magnus Damm
    Tested-by: Tested-by: Simon Horman
    Acked-by: "Rafael J. Wysocki"
    Signed-off-by: Arnd Bergmann

    Magnus Damm
     

20 Jun, 2012

1 commit

  • Build failed, when SMP is enabled and EMEV2 is not enabled.

    arch/arm/mach-shmobile/built-in.o: In function `shmobile_platform_cpu_kill':
    /home/iwamatsu/work/kernel/sh-2.6-devel/arch/arm/mach-shmobile/platsmp.c:62: undefined reference to `emev2_platform_cpu_kill'
    arch/arm/mach-shmobile/built-in.o: In function `shmobile_smp_get_core_count':
    /home/iwamatsu/work/kernel/sh-2.6-devel/arch/arm/mach-shmobile/platsmp.c:39: undefined reference to `emev2_get_core_count'
    arch/arm/mach-shmobile/built-in.o: In function `shmobile_smp_prepare_cpus':
    /home/iwamatsu/work/kernel/sh-2.6-devel/arch/arm/mach-shmobile/platsmp.c:53: undefined reference to `emev2_smp_prepare_cpus'
    arch/arm/mach-shmobile/built-in.o: In function `platform_secondary_init':
    /home/iwamatsu/work/kernel/sh-2.6-devel/arch/arm/mach-shmobile/platsmp.c:78: undefined reference to `emev2_secondary_init'
    arch/arm/mach-shmobile/built-in.o: In function `boot_secondary':
    /home/iwamatsu/work/kernel/sh-2.6-devel/arch/arm/mach-shmobile/platsmp.c:90: undefined reference to `emev2_boot_secondary

    This is the cause by when EMEV2 is disabled, that the check by OF of EMEV2 is
    performed in platsmp.c.
    This patch revise what the function about EMEV2 may not be used in this file,
    when EMEV2 is not enabled.

    Signed-off-by: Nobuhiro Iwamatsu
    Acked-by: Simon Horman
    Acked-by: Magnus Damm
    Signed-off-by: Rafael J. Wysocki

    Nobuhiro Iwamatsu
     

23 May, 2012

1 commit

  • Pull arm-soc board specific changes from Olof Johansson:
    "While we generally attempt to get rid of board specific files and
    replace them with device tree based descriptions, a lot of platforms
    have not come that far:

    In shmobile, we add two new board files because their recently started
    effort to add DT support has not proceeded enough to use it for all of
    the important hardware.

    In Kirkwood, we are adding support for new boards with a combination
    of DT and board file contents in multiple cases.

    pxa/mmp and imx are extending support for existing board files but not
    adding new ones."

    Fix up trivial conflicts in arch/arm/mach-{mmp/ttc_dkb.c,shmobile/{Kconfig,Makefile}}

    * tag 'boards' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (94 commits)
    ARM: shmobile: fix smp build
    ARM: kirkwood: Add support for RaidSonic IB-NAS6210/6220 using devicetree
    kirkwood: Add iconnect support
    orion/kirkwood: create a generic function for gpio led blinking
    kirkwood/orion: fix orion_gpio_set_blink
    ARM: kirkwood: Define DNS-320/DNS-325 NAND in fdt
    kirkwood: Allow nand to be configured via. devicetree
    mtd: Add orion_nand devicetree bindings
    ARM: kirkwood: Basic support for DNS-320 and DNS-325
    ARM: mach-shmobile: Use DT_MACHINE for armadillo 800 eva
    ARM: mach-shmobile: Use DT_MACHINE for KZM9G
    ARM: pxa: hx4700: Add Synaptics NavPoint touchpad
    ARM: pxa: Use REGULATOR_SUPPLY macro
    ARM: mach-shmobile: kzm9g: enable SMP boot
    ARM: mach-shmobile: kzm9g: defconfig update
    ARM: mach-shmobile: kzm9g: add PCF8757 gpio-key
    ARM: mach-shmobile: kzm9g: add SDHI support
    ARM: mach-shmobile: kzm9g: add MMCIF support
    ARM: mach-shmobile: kzm9g: correct screen direction
    ARM: mach-shmobile: sh73a0.h: add GPIO_NR
    ...

    Linus Torvalds
     

18 May, 2012

2 commits

  • Use DT_MACHINE_START() on the emev2 based KZM9D board.

    Also include a tiny DTS file to describe the board and
    update the Kconfig dependencies to select CONFIG_USE_OF.

    Update the SMP glue code to use OF for matching.

    Signed-off-by: Magnus Damm
    Signed-off-by: Rafael J. Wysocki

    Magnus Damm
     
  • This is V3 of Emma Mobile EV2 SMP support.

    At this point only the most basic form of SMP operation
    is supported. TWD and CPU Hotplug support is excluded.

    Tied to both the Emma Mobile EV2 and the KZM9D board
    due to the need to switch on board in platsmp.c and
    the newly introduced need for static mappings.

    The static mappings are needed to allow hardware
    acces early during boot when SMP is initialized.
    This early requirement forces us to also map in
    the SMU registers.

    Signed-off-by: Magnus Damm
    Signed-off-by: Rafael J. Wysocki

    Magnus Damm
     

17 May, 2012

1 commit

  • I got build errors with the new version now because machine_is_kzm9g is no longer
    defined:

    arch/arm/mach-shmobile/platsmp.c: In function 'shmobile_smp_get_core_count':
    arch/arm/mach-shmobile/platsmp.c:29:2: error: implicit declaration of function 'of_machine_is_compatible'

    Replace the missing function with a call to of_machine_is_compatible.

    Signed-off-by: Arnd Bergmann
    Acked-by: "Rafael J. Wysocki"
    Acked-by: Magnus Damm

    Arnd Bergmann
     

13 May, 2012

1 commit


13 Mar, 2012

1 commit


12 Jan, 2012

1 commit

  • This patch contains r8a7779 SMP support V3 - now including
    CPU hotplug offine and online support. The r8a7779 power
    domain code is tied together with SMP glue code which allows
    us to control the power domains via CPU hotplug.

    At this point the kernel boots with the 4 Cortex-A9 cores in
    SMP mode and all CPU cores except CPU0 can be hotplugged.

    The code in platsmp.c is quite far from pretty, but it is
    kept like that intentionally to avoid creating layers of
    code that will go away in the near future anyway. The code
    needs to be updated when some per-SoC handling code will be
    added to the ARM architecture, see the following patch for
    more information:
    "[RFC PATCH 0/3] Per SoC descriptor"

    Signed-off-by: Magnus Damm
    Signed-off-by: Paul Mundt

    Magnus Damm
     

09 Jan, 2012

1 commit


04 Nov, 2011

1 commit


21 Oct, 2011

1 commit

  • Rather than clipping the number of CPUs using the compile-time NR_CPUS
    constant, use the runtime nr_cpu_ids value instead. This allows the
    nr_cpus command line option to work as expected.

    Cc:
    Reported-by: Mark Salter
    Signed-off-by: Russell King

    Russell King
     

29 Aug, 2011

1 commit


07 Jul, 2011

1 commit

  • If an ARM system has multiple cpus in the same socket and the
    kernel is booted with maxcpus=1, secondary cpus are possible but
    not present due to how platform_smp_prepare_cpus() is called.
    Since most typical ARM processors don't actually support physical
    hotplug, initialize the present map to be equal to the possible
    map in generic ARM SMP code. Also, always call
    platform_smp_prepare_cpus() as long as max_cpus is non-zero (0
    means no SMP) to allow platform code to do any SMP setup.

    After applying this patch it's possible to boot an ARM system
    with maxcpus=1 on the command line and then hotplug in secondary
    cpus via sysfs. This is more in line with how x86 does things.

    Signed-off-by: Stephen Boyd
    Cc: Paul Mundt
    Cc: Kukjin Kim
    Cc: David Brown
    Cc: Tony Lindgren
    Cc: Srinidhi Kasagar
    Cc: Linus Walleij
    Signed-off-by: Russell King

    Stephen Boyd
     

23 May, 2011

1 commit


07 Jan, 2011

1 commit


14 Dec, 2010

2 commits

  • Add SMP support for ag5evm and the sh73a0 processor.

    Onlining and offlining works well, but at this point
    offlined processor cores are not put into sleep mode.

    There is no spinlock for syncing the secondary core
    with the first one in this implementation. The code
    instead relies on the cpu_online() check in __cpu_up().

    Signed-off-by: Magnus Damm
    Signed-off-by: Paul Mundt

    Magnus Damm
     
  • Add SMP base support for R-Mobile / SH-Mobile processors.

    This patch contains all base code to support CONFIG_SMP
    regardless of ARCH_SHMOBILE processor type. Both local timer
    and CPU hotplug are supported, but no processor specific
    code is included.

    At this point only the default behavior is in place, so
    a single core will always be used even though CONFIG_SMP
    is enabled on multicore systems.

    The SMP Kconfig entry for arch/arm/Kconfig is excluded from
    this patch to simplify merging.

    Signed-off-by: Magnus Damm
    Signed-off-by: Paul Mundt

    Magnus Damm