On 27.01.20 12:40, Ralf Ramsauer wrote:
On 27/01/2020 07:37, Jan Kiszka wrote:
From: Jan Kiszka <[email protected]>
Lots of things changed since the file was last touched. Add the
hypercall ABIs for non-Intel-x86, update the "CPU Get Info" hypercall
with new statistic types, and extend the Comm Region description with
the console and non-x86 extensions added meanwhile.
Signed-off-by: Jan Kiszka <[email protected]>
---
Documentation/hypervisor-interfaces.txt | 152 ++++++++++++++++++++++++++------
1 file changed, 125 insertions(+), 27 deletions(-)
diff --git a/Documentation/hypervisor-interfaces.txt
b/Documentation/hypervisor-interfaces.txt
index f29bac43..74982e9d 100644
--- a/Documentation/hypervisor-interfaces.txt
+++ b/Documentation/hypervisor-interfaces.txt
@@ -13,7 +13,8 @@ Detection
---------
This interface is useful for cell code that should work not only inside a
-Jailhouse cell. The ABI is architecture specific.
+Jailhouse cell. The ABI is architecture specific. So far, it is only available
+for x86.
x86 ABI
@@ -63,16 +64,36 @@ a similar channel. Details of the hypercall ABI are
architecture specific and
will be defined in the following.
-Intel x86 (IA-32/32e) ABI
-- - - - - - - - - - - - -
+x86 ABI
+- - - -
-Instruction: vmcall
+Instruction: vmcall (IA-32/32e) / vmmcall (AMD64)
Hypercall code: EAX
-1. argument: RDI (IA-32e) / EDI (IA-32)
-2. argument: RSI (IA-32e) / ESI (IA-32)
+1. argument: RDI (64-bit mode) / EDI (32-bit mode)
+2. argument: RSI (64-bit mode) / ESI (32-bit mode)
Return code: EAX
+ARMv7 ABI
+- - - - -
+
+Instruction: hvc #0x4a48
+Hypercall code: r0
+1. argument: r1
+2. argument: r2
+Return code: r0
+
+
+ARMv8 ABI
+- - - - -
+
+Instruction: hvc #0x4a48
+Hypercall code: x0
+1. argument: x1
+2. argument: x2
+Return code: x0
+
+
Hypercall "Disable" (code 0)
- - - - - - - - - - - - - - -
@@ -230,14 +251,31 @@ Hypercall "CPU Get Info" (code 7)
Obtain information about a specific CPU.
Arguments: 1. Logical ID of CPU to be queried
- 2. Information type:
+ 2. Generic information type:
0 - CPU state
1000 - Total number of VM exits
- 1001 - VM exits due to MMIO access
- 1002 - VM exits due to PIO access
- 1003 - VM exits due to IPI submissions
- 1004 - VM exits due to management events
- 1005 - VM exits due to hypercalls
+ 1001 - VM exits due to MMIO accesses
+ 1002 - VM exits due to management events
+ 1003 - VM exits due to hypercalls
+
+ x86-specific type:
+
+ 1004 - VM exits due to PIO accesses
+ 1005 - VM exits due to xAPIC accesses
+ 1006 - VM exits due to CR accesses
+ 1007 - VM exits due to CPUID instructions
+ 1008 - VM exits due to XSETBV instructions
+ 1009 - VM exits due to exceptions
+ 1010 - VM exits due to unspecified MSR accesses
+ 1011 - VM exits due to x2APIC ICR MSR accesses
+
+ ARMv7/ARMv8-specific type:
+
+ 1004 - VM exits due to IRQ injections
1004 is maintainance. Off by one.
Indeed... v2 will follow.
Besides that:
Reviewed-by: Ralf Ramsauer <[email protected]>
Ralf
Thanks,
Jan
--
You received this message because you are subscribed to the Google Groups
"Jailhouse" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/jailhouse-dev/249a0344-7209-8d42-42a2-0e996b5fd8f1%40web.de.