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.

Reply via email to