Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 13 Dec 1998 12:43:34 +0100
From:      Stefan Esser <se@mi.uni-koeln.de>
To:        Didier Derny <didier@omnix.net>, hackers@FreeBSD.ORG
Cc:        Stefan Esser <se@mi.uni-koeln.de>
Subject:   Re: Adaptec ANA 6944A TX and/or PCI problem
Message-ID:  <19981213124334.B564@mi.uni-koeln.de>
In-Reply-To: <Pine.BSF.3.96.981211093757.18463B-100000@omnix.net>; from Didier Derny on Fri, Dec 11, 1998 at 09:52:20AM %2B0100
References:  <Pine.BSF.3.96.981211093757.18463B-100000@omnix.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On 1998-12-11 09:52 +0100, Didier Derny <didier@omnix.net> wrote:
> I'm trying to use two Adaptec ANA 6944A TX (4 port) 10/100 BaseT board.
> 
> - each board is working fine separately. 
> - both board are not working used simultanously
> - Nothing special during the boot (dmesg seems ok)

Please send me your dmesg output from a "-v" boot (verbose messages).

> I made the following experience:
> 
> ifconfig de0 inet 192.168.5.1 netmask 255.255.255.0
> ifconfig de4 inet 192.168.6.1 netmask 255.255.255.0
> 
> then I ping both networks simultaneously and got a message 
> telling me that the the ethernet / ip addresses were not
> comming from the right source.
> 
> ip from de0 with the ethernet address of de4
> 
> (ports were numbered from de0 to de3 for the first board
> and from de4 to de7 for the second board)
> 
> My guess:
> 
> when the first board is initialized everything is ok, then when the
> second board is initialized the io ports of the second board are allocated
> at the same location than for the first board.

This can be verified by looking at the map registers (address 0x10 
to 0x24 in PCI config space, have to check which one is correct for
the port map of the DEC Ethernet chip). But this information should
also be provided by the verbose boot ...

> I ran the adaptec diagnostics, he saw two boards effectively,
> he saw the same io ports at the same adresses 0xc800, 0xc400...

The boards can be distinguished in PCI config space (geographical 
addressing) no matter, what their map registers are set to.

Did you try with memory mapped registers (kernel build option, see
the driver sources, remove the definition of TULIP_IOMAPPED, the
comment most probably applies to anxient PCI bridges ...

> but I'm not sure if it's a relative or absolute address.
> 
> The other possibility is a problem in the allocations of ports
> in the if_de.c driver.
> 
> It is sure that when trying to ping de0 alone, de4 is activated 
> 
> If it's a pci problem, is there any possibility to override the PCI
> configuration to avoid this problem.

While it is not really impossible to remap PCI devices, this is an ugly
thing to do. Only the PCI BIOS knows about restrictions of the chip set
or mainboard hardware, and it should have used that knowledge to assign 
valid addresses in the first place. (I.e. I'd rather not trust PCI BIOS 
services to return valid information for the kernel to fix things up, in 
such a case!)

Regards, STefan

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19981213124334.B564>