X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fdev%2Fuart8250.hh;h=7d577954cf6c3b1157e185cc327afe911242400f;hb=d2fd3b2ec2c265eb9ed3bdcc1db3e4c3feee3846;hp=c9c878aeda12d8dc8c29b3685aec05965e2dba72;hpb=58b9047194774ae6ee3cd7c2ef52cc867c8e718e;p=gem5.git diff --git a/src/dev/uart8250.hh b/src/dev/uart8250.hh index c9c878aed..7d577954c 100644 --- a/src/dev/uart8250.hh +++ b/src/dev/uart8250.hh @@ -35,10 +35,9 @@ #ifndef __DEV_UART8250_HH__ #define __DEV_UART8250_HH__ -#include "base/range.hh" #include "dev/io_device.hh" #include "dev/uart.hh" - +#include "params/Uart8250.hh" /* UART8250 Interrupt ID Register * bit 0 Interrupt Pending 0 = true, 1 = false @@ -65,13 +64,11 @@ const uint8_t UART_LSR_DR = 0x01; const uint8_t UART_MCR_LOOP = 0x10; -class SimConsole; +class Terminal; class Platform; class Uart8250 : public Uart { - - protected: uint8_t IER, DLAB, LCR, MCR; Tick lastTxInt; @@ -84,7 +81,7 @@ class Uart8250 : public Uart public: IntrEvent(Uart8250 *u, int bit); virtual void process(); - virtual const char *description(); + virtual const char *description() const; void scheduleIntr(); }; @@ -92,12 +89,17 @@ class Uart8250 : public Uart IntrEvent rxIntrEvent; public: - Uart8250(Params *p); + typedef Uart8250Params Params; + const Params * + params() const + { + return dynamic_cast(_params); + } + Uart8250(const Params *p); virtual Tick read(PacketPtr pkt); virtual Tick write(PacketPtr pkt); - virtual void addressRanges(AddrRangeList &range_list); - + virtual AddrRangeList getAddrRanges() const; /** * Inform the uart that there is data available.