ENC624J6Net - A SANA-II driver for the Scratze card ENC624J6Net Copyright (C) 2018 Henryk Richter This driver is supposed to support ENC624J600 based ethernet on the ZII LAN IDE CP card designed by Matze (a1k.org), Buggs (a1k.org) and Scrat (a1k.org). Please see at the end of the file for information about licensing conditions. Installation: ------------- Installation of the driver is straightforward. Just copy the enc624j6net.device to devs:networks and enable the interface in your favorite TCP/IP stack as usual. There is a version for MC68020 or later (enc624j6net.device) and another version for 68000 (enc624j6net.device_68000). Choose the right one. So far, successful tests have been done with the free AmiTCP/IP 3.0b2, AmiTCP4.0-4.2, Genesis, MiamiDX and RoadShow. The Zorro board itself should be visible in early startup with manufacturer ID 2588 and card ID 123. Configuration options --------------------- No special configuration of the driver is necessary for normal operation. The configuration options outlined below are documented for tuning purposes. The config to be placed in ENVARC:sana2/enc624j6net.config and consists of a single line with parameters (much like CLI parameters). PRIORITY=PRI/K/N,BPS/K/N,MTU/K/N,FULLDUPLEX/S,FLOWCONTROL/S,TIMER/K/N,MULTICAST/S FULLDUPLEX - change Ethernet module into full duplex mode, caution: requires manual configuration of duplex mode on the switch, too. note: this switch should not be enabled in normal cases. The module features autoconfiguration that determines speed and duplex automatically. note(2): see miitool for changing speed/duplex settings at runtime. PRIORITY - server task priority (default 1) BPS - bit per seconds for statistics purposes MTU - maximum transmission unit (default 1500) MULTICAST - (V2.3+) override fine-grained automatic multicast filtering and accept all multicast frames (default: off) FLOWCONTROL - enable automatic flow control that throttles incoming data when the hardware buffer gets full example (useful for DSL via PPPoE with AmiTCP): echo "MTU=1492 PRIORITY=6" >ENVARC:sana2/enc624j6net.config Changelog: ---------- 2.3 - implemented fine grained multicast filter hashes 2.2 - some more tuning to RX/TX scheduling - added optional debug code to lowlevel routines - removed some obsolete bus transfers - uses DMACopyFromBuffer for IP-stacks supporting this capability - explicit 32 bit alignment for RX/TX to speed up ZIII transfers - added experimental support for MII interface to poll and modify speed and duplex settings on the fly - miitool added (see README.miitool) 2.00 - improved RX speed for buffer wraparound cases - some more safety checks for boards with unresponsive ENC chips (explicit card bus clear before verification of chip presence) - version bump 1.99 - fixed soft reset for ZIII firmware - re-enabled 32 Bit Buffer copies (unless Miami is active) - default server task priority for AmiTCP=6 (otherwise 0) - tuned RX/TX balancing to make RoadShow happy - added Packet Filter hook processing (needs testing) 1.98 - improved TX speed - precaution: soft-reset cards in detection loop to make sure that no bogus settings are left over after reset - optional: disable length check in Sana-II Device Query 1.97 - added New Style Device (NSD) commands - implemented SANA-II Device Query Extension 1.93 - recompiled using SAS/C, now 1kB smaller 1.91 - first Beta of completely rewritten driver - support for concurrent IP stacks - faster handling of statistics - multiple board support where applicable - workaround for Shapeshifter network plugin bug - GCC or VBCC as compiler (cross or native compilation) - faster lowlevel read/write Compilation / Development Notes ------------------------------- Either VBCC or GCC (tested with version 2.95 only) can be used for cross-compiles. General options for compiler usage can be found in Common.mk. Also, you might want to adapt the paths to your setup (PREFX,SYSINC). In addition to the regular NDK, the sana2.h is expected in the devices/ subdir of the includes. sana2.h may be found in the AmiTCP or Roadshow SDK, respectively. Call make -f Makefile.enc for building the device. VBCC note: When calling the GNU Make port supplied with ADE/GG natively on AmigaOS3, please make sure that "vc" is within the search path of "/bin/sh". Native compilation is also supported for GCC and VBCC. In addition, SAS/C smakefiles are provided for the hardware targets. Call smake -f smakefile.enc for native building with SAS/C. Conceptually, the driver was meant to support multiple hardware targets. Therefore, it features a SANA-II frontend (device.c,deviceheader.c,deviceinit.c), a main server running in a task (server.c) and several hardware backends. A new hardware backend requires customized implementation of hw.c and hwprivate.h, along with additional hardware-specfic code, if needed. The device unit structure reserves three LONGS and three pointers for exclusive use by the hardware instance. Additional data for the hardware can be auto-allocated at device initialization time, if necessary. See "struct HWData" in hwprivate.h of existing backends. License: -------- This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see .