escc: always set STATUS_TXEMPTY in R_STATUS on device reset
commitc29cd47e82df0bc7385cdd49a158d838314daa9e
authorMark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Thu, 18 Nov 2021 18:18:34 +0000 (18 18:18 +0000)
committerMark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Sun, 21 Nov 2021 09:56:52 +0000 (21 09:56 +0000)
treee17b19d26b3694212bc4babee384ba119053e968
parent8627edfb3f1fca24a96a0954148885c3241c10f8
escc: always set STATUS_TXEMPTY in R_STATUS on device reset

The "Transmit Interrupts and Transmit Buffer Empty Bit" section of the ESCC
datasheet states the following about the STATUS_TXEMPTY bit: "After a hardware
reset (including a hardware reset by software), or a channel reset, this bit
is set to 1".

Update escc_reset() to set the STATUS_TXEMPTY bit in the R_STATUS register
on device reset as described which fixes a regression whereby the Sun PROM
checks this bit early on startup and gets stuck in an infinite loop if it is
not set.

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Message-Id: <20211118181835.18497-2-mark.cave-ayland@ilande.co.uk>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
hw/char/escc.c