I'm looking at the wikipedia page for the ARM Cortex A53 processor. The feature list for this processor includes the term hardware virtualization
. I wanted to ask if anyone knows what feature list does this include ? Its listed separately from Trustzone
, so I'm assuming it's indicating features not related to TEE.
ARM knows and describes virtualization features in their books, and the virtualization capability is same for all implementations of ARM version (AVMv8-A, list of implementations). There is book for A53 Cortex MPcore with some details: http://infocenter.arm.com/help/topic/com.arm.doc.ddi0500g/index.html ARM Cortex-A53 MPCore Processor Technical Reference Manual
4.2.12. AArch64 virtualization registers http://infocenter.arm.com/help/topic/com.arm.doc.ddi0500g/CIHFBCDH.html
4.3.28. Virtualization Processor ID Register http://infocenter.arm.com/help/topic/com.arm.doc.ddi0500g/BABEJIHA.html
4.3.29. Virtualization Multiprocessor ID Register http://infocenter.arm.com/help/topic/com.arm.doc.ddi0500g/BABCBAIE.html
4.3.50. Virtualization Translation Control Register, EL2 http://infocenter.arm.com/help/topic/com.arm.doc.ddi0500g/CIHJBCCC.html
4.4.27. AArch32 Virtualization registers http://infocenter.arm.com/help/topic/com.arm.doc.ddi0500g/CIHIFBII.html
4.5.25. Virtualization Processor ID Register http://infocenter.arm.com/help/topic/com.arm.doc.ddi0500g/BABJDFCE.html
4.5.26. Virtualization Multiprocessor ID Register http://infocenter.arm.com/help/topic/com.arm.doc.ddi0500g/BABGDAIC.html
4.5.44. Virtualization Translation Control Register http://infocenter.arm.com/help/topic/com.arm.doc.ddi0500g/CIHBHGJE.html
There are also modes in GIC for interrupt virtualization (http://infocenter.arm.com/help/topic/com.arm.doc.ddi0500g/CIACFDIC.html Chapter 9. Generic Interrupt Controller CPU Interface - of same book) and different address translation schemes for EL2-EL3: ARM Cortex-A Series Programmer’s Guide for ARMv8-A, Memory Management Unit, 12.6. Translations at EL2 and EL3 http://infocenter.arm.com/help/topic/com.arm.doc.den0024a/BABHDAJD.html
There is some data in implementation of ARMv8.1 virtualization support in Linux (https://lwn.net/Articles/650524/), but I'm not sure that A53 core implements v8.1 (it can depend on hardware revision of A53 core). 8.1 version of ARM was declared in december 2014, it includes "Virtualization Host Extensions (VHE)". There are some posts and papers about VHE: