RE: ne2k and 0x378 lp ports

Dunlap, Randy (randy.dunlap@intel.com)
Tue, 20 Jul 1999 13:25:02 -0700


For more NE2000 info, a good place to find some datasheets and
app notes is www.national.com . Search for "NE2000".

Yes, by "alias" I mean that the address decode logic on the
adapter may choose to ignore some of the low-order address bits.

Since the data transfer reg. at base + 0x10 is 16 bits,
I would expect

> Q> 0360-036f : eth0
> Q> 0370-0370 : eth0
>
or
>
> Q> 0360-0370 : eth0

to be more like

0360-0371 : eth0

Otherwise, looks good.

~Randy

> -----Original Message-----
> From: Riley Williams [mailto:rhw@memalpha.cx]
> Sent: Tuesday, July 20, 1999 1:05 PM
> To: Randy Dunlap
> Cc: linux-kernel@vger.rutgers.edu
> Subject: RE: ne2k and 0x378 lp ports
>
>
> Hi Randy.
>
> > NE2000 uses base_io_addr thru base + 0x1f, but all registers in
> > that range are not used. Base thru base + 0xf are ethernet
> > controller registers. Base + 0x10 (16 bits) is a packet data
> > transfer register. Base + 0x1f is a reset register.
>
> That at least makes sense of the 8390 data sheet that I've just been
> reading...
>
> > Some NE2000 adapters may alias the data transfer register and
> > the reset register. Apparently yours does not do this...
>
> When you say 'alias', do you mean that it ignores address bits 1 and 2
> when selecting these last two registers? If so, there's a fairly
> simple tweak to the driver that could be used to detect that
> happenning, if I'm understanding it correctly, and that would cure the
> IO map on my system as well. The resulting tweaked driver would then
> declare three regions used for cards that don't ignore those two
> address bits, thus letting it live in harmony with the ide1 driver
> when the base is 0x360, and would just declare the current single
> region for cards that do ignore them.
>
> The relevant part of the resulting /proc/ioports would look like this:
>
> Q> 02f8-02ff : serial(auto)
> Q> 0360-036f : eth0
> Q> 0370-0370 : eth0
> Q> 0376-0376 : ide1
> Q> 037f-037f : eth0
> Q> 03f6-03f6 : ide0
> Q> 03f8-03ff : serial(auto)
>
> Alternatively, the first two areas could be merged into a single area,
> in which case it would look like this:
>
> Q> 02f8-02ff : serial(auto)
> Q> 0360-0370 : eth0
> Q> 0376-0376 : ide1
> Q> 037f-037f : eth0
> Q> 03f6-03f6 : ide0
> Q> 03f8-03ff : serial(auto)
>
> Comments?
>
> Best wishes from Riley.
>
> +-------------------------------------------------------------
> ---------+
> | There is something frustrating about the quality and speed
> of Linux |
> | development, ie., the quality is too high and the speed is
> too high, |
> | in other words, I can implement this XXXX feature, but I
> bet someone |
> | else has already done so and is just about to release their
> patch. |
> +-------------------------------------------------------------
> ---------+
> * ftp://ftp.MemAlpha.cx/pub/rhw/Linux
> * http://www.MemAlpha.cx/kernel.versions.html
>

-
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/