Dunfell kernel oops on boot in pmic_irq

Forums Devices OSD32MP15x Dunfell kernel oops on boot in pmic_irq

Viewing 1 reply thread
  • Author
    Posts
    • #15454
      c spenglerc spengler
      Participant

        On our custom board we are seeing a kernel oops at boot every time. The dump of it
        indicates that a bad address for a notification client was used. The specific call
        stack item “stpmic1_boost_irq_handler” implies that there is a REGULATOR_EVENT_OVER_CURRENT
        event and when the driver info is passed off to the “_notifier_call_chain” routine, the
        notifier pointer is invalid. That crashes that k-thread, and as near as I can tell it
        never restarts. Also, if that subsystem never restarts, what is broken?

        We have made no mods to the kernel and the dev tree is pretty close to stock. How do
        I fix this error? Here is the oops:

        [    2.777396] 8<— cut here —
        [    2.779771] Unable to handle kernel NULL pointer dereference at virtual address 0000004c
        [    2.787796] pgd = 84ade257
        [    2.790512] [0000004c] *pgd=00000000
        [    2.794063] Internal error: Oops: 5 [#1] PREEMPT SMP ARM
        [    2.799363] Modules linked in:
        [    2.802412] CPU: 0 PID: 63 Comm: irq/52-pmic_irq Not tainted 5.10.10 #1
        [    2.809018] Hardware name: STM32 (Device Tree Support)
        [    2.814165] PC is at blocking_notifier_call_chain+0x4/0x8c
        [    2.819638] LR is at regulator_notifier_call_chain+0xc/0x14
        [    2.825200] pc : [<c0149b00>]    lr : [<c066c04c>]    psr: 60000013
        [    2.831463] sp : c2823eb8  ip : 00000001  fp : c0cc7af8
        [    2.836682] r10: c0cc7f28  r9 : c2816c00  r8 : 0000000e
        [    2.841902] r7 : c282d26c  r6 : c282d200  r5 : c120f968  r4 : c28098c0
        [    2.848426] r3 : 00000000  r2 : 00000000  r1 : 00000002  r0 : 00000034
        [    2.854952] Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment none
        [    2.862084] Control: 10c5387d  Table: c000406a  DAC: 00000051
        [    2.867828] Process irq/52-pmic_irq (pid: 63, stack limit = 0xa4a6ff98)
        [    2.874439] Stack: (0xc2823eb8 to 0xc2824000)
        [    2.878791] 3ea0:                                                       c28098c0 c120f968
        [    2.886975] 3ec0: c282d200 c282d26c 0000000e c2816c00 c0cc7f28 c066c04c c28098c0 c0683374
        [    2.895153] 3ee0: c282f4c0 00000000 c282d200 c0182ddc 00000020 00000024 c1bf0d00 00000001
        [    2.903331] 3f00: 0000000e c07431c4 00000000 00000000 00000000 c1104d08 c2823f6c c280b140
        [    2.911508] 3f20: c1bf0c00 c2822000 00000001 c280b140 c017f0d0 ffffe000 00000000 c017f0ec
        [    2.919686] 3f40: c1bf0c00 c280b164 c2822000 c017f404 60000013 00000000 c017f1fc c1104d08
        [    2.927864] 3f60: 00000000 c280b1c0 c280b180 c2822000 c19e7a8c c017f2d0 c280b140 c280b1e4
        [    2.936040] 3f80: 00000000 c014818c 00000000 c280b180 c0148048 00000000 00000000 00000000
        [    2.944217] 3fa0: 00000000 00000000 00000000 c0100148 00000000 00000000 00000000 00000000
        [    2.952392] 3fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
        [    2.960568] 3fe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000
        [    2.968761] [<c0149b00>] (blocking_notifier_call_chain) from [<c066c04c>] (regulator_notifier_call_chain+0xc/0x14)
        [    2.979108] [<c066c04c>] (regulator_notifier_call_chain) from [<c0683374>] (stpmic1_boost_irq_handler+0x4c/0x184)
        [    2.989371] [<c0683374>] (stpmic1_boost_irq_handler) from [<c0182ddc>] (handle_nested_irq+0xc4/0x130)
        [    2.998592] [<c0182ddc>] (handle_nested_irq) from [<c07431c4>] (regmap_irq_thread+0x488/0x580)
        [    3.007202] [<c07431c4>] (regmap_irq_thread) from [<c017f0ec>] (irq_thread_fn+0x1c/0x78)
        [    3.015290] [<c017f0ec>] (irq_thread_fn) from [<c017f404>] (irq_thread+0x134/0x200)
        [    3.022950] [<c017f404>] (irq_thread) from [<c014818c>] (kthread+0x144/0x180)
        [    3.030084] [<c014818c>] (kthread) from [<c0100148>] (ret_from_fork+0x14/0x2c)
        [    3.037295] Exception stack(0xc2823fb0 to 0xc2823ff8)
        [    3.042345] 3fa0:                                     00000000 00000000 00000000 00000000
        [    3.050526] 3fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
        [    3.058703] 3fe0: 00000000 00000000 00000000 00000000 00000013 00000000
        [    3.065319] Code: eb00a3ef e1a00004 e8bd81f0 e92d47f0 (e5904018)
        [    3.071451] —[ end trace ac0edff7ca2f27e5 ]—

        The board uses a OSD32MP157F-512, it‘s distro is dunfell. Have not tried it on kirkstone as I can’t
        get the M4 tty bridge to work in it yet.

      • #15490
        Neeraj Dantu
        Moderator

          C Spengler,

          It looks like PMIC_BSTOUT is experiencing an over current condition. I have seen this condition trigger when there is a large amount of capacitance on BSTOUT leading to an inrush current situation that exceeds the current limit on this rail. Please remove the large bypass capacitors and check if the issue persists.

          Best,

          Neeraj

      Viewing 1 reply thread
      • You must be logged in to reply to this topic.