Add optional bl1_plat_prepare_exit() API

This patch adds an optional API to the platform port:

    void bl1_plat_prepare_exit(void);

This function is called prior to exiting BL1 in response to the
RUN_IMAGE_SMC request raised by BL2. It should be used to perform
platform specific clean up or bookkeeping operations before
transferring control to the next image.

A weak empty definition of this function has been provided to
preserve platform backwards compatibility.

Change-Id: Iec09697de5c449ae84601403795cdb6aca166ba1
diff --git a/docs/porting-guide.md b/docs/porting-guide.md
index 50d36ea..c369844 100644
--- a/docs/porting-guide.md
+++ b/docs/porting-guide.md
@@ -788,6 +788,17 @@
 represents the entry point system state for BL2.
 
 
+### Function : bl1_plat_prepare_exit() [optional]
+
+    Argument : void
+    Return   : void
+
+This function is called prior to exiting BL1 in response to the `RUN_IMAGE_SMC`
+request raised by BL2. It should be used to perform platform specific clean up
+or bookkeeping operations before transferring control to the next image. This
+function runs with MMU disabled.
+
+
 3.2 Boot Loader Stage 2 (BL2)
 -----------------------------