History log of /fuchsia/zircon/kernel/arch/arm64/hypervisor/gic/el2.S
Revision Date Author Comments
# c7c6625a 07-Aug-2018 Alex Legg <alexlegg@google.com>

[arm64][hypervisor] Reorder GIC registers

To retain existing ordering scheme.

TEST=Launch zircon_guest

Change-Id: I3b0a9bbb93755847b48adf52469755dd91d43d9f


# 254d4bba 20-Jul-2018 Alex Legg <alexlegg@google.com>

[arm64][hypervisor] Save and restore GIC APR register

The APR register controls the active priority of interrupt controller,
and should not be inconsistent with the state of the GIC. Prior to this
patch it was possible for the value of the APR from a previously
terminated guest (or theoretically another guest running in parallel on
the same CPU) to leak over to another guest. If the previous guest
terminated while APR was set to 1, then priority 0 interrupts would be
considered spurious and the guest would get stuck in a loop.

TEST=Ran guest_integration_tests on vim2. Ran zircon_guest on qemu to
test GICv3.

Change-Id: Iabf439eadb1a3c4a703b51590c29a2a9d6e35755


# 594a1a69 15-May-2018 Mike Krinkin <krinkin@google.com>

[arm64][GIC][hypervisor] Provide access to GICH MISR register

This register indicates active maintenance interrupt conditions. Access to
this register is not necessary to use underflow maintanece interrupt, but
it's interesting to see how often does VM exit happen because of underflow
interrupt and that is where access to this register comes in handy.

PD-105

Change-Id: I8cf63437546276585cda87240b9a4563711fbe15


# 028ce96a 15-May-2018 Abdulla Kamar <abdulla@google.com>

[arm64][hypervisor] Remove ELRSR and VTR write

We should not be able to write these GIC registers, and we never call
the write functions, so remove the related code.

Also rename ELRS to ELRSR, as it is referred to in the manual.

Change-Id: I69819106993d80a4a97ea1cb04c95b2bbff04317


# c2cbec28 29-Apr-2018 Abdulla Kamar <abdulla@google.com>

[arm64][hypervisor][gicv3] Remove redundant movs

There was a lot movs to x0 that were redundant, as x0 already contained
the correct data.

Additionally, this change greatly simplify jump table logic and shrinks
the size of the jump tables used by the EL2 GICv3 code.

Change-Id: I93fb6103ec1adc526bfa95ae0a5ff15bc3db50e2


# f3e4ddfd 29-Apr-2018 Abdulla Kamar <abdulla@google.com>

[arm64][hypervisor][gicv3] Fix EL2 write_sysreg

The wrong register was being used when writing GICv3 system registers.

This also optimises the GIC register access, reducing the number of read
and writes needed, and therefore the number of transitions back and
forth from EL1 and EL2 when handling GICv3 system registers.

ZX-2075 #comment

Change-Id: If9e3b770071d51488adce6542b93267f35c91380


# 98de78d5 08-Mar-2018 Brijen Raval <braval@google.com>

[gicV3] GICv3 virtualization support, to allow zircon-guest to run on QEMU

PD-50 #Done

Change-Id: I60a6937ad9a0515d1d737fbe562be517eb9a66ef