pnv/xive2: Add support XIVE2 P9-compat mode (or Gen1)
commit747ffe28cad7129e1d326d943228fdcbe109530d
authorCédric Le Goater <clg@kaod.org>
Wed, 2 Mar 2022 05:51:39 +0000 (2 06:51 +0100)
committerCédric Le Goater <clg@kaod.org>
Wed, 2 Mar 2022 05:51:39 +0000 (2 06:51 +0100)
tree12990e8e6bde131d66939f183fcd2944e33f1421
parent95d729e2bc5b46d40e71971043e03d9cc9503e9a
pnv/xive2: Add support XIVE2 P9-compat mode (or Gen1)

The thread interrupt management area (TIMA) is a set of pages mapped
in the Hypervisor and in the guest OS address space giving access to
the interrupt thread context registers for interrupt management, ACK,
EOI, CPPR, etc.

XIVE2 changes slightly the TIMA layout with extra bits for the new
features, larger CAM lines and the controller provides configuration
switches for backward compatibility. This is called the XIVE2
P9-compat mode, of Gen1 TIMA. It impacts the layout of the TIMA and
the availability of the internal features associated with it,
Automatic Save & Restore for instance. Using a P9 layout also means
setting the controller in such a mode at init time.

As the OPAL driver initializes the XIVE2 controller with a XIVE2/P10
TIMA directly, the XIVE2 model only has a simple support for the
compat mode in the OS TIMA.

Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
hw/intc/pnv_xive2.c
hw/intc/pnv_xive2_regs.h