On 14/10/2021 17.26, Philippe Mathieu-Daudé wrote:
On 10/14/21 13:29, Cédric Le Goater wrote:
On 10/14/21 12:34, Christophe Leroy wrote:
I have the following change in QEMU to be able to run the bamboo,
found it some time ago via google (can't remember where):
diff --git a/hw/ppc/ppc4xx_pci.c b/hw/ppc/ppc4xx_pci.c
index 8147ba6f94..600e89e791 100644
--- a/hw/ppc/ppc4xx_pci.c
+++ b/hw/ppc/ppc4xx_pci.c
@@ -246,7 +246,7 @@ static int ppc4xx_pci_map_irq(PCIDevice *pci_dev,
int irq_num)
trace_ppc4xx_pci_map_irq(pci_dev->devfn, irq_num, slot);
- return slot - 1;
+ return slot ? slot - 1 : slot;
}
static void ppc4xx_pci_set_irq(void *opaque, int irq_num, int level)
could you try to use :
static inline int ppce500_pci_map_irq_slot(int devno, int irq_num)
{
return (devno + irq_num) % 4;
}
Is this pci_swizzle()?
It's pci_swizzle, but I don't think that we should take irq_num into account
here. The comment right in front of the function says:
On Bamboo, all pins from each slot are tied to a single board IRQ
Similar comment in pc-bios/bamboo.dts:
Bamboo has all 4 IRQ pins tied together per slot
So the return value should only depend on the slot number.
Not sure how to properly fix this yet, though.
Thomas
PS: Found a working pre-compiled kernel for bamboo:
http://landley.net/aboriginal/downloads/binaries/system-image-powerpc-440fp.tar.gz