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.
This commit is contained in:
Andreas Hansson
2012-09-10 11:57:36 -04:00
parent 0b45ae5df3
commit cf5935445f
3 changed files with 4 additions and 6 deletions

View File

@@ -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'

View File

@@ -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")

View File

@@ -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