* Linux timer interrupts not working when booting in normal-world
@ 2012-09-12 14:01 Nuno Santos
[not found] ` <505095C9.5000108-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2012-09-13 7:22 ` Antti P Miettinen
0 siblings, 2 replies; 3+ messages in thread
From: Nuno Santos @ 2012-09-12 14:01 UTC (permalink / raw)
To: linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Hi
I'm currently playing with the TrustZone technology on the Tegra2
Harmony board, and my goal is to boot Linux not in the secure world (as
it is in mainstream Linux), but in the normal world. However, in doing
this, timer interrupts are not being triggered and the system halts
early in the bootstrap stage. I'd like to ask if anyone could give me a
hint for why this is happening.
So far I managed to set up the secure world environment so that we can
invoke secure services through the SMC instruction from the normal
world. This configuration step is done by u-boot, after which it enters
normal world and jumps to Linux. To make sure that Linux can handle
interrupts freely, in this setup phase, I assign the SCR register 0x3
(EA, FIQ, and IRQ bit are clear, and AW and FW are set).
Assuming that this configuration is correct, one possible explanation
for the absence of timer interrupts is that the Harmony board may impose
some restrictions to the timer re-configuration in the normal world.
Does anyone have an idea if there are such restrictions? If not, is
there any other explanation for this? Is there some configuration step
that I'm missing?
Thank you very much in advance!
--Nuno Santos
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Linux timer interrupts not working when booting in normal-world
[not found] ` <505095C9.5000108-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
@ 2012-09-12 19:32 ` Stephen Warren
0 siblings, 0 replies; 3+ messages in thread
From: Stephen Warren @ 2012-09-12 19:32 UTC (permalink / raw)
To: Nuno Santos; +Cc: linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
On 09/12/2012 08:01 AM, Nuno Santos wrote:
> Hi
>
> I'm currently playing with the TrustZone technology on the Tegra2
> Harmony board, and my goal is to boot Linux not in the secure world (as
> it is in mainstream Linux), but in the normal world. However, in doing
> this, timer interrupts are not being triggered and the system halts
> early in the bootstrap stage. ...
This isn't a topic I really know anything about. I'd assume the answer
to your question is ARM-generic and not Tegra-specific; you may have
better luck asking on the main ARM Linux mailing list.
I assume you're using (or at least can reproduce the issue with)
mainline Linux, and not a downstream NVIDIA kernel? If you're using an
NVIDIA kernel, I'd suggest asking your contacts at NVIDIA about it.
> Assuming that this configuration is correct, one possible explanation
> for the absence of timer interrupts is that the Harmony board may impose
> some restrictions to the timer re-configuration in the normal world. ...
I don't think the board can impose any restrictions; the boot ROM in the
Tegra SoC is presumably identical across all instances of Tegra20, and
the code that runs after that is whatever bootloader you built and
flashed onto the board. Unless of course there are strapping/fuse
options that affect this, but if any do exist, and since Harmony is a
developer board, I'd imagine their settings would be left as wide open
as possible.
Sorry I'm not very helpful!
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Linux timer interrupts not working when booting in normal-world
2012-09-12 14:01 Linux timer interrupts not working when booting in normal-world Nuno Santos
[not found] ` <505095C9.5000108-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
@ 2012-09-13 7:22 ` Antti P Miettinen
1 sibling, 0 replies; 3+ messages in thread
From: Antti P Miettinen @ 2012-09-13 7:22 UTC (permalink / raw)
To: linux-tegra-u79uwXL29TY76Z2rM5mHXA
Nuno Santos <nuno.m.santos-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
writes:
> I'm currently playing with the TrustZone technology on the Tegra2
> Harmony board, and my goal is to boot Linux not in the secure world
> (as it is in mainstream Linux), but in the normal world. However, in
> doing this, timer interrupts are not being triggered and the system
> halts early in the bootstrap stage. I'd like to ask if anyone could
> give me a hint for why this is happening.
GIC configuration? I'm not at all familiar with TZ, but you might need
to configure the interrupts as non-secure:
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ihi0048a/CHDCEAIF.html
So you have a secure monitor you can create SMCs for? Is that code
available?
--
Antti P Miettinen
http://www.iki.fi/~ananaza/
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2012-09-13 7:22 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-09-12 14:01 Linux timer interrupts not working when booting in normal-world Nuno Santos
[not found] ` <505095C9.5000108-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2012-09-12 19:32 ` Stephen Warren
2012-09-13 7:22 ` Antti P Miettinen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox