OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [rc203soc/] [sw/] [uClinux/] [drivers/] [net/] [Space.c] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1626 jcastillo
/*
2
 * INET         An implementation of the TCP/IP protocol suite for the LINUX
3
 *              operating system.  INET is implemented using the  BSD Socket
4
 *              interface as the means of communication with the user level.
5
 *
6
 *              Holds initial configuration information for devices.
7
 *
8
 * NOTE:        This file is a nice idea, but its current format does not work
9
 *              well for drivers that support multiple units, like the SLIP
10
 *              driver.  We should actually have only one pointer to a driver
11
 *              here, with the driver knowing how many units it supports.
12
 *              Currently, the SLIP driver abuses the "base_addr" integer
13
 *              field of the 'device' structure to store the unit number...
14
 *              -FvK
15
 *
16
 * Version:     @(#)Space.c     1.0.8   07/31/96
17
 *
18
 * Authors:     Ross Biro, <bir7@leland.Stanford.Edu>
19
 *              Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
20
 *              Donald J. Becker, <becker@super.org>
21
 *
22
 *      FIXME:
23
 *              Sort the device chain fastest first.
24
 *
25
 *              This program is free software; you can redistribute it and/or
26
 *              modify it under the terms of the GNU General Public License
27
 *              as published by the Free Software Foundation; either version
28
 *              2 of the License, or (at your option) any later version.
29
 */
30
#include <linux/config.h>
31
#include <linux/netdevice.h>
32
#include <linux/errno.h>
33
 
34
#define NEXT_DEV        NULL
35
 
36
 
37
/* A unified ethernet device probe.  This is the easiest way to have every
38
   ethernet adaptor have the name "eth[0123...]".
39
   */
40
 
41
extern int cs89x0_probe(struct device *dev);
42
extern int en302_probe(struct device *dev);
43
extern int tulip_probe(struct device *dev);
44
extern int hp100_probe(struct device *dev);
45
extern int ultra_probe(struct device *dev);
46
extern int ultra32_probe(struct device *dev);
47
extern int wd_probe(struct device *dev);
48
extern int el2_probe(struct device *dev);
49
extern int ne_probe(struct device *dev);
50
extern int ne2k_pci_probe(struct device *dev);
51
extern int hp_probe(struct device *dev);
52
extern int hp_plus_probe(struct device *dev);
53
extern int znet_probe(struct device *);
54
extern int express_probe(struct device *);
55
extern int eepro_probe(struct device *);
56
extern int el3_probe(struct device *);
57
extern int tc515_probe(struct device *);
58
extern int at1500_probe(struct device *);
59
extern int at1700_probe(struct device *);
60
extern int fmv18x_probe(struct device *);
61
extern int eth16i_probe(struct device *);
62
extern int depca_probe(struct device *);
63
extern int apricot_probe(struct device *);
64
extern int ewrk3_probe(struct device *);
65
extern int de4x5_probe(struct device *);
66
extern int el1_probe(struct device *);
67
extern int via_rhine_probe(struct device *);
68
#if     defined(CONFIG_WAVELAN)
69
extern int wavelan_probe(struct device *);
70
#endif  /* defined(CONFIG_WAVELAN) */
71
extern int el16_probe(struct device *);
72
extern int elplus_probe(struct device *);
73
extern int ac3200_probe(struct device *);
74
extern int e2100_probe(struct device *);
75
extern int ni52_probe(struct device *);
76
extern int ni65_probe(struct device *);
77
extern int SK_init(struct device *);
78
extern int seeq8005_probe(struct device *);
79
extern int tc59x_probe(struct device *);
80
extern int dgrs_probe(struct device *);
81
extern int smc_init( struct device * );
82
extern int smc_init_91C111( struct device * );
83
extern int sparc_lance_probe(struct device *);
84
extern int atarilance_probe(struct device *);
85
extern int a2065_probe(struct device *);
86
extern int ariadne_probe(struct device *);
87
extern int hydra_probe(struct device *);
88
extern int yellowfin_probe(struct device *);
89
extern int eepro100_probe(struct device *);
90
extern int epic100_probe(struct device *);
91
extern int rtl8139_probe(struct device *);
92
extern int tlan_probe(struct device *);
93
extern int isa515_probe(struct device *);
94
extern int pcnet32_probe(struct device *);
95
extern int lance_probe(struct device *);
96
/* Detachable devices ("pocket adaptors") */
97
extern int atp_init(struct device *);
98
extern int de600_probe(struct device *);
99
extern int de620_probe(struct device *);
100
/* The shaper hook */
101
extern int shaper_probe(struct device *);
102
/* Red Creek PCI hook */
103
extern int rcpci_probe(struct device *);
104
extern int oeth_probe(struct device *);
105
 
106
static int
107
ethif_probe(struct device *dev)
108
{
109
    u_long base_addr = dev->base_addr;
110
 
111
    if ((base_addr == 0xffe0)  ||  (base_addr == 1))
112
        return 1;               /* ENXIO */
113
 
114
    if (1
115
        /* All PCI probes are safe, and thus should be first. */
116
#ifdef CONFIG_DE4X5             /* DEC DE425, DE434, DE435 adapters */
117
        && de4x5_probe(dev)
118
#endif
119
#ifdef CONFIG_UCCS8900
120
        && cs89x0_probe(dev)
121
#endif
122
#ifdef CONFIG_M68EN302_ETHERNET
123
        && en302_probe(dev)
124
#endif
125
#ifdef CONFIG_DGRS
126
        && dgrs_probe(dev)
127
#endif
128
#ifdef CONFIG_EEXPRESS_PRO100B  /* Intel EtherExpress Pro100B */
129
        && eepro100_probe(dev)
130
#endif
131
#ifdef CONFIG_EPIC
132
        && epic100_probe(dev)
133
#endif
134
#if defined(CONFIG_HP100)
135
        && hp100_probe(dev)
136
#endif  
137
#if defined(CONFIG_NE2K_PCI)
138
        && ne2k_pci_probe(dev)
139
#endif
140
#ifdef CONFIG_PCNET32
141
        && pcnet32_probe(dev)
142
#endif
143
#ifdef CONFIG_RTL8139
144
        && rtl8139_probe(dev)
145
#endif
146
#if defined(CONFIG_VIA_RHINE)
147
        && via_rhine_probe(dev)
148
#endif
149
#if defined(CONFIG_VORTEX)
150
        && tc59x_probe(dev)
151
#endif
152
#if defined(CONFIG_DEC_ELCP)
153
        && tulip_probe(dev)
154
#endif
155
#ifdef CONFIG_YELLOWFIN
156
        && yellowfin_probe(dev)
157
#endif
158
        /* Next mostly-safe EISA-only drivers. */
159
#ifdef CONFIG_AC3200            /* Ansel Communications EISA 3200. */
160
        && ac3200_probe(dev)
161
#endif
162
#if defined(CONFIG_ULTRA32)
163
        && ultra32_probe(dev)
164
#endif
165
        /* Third, sensitive ISA boards. */
166
#ifdef CONFIG_AT1700
167
        && at1700_probe(dev)
168
#endif
169
#if defined(CONFIG_ULTRA)
170
        && ultra_probe(dev)
171
#endif
172
#if defined(CONFIG_SMC9194)
173
        && smc_init(dev)
174
#endif
175
#if defined(CONFIG_SMC91111)
176
    && smc_init_91C111(dev)
177
#endif
178
#if defined(CONFIG_WD80x3)
179
        && wd_probe(dev)
180
#endif
181
#if defined(CONFIG_EL2)         /* 3c503 */
182
        && el2_probe(dev)
183
#endif
184
#if defined(CONFIG_HPLAN)
185
        && hp_probe(dev)
186
#endif
187
#if defined(CONFIG_HPLAN_PLUS)
188
        && hp_plus_probe(dev)
189
#endif
190
#if defined(CONFIG_SEEQ8005)
191
        && seeq8005_probe(dev)
192
#endif
193
#ifdef CONFIG_E2100             /* Cabletron E21xx series. */
194
        && e2100_probe(dev)
195
#endif
196
#if defined(CONFIG_NE2000)
197
        && ne_probe(dev)
198
#endif
199
#ifdef CONFIG_AT1500
200
        && at1500_probe(dev)
201
#endif
202
#ifdef CONFIG_FMV18X            /* Fujitsu FMV-181/182 */
203
        && fmv18x_probe(dev)
204
#endif
205
#ifdef CONFIG_ETH16I
206
        && eth16i_probe(dev)    /* ICL EtherTeam 16i/32 */
207
#endif
208
#ifdef CONFIG_EL3               /* 3c509 */
209
        && el3_probe(dev)
210
#endif
211
#ifdef CONFIG_3C515             /* 3c515 */
212
        && tc515_probe(dev)
213
#endif
214
#ifdef CONFIG_ZNET              /* Zenith Z-Note and some IBM Thinkpads. */
215
        && znet_probe(dev)
216
#endif
217
#ifdef CONFIG_EEXPRESS          /* Intel EtherExpress */
218
        && express_probe(dev)
219
#endif
220
#ifdef CONFIG_EEXPRESS_PRO      /* Intel EtherExpress Pro/10 */
221
        && eepro_probe(dev)
222
#endif
223
#ifdef CONFIG_DEPCA             /* DEC DEPCA */
224
        && depca_probe(dev)
225
#endif
226
#ifdef CONFIG_EWRK3             /* DEC EtherWORKS 3 */
227
        && ewrk3_probe(dev)
228
#endif
229
#ifdef CONFIG_APRICOT           /* Apricot I82596 */
230
        && apricot_probe(dev)
231
#endif
232
#ifdef CONFIG_EL1               /* 3c501 */
233
        && el1_probe(dev)
234
#endif
235
#if     defined(CONFIG_WAVELAN) /* WaveLAN */
236
        && wavelan_probe(dev)
237
#endif  /* defined(CONFIG_WAVELAN) */
238
#ifdef CONFIG_EL16              /* 3c507 */
239
        && el16_probe(dev)
240
#endif
241
#ifdef CONFIG_ELPLUS            /* 3c505 */
242
        && elplus_probe(dev)
243
#endif
244
#ifdef CONFIG_DE600             /* D-Link DE-600 adapter */
245
        && de600_probe(dev)
246
#endif
247
#ifdef CONFIG_DE620             /* D-Link DE-620 adapter */
248
        && de620_probe(dev)
249
#endif
250
#if defined(CONFIG_SK_G16)
251
        && SK_init(dev)
252
#endif
253
#ifdef CONFIG_NI52
254
        && ni52_probe(dev)
255
#endif
256
#ifdef CONFIG_NI65
257
        && ni65_probe(dev)
258
#endif
259
#ifdef CONFIG_LANCE     /* ISA LANCE boards */
260
        && lance_probe(dev)
261
#endif
262
#ifdef CONFIG_ATARILANCE        /* Lance-based Atari ethernet boards */
263
        && atarilance_probe(dev)
264
#endif
265
#ifdef CONFIG_A2065             /* Commodore/Ameristar A2065 Ethernet Board */
266
        && a2065_probe(dev)
267
#endif
268
#ifdef CONFIG_ARIADNE           /* Village Tronic Ariadne Ethernet Board */
269
        && ariadne_probe(dev)
270
#endif
271
#ifdef CONFIG_HYDRA             /* Hydra Systems Amiganet Ethernet board */
272
        && hydra_probe(dev)
273
#endif
274
#ifdef CONFIG_SUNLANCE
275
        && sparc_lance_probe(dev)
276
#endif
277
#ifdef CONFIG_TLAN
278
        && tlan_probe(dev)
279
#endif
280
#ifdef CONFIG_LANCE
281
        && lance_probe(dev)
282
#endif
283
#ifdef CONFIG_OETH
284
        && oeth_probe(dev)
285
#endif
286
        && 1 ) {
287
        return 1;       /* -ENODEV or -EAGAIN would be more accurate. */
288
    }
289
    return 0;
290
}
291
 
292
#ifdef CONFIG_SDLA
293
    extern int sdla_init(struct device *);
294
    static struct device sdla0_dev = { "sdla0", 0, 0, 0, 0, 0, 0, 0, 0, 0, NEXT_DEV, sdla_init, };
295
 
296
#   undef NEXT_DEV
297
#   define NEXT_DEV     (&sdla0_dev)
298
#endif
299
 
300
/* Run-time ATtachable (Pocket) devices have a different (not "eth#") name. */
301
#ifdef CONFIG_ATP               /* AT-LAN-TEC (RealTek) pocket adaptor. */
302
static struct device atp_dev = {
303
    "atp0", 0, 0, 0, 0, 0, 0, 0, 0, 0, NEXT_DEV, atp_init, /* ... */ };
304
#   undef NEXT_DEV
305
#   define NEXT_DEV     (&atp_dev)
306
#endif
307
 
308
#ifdef CONFIG_ARCNET
309
    extern int arcnet_probe(struct device *dev);
310
    static struct device arcnet_dev = {
311
        "arc0", 0x0, 0x0, 0x0, 0x0, 0, 0, 0, 0, 0, NEXT_DEV, arcnet_probe, };
312
#   undef       NEXT_DEV
313
#   define      NEXT_DEV        (&arcnet_dev)
314
#endif
315
 
316
/* The first device defaults to I/O base '0', which means autoprobe. */
317
#ifndef ETH0_ADDR
318
# define ETH0_ADDR 0
319
#endif
320
#ifndef ETH0_IRQ
321
# define ETH0_IRQ 0
322
#endif
323
/* "eth0" defaults to autoprobe (== 0), other use a base of 0xffe0 (== -0x20),
324
   which means "don't probe".  These entries exist to only to provide empty
325
   slots which may be enabled at boot-time. */
326
 
327
static struct device eth7_dev = {
328
    "eth7", 0,0,0,0,0xffe0 /* I/O base*/, 0,0,0,0, NEXT_DEV, ethif_probe };
329
static struct device eth6_dev = {
330
    "eth6", 0,0,0,0,0xffe0 /* I/O base*/, 0,0,0,0, &eth7_dev, ethif_probe };
331
static struct device eth5_dev = {
332
    "eth5", 0,0,0,0,0xffe0 /* I/O base*/, 0,0,0,0, &eth6_dev, ethif_probe };
333
static struct device eth4_dev = {
334
    "eth4", 0,0,0,0,0xffe0 /* I/O base*/, 0,0,0,0, &eth5_dev, ethif_probe };
335
static struct device eth3_dev = {
336
    "eth3", 0,0,0,0,0xffe0 /* I/O base*/, 0,0,0,0, &eth4_dev, ethif_probe };
337
static struct device eth2_dev = {
338
    "eth2", 0,0,0,0,0xffe0 /* I/O base*/, 0,0,0,0, &eth3_dev, ethif_probe };
339
#if defined(CONFIG_NETtel) && defined(CONFIG_M5307)
340
static struct device eth1_dev = {
341
    "eth1", 0, 0, 0, 0, ETH0_ADDR, ETH0_IRQ, 0, 0, 0, NEXT_DEV, ethif_probe };
342
#else
343
static struct device eth1_dev = {
344
    "eth1", 0,0,0,0,0xffe0 /* I/O base*/, 0,0,0,0, &eth2_dev, ethif_probe };
345
#endif
346
static struct device eth0_dev = {
347
    "eth0", 0, 0, 0, 0, ETH0_ADDR, ETH0_IRQ, 0, 0, 0, &eth1_dev, ethif_probe };
348
 
349
#   undef NEXT_DEV
350
#   define NEXT_DEV     (&eth0_dev)
351
 
352
#if defined(PLIP) || defined(CONFIG_PLIP)
353
    extern int plip_init(struct device *);
354
    static struct device plip2_dev = {
355
        "plip2", 0, 0, 0, 0, 0x278, 2, 0, 0, 0, NEXT_DEV, plip_init, };
356
    static struct device plip1_dev = {
357
        "plip1", 0, 0, 0, 0, 0x378, 7, 0, 0, 0, &plip2_dev, plip_init, };
358
    static struct device plip0_dev = {
359
        "plip0", 0, 0, 0, 0, 0x3BC, 5, 0, 0, 0, &plip1_dev, plip_init, };
360
#   undef NEXT_DEV
361
#   define NEXT_DEV     (&plip0_dev)
362
#endif  /* PLIP */
363
 
364
#if defined(SLIP) || defined(CONFIG_SLIP)
365
        /* To be exact, this node just hooks the initialization
366
           routines to the device structures.                   */
367
extern int slip_init_ctrl_dev(struct device *);
368
static struct device slip_bootstrap = {
369
  "slip_proto", 0x0, 0x0, 0x0, 0x0, 0, 0, 0, 0, 0, NEXT_DEV, slip_init_ctrl_dev, };
370
#undef NEXT_DEV
371
#define NEXT_DEV (&slip_bootstrap)
372
#endif  /* SLIP */
373
 
374
#if defined(CONFIG_MKISS)
375
        /* To be exact, this node just hooks the initialization
376
           routines to the device structures.                   */
377
extern int mkiss_init_ctrl_dev(struct device *);
378
static struct device mkiss_bootstrap = {
379
  "mkiss_proto", 0x0, 0x0, 0x0, 0x0, 0, 0, 0, 0, 0, NEXT_DEV, mkiss_init_ctrl_dev, };
380
#undef NEXT_DEV
381
#define NEXT_DEV (&mkiss_bootstrap)
382
#endif  /* MKISS */
383
 
384
#if defined(CONFIG_STRIP)
385
extern int strip_init_ctrl_dev(struct device *);
386
static struct device strip_bootstrap = {
387
    "strip_proto", 0x0, 0x0, 0x0, 0x0, 0, 0, 0, 0, 0, NEXT_DEV, strip_init_ctrl_dev, };
388
#undef NEXT_DEV
389
#define NEXT_DEV (&strip_bootstrap)
390
#endif   /* STRIP */
391
 
392
#if defined(CONFIG_SHAPER)
393
static struct device shaper_bootstrap = {
394
    "shaper", 0x0, 0x0, 0x0, 0x0, 0, 0, 0, 0, 0, NEXT_DEV, shaper_probe, };
395
#undef NEXT_DEV
396
#define NEXT_DEV (&shaper_bootstrap)
397
#endif   /* SHAPER */
398
 
399
#if defined(CONFIG_RCPCI)
400
static struct device rcpci_bootstrap = {
401
    "rcpci", 0x0, 0x0, 0x0, 0x0, 0, 0, 0, 0, 0, NEXT_DEV, rcpci_probe, };
402
#undef NEXT_DEV
403
#define NEXT_DEV (&rcpci_bootstrap)
404
#endif   /* RCPCI */
405
 
406
#if defined(CONFIG_PPP)
407
extern int ppp_init(struct device *);
408
static struct device ppp_bootstrap = {
409
    "ppp_proto", 0x0, 0x0, 0x0, 0x0, 0, 0, 0, 0, 0, NEXT_DEV, ppp_init, };
410
#undef NEXT_DEV
411
#define NEXT_DEV (&ppp_bootstrap)
412
#endif   /* PPP */
413
 
414
#ifdef CONFIG_DUMMY
415
    extern int dummy_init(struct device *dev);
416
    static struct device dummy_dev = {
417
        "dummy", 0x0, 0x0, 0x0, 0x0, 0, 0, 0, 0, 0, NEXT_DEV, dummy_init, };
418
#   undef       NEXT_DEV
419
#   define      NEXT_DEV        (&dummy_dev)
420
#endif
421
 
422
#ifdef CONFIG_EQUALIZER
423
extern int eql_init(struct device *dev);
424
struct device eql_dev = {
425
  "eql",                        /* Master device for IP traffic load
426
                                   balancing */
427
  0x0, 0x0, 0x0, 0x0,           /* recv end/start; mem end/start */
428
  0,                             /* base I/O address */
429
  0,                             /* IRQ */
430
  0, 0, 0,                 /* flags */
431
  NEXT_DEV,                     /* next device */
432
  eql_init                      /* set up the rest */
433
};
434
#   undef       NEXT_DEV
435
#   define      NEXT_DEV        (&eql_dev)
436
#endif
437
 
438
#ifdef CONFIG_IBMTR 
439
 
440
    extern int tok_probe(struct device *dev);
441
    static struct device ibmtr_dev1 = {
442
        "tr1",                  /* IBM Token Ring (Non-DMA) Interface */
443
        0x0,                    /* recv memory end                      */
444
        0x0,                    /* recv memory start                    */
445
        0x0,                    /* memory end                           */
446
        0x0,                    /* memory start                         */
447
        0xa24,                  /* base I/O address                     */
448
        0,                       /* IRQ                                  */
449
        0, 0, 0,           /* flags                                */
450
        NEXT_DEV,               /* next device                          */
451
        tok_probe               /* ??? Token_init should set up the rest        */
452
    };
453
#   undef       NEXT_DEV
454
#   define      NEXT_DEV        (&ibmtr_dev1)
455
 
456
 
457
    static struct device ibmtr_dev0 = {
458
        "tr0",                  /* IBM Token Ring (Non-DMA) Interface */
459
        0x0,                    /* recv memory end                      */
460
        0x0,                    /* recv memory start                    */
461
        0x0,                    /* memory end                           */
462
        0x0,                    /* memory start                         */
463
        0xa20,                  /* base I/O address                     */
464
        0,                       /* IRQ                                  */
465
        0, 0, 0,           /* flags                                */
466
        NEXT_DEV,               /* next device                          */
467
        tok_probe               /* ??? Token_init should set up the rest        */
468
    };
469
#   undef       NEXT_DEV
470
#   define      NEXT_DEV        (&ibmtr_dev0)
471
 
472
#endif 
473
 
474
#ifdef CONFIG_DEFXX
475
        extern int dfx_probe(struct device *dev);
476
        static struct device fddi7_dev =
477
                {"fddi7", 0, 0, 0, 0, 0, 0, 0, 0, 0, NEXT_DEV, dfx_probe};
478
        static struct device fddi6_dev =
479
                {"fddi6", 0, 0, 0, 0, 0, 0, 0, 0, 0, &fddi7_dev, dfx_probe};
480
        static struct device fddi5_dev =
481
                {"fddi5", 0, 0, 0, 0, 0, 0, 0, 0, 0, &fddi6_dev, dfx_probe};
482
        static struct device fddi4_dev =
483
                {"fddi4", 0, 0, 0, 0, 0, 0, 0, 0, 0, &fddi5_dev, dfx_probe};
484
        static struct device fddi3_dev =
485
                {"fddi3", 0, 0, 0, 0, 0, 0, 0, 0, 0, &fddi4_dev, dfx_probe};
486
        static struct device fddi2_dev =
487
                {"fddi2", 0, 0, 0, 0, 0, 0, 0, 0, 0, &fddi3_dev, dfx_probe};
488
        static struct device fddi1_dev =
489
                {"fddi1", 0, 0, 0, 0, 0, 0, 0, 0, 0, &fddi2_dev, dfx_probe};
490
        static struct device fddi0_dev =
491
                {"fddi0", 0, 0, 0, 0, 0, 0, 0, 0, 0, &fddi1_dev, dfx_probe};
492
 
493
#undef  NEXT_DEV
494
#define NEXT_DEV        (&fddi0_dev)
495
#endif 
496
 
497
#ifdef CONFIG_NET_IPIP
498
        extern int tunnel_init(struct device *);
499
 
500
        static struct device tunnel_dev1 =
501
        {
502
                "tunl1",                /* IPIP tunnel                          */
503
                0x0,                    /* recv memory end                      */
504
                0x0,                    /* recv memory start                    */
505
                0x0,                    /* memory end                           */
506
                0x0,                    /* memory start                         */
507
                0x0,                    /* base I/O address                     */
508
                0,                       /* IRQ                                  */
509
                0, 0, 0,           /* flags                                */
510
                NEXT_DEV,               /* next device                          */
511
                tunnel_init             /* Fill in the details                  */
512
        };
513
 
514
        static struct device tunnel_dev0 =
515
        {
516
                "tunl0",                /* IPIP tunnel                          */
517
                0x0,                    /* recv memory end                      */
518
                0x0,                    /* recv memory start                    */
519
                0x0,                    /* memory end                           */
520
                0x0,                    /* memory start                         */
521
                0x0,                    /* base I/O address                     */
522
                0,                       /* IRQ                                  */
523
                0, 0, 0,           /* flags                                */
524
                &tunnel_dev1,           /* next device                          */
525
                tunnel_init             /* Fill in the details                  */
526
    };
527
#   undef       NEXT_DEV
528
#   define      NEXT_DEV        (&tunnel_dev0)
529
 
530
#endif
531
 
532
#ifdef CONFIG_APFDDI
533
    extern int apfddi_init(struct device *dev);
534
    static struct device fddi_dev = {
535
        "fddi", 0x0, 0x0, 0x0, 0x0, 0, 0, 0, 0, 0, NEXT_DEV, apfddi_init };
536
#   undef       NEXT_DEV
537
#   define      NEXT_DEV        (&fddi_dev)
538
#endif
539
 
540
#ifdef CONFIG_APBIF
541
    extern int bif_init(struct device *dev);
542
    static struct device bif_dev = {
543
        "bif", 0x0, 0x0, 0x0, 0x0, 0, 0, 0, 0, 0, NEXT_DEV, bif_init };
544
#   undef       NEXT_DEV
545
#   define      NEXT_DEV        (&bif_dev)
546
#endif
547
 
548
extern int loopback_init(struct device *dev);
549
struct device loopback_dev = {
550
        "lo",                   /* Software Loopback interface          */
551
        0x0,                    /* recv memory end                      */
552
        0x0,                    /* recv memory start                    */
553
        0x0,                    /* memory end                           */
554
        0x0,                    /* memory start                         */
555
        0,                       /* base I/O address                     */
556
        0,                       /* IRQ                                  */
557
        0, 0, 0,           /* flags                                */
558
        NEXT_DEV,               /* next device                          */
559
        loopback_init           /* loopback_init should set up the rest */
560
};
561
 
562
struct device *dev_base = &loopback_dev;

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.