changeset 6281479f9713 in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=6281479f9713
description:
        arm, dev: pl011 console interactivity

        Improve PL011 console interactivity

        Signed-off-by: Jason Lowe-Power <ja...@lowepower.com>

diffstat:

 src/dev/arm/pl011.cc |  10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diffs (27 lines):

diff -r b3c3893811af -r 6281479f9713 src/dev/arm/pl011.cc
--- a/src/dev/arm/pl011.cc      Sat Oct 15 15:06:24 2016 -0500
+++ b/src/dev/arm/pl011.cc      Sat Oct 15 15:11:04 2016 -0500
@@ -86,6 +86,11 @@
             // Since we don't simulate a FIFO for incoming data, we
             // assume it's empty and clear RXINTR and RTINTR.
             clearInterrupts(UART_RXINTR | UART_RTINTR);
+            if (term->dataAvailable()) {
+                DPRINTF(Uart, "Re-raising interrupt due to more data "
+                        "after UART_DR read\n");
+                dataAvailable();
+            }
         }
         break;
       case UART_FR:
@@ -224,6 +229,11 @@
       case UART_ICR:
         DPRINTF(Uart, "Clearing interrupts 0x%x\n", data);
         clearInterrupts(data);
+        if (term->dataAvailable()) {
+            DPRINTF(Uart, "Re-raising interrupt due to more data after "
+                    "UART_ICR write\n");
+            dataAvailable();
+        }
         break;
       default:
         panic("Tried to write PL011 at offset %#x that doesn't exist\n", 
daddr);
_______________________________________________
gem5-dev mailing list
gem5-dev@gem5.org
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to