Patches for 3c59x and vortex-diag

3c59x.c patches

Note: The Scyld driver has VLAN support since 2002.

This patch adds support for variable MTU and VLAN to the 3c59x driver for kernel 2.4.18 (version LK 1.1.16). The patched driver can be downloaded here. Some remarks:

vortex-diag patches

Note: Setting the default media is available in recent versions (starting sometimes in 2002) of the original vortex-diag from Scyld.

This patch adds support to vortex-diag 2.05 for enabling/disabling the Boot PROM and setting a default media. The values used to rewrite the EEPROM have been obtained from the documentation as well as from watching what modifications are done by 3Com's DOS based 3c90xcfg.exe tool.

WARNING: By modifying the EEPROM, the card can be brought in a state where it is not able to start its operation properly. Because of this, vortex-diag does not write EEPROM by default, instead it shows what are the differences between the new and the old (already existent) content. To force vortex-diag to write the new values, the -w command line option has to be used.

Boot PROM (on cards that contain it - usually name ending in "M" from Manageable) may contain executable code (like PXE) to enable booting over network. If this feature is present, during the boot process connection to a network needs to be present; if one is not present or no suitable server (DHCP and PXE for example) is found, the booting process is slowed down while waiting for a timeout after which either the booting process continues from other boot devices (like disks) or it is restarted, effectively creating a loop. Using this patch, the Boot PROM can be disabled or enabled at will.


	vortex-diag -P 0 -w		# to disable the Boot PROM

	vortex-diag -P 1 -w		# to enable the Boot PROM

Default media is the media type (Autonegotiate/NWAY or a combination of speed - 10 or 100 MBit/s - and duplex - half or full) that is used when the card finishes the reset sequence; when the driver starts, it can use this media type or choose another one. When no module options are specified, the Linux driver honours this default media.
This patch contains however only the core code but not the user interface as that raised some problems that I didn't know how to solve: the *-diag family shares code and command line options and I didn't want to have vortex-diag diverge from the others (and probably Don wouldn't have liked it anyway 8-)).
The patch operates based on several variables that have to be set by the user interface code: