• Home
  • Raw
  • Download

Lines Matching full:secure

9  * This is the Secure Payload Dispatcher (SPD). The dispatcher is meant to be a
10 * plug-in component to the Secure Monitor, registered as a runtime service. The
11 * SPD is expected to be a functional extension of the Secure Payload (SP) that
12 * executes in Secure EL1. The Secure Monitor will delegate all SMCs targeting
14 * handle the request locally or delegate it to the Secure Payload. It is also
37 * Per-cpu Secure Payload state
54 * Secure Payload Dispatcher's timer interrupt handler
69 * Disable the routing of NS interrupts from secure world to in tlkd_interrupt_handler()
72 disable_intr_rm_local(INTR_TYPE_S_EL1, SECURE); in tlkd_interrupt_handler()
78 /* Save non-secure state */ in tlkd_interrupt_handler()
81 /* Get a reference to the secure context */ in tlkd_interrupt_handler()
82 s_cpu_context = cm_get_context(SECURE); in tlkd_interrupt_handler()
86 * Restore non-secure state. There is no need to save the in tlkd_interrupt_handler()
87 * secure system register context since the SP was supposed in tlkd_interrupt_handler()
90 cm_el1_sysregs_context_restore(SECURE); in tlkd_interrupt_handler()
91 cm_set_next_eret_context(SECURE); in tlkd_interrupt_handler()
98 * Secure Payload Dispatcher setup. The SPD finds out the SP entrypoint and type
109 * Get information about the Secure Payload (BL32) image. Its in tlkd_setup()
112 tlk_ep_info = bl31_plat_get_next_image_ep_info(SECURE); in tlkd_setup()
159 * This function passes control to the Secure Payload image (BL32) for the first
160 * time on the primary cpu after a cold boot. It assumes that a valid secure
162 * used. This function performs a synchronous entry into the Secure payload.
170 * Get information about the Secure Payload (BL32) image. Its in tlkd_init()
173 tlk_entry_point = bl31_plat_get_next_image_ep_info(SECURE); in tlkd_init()
185 * Arrange for an entry into the test secure payload. in tlkd_init()
192 * range from the non-secure state as defined in the SMC Calling Convention
193 * Document. It is also responsible for communicating with the Secure payload
194 * to delegate work and return results back to the non-secure state. Lastly it
195 * will also return any information that the secure payload needs to do the
226 * preempted by a non-secure world IRQ. in tlkd_smc_handler()
233 assert(handle == cm_get_context(SECURE)); in tlkd_smc_handler()
234 cm_el1_sysregs_context_save(SECURE); in tlkd_smc_handler()
236 /* Get a reference to the non-secure context */ in tlkd_smc_handler()
241 * Restore non-secure state. There is no need to save the in tlkd_smc_handler()
242 * secure system register context since the SP was supposed in tlkd_smc_handler()
251 * This is a request from the non-secure context to: in tlkd_smc_handler()
258 * c. register shared persistent buffers for secure storage in tlkd_smc_handler()
283 * This is a fresh request from the non-secure client. in tlkd_smc_handler()
285 * registers need to be preserved, save the non-secure in tlkd_smc_handler()
286 * state and send the request to the secure payload. in tlkd_smc_handler()
308 assert(&tlk_ctx.cpu_ctx == cm_get_context(SECURE)); in tlkd_smc_handler()
316 * We are done stashing the non-secure context. Ask the in tlkd_smc_handler()
317 * secure payload to do the work now. in tlkd_smc_handler()
319 cm_el1_sysregs_context_restore(SECURE); in tlkd_smc_handler()
320 cm_set_next_eret_context(SECURE); in tlkd_smc_handler()
348 /* Should be invoked only by secure world */ in tlkd_smc_handler()
383 /* Get a reference to the non-secure context */ in tlkd_smc_handler()
389 * the non-secure world to pass the result. in tlkd_smc_handler()
391 cm_el1_sysregs_context_save(SECURE); in tlkd_smc_handler()
394 * We are done stashing the secure context. Switch to the in tlkd_smc_handler()
395 * non-secure context and return the result. in tlkd_smc_handler()
451 * handling the secure interrupt. in tlkd_smc_handler()
458 assert(handle == cm_get_context(SECURE)); in tlkd_smc_handler()
460 /* save secure world context */ in tlkd_smc_handler()
461 cm_el1_sysregs_context_save(SECURE); in tlkd_smc_handler()
463 /* Get a reference to the non-secure context */ in tlkd_smc_handler()
468 * Restore non-secure state. There is no need to save the in tlkd_smc_handler()
469 * secure system register context since the SP was supposed in tlkd_smc_handler()
479 * provide service to non-secure in tlkd_smc_handler()