diff --git a/plat/hisilicon/hikey/aarch64/hikey_helpers.S b/plat/hisilicon/hikey/aarch64/hikey_helpers.S index 32ff8b4..9dfdae4 100644 --- a/plat/hisilicon/hikey/aarch64/hikey_helpers.S +++ b/plat/hisilicon/hikey/aarch64/hikey_helpers.S @@ -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 @@ -61,6 +62,19 @@ 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 * with platform-specific means. diff --git a/plat/hisilicon/hikey960/aarch64/hikey960_helpers.S b/plat/hisilicon/hikey960/aarch64/hikey960_helpers.S index d18399f..550c560 100644 --- a/plat/hisilicon/hikey960/aarch64/hikey960_helpers.S +++ b/plat/hisilicon/hikey960/aarch64/hikey960_helpers.S @@ -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 @@ -65,6 +66,19 @@ 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 * with platform-specific means. diff --git a/plat/imx/common/imx8_helpers.S b/plat/imx/common/imx8_helpers.S index b89d346..19293bf 100644 --- a/plat/imx/common/imx8_helpers.S +++ b/plat/imx/common/imx8_helpers.S @@ -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 @@ endfunc plat_secondary_cold_boot_setup func plat_crash_console_init + mov x0, #1 ret endfunc plat_crash_console_init @@ -113,6 +115,11 @@ 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 diff --git a/plat/imx/imx7/warp7/aarch32/warp7_helpers.S b/plat/imx/imx7/warp7/aarch32/warp7_helpers.S index b1921cc..3695b32 100644 --- a/plat/imx/imx7/warp7/aarch32/warp7_helpers.S +++ b/plat/imx/imx7/warp7/aarch32/warp7_helpers.S @@ -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 @@ 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] diff --git a/plat/marvell/common/aarch64/marvell_helpers.S b/plat/marvell/common/aarch64/marvell_helpers.S index a3dc917..128c3ab 100644 --- a/plat/marvell/common/aarch64/marvell_helpers.S +++ b/plat/marvell/common/aarch64/marvell_helpers.S @@ -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 @@ 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. diff --git a/plat/nvidia/tegra/common/aarch64/tegra_helpers.S b/plat/nvidia/tegra/common/aarch64/tegra_helpers.S index 3c490d0..0476ba8 100644 --- a/plat/nvidia/tegra/common/aarch64/tegra_helpers.S +++ b/plat/nvidia/tegra/common/aarch64/tegra_helpers.S @@ -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 @@ 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. diff --git a/plat/ti/k3/common/k3_helpers.S b/plat/ti/k3/common/k3_helpers.S index c95e9c3..3dfdda4 100644 --- a/plat/ti/k3/common/k3_helpers.S +++ b/plat/ti/k3/common/k3_helpers.S @@ -100,13 +100,13 @@ * 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 @@ * 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