Add ARMv8.3 pointer authentication support

ARMv8.3-PAuth adds functionality that supports address authentication of
the contents of a register before that register is used as the target of
an indirect branch, or as a load.

This feature is supported only in AArch64 state.

This feature is mandatory in ARMv8.3 implementations.

This patch adds the functionality needed for platforms to provide
authentication keys for the TF-A Test Framework, and a new option
(ENABLE_PAUTH) to enable pointer authentication in the framework itself.
This option is disabled by default.

Pointer authentication support has been added to FVP.

Change-Id: Id2d5c978deb68ae60107879f1c3d0b231cba9f42
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
diff --git a/docs/porting-guide.rst b/docs/porting-guide.rst
index 9c0812f..0decf1a 100644
--- a/docs/porting-guide.rst
+++ b/docs/porting-guide.rst
@@ -361,6 +361,20 @@
 Common implementation of this function is provided in
 ``plat/common/aarch64/platform_mp_stack.S``.
 
+Function : plat_init_apiakey
+````````````````````````````
+
+::
+
+    Argument : void
+    Return   : uint64_t *
+
+This function returns a pointer to an array with the values used to set the
+``APIAKey{Hi,Lo}_EL1`` registers.
+
+This function is only needed if ARMv8.3 pointer authentication is used by
+building with ``ENABLE_PAUTH=1``.
+
 Function : tftf_platform_end()
 ``````````````````````````````
 
@@ -433,7 +447,7 @@
 
 --------------
 
-*Copyright (c) 2018, Arm Limited. All rights reserved.*
+*Copyright (c) 2018-2019, Arm Limited. All rights reserved.*
 
 .. _docs/psci-pd-tree.rst: https://github.com/ARM-software/arm-trusted-firmware/blob/master/docs/psci-pd-tree.rst
 .. _SP805: https://static.docs.arm.com/ddi0270/b/DDI0270.pdf