Hi Stefan,
On Wednesday 19 September 2007 10:20, Stefan Reinauer wrote:
- Juergen Beisert juergen127@kreuzholzen.de [070919 09:29]:
Yes. It only supports the CS5520. If it detects the CS5530 it states:
PCI: Using IRQ router NatSemi [1078/0100] at 0000:00:12.0
But does not touch any register. My upstream patch was rejected, as it breaks all the lousy CS5520 targets with broken IRQ routing tables.
But I can live with the patch on my target. Nevertheless I would be happy when LB does this job itself.
I remember a valid workaround in such cases was to choose a compatible interrupt router (is the cs5520 compatible to the 5530 one?) and specify it's vendor id and device id in the corresponding fields in the PIRQ table.
Routing registers in CS5520 and CS5530 are the same.
IIRC at some point most AMD64 boards' pirq tables would state they have an AMD 768 controller. The bus/dev/fn would point to the real physical device though. So the vid/did in the pirq table are rather a code path selector than a real device/vendor id.
This could work. But: You also must provide a broken PIRQ table, as the Linux code swaps the nibbles in the routing registers (to "repair" the broken tables in theses systems)! :-( It might be easier to patch the kernel to do the right thing instead to play with various workarounds. But my favourite way would be to let LB do this job, never touched by the kernel anymore...
Juergen