diff options
| author | Peter Maydell <peter.maydell@linaro.org> | 2022-04-08 15:15:26 +0100 |
|---|---|---|
| committer | Peter Maydell <peter.maydell@linaro.org> | 2022-04-22 14:44:52 +0100 |
| commit | f76ba95a03921b71c2a2f2069e1ddf890796f1e5 (patch) | |
| tree | 092bf0f19abee13174a91372205224569cbe9079 /hw/intc/arm_gicv3_its.c | |
| parent | 3851af45858a03391c74361bc69bf7a31ad30fbd (diff) | |
| download | focaccia-qemu-f76ba95a03921b71c2a2f2069e1ddf890796f1e5.tar.gz focaccia-qemu-f76ba95a03921b71c2a2f2069e1ddf890796f1e5.zip | |
hw/intc/arm_gicv3_its: Implement VSYNC
The VSYNC command forces the ITS to synchronize all outstanding ITS operations for the specified vPEID, so that subsequent writes to GITS_TRANSLATER honour them. The QEMU implementation is always in sync, so for us this is a nop, like the existing SYNC command. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20220408141550.1271295-18-peter.maydell@linaro.org
Diffstat (limited to 'hw/intc/arm_gicv3_its.c')
| -rw-r--r-- | hw/intc/arm_gicv3_its.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/hw/intc/arm_gicv3_its.c b/hw/intc/arm_gicv3_its.c index 8bc93295fb..a3f5bac551 100644 --- a/hw/intc/arm_gicv3_its.c +++ b/hw/intc/arm_gicv3_its.c @@ -1165,6 +1165,17 @@ static void process_cmdq(GICv3ITSState *s) */ trace_gicv3_its_cmd_sync(); break; + case GITS_CMD_VSYNC: + /* + * VSYNC also is a nop, because our implementation is always + * in sync. + */ + if (!its_feature_virtual(s)) { + result = CMD_CONTINUE; + break; + } + trace_gicv3_its_cmd_vsync(); + break; case GITS_CMD_MAPD: result = process_mapd(s, cmdpkt); break; |