X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=dev%2Fide_disk.cc;h=99724f07788c1c5f7b5cde237ccf465274da6319;hb=239183cfe675684aeca1a2b24362ca5e0a82809d;hp=0f5c02660b1212f7bdfc2b1b04d4e5471b788dbc;hpb=4deb81989496b360500985377e8f8c1a2f017b27;p=gem5.git diff --git a/dev/ide_disk.cc b/dev/ide_disk.cc index 0f5c02660..99724f077 100644 --- a/dev/ide_disk.cc +++ b/dev/ide_disk.cc @@ -167,6 +167,12 @@ IdeDisk::reset(int id) // Utility functions //// +bool +IdeDisk::isDEVSelect() +{ + return ctrl->isDiskSelected(this); +} + Addr IdeDisk::pciToDma(Addr pciAddr) { @@ -335,8 +341,8 @@ IdeDisk::dmaPrdReadDone() curPrd.getByteCount(), (cmdBytesLeft/SectorSize), curPrd.getEOT(), curSector); - // make sure the new curPrdAddr is properly translated from PCI to system - curPrdAddr = pciToDma(curPrdAddr + sizeof(PrdEntry_t)); + // the prd pointer has already been translated, so just do an increment + curPrdAddr = curPrdAddr + sizeof(PrdEntry_t); if (dmaRead) doDmaRead();