android_kernel_samsung_a7y1.../arch/arm
Marek Szyprowski 5763abe792 ARM: exynos: Fix undefined instruction during Exynos5422 resume
[ Upstream commit 4d8e3e951a856777720272ce27f2c738a3eeef8c ]

During early system resume on Exynos5422 with performance counters enabled
the following kernel oops happens:

    Internal error: Oops - undefined instruction: 0 [#1] PREEMPT SMP ARM
    Modules linked in:
    CPU: 0 PID: 1433 Comm: bash Tainted: G        W         5.0.0-rc5-next-20190208-00023-gd5fb5a8a13e6-dirty #5480
    Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
    ...
    Flags: nZCv  IRQs off  FIQs off  Mode SVC_32  ISA ARM  Segment none
    Control: 10c5387d  Table: 4451006a  DAC: 00000051
    Process bash (pid: 1433, stack limit = 0xb7e0e22f)
    ...
    (reset_ctrl_regs) from [<c0112ad0>] (dbg_cpu_pm_notify+0x1c/0x24)
    (dbg_cpu_pm_notify) from [<c014c840>] (notifier_call_chain+0x44/0x84)
    (notifier_call_chain) from [<c014cbc0>] (__atomic_notifier_call_chain+0x7c/0x128)
    (__atomic_notifier_call_chain) from [<c01ffaac>] (cpu_pm_notify+0x30/0x54)
    (cpu_pm_notify) from [<c055116c>] (syscore_resume+0x98/0x3f4)
    (syscore_resume) from [<c0189350>] (suspend_devices_and_enter+0x97c/0xe74)
    (suspend_devices_and_enter) from [<c0189fb8>] (pm_suspend+0x770/0xc04)
    (pm_suspend) from [<c0187740>] (state_store+0x6c/0xcc)
    (state_store) from [<c09fa698>] (kobj_attr_store+0x14/0x20)
    (kobj_attr_store) from [<c030159c>] (sysfs_kf_write+0x4c/0x50)
    (sysfs_kf_write) from [<c0300620>] (kernfs_fop_write+0xfc/0x1e0)
    (kernfs_fop_write) from [<c0282be8>] (__vfs_write+0x2c/0x160)
    (__vfs_write) from [<c0282ea4>] (vfs_write+0xa4/0x16c)
    (vfs_write) from [<c0283080>] (ksys_write+0x40/0x8c)
    (ksys_write) from [<c0101000>] (ret_fast_syscall+0x0/0x28)

Undefined instruction is triggered during CP14 reset, because bits: #16
(Secure privileged invasive debug disabled) and #17 (Secure privileged
noninvasive debug disable) are set in DSCR. Those bits depend on SPNIDEN
and SPIDEN lines, which are provided by Secure JTAG hardware block. That
block in turn is powered from cluster 0 (big/Eagle), but the Exynos5422
boots on cluster 1 (LITTLE/KFC).

To fix this issue it is enough to turn on the power on the cluster 0 for
a while. This lets the Secure JTAG block to propagate the needed signals
to LITTLE/KFC cores and change their DSCR.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-04-06 19:02:44 +02:00
..
boot ARM: dts: exynos: Always enable necessary APIO_1V8 and ABB_1V8 regulators on Arndale Octa 2020-04-06 19:02:40 +02:00
common A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
configs A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
crypto crypto: arm/aes-neonbs - don't access already-freed walk.iv 2020-04-06 18:12:55 +02:00
firmware A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
include ARM: avoid Cortex-A9 livelock on tight dmb loops 2020-04-06 14:52:03 +02:00
kernel ARM: 8839/1: kprobe: make patch_lock a raw_spinlock_t 2020-04-06 15:20:37 +02:00
kvm KVM: arm/arm64: Ensure vcpu target is unset on reset failure 2020-04-06 18:14:37 +02:00
lib ARM: 8833/1: Ensure that NEON code always compiles with Clang 2020-04-06 14:51:24 +02:00
mach-alpine A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-asm9260 A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-at91 A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-axxia A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-bcm A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-berlin A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-clps711x A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-cns3xxx A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-davinci A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-digicolor A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-dove A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-ebsa110 A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-efm32 A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-ep93xx A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-exynos ARM: exynos: Fix undefined instruction during Exynos5422 resume 2020-04-06 19:02:44 +02:00
mach-footbridge A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-gemini A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-highbank A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-hisi A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-imx ARM: imx6q: cpuidle: fix bug that CPU might not wake up at expected time 2020-04-06 12:57:24 +02:00
mach-integrator A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-iop13xx ARM: iop: don't use using 64-bit DMA masks 2020-04-06 16:42:32 +02:00
mach-iop32x A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-iop33x A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-ixp4xx A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-keystone A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-ks8695 A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-lpc18xx A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-lpc32xx A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-mediatek A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-meson A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-mmp A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-moxart A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-mv78xx0 A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-mvebu A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-mxs A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-netx A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-nomadik A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-nspire A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-omap1 A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-omap2 ARM: avoid Cortex-A9 livelock on tight dmb loops 2020-04-06 14:52:03 +02:00
mach-orion5x A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-picoxcell A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-prima2 A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-pxa A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-qcom A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-realview A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-rockchip A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-rpc A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-s3c24xx A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-s3c64xx A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-s5pv210 A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-sa1100 A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-shmobile A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-socfpga A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-spear A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-sti A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-stm32 A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-sunxi A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-tegra A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-u300 A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-uniphier A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-ux500 A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-versatile A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-vexpress A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-vt8500 A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-w90x900 A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-zx A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mach-zynq A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mm A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
net A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
nwfpe A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
oprofile A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
plat-iop ARM: iop: don't use using 64-bit DMA masks 2020-04-06 16:42:32 +02:00
plat-omap A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
plat-orion ARM: orion: don't use using 64-bit DMA masks 2020-04-06 16:42:30 +02:00
plat-pxa A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
plat-samsung ARM: samsung: Limit SAMSUNG_PM_CHECK config option to non-Exynos platforms 2020-04-06 15:20:24 +02:00
plat-versatile A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
probes A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
tools A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
vdso A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
vfp A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
xen A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
Kconfig ARM: 8510/1: rework ARM_CPU_SUSPEND dependencies 2020-04-06 12:51:57 +02:00
Kconfig-nommu A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
Kconfig.debug A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
Makefile A750FXXU4CTBC 2020-03-27 21:51:54 +05:30