blob: 62657ccfd66a9f66172eff787f5a163687c09eac (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
msc {
hscale = "1.5", wordwraparcs = on;
a [label="Normal world"], b [label="Secure Monitor"],
c [label="Trusted OS entry"], d [label="Trusted OS"];
--- [ label = "IRQ and FIQ unmasked" ];
d=>d [ label = "process" ];
--- [ label = "IRQ and FIQ masked,\nIRQ received" ];
d=>d [ label = "suspend thread" ];
d=>c [ label = "forward IRQ" ];
c=>b [ label = "smc: forward IRQ" ];
b=>b [ label = "Save secure context" ];
b=>b [ label = "Restore non-secure context" ];
--- [ label = "IRQ and FIQ unmasked" ];
b>>a [ label = "eret: IRQ forwarded" ];
--- [ label = "FIQ unmasked, IRQ received" ];
a=>a [ label = "process IRQ" ];
--- [ label = "IRQ and FIQ unmasked" ];
a=>b [ label = "smc: return from IRQ" ];
--- [ label = "IRQ and FIQ masked" ];
b=>b [ label = "Save non-secure context" ];
b=>b [ label = "Restore secure context" ];
b>>c [ label = "eret: return from IRQ" ];
c=>c [ label = "find thread" ];
c>>d [ label = "resume execution"];
--- [ label = "IRQ and FIQ unmasked" ];
d=>d [ label = "process" ];
}
|