diff options
author | Andreas Hansson <andreas.hansson@arm.com> | 2012-09-10 11:57:36 -0400 |
---|---|---|
committer | Andreas Hansson <andreas.hansson@arm.com> | 2012-09-10 11:57:36 -0400 |
commit | cf5935445f23d0ba2f41debc50952fe45d7c9f4a (patch) | |
tree | 1b3e6480df93eea72f290dd75061d6900a923242 | |
parent | 0b45ae5df33e7aea01e04fd7f44afdf253b854c7 (diff) | |
download | gem5-cf5935445f23d0ba2f41debc50952fe45d7c9f4a.tar.xz |
Device: Bump PIO and PCI latencies to more reasonable values
This patch addresses a previously highlighted issue with the default
latencies used for PIO and PCI devices. The values are merely educated
guesses and might not represent the particular system you want to
model. However, the values in this patch are definitely far more
realistic than the previous ones.
In i8254xGBe, the writeConfig method is updated to use configDelay
instead of pioDelay.
A follow-up patch will update the regression stats.
-rw-r--r-- | src/dev/Device.py | 2 | ||||
-rw-r--r-- | src/dev/Pci.py | 6 | ||||
-rw-r--r-- | src/dev/i8254xGBe.cc | 2 |
3 files changed, 4 insertions, 6 deletions
diff --git a/src/dev/Device.py b/src/dev/Device.py index b1a4f69bc..3a06444cb 100644 --- a/src/dev/Device.py +++ b/src/dev/Device.py @@ -40,7 +40,7 @@ class BasicPioDevice(PioDevice): type = 'BasicPioDevice' abstract = True pio_addr = Param.Addr("Device Address") - pio_latency = Param.Latency('1ns', "Programmed IO latency") + pio_latency = Param.Latency('100ns', "Programmed IO latency") class DmaDevice(PioDevice): type = 'DmaDevice' diff --git a/src/dev/Pci.py b/src/dev/Pci.py index db2791ed5..4d2baa3e8 100644 --- a/src/dev/Pci.py +++ b/src/dev/Pci.py @@ -34,9 +34,7 @@ from Device import BasicPioDevice, DmaDevice, PioDevice class PciConfigAll(PioDevice): type = 'PciConfigAll' platform = Param.Platform(Parent.any, "Platform this device is part of.") - # @todo: This latency is unrealistically low and only kept at 1 tick - # to not change any regressions - pio_latency = Param.Latency('1t', "Programmed IO latency") + pio_latency = Param.Latency('30ns', "Programmed IO latency") bus = Param.UInt8(0x00, "PCI bus to act as config space for") size = Param.MemorySize32('16MB', "Size of config space") @@ -49,7 +47,7 @@ class PciDevice(DmaDevice): pci_bus = Param.Int("PCI bus") pci_dev = Param.Int("PCI device number") pci_func = Param.Int("PCI function code") - pio_latency = Param.Latency('1ns', "Programmed IO latency") + pio_latency = Param.Latency('30ns', "Programmed IO latency") config_latency = Param.Latency('20ns', "Config read or write latency") VendorID = Param.UInt16("Vendor ID") diff --git a/src/dev/i8254xGBe.cc b/src/dev/i8254xGBe.cc index d2b7c0f75..159cc4726 100644 --- a/src/dev/i8254xGBe.cc +++ b/src/dev/i8254xGBe.cc @@ -160,7 +160,7 @@ IGbE::writeConfig(PacketPtr pkt) // Some work may need to be done here based for the pci COMMAND bits. // - return pioDelay; + return configDelay; } // Handy macro for range-testing register access addresses |