summary refs log tree commit diff stats
path: root/include/hw/or-irq.h
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2018-06-15 14:57:14 +0100
committerPeter Maydell <peter.maydell@linaro.org>2018-06-15 15:23:34 +0100
commitf81804a52b5d4609f68ea367a55a2ccb4cc99f77 (patch)
tree7fd073b56b67ac6edf5e330ace0c05858884553c /include/hw/or-irq.h
parent95f875654ae8b433b50a2bc7858e34af957cbaa4 (diff)
downloadfocaccia-qemu-f81804a52b5d4609f68ea367a55a2ccb4cc99f77.tar.gz
focaccia-qemu-f81804a52b5d4609f68ea367a55a2ccb4cc99f77.zip
hw/core/or-irq: Support more than 16 inputs to an OR gate
For the IoTKit MPC support, we need to wire together the
interrupt outputs of 17 MPCs; this exceeds the current
value of MAX_OR_LINES. Increase MAX_OR_LINES to 32 (which
should be enough for anyone).

The tricky part is retaining the migration compatibility for
existing OR gates; we add a subsection which is only used
for larger OR gates, and define it such that we can freely
increase MAX_OR_LINES in future (or even move to a dynamically
allocated levels[] array without an upper size limit) without
breaking compatibility.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Message-id: 20180604152941.20374-10-peter.maydell@linaro.org
Diffstat (limited to 'include/hw/or-irq.h')
-rw-r--r--include/hw/or-irq.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/include/hw/or-irq.h b/include/hw/or-irq.h
index 3f6fc1b58a..5a31e5a188 100644
--- a/include/hw/or-irq.h
+++ b/include/hw/or-irq.h
@@ -31,7 +31,10 @@
 
 #define TYPE_OR_IRQ "or-irq"
 
-#define MAX_OR_LINES      16
+/* This can safely be increased if necessary without breaking
+ * migration compatibility (as long as it remains greater than 15).
+ */
+#define MAX_OR_LINES      32
 
 typedef struct OrIRQState qemu_or_irq;