summaryrefslogblamecommitdiffstats
path: root/private/ntos/ndis/madge/driver/mdgmport.upd
blob: 62ca51952af75e22b0db365108db2af5b1ac3485 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553








































































































































































































































































































































































































































































































































































                                                                                 
/***************************************************************************
*
* 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 **********************************************/