*BSD News Article 52150


Return to BSD News archive

Path: euryale.cc.adfa.oz.au!newshost.anu.edu.au!harbinger.cc.monash.edu.au!simtel!news.sprintlink.net!cs.utexas.edu!howland.reston.ans.net!agate!news.mindlink.net!sol.ctr.columbia.edu!startide.ctr.columbia.edu!wpaul
From: wpaul@ctr.columbia.edu (Bill Paul)
Newsgroups: comp.unix.bsd.freebsd.misc
Subject: Re: 3c503 anyone?
Date: 28 Sep 1995 00:24:18 GMT
Organization: Columbia University Center for Telecommunications Research
Lines: 126
Message-ID: <44cpvj$7ct@sol.ctr.columbia.edu>
References: <ethomson.812153568@beatle.wri.com>
NNTP-Posting-Host: startide.ctr.columbia.edu
X-Newsreader: TIN [version 1.2 PL2]

Daring to challenge the will of the almighty Leviam00se, Ed Thomson
(ethomson@wri.com) had the courage to say:

: Howdy -- does anyone have a 3c503 working under FreeBSD?  Mine's at a standard
: irq and address, the kernel (-c) says it's looking for it at this address,
: I've disabled all other conflicting devices and devices I don't have; yet
: probe ed0 still says it doesn't exist.  Any secrets to getting this work?
: (And I got the 503 second-hand, so I don't have a manual or anything --
: but I know it works -- Linux loves it...)

: Ed

Don't even _think_ of trying to disparage this board (provided it's
one of the 16-bit boards -- the 8-bit ones are a little weak in the
knees, but the 16-bit ones are great), or FreeBSD's ability to drive
it. FreeBSD and the 3c503/Etherlink II adapter get along just fine
together. I made a router machine out of a Dell 486 and two 3c503
adapters that's been up for 89 days without a crash:

ieor-gw# uptime
 7:54PM  up 89 days, 22:17, 1 user, load averages: 0.00, 0.00, 0.00
ieor-gw# netstat -i
Name  Mtu   Network     Address            Ipkts Ierrs    Opkts Oerrs  Coll
ed0   1500  <Link>02.60.8c.db.63.c3     46282943  1234 45746380    19 332034
ed0   1500  muddnet.ieo ieor-gw.ieor.co 46282943  1234 45746380    19 332034
ed1   1500  <Link>02.60.8c.db.64.b6     60279837 2228418 45820479 12442 331244
ed1   1500  cu.net.colu ieor-gw.ieor.co 60279837 2228418 45820479 12442 331244
lo0   16384 <Link>                          2092     0     2092     0     0
lo0   16384 loopback-ne localhost           2092     0     2092     0     0
ieor-gw# dmesg
FreeBSD 2.0.5-RELEASE #0: Thu Jun 29 14:28:14 EDT 1995
    wpaul@ieor-gw2:/usr/src/sys/compile/IEOR_GW
CPU: i486DX (486-class CPU)
real memory  = 8290304 (2024 pages)
avail memory = 7426048 (1813 pages)
Probing for devices on the ISA bus:
sc0 at 0x60-0x6f irq 1 on motherboard
sc0: VGA color <16 virtual consoles, flags=0x0>
ed0 at 0x250-0x25f irq 3 maddr 0xc8000 msize 8192 on isa
ed0: address 02:60:8c:db:63:c3, type 3c503 (16 bit) 
bpf: ed0 attached
ed1 at 0x350-0x35f irq 4 maddr 0xcc000 msize 8192 on isa
ed1: address 02:60:8c:db:64:b6, type 3c503 (16 bit) 
bpf: ed1 attached
fdc0 at 0x3f0-0x3f7 irq 6 drq 2 on isa
fdc0: NEC 72065B
fd0: 1.44MB 3.5in
wdc0 at 0x1f0-0x1f7 irq 14 on isa
wdc0: unit 0 (wd0): <WDC AC1170>
wd0: 162MB (333300 sectors), 1010 cyls, 6 heads, 55 S/T, 512 B/S
npx0 on motherboard
npx0: INT 16 interface
bpf: lo0 attached
ed1: device timeout

There's not much in there, but what is in there works very well.
As a side note, it took me only about 45 mintutes to completely
set up this machine, including ethernet card and OS installation.

Here are things you need to remember when using the 3c503:

- You cannot use the board in programmed I/O mode, i.e. with the
  shared memory segment jumpered to 'disabled.' You _MUST_ use a
  shared memory segment. Select one that doesn't conflict with
  any other hardware using the jumpers and leave it there.

- The IRQ is not hardware selectable, it's software selectable: you
  tell the driver you want to use IRQ 5, and it does it.

- The only IRQs you can use with this card are 2,3,4 and 5. Don't
  select an IRQ that's used by another device.

- If you're not using the on-board transceiver, you need to use the
  'link2' flag with ifconfig when configuring the interface. For
  example, my router's sysconfig file says this:

# ifconfig_${network_interface} line for each interface listed here.
#       ifconfig_ed0="inet 10.0.0.1 netmask 0xffffff00"
#       ifconfig_sl0="inet 10.0.1.0 netmask 0xffffff00"
ifconfig_ed0="inet ieor-gw1 netmask 0xffffff00"
ifconfig_ed1="inet ieor-gw2 link2 netmask 0xffff0000"
ifconfig_lo0="inet localhost"

  Note that the configuration for ed1 specifies 'link2.' This tells the
  driver to shut off the transcever and use the AUI port. You may get one
  'ed?: device timeout' error when you do this (as I do above) but the
  card should still work properly. (Note that you can configure a
  custom kernel with this flag set by default, or you can use the -c
  flag to configure it at boot-time.)

- I discovered that with some Intel 'plug & pray' PCI motherboards, you
  have to go into the CMOS setup and specifically tell the machine that
  you want to use a shared memory segment for a device and map it to
  the right address. This tends to affect all OSes though: both Windows NT
  and FreeBSD detected the board but failed to initialize the on-board
  memory on the machine I tested. Linux would undoubtedly have the
  same trouble; this means this probably isn't your problem, but it's
  a good thing to know.

General configuration goes like this:

- Jumper the card to use an I/O address that isn't used by another device.

- Jumper the card to use a shared memory segment that isn't used by
  another device.

- Plug in the board.

- Boot FreeBSD with the -c flag.

- Set the driver I/O port and iomem parameters to match the board.

- Select an IRQ that isn't being used by any other device.

- Continue to boot. The card should be properly detected.

-Bill

--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~T~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-Bill Paul            (212) 854-6020 | System Manager
Work:         wpaul@ctr.columbia.edu | Center for Telecommunications Research
Home:  wpaul@skynet.ctr.columbia.edu | Columbia University, New York City
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The Møøse Illuminati: ignore it and be confused, or join it and be confusing!
~~~~~~ "Welcome to All Things BSDish! If it's not BSDish, it's crap!" ~~~~~~~