summaryrefslogtreecommitdiff
path: root/dev
diff options
context:
space:
mode:
authorAli Saidi <saidi@eecs.umich.edu>2006-04-12 17:46:25 -0400
committerAli Saidi <saidi@eecs.umich.edu>2006-04-12 17:46:25 -0400
commit81a735a7166f206848a3ec5f7a8153336347f3ae (patch)
tree4ef2b22e8600b7fa66cc108b3c5b4c1f202e308a /dev
parent08d9e0ea7ad5f6a0addd711bc4ff14cff2789170 (diff)
downloadgem5-81a735a7166f206848a3ec5f7a8153336347f3ae.tar.xz
fs now gets to the point where it would really like a filesystem.
Time to make the ide device work arch/alpha/system.cc: write the machine type and rev in the correct place cpu/simple/cpu.cc: reset the packet structure every time it's reused... wow the simple cpu code for talking to memory is getting horrible. dev/alpha_console.cc: move the setAlphaAccess to startup() to make sure that the console binary is loaded dev/tsunami_cchip.cc: dev/tsunami_pchip.cc: dev/uart8250.cc: fix a couple of bugs injected in the newmem fixes mem/bus.cc: More verbose bus tracing mem/packet.hh: Add a constructor to packet to set the result to unknown and a reset method in the case it's being reused mem/vport.hh: don't need are own read/write methods since the base functional port ones call writeBlob readBlob which do the translation for us --HG-- extra : convert_revision : 8d0e2b782bfbf13dc5c59dab1a79a084d2a7da0a
Diffstat (limited to 'dev')
-rw-r--r--dev/alpha_console.cc2
-rw-r--r--dev/tsunami_cchip.cc8
-rw-r--r--dev/tsunami_pchip.cc6
-rw-r--r--dev/uart8250.cc8
4 files changed, 14 insertions, 10 deletions
diff --git a/dev/alpha_console.cc b/dev/alpha_console.cc
index f68f132c8..fde8af6ae 100644
--- a/dev/alpha_console.cc
+++ b/dev/alpha_console.cc
@@ -72,12 +72,12 @@ AlphaConsole::AlphaConsole(Params *p)
alphaAccess->inputChar = 0;
bzero(alphaAccess->cpuStack, sizeof(alphaAccess->cpuStack));
- system->setAlphaAccess(pioAddr);
}
void
AlphaConsole::startup()
{
+ system->setAlphaAccess(pioAddr);
alphaAccess->numCPUs = system->getNumCPUs();
alphaAccess->kernStart = system->getKernelStart();
alphaAccess->kernEnd = system->getKernelEnd();
diff --git a/dev/tsunami_cchip.cc b/dev/tsunami_cchip.cc
index b15f6fefb..81ad9a71d 100644
--- a/dev/tsunami_cchip.cc
+++ b/dev/tsunami_cchip.cc
@@ -74,7 +74,7 @@ TsunamiCChip::read(Packet &pkt)
DPRINTF(Tsunami, "read va=%#x size=%d\n", pkt.addr, pkt.size);
assert(pkt.result == Unknown);
- assert(pkt.addr > pioAddr && pkt.addr < pioAddr + pioSize);
+ assert(pkt.addr >= pioAddr && pkt.addr < pioAddr + pioSize);
pkt.time = curTick + pioDelay;
Addr regnum = (pkt.addr - pioAddr) >> 6;
@@ -179,8 +179,8 @@ TsunamiCChip::read(Packet &pkt)
default:
panic("invalid access size(?) for tsunami register!\n");
}
- DPRINTFN("Tsunami CChip: read regnum=%#x size=%d data=%lld\n", regnum,
- pkt.size, *data64);
+ DPRINTF(Tsunami, "Tsunami CChip: read regnum=%#x size=%d data=%lld\n",
+ regnum, pkt.size, *data64);
pkt.result = Success;
return pioDelay;
@@ -282,7 +282,7 @@ TsunamiCChip::write(Packet &pkt)
if(!supportedWrite)
panic("TSDEV_CC_MISC write not implemented\n");
-
+ break;
case TSDEV_CC_AAR0:
case TSDEV_CC_AAR1:
case TSDEV_CC_AAR2:
diff --git a/dev/tsunami_pchip.cc b/dev/tsunami_pchip.cc
index 2f06cf493..66144b816 100644
--- a/dev/tsunami_pchip.cc
+++ b/dev/tsunami_pchip.cc
@@ -71,7 +71,7 @@ TsunamiPChip::read(Packet &pkt)
assert(pkt.addr >= pioAddr && pkt.addr < pioAddr + pioSize);
pkt.time = curTick + pioDelay;
- Addr daddr = pkt.addr - pioAddr;
+ Addr daddr = (pkt.addr - pioAddr) >> 6;;
uint64_t *data64;
@@ -159,7 +159,7 @@ TsunamiPChip::write(Packet &pkt)
assert(pkt.result == Unknown);
assert(pkt.addr >= pioAddr && pkt.addr < pioAddr + pioSize);
- Addr daddr = pkt.addr - pioAddr;
+ Addr daddr = (pkt.addr - pioAddr) >> 6;
uint64_t data64 = *(uint64_t *)pkt.data;
assert(pkt.size == sizeof(uint64_t));
@@ -225,7 +225,7 @@ TsunamiPChip::write(Packet &pkt)
case TSDEV_PC_PMONCNT:
panic("PC_PMONCTN not implemented\n");
default:
- panic("Default in PChip Read reached reading 0x%x\n", daddr);
+ panic("Default in PChip write reached reading 0x%x\n", daddr);
} // uint64_t
diff --git a/dev/uart8250.cc b/dev/uart8250.cc
index 7c8899180..7e2f9d51f 100644
--- a/dev/uart8250.cc
+++ b/dev/uart8250.cc
@@ -111,7 +111,7 @@ Tick
Uart8250::read(Packet &pkt)
{
assert(pkt.result == Unknown);
- assert(pkt.addr > pioAddr && pkt.addr < pioAddr + pioSize);
+ assert(pkt.addr >= pioAddr && pkt.addr < pioAddr + pioSize);
assert(pkt.size == 1);
pkt.time = curTick + pioDelay;
@@ -189,7 +189,10 @@ Uart8250::read(Packet &pkt)
panic("Tried to access a UART port that doesn't exist\n");
break;
}
-
+/* uint32_t d32 = *data;
+ DPRINTF(Uart, "Register read to register %#x returned %#x\n", daddr, d32);
+*/
+ pkt.result = Success;
return pioDelay;
}
@@ -269,6 +272,7 @@ Uart8250::write(Packet &pkt)
panic("Tried to access a UART port that doesn't exist\n");
break;
}
+ pkt.result = Success;
return pioDelay;
}