mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-16 17:44:19 +00:00
plat/common: Remove duplication of plat_crash_console functions/stubs
Commite74afb652
(Deprecate weak crash console functions) deprecated the default inclusion of weak definitions for plat_crash_console functions in plat/common/aarch64/platform_helpers.S. The code was later copied out to plat/common/aarch64/crash_console_helpers.S so platforms can link it explicitly if they want to. However, since deprecation does not mean removal, the same code is also still duplicated in platform_helpers.S. The duplicated code contains both empty stubs for the !MULTI_CONSOLE_API case, and a real implementation that used to work but was broken by commitd35cc34
(Console: Use callee-saved registers) for MULTI_CONSOLE_API. It's not great to have both of these duplicated in two files, so this patch splits them up: in platform_helpers.S we'll only keep the empty stubs (guarded by !ERROR_DEPRECATED), which should not regress functionality since the MULTI_CONSOLE_API implementation was already broken anyway. In crash_console_helpers.S, we'll only keep the MULTI_CONSOLE_API version, which is enough both as an implementation in itself and as a sample for how to reimplement these functions in a platform-specific file. Change-Id: I83d95a90ab6aac597dc2ea2f2797ac2c8ed075d4 Signed-off-by: Julius Werner <jwerner@chromium.org>
This commit is contained in:
parent
9345d9a0d9
commit
b2f7c9dd80
2 changed files with 3 additions and 83 deletions
|
@ -16,7 +16,9 @@
|
||||||
.globl plat_crash_console_putc
|
.globl plat_crash_console_putc
|
||||||
.globl plat_crash_console_flush
|
.globl plat_crash_console_flush
|
||||||
|
|
||||||
#if MULTI_CONSOLE_API
|
#if !MULTI_CONSOLE_API
|
||||||
|
#error "This crash console implementation only works with the MULTI_CONSOLE_API!"
|
||||||
|
#endif
|
||||||
|
|
||||||
/* -----------------------------------------------------
|
/* -----------------------------------------------------
|
||||||
* int plat_crash_console_init(void)
|
* int plat_crash_console_init(void)
|
||||||
|
@ -68,25 +70,3 @@ endfunc plat_crash_console_putc
|
||||||
func plat_crash_console_flush
|
func plat_crash_console_flush
|
||||||
b console_flush
|
b console_flush
|
||||||
endfunc plat_crash_console_flush
|
endfunc plat_crash_console_flush
|
||||||
|
|
||||||
#else /* MULTI_CONSOLE_API */
|
|
||||||
|
|
||||||
/* -----------------------------------------------------
|
|
||||||
* In the old API these are all no-op stubs that need to
|
|
||||||
* be overridden by the platform to be useful.
|
|
||||||
* -----------------------------------------------------
|
|
||||||
*/
|
|
||||||
func plat_crash_console_init
|
|
||||||
mov x0, #0
|
|
||||||
ret
|
|
||||||
endfunc plat_crash_console_init
|
|
||||||
|
|
||||||
func plat_crash_console_putc
|
|
||||||
ret
|
|
||||||
endfunc plat_crash_console_putc
|
|
||||||
|
|
||||||
func plat_crash_console_flush
|
|
||||||
ret
|
|
||||||
endfunc plat_crash_console_flush
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
|
@ -40,65 +40,6 @@ func plat_report_exception
|
||||||
endfunc plat_report_exception
|
endfunc plat_report_exception
|
||||||
|
|
||||||
#if !ERROR_DEPRECATED
|
#if !ERROR_DEPRECATED
|
||||||
#if MULTI_CONSOLE_API
|
|
||||||
/* -----------------------------------------------------
|
|
||||||
* int plat_crash_console_init(void)
|
|
||||||
* Use normal console by default. Switch it to crash
|
|
||||||
* mode so serial consoles become active again.
|
|
||||||
* NOTE: This default implementation will only work for
|
|
||||||
* crashes that occur after a normal console (marked
|
|
||||||
* valid for the crash state) has been registered with
|
|
||||||
* the console framework. To debug crashes that occur
|
|
||||||
* earlier, the platform has to override these functions
|
|
||||||
* with an implementation that initializes a console
|
|
||||||
* driver with hardcoded parameters. See
|
|
||||||
* docs/porting-guide.rst for more information.
|
|
||||||
* -----------------------------------------------------
|
|
||||||
*/
|
|
||||||
func plat_crash_console_init
|
|
||||||
#if defined(IMAGE_BL1)
|
|
||||||
/*
|
|
||||||
* BL1 code can possibly crash so early that the data segment is not yet
|
|
||||||
* accessible. Don't risk undefined behavior by trying to run the normal
|
|
||||||
* console framework. Platforms that want to debug BL1 will need to
|
|
||||||
* override this with custom functions that can run from registers only.
|
|
||||||
*/
|
|
||||||
mov x0, #0
|
|
||||||
ret
|
|
||||||
#else /* IMAGE_BL1 */
|
|
||||||
mov x3, x30
|
|
||||||
mov x0, #CONSOLE_FLAG_CRASH
|
|
||||||
bl console_switch_state
|
|
||||||
mov x0, #1
|
|
||||||
ret x3
|
|
||||||
#endif
|
|
||||||
endfunc plat_crash_console_init
|
|
||||||
|
|
||||||
/* -----------------------------------------------------
|
|
||||||
* void plat_crash_console_putc(int character)
|
|
||||||
* Output through the normal console by default.
|
|
||||||
* -----------------------------------------------------
|
|
||||||
*/
|
|
||||||
func plat_crash_console_putc
|
|
||||||
b console_putc
|
|
||||||
endfunc plat_crash_console_putc
|
|
||||||
|
|
||||||
/* -----------------------------------------------------
|
|
||||||
* void plat_crash_console_flush(void)
|
|
||||||
* Flush normal console by default.
|
|
||||||
* -----------------------------------------------------
|
|
||||||
*/
|
|
||||||
func plat_crash_console_flush
|
|
||||||
b console_flush
|
|
||||||
endfunc plat_crash_console_flush
|
|
||||||
|
|
||||||
#else /* MULTI_CONSOLE_API */
|
|
||||||
|
|
||||||
/* -----------------------------------------------------
|
|
||||||
* In the old API these are all no-op stubs that need to
|
|
||||||
* be overridden by the platform to be useful.
|
|
||||||
* -----------------------------------------------------
|
|
||||||
*/
|
|
||||||
func plat_crash_console_init
|
func plat_crash_console_init
|
||||||
mov x0, #0
|
mov x0, #0
|
||||||
ret
|
ret
|
||||||
|
@ -111,7 +52,6 @@ endfunc plat_crash_console_putc
|
||||||
func plat_crash_console_flush
|
func plat_crash_console_flush
|
||||||
ret
|
ret
|
||||||
endfunc plat_crash_console_flush
|
endfunc plat_crash_console_flush
|
||||||
#endif
|
|
||||||
#endif /* ERROR_DEPRECATED */
|
#endif /* ERROR_DEPRECATED */
|
||||||
|
|
||||||
/* -----------------------------------------------------
|
/* -----------------------------------------------------
|
||||||
|
|
Loading…
Add table
Reference in a new issue