This is a snapshot of a low-priority `work-in-progress' project of mine. Albeit HP's 100VG (100 Mbit/s `voice-grade' Ethernet) technology didn't win in the end, there are still a number of cards around for it, some of them 10 MBit/s only, some both 10 Mbit/s and 100 MBit/s VG. This is a very early snapshot, not meant as any form of a completed source. However, it's simply not sure when i'll find more time to complete it, so if anybody feels compelled by this source, feel free to contact me, and complete it. Alas, HP itself is not helpful at all in providing documentation, so they are certainly one of the reasons for why this project didn't get into better shape yet. The author of the Linux driver, Jaroslav Kysela , allowed us to redistribute our driver under a BSD copyright, but it was one of his early works so he couldn't help me much either. The co-author of the Linux driver (who implemented the busmaster DMA code there), Sieg- fried `Frieder' Loeffler , was very helpful with hints and even a loaner EISA board for testing. Thanks to both these guys here. The PCI driver basically works; i'm currently typing this on a machine connected to the Internet with a J2970 (10 Mbit/s) card. However, there's a still unexplained phenomenon where for about half of the received Ethernet frames, the card doesn't prepend the status and length information word to the packet as it ought to do. The current implementation of the driver has a gross hack to detect this situation, and obtain the packet length from another register. This seems to work well enough to allow for a telnet connection, and some light FTP traffic. I've also observed a number of panics in ether_output() when attempting to do heavy NFS traffic though. All these tests were done solely on FreeBSD 3.0-current systems of several vintages. Anyway, as of finishing this writing, i'm typing it using the driver on a 2.2.5-BETA system, as a proof of function. There's something wrong with the EISA interface still. The driver doesn't send anything useful, but i can already run tcpdump on it, and see the packets on the wire. The ISA interface hasn't been written at all, but it should not be too difficult to derive it from the PCI and EISA wrappers. In order to use the driver (on PCI), just do cd /usr/src mkdir sys/dev/hp100vg zcat /cdrom/xperimnt/hp100vg/hp100vg-sysdiff.gz | patch ...and add device hp0 to your kernel config file. Feedback is welcome, as well as volunteers to complete the task. Dresden, October 15, 1997 Jörg Wunsch