On 12/03/2013 12:48 PM, Sergey Fedorov wrote:
This patch set implements a basic support of CPU core TrustZone feature. The
following major functionalities are implemented:
* CPU monitor mode
* Separate code translation for each secure state
* CPACR & NSACR co-processor access control
* Separate TLB for each secure state
* Co-processor register banking
* SMC instruction
* FIQ/IRQ routing to monitor mode
There is no support for banked co-processor register migration, save/load its
VM state yet. That is an open question how to implement this functionality. Any
suggestions is greatly appreciated.
This patch set is a request for comments for the proof of concept.
Sergey Fedorov (18):
target-arm: move SCR & VBAR into TrustZone register list
target-arm: adjust TTBCR for TrustZone feature
target-arm: add arm_is_secure() helper
target-arm: reject switching to monitor mode from non-secure state
target-arm: adjust arm_current_pl() for TrustZone
target-arm: adjust SCR CP15 register access rights
target-arm: add non-secure Translation Block flag
target-arm: implement CPACR register logic
target-arm: add NSACR support
target-arm: add SDER definition
target-arm: split TLB for secure state
target-arm: add banked coprocessor register type
target-arm: convert appropriate coprocessor registers to banked type
target-arm: use c13_context field for CONTEXTIDR
target-arm: switch banked CP registers
target-arm: add MVBAR support
target-arm: implement SMC instruction
target-arm: implement IRQ/FIQ routing to Monitor mode
Svetlana Fedoseeva (3):
target-arm: add TrustZone CPU feature
target-arm: preserve RAO/WI bits of ARMv7 SCTLR
target-arm: add CPU Monitor mode
target-arm/cpu.c | 6 +-
target-arm/cpu.h | 126 ++++++++++++----
target-arm/helper.c | 308 +++++++++++++++++++++++++++++---------
target-arm/machine.c | 12 +-
target-arm/translate.c | 388 ++++++++++++++++++++++++++++++------------------
target-arm/translate.h | 2 +
6 files changed, 585 insertions(+), 257 deletions(-)
We'd like this patch series finally to be merged into mainstream. What
should be done to achieve this goal?
Best regards,
Sergey Fedorov