diff options
Diffstat (limited to 'src/dev/arm/pl011.cc')
-rwxr-xr-x[-rw-r--r--] | src/dev/arm/pl011.cc | 12 |
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; |