39,40c39
< : MemObject(p),
< funcMemPort(csprintf("%s-funcmem_port", name()), this)
---
> : MemObject(p)
44a44,45
> physmem = p->physmem;
>
51a53
> physMemPort = NULL;
76,77c78,94
< } else if (if_name == "funcmem_port") {
< return &funcMemPort;
---
> } else if (if_name == "physMemPort") {
> //
> // RubyPort should only have one port to physical memory
> //
> assert (physMemPort == NULL);
>
> physMemPort = new M5Port(csprintf("%s-physMemPort", name()),
> this);
>
> return physMemPort;
> } else if (if_name == "functional") {
> //
> // Calls for the functional port only want to access functional memory.
> // Therefore, directly pass these calls ports to physmem.
> //
> assert(physmem != NULL);
> return physmem->getPort(if_name, idx);
251c268
< ruby_port->funcMemPort.sendFunctional(pkt);
---
> ruby_port->physMemPort->sendAtomic(pkt);
255c272
< // recvAtomic() should already have turned packet into
---
> // sendAtomic() should already have turned packet into
285c302
< ruby_port->funcMemPort.getPeerAddressRanges(physMemAddrList, snoop);
---
> ruby_port->physMemPort->getPeerAddressRanges(physMemAddrList, snoop);
295d311
< assert(isPioAddress(addr));
298,320d313
<
< bool
< RubyPort::M5Port::isPioAddress(Addr addr)
< {
< AddrRangeList pioAddrList;
< bool snoop = false;
< if (ruby_port->pio_port == NULL) {
< return false;
< }
<
< ruby_port->pio_port->getPeerAddressRanges(pioAddrList, snoop);
< for(AddrRangeIter iter = pioAddrList.begin();
< iter != pioAddrList.end();
< iter++) {
< if (addr >= iter->start && addr <= iter->end) {
< DPRINTF(MemoryAccess, "Pio request found in %#llx - %#llx range\n",
< iter->start, iter->end);
< return true;
< }
< }
< return false;
< }
<