plat/common/crash_console_helpers.S: Fix MULTI_CONSOLE_API support
authorJulius Werner <jwerner@chromium.org>
Mon, 19 Nov 2018 22:25:55 +0000 (14:25 -0800)
committerJulius Werner <jwerner@chromium.org>
Fri, 7 Dec 2018 00:10:32 +0000 (16:10 -0800)
commit63c52d0071ef4f9252f073fc3ee30fa1b2b2cf90
treee44cbd0f84426b7d212d541beee172c6f01a641f
parentb2f7c9dd8052d5dd093f5875022a368e18a41383
plat/common/crash_console_helpers.S: Fix MULTI_CONSOLE_API support

Crash reporting via the default consoles registered by MULTI_CONSOLE_API
has been broken since commit d35cc34 (Console: Use callee-saved
registers), which was introduced to allow console drivers written in C.
It's not really possible with the current crash reporting framework to
support console drivers in C, however we should make sure that the
existing assembly drivers that do support crash reporting continue to
work through the MULTI_CONSOLE_API.

This patch fixes the problem by creating custom console_putc() and
console_flush() implementations for the crash reporting case that do not
use the stack. Platforms that want to use this feature will have to link
plat/common/aarch64/crash_console_helpers.S explicitly.

Also update the documentation to better reflect the new reality (of this
being an option rather than the expected default for most platforms).

Change-Id: Id0c761e5e2fddaf25c277bc7b8ab603946ca73cb
Signed-off-by: Julius Werner <jwerner@chromium.org>
docs/porting-guide.rst
drivers/console/aarch64/multi_console.S
plat/common/aarch64/crash_console_helpers.S