Testing Fiasco.OC+L4re on ODROID-X2(Exynos4412)
Adam Lackorzynski
adam at os.inf.tu-dresden.de
Thu Jun 11 22:39:01 CEST 2015
Hi,
On Thu Jun 04, 2015 at 23:56:15 -0400, Reinier Millo Sánchez wrote:
> We have adapted the Proc class to support the IRQ on Fiasco.OC when
> compiling it in TrustZone Normal Side. Following the principle that in
> TrustZone the IRQ are used on Normal Side and the FIQ are used in Secure
> Side, we have only used the IRQ when compile the Fiasco.OC with TrustZone
> Normal Side. By default Fiasco.OC was using the IRQ and FIQ when compiling
> with TrustZone Normal Side. This is our patch:
True that on normal side only the FIQ is used, but the FIQ state shall
not play a role there, as the normal side must not be able to interfere
with the secure side. So it shouldn't matter?
> Now when we compile Fiasco.OC and run the Hello example for Odroid-X2 using
> TrustZone Normal Side, it works fine.
Ok good. What is running on the secure side in this case?
> We have noted the when is compiled with TrustZone Secure Side, then only use
> the FIQ, but when try to run it on Odroid-X2 it fails. This is the serial
> output:
>
> GIC: Switching IRQ 64 to secure
> GIC: Switching IRQ 79 to secure
> GIC: Switching IRQ 78 to secure
> GIC: Switching IRQ 9 to secure
> GIC: Switching IRQ 8 to secure
> GIC: Switching IRQ 10 to secure
> GIC: Switching IRQ 11 to secure
Did you try to figure out where it is stuck?
> We are also interested to use Fiasco.OC for ODROID-X2 without TrustZone, in
> which case we must configure both IRQ and FIQ, but fails. This the serial
> output:
Is that the 'std' mode? I.e. there's nothing running on the secure side?
> Regions of list 'regions'
> [ 40000000, 400000e3] { e4} Root mbi_rt
> [ 40001000, 40001aff] { b00} Kern fiasco
> [ 40002000, 4003afff] { 39000} Kern fiasco
> [ 40090000, 4009681b] { 681c} Sigma0 sigma0
> [ 40098000, 4009e177] { 6178} Sigma0 sigma0
> [ 40140000, 4018b4ab] { 4b4ac} Root moe
> [ 41000000, 4100e4ff] { e500} Boot bootstrap
> [ 41100000, 41133fff] { 34000} Root Module
> API Version: (87) experimental
> Sigma0 config ip:40090100 sp:00000000
> Roottask config ip:4014020c sp:00000000
> Starting kernel fiasco at 400012c8
> Hello from Startup::stage2
> Per_cpu_data_alloc: (orig: 0xf002d7a0-0xf002e1a8)
> Number of IRQs available at this GIC: 160
> FPU0: Arch: VFPv3(3), Part: VFPv3(30), r: 4, v: 9, i: 41, t: hard,
> p: dbl/sngl
>
> KERNEL: Warning: No page-fault handler for 0xee202108, error
> 0x94000848, pc f002660c
>
> Anyone know what is happening with interrupts in Exynos4412 when TrustZone
> is not used? Anyone have some idea?
Adam
--
Adam adam at os.inf.tu-dresden.de
Lackorzynski http://os.inf.tu-dresden.de/~adam/
More information about the l4-hackers
mailing list