mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-07 01:33:56 -06:00
spapr: introduce a new sPAPR IRQ backend supporting XIVE and XICS
The 'dual' sPAPR IRQ backend supports both interrupt mode, XIVE exploitation mode and the legacy compatibility mode (XICS). both modes are not supported at the same time. The machine starts with the legacy mode and a new interrupt mode can then be negotiated by the CAS process. In this case, the new mode is activated after a reset to take into account the required changes in the machine. These impact the device tree layout, the interrupt presenter object and the exposed MMIO regions in the case of XIVE. Signed-off-by: Cédric Le Goater <clg@kaod.org> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
72c1e5a66a
commit
13db0cd9b8
4 changed files with 198 additions and 3 deletions
|
@ -1654,6 +1654,17 @@ static target_ulong h_client_architecture_support(PowerPCCPU *cpu,
|
|||
(spapr_h_cas_compose_response(spapr, args[1], args[2],
|
||||
ov5_updates) != 0);
|
||||
}
|
||||
|
||||
/*
|
||||
* Generate a machine reset when we have an update of the
|
||||
* interrupt mode. Only required when the machine supports both
|
||||
* modes.
|
||||
*/
|
||||
if (!spapr->cas_reboot) {
|
||||
spapr->cas_reboot = spapr_ovec_test(ov5_updates, OV5_XIVE_EXPLOIT)
|
||||
&& spapr->irq->ov5 & SPAPR_OV5_XIVE_BOTH;
|
||||
}
|
||||
|
||||
spapr_ovec_cleanup(ov5_updates);
|
||||
|
||||
if (spapr->cas_reboot) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue