History log of /fuchsia/zircon/system/utest/hypervisor/arm64.S
Revision Date Author Comments
# b2471b60 25-Apr-2018 Tomasz Wiszkowski <ender@google.com>

[arm][hypervisor][test] Test WFI and FP on ARM32.

This commit introduces:
- mechanism to switch execution states on ARM,
- test for WFI and FP access from AARCH32 EL0

Change-Id: I7c38f0dd2c8d30e009cfa3173a9c70c8e58aa676


# be1db7b8 24-Apr-2018 Tomasz Wiszkowski <ender@google.com>

[arm64][hypervisor][tests] Make test sources more explicit.

This cl does not introduce any functional change to hypervisor tests.
Instead, it makes it more explicit about what is going on to make it
a little easier and clearer for anyone writing new tests.

Change-Id: I977dd65d84a54b0ef0d6d599a0daae09c9de96e8


# 934e4435 06-Mar-2018 Abdulla Kamar <abdulla@google.com>

[arm64][hypervisor] Fix FP/SIMD handling

With this fixed, Debian guests work perfectly and there are no more
translation faults.

PD-75 #done

Change-Id: I0bfe6b09936455fa984d7d4e405e16fb02899601


# bd83d29a 22-Jan-2018 Abdulla Kamar <abdulla@google.com>

[arm64][hypervisor] Change how we handle timers

On every VM exit, we check whether the guest timer was set. If so, we
setup a timer object to fire and inject an interrupt when the guest
expected one.

Previously, we would wait for a WFI before we setup a timer object,
which would cause us to incorrect inject a timer.

We also now ensure that interrupts are unmasked before we inject them.

Change-Id: I1a1a2319a6d358f5a86d45ee251bafb6156a22bd


# 2635e093 20-Nov-2017 Alex Legg <alexlegg@google.com>

[arm][hypervisor] Add wfi support

Adds support for wfi (wait for interrupt) instruction to vmexit.

Change-Id: I9131e4d3527f57d00dcc9a9e69782755ea3d5c89


# d2f75f67 14-Nov-2017 Abdulla Kamar <abdulla@google.com>

[arm][hypervisor] Enter VCPU with DAIF masked.

Both Linux and Zircon expect the initial CPU state to have DAIF masked.

ZX-1347 #comment

Change-Id: Ib2b9f38f32a10b2d5b3ba295978a4a7488d3c890


# 38a1fb80 31-Oct-2017 Abdulla Kamar <abdulla@google.com>

[arm64][hypervisor] Implement zx_vcpu_interrupt.

This implements interrupt injection for arm64. There's still more work
to be done when we start running Zircon or Linux on arm64.

I'll also port the new interrupt test to x86 in a follow up change.

ZX-1289 #done

Change-Id: I1a3ddaa428e7b249335533a0c65a601c900ce77c


# 06775fd9 23-Oct-2017 Abdulla Kamar <abdulla@google.com>

[arm64][hypervisor] Enable tests for guest traps.

Turns out all the infrastructure for guest traps is in place for ARM64,
just the tests had to be written.

ZX-1275 #done

Change-Id: I1a3cbfc7aa0b2efcf012d347373437ba78c8feba


# df18c7bf 23-Oct-2017 Abdulla Kamar <abdulla@google.com>

[arm64][hypervisor] Add vcpu_{read,write}_state.

This allows us to read and write the general purpose registers of a
VCPU when execution is paused.

ZX-1271 #done

Change-Id: I057d951e35bb9134e69cd32914cab498853b0794


# 3992895e 13-Oct-2017 Abdulla Kamar <abdulla@google.com>

[arm64][hypervisor] Start basic VCPU execution.

While this works on QEMU, it fails with an EC of 0b000000 on the
HiKey960. It looks like the IPA isn't being calculated correctly, so
I've got to continue investigating that in a follow up CL.

ZX-1241 #comment In Progress

Change-Id: I3a97978b8fa3fc65166936ed2f02344edc30c427


# 0bdb746f 08-Oct-2017 Abdulla Kamar <abdulla@google.com>

[utest][hypervisor] Restructure tests for ARM64.

Restructure the guest test so that it can be used on ARM64. The assembly
for the test will come in a follow up CL.

Change-Id: I3286d050ec28cf7b2990741eb2e5005819e4c364