summaryrefslogtreecommitdiff
path: root/dev/uart.hh
diff options
context:
space:
mode:
authorNathan Binkert <binkertn@umich.edu>2005-06-05 01:24:16 -0400
committerNathan Binkert <binkertn@umich.edu>2005-06-05 01:24:16 -0400
commit8f1348a21d8d4509716525048d3bd8922072592a (patch)
treee45bae70f7462416d7b0ca79fc76dc8bf157ce3f /dev/uart.hh
parent4f654fed0ed144fd6cbe9699f694926cf655479e (diff)
parent5657c1dbecd8224b8bed45319e1624d58bcfefbb (diff)
downloadgem5-8f1348a21d8d4509716525048d3bd8922072592a.tar.xz
Merge zizzer.eecs.umich.edu:/bk/m5
into crampon.my.domain:/z/binkertn/research/m5/head --HG-- extra : convert_revision : cf1b2ab4544492aced52c0012c3a67fee188b683
Diffstat (limited to 'dev/uart.hh')
-rw-r--r--dev/uart.hh44
1 files changed, 10 insertions, 34 deletions
diff --git a/dev/uart.hh b/dev/uart.hh
index d1f167526..a2be3fb8e 100644
--- a/dev/uart.hh
+++ b/dev/uart.hh
@@ -26,14 +26,13 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-/* @file
- * Defines a 8250 UART
+/** @file
+ * Base class for UART
*/
-#ifndef __TSUNAMI_UART_HH__
-#define __TSUNAMI_UART_HH__
+#ifndef __UART_HH__
+#define __UART_HH__
-#include "dev/tsunamireg.h"
#include "base/range.hh"
#include "dev/io_device.hh"
@@ -47,45 +46,25 @@ const int TX_INT = 0x2;
class Uart : public PioDevice
{
- private:
+ protected:
+ int status;
Addr addr;
Addr size;
SimConsole *cons;
-
- protected:
- int readAddr; // tlaser only
- uint8_t IER, DLAB, LCR, MCR;
- int status;
-
- class IntrEvent : public Event
- {
- protected:
- Uart *uart;
- int intrBit;
- public:
- IntrEvent(Uart *u, int bit);
- virtual void process();
- virtual const char *description();
- void scheduleIntr();
- };
-
- IntrEvent txIntrEvent;
- IntrEvent rxIntrEvent;
-
public:
Uart(const std::string &name, SimConsole *c, MemoryController *mmu,
Addr a, Addr s, HierParams *hier, Bus *bus, Tick pio_latency,
Platform *p);
- Fault read(MemReqPtr &req, uint8_t *data);
- Fault write(MemReqPtr &req, const uint8_t *data);
+ virtual Fault read(MemReqPtr &req, uint8_t *data) = 0;
+ virtual Fault write(MemReqPtr &req, const uint8_t *data) = 0;
/**
* Inform the uart that there is data available.
*/
- void dataAvailable();
+ virtual void dataAvailable() = 0;
/**
@@ -94,9 +73,6 @@ class Uart : public PioDevice
*/
bool intStatus() { return status ? true : false; }
- virtual void serialize(std::ostream &os);
- virtual void unserialize(Checkpoint *cp, const std::string &section);
-
/**
* Return how long this access will take.
* @param req the memory request to calcuate
@@ -105,4 +81,4 @@ class Uart : public PioDevice
Tick cacheAccess(MemReqPtr &req);
};
-#endif // __TSUNAMI_UART_HH__
+#endif // __UART_HH__