Product: Luckfox Aura
SoC: RV1126B
Storage: eMMC
SDK: Buildroot, kernel 6.1.x
Firmware: androidboot.fwver=ddr-v1.06,bl31-v1.13,...
Problem
On Aura, echo mem > /sys/power/state enters ARMOFF and resumes correctly, but the sleep duration is always ~0.4–1 s, independent of the kernel/DT configuration.
After resume, PMU1_WAKEUP_TIMEOUT_CNT @ 0x20834310 reads 0x8000 (~1 s @ 32.768 kHz). This suggests that a short timeout is being programmed or restored during the suspend path, possibly by BL31.
This is currently our main blocker for controlled deep sleep (tens of seconds to minutes). freeze/s2idle works, but we specifically need controllable mem for real low-power operation.
Already verified on Aura with BL31 v1.13:
Kernel SIP sip_smc_set_suspend_mode(SUSPEND_WFI_TIME_MS, ms, 0) via wfi_time_ms is ignored.
Example:
echo 15000 > /sys/module/rockchip_pm_config/parameters/wfi_time_ms
then echo mem > /sys/power/state
→ still ~0.4–1 s, not ~15 s.
Enabling RKPM_TIMEOUT_WKUP_EN with a longer timeout → hang / no clean wake.
Removing TIMEOUT from rockchip,wakeup-config (GPIO0 only) → still auto-wakes after ~0.4–1 s.
Clearing PMU1_WAKEUP_INT_CON bit17 (wakeup_timeout_en) from Linux → no effect on sleep duration.
RTC wakealarm wakes freeze/s2idle, but does not wake mem.
GPIO0 push-button wake works for freeze; for mem, the same ~0.4–1 s wake still occurs.
Related: HPMCU / LPMCU
Aura ships with HPMCU RT-Thread in trust (rtthread.bin @ 0x48c02000).
We have the HPMCU BSP sources in the SDK and a working Linux↔MCU rpmsg channel (ping, note-suspend, note-resume).
During mem, HPMCU can schedule/fire a wake event (GPIO pulse, mailbox, or PMU timeout rewrite), but the AP does not resume from the HPMCU wake. Resume still occurs at ~0.4–1 s.
We also do not find LPMCU firmware/sources in the public Aura SDK.
If timed ARMOFF wake is intended to be handled by LPMCU, please clarify and provide the corresponding package and documentation.
There is also no RV1126B equivalent of rv1106 hpmcu_fast_wkup() in the public kernel/ATF tree.
Requests
Please help clarify:
How can the BL31 ARMOFF wake timeout be programmed or disabled on RV1126B/Aura?
Could you provide one of:
BL31/ATF sources for RV1126B
a patched BL31 binary for Aura + rebuild/flash instructions (RKTRUST / uboot.img)
the documented SIP/API that correctly programs PMU1_WAKEUP_TIMEOUT_CNT for ARMOFF
Can TIMEOUT wake be fully disabled so ARMOFF wakes only from GPIO0 and/or HPMCU/mailbox, if supported?
Is RTC a valid ARMOFF wake source on RV1126B? If not, what is the supported timed-wake mechanism for deep sleep?
If LPMCU is required for this use case, please provide the firmware, toolchain, and wake-path documentation for Aura.
Goal
Use mem (ARMOFF) for real low-power sleep:
duration: tens of seconds to minutes, or until external wake
wake sources: GPIO0 button and/or HPMCU
no forced ~1 s timeout
Happy to provide dmesg, register dumps, and test scripts if useful.
Thanks.
