Messages in this thread | | | Date | Wed, 22 Sep 1999 21:08:09 +0300 | From | Matti Aarnio <> | Subject | Re: 2.3.18ac8 doesn't detect tulip (again!) |
| |
On the issue of "why my TULIP card is not found" I made a bit of code changes ( printk()s at all 'continue' places in the drivers/pci/scan.c ), and found thus following dmesg report:
tulip.c:v0.91m 9/15/99 becker@cesdis.gsfc.nasa.gov Found Digital DS21140 Tulip at PCI address 0xe2001000, IRQ 10. PCI-address region 0xe2001000-0xe20013ff not completely free
which gave me some ideas... Then I modprobe:d de4x5 in (and 3c59x), and got following from "/sbin/lspci -v" command (I got it from VGER via CVS, but I don't know if it is added to any distributions):
00:0e.0 Ethernet controller: Digital Equipment Corporation DECchip 21140 [FasterNet] (rev 22) Flags: bus master, medium devsel, latency 96, IRQ 10 I/O ports at 6100 Memory at e2001000 (32-bit, non-prefetchable)
00:0f.0 Ethernet controller: 3Com Corporation 3c905B 100BaseTX (rev 24) Flags: bus master, medium devsel, latency 32, IRQ 11 I/O ports at 6200 Memory at e2002000 (32-bit, non-prefetchable)
The lspci doesn't tell the sizes of regions (bad bad! -- if it can know them ?) but comparing those two above I would say used IO range is 0x0100, and memory range is 0x1000. (This is somewhat wrong guess.)
Now at tulip.c there are these code fragments:
static void *tulip_probe1(struct pci_dev *pdev, void *init_dev, long ioaddr, int irq, int chip_idx, int find_cnt); #ifdef USE_IO_OPS #define TULIP_IOTYPE PCI_USES_MASTER | PCI_USES_IO | PCI_ADDR0 #define TULIP_SIZE 0x80 #else #define TULIP_IOTYPE PCI_USES_MASTER | PCI_USES_MEM | PCI_ADDR1 #define TULIP_SIZE 0x400 #endif ... static struct pci_id_info pci_tbl[] = { { "Digital DC21040 Tulip", { 0x00021011, 0xffffffff }, TULIP_IOTYPE, TULIP_SIZE, DC21040 }, { "Digital DC21041 Tulip", { 0x00141011, 0xffffffff }, TULIP_IOTYPE, TULIP_SIZE, DC21041 }, { "Digital DS21140 Tulip", { 0x00091011, 0xffffffff }, TULIP_IOTYPE, TULIP_SIZE, DC21140 }, { "Digital DS21143 Tulip", { 0x00191011, 0xffffffff }, TULIP_IOTYPE, TULIP_SIZE, DC21142 }, ...
Changeing that latter size to 0x1000 for 21142/21143 is advisable (per chip datasheet). However for 21140 it is pure poison.
See what your /proc/iomem and /proc/ioports are telling about ranges for each 21143 card ?
Somehow /proc/iomem gets the range ok, and when I set memory size for my DEC 21140 to be 128, it installs just fine, and works.
$ cat /proc/iomem ... e2001000-e200107f : DEC DC21140 e2002000-e200207f : 3Com 3C905B 100bTX
/Matti Aarnio <matti.aarnio@sonera.fi>
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |