plat/arm: Migrate AArch64 port to the multi console driver
authorAntonio Nino Diaz <antonio.ninodiaz@arm.com>
Tue, 19 Jun 2018 08:29:36 +0000 (09:29 +0100)
committerAntonio Nino Diaz <antonio.ninodiaz@arm.com>
Tue, 19 Jun 2018 08:29:36 +0000 (09:29 +0100)
commit88a0523e914cb28fded2ce398a184e0c0e8843c8
tree413409425f5f108297c0c287f5508b7d5469b12c
parentf13cb561f06f492bdccd1a5c8397e5ff6aba3c85
plat/arm: Migrate AArch64 port to the multi console driver

The old API is deprecated and will eventually be removed.

Arm platforms now use the multi console driver for boot and runtime
consoles. However, the crash console uses the direct console API because
it doesn't need any memory access to work. This makes it more robust
during crashes.

The AArch32 port of the Trusted Firmware doesn't support this new API
yet, so it is only enabled in AArch64 builds. Because of this, the
common code must maintain compatibility with both systems. SP_MIN
doesn't have to be updated because it's only used in AArch32 builds.
The TSP is only used in AArch64, so it only needs to support the new
API without keeping support for the old one.

Special care must be taken because of PSCI_SYSTEM_SUSPEND. In Juno, this
causes the UARTs to reset (except for the one used by the TSP). This
means that they must be unregistered when suspending and re-registered
when resuming. This wasn't a problem with the old driver because it just
restarted the UART, and there were no problems associated with
registering and unregistering consoles.

The size reserved for BL2 has been increased.

Change-Id: Icefd117dd1eb9c498921181a21318c2d2435c441
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
13 files changed:
include/drivers/console.h
include/plat/arm/board/common/board_arm_def.h
include/plat/arm/common/plat_arm.h
plat/arm/common/aarch64/arm_helpers.S
plat/arm/common/arm_bl1_setup.c
plat/arm/common/arm_bl2_el3_setup.c
plat/arm/common/arm_bl2_setup.c
plat/arm/common/arm_bl2u_setup.c
plat/arm/common/arm_bl31_setup.c
plat/arm/common/arm_common.mk
plat/arm/common/arm_console.c [new file with mode: 0644]
plat/arm/common/arm_pm.c
plat/arm/common/tsp/arm_tsp_setup.c