Thread (69 messages) 69 messages, 12 authors, 2011-09-17
STALE5381d

[PATCH 6/6] arm/imx6q: add suspend/resume support

From: Shawn Guo <hidden>
Date: 2011-09-09 10:15:10

On Fri, Sep 09, 2011 at 09:15:20AM +0100, Russell King - ARM Linux wrote:
On Fri, Sep 09, 2011 at 03:32:48PM +0800, Shawn Guo wrote:
quoted
quoted
Now to the physical act of enabling the L2 cache.  The L2 cache control
registers are subject to security restrictions when running in non-secure
mode, needing platform specific SMC calls to reprogram the cache.  Generic
code is unable to do this.
I could be very possibly wrong here.  But isn't the core in secure mode
upon reset?  Do we really have to reprogram L2 through SMC calls there?
It probably will be, but the core won't be running the resume function
directly on reset.  (No ARM CPU does this - not even the pre-security
ones.  They've traditionally run the boot loader first.)
Some naive boot ROM may simply jump to the resume entry address saved
in persistent register.
Take a moment to think about this in terms of security of data stored on
the secure side (where there maybe private keys stored.)

The kernel runs in the non-secure side of the partition.  If it were to be
entered on resume in secure mode, it could access those keys.  That would
be a really great security hole, which would make the whole thing pointless.

What would happen is the secure monitor ROM code gets control first, just
like it does at normal boot time on secure devices.  Eventually, the kernel
will gain control but only after the secure monitor has switched to
non-secure mode.
Then the question is that for given bad boot ROM, whether kernel resume
routine should stand up to fill the hole up.

-- 
Regards,
Shawn
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help