Hi Marc
在 2020/11/9 18:43, Marc Zyngier 写道:
On 2020-11-09 03:05, xuqiang (M) wrote:
在 2020/11/8 0:54, Marc Zyngier 写道:
[dropping Jason, whose email address has been bouncing for weeks now]Hisi Ascend platform
On 2020-11-07 10:42, Xu Qiang wrote:
On my platform, ITS_FLAGS_SAVE_SUSPEND_STATE is not set,thus do nothing
Which platform?
in its suspend and resuse function.On the other hand,firmware stores
GITS_CTRL,GITS_CBASER,GITS_CWRITER and GITS_BASER<n> in the suspend,
and restores these registers in the resume. As a result, the ITS executes
the residual commands in the queue.
Which firmware are you using? I just had a look at the trusted firmware source
code, and while it definitely does something that *looks* like what you are
describing, it doesn't re-enable the ITS on resume.
So what are you running?
I am using ATF. Since ITS_FLAGS_SAVE_SUSPEND_STATE is not set,ITS
driver of OS will
not re-enable ITS in th resume. To make ITS work properly, we changed
the ATF code
to re-enable ITS on resume.
I don't think the words "work properly" apply here.
The kernel didn't do what you wanted, so instead of fixing the kernel, you
introduced a bug that results in memory corruption from the firmware.
What are you plans to fix your firmware? Because from an upstream ATF
compatibility PoV, all there is to do is to fixup the command queue and
enable the ITS.
M.
I'm sorry I didn't make it clear how to do this. I'm going to reset commit
which re-enable ITS on the ATF, and drop the checks for ITS_FLAGS_SAVE_SUSPEND_STATE
in the OS.
In other words, the ATF does not re-enable ITS, and OS itself re-enables ITS when it resumes.
To do this, I have to remove the check of ITS_FLAGS_SAVE_SUSPEND_STATE because it is not set.
Thanks
Xu.