Core: Initialize IPC SPM in handler mode

- IPC SPM needs to update non-secure entry thread context in PSP
  while this thread shared the same stack with initial thread mode,
  so SPM can not run with PSP.
- While running with MSP, there needs to be a way to reset the MSP
  value to initial value after SPM initialization is done. Exception
  return can be an ideal way, so put SPM initialization in handler
  mode and finally return to thread mode from handler mode.
- Set non-secure entry thread as the first 'current' thread, and
  reset the current PSP/PSPLIMIT to initial value in case there
  are used content makes PSP shifted to an unexpected value.

Change-Id: Ic17b3288478c014a0f21eb602b45b9c5e515960e
Signed-off-by: Ken Liu <ken.liu@arm.com>
10 files changed