]> git.baikalelectronics.ru Git - arm-tf.git/commit
fix(msm8916): add timeout for crash console TX flush
authorStephan Gerhold <stephan@gerhold.net>
Thu, 6 Apr 2023 19:43:37 +0000 (21:43 +0200)
committerManish V Badarkhe <manish.badarkhe@arm.com>
Tue, 9 May 2023 19:46:27 +0000 (21:46 +0200)
commit7e002c8a13172c44f55ab49062861479b6622884
tree3b4f2deb6392a5c842f92a348936571c977d0366
parenta27e3f769832b8db21115a2b71d4f56fc0160e66
fix(msm8916): add timeout for crash console TX flush

Resetting the UART DM controller while there are still remaining
characters in the FIFO often results in corruption on the UART receiver
side. To avoid this the msm8916 crash console implementation tries to
wait until the TX FIFO is empty.

Unfortunately this might spin forever if the transmitter was disabled
before it has fully finished transmitting. In this case the TXEMT bit
console_uartdm_core_flush is waiting for will never get set.

There seems to be no good way to detect if the transmitter is actually
enabled via the status registers. However, the TX FIFO is fairly small
and should not take too long to get flushed, so fix this by simply
limiting the amount of iterations with a short timeout.

Move the code to console_uartdm_core_init to ensure that this always
happens before resetting the transmitter (also during initialization).

Change-Id: I5bb43cb0b6c029bcd15e253d60d36c0b310e108b
Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
plat/qti/msm8916/aarch64/msm8916_helpers.S
plat/qti/msm8916/aarch64/uartdm_console.S