-
Notifications
You must be signed in to change notification settings - Fork 140
IMR restore feature implementation #3340
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
IMR restore feature implementation #3340
Conversation
Add a bit definition to the fw_ready message, to denote if the FW supports the IMR (Isolated Memory Region) restoring feature. If the bit is set, the driver can skip downloading the firmware again during system resume or runtime resume. Bump the ABI version to 3.19 to make it aligned with FW side. Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
We introduced provider/consumer terms, and CBP_CFP acronyms for codec drivers, let's use them as well in SOF. Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Move the SSP clock configuration to the hda_set_ssp_cbp_cfp() helper, to be used in follow-up patches Signed-off-by: Keyon Jie <yang.jie@linux.intel.com> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
If the firmware declares the IMR restore feature, we only need to do a simple powering up to resume from D3, no firmware re-downloading needed - the context is saved/restored to/from IMR without needing driver support. Add a hda_dsp_boot_imr() helper for this simple DSP reboot, and use it when it is available. Signed-off-by: Keyon Jie <yang.jie@linux.intel.com> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Add flag _IGNORE_D3_PERSISTENT to disable IMR restore feature to the sof_debug module parameter. The IMR restore feature will be enabled for all Intel cAVS platforms by default, but setting the flag _IGNORE_D3_PERSISTENT can help to disable the feature for debug purpose, to rule out any possible regression introduced by the change of not re-downloading firmware to the DSP at resuming from suspended state. Signed-off-by: Keyon Jie <yang.jie@linux.intel.com> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
317a4de to
7767427
Compare
keyonjie
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, lgtm.
|
@plbossart @marc-hb better to run a more stressful test before merging. |
I had triggered the stress testing, test report ID is 8998. |
|
currently IMR is enabled by fw_ready message which is not applicable to IPC4, so IPC4 can't be enabled by this way. |
@RanderWang for IPC4, shouldn't this be a default feature? For SOF we need the fw ready message because older versions do not support it. |
|
Due to the complicated history of this feature, I'll let @plbossart you do the merge. |
yes, It should be a default feature for IPC4 but current code can't enabled it for IPC4 since it checks fw_ready info. We may need another method for IPC4 |
Let's enable this capability, with CAVS_1_5 left out for now since there are known issues with suspend-resume on Up2 board that were never root-caused. Enabling this at the firmware level is not enough, this capability need to be enabled by kernel patches in thesofproject/linux#3340 Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
|
I'd like to re-run a test with thesofproject/sof#5109 before merging. I'll do this tomorrow. |
Let's enable this capability, with CAVS_1_5 left out for now since there are known issues with suspend-resume on Up2 board that were never root-caused. Enabling this at the firmware level is not enough, this capability need to be enabled by kernel patches in thesofproject/linux#3340 Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
|
SOFCI TEST |
improvement of #2989 with my own comments fixed my way. No functionality change compared to PR #2989