SimpleCPU: Fix a case where a DTLB fault redirects fetch and an I-side walk occurs.
authorAli Saidi <Ali.Saidi@ARM.com>
Sat, 12 Feb 2011 00:29:35 +0000 (18:29 -0600)
committerAli Saidi <Ali.Saidi@ARM.com>
Sat, 12 Feb 2011 00:29:35 +0000 (18:29 -0600)
commit1411cb0b0f01577c74d0f181404138cb43ce8ac8
tree45e8e042f6063dbcc0267d01d506438f47f1fda3
parente2507407b17188dca802082434cfe0230d9bfa61
SimpleCPU: Fix a case where a DTLB fault redirects fetch and an I-side walk occurs.

This change fixes an issue where a DTLB fault occurs and redirects fetch to
handle the fault and the ITLB requires a walk which delays translation. In this
case the status of the cpu isn't updated appropriately, and an additional
instruction fetch occurs. Eventually this hits an assert as multiple instruction
fetches are occuring in the system and when the second one returns the
processor is in the wrong state.

Some asserts below are removed because it was always true (typo) and the state
after the initiateAcc() the processor could be in any valid state when a
d-side fault occurs.
src/cpu/simple/timing.cc
src/cpu/simple/timing.hh