summaryrefslogtreecommitdiff
path: root/drivers/arm/ccn/ccn.c
diff options
context:
space:
mode:
authordp-arm <dimitris.papastamos@arm.com>2016-10-31 17:17:21 +0000
committerdp-arm <dimitris.papastamos@arm.com>2016-11-03 16:02:53 +0000
commitbfef610667b75e731d0d263b069369f7695c6c83 (patch)
treefe7406afd0c50903ea14b94d3b719205fb15bcab /drivers/arm/ccn/ccn.c
parentfc1d1e2df02e61279c16d280f4f48c83f8fa7927 (diff)
Perform a cache flush after ENTER PSCI timestamp capture
Without an explicit cache flush, the next timestamp captured might have a bogus value. This can happen if the following operations happen in order, on a CPU that's being powered down. 1) ENTER PSCI timestamp is captured with caches enabled. 2) The next timestamp (ENTER_HW_LOW_PWR) is captured with caches disabled. 3) On a system that uses a write-back cache configuration, the cache line that holds the PMF timestamps is evicted. After step 1), the ENTER_PSCI timestamp is cached and not in main memory. After step 2), the ENTER_HW_LOW_PWR timestamp is stored in main memory. Before the CPU power down happens, the hardware evicts the cache line that contains the PMF timestamps for this service. As a result, the timestamp captured in step 2) is overwritten with a bogus value. Change-Id: Ic1bd816498d1a6d4dc16540208ed3a5efe43f529 Signed-off-by: dp-arm <dimitris.papastamos@arm.com>
Diffstat (limited to 'drivers/arm/ccn/ccn.c')
0 files changed, 0 insertions, 0 deletions