Thread (3 messages) 3 messages, 2 authors, 2018-07-24

[RFC] ARM: exynos: Fix imprecise abort during Exynos5422 suspend to RAM

From: krzk@kernel.org (Krzysztof Kozlowski)
Date: 2018-07-24 06:33:49
Also in: linux-doc, linux-samsung-soc, lkml

On 23 July 2018 at 16:24, Marek Szyprowski [off-list ref] wrote:
Hi Krzysztof,

On 2018-07-18 21:59, Krzysztof Kozlowski wrote:
quoted
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.
All Exynos5422 devices, including Hardkernel Odroid boards, boot with
TrustZone in non-secure mode therefore they should access non-secure
sysram.

Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>

---

Comments, whether my understanding is correct, are welcomed!
The decision, weather to use secure or non-secure sysram depends on the
enabled TrustZone interface IMHO. Exynos5420 PeachPIT and Exynos5800 PeachPI
don't use TrustZone and don't have 'firmware' node in dts, thus they should
keep existing code.
Ah, you are right. SMDK5420 also would be affected. I'll fix the patch.

Thanks for feedback!

Best regards,
Krzysztof
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help