SPM: Let the agent indicate vector information

Agents need to indicate the vector's information (Non-secure or secure)
to SPM because agents can use vectors from either non-secure client's
memory or agents' local memory when calling 'agent_psa_call()'.
It is the agent's duty to tell this information pricisely to SPM.

- Abstracted a vector processing function: 'spm_process_io_vectors()'.
- Use MSB bit of 'control parameter' to indicate the vector source
  information.
- Update Trustzone NS Agent code to reference how the indication is
  applied.
- SPM now calls 'tfm_hal_memory_check()' with 'MEM_CHECK_NONSECURE'
  flag when vectors are marked as 'Non-secure'.
- 'MEM_CHECK_NONSECURE' flag processing in HAL is not introduced
  in this patch because now the platform can indentify 'Non-secure'
  without this flag. This change is the preparation for upcoming
  patches.

Signed-off-by: Ken Liu <Ken.Liu@arm.com>
Co-authored-by: Xinyu Zhang <Xinyu.Zhang@arm.com>
Change-Id: Ifcd62a70cc341434dd6467f12a9caab9868e9646
4 files changed