/*************************************************************************** * * MDGMPORT.UPD * * Update log and version information for FastMAC Plus based NDIS 3.0 * miniport driver. * * Copyright (c) Madge Networks Ltd 1994 * * COMPANY CONFIDENTIAL * * Created: 20/06/1994 * ****************************************************************************/ /*--------------------------------------------------------------------------- | | Helper macro to make a DWORD. | ---------------------------------------------------------------------------*/ #define MAKE_DWORD(a, b, c, d) \ ((((DWORD) (a)) << 24) + \ (((DWORD) (b)) << 16) + \ (((DWORD) (c)) << 8 ) + \ (((DWORD) (d)) )) /*--------------------------------------------------------------------------- | | Version number. | ---------------------------------------------------------------------------*/ // // Define both a string and a comma separated list of numbers. These will be // used by the resource compiler when version stamping the driver file. // #define MADGE_NT_VERSION 2,04,30,00 #define MADGE_NT_VERSION_STR "2.04.30" #define MADGE_NT_VERSION_DWORD MAKE_DWORD(2, 4, 30, 0) #define _IS_ALPHA // Define if alpha version. /*--------------------------------------------------------------------------- | | Compile time string definitions identifying driver type. Used in one of | the request calls (OID_GEN_VENDOR_DESCRIPTION). | |--------------------------------------------------------------------------*/ #if NDIS_NT #define MADGE_NT_NAME "MdgMPort" #define MADGE_DRIVER_NAME NDIS_STRING_CONST("MdgMPort"); #define MADGE_FMP_NAME NDIS_STRING_CONST("MDGMPORT.BIN"); #endif #if DBG #define _DRIVER_PREFIX "DEBUG_MADGE_NDIS3_DRIVER:" #else #define _DRIVER_PREFIX "MADGE_NDIS3_DRIVER:" #endif #define DRIVER_VERSION \ _DRIVER_PREFIX##" "##MADGE_NT_NAME##" "##MADGE_NT_VERSION_STR /*--------------------------------------------------------------------------- Ý Ý Product instance identification string. Ý ---------------------------------------------------------------------------*/ #ifdef _IS_ALPHA #define NT_PRODUCT_INSTANCE_ID "MDGMPORT v"##MADGE_NT_VERSION_STR #else #define NT_PRODUCT_INSTANCE_ID "MDGMPORT.SYS v"##MADGE_NT_VERSION_STR #endif /*--------------------------------------------------------------------------- | | String for identification by MVER. | |--------------------------------------------------------------------------*/ #define MVER_STRING \ "VeRsIoN="##MADGE_NT_NAME##" "##MADGE_NT_VERSION_STR /*--------------------------------------------------------------------------- | | Update history. | |---------------------------------------------------------------------------- 2.04.30 10/10/1995 PBA Source to be shipped to Microsoft. This is the LSS 4.31 build with support added for non-intel platforms. 2.04.01-.29 Reserved for 4.3(1) maintanance. 2.04 21/07/1995 PBA Re-released for 4.3(1) with PCI-TI DMA/DIO fix. 2.03.01-.49 Reserved for 4.3(1) maintanance. 2.03.01 14/07/1995 PBA Now uses FTK 2.21.11 which has software handshakes for all PCI cards in pseduo DMA mode. There is a race condition on a PCI bus whereby SWHLDA gets "stuck" and a pending pseudo DMA starts before the host tells the adapter to start it. FTK 2.21.11 also fixes a bug in the RAP 1B MMIO code where we could erroneously do an MMIO transfer if we were on a shared interrupt. FTK 2.21.11 also fixes a PCI-IT DMA problem. We were not checking if pseudo DMA was enabled in the interrupt handler and because the interrupt handler is called for real DMA should SWHRQ be set we would do some erroneous pseudo DMA processing. 2.03 30/06/1995 PBA Hardware thread released for LSS 4.3(1) with support for PCI-TI adapters and untested support for PCI-Abyss adapters. Uses FTK 2.21.07 and FMPLUS 1.36. 2.02 Used for non-intel thread drivied from LSS 4.30. 2.01.03 12/05/1995 PBA Now uses FTK 2.21.02 that can cope with the stray initialisation interrupt generated by some socket controllers. 2.01.02 07/04/1995 PBA Now uses FTK 2.21.01 and FastMAC Plus 1.34.10 which have an extended handshake on transmit MMIO to avoid a SAM upload/DIO race condition. 2.01.01 05/04/1995 PBA Power PC build. Only tested on ISA and PCI adapters. Only works in PIO mode. 2.02.01 - .49 Reserved for 4.3(0 and/or PnP) maintenance. 2.01 02/02/1995 PBA Released for 4.3(0 and/or PnP). Any previous 4.3(x) threads are now dead. 2.00.61 02/02/1995 PBA Now uses FastMAC Plus 1.28. Given to DaveF for Chicago testing and possible shipping to Microsoft for M8 and/or NT 3.51. 2.00.60 01/02/1995 PBA Windows95 build 310 always returns the native bus type of the PC rather than the type of the bus the adapter is in. To get around the problem we now read the bus type from the wrapper and then override the value if we find an adapter type parameter in the registry. 2.00.59 31/01/1995 PBA The Windows95 wrapper now supports the NdisReadPciSlotInformation so we can now have a binary compatible build. The register parameter "PlatformType" is used to determine the OS type the driver is running on. Also allowed "IoBaseAddress" to be used instead of "IoLocation" for forwards compatibility with NT 3.51. 2.00.58 24/01/1995 PBA Uses FTK 2.20.26 that fixes a problem where the software handshake was not being enabled properly for PCMCIA adapters. 2.00.57 12/01/1995 PBA Given to central support to fix PRF 2841. Uses FastMAC Plus 1.20. 2.00.56 12/01/1995 PBA Now uses FTK 2.20.25 that has a fix to avoid driver_remove_adapter deallocating the FastMAC Plus dma test buffer when it has not been allocated. 2.00.55 12/01/1995 PBA Now deregister shutdown handler in MadgeCleanupAdapter to avoid the odd blue screen when MadgeShutdown was called after we had freed the adapter structure. 2.00.54 12/01/1995 PBA Now uses FTK 2.20.24 that allows the driver to run on none Madge adapters if #define MADGIC_BIT 0x8000 is present in user.h. 2.00.53 11/01/1995 PBA Given to central support. Uses FastMAC Plus 1.25. 2.00.52 11/01/1995 PBA Given to central support to fix PRF 2841. i.e. Insufficient shared memory available when the driver is installed while NT is being installed to start the adapter during the NT installation. The solution is to add a shared memory aribitration routine which attempts to reduce the number of RX/TX slots and the maxiumum frame size until there is enough shared memory left. Uses FastMAC Plus 1.20. 2.00.51 06/01/1995 PBA Shipped source to FrancisT so he could build it on a MIPs. Uses FastMAC Plus 1.25. 2.00.50 03/01/1995 PBA Changed so that TX/RX buffers on use shared memory in DMA mode. PIO and MMIO use ordinary memory. Version numbers 1.50.01 to 1.99.99 are used for a FastMAC version. 1.07.52 13/12/1994 PBA No longer sets monitor contender in the open options. 1.07.51 09/12/1994 PBA Changed so that if we are compiling for a none Intel platform we allocate map registers properly. For Intel platforms we still use the cludge where we allocate the adapter block ourselves. This should solve the DEC AXP 2100 problem. 1.07.50 09/12/1994 PBA Revised to use the new FTK (2.20.xx). 1.07.01 - .49 Reserved for release 4.3(1) maintenance. 1.07 Reserved for release 4.3(1). Screwed up the versions numbers. Live development jumps to 1.07.50 1.06.52 29/11/1994 PBA Gave source to FrancisF to try and track down the DEC 2100 shared memory allocation problem. 1.06.51 24/11/1994 PBA Moved the clearing of the private SRB in progress flag out of the DPR and into the ISR as the DPR doesn't get called during the initialisation code under Chicago. Doing it this way avoids the nasty delay loop in the initialisation code when setting the product instance id. ---- Special --------------------------------------------------------------- 1.06.81 - Microsoft thread based on 1.06.80 splits here. 1.06.80 11/01/1994 PBA Same as 1.06.50 but accepts IoBaseAddress for the I/O location as well as IoLocation. Uses FastMAC Plus 1.20. Shipped to Jameel Hyder at Microsoft for NT 3.51 beta. ---- Special --------------------------------------------------------------- 1.06.70 13/12/1994 PBA This is an alpha for FrancisT derived directly from 1.06. The only differences are that it does not open in monitor contention mode, it uses map registers rather than the "horrible hack" and it is an NT only build. ---- Special --------------------------------------------------------------- 1.06.60 05/11/1994 PBA Same as 1.06.50 but with FastMAC Plus 1.24. ---- Special --------------------------------------------------------------- 1.06.50 23/11/1994 PBA Shipped to Microsoft for possible inclusion in the next NT and Chicago (M8) releases. Uses FastMAC Plus v1.20. This is based on 1.05.04. ---------------------------------------------------------------------------- 1.06.01 - .49 Reserved for release 4.3(0) maintenance. 1.06 Reserved for release 4.3(0). Source used for 4.3(1) split from the main thread here. 1.05.04 22/11/1994 PBA Changed the initialisation code to allow as few as 2 RX and 2 TX slots. Hopefully this will keep Microsoft quiet about shared memory allocation. 1.05.03 22/11/1994 PBA Added a shutdown handler. Note there is no documentation for this, just an example in the IBMTOK2i source. 1.05.02 21/11/1994 PBA Now re-tries bring-up up to 10 times. 1.05.01 18/11/1994 PBA Added code to set a product instance id in FastMAC plus. 1.05 18/11/1994 PBA Windows95 build for PnP field trials. Uses FastMAC Plus v1.20. 1.04.54 17/11/1994 PBA Modified the PnP HWI to set the channel ready bit if the active float channel ready bit is set in the PnP hardware features byte. 1.04.53 17/11/1994 PBA Added support for PCI under Chicago. This has to be done with a compile time switch because the NdisReadPciSlotInformation functions is not in the Chicago (M7) Ndis wrapper. If this function call is present then Chicago refuses to load the driver. We get the PCI configuration in Chicago by just reading from the registry. 1.04.52 16/11/1994 PBA Changed PnP HWI so that it knows about C30s. 1.04.51 07/11/1994 PBA Added PnP support. Chicago only at the moment. 1.04.50 04/11/1994 PBA Added PCMCIA support. Chicago only at the moment. Version numbers 1.04.01 to 1.04.49 are reserved for maintenance fixes to version 1.04. Live development continues at 1.04.50. 1.04 08/11/1994 PBA Cludged version use for PCI Releases. Uses FastMAC Plus v1.21 and hwi_pci.c from v1.03 archive. This means that the driver does MMIO on RX only (pseudo DMA on transmit). 1.03.07 07/11/1994 PBA Alpha version shipped to Gordon Cairns. Uses FastMAC Plus alpha v1.23.01 1.03.06 03/11/1994 PBA Now supports transmit and receive PCI MMIO. 1.03.05 02/11/1994 PBA Now sets the FTK error code if RX or TX buffers cannot be allocaed. 1.03.04 01/11/1994 PBA Arranged for the PCI cards to be defaulted to pseudo DMA if MMIO memory is not allocated or cannot be mapped into virtual memory. 1.03.03 01/11/1994 PBA Tidied up the error messages written to the event long as the new DDK has a better range of error codes. 1.03.02 11/10/1994 PBA Added a RingSpeed parameter to set the ringspeed(!). RingSpeed == 0 means don't care about the ring speed; use the default or use Force4/Force16. 1 means 4MBits. 2 means 16 MBits. RingSpeed overrides Force4/Force16. 1.03.01 7/10/1994 PD Added traffic monitoring code enabled by uncommenting line defining OID_MADGE_MONITOR in NDISMOD.H. 1.03 28/09/1994 PBA Released for PCI release 4.2(3). 1.02.53 28/09/1994 PBA Now uses FastMAC Plus 1.21. 1.02.52 28/09/1994 PBA Added PCI support. There is a new registry parameter called "NoMmio". By default MMIO is used as the PCI transfer method. If NoMmio is 1 then pseudo DMA is used. PCI adapters are identified by the "SlotNumber" parameter in the registry. This is actually set to the logical device number of the PCI adapter. If SlotNumber is set to 0xffff then the PCI bus is searched for the first unused Madge PCI adapter. 1.02.51 21/09/1994 PBA Added a Multiprocessor parameter. If this parameter is non-zero and the DMA channel is zero then multiprocessor safe PIO is used. The code which enabled multiprocessor safe PIO by when the DMA channel was set to 0x8000 has been left in for backwards compatibility. 1.02.50 12/09/1994 PBA The I/O location of the SIF registers is now recorded in the adapter structure at initialisation time by the hwi_xxx.c routines. Previously the SIF registers were assumed to be at fixed offsets from a SIF base address. This change is needed to support PCI adapters. Due to the problems with FastMAC Plus a re-release with a new FastMAC plus image will be needed for LSS 4.30. This release will be based on 1.02.xx which is the same as the earlier LSS 4.30 with some minor bug fixes. Live development continues with 1.02.50. 1.02.04 12/09/1994 PBA Now sets the "Madgic" bits in the FMP dowload header so that we will run on none Madge adapters. 1.02.03 12/09/1994 PBA Fixed a bug where we didn't check if the tx buffer memory allocation had succeeded. 1.02.02 31/08/1994 PBA Source shipped to Microsoft. 1.02.01 31/08/1994 PBA Noew only checks the major and minor version numbers of the download. 1.02 24/08/1994 PBA Re-released for 4.3. 1.01.03 16/08/1994 PBA Added comments about ring speed and duplicate addresses to the cannot open error message. 1.01.02 11/08/1994 PBA At the recommendation of Kevin Martin (Microsoft) the NDIS_MAC_OPTIONS_NO_LOOPBACK bit is no-longer set and we just allow the hardware to do loopback. 1.01.01 10/08/1994 PBA Added a flag to the adapter structure called UseMPSafePIO. If this flag is set then all of the DIO on the transmit and receive paths is encapsulated in functions invoked by NdisMSynchronizeWithInterrupt to protect the DIO from PIO interrupts happening on another processor in a multiprocessor machine. This flag is set if the DMA channel is specified as 0x8000 - see MadgeReadRegstry(). 1.01 22/07/1994 PBA Released for 4.30. 1.00.08 20/07/1994 PBA Added support for a Force16 option for ATULA adapters and Force16 and Force4 options for AT/P and ISA/C/P adapters. 1.00.07 19/07/1994 PBA Added an option to allow the adapter to be forced open (it was always done before, which is wrong). 1.00.06 04/07/1994 PBA Found a race condition with ATULA cards in PIO mode. We MUST claim interrupts (even if they are just for PIO) until the "DMA" initialisation test is over or sometimes WFWG (and possibly NT) permanently masks out our interrupts. 1.00.05 01/07/1994 PBA Alpha version for Gordon Cairns to test. 1.00.04 29/06/1994 PBA Used conditional assembly in sys_mem.c so that the I/O on Intel platforms does not involve any mapping (since the mapping always results in the port address anyway). 1.00.03 28/06/1994 PBA Now uses FTK common to all of the NDIS3 drivers. 1.00.02 28/06/1994 PBA Fixed a bug in the ChangeFilter function. We were carefully working out the new open options and passing the old options in the SRB. 1.00.01 21/06/1994 PBA First instance for MdgMPort. Derived from MdgNT v1.01.12 ---------------------------------------------------------------------------*/ /******** End of MDGMPORT.UPD **********************************************/