mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
553 lines
19 KiB
553 lines
19 KiB
/***************************************************************************
|
|
*
|
|
* 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 **********************************************/
|
|
|