MEM: Move all read/write blob functions from Port to PortProxy
This patch moves the readBlob/writeBlob/memsetBlob from the Port class to the PortProxy class, thus making a clear separation of the basic port functionality (recv/send functional/atomic/timing), and the higher-level functional accessors available on the port proxies. There are only a few places in the code base where the blob functions were used on ports, and they are all for peeking into the memory system without making a normal memory access (in the memtest, and the malta and tsunami pchip). The memtest also exemplifies how easy it is to create a non-translating proxy if desired. The malta and tsunami pchip used a slave port to perform a functional read, and this is now changed to rely on the physProxy of the system (to which they already have a pointer).
This commit is contained in:
@@ -284,8 +284,8 @@ TsunamiPChip::translatePciToDma(Addr busAddr)
|
||||
baMask = (wsm[i] & (ULL(0xfff) << 20)) | (ULL(0x7f) << 13);
|
||||
pteAddr = (tba[i] & tbaMask) | ((busAddr & baMask) >> 10);
|
||||
|
||||
pioPort.readBlob(pteAddr, (uint8_t*)&pteEntry,
|
||||
sizeof(uint64_t));
|
||||
sys->physProxy.readBlob(pteAddr, (uint8_t*)&pteEntry,
|
||||
sizeof(uint64_t));
|
||||
|
||||
dmaAddr = ((pteEntry & ~ULL(0x1)) << 12) | (busAddr & ULL(0x1fff));
|
||||
|
||||
|
||||
@@ -283,8 +283,8 @@ MaltaPChip::translatePciToDma(Addr busAddr)
|
||||
baMask = (wsm[i] & (ULL(0xfff) << 20)) | (ULL(0x7f) << 13);
|
||||
pteAddr = (tba[i] & tbaMask) | ((busAddr & baMask) >> 10);
|
||||
|
||||
pioPort.readBlob(pteAddr, (uint8_t*)&pteEntry,
|
||||
sizeof(uint64_t));
|
||||
sys->physProxy.readBlob(pteAddr, (uint8_t*)&pteEntry,
|
||||
sizeof(uint64_t));
|
||||
|
||||
dmaAddr = ((pteEntry & ~ULL(0x1)) << 12) | (busAddr & ULL(0x1fff));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user