I'm using Linaro Release 15.12 LSK (without OP-TEE) + OpenEmbedded Minimal Filesystem on Juno-r1 Board.
I'm trying to put the Juno board into the Sleep-state referring to ARM Versatile Express Juno r1 Development Platform Technical Reference Manual.
But it seems to reboot and fall into the error state, even if I push the Soft Reset button briefly.
Does anyone know how to put the Juno board into the Sleep-state ?
Thank you for your help.
------------Moderator edit: As of release 16.05 you can follow the instructions here:https://community.arm.com/dev-platforms/w/docs/239/system-suspend-to-ram------------
Hi,
Thanks for giving me a information.
Yes, I am using pl031 RTC.
And I could confirm getting a interrupt from pl031 RTC after running the command.
# echo +10 > /sys/class/rtc/rtc0/wakealarm && sleep 10
Does this mean it might be a firmware issue ?
What should I check about source code ?
Thank you for your time.
That's good that RTC is working.
Also you mentioned it's 15.12 release so I think it does support
system suspend though I have never tried that.
It could be Linux issue, but if you can run v4.4 just to check once
that will confirm firmware is fine and you can look at Linux suspend
path in detail to debug that.
Thanks for your reply.
But I am afraid I don't have a ARMv8 board on which v4.4 kernel is running on hand.
Though I tried the same thing on Juno with v4.3 kernel, it also did not wake up.
In this connection, there is something I am bothering about a little.
There is the following comments in the ARM Trusted Firmware source code.
===================================================================================
On Juno, when the system power domain is suspended, the GIC is also powered down. The SCP resumes the final core to be suspend when an external wake-up event is received. But the other cores cannot be woken up by a targeted interrupt, because GIC doesn't forward these interrupts to the SCP. Due to this hardware limitation, we down-grade PSCI CPU SUSPEND requests targeted to the system power domain level to cluster power domain level.
The system power domain suspend on Juno is only supported only via PSCI SYSTEM SUSPEND API.
Does not the above hardware limitation influence a wake-up from System Suspend ?
I'd be grateful if you could tell me what you think.
Running v4.4 on Juno is quite simple. Just build for defconfig.
Anyways as I mentioned earlier I have tested Juno wakeup on
RTC alarm atleast. There are other interrupts like GPIO keys
which can ideally be used but for reasons yet to root-caused
they are not working when GIC is powered-down which is the
case when the system suspend is executed.
Hope that helps.
Regards,
Sudeep
Thank you for letting me know !
Thanks to your advice, I could run v4.4 kernel building for defconfig + CONFIG_RTC_DRV_PL031 on Juno.Also, I could confirm Juno resumes from System-Suspend by the RTC alarm though there were some warning messages.However, to succeed in resuming is only one out of several times. How about when you tested it ?
I'm using the following software on Juno R1 board.
Linux kernel + juno-r1.dtb : v4.4 kernel.org Others ( including u-boot ) : Linaro Release 15.12 Latest Filesystem : OpenEmbedded Minimal 15.10
Once again, thank you for your time.