tree 764ed94af46c3200852b61aec4405366996329fb
parent 2f5aadedc4b722841155f0ff6630e220dac3f30b
author Soby Mathew <soby.mathew@arm.com> 1420558598 +0000
committer Soby Mathew <soby.mathew@arm.com> 1422026076 +0000

Rework internal API to save non-secure entry point info

This patch replaces the internal psci_save_ns_entry() API with a
psci_get_ns_ep_info() API. The new function splits the work done by the
previous one such that it populates and returns an 'entry_point_info_t'
structure with the information to enter the normal world upon completion
of the CPU_SUSPEND or CPU_ON call. This information is used to populate
the non-secure context structure separately.

This allows the new internal API `psci_get_ns_ep_info` to return error
and enable the code to return safely.

Change-Id: Ifd87430a4a3168eac0ebac712f59c93cbad1b231
