I'm working on Tyan S2865 again here, Nvidia CK804, and I can't get PCI32 bus interrupts going. I've got mptable.c working for onboard devices and PCI-e sots.
I've got a quad-ethernet PCI card working in slot one, which demonstrates that all 4 PCI INTR[1234] pins are working
however i can't seem to get interrupts from any pin of any other slot [2-4] or the onboard ATI VGA or firewire chips (which are on PCI32 bus also) I have done trial and error on slots 2-4 using interrupts 16-25 with no effect (IO-APIC vectors and beyond)
the motherboard's manual has a PCI interrupt "swizzle" table, but it appears to be cut and pasted from another model and regardless is unintelligible, so I put the quad ethernet card in slots 2-4, expecting that at least one interrupt ABCD pin would fire, but nothing, absolutely no interrupts are generated from slots 2-4 or either onboard PCI device.
The other slots host a Matrox Millennium adapter that works as fbconsole, so the slots aren't completely dead.
Any CK804 specific tips or general Linux interrupt detection tips are appreciated.
Regards,
Jeremy
I have since discovered using a multimeter that the interrupt lines are directly connected between all four PCI slots. I have adjusted mptables.c to reflect the "swizzling" of the lines.
I can attach a simple logic probe to the PIRQ[A-D] and watch as each of the four DEC tulips on a quad fast ethernet card are subjected to a ping -f while in slot 1.
The NICs in the other slots do not seem to generate interrupts, at least not that my primitive probe can see.
I have tried ethtool's diagnostic, but I could use more resources for troubleshooting PCI memory/io configuration.
lspci -xxx shows that io/memory/master are enabled on the NICs, and there aren't any obvious misconfigurations of the bridge or NICs BARs for io/memory/prefetchable
Any suggestions what to look for would be appreciated.
Regards,
Jeremy
On Thu, 2007-05-03 at 15:03 -0400, Jeremy Jackson wrote:
I'm working on Tyan S2865 again here, Nvidia CK804, and I can't get PCI32 bus interrupts going. I've got mptable.c working for onboard devices and PCI-e sots.
I've got a quad-ethernet PCI card working in slot one, which demonstrates that all 4 PCI INTR[1234] pins are working
however i can't seem to get interrupts from any pin of any other slot [2-4] or the onboard ATI VGA or firewire chips (which are on PCI32 bus also) I have done trial and error on slots 2-4 using interrupts 16-25 with no effect (IO-APIC vectors and beyond)
the motherboard's manual has a PCI interrupt "swizzle" table, but it appears to be cut and pasted from another model and regardless is unintelligible, so I put the quad ethernet card in slots 2-4, expecting that at least one interrupt ABCD pin would fire, but nothing, absolutely no interrupts are generated from slots 2-4 or either onboard PCI device.
The other slots host a Matrox Millennium adapter that works as fbconsole, so the slots aren't completely dead.
Any CK804 specific tips or general Linux interrupt detection tips are appreciated.
Regards,
Jeremy
1. use smp 64bit kernel. 2. s2865 onboard NIC is in silicon, so please refer irq routing in s2895 or s2891 etc.
YH
Thanks for the reply, see below:
On Wed, 2007-05-16 at 09:20 -0700, yhlu wrote:
- use smp 64bit kernel.
I have Ubuntu feisty kernel, 2.6.20-14-generic #2 SMP, which shows 2 CPUs with an AMD Athlon64 X2 4600+. Do I need any other kernel config options?
- s2865 onboard NIC is in silicon, so please refer irq routing in
s2895 or s2891 etc.
Oh yes the onboard NIC works great, as does the tg3, all 3 PCI-e slots, onboard video. DME1737 hwmon works. sound works. PCI slot one has all four interrupts working.
What doesn't work yet is: 1) PCI slots 2-4 -there doesn't seem to be any interrupts generated. slot 2 and 4 can do ifconfig up, but don't transmit or receive any packets. slot 3 refuses to ifconfig up.
2)firewire (it's on PCI bus, so it's probably related to 1) gets no interrupts. If the module is reloaded, dmesg fills the screen endlessly and hard reset is required.
3) SATA doesn't detect connected drives, and shows 0 in /proc/interrupts. This is a mystery to me as all other CK804 devices worked first try.
4) DME1737 watchdog. there isn't a linux driver yet. I expect to port one of the other SMSC linux drivers soon.
5) MSI interrupts don't work, on vendor BIOS or LinuxBIOS. some MSI to HT mappings aren't set up.
I can really use help with 3) and 1)
Regards,
Jeremy
YH
On 5/16/07, Jeremy Jackson jerj@coplanar.net wrote:
Thanks for the reply, see below:
On Wed, 2007-05-16 at 09:20 -0700, yhlu wrote:
- use smp 64bit kernel.
I have Ubuntu feisty kernel, 2.6.20-14-generic #2 SMP, which shows 2 CPUs with an AMD Athlon64 X2 4600+. Do I need any other kernel config options?
Why not use kernel from kernel.org?
- s2865 onboard NIC is in silicon, so please refer irq routing in
s2895 or s2891 etc.
Oh yes the onboard NIC works great, as does the tg3, all 3 PCI-e slots, onboard video. DME1737 hwmon works. sound works. PCI slot one has all four interrupts working.
What doesn't work yet is:
- PCI slots 2-4
-there doesn't seem to be any interrupts generated. slot 2 and 4 can do ifconfig up, but don't transmit or receive any packets. slot 3 refuses to ifconfig up.
2)firewire (it's on PCI bus, so it's probably related to 1) gets no interrupts. If the module is reloaded, dmesg fills the screen endlessly and hard reset is required.
without schematic, that will need some try and test to figure out.
- SATA doesn't detect connected drives, and shows 0
in /proc/interrupts. This is a mystery to me as all other CK804 devices worked first try.
current ck804 support in LinuxBIOS only support port 0, and port 2.
- DME1737 watchdog. there isn't a linux driver yet. I expect to port
one of the other SMSC linux drivers soon.
- MSI interrupts don't work, on vendor BIOS or LinuxBIOS. some MSI to
HT mappings aren't set up.
CK804 has problem to use MSI, MCP55 NIC will use MSI well.
YH
On Wed, 2007-05-16 at 11:49 -0700, yhlu wrote:
PCI slot one has all
four interrupts working.
What doesn't work yet is:
- PCI slots 2-4
-there doesn't seem to be any interrupts generated. slot 2 and 4 can do ifconfig up, but don't transmit or receive any packets. slot 3 refuses to ifconfig up.
2)firewire (it's on PCI bus, so it's probably related to 1) gets no interrupts. If the module is reloaded, dmesg fills the screen endlessly and hard reset is required.
without schematic, that will need some try and test to figure out.
The Tyan S2865 User's Manual Revision 1.00 on page 31 "PCI IDSELs and IRQ Assignments" isn't very helpful. It looks like it's taken from a dual-socket/multi-southbridge motherboard. Rev 1.03 is the same.
PCI slot 1 - all 4 PIRQ[ABCD] are working. I used a multimeter to find where these go on the other PCI slots 2-4, and for onboard Via VT6307 PCI firewire.
I have set mptables.c to match IRQs from working slot1 according to the swizzle table I have discovered:
PCI Slot, IDSEL, PIRQA, PIRQB, PIRQC, PIRQD ati rage xl, 21, ?, n/a, n/a, n/a via firewire, 22, C, ?, n/a, n/a 1, 23, A, B, C, D 2, 24, D, A, B, C 3, 25, C, D, A, B 4, 26, B, C, D, A
Other than IDSEL and PIRQ traces, I can't think of any differences between the PCI slots, and yet only slot 1 is working. Maybe the southbridge has some configuration for arbitration priority that's not set by LinuxBIOS?
I will try and find a PCI card that generates interrupts, but doesn't use bus mastering, as most NICs do, to try and furthur diagnose the problem.
Jeremy
On furthur testing, and correcting interrupt assignment in mptables.c, I find that SATA port 3 is working completely (NCQ, hotplug).
port 4 detects a drive, but kernel hangs at boot
ata6: SATA link up 1.5 Gbps (SStatus 113 SControl 300) ata6.00: ATA-7: ST3250823AS, 3.03, max UDMA/133 ata6.00: 488397168 sectors, multi 0: LBA48 NCQ (depth 31/32) ata6.00: qc timeout (cmd 0xef) ata6.00: failed to set xfermode (err_mask=0x4) ata6: failed to recover some devices, retrying in 5 secs (kernel locks up, Alt-SysRQ not responding)
ports 1 and 2 don't detect drives.
Jeremy
On Wed, 2007-05-16 at 09:20 -0700, yhlu wrote:
- use smp 64bit kernel.
- s2865 onboard NIC is in silicon, so please refer irq routing in
s2895 or s2891 etc.
YH
On 5/16/07, Jeremy Jackson jerj@coplanar.net wrote:
ports 1 and 2 don't detect drives.
known problem
YH