This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

TrustZone with PL310

Note: This was originally posted on 17th August 2013 at http://forums.arm.com

I plan to use a simple 'TrustZone Monitor'  with PL310(L2CC).
In non-secure, I will play a Linux-Kernel.

One problem.
1. PL310's background-operation(inv.way etc..)  is executing in non-secure.
2. By secure-interrupt, dispatch to secure.
3. In secure, try to execute a write-operation to PL310' register.
May be happen 'DATA-ABORT'.

Do I must control exclusive PL310  secure and non-secure ?

Please help me.
Parents
  • Note: This was originally posted on 19th August 2013 at http://forums.arm.com

    Thank you for the reply.

    That is, between secure and non-secure, Exclusive control is required.
    Or, Background operation is not used. (Atomic operation Only.)

    Followed Situation is bad ?

    secure:
    OS RealTimeOS (ex. iTRON)
    Interrupt FIQ
    TickTimer1 (FIQ)

    non-secure:
    OS Linux
    Interrupt IRQ
    TickTimer2 (IRQ)

    1. Linux running.
    2. Linux execute flush_range. (called for l2x0_flush_all. background operation)
    3. Linux wait for complete L310.
       (IRQ is disabled, but FIQ is enabled.)
    4. TicmTimer1 expired.
    5. FIQ accept. -> change to secure-mode.
    6. RealTimeOS execute interrupt handler.(Tick handler)
    7. RealTimeOS execute cache operation.
    If (2.)-operation is not complete, (7.)'s operation is abort.

    Is this TRUE ?

    How do Other System have avoided ?
    My problem is that a good method is not found.

    (I am sorry for poor English.)
Reply
  • Note: This was originally posted on 19th August 2013 at http://forums.arm.com

    Thank you for the reply.

    That is, between secure and non-secure, Exclusive control is required.
    Or, Background operation is not used. (Atomic operation Only.)

    Followed Situation is bad ?

    secure:
    OS RealTimeOS (ex. iTRON)
    Interrupt FIQ
    TickTimer1 (FIQ)

    non-secure:
    OS Linux
    Interrupt IRQ
    TickTimer2 (IRQ)

    1. Linux running.
    2. Linux execute flush_range. (called for l2x0_flush_all. background operation)
    3. Linux wait for complete L310.
       (IRQ is disabled, but FIQ is enabled.)
    4. TicmTimer1 expired.
    5. FIQ accept. -> change to secure-mode.
    6. RealTimeOS execute interrupt handler.(Tick handler)
    7. RealTimeOS execute cache operation.
    If (2.)-operation is not complete, (7.)'s operation is abort.

    Is this TRUE ?

    How do Other System have avoided ?
    My problem is that a good method is not found.

    (I am sorry for poor English.)
Children
No data