Flush console where necessary
authorAntonio Nino Diaz <antonio.ninodiaz@arm.com>
Thu, 16 Feb 2017 16:17:19 +0000 (16:17 +0000)
committerAntonio Nino Diaz <antonio.ninodiaz@arm.com>
Fri, 31 Mar 2017 08:54:22 +0000 (09:54 +0100)
Call console_flush() before execution either terminates or leaves an
exception level.

Fixes: ARM-software/tf-issues#123
Change-Id: I64eeb92effb039f76937ce89f877b68e355588e3
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
bl1/bl1_main.c
bl2/bl2_main.c
bl2u/bl2u_main.c
bl31/bl31_main.c
lib/psci/psci_system_off.c
lib/stdlib/assert.c

index 90c06afef63c902e855d4ee2b678496a1515eec6..89664cd0f1ce706c88150572c9cb0abb25c91f2b 100644 (file)
@@ -34,6 +34,7 @@
 #include <auth_mod.h>
 #include <bl1.h>
 #include <bl_common.h>
+#include <console.h>
 #include <debug.h>
 #include <errata_report.h>
 #include <platform.h>
@@ -166,6 +167,8 @@ void bl1_main(void)
                NOTICE("BL1-FWU: *******FWU Process Started*******\n");
 
        bl1_prepare_next_image(image_id);
+
+       console_flush();
 }
 
 /*******************************************************************************
index 514c0053388dde272a84a4224946e7941e49fea3..d187f2e3456bc240e6bd8b0c1a13122336381a46 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2016, ARM Limited and Contributors. All rights reserved.
+ * Copyright (c) 2013-2017, ARM Limited and Contributors. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are met:
@@ -32,6 +32,7 @@
 #include <auth_mod.h>
 #include <bl1.h>
 #include <bl_common.h>
+#include <console.h>
 #include <debug.h>
 #include <platform.h>
 #include "bl2_private.h"
@@ -69,6 +70,8 @@ void bl2_main(void)
        disable_mmu_icache_secure();
 #endif /* AARCH32 */
 
+       console_flush();
+
        /*
         * Run next BL image via an SMC to BL1. Information on how to pass
         * control to the BL32 (if present) and BL33 software images will
index 515ddfb73807fecc17c5bb741143ff0beebbd7f1..3ed5be73d430f9d3fd2c7a95832cc4540886c5fe 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, ARM Limited and Contributors. All rights reserved.
+ * Copyright (c) 2015-2017, ARM Limited and Contributors. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are met:
@@ -34,6 +34,7 @@
 #include <auth_mod.h>
 #include <bl_common.h>
 #include <bl1.h>
+#include <console.h>
 #include <debug.h>
 #include <platform.h>
 #include <platform_def.h>
@@ -63,6 +64,8 @@ void bl2u_main(void)
        /* Perform platform setup in BL2U after loading SCP_BL2U */
        bl2u_platform_setup();
 
+       console_flush();
+
        /*
         * Indicate that BL2U is done and resume back to
         * normal world via an SMC to BL1.
index 85b3ea1e5fa6db95931e68d93fc36c22479d4bfa..c74b72b71c697bb297b4c1c50ca92bd5b195e4be 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2016, ARM Limited and Contributors. All rights reserved.
+ * Copyright (c) 2013-2017, ARM Limited and Contributors. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are met:
@@ -33,6 +33,7 @@
 #include <assert.h>
 #include <bl_common.h>
 #include <bl31.h>
+#include <console.h>
 #include <context_mgmt.h>
 #include <debug.h>
 #include <platform.h>
@@ -129,6 +130,8 @@ void bl31_main(void)
         */
        bl31_prepare_next_image_entry();
 
+       console_flush();
+
        /*
         * Perform any platform specific runtime setup prior to cold boot exit
         * from BL31
index de9ec6436dec401cbef1d75d806144a3459de60f..eb3e7fbc0b636dedfdb39b99ca0b99dfe708d708 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014-2016, ARM Limited and Contributors. All rights reserved.
+ * Copyright (c) 2014-2017, ARM Limited and Contributors. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are met:
@@ -31,6 +31,7 @@
 #include <stddef.h>
 #include <arch_helpers.h>
 #include <assert.h>
+#include <console.h>
 #include <debug.h>
 #include <platform.h>
 #include "psci_private.h"
@@ -46,6 +47,8 @@ void psci_system_off(void)
                psci_spd_pm->svc_system_off();
        }
 
+       console_flush();
+
        /* Call the platform specific hook */
        psci_plat_pm_ops->system_off();
 
@@ -63,6 +66,8 @@ void psci_system_reset(void)
                psci_spd_pm->svc_system_reset();
        }
 
+       console_flush();
+
        /* Call the platform specific hook */
        psci_plat_pm_ops->system_reset();
 
index 90a1afe5027ba5b59638aa583ecc227f0ad056e0..cb3f3550eabaf3e73213b7b24bdc776be5755159 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2014, ARM Limited and Contributors. All rights reserved.
+ * Copyright (c) 2013-2017, ARM Limited and Contributors. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are met:
@@ -28,7 +28,9 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 
+#include <console.h>
 #include <debug.h>
+#include <platform.h>
 
 /*
  * This is a basic implementation. This could be improved.
@@ -37,5 +39,8 @@ void __assert (const char *function, const char *file, unsigned int line,
                const char *assertion)
 {
        tf_printf("ASSERT: %s <%d> : %s\n", function, line, assertion);
+
+       console_flush();
+
        while(1);
 }