AM62L: RTC+DDR resume failure with dwc3_ti_resume

XMLWordPrintable

    • Type: Bug
    • Resolution: Fixed
    • Priority: High
    • Linux Core SDK
    • LCPD-44026
    • 11.00
    • 11.02
    • am62lxx_evm-fs

      With kernel version 6.12.23-ti-g013211ccdf5e (oe-user@oe-host) and TFA commit 13db77abe0ad (ti-master) following errors are reported on resuming from RTC+DDR LPM:

       

      root@am62lxx-evm:~# echo mem > /sys/power/state
      [   72.134967] PM: suspend entry (deep)
      [   72.142576] Filesystems sync: 0.003 seconds
      [   72.149266] Freezing user space processes
      [   72.155407] Freezing user space processes completed (elapsed 0.001 seconds)
      [   72.162455] OOM killer disabled.
      [   72.165705] Freezing remaining freezable tasks
      [   72.171436] Freezing remaining freezable tasks completed (elapsed 0.001 seconds)
      [   72.187877] Disabling non-boot CPUs ...
      [   72.193979] psci: CPU1 killed (polled 0 ms)
      NOTICE:  bl1_plat_arch_setup arch setup
      NOTICE:  Booting Trusted Firmware
      NOTICE:  BL1: v2.12.0(release):11.00.11-5-g13db77abe0ad-dirty
      NOTICE:  BL1: Built : 15:05:08, May 22 2025
      NOTICE:  BL1: dram_class: 11
      NOTICE:  lpddr4: post start - PI training status=0x27c0a000
      NOTICE:  bl1_platform_setup DDR init done
      NOTICE:  k3_bl1_handoff sent message to tifs
      ERROR:   Wake up src 0x0
      ERROR:   Wake up interrupt 0xc
      [   72.199160] Enabling non-boot CPUs ...
      [   72.203377] Detected VIPT I-cache on CPU1
      [   72.207427] GICv3: CPU1: found redistributor 1 region 0:0x0000000001860000
      [   72.214351] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
      [   72.221975] CPU1 is up
      [   72.227093] Internal error: synchronous external abort: 0000000096000010 [#1] PREEMPT SMP
      [   72.235291] Modules linked in:
      [   72.238346] CPU: 0 UID: 0 PID: 788 Comm: sh Not tainted 6.12.23-ti-g013211ccdf5e #1
      [   72.245990] Hardware name: Texas Instruments AM62L3 EVM (DT)
      [   72.251637] pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
      [   72.258585] pc : dwc3_ti_resume_common+0x20/0x10c
      [   72.263293] lr : device_resume+0xa4/0x1e8
      [   72.267300] sp : ffff800082a93b10
      [   72.270603] x29: ffff800082a93b10 x28: ffff0000059e4200 x27: 0000000000000000
      [   72.277731] x26: 0000000000000000 x25: 0000000000000000 x24: ffff8000814f3590
      [   72.284858] x23: ffff0000040e3490 x22: 0000000000000000 x21: 0000000000000010
      [   72.291984] x20: ffff0000040e3410 x19: ffff000003a5d140 x18: ffff800082a938e8
      [   72.299111] x17: 0000000000000000 x16: 0000000000000001 x15: 0000000000000011
      [   72.306237] x14: ffff800080d87030 x13: 0000000000000390 x12: 0000000000000000
      [   72.313364] x11: 0000000000000000 x10: 00000000000009e0 x9 : ffff800082a93a10
      [   72.320491] x8 : ffff0000059e4c40 x7 : ffff00007fbb22c0 x6 : 0000000000000000
      [   72.327617] x5 : 0000000000000158 x4 : 0000000000000000 x3 : ffff80008090dfa8
      [   72.334743] x2 : 0000000000000115 x1 : ffff800081685708 x0 : ffff0000040e3410
      [   72.341871] Call trace:
      [   72.344307]  dwc3_ti_resume_common+0x20/0x10c
      [   72.348657]  device_resume+0xa4/0x1e8
      [   72.352312]  dpm_resume+0x114/0x150
      [   72.355795]  dpm_resume_end+0x18/0x30
      [   72.359450]  suspend_devices_and_enter+0x488/0x550
      [   72.364235]  pm_suspend+0x164/0x1d0
      [   72.367716]  state_store+0x80/0xec
      [   72.371110]  kobj_attr_store+0x18/0x2c
      [   72.374854]  sysfs_kf_write+0x44/0x54
      [   72.378512]  kernfs_fop_write_iter+0x120/0x1cc
      [   72.382948]  vfs_write+0x240/0x378
      [   72.386344]  ksys_write+0x74/0x10c
      [   72.389739]  __arm64_sys_write+0x1c/0x28
      [   72.393653]  invoke_syscall+0x48/0x10c
      [   72.397396]  el0_svc_common.constprop.0+0xc0/0xe0
      [   72.402091]  do_el0_svc+0x1c/0x28
      [   72.405399]  el0_svc+0x28/0x98
      [   72.408451]  el0t_64_sync_handler+0x120/0x12c
      [   72.412798]  el0t_64_sync+0x190/0x194
      [   72.416457] Code: aa0003f4 f9403c13 f9400661 911c2021 (b9400021)
      [   72.422536] ---[ end trace 0000000000000000 ]--- 

      diff in TFA for RTC+DDDR:

       

      diff --git a/plat/ti/k3/common/am62l_psci.c b/plat/ti/k3/common/am62l_psci.c
      index 70f2aecdde4e..5de658ec59ad 100644
      --- a/plat/ti/k3/common/am62l_psci.c
      +++ b/plat/ti/k3/common/am62l_psci.c
      @@ -133,7 +133,7 @@ static void am62l_pwr_domain_suspend(const psci_power_state_t *target_state)
              /* TODO: Pass the mode passed from kernel using s2idle
               * For now make mode=6 for RTC only + DDR and mdoe=0 for deepsleep
               */
      -       uint32_t mode = 0;
      +       uint32_t mode = 6;        core = plat_my_core_pos();
              proc_id = PLAT_PROC_START_ID + core;
       

            Assignee:
            TI User
            Reporter:
            TI User
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved:

                Connection: Intermediate to External PROD System
                EXTSYNC-6284 - AM62L: RTC+DDR resume failure with ...
                SYNCHRONIZED
                • Last Sync Date: