Make mulitple consoles work and be distinguishable from each other
authorAli Saidi <saidi@eecs.umich.edu>
Tue, 13 Feb 2007 20:58:06 +0000 (15:58 -0500)
committerAli Saidi <saidi@eecs.umich.edu>
Tue, 13 Feb 2007 20:58:06 +0000 (15:58 -0500)
src/dev/alpha/tsunamireg.h:
    get rid of things that aren't really tsunami registers
src/dev/platform.hh:
src/dev/uart.cc:
    the uart pointer isn't used anymore
src/dev/simconsole.cc:
    make the simconsole print something more useful to distinguish between various consoles in a single system
src/dev/uart8250.hh:
    put the needed uart defines in here rather than including them from tsunamireg
src/python/m5/objects/T1000.py:
    add a console to the T1000 config for the hypervisor

--HG--
extra : convert_revision : 76ca92122e611eaf76b989bc699582eef8297be8

src/dev/alpha/tsunamireg.h
src/dev/platform.hh
src/dev/simconsole.cc
src/dev/uart.cc
src/dev/uart8250.hh
src/python/m5/objects/T1000.py

index d603972bed27507bc86b7ee7dacfa1d8cd2be607..a2742e36d95aba634c1a26ea53461ab75b5266d0 100644 (file)
 /* Added for keyboard accesses */
 #define TSDEV_KBD           0x64
 
-/* Added for ATA PCI DMA */
-#define ATA_PCI_DMA         0x00
-#define ATA_PCI_DMA2        0x02
-#define ATA_PCI_DMA3        0x16
-#define ATA_PCI_DMA4        0x17
-#define ATA_PCI_DMA5        0x1a
-#define ATA_PCI_DMA6        0x11
-#define ATA_PCI_DMA7        0x14
-
 #define TSDEV_RTC_ADDR      0x70
 #define TSDEV_RTC_DATA      0x71
 
 #define TSUNAMI_PCI0_IO         TSUNAMI_UNCACHABLE_BIT + PCHIP_PCI0_IO
 
 
-// UART Defines
-#define UART_IER_RDI            0x01
-#define UART_IER_THRI           0x02
-#define UART_IER_RLSI           0x04
-
-
-#define UART_LSR_TEMT   0x40
-#define UART_LSR_THRE   0x20
-#define UART_LSR_DR     0x01
-
-#define UART_MCR_LOOP   0x10
-
 // System Control PortB Status Bits
 #define PORTB_SPKR_HIGH 0x20
 
index 1940dcad61284dbb79d7190ab4f44668515687a6..aceec09708dc12adacf7b4cf17a72ef3804fe7a9 100644 (file)
@@ -55,9 +55,6 @@ class Platform : public SimObject
     /** Pointer to the interrupt controller */
     IntrControl *intrctrl;
 
-    /** Pointer to the UART, set by the uart */
-    Uart *uart;
-
     /** Pointer to the system for info about the memory system. */
     System *system;
 
index 77aafd9fac51c36a2e45ac90f96264c5afb08466..903368491de01874611740a6faa1ff057f7539fb 100644 (file)
@@ -364,7 +364,12 @@ ConsoleListener::listen(int port)
         port++;
     }
 
-    ccprintf(cerr, "Listening for console connection on port %d\n", port);
+
+    int p1, p2;
+    p2 = name().rfind('.') - 1;
+    p1 = name().rfind('.', p2);
+    ccprintf(cerr, "Listening for %s connection on port %d\n",
+            name().substr(p1+1,p2-p1), port);
 
     event = new Event(this, listener.getfd(), POLLIN);
     pollQueue.schedule(event);
index f769b720b23ee1e83d7ac911b1af6bda1c674e82..1c781f76d81703ad572dcfc875ee59d083ae849e 100644 (file)
@@ -47,7 +47,6 @@ Uart::Uart(Params *p)
 
     // set back pointers
     cons->uart = this;
-    platform->uart = this;
 }
 
 DEFINE_SIM_OBJECT_CLASS_NAME("Uart", Uart)
index a0620c7e0d81cba2dbca155e038c27e722412d53..c28200592761c03d5ede441c18164075943875ba 100644 (file)
@@ -35,7 +35,6 @@
 #ifndef __DEV_UART8250_HH__
 #define __DEV_UART8250_HH__
 
-#include "dev/alpha/tsunamireg.h"
 #include "base/range.hh"
 #include "dev/io_device.hh"
 #include "dev/uart.hh"
@@ -54,6 +53,18 @@ const uint8_t IIR_TXID  = 0x02; /* Tx Data */
 const uint8_t IIR_RXID  = 0x04; /* Rx Data */
 const uint8_t IIR_LINE  = 0x06; /* Rx Line Status (highest priority)*/
 
+const uint8_t UART_IER_RDI  = 0x01;
+const uint8_t UART_IER_THRI = 0x02;
+const uint8_t UART_IER_RLSI = 0x04;
+
+
+const uint8_t UART_LSR_TEMT = 0x40;
+const uint8_t UART_LSR_THRE = 0x20;
+const uint8_t UART_LSR_DR   = 0x01;
+
+const uint8_t UART_MCR_LOOP = 0x10;
+
+
 class SimConsole;
 class Platform;
 
index 85c4db6dffe6f8b54c9a2685635e030008a3b515..3ab6d4283e594c7341701ddd7619d8e6a7513373 100644 (file)
@@ -69,16 +69,19 @@ class T1000(Platform):
     fake_ssi = IsaFake(pio_addr=0xff00000000, pio_size=0x10000000)
             #warn_access="Accessing SSI -- Unimplemented!")
 
+    hconsole = SimConsole(listener = ConsoleListener())
     hvuart = Uart8250(pio_addr=0xfff0c2c000)
     htod = DumbTOD()
 
+    pconsole = SimConsole(listener = ConsoleListener())
     puart0 = Uart8250(pio_addr=0x1f10000000)
-    console = SimConsole(listener = ConsoleListener())
 
     # Attach I/O devices to specified bus object.  Can't do this
     # earlier, since the bus object itself is typically defined at the
     # System level.
     def attachIO(self, bus):
+        self.hvuart.sim_console = self.hconsole
+        self.puart0.sim_console = self.pconsole
         self.fake_clk.pio = bus.port
         self.fake_membnks.pio = bus.port
         self.fake_iob.pio = bus.port