linux/arch/arm
Doug Anderson 7cbcb9d46f ARM: EXYNOS: Don't rely on firmware's secondary_cpu_start for mcpm
On exynos mcpm systems the firmware is hardcoded to jump to an address
in SRAM (0x02073000) when secondary CPUs come up.  By default the
firmware puts a bunch of code at that location.  That code expects the
kernel to fill in a few slots with addresses that it uses to jump back
to the kernel's entry point for secondary CPUs.

Originally (on prerelease hardware) this firmware code contained a
bunch of workarounds to deal with boot ROM bugs.  However on all
shipped hardware we simply use this code to redirect to a kernel
function for bringing up the CPUs.

Let's stop relying on the code provided by the bootloader and just
plumb in our own (simple) code jump to the kernel.  This has the nice
benefit of fixing problems due to the fact that older bootloaders
(like the one shipped on the Samsung Chromebook 2) might have put
slightly different code into this location.

Once suspend/resume is implemented for systems using exynos-mcpm we'll
need to make sure we reinstall our fixed up code after resume.  ...but
that's not anything new since IRAM (and thus the address of the
mcpm_entry_point) is lost across suspend/resume anyway.

Signed-off-by: Doug Anderson <dianders@chromium.org>
Acked-by: Kevin Hilman <khilman@linaro.org>
Tested-by: Kevin Hilman <khilman@linaro.org>
Acked-by: Nicolas Pitre <nico@linaro.org>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2014-06-21 19:30:53 +09:00
..
boot ARM: dts: fix reg sizes of GIC for exynos4 2014-06-17 00:23:29 +09:00
common Merge branch 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm into next 2014-06-05 15:57:04 -07:00
configs ARM: SoC updates for 3.16 (part 2) 2014-06-11 11:03:24 -07:00
crypto
firmware
include Merge commit '3cf2f34' into sched/core, to fix build error 2014-06-12 13:46:37 +02:00
kernel Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-06-12 19:42:15 -07:00
kvm At over 200 commits, covering almost all supported architectures, this 2014-06-04 08:47:12 -07:00
lib
mach-at91 ARM: at91: fix at91_sysirq_mask_rtc for sam9x5 SoCs 2014-06-06 16:08:08 -07:00
mach-axxia ARM: Add platform support for LSI AXM55xx SoC 2014-05-23 18:18:39 +02:00
mach-bcm Merge branch 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm into next 2014-06-05 15:57:04 -07:00
mach-berlin Merge branch 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm into next 2014-06-05 15:57:04 -07:00
mach-clps711x ARM: 8025/1: Get rid of meminfo 2014-06-01 01:17:12 +01:00
mach-cns3xxx Merge branch 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm into next 2014-06-05 15:57:04 -07:00
mach-davinci ACPI and power management updates for 3.16-rc1 2014-06-04 08:57:16 -07:00
mach-dove
mach-ebsa110
mach-efm32
mach-ep93xx
mach-exynos ARM: EXYNOS: Don't rely on firmware's secondary_cpu_start for mcpm 2014-06-21 19:30:53 +09:00
mach-footbridge ARM: 8025/1: Get rid of meminfo 2014-06-01 01:17:12 +01:00
mach-gemini
mach-highbank ARM: l2c: highbank: convert to generic l2c OF initialisation 2014-05-30 00:49:21 +01:00
mach-hisi
mach-imx Merge branch 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm into next 2014-06-05 15:57:04 -07:00
mach-integrator
mach-iop13xx ARM: iop13xx: fix msi support with sparse IRQ 2014-05-26 17:45:09 +02:00
mach-iop32x
mach-iop33x
mach-ixp4xx
mach-keystone ARM: keystone: Drop use of meminfo since its not available anymore 2014-06-05 22:20:54 +02:00
mach-kirkwood mvebu SoC changes for v3.16 2014-05-19 21:59:55 -07:00
mach-ks8695
mach-lpc32xx mmc: mmci: Enforce DMA configuration through DT 2014-06-02 11:20:25 +02:00
mach-mmp
mach-moxart
mach-msm Merge branch 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm into next 2014-06-05 15:57:04 -07:00
mach-mv78xx0
mach-mvebu Fix ARM merge mistake in mvebu board file 2014-06-06 10:24:07 -07:00
mach-mxs
mach-netx
mach-nomadik ARM: l2c: nomadik: convert to generic l2c OF initialisation 2014-05-30 00:49:34 +01:00
mach-nspire
mach-omap1 ARM: OMAP: replace checks for CONFIG_USB_GADGET_OMAP 2014-05-16 14:14:25 -07:00
mach-omap2 This pull request contains the second half the of the clk changes for 2014-06-15 16:02:20 -10:00
mach-orion5x ARM: SoC updates for 3.16 (part 2) 2014-06-11 11:03:24 -07:00
mach-picoxcell
mach-prima2 Merge branch 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm into next 2014-06-05 15:57:04 -07:00
mach-pxa pwm: Changes for v3.16-rc1 2014-06-11 14:06:55 -07:00
mach-qcom ARM: SoC devicetree updates for 3.16 2014-06-02 16:34:00 -07:00
mach-realview Merge branch 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm into next 2014-06-05 15:57:04 -07:00
mach-rockchip Merge branch 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm into next 2014-06-05 15:57:04 -07:00
mach-rpc
mach-s3c24xx Merge branch 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm into next 2014-06-05 15:57:04 -07:00
mach-s3c64xx
mach-s5p64x0
mach-s5pc100
mach-s5pv210 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2014-06-09 18:46:02 -07:00
mach-sa1100 ARM: 8025/1: Get rid of meminfo 2014-06-01 01:17:12 +01:00
mach-shmobile pwm: Changes for v3.16-rc1 2014-06-11 14:06:55 -07:00
mach-socfpga ARM: l2c: socfpga: convert to generic l2c OF initialisation 2014-05-30 00:50:04 +01:00
mach-spear ARM: l2c: spear13xx: remove cache size override 2014-05-30 00:50:06 +01:00
mach-sti Merge branch 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm into next 2014-06-05 15:57:04 -07:00
mach-sunxi ARM: sunxi: allow building without reset controller 2014-05-26 21:27:22 +02:00
mach-tegra Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2014-06-12 14:27:40 -07:00
mach-u300
mach-ux500 Merge branch 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm into next 2014-06-05 15:57:04 -07:00
mach-versatile
mach-vexpress Merge branch 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm into next 2014-06-05 15:57:04 -07:00
mach-vt8500
mach-w90x900
mach-zynq Merge branch 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm into next 2014-06-05 15:57:04 -07:00
mm Merge branch 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm into next 2014-06-05 15:57:04 -07:00
net net: filter: get rid of BPF_S_* enum 2014-06-01 22:16:58 -07:00
nwfpe
oprofile
plat-iop
plat-omap ARM: SoC cleanups for 3.16 2014-06-02 16:14:07 -07:00
plat-orion
plat-pxa
plat-samsung pwm: Changes for v3.16-rc1 2014-06-11 14:06:55 -07:00
plat-versatile
tools
vfp Merge branches 'alignment', 'fixes', 'l2c' (early part) and 'misc' into for-next 2014-06-05 12:35:52 +01:00
xen arm,arm64/xen: introduce HYPERVISOR_suspend() 2014-05-12 17:20:24 +01:00
Kconfig Merge branch 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm into next 2014-06-05 15:57:04 -07:00
Kconfig-nommu
Kconfig.debug Samsung Exynos updates for 3.16 2014-05-30 21:44:49 -07:00
Makefile ARM: Add platform support for LSI AXM55xx SoC 2014-05-23 18:18:39 +02:00