Add build configuration for timer save/restore
authorJeenu Viswambharan <jeenu.viswambharan@arm.com>
Mon, 12 May 2014 14:28:47 +0000 (15:28 +0100)
committerJeenu Viswambharan <jeenu.viswambharan@arm.com>
Fri, 16 May 2014 16:11:31 +0000 (17:11 +0100)
commit2da8d8bfc0877b9c723514133554dfee4c0638f1
tree5178aafe28b80e33b6581663bee66b9d2194688a
parentc3c1e9b0abe1a879dad4400421ad00849231eb3c
Add build configuration for timer save/restore

At present, non-secure timer register contents are saved and restored as
part of world switch by BL3-1. This effectively means that the
non-secure timer stops, and non-secure timer interrupts are prevented
from asserting until BL3-1 switches back, introducing latency for
non-secure services. Often, secure world might depend on alternate
sources for secure interrupts (secure timer or platform timer) instead
of non-secure timers, in which case this save and restore is
unnecessary.

This patch introduces a boolean build-time configuration NS_TIMER_SWITCH
to choose whether or not to save and restore non-secure timer registers
upon world switch. The default choice is made not to save and restore
them.

Fixes ARM-software/tf-issues#148

Change-Id: I1b9d623606acb9797c3e0b02fb5ec7c0a414f37e
Makefile
bl31/aarch64/context.S
docs/user-guide.md
include/bl31/context.h