EP(4)

okay bestie, sit down, grab a strawberry ๐Ÿ“, because we're talking about ep โ€” the Ethernet driver for 3Com Etherlink III (3c5x9) interfaces. this is from the i386 Kernel Interfaces Manual btw, so it's giving vintage ๐Ÿ‘‘. it's also, um, kind of a ghost ๐Ÿ‘ป โ€” more on that in a sec. iykyk.


๐ŸŽ€ SYNOPSIS ๐ŸŽ€

so you wanna get this driver living in your kernel? no cap, here's the move. drop this line into your kernel configuration file:

device ep

or, if you'd rather slide it in as a module at boot time instead (so valid, so slay), put this in loader.conf(5):

if_ep_load="YES"

pick your fighter, both work ๐Ÿ’…


๐Ÿ’€ DEPRECATION NOTICE ๐Ÿ’€

bestie. i need you to hear me. the ep driver is not present in FreeBSD 13.0 and later. she's gone. she left the group chat. ๐Ÿ˜ญ

if you want the full lore, go read https://github.com/freebsd/fcp/blob/master/fcp-0101.md. that's the whole story right there.


โœจ DESCRIPTION โœจ

the ep device driver supports network adapters based on the 3Com 3C5x9 Etherlink III Parallel Tasking chipset. iconic chipset, honestly.

so these cards come in a bunch of different models and they each have a different lil assortment of connectors, which is very "choose your own adventure" of them ๐ŸŒˆ:

  • AUI/DIX โ€” standard 15 pin connector, also known as 10base5 (thick-net). thicc.
  • 10Base2 โ€” BNC, also known as thin-net ๐Ÿฆ‹
  • 10BaseT โ€” UTP, also known as twisted pair. twisted, like this whole situation fr fr.

the default port to use is the port that has been selected with the setup utility. that's the vibe by default. but if you wanna override it (main character energy ๐Ÿ’…), use these media options with ifconfig(8) or pop them in your /etc/rc.conf file:

  • 10base5/AUI โ€” use the AUI port.
  • 10base2/BNC โ€” use the BNC port.
  • 10baseT/UTP โ€” use the UTP port.

๐Ÿ‘‘ HARDWARE ๐Ÿ‘‘

the ep driver supports Ethernet adapters based on the 3Com 3C5x9 Etherlink III Parallel Tasking chipset, including โ€” and omg the list is long, we love a thorough queen:

  • 3Com 3C1 CF
  • 3Com 3C509-TP, 3C509-BNC, 3C509-Combo, 3C509-TPO, 3C509-TPC ISA
  • 3Com 3C509B-TP, 3C509B-BNC, 3C509B-Combo, 3C509B-TPO, 3C509B-TPC ISA
  • 3Com 3C562/3C563 PCMCIA
  • 3Com 3C574, 3C574TX, 3C574-TX, 3CCFE574BT, 3CXFE574BT, 3C3FE574BT PCMCIA
  • 3Com 3C589, 3C589B, 3C589C, 3C589D, 3CXE589DT PCMCIA
  • 3Com 3CCFEM556B, 3CCFEM556BI PCMCIA
  • 3Com 3CXE589EC, 3CCE589EC, 3CXE589ET, 3CCE589ET PCMCIA
  • 3Com Megahertz 3CCEM556, 3CXEM556, 3CCEM556B, 3CXEM556B, 3C3FEM556C PCMCIA
  • 3Com OfficeConnect 3CXSH572BT, 3CCSH572BT PCMCIA
  • Farallon EtherWave and EtherMac PC Card (P/n 595/895 with BLUE arrow)

๐ŸŒธ NOTES ๐ŸŒธ

okay this is the part where i hold your hand ๐Ÿซถ because some of this is lowkey spicy.

the 3c509 card has no jumpers to set the address. instead, 3Com supplies software to set the address of the card in software. to find the card on the ISA bus, the kernel performs a complex scan operation at IO address 0x110.

โš ๏ธ BEWARE! avoid placing other cards at that address! i'm not being dramatic, this is literally what it says. ๐Ÿ’€

also โ€” and this is important โ€” the 3c509 should not be configured in EISA mode.

cards in PnP mode may conflict with other resources in the system. so make sure your BIOS is configured correctly to exclude resources used by the 3c509, especially IRQs, to avoid unpredictable behavior. unpredictable behavior is not the slay we're going for ๐Ÿ™ˆ.

many different companies sold the 3Com PC Cards under their own private label. and good news bestie: these cards also work. ๐ŸŽ‰

now, the Farallon EtherWave and EtherMac card came in two varieties. the ep driver supports the 595 and 895 cards. these ones have the blue arrow on the front along with a 3Com logo. the Farallon 595a cards โ€” which have a red arrow on the front โ€” are also called EtherWave and EtherMac, but those are supported by the sn(4) driver instead. so like, blue arrow = us, red arrow = not us. got it? ๐Ÿ’™โค๏ธ


๐Ÿ”ฅ DIAGNOSTICS ๐Ÿ”ฅ

here's the group chat of error messages this driver can send you. read them, love them, know them.

  • ep0: reset (status: %x) โ€” the driver has encountered a FIFO underrun or overrun. it will reset the card and the packet will be lost. ngl it's not fatal, so breathe. ๐Ÿ˜ฎ๐Ÿ’จ
  • ep0: eeprom failed to come ready โ€” the eeprom failed to come ready. this probably means the card is wedged. she's stuck. ๐Ÿ˜ญ
  • ep0: 3c509 in test mode. Erase pencil mark! โ€” this means that someone has scribbled with pencil in the test area on the card. erase the pencil mark and reboot. (this is not a joke). i repeat: NOT a joke. actual pencil. actual erasing. โœ๏ธ
  • ep0: No I/O space?! โ€” the driver was unable to allocate the I/O space that it thinks should be there. look for conflicts with other devices.
  • ep0: No irq?! โ€” the driver could not allocate the interrupt it wanted. look for conflicts, although sharing interrupts for PC Card is normal.
  • ep0: No connectors! โ€” the driver queried the hardware for what ethernet attachment were present, but the hardware reported none that the driver recognized.
  • ep0: Unable to get Ethernet address! โ€” the driver was unable to read the ethernet address from the EEPROM. this is likely the result of the card being wedged.
  • ep0: if_alloc() failed โ€” the driver was unable to allocate a ifnet structure. this may happen in extremely low memory conditions.
  • ep0: strange connector type in EEPROM: assuming AUI โ€” the driver does not know what to do with the information the EEPROM has about connectors, so it is assuming the worst. pessimistic queen ๐Ÿ’…
  • ep0: unknown ID 0xXXXXXXXX โ€” the driver has found an ID that it believes it supports, but does not have a specific identification string to present to the user.
  • ep0: <%s> at port 0x%03x in EISA mode, ignored. โ€” the 3C509 ISA card is in EISA mode. the card will be ignored until it is taken out of EISA mode.
  • ep0: <%s> at x0%03x in PnP mode โ€” this card appears to be in Plug and Play mode. it should be probed as part of the plug and play phase of the ISA probes.
  • ep0: Invalid EEPROM checksum! โ€” the EEPROM has a bad checksum, so the driver is ignoring the card.
  • ep0: bus_setup_intr() failed! โ€” the driver was unable to setup the interrupt handler. this should never happen. (famous last words fr fr ๐Ÿซ )

๐Ÿฆ‹ SEE ALSO ๐Ÿฆ‹

go read these when you're done here, they're all part of the family:

altq(4), ed(4), intro(4), ng_ether(4), sn(4), vx(4), ifconfig(8)


๐ŸŒˆ STANDARDS ๐ŸŒˆ

are great. there is so many to choose from. ๐Ÿ’€โœจ


and that's the whole page, bestie. this one came to you from Debian, dated October 24, 2018, and it's EP(4) โ€” now go forth and be iconic with your very old network cards. mwah ๐Ÿ’–๐ŸŽ€๐Ÿซถ

๐Ÿ“ฆ where this page comes from