Lines Matching full:secure
37 * Convert index into secure priority using the platform-defined priority bits
47 /* Returns whether given priority is in secure priority range */
96 * This API is expected to be invoked before restoring context (Secure or
97 * Non-secure) in preparation for the respective dispatch.
163 * This API is expected to be invoked after saving context (Secure or
164 * Non-secure), having concluded the respective dispatch.
221 * After leaving Non-secure world, stash current Non-secure Priority Mask, and
222 * set Priority Mask to the highest Non-secure priority so that Non-secure
223 * interrupts cannot preempt Secure execution.
225 * If the current running priority is in the secure range, or if there are
236 /* If the running priority is in the secure range, do nothing */ in ehf_exited_normal_world()
250 /* The previous Priority Mask is not expected to be in secure range */ in ehf_exited_normal_world()
252 ERROR("Priority Mask (0x%x) already in secure range\n", in ehf_exited_normal_world()
264 * Conclude Secure execution and prepare for return to Non-secure world. Restore
265 * the Non-secure Priority Mask previously stashed upon leaving Non-secure
268 * If there the current running priority is in the secure range, or if there are
279 /* If the running priority is in the secure range, do nothing */ in ehf_entering_normal_world()
298 * When exiting secure world, the current Priority Mask must be in ehf_entering_normal_world()
299 * GIC_HIGHEST_NS_PRIORITY (as set during entry), or the Non-secure in ehf_entering_normal_world()
316 * Program Priority Mask to the original Non-secure priority such that
317 * Non-secure interrupts may preempt Secure execution (for example, during
321 * This API is expected to be invoked before delegating a yielding SMC to Secure
322 * EL1. I.e. within the window of secure execution after Non-secure context is
323 * saved (after entry into EL3) and Secure context is restored (before entering
324 * Secure EL1).
333 * We should have been notified earlier of entering secure world, and in ehf_allow_ns_preemption()
334 * therefore have stashed the Non-secure priority mask. in ehf_allow_ns_preemption()
362 * Return whether Secure execution has explicitly allowed Non-secure interrupts
370 /* If running priority is in secure range, return false */ in ehf_is_ns_preemption_allowed()
376 * If Non-secure preemption was permitted by calling in ehf_is_ns_preemption_allowed()
380 * - We would have cleared the stashed the Non-secure Priority Mask. in ehf_is_ns_preemption_allowed()
423 /* Check EL3 interrupt priority is in secure range */ in ehf_el3_interrupt_handler()
472 * Bit 7 of GIC priority must be 0 for secure interrupts. This means in ehf_init()
478 /* Route EL3 interrupts when in Secure and Non-secure. */ in ehf_init()
480 set_interrupt_rm_flag(flags, SECURE); in ehf_init()