diff options
author | Krzysztof Kozlowski <krzk@kernel.org> | 2018-07-24 18:49:46 +0200 |
---|---|---|
committer | Krzysztof Kozlowski <krzk@kernel.org> | 2018-08-30 19:46:06 +0200 |
commit | e0b35c1ab5ac5f0453d1093770e119bd8d63d85c (patch) | |
tree | 172714124cdb99984c35b6b1d98a18cb27d06210 /arch/arm/mach-exynos/common.h | |
parent | ARM: exynos: Store Exynos5420 register state in one variable (diff) | |
download | linux-e0b35c1ab5ac5f0453d1093770e119bd8d63d85c.tar.xz linux-e0b35c1ab5ac5f0453d1093770e119bd8d63d85c.zip |
ARM: exynos: Fix imprecise abort during Exynos5422 suspend to RAM
Suspend to RAM on Odroid XU3/XU4/HC1 family (Exynos5422) causes
imprecise abort:
PM: Syncing filesystems ... done.
Freezing user space processes ... (elapsed 0.003 seconds) done.
OOM killer disabled.
Freezing remaining freezable tasks ... (elapsed 0.003 seconds) done.
wake enabled for irq 139
Disabling non-boot CPUs ...
IRQ51 no longer affine to CPU1
IRQ52 no longer affine to CPU2
IRQ53 no longer affine to CPU3
IRQ54 no longer affine to CPU4
IRQ55 no longer affine to CPU5
IRQ56 no longer affine to CPU6
cpu cpu4: Dropping the link to regulator.40
IRQ57 no longer affine to CPU7
Unhandled fault: external abort on non-linefetch (0x1008) at 0xf081a028
Internal error: : 1008 [#1] PREEMPT SMP ARM
with last call trace in exynos_suspend_enter().
The abort is caused by writing to register in secure part of sysram.
Boards booted under secure firmware (e.g. Hardkernel Odroid boards)
should access non-secure sysram.
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Diffstat (limited to 'arch/arm/mach-exynos/common.h')
-rw-r--r-- | arch/arm/mach-exynos/common.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/arm/mach-exynos/common.h b/arch/arm/mach-exynos/common.h index dcd21bb95e3b..f96730cce6e8 100644 --- a/arch/arm/mach-exynos/common.h +++ b/arch/arm/mach-exynos/common.h @@ -110,6 +110,7 @@ void exynos_firmware_init(void); #define EXYNOS_SLEEP_MAGIC 0x00000bad #define EXYNOS_AFTR_MAGIC 0xfcba0d10 +bool __init exynos_secure_firmware_available(void); void exynos_set_boot_flag(unsigned int cpu, unsigned int mode); void exynos_clear_boot_flag(unsigned int cpu, unsigned int mode); |