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:
@@ -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'
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user