summaryrefslogtreecommitdiff
path: root/src/dev/arm/pl011.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/dev/arm/pl011.cc')
-rwxr-xr-x[-rw-r--r--]src/dev/arm/pl011.cc12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/dev/arm/pl011.cc b/src/dev/arm/pl011.cc
index fe73d9674..2e80045e4 100644..100755
--- a/src/dev/arm/pl011.cc
+++ b/src/dev/arm/pl011.cc
@@ -133,6 +133,10 @@ Pl011::read(PacketPtr pkt)
DPRINTF(Uart, "Reading Masked Int status as 0x%x\n", maskInt());
data = maskInt();
break;
+ case UART_DMACR:
+ warn("PL011: DMA not supported\n");
+ data = 0x0; // DMA never enabled
+ break;
default:
if (readId(pkt, AMBA_ID, pioAddr)) {
// Hack for variable size accesses
@@ -239,6 +243,14 @@ Pl011::write(PacketPtr pkt)
dataAvailable();
}
break;
+ case UART_DMACR:
+ // DMA is not supported, so panic if anyome tries to enable it.
+ // Bits 0, 1, 2 enables DMA on RX, TX, ERR respectively, others res0.
+ if (data & 0x7) {
+ panic("Tried to enable DMA on PL011\n");
+ }
+ warn("PL011: DMA not supported\n");
+ break;
default:
panic("Tried to write PL011 at offset %#x that doesn't exist\n", daddr);
break;