Add plat_crash_console_flush to platforms without it
authorAntonio Nino Diaz <antonio.ninodiaz@arm.com>
Wed, 17 Oct 2018 14:29:34 +0000 (15:29 +0100)
committerAntonio Nino Diaz <antonio.ninodiaz@arm.com>
Thu, 25 Oct 2018 08:56:09 +0000 (09:56 +0100)
Even though at this point plat_crash_console_flush is optional, it will
stop being optional in a following patch.

The console driver of warp7 doesn't support flush, so the implementation
is a placeholder.

TI had ``plat_crash_console_init`` and ``plat_crash_console_putc``, but
they weren't global so they weren't actually used. Also, they were
calling the wrong functions.

imx8_helpers.S only has placeholders for all of the functions.

Change-Id: I8d17bbf37c7dad74e134c61ceb92acb9af497718
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
plat/hisilicon/hikey/aarch64/hikey_helpers.S
plat/hisilicon/hikey960/aarch64/hikey960_helpers.S
plat/imx/common/imx8_helpers.S
plat/imx/imx7/warp7/aarch32/warp7_helpers.S
plat/marvell/common/aarch64/marvell_helpers.S
plat/nvidia/tegra/common/aarch64/tegra_helpers.S
plat/ti/k3/common/k3_helpers.S

index 32ff8b40cd3128b883d226d8a7f2cef1060662cb..9dfdae49c30871ea61d186ab9911a947046f3f7b 100644 (file)
@@ -12,6 +12,7 @@
        .globl  platform_mem_init
        .globl  plat_crash_console_init
        .globl  plat_crash_console_putc
+       .globl  plat_crash_console_flush
        .globl  plat_report_exception
        .globl  plat_reset_handler
 
@@ -60,6 +61,19 @@ func plat_crash_console_putc
        b       console_core_putc
 endfunc plat_crash_console_putc
 
+       /* ---------------------------------------------
+        * int plat_crash_console_flush()
+        * Function to force a write of all buffered
+        * data that hasn't been output.
+        * Out : return -1 on error else return 0.
+        * Clobber list : x0, x1
+        * ---------------------------------------------
+        */
+func plat_crash_console_flush
+       mov_imm x0, CRASH_CONSOLE_BASE
+       b       console_core_flush
+endfunc plat_crash_console_flush
+
        /* ---------------------------------------------
         * void plat_report_exception(unsigned int type)
         * Function to report an unhandled exception
index d18399fbf788f209de53323a6872511c3576f0ec..550c5604b9353df4cf79c24ee44da8afe19d8a71 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, ARM Limited and Contributors. All rights reserved.
+ * Copyright (c) 2017-2018, ARM Limited and Contributors. All rights reserved.
  *
  * SPDX-License-Identifier: BSD-3-Clause
  */
@@ -14,6 +14,7 @@
        .globl  platform_mem_init
        .globl  plat_crash_console_init
        .globl  plat_crash_console_putc
+       .globl  plat_crash_console_flush
        .globl  plat_report_exception
        .globl  plat_reset_handler
        .globl  clr_ex
@@ -64,6 +65,19 @@ func plat_crash_console_putc
        b       console_core_putc
 endfunc plat_crash_console_putc
 
+       /* ---------------------------------------------
+        * int plat_crash_console_flush()
+        * Function to force a write of all buffered
+        * data that hasn't been output.
+        * Out : return -1 on error else return 0.
+        * Clobber list : x0, x1
+        * ---------------------------------------------
+        */
+func plat_crash_console_flush
+       mov_imm x0, CRASH_CONSOLE_BASE
+       b       console_core_flush
+endfunc plat_crash_console_flush
+
        /* ---------------------------------------------
         * void plat_report_exception(unsigned int type)
         * Function to report an unhandled exception
index b89d346c6fd6e30a708cb75fa937323a6d2af153..19293bfe774070e1e5be2882c0ea9e6055a36a4f 100644 (file)
@@ -16,6 +16,7 @@
        .globl  plat_secondary_cold_boot_setup
        .globl  plat_crash_console_init
        .globl  plat_crash_console_putc
+       .globl  plat_crash_console_flush
        .globl  platform_mem_init
        .globl  imx_mailbox_init
 
@@ -106,6 +107,7 @@ func plat_secondary_cold_boot_setup
 endfunc plat_secondary_cold_boot_setup
 
 func plat_crash_console_init
+       mov     x0, #1
        ret
 endfunc plat_crash_console_init
 
@@ -113,6 +115,11 @@ func plat_crash_console_putc
        ret
 endfunc plat_crash_console_putc
 
+func plat_crash_console_flush
+       mov     x0, #0
+       ret
+endfunc plat_crash_console_flush
+
 func platform_mem_init
        ret
 endfunc platform_mem_init
index b1921cc389520fab99548259191a89c3e3ae53c3..3695b32db6382392562f8019728b7df3b49502b5 100644 (file)
@@ -14,6 +14,7 @@
        .globl  plat_get_my_entrypoint
        .globl  plat_crash_console_init
        .globl  plat_crash_console_putc
+       .globl  plat_crash_console_flush
        .globl  plat_panic_handler
 
        /* ---------------------------------------------
@@ -45,6 +46,12 @@ func plat_crash_console_putc
        b       imx_crash_uart_putc
 endfunc plat_crash_console_putc
 
+func plat_crash_console_flush
+       /* Placeholder */
+       mov     r0, #0
+       bx      lr
+endfunc plat_crash_console_flush
+
 func plat_panic_handler
        mov     r3, #HAB_ROM_VECTOR_TABLE_FAILSAFE
        ldr     r3, [r3, #0]
index a3dc917c6843468057661b21580f47f2b6f8e0b2..128c3ab69e1017de6962d23e2f26b73e0d03b2e6 100644 (file)
@@ -18,6 +18,7 @@
        .weak   plat_my_core_pos
        .globl  plat_crash_console_init
        .globl  plat_crash_console_putc
+       .globl  plat_crash_console_flush
        .globl  platform_mem_init
        .globl  disable_mmu_dcache
        .globl  invalidate_tlb_all
@@ -79,6 +80,19 @@ func plat_crash_console_putc
        b       console_core_putc
 endfunc plat_crash_console_putc
 
+       /* ---------------------------------------------
+        * int plat_crash_console_flush()
+        * Function to force a write of all buffered
+        * data that hasn't been output.
+        * Out : return -1 on error else return 0.
+        * Clobber list : x0, x1
+        * ---------------------------------------------
+        */
+func plat_crash_console_flush
+       mov_imm x0, PLAT_MARVELL_CRASH_UART_BASE
+       b       console_core_flush
+endfunc plat_crash_console_flush
+
        /* ---------------------------------------------------------------------
         * We don't need to carry out any memory initialization on ARM
         * platforms. The Secure RAM is accessible straight away.
index 3c490d078cf633a01777cadd4713060c250fcbe3..0476ba8262364c7b17ce17ef52c7b2b9bc96a571 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015-2017, ARM Limited and Contributors. All rights reserved.
+ * Copyright (c) 2015-2018, ARM Limited and Contributors. All rights reserved.
  *
  * SPDX-License-Identifier: BSD-3-Clause
  */
@@ -36,6 +36,7 @@
        .globl  platform_mem_init
        .globl  plat_crash_console_init
        .globl  plat_crash_console_putc
+       .globl  plat_crash_console_flush
        .globl  tegra_secure_entrypoint
        .globl  plat_reset_handler
 
@@ -240,6 +241,20 @@ func plat_crash_console_putc
        b       console_core_putc
 endfunc plat_crash_console_putc
 
+       /* ---------------------------------------------
+        * int plat_crash_console_flush()
+        * Function to force a write of all buffered
+        * data that hasn't been output.
+        * Out : return -1 on error else return 0.
+        * Clobber list : x0, x1
+        * ---------------------------------------------
+        */
+func plat_crash_console_flush
+       adr     x0, tegra_console_base
+       ldr     x0, [x0]
+       b       console_core_flush
+endfunc plat_crash_console_flush
+
        /* ---------------------------------------------------
         * Function to handle a platform reset and store
         * input parameters passed by BL2.
index c95e9c367a08c3a78efc9984b01b18dc84529e36..3dfdda4bd8eae96fd30b3dec1e302ec7d0e6c6a1 100644 (file)
@@ -100,13 +100,13 @@ endfunc plat_my_core_pos
         * Clobber list : x0 - x4
         * ---------------------------------------------
         */
+       .globl plat_crash_console_init
 func plat_crash_console_init
        mov_imm x0, CRASH_CONSOLE_BASE
        mov_imm x1, CRASH_CONSOLE_CLK
        mov_imm x2, CRASH_CONSOLE_BAUD_RATE
        mov w3, #0x0
-       b       console_core_init
-
+       b       console_16550_core_init
 endfunc plat_crash_console_init
 
        /* ---------------------------------------------
@@ -116,7 +116,22 @@ endfunc plat_crash_console_init
         * Clobber list : x1, x2
         * ---------------------------------------------
         */
+       .globl plat_crash_console_putc
 func plat_crash_console_putc
        mov_imm x1, CRASH_CONSOLE_BASE
-       b       console_core_putc
+       b       console_16550_core_putc
 endfunc plat_crash_console_putc
+
+       /* ---------------------------------------------
+        * int plat_crash_console_flush()
+        * Function to force a write of all buffered
+        * data that hasn't been output.
+        * Out : return -1 on error else return 0.
+        * Clobber list : x0, x1
+        * ---------------------------------------------
+        */
+       .globl plat_crash_console_flush
+func plat_crash_console_flush
+       mov_imm x0, CRASH_CONSOLE_BASE
+       b       console_16550_core_flush
+endfunc plat_crash_console_flush