On 9/18/07, Juergen Beisert juergen127@kreuzholzen.de wrote:
Linux does not know the CS5530 as an IRQ router.
it certainly used to.
ron
Ron, I don't know when the change occurred, but in the 2.6, it won't setup the IRQ router without a patch.
-Jonathan
____________________________________________________________________________________ Be a better Globetrotter. Get better travel answers from someone who knows. Yahoo! Answers - Check it out. http://answers.yahoo.com/dir/?link=list&sid=396545469
On Tuesday 18 September 2007 21:26, Jonathan Sturges wrote:
On 9/18/07, Juergen Beisert juergen127@kreuzholzen.de wrote:
Linux does not know the CS5530 as an IRQ router.
it certainly used to.
I don't know when the change occurred, but in the 2.6, it won't setup the IRQ router without a patch.
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.
Juergen
* 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. 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.
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
On Wed, Sep 19, 2007 at 11:30:48AM +0200, Juergen Beisert wrote:
But my favourite way would be to let LB do this job, never touched by the kernel anymore...
Obviously this is not the correct long term fix. Migration is bumpy though.
//Peter
On Wed, Sep 19, 2007 at 09:29:28AM +0200, Juergen Beisert wrote:
I don't know when the change occurred, but in the 2.6, it won't setup the IRQ router without a patch.
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.
Isn't it possible to special-case the CS5520 code, so both CS5520 and CS5530 will work in the kernel?
But I can live with the patch on my target. Nevertheless I would be happy when LB does this job itself.
Yes and no. The CS5530 code in the kernel is definately broken, that part should be fixed in the kernel, IMHO. We could add a hack in LinuxBIOS, but the real fix has to happen in the kernel if I'm not mistaken.
Uwe.