Make the BL3-1 crash reporting optional

This patch makes the console crash dump of processor register
state optional based on the CRASH_REPORTING make variable.

This defaults to only being enabled for DEBUG builds. This can
be overridden by setting a different value in the platform
makefile or on the make command line.

Change-Id: Icfa1b2d7ff0145cf0a85e8ad732f9cee7e7e993f
diff --git a/bl31/aarch64/crash_reporting.S b/bl31/aarch64/crash_reporting.S
index cb9110b..0e7ced1 100644
--- a/bl31/aarch64/crash_reporting.S
+++ b/bl31/aarch64/crash_reporting.S
@@ -36,6 +36,7 @@
 	.globl	dump_state_and_die
 	.globl	dump_intr_state_and_die
 
+#if CRASH_REPORTING
 	/* ------------------------------------------------------
 	 * The below section deals with dumping the system state
 	 * when an unhandled exception is taken in EL3.
@@ -264,9 +265,15 @@
 	print_el3_sys_regs
 	print_non_el3_sys_0_regs
 	print_non_el3_sys_1_regs
-	b	infinite_loop
+
+#else	/* CRASH_REPORING */
+
+func dump_state_and_die
+dump_intr_state_and_die:
+
+#endif	/* CRASH_REPORING */
 
-func infinite_loop
+infinite_loop:
 	b	infinite_loop
 
 
diff --git a/bl31/bl31.mk b/bl31/bl31.mk
index 8155f3d..99fc357 100644
--- a/bl31/bl31.mk
+++ b/bl31/bl31.mk
@@ -59,3 +59,11 @@
 $(eval $(call assert_boolean,IMF_READ_INTERRUPT_ID))
 $(eval $(call add_define,IMF_READ_INTERRUPT_ID))
 
+# Flag used to inidicate if Crash reporting via console should be included
+# in BL3-1. This defaults to being present in DEBUG builds only
+ifndef CRASH_REPORTING
+CRASH_REPORTING		:=	$(DEBUG)
+endif
+
+$(eval $(call assert_boolean,CRASH_REPORTING))
+$(eval $(call add_define,CRASH_REPORTING))
diff --git a/bl31/context_mgmt.c b/bl31/context_mgmt.c
index b3dcf2d..496a5ca 100644
--- a/bl31/context_mgmt.c
+++ b/bl31/context_mgmt.c
@@ -285,7 +285,9 @@
 
 	pcpu_ptr_cache = &per_cpu_ptr_cache_space[linear_id];
 	assert(pcpu_ptr_cache);
+#if CRASH_REPORTING
 	pcpu_ptr_cache->crash_stack = get_crash_stack(mpidr);
+#endif
 
 	cm_set_pcpu_ptr_cache(pcpu_ptr_cache);
 }