dev: Allow additional UART interrupts to be set
authorAli Saidi <Ali.Saidi@ARM.com>
Thu, 17 Oct 2013 15:20:45 +0000 (10:20 -0500)
committerAli Saidi <Ali.Saidi@ARM.com>
Thu, 17 Oct 2013 15:20:45 +0000 (10:20 -0500)
This patch allows setting a few additional interrupts for status
changes that should never occur.

src/dev/arm/pl011.cc

index 2b4225ad533c31b2bf4e2f8c1601c3218111853d..b47d0e9fb4174cbe3d6f26e6f875fc6ab6988887 100644 (file)
@@ -211,10 +211,14 @@ Pl011::write(PacketPtr pkt)
       case UART_IMSC:
         imsc = data;
 
-        if (imsc.rimim || imsc.ctsmim || imsc.dcdmim || imsc.dsrmim
-             || imsc.feim || imsc.peim || imsc.beim || imsc.oeim || imsc.rsvd)
+        if (imsc.feim || imsc.peim || imsc.beim || imsc.oeim || imsc.rsvd)
             panic("Unknown interrupt enabled\n");
 
+        // rimim, ctsmim, dcdmim, dsrmim can be enabled but are ignored
+        // they are supposed to interrupt on a change of status in the line
+        // which we should never have since our terminal is happy to always
+        // receive bytes.
+
         if (imsc.txim) {
             DPRINTF(Uart, "Writing to IMSC: TX int enabled, scheduling interruptt\n");
             rawInt.txim = 1;