Chameleon

Chameleon Commit Details

Date:2015-05-19 21:14:32 (8 years 11 months ago)
Author:ErmaC
Commit:2688
Parents: 2687
Message:Refactoring networking.c and correct typo.
Changes:
M/branches/ErmaC/Enoch/i386/libsaio/cpu.c
M/branches/ErmaC/Enoch/i386/libsaio/networking.c
M/branches/ErmaC/Enoch/i386/libsaio/device_inject.c

File differences

branches/ErmaC/Enoch/i386/libsaio/networking.c
3939
4040
4141
42
43
42
4443
4544
4645
47
4846
49
50
51
52
53
54
47
48
49
50
51
52
5553
5654
5755
......
7270
7371
7472
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
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
111109
112110
113111
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
133131
134132
135
136
133
134
137135
138136
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
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
179177
180178
181179
......
184182
185183
186184
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
203201
204202
205203
......
214212
215213
216214
217
218
215
216
219217
220
218
221219
222220
223221
......
227225
228226
229227
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
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
255253
256254
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
255
256
257
258
259
260
261
262
263
264
265
266
267
268
272269
270
273271
274
275
276
277
278
279
280
281
282
283272
284273
285274
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
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
325314
326315
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
343332
333
344334
335
336
337
345338
346
347
348
349
339
340
341
342
343
350344
345
346
351347
352
353
354
355
356
348
349
357350
358
359
360
361
351
352
362353
363
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
364371
365
372
373
366374
375
376
377
378
379
380
367381
368
369
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
370405
371
406
407
372408
373
409
410
411
412
413
374414
415
416
417
418
375419
376420
377421
378422
379
380
423
424
425
381426
427
428
382429
383430
384
431
432
385433
386434
387435
......
395443
396444
397445
398
399446
400447
401
402
403
448
449
450
451
452
453
454
455
456
404457
405
406
407
408
409
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
410477
411478
479
480
481
482
483
484
485
412486
413487
414488
415489
416
417
418
419490
491
420492
421
493
422494
495
496
497
498
499
500
501
423502
424503
425504
......
428507
429508
430509
431
510
432511
433512
434513
435
436
437
438
514
439515
440
441
516
442517
443
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
444537
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
538
539
460540
461541
462542
463
464543
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
544
545
484546
uint32_t builtin_set= 0;
uint8_t builtin= 0;
extern uint32_t devices_number;
//extern uint32_t onboard_number;
extern uint32_t location_number;
static network_device known_ethernet_cards[] =
{
// Realtek
{ PCI_VENDOR_ID_REALTEK, 0x8129, "Realtek 8129 Gigabit Ethernet" },
{ PCI_VENDOR_ID_REALTEK, 0x8136, "Realtek RTL8101E/RTL8102E PCI-E Fast Ethernet Controller" },
{ PCI_VENDOR_ID_REALTEK, 0x8139, "Realtek RTL8139/810x Family Fast Ethernet" },
{ PCI_VENDOR_ID_REALTEK, 0x8167, "Realtek 8169/8110 Gigabit Ethernet" },
{ PCI_VENDOR_ID_REALTEK, 0x8168, "Realtek RTL8111/8168 PCI-E Gigabit Ethernet" },
{ PCI_VENDOR_ID_REALTEK, 0x8169, "Realtek 8169/8110 Gigabit Ethernet" },
{ PCI_VENDOR_ID_REALTEK, 0x8129, "8129 Gigabit Ethernet" },
{ PCI_VENDOR_ID_REALTEK, 0x8136, "RTL8101E/RTL8102E PCI-E Fast Ethernet Controller" },
{ PCI_VENDOR_ID_REALTEK, 0x8139, "RTL8139/810x Family Fast Ethernet" },
{ PCI_VENDOR_ID_REALTEK, 0x8167, "8169/8110 Gigabit Ethernet" },
{ PCI_VENDOR_ID_REALTEK, 0x8168, "RTL8111/8168 PCI-E Gigabit Ethernet" },
{ PCI_VENDOR_ID_REALTEK, 0x8169, "8169/8110 Gigabit Ethernet" },
{ 0x1113, 0x1211, "Realtek RTL8139 Family Fast Ethernet" },
{ 0x1500, 0x1360, "Realtek RTL8139 Family Fast Ethernet" },
{ 0x021b, 0x8139, "Realtek RTL8139 Family Fast Ethernet" },
// Marvell
{ PCI_VENDOR_ID_MARVELL, 0x4320, "Marvell 88E8001 Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4340, "Marvell 88E8021 PCI-X IPMI Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4341, "Marvell 88E8022 PCI-X IPMI Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4342, "Marvell 88E8061 PCI-E IPMI Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4343, "Marvell 88E8062 PCI-E IPMI Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4344, "Marvell 88E8021 PCI-X IPMI Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4345, "Marvell 88E8022 PCI-X IPMI Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4346, "Marvell 88E8061 PCI-E IPMI Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4347, "Marvell 88E8062 PCI-E IPMI Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4350, "Marvell 88E8035 PCI-E Fast Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4351, "Marvell 88E8036 PCI-E Fast Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4352, "Marvell 88E8038 PCI-E Fast Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4353, "Marvell 88E8039 PCI-E Fast Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4354, "Marvell 88E8040 PCI-E Fast Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4355, "Marvell 88E8040T PCI-E Fast Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4356, "Marvell 88EC033 PCI-E Fast Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4357, "Marvell 88E8042 PCI-E Fast Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x435A, "Marvell 88E8048 PCI-E Fast Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4360, "Marvell 88E8052 PCI-E ASF Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4361, "Marvell 88E8050 PCI-E ASF Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4362, "Marvell 88E8053 PCI-E Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4363, "Marvell 88E8055 PCI-E Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4364, "Marvell 88E8056 PCI-E Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4365, "Marvell 8E8070 based Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4366, "Marvell 88EC036 PCI-E Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4367, "Marvell 88EC032 Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4368, "Marvell 88EC034 Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4369, "Marvell 88EC042 Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x436A, "Marvell 88E8058 PCI-E Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x436B, "Marvell 88E8071 PCI-E Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x436C, "Marvell 88E8072 PCI-E Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x436D, "Marvell 88E8055 PCI-E Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4370, "Marvell 88E8075 PCI-E Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4380, "Marvell 88E8057 PCI-E Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4381, "Marvell 88E8059 PCI-E Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4382, "Marvell 88E8079 PCI-E Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4320, "88E8001 Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4340, "88E8021 PCI-X IPMI Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4341, "88E8022 PCI-X IPMI Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4342, "88E8061 PCI-E IPMI Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4343, "88E8062 PCI-E IPMI Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4344, "88E8021 PCI-X IPMI Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4345, "88E8022 PCI-X IPMI Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4346, "88E8061 PCI-E IPMI Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4347, "88E8062 PCI-E IPMI Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4350, "88E8035 PCI-E Fast Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4351, "88E8036 PCI-E Fast Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4352, "88E8038 PCI-E Fast Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4353, "88E8039 PCI-E Fast Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4354, "88E8040 PCI-E Fast Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4355, "88E8040T PCI-E Fast Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4356, "88EC033 PCI-E Fast Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4357, "88E8042 PCI-E Fast Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x435A, "88E8048 PCI-E Fast Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4360, "88E8052 PCI-E ASF Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4361, "88E8050 PCI-E ASF Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4362, "88E8053 PCI-E Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4363, "88E8055 PCI-E Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4364, "88E8056 PCI-E Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4365, "8E8070 based Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4366, "88EC036 PCI-E Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4367, "88EC032 Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4368, "88EC034 Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4369, "88EC042 Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x436A, "88E8058 PCI-E Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x436B, "88E8071 PCI-E Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x436C, "88E8072 PCI-E Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x436D, "88E8055 PCI-E Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4370, "88E8075 PCI-E Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4380, "88E8057 PCI-E Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4381, "88E8059 PCI-E Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x4382, "88E8079 PCI-E Gigabit Ethernet Controller" },
//{ PCI_VENDOR_ID_MARVELL, 0x5005, "Belkin F5D5005 Gigabit Desktop Network PCI Card" },
// Broadcom
{ PCI_VENDOR_ID_BROADCOM, 0x1600, "Broadcom BCM5752 Gigabit Ethernet PCI Express" },
{ PCI_VENDOR_ID_BROADCOM, 0x1655, "Broadcom BCM5717 Gigabit Ethernet PCIe" },
{ PCI_VENDOR_ID_BROADCOM, 0x1656, "Broadcom BCM5718 Gigabit Ethernet PCIe" },
{ PCI_VENDOR_ID_BROADCOM, 0x1657, "Broadcom BCM5719 Gigabit Ethernet PCIe" },
{ PCI_VENDOR_ID_BROADCOM, 0x1659, "Broadcom BCM5721 Gigabit Ethernet PCI Express" },
{ PCI_VENDOR_ID_BROADCOM, 0x165A, "Broadcom BCM5722 Gigabit Ethernet PCI Express" },
{ PCI_VENDOR_ID_BROADCOM, 0x166A, "Broadcom BCM5780 Gigabit Ethernet" },
{ PCI_VENDOR_ID_BROADCOM, 0x1672, "Broadcom BCM5754M Gigabit Ethernet PCI Express" },
{ PCI_VENDOR_ID_BROADCOM, 0x1673, "Broadcom BCM5755M Gigabit Ethernet PCI Express" },
{ PCI_VENDOR_ID_BROADCOM, 0x167A, "Broadcom BCM5754 Gigabit Ethernet PCI Express" },
{ PCI_VENDOR_ID_BROADCOM, 0x167B, "Broadcom BCM5755 Gigabit Ethernet PCI Express" },
{ PCI_VENDOR_ID_BROADCOM, 0x1684, "Broadcom BCM5764M Gigabit Ethernet PCIe" },
{ PCI_VENDOR_ID_BROADCOM, 0x1691, "Broadcom BCM57788 Gigabit Ethernet PCIe" },
{ PCI_VENDOR_ID_BROADCOM, 0x1693, "Broadcom BCM5787M Gigabit Ethernet PCI Express" },
{ PCI_VENDOR_ID_BROADCOM, 0x169B, "Broadcom BCM5787 Gigabit Ethernet PCI Express" },
{ PCI_VENDOR_ID_BROADCOM, 0x16B4, "Broadcom BCM57765 Gigabit Ethernet PCIe" },
{ PCI_VENDOR_ID_BROADCOM, 0x16B5, "Broadcom BCM57785 Gigabit Ethernet PCIe" },
{ PCI_VENDOR_ID_BROADCOM, 0x1712, "Broadcom BCM5906 Fast Ethernet PCI Express" },
{ PCI_VENDOR_ID_BROADCOM, 0x1713, "Broadcom BCM5906M Fast Ethernet PCI Express" },
{ PCI_VENDOR_ID_BROADCOM, 0x1600, "BCM5752 Gigabit Ethernet PCI Express" },
{ PCI_VENDOR_ID_BROADCOM, 0x1655, "BCM5717 Gigabit Ethernet PCIe" },
{ PCI_VENDOR_ID_BROADCOM, 0x1656, "BCM5718 Gigabit Ethernet PCIe" },
{ PCI_VENDOR_ID_BROADCOM, 0x1657, "BCM5719 Gigabit Ethernet PCIe" },
{ PCI_VENDOR_ID_BROADCOM, 0x1659, "BCM5721 Gigabit Ethernet PCI Express" },
{ PCI_VENDOR_ID_BROADCOM, 0x165A, "BCM5722 Gigabit Ethernet PCI Express" },
{ PCI_VENDOR_ID_BROADCOM, 0x166A, "BCM5780 Gigabit Ethernet" },
{ PCI_VENDOR_ID_BROADCOM, 0x1672, "BCM5754M Gigabit Ethernet PCI Express" },
{ PCI_VENDOR_ID_BROADCOM, 0x1673, "BCM5755M Gigabit Ethernet PCI Express" },
{ PCI_VENDOR_ID_BROADCOM, 0x167A, "BCM5754 Gigabit Ethernet PCI Express" },
{ PCI_VENDOR_ID_BROADCOM, 0x167B, "BCM5755 Gigabit Ethernet PCI Express" },
{ PCI_VENDOR_ID_BROADCOM, 0x1684, "BCM5764M Gigabit Ethernet PCIe" },
{ PCI_VENDOR_ID_BROADCOM, 0x1691, "BCM57788 Gigabit Ethernet PCIe" },
{ PCI_VENDOR_ID_BROADCOM, 0x1693, "BCM5787M Gigabit Ethernet PCI Express" },
{ PCI_VENDOR_ID_BROADCOM, 0x169B, "BCM5787 Gigabit Ethernet PCI Express" },
{ PCI_VENDOR_ID_BROADCOM, 0x16B4, "BCM57765 Gigabit Ethernet PCIe" },
{ PCI_VENDOR_ID_BROADCOM, 0x16B5, "BCM57785 Gigabit Ethernet PCIe" },
{ PCI_VENDOR_ID_BROADCOM, 0x1712, "BCM5906 Fast Ethernet PCI Express" },
{ PCI_VENDOR_ID_BROADCOM, 0x1713, "BCM5906M Fast Ethernet PCI Express" },
// JMicron
{ PCI_VENDOR_ID_JMICRON, 0x0250, "JMicron JMC250 PCI Express Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_JMICRON, 0x0260, "JMicron JMC260 PCI Express Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_JMICRON, 0x0250, "JMC250 PCI Express Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_JMICRON, 0x0260, "JMC260 PCI Express Gigabit Ethernet Controller" },
// Intel
//{ PCI_VENDOR_ID_INTEL, 0x1000, "Intel 82542 Gigabit Ethernet Controller (Fiber)" },
{ PCI_VENDOR_ID_INTEL, 0x1029, "Intel 8255x Ethernet" },
{ PCI_VENDOR_ID_INTEL, 0x1030, "Intel 8255x Ethernet" },
{ PCI_VENDOR_ID_INTEL, 0x1031, "Intel 8255x Ethernet" },
{ PCI_VENDOR_ID_INTEL, 0x1032, "Intel 8255x Ethernet" },
{ PCI_VENDOR_ID_INTEL, 0x1033, "Intel 8255x Ethernet" },
{ PCI_VENDOR_ID_INTEL, 0x1034, "Intel 8255x Ethernet" },
{ PCI_VENDOR_ID_INTEL, 0x1038, "Intel 8255x Ethernet" },
{ PCI_VENDOR_ID_INTEL, 0x1039, "Intel 8255x Ethernet" },
{ PCI_VENDOR_ID_INTEL, 0x103A, "Intel 8255x Ethernet" },
{ PCI_VENDOR_ID_INTEL, 0x103B, "Intel 8255x Ethernet" },
{ PCI_VENDOR_ID_INTEL, 0x103C, "Intel 8255x Ethernet" },
{ PCI_VENDOR_ID_INTEL, 0x103D, "Intel 8255x Ethernet" },
{ PCI_VENDOR_ID_INTEL, 0x103E, "Intel 8255x Ethernet" },
//{ PCI_VENDOR_ID_INTEL, 0x1049, "Intel 82566MM Gigabit Network Connection" },
//{ PCI_VENDOR_ID_INTEL, 0x104A, "Intel 82566DM Gigabit Network Connection" },
//{ PCI_VENDOR_ID_INTEL, 0x104B, "Intel 82566DC Gigabit Network Connection" },
//{ PCI_VENDOR_ID_INTEL, 0x104C, "Intel 82562V 10/100 Network Connection" },
//{ PCI_VENDOR_ID_INTEL, 0x104D, "Intel 82566MC Gigabit Network Connection" },
{ PCI_VENDOR_ID_INTEL, 0x1050, "Intel 82562EZ 10/100 Ethernet Controller" },
{ PCI_VENDOR_ID_INTEL, 0x1051, "Intel 82801EB/ER (ICH5/ICH5R) integrated LAN Controller" },
{ PCI_VENDOR_ID_INTEL, 0x1052, "Intel PRO/100 VE Network Connection" },
{ PCI_VENDOR_ID_INTEL, 0x1053, "Intel PRO/100 VE Network Connection" },
{ PCI_VENDOR_ID_INTEL, 0x1054, "Intel PRO/100 VE Network Connection" },
{ PCI_VENDOR_ID_INTEL, 0x1055, "Intel PRO/100 VE Network Connection" },
{ PCI_VENDOR_ID_INTEL, 0x1056, "Intel PRO/100 VE Network Connection" },
{ PCI_VENDOR_ID_INTEL, 0x1057, "Intel PRO/100 VE Network Connection" },
{ PCI_VENDOR_ID_INTEL, 0x1059, "Intel 82551QM Ethernet Controller" },
//{ PCI_VENDOR_ID_INTEL, 0x105b "Intel 82546GB Gigabit Ethernet Controller (Copper)" },
//{ PCI_VENDOR_ID_INTEL, 0x105E, "Intel 82546GB Gigabit Ethernet Controller" },
//{ PCI_VENDOR_ID_INTEL, 0x105F, "Intel 82571EB Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_INTEL, 0x1060, "Intel 82571EB Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_INTEL, 0x1064, "Intel 82562ET/EZ/GT/GZ - PRO/100 VE (LOM) Ethernet Controller" },
{ PCI_VENDOR_ID_INTEL, 0x1065, "Intel 82562ET/EZ/GT/GZ - PRO/100 VE Ethernet Controller" },
{ PCI_VENDOR_ID_INTEL, 0x1066, "Intel 82562 EM/EX/GX - PRO/100 VM (LOM) Ethernet Controller" },
{ PCI_VENDOR_ID_INTEL, 0x1067, "Intel 82562 EM/EX/GX - PRO/100 VM Ethernet Controller" },
{ PCI_VENDOR_ID_INTEL, 0x1068, "Intel 82562ET/EZ/GT/GZ - PRO/100 VE (LOM) Ethernet Controller Mobile" },
{ PCI_VENDOR_ID_INTEL, 0x1069, "Intel 82562EM/EX/GX - PRO/100 VM (LOM) Ethernet Controller Mobile" },
{ PCI_VENDOR_ID_INTEL, 0x106A, "Intel 82562G - PRO/100 VE (LOM) Ethernet Controller" },
{ PCI_VENDOR_ID_INTEL, 0x106B, "Intel 82562G - PRO/100 VE Ethernet Controller Mobile" },
//{ PCI_VENDOR_ID_INTEL, 0x1000, "82542 Gigabit Ethernet Controller (Fiber)" },
{ PCI_VENDOR_ID_INTEL, 0x1029, "8255x Ethernet" },
{ PCI_VENDOR_ID_INTEL, 0x1030, "8255x Ethernet" },
{ PCI_VENDOR_ID_INTEL, 0x1031, "8255x Ethernet" },
{ PCI_VENDOR_ID_INTEL, 0x1032, "8255x Ethernet" },
{ PCI_VENDOR_ID_INTEL, 0x1033, "8255x Ethernet" },
{ PCI_VENDOR_ID_INTEL, 0x1034, "8255x Ethernet" },
{ PCI_VENDOR_ID_INTEL, 0x1038, "8255x Ethernet" },
{ PCI_VENDOR_ID_INTEL, 0x1039, "8255x Ethernet" },
{ PCI_VENDOR_ID_INTEL, 0x103A, "8255x Ethernet" },
{ PCI_VENDOR_ID_INTEL, 0x103B, "8255x Ethernet" },
{ PCI_VENDOR_ID_INTEL, 0x103C, "8255x Ethernet" },
{ PCI_VENDOR_ID_INTEL, 0x103D, "8255x Ethernet" },
{ PCI_VENDOR_ID_INTEL, 0x103E, "8255x Ethernet" },
//{ PCI_VENDOR_ID_INTEL, 0x1049, "82566MM Gigabit Network Connection" },
//{ PCI_VENDOR_ID_INTEL, 0x104A, "82566DM Gigabit Network Connection" },
//{ PCI_VENDOR_ID_INTEL, 0x104B, "82566DC Gigabit Network Connection" },
//{ PCI_VENDOR_ID_INTEL, 0x104C, "82562V 10/100 Network Connection" },
//{ PCI_VENDOR_ID_INTEL, 0x104D, "82566MC Gigabit Network Connection" },
{ PCI_VENDOR_ID_INTEL, 0x1050, "82562EZ 10/100 Ethernet Controller" },
{ PCI_VENDOR_ID_INTEL, 0x1051, "82801EB/ER (ICH5/ICH5R) integrated LAN Controller" },
{ PCI_VENDOR_ID_INTEL, 0x1052, "PRO/100 VE Network Connection" },
{ PCI_VENDOR_ID_INTEL, 0x1053, "PRO/100 VE Network Connection" },
{ PCI_VENDOR_ID_INTEL, 0x1054, "PRO/100 VE Network Connection" },
{ PCI_VENDOR_ID_INTEL, 0x1055, "PRO/100 VE Network Connection" },
{ PCI_VENDOR_ID_INTEL, 0x1056, "PRO/100 VE Network Connection" },
{ PCI_VENDOR_ID_INTEL, 0x1057, "PRO/100 VE Network Connection" },
{ PCI_VENDOR_ID_INTEL, 0x1059, "82551QM Ethernet Controller" },
//{ PCI_VENDOR_ID_INTEL, 0x105b "82546GB Gigabit Ethernet Controller (Copper)" },
//{ PCI_VENDOR_ID_INTEL, 0x105E, "82546GB Gigabit Ethernet Controller" },
//{ PCI_VENDOR_ID_INTEL, 0x105F, "82571EB Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_INTEL, 0x1060, "82571EB Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_INTEL, 0x1064, "82562ET/EZ/GT/GZ - PRO/100 VE (LOM) Ethernet Controller" },
{ PCI_VENDOR_ID_INTEL, 0x1065, "82562ET/EZ/GT/GZ - PRO/100 VE Ethernet Controller" },
{ PCI_VENDOR_ID_INTEL, 0x1066, "82562 EM/EX/GX - PRO/100 VM (LOM) Ethernet Controller" },
{ PCI_VENDOR_ID_INTEL, 0x1067, "82562 EM/EX/GX - PRO/100 VM Ethernet Controller" },
{ PCI_VENDOR_ID_INTEL, 0x1068, "82562ET/EZ/GT/GZ - PRO/100 VE (LOM) Ethernet Controller Mobile" },
{ PCI_VENDOR_ID_INTEL, 0x1069, "82562EM/EX/GX - PRO/100 VM (LOM) Ethernet Controller Mobile" },
{ PCI_VENDOR_ID_INTEL, 0x106A, "82562G - PRO/100 VE (LOM) Ethernet Controller" },
{ PCI_VENDOR_ID_INTEL, 0x106B, "82562G - PRO/100 VE Ethernet Controller Mobile" },
{ PCI_VENDOR_ID_INTEL, 0x1075, "82547GI Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_INTEL, 0x1076, "82541GI Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_INTEL, 0x1077, "82541GI Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_INTEL, 0x107a, "82546GB Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_INTEL, 0x107b, "82546GB Gigabit Ethernet Controller" },
{ PCI_VENDOR_ID_INTEL, 0x107c, "82541PI Gigabit Ethernet Controller" },
//{ PCI_VENDOR_ID_INTEL, 0x107D, "Intel 82572EI Gigabit Ethernet Controller (Copper)" },
//{ PCI_VENDOR_ID_INTEL, 0x107E, "Intel 82572EI Gigabit Ethernet Controller (Fiber)" },
//{ PCI_VENDOR_ID_INTEL, 0x107F, "Intel 82572EI Gigabit Ethernet Controller" },
//{ PCI_VENDOR_ID_INTEL, 0x108a, "Intel 82546GB Gigabit Ethernet Controller" },
//{ PCI_VENDOR_ID_INTEL, 0x108B, "Intel 82573V Gigabit Ethernet Controller (Copper)" },
//{ PCI_VENDOR_ID_INTEL, 0x108C, "Intel 82573E Gigabit Ethernet Controller (Copper)" },
{ PCI_VENDOR_ID_INTEL, 0x1091, "Intel PRO/100 VM Network Connection" },
{ PCI_VENDOR_ID_INTEL, 0x1092, "Intel PRO/100 VE Network Connection" },
{ PCI_VENDOR_ID_INTEL, 0x1093, "Intel PRO/100 VM Network Connection" },
{ PCI_VENDOR_ID_INTEL, 0x1094, "Intel PRO/100 VE Network Connection" },
{ PCI_VENDOR_ID_INTEL, 0x1095, "Intel PRO/100 VE Network Connection" },
//{ PCI_VENDOR_ID_INTEL, 0x1096, "Intel 80003ES2LAN Gigabit Ethernet Controller (Copper)" },
//{ PCI_VENDOR_ID_INTEL, 0x1098, "Intel 80003ES2LAN Gigabit Ethernet Controller (Serdes)" },
//{ PCI_VENDOR_ID_INTEL, 0x109A, "Intel 82573L Gigabit Ethernet Controller" },
//{ PCI_VENDOR_ID_INTEL, 0x10A4, "Intel 82571EB Gigabit Ethernet Controller" },
//{ PCI_VENDOR_ID_INTEL, 0x10A5, "Intel 82571EB Gigabit Ethernet Controller (Fiber)" },
//{ PCI_VENDOR_ID_INTEL, 0x107D, "82572EI Gigabit Ethernet Controller (Copper)" },
//{ PCI_VENDOR_ID_INTEL, 0x107E, "82572EI Gigabit Ethernet Controller (Fiber)" },
//{ PCI_VENDOR_ID_INTEL, 0x107F, "82572EI Gigabit Ethernet Controller" },
//{ PCI_VENDOR_ID_INTEL, 0x108a, "82546GB Gigabit Ethernet Controller" },
//{ PCI_VENDOR_ID_INTEL, 0x108B, "82573V Gigabit Ethernet Controller (Copper)" },
//{ PCI_VENDOR_ID_INTEL, 0x108C, "82573E Gigabit Ethernet Controller (Copper)" },
{ PCI_VENDOR_ID_INTEL, 0x1091, "PRO/100 VM Network Connection" },
{ PCI_VENDOR_ID_INTEL, 0x1092, "PRO/100 VE Network Connection" },
{ PCI_VENDOR_ID_INTEL, 0x1093, "PRO/100 VM Network Connection" },
{ PCI_VENDOR_ID_INTEL, 0x1094, "PRO/100 VE Network Connection" },
{ PCI_VENDOR_ID_INTEL, 0x1095, "PRO/100 VE Network Connection" },
//{ PCI_VENDOR_ID_INTEL, 0x1096, "80003ES2LAN Gigabit Ethernet Controller (Copper)" },
//{ PCI_VENDOR_ID_INTEL, 0x1098, "80003ES2LAN Gigabit Ethernet Controller (Serdes)" },
//{ PCI_VENDOR_ID_INTEL, 0x109A, "82573L Gigabit Ethernet Controller" },
//{ PCI_VENDOR_ID_INTEL, 0x10A4, "82571EB Gigabit Ethernet Controller" },
//{ PCI_VENDOR_ID_INTEL, 0x10A5, "82571EB Gigabit Ethernet Controller (Fiber)" },
//{ PCI_VENDOR_ID_INTEL, 0x10BA, "Intel " },
//{ PCI_VENDOR_ID_INTEL, 0x10BC, "Intel " },
//{ PCI_VENDOR_ID_INTEL, 0x10B9, "Intel " },
//{ PCI_VENDOR_ID_INTEL, 0x10CB, "Intel " },
//{ PCI_VENDOR_ID_INTEL, 0x10CC, "Intel " },
//{ PCI_VENDOR_ID_INTEL, 0x10CD, "Intel " },
{ PCI_VENDOR_ID_INTEL, 0x10CE, "Intel 82567V-2 Gigabit Network Connection" },
{ PCI_VENDOR_ID_INTEL, 0x10D3, "Intel 82574L Gigabit Network Connection" },
{ PCI_VENDOR_ID_INTEL, 0x10CE, "82567V-2 Gigabit Network Connection" },
{ PCI_VENDOR_ID_INTEL, 0x10D3, "82574L Gigabit Network Connection" },
//{ PCI_VENDOR_ID_INTEL, 0x10D5, "Intel " },
{ PCI_VENDOR_ID_INTEL, 0x10d6, "Intel 82575GB Gigabit Network Connection" },
{ PCI_VENDOR_ID_INTEL, 0x10d6, "82575GB Gigabit Network Connection" },
//{ PCI_VENDOR_ID_INTEL, 0x10D9, "Intel " },
//{ PCI_VENDOR_ID_INTEL, 0x10DA, "Intel " },
//{ PCI_VENDOR_ID_INTEL, 0x10DE, "Intel " },
//{ PCI_VENDOR_ID_INTEL, 0x10EB, "Intel " },
//{ PCI_VENDOR_ID_INTEL, 0x10EF, "Intel " },
//{ PCI_VENDOR_ID_INTEL, 0x10F5, "Intel " },
//{ PCI_VENDOR_ID_INTEL, 0x10F6, "Intel " },
{ PCI_VENDOR_ID_INTEL, 0x10F0, "Intel 82578DC Gigabit Network Connection" },
{ PCI_VENDOR_ID_INTEL, 0x10FE, "Intel 82552 10/100 Network Connection" },
{ PCI_VENDOR_ID_INTEL, 0x1209, "Intel 8255xER/82551IT Fast Ethernet Controller" },
{ PCI_VENDOR_ID_INTEL, 0x1227, "Intel 82865 EtherExpress PRO/100A" },
{ PCI_VENDOR_ID_INTEL, 0x1228, "Intel 82556 EtherExpress PRO/100 Smart" },
{ PCI_VENDOR_ID_INTEL, 0x1229, "Intel 82557/8/9/0/1 Ethernet Pro 100" },
//{ PCI_VENDOR_ID_INTEL, 0x1501, "Intel 82567V-3 Gigabit Network Connection" },
{ PCI_VENDOR_ID_INTEL, 0x1502, "Intel 82579LM Gigabit Network Connection" },
{ PCI_VENDOR_ID_INTEL, 0x1503, "Intel 82579V Gigabit Network Controller" },
//{ PCI_VENDOR_ID_INTEL, 0x150C, "Intel 82583V Gigabit Network Connection" },
//{ PCI_VENDOR_ID_INTEL, 0x1525, "Intel 82567V-4 Gigabit Network Connection" },
{ PCI_VENDOR_ID_INTEL, 0x153A, "Intel Ethernet Connection I217-LM" },
{ PCI_VENDOR_ID_INTEL, 0x153B, "Intel Ethernet Connection I217-V" },
{ PCI_VENDOR_ID_INTEL, 0x1559, "Intel Ethernet Connection I218-V" },
{ PCI_VENDOR_ID_INTEL, 0x155A, "Intel Ethernet Connection I218-LM" },
{ PCI_VENDOR_ID_INTEL, 0x15A0, "Intel Ethernet Connection (2) I218-LM" },
{ PCI_VENDOR_ID_INTEL, 0x15A1, "Intel Ethernet Connection (2) I218-V" },
{ PCI_VENDOR_ID_INTEL, 0x15A2, "Intel Ethernet Connection (3) I218-LM" },
{ PCI_VENDOR_ID_INTEL, 0x15A3, "Intel Ethernet Connection (3) I218-V" },
{ PCI_VENDOR_ID_INTEL, 0x2449, "Intel 82801BA/BAM/CA/CAM Ethernet Controller" },
{ PCI_VENDOR_ID_INTEL, 0x2459, "Intel 82801E Ethernet Controller" },
{ PCI_VENDOR_ID_INTEL, 0x245D, "Intel 82801E Ethernet Controller" },
{ PCI_VENDOR_ID_INTEL, 0x27DC, "Intel NM10/ICH7 Family LAN Controller" },
//{ PCI_VENDOR_ID_INTEL, 0x294C, "Intel 82566DC-2 Gigabit Network Connection" },
//{ PCI_VENDOR_ID_INTEL, 0x10F6, "" },
{ PCI_VENDOR_ID_INTEL, 0x10F0, "82578DC Gigabit Network Connection" },
{ PCI_VENDOR_ID_INTEL, 0x10FE, "82552 10/100 Network Connection" },
{ PCI_VENDOR_ID_INTEL, 0x1209, "8255xER/82551IT Fast Ethernet Controller" },
{ PCI_VENDOR_ID_INTEL, 0x1227, "82865 EtherExpress PRO/100A" },
{ PCI_VENDOR_ID_INTEL, 0x1228, "82556 EtherExpress PRO/100 Smart" },
{ PCI_VENDOR_ID_INTEL, 0x1229, "82557/8/9/0/1 Ethernet Pro 100" },
//{ PCI_VENDOR_ID_INTEL, 0x1501, "82567V-3 Gigabit Network Connection" },
{ PCI_VENDOR_ID_INTEL, 0x1502, "82579LM Gigabit Network Connection" },
{ PCI_VENDOR_ID_INTEL, 0x1503, "82579V Gigabit Network Controller" },
//{ PCI_VENDOR_ID_INTEL, 0x150C, "82583V Gigabit Network Connection" },
//{ PCI_VENDOR_ID_INTEL, 0x1525, "82567V-4 Gigabit Network Connection" },
{ PCI_VENDOR_ID_INTEL, 0x153A, "Ethernet Connection I217-LM" },
{ PCI_VENDOR_ID_INTEL, 0x153B, "Ethernet Connection I217-V" },
{ PCI_VENDOR_ID_INTEL, 0x1559, "Ethernet Connection I218-V" },
{ PCI_VENDOR_ID_INTEL, 0x155A, "Ethernet Connection I218-LM" },
{ PCI_VENDOR_ID_INTEL, 0x15A0, "Ethernet Connection (2) I218-LM" },
{ PCI_VENDOR_ID_INTEL, 0x15A1, "Ethernet Connection (2) I218-V" },
{ PCI_VENDOR_ID_INTEL, 0x15A2, "Ethernet Connection (3) I218-LM" },
{ PCI_VENDOR_ID_INTEL, 0x15A3, "Ethernet Connection (3) I218-V" },
{ PCI_VENDOR_ID_INTEL, 0x2449, "82801BA/BAM/CA/CAM Ethernet Controller" },
{ PCI_VENDOR_ID_INTEL, 0x2459, "82801E Ethernet Controller" },
{ PCI_VENDOR_ID_INTEL, 0x245D, "82801E Ethernet Controller" },
{ PCI_VENDOR_ID_INTEL, 0x27DC, "NM10/ICH7 Family LAN Controller" },
//{ PCI_VENDOR_ID_INTEL, 0x294C, "82566DC-2 Gigabit Network Connection" },
//Atheros (Qualcomm)
{ PCI_VENDOR_ID_QUALCOMM, 0x1026, "Atheros AR8121/AR8113/AR8114 Ethernet" },
{ PCI_VENDOR_ID_QUALCOMM, 0x1062, "Atheros AR8132 Fast Ethernet" },
{ PCI_VENDOR_ID_QUALCOMM, 0x1063, "Atheros AR8131 Gigabit Ethernet" },
{ PCI_VENDOR_ID_QUALCOMM, 0x1066, "Atheros AR8121/AR8113/AR8114 Ethernet" },
{ PCI_VENDOR_ID_QUALCOMM, 0x1067, "Atheros L1c Gigabit Ethernet" },
{ PCI_VENDOR_ID_QUALCOMM, 0x1073, "Atheros AR8151 v1.0 Gigabit 1000" },
{ PCI_VENDOR_ID_QUALCOMM, 0x1083, "Atheros GbE LAN chip (10/100/1000 Mbit)" },
{ PCI_VENDOR_ID_QUALCOMM, 0x1090, "Atheros AR8162 Fast Ethernet" },
{ PCI_VENDOR_ID_QUALCOMM, 0x1091, "Atheros AR8161 Gigabit Ethernet" },
{ PCI_VENDOR_ID_QUALCOMM, 0x10a0, "Atheros QCA8172 Fast Ethernet" },
{ PCI_VENDOR_ID_QUALCOMM, 0x10a1, "Atheros QCA8171 Gigabit Ethernet" },
{ PCI_VENDOR_ID_QUALCOMM, 0x2048, "Atheros L2 Fast Ethernet" },
{ PCI_VENDOR_ID_QUALCOMM, 0x2060, "Atheros AR8152 v1.1 Fast 10/100" },
{ PCI_VENDOR_ID_QUALCOMM, 0x2062, "Atheros AR8152 v2.0 Fast 10/100" },
{ PCI_VENDOR_ID_QUALCOMM, 0x1026, "AR8121/AR8113/AR8114 Ethernet" },
{ PCI_VENDOR_ID_QUALCOMM, 0x1062, "AR8132 Fast Ethernet" },
{ PCI_VENDOR_ID_QUALCOMM, 0x1063, "AR8131 Gigabit Ethernet" },
{ PCI_VENDOR_ID_QUALCOMM, 0x1066, "AR8121/AR8113/AR8114 Ethernet" },
{ PCI_VENDOR_ID_QUALCOMM, 0x1067, "L1c Gigabit Ethernet" },
{ PCI_VENDOR_ID_QUALCOMM, 0x1073, "AR8151 v1.0 Gigabit 1000" },
{ PCI_VENDOR_ID_QUALCOMM, 0x1083, "GbE LAN chip (10/100/1000 Mbit)" },
{ PCI_VENDOR_ID_QUALCOMM, 0x1090, "AR8162 Fast Ethernet" },
{ PCI_VENDOR_ID_QUALCOMM, 0x1091, "AR8161 Gigabit Ethernet" },
{ PCI_VENDOR_ID_QUALCOMM, 0x10a0, "QCA8172 Fast Ethernet" },
{ PCI_VENDOR_ID_QUALCOMM, 0x10a1, "QCA8171 Gigabit Ethernet" },
{ PCI_VENDOR_ID_QUALCOMM, 0x2048, "L2 Fast Ethernet" },
{ PCI_VENDOR_ID_QUALCOMM, 0x2060, "AR8152 v1.1 Fast 10/100" },
{ PCI_VENDOR_ID_QUALCOMM, 0x2062, "AR8152 v2.0 Fast 10/100" }
};
#define ETH_DEVICES_LEN (sizeof(known_ethernet_cards) / sizeof(known_ethernet_cards[0]))
static network_device generic_ethernet_cards[] =
{
{ 0x0000, 0x0000, "Generic Ethernet Controller" },
{ PCI_VENDOR_ID_REALTEK, 0x0000, "Realtek Ethernet Controller" },
{ PCI_VENDOR_ID_MARVELL, 0x0000, "Marvell Ethernet Controller" },
{ PCI_VENDOR_ID_QUALCOMM, 0x0000, "Atheros Ethernet Controller" },
{ PCI_VENDOR_ID_INTEL, 0x0000, "Intel(R) Ethernet Controller" },
};
static network_device known_wifi_cards[] =
{
// Broadcom
{PCI_VENDOR_ID_BROADCOM, 0x4312, "Broadcom BCM4311 802.11a/b/g"},
//{PCI_VENDOR_ID_BROADCOM, 0x4313, "Broadcom BCM4311 802.11a" },
{PCI_VENDOR_ID_BROADCOM, 0x4315, "Broadcom BCM4312 802.11b/g Wireless LAN Controller"},
//{PCI_VENDOR_ID_BROADCOM, 0x4318, "Broadcom BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller"},
{PCI_VENDOR_ID_BROADCOM, 0x4319, "Broadcom BCM4318 [AirForce 54g] 802.11a/b/g PCI Express Transceiver"},
//{PCI_VENDOR_ID_BROADCOM, 0x4320, "Broadcom BCM4306 802.11b/g Wireless LAN Controller"},
//{PCI_VENDOR_ID_BROADCOM, 0x4321, "Broadcom BCM4321 802.11a Wireless Network Controller"},
//{PCI_VENDOR_ID_BROADCOM, 0x4322, "Broadcom BCM4322 802.11bgn Wireless Network Controller"},
//{PCI_VENDOR_ID_BROADCOM, 0x4324, "Broadcom BCM4309 802.11abg Wireless Network Controller"},
//{PCI_VENDOR_ID_BROADCOM, 0x4325, "Broadcom BCM4306 802.11bg Wireless Network Controller"},
//{PCI_VENDOR_ID_BROADCOM, 0x4328, "Broadcom BCM4321 802.11a/b/g/n"},
//{PCI_VENDOR_ID_BROADCOM, 0x4329, "Broadcom BCM4321 802.11b/g/n"},
//{PCI_VENDOR_ID_BROADCOM, 0x432a, "Broadcom BCM4321 802.11an Wireless Network Controller"},
{PCI_VENDOR_ID_BROADCOM, 0x432b, "Broadcom BCM4322 802.11a/b/g/n Wireless LAN Controller"},
{PCI_VENDOR_ID_BROADCOM, 0x432c, "Broadcom BCM4322 802.11b/g/n"},
//{PCI_VENDOR_ID_BROADCOM, 0x432d, "Broadcom BCM4322 802.11an Wireless Network Controller"},
{PCI_VENDOR_ID_BROADCOM, 0x4331, "Broadcom BCM4331 802.11a/b/g/n"},
//{PCI_VENDOR_ID_BROADCOM, 0x4350, "Broadcom BCM43222 Wireless Network Adapter"},
//{PCI_VENDOR_ID_BROADCOM, 0x4351, "Broadcom BCM43222 802.11abgn Wireless Network Adapter"},
//{PCI_VENDOR_ID_BROADCOM, 0x4353, "Broadcom BCM43224 802.11a/b/g/n"},
//{PCI_VENDOR_ID_BROADCOM, 0x4357, "Broadcom BCM43225 802.11b/g/n"},
//{PCI_VENDOR_ID_BROADCOM, 0x4358, "Broadcom BCM43227 802.11b/g/n"},
{PCI_VENDOR_ID_BROADCOM, 0x4359, "Broadcom BCM43228 802.11a/b/g/n"},
//{PCI_VENDOR_ID_BROADCOM, 0x4360, "Broadcom BCM4360 802.11ac Wireless Network Adapter"},
//{PCI_VENDOR_ID_BROADCOM, 0x4365, "Broadcom BCM43142 802.11b/g/n"},
//{PCI_VENDOR_ID_BROADCOM, 0x43a0, "Broadcom BCM4360 802.11ac Wireless Network Adapter"},
//{PCI_VENDOR_ID_BROADCOM, 0x43a1, "Broadcom BCM4360 802.11ac Wireless Network Adapter"},
//{PCI_VENDOR_ID_BROADCOM, 0x43a2, "Broadcom BCM4360 802.11ac Wireless Network Adapter"},
//{PCI_VENDOR_ID_BROADCOM, 0x43a9, "Broadcom BCM43217 802.11b/g/n"},
//{PCI_VENDOR_ID_BROADCOM, 0x43aa, "Broadcom BCM43131 802.11b/g/n"},
//{PCI_VENDOR_ID_BROADCOM, 0x43b1, "Broadcom BCM4352 802.11ac Wireless Network Adapter"},
//{PCI_VENDOR_ID_BROADCOM, 0x43ba, "Broadcom BCM43602 802.11ac Wireless LAN SoC"},
//{PCI_VENDOR_ID_BROADCOM, 0x43bb, "Broadcom BCM43602 802.11ac Wireless LAN SoC"},
//{PCI_VENDOR_ID_BROADCOM, 0x43bc, "Broadcom BCM43602 802.11ac Wireless LAN SoC"},
//{PCI_VENDOR_ID_BROADCOM, 0x43d3, "Broadcom BCM43567 802.11ac Wireless Network Adapter"},
//{PCI_VENDOR_ID_BROADCOM, 0x43d9, "Broadcom BCM43570 802.11ac Wireless Network Adapter"},
//{PCI_VENDOR_ID_BROADCOM, 0x43df, "Broadcom BCM4354 802.11ac Wireless LAN SoC"},
//{PCI_VENDOR_ID_BROADCOM, 0x43ec, "Broadcom BCM4356 802.11ac Wireless Network Adapter"},
//{PCI_VENDOR_ID_BROADCOM, 0xa8d8, "Broadcom BCM43224/5 Wireless Network Adapter"},
{PCI_VENDOR_ID_BROADCOM, 0x4312, "BCM4311 802.11a/b/g"},
//{PCI_VENDOR_ID_BROADCOM, 0x4313, "BCM4311 802.11a" },
{PCI_VENDOR_ID_BROADCOM, 0x4315, "BCM4312 802.11b/g Wireless LAN Controller"},
//{PCI_VENDOR_ID_BROADCOM, 0x4318, "BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller"},
{PCI_VENDOR_ID_BROADCOM, 0x4319, "BCM4318 [AirForce 54g] 802.11a/b/g PCI Express Transceiver"},
{PCI_VENDOR_ID_BROADCOM, 0x4320, "BCM4306 802.11b/g Wireless LAN Controller"},
//{PCI_VENDOR_ID_BROADCOM, 0x4321, "BCM4321 802.11a Wireless Network Controller"},
//{PCI_VENDOR_ID_BROADCOM, 0x4322, "BCM4322 802.11bgn Wireless Network Controller"},
{PCI_VENDOR_ID_BROADCOM, 0x4324, "BCM4309 802.11abg Wireless Network Controller"},
//{PCI_VENDOR_ID_BROADCOM, 0x4325, "BCM4306 802.11bg Wireless Network Controller"},
{PCI_VENDOR_ID_BROADCOM, 0x4328, "BCM4321 802.11a/b/g/n"},
//{PCI_VENDOR_ID_BROADCOM, 0x4329, "BCM4321 802.11b/g/n"},
//{PCI_VENDOR_ID_BROADCOM, 0x432a, "BCM4321 802.11an Wireless Network Controller"},
{PCI_VENDOR_ID_BROADCOM, 0x432b, "BCM4322 802.11a/b/g/n Wireless LAN Controller"},
{PCI_VENDOR_ID_BROADCOM, 0x432c, "BCM4322 802.11b/g/n"},
{PCI_VENDOR_ID_BROADCOM, 0x432d, "BCM4322 802.11an Wireless Network Controller"},
{PCI_VENDOR_ID_BROADCOM, 0x4331, "BCM4331 802.11a/b/g/n"},
//{PCI_VENDOR_ID_BROADCOM, 0x4350, "BCM43222 Wireless Network Adapter"},
//{PCI_VENDOR_ID_BROADCOM, 0x4351, "BCM43222 802.11abgn Wireless Network Adapter"},
//{PCI_VENDOR_ID_BROADCOM, 0x4353, "BCM43224 802.11a/b/g/n"},
//{PCI_VENDOR_ID_BROADCOM, 0x4357, "BCM43225 802.11b/g/n"},
//{PCI_VENDOR_ID_BROADCOM, 0x4358, "BCM43227 802.11b/g/n"},
{PCI_VENDOR_ID_BROADCOM, 0x4359, "BCM43228 802.11a/b/g/n"},
//{PCI_VENDOR_ID_BROADCOM, 0x4360, "BCM4360 802.11ac Wireless Network Adapter"},
{PCI_VENDOR_ID_BROADCOM, 0x4365, "BCM43142 802.11b/g/n"},
//{PCI_VENDOR_ID_BROADCOM, 0x43a0, "BCM4360 802.11ac Wireless Network Adapter"},
//{PCI_VENDOR_ID_BROADCOM, 0x43a1, "BCM4360 802.11ac Wireless Network Adapter"},
//{PCI_VENDOR_ID_BROADCOM, 0x43a2, "BCM4360 802.11ac Wireless Network Adapter"},
//{PCI_VENDOR_ID_BROADCOM, 0x43a9, "BCM43217 802.11b/g/n"},
//{PCI_VENDOR_ID_BROADCOM, 0x43aa, "BCM43131 802.11b/g/n"},
//{PCI_VENDOR_ID_BROADCOM, 0x43b1, "BCM4352 802.11ac Wireless Network Adapter"},
//{PCI_VENDOR_ID_BROADCOM, 0x43ba, "BCM43602 802.11ac Wireless LAN SoC"},
//{PCI_VENDOR_ID_BROADCOM, 0x43bb, "BCM43602 802.11ac Wireless LAN SoC"},
//{PCI_VENDOR_ID_BROADCOM, 0x43bc, "BCM43602 802.11ac Wireless LAN SoC"},
//{PCI_VENDOR_ID_BROADCOM, 0x43d3, "BCM43567 802.11ac Wireless Network Adapter"},
//{PCI_VENDOR_ID_BROADCOM, 0x43d9, "BCM43570 802.11ac Wireless Network Adapter"},
//{PCI_VENDOR_ID_BROADCOM, 0x43df, "BCM4354 802.11ac Wireless LAN SoC"},
//{PCI_VENDOR_ID_BROADCOM, 0x43ec, "BCM4356 802.11ac Wireless Network Adapter"},
//{PCI_VENDOR_ID_BROADCOM, 0xa8d8, "BCM43224/5 Wireless Network Adapter"},
// Atheros
{PCI_VENDOR_ID_ATHEROS, 0x0020, "Atheros AR5513 802.11abg Wireless NIC"},
{PCI_VENDOR_ID_ATHEROS, 0x0023, "Atheros AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn]"},
{PCI_VENDOR_ID_ATHEROS, 0x0024, "Atheros AR5418 Wireless Network Adapter [AR5008E 802.11(a)bgn]"},
{PCI_VENDOR_ID_ATHEROS, 0x0027, "Atheros AR9160 Wireless Network Adapter [AR9001 802.11(a)bgn]"},
{PCI_VENDOR_ID_ATHEROS, 0x0029, "Atheros AR922X Wireless Network Adapter"},
{PCI_VENDOR_ID_ATHEROS, 0x002A, "Atheros AR928X Wireless Network Adapter"}, // "pci168c,2a"
{PCI_VENDOR_ID_ATHEROS, 0x002B, "Atheros AR9285 Wireless Network Adapter"},
//{PCI_VENDOR_ID_ATHEROS, 0x002c, "Atheros AR2427 802.11bg Wireless Network Adapter (PCI-Express)"},
//{PCI_VENDOR_ID_ATHEROS, 0x002d, "Atheros AR9227 Wireless Network Adapter"},
//{PCI_VENDOR_ID_ATHEROS, 0x002e, "Atheros AR9287 Wireless Network Adapter (PCI-Express)"},
//{PCI_VENDOR_ID_ATHEROS, 0x0030, "Atheros AR93xx Wireless Network Adapter"},
//{PCI_VENDOR_ID_ATHEROS, 0x0032, "Atheros AR9485 Wireless Network Adapter"},
//{PCI_VENDOR_ID_ATHEROS, 0x0033, "Atheros AR9580 Wireless Network Adapter"},
//{PCI_VENDOR_ID_ATHEROS, 0x0034, "Atheros AR9462 Wireless Network Adapter"},
//{PCI_VENDOR_ID_ATHEROS, 0x0036, "Atheros QCA9565 / AR9565 Wireless Network Adapter"},
//{PCI_VENDOR_ID_ATHEROS, 0x0037, "Atheros AR9485 Wireless Network Adapter"},
{PCI_VENDOR_ID_ATHEROS, 0x0020, "AR5513 802.11abg Wireless NIC"},
{PCI_VENDOR_ID_ATHEROS, 0x0023, "AR5416 Wireless Network Adapter"},
{PCI_VENDOR_ID_ATHEROS, 0x0024, "AR5418 Wireless Network Adapter"},
{PCI_VENDOR_ID_ATHEROS, 0x0027, "AR9160 Wireless Network Adapter"},
{PCI_VENDOR_ID_ATHEROS, 0x0029, "AR922X Wireless Network Adapter"},
{PCI_VENDOR_ID_ATHEROS, 0x002A, "AR928X Wireless Network Adapter"}, // "pci168c,2a"
{PCI_VENDOR_ID_ATHEROS, 0x002B, "AR9285 Wireless Network Adapter"},
{PCI_VENDOR_ID_ATHEROS, 0x002C, "AR2427 Wireless Network Adapter"},
{PCI_VENDOR_ID_ATHEROS, 0x002D, "AR9227 Wireless Network Adapter"},
{PCI_VENDOR_ID_ATHEROS, 0x002E, "AR9287 Wireless Network Adapter"},
{PCI_VENDOR_ID_ATHEROS, 0x0030, "AR93xx Wireless Network Adapter"},
{PCI_VENDOR_ID_ATHEROS, 0x0032, "AR9485 Wireless Network Adapter"},
{PCI_VENDOR_ID_ATHEROS, 0x0033, "AR9580 Wireless Network Adapter"},
{PCI_VENDOR_ID_ATHEROS, 0x0034, "AR9462 Wireless Network Adapter"},
{PCI_VENDOR_ID_ATHEROS, 0x0036, "AR9565 Wireless Network Adapter"},
{PCI_VENDOR_ID_ATHEROS, 0x0037, "AR9485 Wireless Network Adapter"}
};
#define WLAN_DEVICES_LEN (sizeof(known_wifi_cards) / sizeof(known_wifi_cards[0]))
char *get_ethernet_model(uint32_t vendor_id, uint32_t device_id)
{
static char desc[128];
int devprop_add_network_template(DevPropDevice *device, uint16_t vendor_id)
{
builtin = 0;
if(device)
const char *name_format = NULL;
int i;
/* Get format for vendor ID */
switch ( vendor_id )
{
case PCI_VENDOR_ID_REALTEK:
name_format = "Realteck %s"; break;
if((vendor_id != PCI_VENDOR_ID_ATHEROS ) && ( builtin_set == 0 ))
{
builtin_set = 1;
builtin = 0x01;
}
case PCI_VENDOR_ID_MARVELL:
name_format = "Marvell %s"; break;
if(!devprop_add_value(device, "built-in", (uint8_t *)&builtin, 1))
{
return 0;
}
case PCI_VENDOR_ID_JMICRON:
name_format = "JMicron %s"; break;
if(!devprop_add_value(device, "device_type", (uint8_t *)"ethernet", sizeof("ethernet")))
case PCI_VENDOR_ID_ATHEROS:
case PCI_VENDOR_ID_QUALCOMM:
name_format = "Atheros %s"; break;
case PCI_VENDOR_ID_BROADCOM:
name_format = "Broadcom %s"; break;
case PCI_VENDOR_ID_INTEL:
name_format = "Intel %s"; break;
default:
break;
}
for( i = 0 ; i < ETH_DEVICES_LEN; i++ )
{
if ( ( vendor_id == known_ethernet_cards[i].vendor_id ) && ( device_id == known_ethernet_cards[i].device_id ) )
{
return 0;
snprintf( desc, sizeof(desc), name_format, known_ethernet_cards[i].model );
return desc;
}
}
// NOT in know table... assign generic
/* Not in table */
snprintf( desc, sizeof(desc), name_format, "Ethernet Controller" );
return desc;
}
devices_number++;
return 1;
char *get_wlan_model(uint32_t vendor_id, uint32_t device_id)
{
static char desc[128];
const char *name_format = NULL;
int i;
/* Get format for vendor ID */
switch ( vendor_id )
{
case PCI_VENDOR_ID_REALTEK:
name_format = "Realteck %s"; break;
case PCI_VENDOR_ID_ATHEROS:
case PCI_VENDOR_ID_QUALCOMM:
name_format = "Atheros %s"; break;
case PCI_VENDOR_ID_BROADCOM:
name_format = "Broadcom %s"; break;
default:
break;
}
else
for( i = 0 ; i < WLAN_DEVICES_LEN; i++ )
{
return 0;
if ( ( vendor_id == known_wifi_cards[i].vendor_id ) && ( device_id == known_wifi_cards[i].device_id ) )
{
snprintf( desc, sizeof(desc), name_format, known_wifi_cards[i].model );
return desc;
}
}
// NOT in know table... assign generic
/* Not in table */
snprintf( desc, sizeof(desc), name_format, "Wireless Controller" );
return desc;
}
void setup_eth_devdrop(pci_dt_t *eth_dev)
{
char *devicepath= get_pci_dev_path(eth_dev);
char *name_model= NULL;
char *devicepath = get_pci_dev_path(eth_dev);
char *name_model = NULL;
builtin = 0;
bool do_eth_devprop = getBoolForKey(kEthernetBuiltIn, &do_eth_devprop, &bootInfo->chameleonConfig);
DevPropDevice *device = (DevPropDevice *)malloc(sizeof(DevPropDevice));
verbose("LAN Controller [%04x:%04x] :: %s\n", eth_dev->vendor_id, eth_dev->device_id, devicepath);
verbose("\tClass code: [%04x]\n", eth_dev->class_id);
verbose("\tEthernetBuiltIn = %s\n", do_eth_devprop ? "Yes" : "No");
if (!string)
{
device = devprop_add_device(string, devicepath);
if(device)
{
verbose("Setting up lan keys\n");
name_model = get_ethernet_model(eth_dev->vendor_id, eth_dev->device_id);
devprop_add_network_template(device, eth_dev->vendor_id);
devprop_add_value(device, "model", (uint8_t *)name_model, (strlen(name_model) + 1));
devprop_add_value(device, "device_type", (uint8_t *)"ethernet", sizeof("ethernet"));
if ( do_eth_devprop )
{
verbose("\tLocation number: %d\n", location_number);
verbose("\tSetting up lan keys\n");
if( ( eth_dev->vendor_id != PCI_VENDOR_ID_ATHEROS ) && ( builtin_set == 0 ))
{
builtin_set = 1;
builtin = 0x01;
}
stringdata = (uint8_t*)malloc(sizeof(uint8_t) * string->length);
if(stringdata)
{
memcpy(stringdata, (uint8_t *)devprop_generate_string(string), string->length);
stringlength = string->length;
devprop_add_value(device, "location", (uint8_t *)&location_number, 1);
//devprop_add_value(device, "AAPL,slot-name", "Slot-x"
//devprop_add_value(device, "device-id" 0xF6,,
//devprop_add_value(device, "revision-id",
//devprop_add_value(device, "subsystem-id",
//devprop_add_value(device, "subsystem-vendor-id",
devprop_add_value(device, "built-in", (uint8_t *)&builtin, 1);
devprop_add_value(device, "model", (uint8_t *)name_model, (strlen(name_model) + 1));
devprop_add_value(device, "device_type", (uint8_t *)"ethernet", sizeof("Ethernet"));
stringdata = (uint8_t *)malloc(sizeof(uint8_t) * string->length);
if(stringdata)
{
memcpy(stringdata, (uint8_t *)devprop_generate_string(string), string->length);
stringlength = string->length;
}
}
}
verbose("\t%s [%04x:%04x]\n\t%s\n",name_model, eth_dev->vendor_id, eth_dev->device_id, devicepath);
// location number
location_number++;
verbose("\n");
}
void setup_wifi_devdrop(pci_dt_t *wlan_dev) // ARPT
{
char tmp[16];
builtin = 0;
DevPropDevice *device ;
char *devicepath = get_pci_dev_path(wlan_dev);
char *name_model = NULL;
verbose("Wifi Controller [%04x:%04x]\n", wlan_dev->vendor_id, wlan_dev->device_id);
builtin = 0;
bool do_wifi_devprop = getBoolForKey(kEnableWifi, &do_wifi_devprop, &bootInfo->chameleonConfig);
DevPropDevice *device = (DevPropDevice *)malloc(sizeof(DevPropDevice));
verbose("\tClass code: [%04x]\n", wlan_dev->class_id);
verbose("\tEnableWifi = %s\n", do_wifi_devprop ? "Yes" : "No");
if (!string)
{
string = devprop_create_string();
return;
}
}
device = devprop_add_device(string, devicepath);
if(device)
{
snprintf(tmp, sizeof(tmp),"Airport");
devprop_add_value(device, "AAPL,slot-name", (uint8_t *) tmp, strlen(tmp) + 1);
devprop_add_value(device, "device_type", (uint8_t *) tmp, strlen(tmp) + 1);
devprop_add_value(device, "built-in", (uint8_t *)&builtin, 1);
name_model = get_wlan_model(wlan_dev->vendor_id, wlan_dev->device_id);
unsigned int i = 0;
for( ; i < sizeof(known_wifi_cards) / sizeof(known_wifi_cards[0]); i++)
if ( do_wifi_devprop )
{
if(wlan_dev->vendor_id == known_wifi_cards[i].vendor_id && wlan_dev->device_id == known_wifi_cards[i].device_id)
verbose("\tSetting up wifi keys\n");
devprop_add_value(device, "built-in", (uint8_t *)&builtin, 1);
devprop_add_value(device, "model", (uint8_t *)name_model, (strlen(name_model) + 1));
//devprop_add_value(device, "name", (uint8_t *)"AirPort Extreme", sizeof("AirPort Extreme"));
//devprop_add_value(device, "vendor-id",
//devprop_add_value(device, "device-id",
//devprop_add_value(device, "subsystem-id",
//devprop_add_value(device, "subsystem-vendor-id",
// NOTE: I would set the subsystem id and subsystem vendor id here,
// however, those values seem to be ovverriden in the boot process.
// A better method would be injecting the DTGP dsdt method
// and then injecting the subsystem id there.
devprop_add_value(device, "device_type", (uint8_t *)"Airport", sizeof("Airport"));
devprop_add_value(device, "AAPL,slot-name", (uint8_t *)"Airport", sizeof("Airport"));
stringdata = (uint8_t *)malloc(sizeof(uint8_t) *string->length);
if(stringdata)
{
verbose("Setting up wifi keys\n");
devprop_add_value(device, "model", (uint8_t *)known_wifi_cards[i].model, (strlen(known_wifi_cards[i].model) + 1));
// NOTE: I would set the subsystem id and subsystem vendor id here,
// however, those values seem to be ovverriden in the boot process.
// A better method would be injecting the DTGP dsdt method
// and then injecting the subsystem id there.
stringdata = (uint8_t *)malloc(sizeof(uint8_t) *string->length);
if(stringdata)
{
memcpy(stringdata, (uint8_t *)devprop_generate_string(string), string->length);
stringlength = string->length;
}
return;
memcpy(stringdata, (uint8_t *)devprop_generate_string(string), string->length);
stringlength = string->length;
}
}
}
}
char *get_ethernet_model(uint32_t vendor_id, uint32_t device_id)
{
int i = 0;
for( ; i < sizeof(known_ethernet_cards) / sizeof(known_ethernet_cards[0]); i++)
{
if(vendor_id == known_ethernet_cards[i].vendor_id && device_id == known_ethernet_cards[i].device_id)
{
return known_ethernet_cards[i].model;
}
}
i = 0;
for ( ; i < sizeof(generic_ethernet_cards) / sizeof(generic_ethernet_cards[0]); i++)
{
if (vendor_id == generic_ethernet_cards[i].vendor_id)
{
return generic_ethernet_cards[i].model;
}
}
return generic_ethernet_cards[0].model;
verbose("\t%s [%04x:%04x]\n\t%s\n", name_model, wlan_dev->vendor_id, wlan_dev->device_id, devicepath);
verbose("\n");
}
branches/ErmaC/Enoch/i386/libsaio/device_inject.c
2323
2424
2525
26
26
27
28
2729
2830
2931
......
6668
6769
6870
69
71
7072
7173
7274
#define DBG(x...)msglog(x)
#endif
uint32_tdevices_number= 1;
uint32_tdevices_number= 1; // nvidia.c
uint32_tlocation_number= 1; // networking.c
DevPropString*string= NULL;
uint8_t*stringdata= NULL;
uint32_tstringlength= 0;
if (cnt2 > 0)
{
DT__AddProperty(node, DEVICE_PROPERTIES_PROP, cnt2, binStr);
DBG("Adding device-properties string to DT");
DBG("Adding device-properties string to DT\n");
}
}
}
branches/ErmaC/Enoch/i386/libsaio/cpu.c
328328
329329
330330
331
331
332332
333333
334334
p->CPU.BrandString[0] = '\0';
}
p->CPU.BrandString[47] = '\0';
//DBG("Brandstring = %s\n", p->CPU.BrandString);
//DBG("\tBrandstring = %s\n", p->CPU.BrandString);
}
// ==============================================================

Archive Download the corresponding diff file

Revision: 2688