diff options
author | Andreas Hansson <andreas.hansson@arm.com> | 2012-08-22 11:39:59 -0400 |
---|---|---|
committer | Andreas Hansson <andreas.hansson@arm.com> | 2012-08-22 11:39:59 -0400 |
commit | c60db56741631b03e3431d03c26c9114c27ba6c6 (patch) | |
tree | 646cb63e6a355ca2e61569c7e8ce150b7776f12e /src/arch/arm | |
parent | a6074016e211276e47238d0d708288527ace0aef (diff) | |
download | gem5-c60db56741631b03e3431d03c26c9114c27ba6c6.tar.xz |
Packet: Remove NACKs from packet and its use in endpoints
This patch removes the NACK frrom the packet as there is no longer any
module in the system that issues them (the bridge was the only one and
the previous patch removes that).
The handling of NACKs was mostly avoided throughout the code base, by
using e.g. panic or assert false, but in a few locations the NACKs
were actually dealt with (although NACKs never occured in any of the
regressions). Most notably, the DMA port will now never receive a NACK
and the backoff time is thus never changed. As a consequence, the
entire backoff mechanism (similar to a PCI bus) is now removed and the
DMA port entirely relies on the bus performing the arbitration and
issuing a retry when appropriate. This is more in line with e.g. PCIe.
Surprisingly, this patch has no impact on any of the regressions. As
mentioned in the patch that removes the NACK from the bridge, a
follow-up patch should change the request and response buffer size for
at least one regression to also verify that the system behaves as
expected when the bridge fills up.
Diffstat (limited to 'src/arch/arm')
-rw-r--r-- | src/arch/arm/ArmTLB.py | 3 | ||||
-rw-r--r-- | src/arch/arm/table_walker.cc | 3 | ||||
-rw-r--r-- | src/arch/arm/table_walker.hh | 5 |
3 files changed, 3 insertions, 8 deletions
diff --git a/src/arch/arm/ArmTLB.py b/src/arch/arm/ArmTLB.py index 8599fa75f..9572d2091 100644 --- a/src/arch/arm/ArmTLB.py +++ b/src/arch/arm/ArmTLB.py @@ -47,9 +47,6 @@ class ArmTableWalker(MemObject): cxx_class = 'ArmISA::TableWalker' port = MasterPort("Port for TableWalker to do walk the translation with") sys = Param.System(Parent.any, "system object parameter") - min_backoff = Param.Tick(0, "Minimum backoff delay after failed send") - max_backoff = Param.Tick(100000, "Minimum backoff delay after failed send") - class ArmTLB(SimObject): type = 'ArmTLB' diff --git a/src/arch/arm/table_walker.cc b/src/arch/arm/table_walker.cc index 7dbe92d9b..ea71e6f1c 100644 --- a/src/arch/arm/table_walker.cc +++ b/src/arch/arm/table_walker.cc @@ -51,8 +51,7 @@ using namespace ArmISA; TableWalker::TableWalker(const Params *p) - : MemObject(p), port(this, params()->sys, params()->min_backoff, - params()->max_backoff), drainEvent(NULL), + : MemObject(p), port(this, params()->sys), drainEvent(NULL), tlb(NULL), currState(NULL), pending(false), masterId(p->sys->getMasterId(name())), doL1DescEvent(this), doL2DescEvent(this), doProcessEvent(this) diff --git a/src/arch/arm/table_walker.hh b/src/arch/arm/table_walker.hh index 1b95182c8..b6fee66ff 100644 --- a/src/arch/arm/table_walker.hh +++ b/src/arch/arm/table_walker.hh @@ -287,9 +287,8 @@ class TableWalker : public MemObject * A snooping DMA port merely calls the construtor of the DMA * port. */ - SnoopingDmaPort(MemObject *dev, System *s, Tick min_backoff, - Tick max_backoff) : - DmaPort(dev, s, min_backoff, max_backoff) + SnoopingDmaPort(MemObject *dev, System *s) : + DmaPort(dev, s) { } }; |