From mboxrd@z Thu Jan 1 00:00:00 1970 Date: Sat, 13 Dec 1997 12:04:26 -0600 From: G. David Butler gdb@dbSystems.com Subject: [9fans] Re: etherelnk3.c Topicbox-Message-UUID: 6d4dc734-eac8-11e9-9e20-41e7f4b1d025 Message-ID: <19971213180426.75p3QpcSNxxfyZXxfyoyM-eyh9rSNmeIq7ENT7_48m8@z> Hello All! I've just started the process of back porting the brazil etherelnk3 driver to Plan9. I would like some feedback from this list (9fans) about some of the porting issues. The primary goal of this effort is to get the support of the newer 3com cards into Plan9. I don't want to change the way it is used though. In other words, you still use ether0=type=3C509 in plan9.ini. It professes to support: /* * Etherlink III and Fast EtherLink adapters. * Product ID: * 9150 ISA 3C509[B] * 9050 ISA 3C509[B]-TP * 9450 ISA 3C509[B]-COMBO * 9550 ISA 3C509[B]-TPO * * 9350 EISA 3C579 * 9250 EISA 3C579-TP * * 5920 EISA 3C592-[TP|COMBO|TPO] * 5970 EISA 3C597-TX Fast Etherlink 10BASE-T/100BASE-TX * 5971 EISA 3C597-T4 Fast Etherlink 10BASE-T/100BASE-T4 * 5972 EISA 3C597-MII Fast Etherlink 10BASE-T/MII * * 5900 PCI 3C590-[TP|COMBO|TPO] * 5950 PCI 3C595-TX Fast Etherlink Shared 10BASE-T/100BASE-TX * 5951 PCI 3C595-T4 Fast Etherlink Shared 10BASE-T/100BASE-T4 * 5952 PCI 3C595-MII Fast Etherlink 10BASE-T/MII * * 9000 PCI 3C900-TPO Etherlink III XL PCI 10BASE-T * 9001 PCI 3C900-COMBO Etherlink III XL PCI 10BASE-T/10BASE-2/AUI * 9050 PCI 3C905-TX Fast Etherlink XL Shared 10BASE-T/100BASE-TX * 9051 PCI 3C905-T4 Fast Etherlink Shared 10BASE-T/100BASE-T4 * * 9058 PCMCIA 3C589[B]-[TP|COMBO] * * 627C MCA 3C529 * 627D MCA 3C529-TP */ After a quick perusal of the code, we have a big decision to make. This brazil driver does not use RingBuf, it uses Blocks. It also moves the Ctlr structure out of ether.h and into the driver .c file. The former change allows more data to be buffered and the latter allows driver specific data to be localized. These are both "good" things. Devether.c is not compatible with either of these changes, so we have to either update the entire ethernet subsystem to use Blocks, or make this driver use RingBufs and dirty the ether.h Card and Ctlr structures with the overhead of this driver. To limit the scope of this effort I vote for changing this driver to RingBufs and creating a structure in the driver that I will hang off Ctlr.Card.dp8390 since that is not used in the 3com stuff. By doing this I will also provide the changes I have done to support multiple ethernet cards. This affects other parts of the system, but at least we will get more functionality than we have now. Since this effort is for the Plan9 community, I didn't want remove functionality from this driver without a discussion. If it is decided that we update the ethernet subsystem, perhaps we can get Jim to provide further details to make future backports easier :-) In addition, we need someone to coordinate the overall structure and own devether.c and ether.h. Then we need volunteers to work on all of the current drivers to bring them into the fold. Are we ready to build a team to do Plan9 enhancement/development? We could use the FreeBSD model. Or do we want to leave the system as it is with Lucent as keeper of the updates? Comments? David Butler gdb@dbSystems.com