aboutsummaryrefslogtreecommitdiff
path: root/hw/intc/puv3_intc.c
diff options
context:
space:
mode:
authorCédric Le Goater <clg@kaod.org>2019-06-30 22:45:54 +0200
committerDavid Gibson <david@gibson.dropbear.id.au>2019-07-02 09:43:58 +1000
commit0df68c7ed6e030e69cf583d14ca90e536fadaa3c (patch)
tree2b473afd799d296082c2d41afa0b88909d722f6e /hw/intc/puv3_intc.c
parent8256870ada9379abfd1f5b2c209ad01092dd0904 (diff)
ppc/pnv: Rework cache watch model of PnvXIVE
When the software modifies the XIVE internal structures, ESB, EAS, END, NVT, it also must update the caches of the different XIVE sub-engines. HW offers a set of common interface for such purpose. The CWATCH_SPEC register defines the block/index of the target and a set of flags to perform a full update and to watch for update conflicts. The cache watch CWATCH_DATAX registers are then loaded with the target data with a first read on CWATCH_DATA0. Writing back is done in the opposit order, CWATCH_DATA0 triggering the update. The SCRUB_TRIG registers are used to flush the cache in RAM, and to possibly invalidate it. Cache disablement is also an option but as we do not model the cache, these registers are no-ops Today, the modeling of these registers is incorrect but it did not impact the set up of a baremetal system. However, running KVM requires a rework. Fixes: 2dfa91a2aa5a ("ppc/pnv: add a XIVE interrupt controller model for POWER9") Signed-off-by: Cédric Le Goater <clg@kaod.org> Message-Id: <20190630204601.30574-4-clg@kaod.org> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Diffstat (limited to 'hw/intc/puv3_intc.c')
0 files changed, 0 insertions, 0 deletions