Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 22 Jun 2004 21:25:24 +0200 (CEST)
From:      Michael Kukat <michael@unixiron.org>
To:        ticso@cicely.de
Cc:        freebsd-alpha@freebsd.org
Subject:   Re: SRM not initialising cards behind a bridge
Message-ID:  <20040622211907.Y3751@calchas.unixiron.org>
In-Reply-To: <20040622190028.GB21460@cicely12.cicely.de>
References:  <20040622200019.M3751@calchas.unixiron.org> <20040622190028.GB21460@cicely12.cicely.de>

next in thread | previous in thread | raw e-mail | index | archive | help

Hello,

On Tue, 22 Jun 2004, Bernd Walter wrote:
> Port ranges are very small compared to memory and hard to distribute
> over many bridges, because ranges have to be bridged in a single
> continuous block and you can't reallocate ranges later without driver
> interaction.

Yep, i saw some things in Leenox, but if i look into those source, i never feel
very well afterwards :) But this makes me understand some of the problems we
get here.

> Everything is absolutely correct in the sense of PCI specs.
> Even the obscure data in the port range registers are OK because the
> bridge is configured to have port range bridging disabled.
> The bus space allocation will fail so the driver knows that it's
> unuseable and should fall back to memory.

Okay, maybe some driver problem then. But not a real problem, as there is this
nifty #define to work around this. Not really configurable in kernel cfg files,
but at least in the source, which is okay for a home setup.

> Maybe you have hardware at those addresses, but in fact it can't be
> this NIC, because the bridge hasn't connected the port range to this
> bus.
> You should get the driver using memory ranges.

Okay. After reading the comments of if_sf.c this also sounds good for me, as
just 256 bytes can be addressed directly, the rest just via index register. So
memory mapped I/O should even perform better. I'll leave in the #undef to drive
it memory mapped, and try to track down the access problems, if nobody else had
problems with StarFire drivers in FreeBSD/alpha. Seems to be a quite rare
configuration, but i want to put this card into the alpha, as it's 64bit, and
the other machine needing quadport ethernet (i386) just has 32bit slots. "It
just looks better this way" :)

> Port range on alpha is just a separate range of memory mapped anyway.

Thought so. I think there are not much CPUs besides Intel differentiating
between I/O and memory ranges this way. Everything else i know does memory
mapped I/O.

...Michael

-- 
http://www.unixiron.org/    Home Powered by: (Net|Open|Free)BSD IRIX NonStop-UX
Solaris AIX HP-UX Tru64 MUNIX Ultrix VMS SINIX Dolphin_Unix OpenStep MacOS A/UX



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