FE(4)

πŸ’– FE(4) πŸ’–

okay bestie, gather round, because this is FE(4) β€” straight out of the i386 Kernel Interfaces Manual β€” and it's the entire saga of the fe driver. it's a whole era of networking, fr fr. let's get into it πŸ¦‹


🌸 NAME 🌸

fe β€” Fujitsu MB86960A/MB86965A based Ethernet adapters

✨ SYNOPSIS ✨

so you wanna get this driver living in your kernel? drop this line into your kernel configuration file:

device fe

or, if you'd rather load it as a module at boot time (iconic behaviour, ngl), put this in loader.conf(5):

if_fe_load="YES"

and in /boot/device.hints:

hint.fe.0.at="isa"
hint.fe.0.port="0x300"
hint.fe.0.flags="0x0"

πŸ’€ DEPRECATION NOTICE πŸ’€

bestie. i need you to sit down. the fe driver is not present in FreeBSD 13.0 and later. it's gone, it's over, it left the group chat. see <https://github.com/freebsd/fcp/blob/master/fcp-0101.md> for more information. 😭

πŸŽ€ DESCRIPTION πŸŽ€

fe is a network device driver for Ethernet adapters built on the Fujitsu MB86960A, MB86965A, or other compatible chips.

the driver does automatic I/O port address configuration and automatic IRQ configuration β€” but only when it's paired with suitable adapter hardware. so like, it can figure things out, but the hardware has to be up for it.

it works using the program I/O data transfer technique, which gives you a fair performance. and shared memory? never used. not even once. even if the adapter literally has some, the driver is not touching it. πŸ’…

right now it plays nice with the Fujitsu FMV-180 series for ISA, the Allied-Telesis AT1700 series and RE2000 series for ISA, and the Fujitsu MBH10302 PC card.

🧚 Parameters 🧚

in the /boot/device.hints file, two parameters β€” port and irq β€” must be specified so they reflect the actual adapter hardware settings. there's also a flags parameter you can specify to hand over extra configuration as an option.

the port parameter specifies a base I/O port address of the adapter. it must match the hardware setting of the adapter. you can leave port unspecified by removing

hint.fe.0.port="..."

from the file. in that case, the driver tries to detect the hardware setting of the I/O address automatically. heads up though: this feature may not work with some adapter hardware. πŸ™ˆ

the irq parameter specifies an IRQ number used by the adapter. it must match the hardware setting of the adapter. irq may be left unspecified by removing

hint.fe.0.irq="..."

from the file. in that case, the driver tries to detect the hardware setting of the IRQ automatically. this feature may not work on some adapters.

the flags is a numeric value which consists of a combination of various device settings. the following flags are defined in the current version. to specify two or more settings for a device, use a numeric sum of each flag value. flag bits not specified below are reserved and must be set to 0. actually, each bit is either just ignored by the driver, or tested and used to control undocumented features of the driver. consult the source program for undocumented features. πŸ‘‘

  • 0x007F β€” these flag bits are used to initialize the DLCR6 register of the MB86960A/MB86965A chip, when the 0x0080 bit of the flags is set. see below for more about the DLCR6 override feature. the 0x007F flag bits must be 0 unless the 0x0080 bit is set, to maintain the compatibility with future versions of the driver.
  • 0x0080 β€” this flag overrides the default setting to the DLCR6 register of the MB86960A/MB86965A chip by a user supplied value, which is taken from the lower 7 bits of the flag value. this is a troubleshooting flag and should not be used without understanding of the adapter hardware. consult the Fujitsu manual for more information on DLCR6 settings. ⚠️

🌈 HARDWARE 🌈

controllers and cards supported by the fe driver include:

  • Allied Telesis RE1000, RE1000Plus, ME1500 (110-pin)
  • CONTEC C-NET(98)P2, C-NET (9N)E (110-pin), C-NET(9N)C (ExtCard)
  • CONTEC C-NET(PC)C PC Card Ethernet
  • Eagle Tech NE200T
  • Eiger Labs EPX-10BT
  • Fujitsu FMV-J182, FMV-J182A
  • Fujitsu MB86960A, MB86965A
  • Fujitsu MBH10303, MBH10302 PC Card Ethernet
  • Fujitsu Towa LA501 Ethernet
  • HITACHI HT-4840-11 PC Card Ethernet
  • NextCom J Link NC5310
  • RATOC REX-5588, REX-9822, REX-4886, and REX-R280
  • RATOC REX-9880/9881/9882/9883
  • TDK LAC-98012, LAC-98013, LAC-98025, LAC-9N011 (110-pin)
  • TDK LAK-CD011, LAK-CD021, LAK-CD021A, LAK-CD021BX
  • Ungermann-Bass Access/PC N98C+(PC85152, PC85142), Access/NOTE N98(PC86132) (110-pin)

πŸ’… FEATURES SPECIFIC TO HARDWARE MODELS πŸ’…

the fe driver has some features and limitations which depend on adapter hardware models. here's the summary of those dependencies, because the vibes are not the same across the board.

🌟 Fujitsu FMV-180 series adapters 🌟

both automatic IRQ detection and automatic I/O port address detection are available with these adapters. main character energy honestly.

automatic I/O port address detection of fe works mostly fine for FMV-180 series. it works even if there are two or more FMV-180s in a system. however, some combination of other adapters may confuse the driver. it is recommended to explicitly specify port when you experience some difficulties with hardware probe.

automatic IRQ detection of fe works reliably for FMV-180 series. it is recommended to explicitly specify irq always for FMV-180. the hardware setting of IRQ is read from the configuration EEPROM on the adapter, even when the kernel config file specifies an IRQ value. the driver will generate a warning message if the IRQ setting specified in /boot/device.hints does not match the one stored in EEPROM. then, it will use the value specified in the file. (this behaviour has been changed from the previous releases β€” noted, periodt.)

🌸 Allied-Telesis AT1700 series and RE2000 series adapters 🌸

automatic I/O port address detection is available with Allied-Telesis AT1700 series and RE2000 series, while it is less reliable than FMV-180 series. using the feature with Allied-Telesis adapters is not recommended.

automatic IRQ detection is also available, with some limitation. the fe driver tries to get the IRQ setting from the configuration EEPROM on the board, if irq is not specified in /boot/device.hints. unfortunately, AT1700 series and RE2000 series seem to have two types of models: one type allows IRQ selection from 3/4/5/9, while the other from 10/11/12/15. identification of the models is not well known. hence, automatic IRQ detection with Allied-Telesis adapters may not be reliable. specify an exact IRQ number if any troubles are encountered.

differences between AT1700 series and RE2000 series, or minor models in those series, are not recognized.

🫢 Fujitsu MBH10302 PC card 🫢

the fe driver supports Fujitsu MBH10302 and compatible PC cards. it requires the PC card (PCMCIA) support package.

⭐ SEE ALSO ⭐

netstat(1), ed(4), netintro(4), ng_ether(4), ifconfig(8)

πŸŽ€ HISTORY πŸŽ€

the fe driver appeared in FreeBSD 2.0.5. a legend from the jump. πŸ‘‘

the fe driver was originally written and contributed by M. Sekiguchi <seki@sysrap.cs.fujitsu.co.jp>, following the ed driver written by David Greenman. PC card support in fe is written by Hidetoshi Kimura <h-kimura@tokyo.se.fujitsu.co.jp>. this manual page was written by M. Sekiguchi. absolute icons, all of them. 🫢

All Rights Reserved, Copyright (C) Fujitsu Limited 1995

and now the legal bit, bestie β€” word for word, no cap, because this part is not for me to vibe-edit:

This document and the associated software may be used, modified, copied, distributed, and sold, in both source and binary form provided that the above copyright, these terms and the following disclaimer are retained. The name of the author and/or the contributor may not be used to endorse or promote products derived from this document and the associated software without specific prior written permission.

THIS DOCUMENT AND THE ASSOCIATED SOFTWARE IS PROVIDED BY THE AUTHOR AND THE CONTRIBUTOR "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR THE CONTRIBUTOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS DOCUMENT AND THE ASSOCIATED SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

πŸ’€ BUGS πŸ’€

following are major known bugs:

  • statistics on the number of collisions maintained by the fe driver is not accurate; the -i option of netstat(1) shows slightly less value than true number of collisions. so it's lying to you, just a little. πŸ™ˆ
  • more mbuf clusters are used than expected. the packet receive routine has an intended violation against the mbuf cluster allocation policy. the unnecessarily allocated clusters are freed within short lifetime, and it will not affect long term kernel memory usage. so it's messy but it cleans up after itself.
  • although XNS and IPX support is included in the driver, it has never been tested and it is expected to have a lot of bugs. πŸ’€

and that's the whole page, bestie! this one was published by Debian and last touched on October 24, 2018 β€” so if you're reading this on anything modern, remember: the driver's gone, but the lore lives on. bye babe πŸ’…βœ¨πŸŽ€

πŸ“¦ where this page comes from