summaryrefslogtreecommitdiff
path: root/dev/ide_disk.hh
diff options
context:
space:
mode:
authorAndrew Schultz <alschult@umich.edu>2004-06-03 17:48:05 -0400
committerAndrew Schultz <alschult@umich.edu>2004-06-03 17:48:05 -0400
commit0408051f201cb5b19c4f8d5ec1d6e96de4a9aa3f (patch)
treee8f6a6735054a52c21e5f1b0bd215ceabffe8d24 /dev/ide_disk.hh
parent44a2a2336e7f0d2048d3e79cbabf2e081abc0916 (diff)
downloadgem5-0408051f201cb5b19c4f8d5ec1d6e96de4a9aa3f.tar.xz
Fixes in translation in PCI to DMA address to fix boot problems with
Linux 2.6 with DMA support dev/ide_disk.cc: Add debug infomation for DMA transfers and fix handling of PRD pointer values dev/ide_disk.hh: Reduce buffer (MAX_DMA) size to 64K dev/tsunami_pchip.cc: dev/tsunami_pchip.hh: Add handling of PCTL register and also fix the translate from PCI to DMA addresses which was incorrect --HG-- extra : convert_revision : 562f55fa1c7099ad0f5a23f59dec2c8ec7601d43
Diffstat (limited to 'dev/ide_disk.hh')
-rw-r--r--dev/ide_disk.hh6
1 files changed, 3 insertions, 3 deletions
diff --git a/dev/ide_disk.hh b/dev/ide_disk.hh
index eb8c8a047..8f1d582c9 100644
--- a/dev/ide_disk.hh
+++ b/dev/ide_disk.hh
@@ -40,8 +40,8 @@
#define DMA_BACKOFF_PERIOD 200
-#define MAX_DMA_SIZE (131072) // 256 * SectorSize (512)
-#define MAX_MULTSECT (128)
+#define MAX_DMA_SIZE (65536) // 64K
+#define MAX_MULTSECT (128)
#define PRD_BASE_MASK 0xfffffffe
#define PRD_COUNT_MASK 0xfffe
@@ -62,7 +62,7 @@ class PrdTableEntry {
return (entry.baseAddr & PRD_BASE_MASK);
}
- uint16_t getByteCount()
+ uint32_t getByteCount()
{
return ((entry.byteCount == 0) ? MAX_DMA_SIZE :
(entry.byteCount & PRD_COUNT_MASK));