From: Bjoern A. Zeeb Date: Thu, 19 May 2016 20:19:35 +0000 (-0500) Subject: arm,dev: PL011 UART_FR read status enhancement X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=a6b00c07f6ec9dd25c860bc89691e3873f7996c6;p=gem5.git arm,dev: PL011 UART_FR read status enhancement Given we do not simulate a FIFO currently there are only two states we can be in upon read: empty or full. Properly signal the latter. Add and sort constants for states in the header file. Committed by Jason Lowe-Power --- diff --git a/src/dev/arm/pl011.cc b/src/dev/arm/pl011.cc index f0c3d2d98..e00ee8351 100644 --- a/src/dev/arm/pl011.cc +++ b/src/dev/arm/pl011.cc @@ -91,7 +91,8 @@ Pl011::read(PacketPtr pkt) case UART_FR: data = UART_FR_CTS | // Clear To Send - (!term->dataAvailable() ? UART_FR_RXFE : 0) | // RX FIFO Empty + // Given we do not simulate a FIFO we are either empty or full. + (!term->dataAvailable() ? UART_FR_RXFE : UART_FR_RXFF) | UART_FR_TXFE; // TX FIFO empty DPRINTF(Uart, diff --git a/src/dev/arm/pl011.hh b/src/dev/arm/pl011.hh index e19c74fa2..81745eded 100644 --- a/src/dev/arm/pl011.hh +++ b/src/dev/arm/pl011.hh @@ -120,8 +120,10 @@ class Pl011 : public Uart, public AmbaDevice static const int UART_DR = 0x000; static const int UART_FR = 0x018; static const int UART_FR_CTS = 0x001; - static const int UART_FR_TXFE = 0x080; static const int UART_FR_RXFE = 0x010; + static const int UART_FR_TXFF = 0x020; + static const int UART_FR_RXFF = 0x040; + static const int UART_FR_TXFE = 0x080; static const int UART_IBRD = 0x024; static const int UART_FBRD = 0x028; static const int UART_LCRH = 0x02C;