qemu/include/hw
Cédric Le Goater 106695ab12 ppc/pnv: Improve trigger data definition
The trigger data is used for both triggers of a HW source interrupts,
PHB, PSI, and triggers for rerouting interrupts between interrupt
controllers.

When an interrupt is rerouted, the trigger data follows an "END
trigger" format. In that case, the remote IC needs EAS containing an
END index to perform a lookup of an END.

An END trigger, bit0 of word0 set to '1', is defined as :

             |0123|4567|0123|4567|0123|4567|0123|4567|
    W0 E=1   |1P--|BLOC|          END IDX            |
    W1 E=1   |M   |           END DATA               |

An EAS is defined as :

             |0123|4567|0123|4567|0123|4567|0123|4567|
    W0       |V---|BLOC|          END IDX            |
    W1       |M   |          END DATA                |

The END trigger adds an extra 'PQ' bit, bit1 of word0 set to '1',
signaling that the PQ bits have been checked. That bit is unused in
the initial EAS definition.

When a HW device performs the trigger, the trigger data follows an
"EAS trigger" format because the trigger data in that case contains an
EAS index which the IC needs to look for.

An EAS trigger, bit0 of word0 set to '0', is defined as :

             |0123|4567|0123|4567|0123|4567|0123|4567|
    W0 E=0   |0P--|---- ---- ---- ---- ---- ---- ----|
    W1 E=0   |BLOC|            EAS INDEX             |

There is also a 'PQ' bit, bit1 of word0 to '1', signaling that the
PQ bits have been checked.

Introduce these new trigger bits and rename the XIVE_SRCNO macros in
XIVE_EAS to reflect better the nature of the data.

Signed-off-by: Cédric Le Goater <clg@kaod.org>
Message-Id: <20191007084102.29776-2-clg@kaod.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2019-10-24 09:36:55 +11:00
..
acpi hw/arm: Use GED for system_powerdown event 2019-10-05 17:12:09 -04:00
adc include: Make headers more self-contained 2019-08-16 13:31:51 +02:00
arm hw/arm/omap1: Create the RAM in the board 2019-10-22 17:44:01 +01:00
audio Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
block Include exec/memory.h slightly less 2019-08-16 13:31:52 +02:00
char escc: introduce a selector for the register bit 2019-09-07 08:32:12 +02:00
core cputlb: Remove cpu->mem_io_vaddr 2019-09-25 10:56:28 -07:00
cpu Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
cris Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
display Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
dma Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
firmware machine: Refactor smp-related call chains to pass MachineState 2019-07-05 17:07:36 -03:00
gpio hw/gpio: Add basic Aspeed GPIO model for AST2400 and AST2500 2019-09-13 16:05:00 +01:00
hyperv hyperv: process POST_MESSAGE hypercall 2018-10-19 13:44:14 +02:00
i2c aspeed/i2c: Add AST2600 support 2019-10-15 18:09:04 +01:00
i386 hw/acpi: Make ACPI IO address space configurable 2019-10-05 17:12:08 -04:00
ide sysemu: Move the VMChangeStateEntry typedef to qemu/typedefs.h 2019-08-16 13:31:53 +02:00
input Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
intc include: Make headers more self-contained 2019-08-16 13:31:51 +02:00
ipack Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
ipmi ipmi: Allow a size value to be passed for I/O space 2019-09-20 14:08:10 -05:00
isa Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
kvm Supply missing header guards 2019-06-12 13:20:21 +02:00
lm32 Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
m68k m68k: Add NeXTcube machine 2019-09-07 08:31:51 +02:00
mem Include sysemu/hostmem.h less 2019-08-16 13:31:53 +02:00
mips Include hw/irq.h a lot less 2019-08-16 13:31:52 +02:00
misc aspeed/sdmc: Add AST2600 support 2019-10-15 18:09:04 +01:00
net aspeed: add support for the Aspeed MII controller of the AST2600 2019-10-15 18:09:05 +01:00
nvram include: Make headers more self-contained 2019-08-16 13:31:51 +02:00
pci ipmi: Add PCI IPMI interfaces 2019-09-20 14:08:10 -05:00
pci-bridge Supply missing header guards 2019-06-12 13:20:21 +02:00
pci-host spapr: Fold spapr_phb_lsi_qirq() into its single caller 2019-10-04 19:08:22 +10:00
ppc ppc/pnv: Improve trigger data definition 2019-10-24 09:36:55 +11:00
rdma {hmp, hw/pvrdma}: Expose device internals via monitor interface 2019-03-16 15:52:44 +02:00
riscv riscv: sifive_u: Remove handcrafted clock nodes for UART and ethernet 2019-09-17 08:42:49 -07:00
s390x Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
scsi sysemu: Move the VMChangeStateEntry typedef to qemu/typedefs.h 2019-08-16 13:31:53 +02:00
sd hw/sd/sdhci: Add dummy Samsung SDHCI controller 2019-10-22 17:44:00 +01:00
semihosting include: Make headers more self-contained 2019-08-16 13:31:51 +02:00
sh4 Include hw/irq.h a lot less 2019-08-16 13:31:52 +02:00
sparc Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
ssi aspeed/smc: Introduce segment operations 2019-10-15 18:09:04 +01:00
timer aspeed/timer: Add support for IRQ status register on the AST2600 2019-10-15 18:09:04 +01:00
tricore Include hw/irq.h a lot less 2019-08-16 13:31:52 +02:00
unicore32 hw/unicore32: restrict hw addr defines to source file 2017-12-18 17:07:02 +03:00
usb usb: Add basic code to emulate Chipidea USB IP 2018-02-09 10:40:30 +00:00
vfio vfio: Turn the container error into an Error handle 2019-10-04 18:49:18 +02:00
virtio virtio: add vhost-user-fs base device 2019-10-05 17:43:55 -04:00
watchdog hw: wdt_aspeed: Add AST2600 support 2019-10-15 18:09:04 +01:00
xen xen: perform XenDevice clean-up in XenBus watch handler 2019-09-24 12:18:47 +01:00
xtensa Include hw/irq.h a lot less 2019-08-16 13:31:52 +02:00
boards.h numa: Introduce MachineClass::auto_enable_numa for implicit NUMA node 2019-10-15 18:18:08 -03:00
bt.h Include hw/irq.h a lot less 2019-08-16 13:31:52 +02:00
elf_ops.h elf-ops.h: fix int overflow in load_elf() 2019-09-16 12:32:21 +02:00
empty_slot.h include: Make headers more self-contained 2019-08-16 13:31:51 +02:00
fw-path-provider.h Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
hotplug.h qom: make interface types abstract 2018-12-11 15:45:22 -02:00
hw.h Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
ide.h ide/via: Rename functions to match device name 2019-01-25 14:52:12 -05:00
irq.h Include hw/irq.h a lot less 2019-08-16 13:31:52 +02:00
loader-fit.h Use #include "..." for our own headers, <...> for others 2018-02-09 05:05:11 +01:00
loader.h elf-ops.h: fix int overflow in load_elf() 2019-09-16 12:32:21 +02:00
nmi.h Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
or-irq.h Include hw/irq.h a lot less 2019-08-16 13:31:52 +02:00
pcmcia.h Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
platform-bus.h platform-bus-device: use device plug callback instead of machine_done notifier 2018-05-10 18:10:56 +01:00
ptimer.h ptimer: Provide new transaction-based API 2019-10-15 18:09:02 +01:00
qdev-core.h qdev/machine: Introduce hotplug_allowed hook 2019-09-16 06:57:24 -04:00
qdev-dma.h Supply missing header guards 2019-06-12 13:20:21 +02:00
qdev-properties.h qdev: Add a no default uuid property 2019-09-20 14:09:02 -05:00
register.h hw: register: Run post_write hook on reset 2018-03-01 11:05:43 +00:00
registerfields.h Use #include "..." for our own headers, <...> for others 2018-02-09 05:05:11 +01:00
stream.h Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
sysbus.h Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
usb.h Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00