mem: fix assertion in respondEvent
authorWendy Elsasser <wendy.elsasser@arm.com>
Wed, 15 Feb 2017 15:28:44 +0000 (09:28 -0600)
committerWendy Elsasser <wendy.elsasser@arm.com>
Wed, 15 Feb 2017 15:28:44 +0000 (09:28 -0600)
commitddc6931573fa0858df4a42223afa95a60dcf8ea3
tree3d2aaf65ed577c41d10a38baa9ea56727aaa0ac1
parent4b8b9c0585205f82cc8bba268dc54cd2e2af8f75
mem: fix assertion in respondEvent

Assertion in the respondEvent erroneously fired.
The assertion verifies that the controller has not moved to a low-power
state prior to receiving read data from the memory.
The original assertion triggered if the state was not:
PWR_IDLE or PWR_ACT.

In the case that failed, a periodic refresh event occurred around the
read.  The REF is stalled until the final read burst is issued
and the subsequent PRE closes the bank.  While the PRE will temporarily
move the state to PWR_IDLE, state will immediately transition to PWR_REF
due to the pending refresh operation.  This state does not match the
assertion, which is subsequently triggered.

Fixed the assertion by explicitly checking that the state is not a low
power state
!PWR_SREF && !PWR_PRE_PDN && !PWR_ACT_PDN

Change-Id: I82921a733bbeac2bcb5a487c2f981448d41ed50b
Reviewed-by: Radhika Jagtap <radhika.jagtap@arm.com>
src/mem/dram_ctrl.cc