arm-trusted-firmware/drivers
Pali Rohár 0ee80f35a2 fix(plat/marvell/a3720/uart): do external reset during initialization
Sometimes when changing UART clock from TBG to XTAL, UART HW enters into
some broken state. It does not transit characters from TX FIFO anymore
and TX FIFO stays always empty. TX FIFO reset does not recover UART HW
from this broken state.

Experiments show that external reset can fix UART HW from this broken
state.

TF-A fatal error handler calls console_a3700_core_init() function to
initialize UART HW. This handler may be called anytime during CPU
runtime, also when kernel is running.

U-Boot or Linux kernel may change UART clock to TBG to achieve higher
baudrates. During initialization, console_a3700_core_init() resets UART
configuration to default settings, which means that it also changes
UART clock from TBG to XTAL.

Do an external reset of UART via North Bridge Peripheral reset register
to prevent this UART hangup.

Signed-off-by: Pali Rohár <pali@kernel.org>
Change-Id: I8990bce24d1a6fd8ccc47a2cd0a5ff932fcfcf14
2021-12-02 17:38:02 +01:00
..
allwinner plat/allwinner: do not setup 'disabled' regulators 2021-03-19 12:57:50 +01:00
amlogic Don't return error information from console_flush 2020-10-09 10:21:50 -05:00
arm fix(drivers/gic600ae_fmu): fix timeout calculation 2021-11-18 13:36:50 +02:00
auth fix(cc-713): fix a build failure with CC-713 library 2021-10-15 12:30:06 +02:00
brcm fix: libc: use long for 64-bit types on aarch64 2021-11-08 14:41:17 +00:00
cadence/uart/aarch64 cadence: Change logic in uart driver 2021-01-11 17:28:00 +00:00
cfi/v2m coverity: fix MISRA violations 2020-02-18 10:47:46 -06:00
console Don't return error information from console_flush 2020-10-09 10:21:50 -05:00
coreboot/cbmem_console/aarch64 Don't return error information from console_flush 2020-10-09 10:21:50 -05:00
delay_timer include: move MHZ_TICKS_PER_SEC to utils_def.h 2020-02-20 09:25:45 -08:00
fwu refactor(hw_crc32): renamed hw_crc32 to tf_crc32 2021-08-02 17:15:41 +01:00
gpio Sanitise includes across codebase 2019-01-04 10:43:17 +00:00
imx Don't return error information from console_flush 2020-10-09 10:21:50 -05:00
intel/soc/stratix10/io io: change seek offset to signed long long 2020-01-10 21:14:57 +01:00
io feat(io_mtd): offset management for FIP usage 2021-07-13 18:16:55 +02:00
marvell fix(plat/marvell/a3720/uart): do external reset during initialization 2021-12-02 17:38:02 +01:00
measured_boot/event_log feat(measured_boot): image hash measurement and recording in BL1 2021-10-12 17:53:48 +01:00
mentor/i2c Enable -Wlogical-op always 2019-11-19 08:53:21 -06:00
mmc feat(drivers/mmc): boot partition read support 2021-06-04 09:52:37 +02:00
mtd fix: libc: use long for 64-bit types on aarch64 2021-11-08 14:41:17 +00:00
nxp fix: libc: use long for 64-bit types on aarch64 2021-11-08 14:41:17 +00:00
partition fix: use correct printf format for uint64_t 2021-11-12 13:02:02 +00:00
rambus drivers/rambus: add TRNG-IP-76 driver 2021-02-11 09:43:18 +00:00
renesas fix(plat/rcar): change process that copy code to system ram 2021-10-16 17:41:49 +02:00
rpi3 rpi3: gpio: Simplify GPIO setup 2020-03-17 12:44:09 +00:00
scmi-msg fix(drivers/scmi-msg): entry: add weak functions 2021-07-22 10:27:48 +08:00
st fix: use correct printf format for uint64_t 2021-11-12 13:02:02 +00:00
synopsys Merge changes from topic "jc/shift-overflow" into integration 2019-07-16 10:11:27 +00:00
ti/uart Don't return error information from console_flush 2020-10-09 10:21:50 -05:00
ufs fix(ufs): add reset before DME_LINKSTARTUP 2021-10-15 13:22:49 -07:00
usb Merge changes from topic "st_usb" into integration 2021-11-09 06:03:32 +01:00