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!" ~~~~~~~