[SLOF] [PATCH 2/3] Allow PCI devices in PCI bridge slots greater than 4
Thomas Huth
thuth at redhat.com
Thu Sep 8 19:05:57 AEST 2016
PCI bridges can have up to 31 slots. If we limit the value
from pci-addr2dev with "modulo 4", all devices in slots 4
and higher won't work correctly since the interrupt-map
property then contains wrong values in this case. For
example, when QEMU is started with the following command
line, Linux is not able to use the balloon device:
qemu-system-ppc64 ... \
-device pci-bridge,bus=pci.0,id=bridge1,chassis_nr=1,addr=0x6 \
-device virtio-balloon-pci,id=balloon0,bus=bridge1,addr=5
To fix this issue, simply remove the bogus "4 mod" calculation.
Buglink: https://bugzilla.redhat.com/show_bug.cgi?id=1366953
Signed-off-by: Thomas Huth <thuth at redhat.com>
---
board-qemu/slof/pci-interrupts.fs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/board-qemu/slof/pci-interrupts.fs b/board-qemu/slof/pci-interrupts.fs
index aec1106..7c8ecbd 100644
--- a/board-qemu/slof/pci-interrupts.fs
+++ b/board-qemu/slof/pci-interrupts.fs
@@ -24,7 +24,7 @@
;
: pci-gen-irq-entry ( prop-addr prop-len config-addr -- prop-addr prop-len )
- pci-addr2dev 4 mod ( prop-addr prop-len slot )
+ pci-addr2dev ( prop-addr prop-len slot )
-rot ( slot prop-addr prop-len )
5 1 DO
2 pick i ( slot prop-addr prop-len slot pin )
--
1.8.3.1
More information about the SLOF
mailing list