diff options
author | Ali Saidi <saidi@eecs.umich.edu> | 2006-04-12 17:46:25 -0400 |
---|---|---|
committer | Ali Saidi <saidi@eecs.umich.edu> | 2006-04-12 17:46:25 -0400 |
commit | 81a735a7166f206848a3ec5f7a8153336347f3ae (patch) | |
tree | 4ef2b22e8600b7fa66cc108b3c5b4c1f202e308a /dev | |
parent | 08d9e0ea7ad5f6a0addd711bc4ff14cff2789170 (diff) | |
download | gem5-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.cc | 2 | ||||
-rw-r--r-- | dev/tsunami_cchip.cc | 8 | ||||
-rw-r--r-- | dev/tsunami_pchip.cc | 6 | ||||
-rw-r--r-- | dev/uart8250.cc | 8 |
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; } |