summaryrefslogtreecommitdiff
path: root/documentation/images/interrupt_handling/fiq.msc
blob: 5d1a2842e3b4591e1bfdb25d84d964dacea86020 (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
msc {
	hscale = "1.5", wordwraparcs = on;

	a [label="Normal world"], b [label="Secure Monitor"],
	c [label="Trusted OS entry"], d [label="Trusted OS"];


	||| ;
	--- [ label = "Running in non-secure world (SCR_NS set)" ];
	... ;
	--- [ label = "IRQ and FIQ masked,\nFIQ received" ];
	b=>b [ label = "Save non-secure context" ];
	b=>b [ label = "Restore secure context" ];
	b>>c [ label = "eret: FIQ" ];
	--- [ label = "FIQ unmasked" ];
	d=>d [ label = "process received FIQ" ];
	--- [ label = "FIQ masked" ];
	c=>b [ label = "smc: return" ];
	b=>b [ label = "Save secure context" ];
	b=>b [ label = "Restore non-secure context" ];
	b>>a [ label = "eret: return to Normal world" ];
	--- [ label = "IRQ and FIQ unmasked" ];
	... ;
}