hw/intc/arm_gicv3_its: Implement MOVI
commit961b4912c1330aaf11a354c9d8f5c63e1ba0ae3b
authorPeter Maydell <peter.maydell@linaro.org>
Sat, 22 Jan 2022 18:24:44 +0000 (22 18:24 +0000)
committerPeter Maydell <peter.maydell@linaro.org>
Fri, 28 Jan 2022 14:29:47 +0000 (28 14:29 +0000)
tree449f3cfa2c88793690ec54731f4bfc28837f480d
parentf6d1d9b4074d64de92f3ab4dfa50dc19548fdfd7
hw/intc/arm_gicv3_its: Implement MOVI

Implement the ITS MOVI command. This command specifies a (physical) LPI
by DeviceID and EventID and provides a new ICID for it. The ITS must
find the interrupt translation table entry for the LPI, which will
tell it the old ICID. It then moves the pending state of the LPI from
the old redistributor to the new one and updates the ICID field in
the translation table entry.

This is another GICv3 ITS command that we forgot to implement.  Linux
does use this one, but only if the guest powers off one of its CPUs.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220122182444.724087-15-peter.maydell@linaro.org
hw/intc/arm_gicv3_its.c
hw/intc/arm_gicv3_redist.c
hw/intc/gicv3_internal.h