Re: Bus error on sb1250

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Sat, Sep 24, 2005 at 11:57:10PM +0200, Peter 'p2' De Schrijver wrote:
> Hi,
> 
> I'm seeing some strange bus errors when trying to get the Fore
> ForeRunner PCA-200EPC card to work on the sibyte swarm. The driver polls
> a register on this card for status information. This triggers a bus
> error once in a while. This happens regardless if the card is attached
> to the PCI bus of the sb1250 or to the PCI bus behind the Alliance HT -
> PCI bridge. 
> 

Thanks to Maciej, I found the problem. The device apparently does not
always react in time for the sb1250 PCI host. Changing TrdyTimeout to
0xff fixes the problem for the 32bit PCI slots. I need to find the
equivalent register on the SP1011 bridge to fix the problem for the
64bit PCI slots. Patch attached.

Cheers,

Peter (p2).

--
goa is a state of mind
--- linux/include/linux/pci_ids.h	2005-09-15 10:56:21.000000000 +0200
+++ linux-my/include/linux/pci_ids.h	2005-09-25 15:10:53.000000000 +0200
@@ -2192,6 +2192,7 @@
 #define PCI_DEVICE_ID_FARSITE_TE1C      0x1612
 
 #define PCI_VENDOR_ID_SIBYTE		0x166d
+#define PCI_DEVICE_ID_BCM1250_PCI	0x0001
 #define PCI_DEVICE_ID_BCM1250_HT	0x0002
 
 #define PCI_VENDOR_ID_NETCELL		0x169c
--- linux/arch/mips/pci/fixup-sb1250.c	2004-12-18 23:28:20.000000000 +0100
+++ linux-my/arch/mips/pci/fixup-sb1250.c	2005-09-25 15:25:02.000000000 +0200
@@ -20,5 +20,22 @@
 {
 	dev->class = PCI_CLASS_BRIDGE_PCI << 8;
 }
+
+/*
+ * Set PCI Trdy timeout to 0xff clock cycles
+ */
+static void __init quirk_sb1250_pci(struct pci_dev *dev)
+{
+	u32 pci_timeout;
+
+	pci_read_config_dword(dev, 0x40, &pci_timeout);
+	pci_timeout|=0xff;
+	pci_write_config_dword(dev,0x40,pci_timeout);
+}
+
 DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SIBYTE, PCI_DEVICE_ID_BCM1250_HT,
 			quirk_sb1250_ht);
+
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SIBYTE, PCI_DEVICE_ID_BCM1250_PCI,
+			quirk_sb1250_pci);
+

Attachment: signature.asc
Description: Digital signature


[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux