rpi: Allow using PL011 UART for RPi3/RPi4
The Broadcom 283x SoCs feature multiple UARTs: the mostly used
"Mini-UART", which is an 8250 compatible IP, and at least one PL011.
While the 8250 is usually used for serial console purposes, it suffers
from a design flaw, where its clock depends on the VPU clock, which can
change at runtime. This will reliably mess up the baud rate.
To avoid this problem, people might choose to use the PL011 UART for
the serial console, which is pin-mux'ed to the very same GPIO pins.
This can be done by adding "miniuart-bt" to the "dtoverlay=" line in
config.txt.

To prepare for this situation, use the newly gained freedom of sharing
one console_t pointer across different UART drivers, to introduce the
option of choosing the PL011 for the console.

This is for now hard-coded to choose the Mini-UART by default.
A follow-up patch will introduce automatic detection.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Change-Id: I8cf2522151e09ff4ff94a6d396aec6fc4b091a05
1 parent 795aefe commit 5e6d821cb3b32fc6eadb38c25a96f8efe217efba
@Andre Przywara Andre Przywara authored on 10 Mar 2020
Showing 7 changed files
View
plat/rpi/common/rpi3_common.c
View
plat/rpi/rpi3/include/platform_def.h
View
plat/rpi/rpi3/include/rpi_hw.h
View
plat/rpi/rpi3/platform.mk
View
plat/rpi/rpi4/include/platform_def.h
View
plat/rpi/rpi4/include/rpi_hw.h
View
plat/rpi/rpi4/platform.mk