|
472
|
1 //========================================================================== |
|
|
2 // |
|
|
3 // devs/eth/powerpc/csb281/include/devs_eth_csb281.inl |
|
|
4 // |
|
|
5 // PCI i82559 ethernet I/O definitions. |
|
|
6 // |
|
|
7 //========================================================================== |
|
|
8 //####ECOSGPLCOPYRIGHTBEGIN#### |
|
|
9 // ------------------------------------------- |
|
|
10 // This file is part of eCos, the Embedded Configurable Operating System. |
|
|
11 // Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc. |
|
479
|
12 // Copyright (C) 2002, 2003 Gary Thomas |
|
472
|
13 // |
|
|
14 // eCos is free software; you can redistribute it and/or modify it under |
|
|
15 // the terms of the GNU General Public License as published by the Free |
|
|
16 // Software Foundation; either version 2 or (at your option) any later version. |
|
|
17 // |
|
|
18 // eCos is distributed in the hope that it will be useful, but WITHOUT ANY |
|
|
19 // WARRANTY; without even the implied warranty of MERCHANTABILITY or |
|
|
20 // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
|
|
21 // for more details. |
|
|
22 // |
|
|
23 // You should have received a copy of the GNU General Public License along |
|
|
24 // with eCos; if not, write to the Free Software Foundation, Inc., |
|
|
25 // 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. |
|
|
26 // |
|
|
27 // As a special exception, if other files instantiate templates or use macros |
|
|
28 // or inline functions from this file, or you compile this file and link it |
|
|
29 // with other works to produce a work based on this file, this file does not |
|
|
30 // by itself cause the resulting work to be covered by the GNU General Public |
|
|
31 // License. However the source code for this file must still be made available |
|
|
32 // in accordance with section (3) of the GNU General Public License. |
|
|
33 // |
|
|
34 // This exception does not invalidate any other reasons why a work based on |
|
|
35 // this file might be covered by the GNU General Public License. |
|
|
36 // |
|
|
37 // Alternative licenses for eCos may be arranged by contacting Red Hat, Inc. |
|
|
38 // at http://sources.redhat.com/ecos/ecos-license/ |
|
|
39 // ------------------------------------------- |
|
|
40 //####ECOSGPLCOPYRIGHTEND#### |
|
|
41 //========================================================================== |
|
|
42 //#####DESCRIPTIONBEGIN#### |
|
|
43 // |
|
|
44 // Author(s): jskov |
|
|
45 // Contributors:jskov, gthomas |
|
|
46 // Date: 2001-01-25 |
|
479
|
47 // Purpose: PCI/i82559 ethernet defintions |
|
472
|
48 //####DESCRIPTIONEND#### |
|
|
49 //========================================================================== |
|
|
50 |
|
|
51 #include <cyg/hal/hal_intr.h> // CYGNUM_HAL_INTERRUPT_ETHR |
|
|
52 |
|
|
53 #ifdef CYGPKG_DEVS_ETH_CSB281_ETH0 |
|
|
54 |
|
479
|
55 #define CYGHWR_INTEL_I82559_PCI_MEM_MAP_BASE CYGMEM_SECTION_pci_window |
|
472
|
56 #define CYGHWR_INTEL_I82559_PCI_MEM_MAP_SIZE CYGMEM_SECTION_pci_window_SIZE |
|
|
57 #define CYGHWR_DEVS_ETH_INTEL_I82559_HAS_NO_EEPROM |
|
|
58 #define CYGHWR_DEVS_ETH_INTEL_I82559_USE_MEMORY |
|
|
59 |
|
|
60 static I82559 i82559_eth0_priv_data = { |
|
|
61 #ifdef CYGSEM_DEVS_ETH_CSB281_ETH0_SET_ESA |
|
|
62 hardwired_esa: 1, |
|
|
63 mac_address: CYGDAT_DEVS_ETH_CSB281_ETH0_ESA |
|
|
64 #else |
|
|
65 hardwired_esa: 0, |
|
|
66 #endif |
|
|
67 }; |
|
|
68 |
|
|
69 ETH_DRV_SC(i82559_sc0, |
|
|
70 &i82559_eth0_priv_data, // Driver specific data |
|
|
71 CYGDAT_DEVS_ETH_CSB281_ETH0_NAME, // Name for device |
|
|
72 i82559_start, |
|
|
73 i82559_stop, |
|
|
74 i82559_ioctl, |
|
|
75 i82559_can_send, |
|
|
76 i82559_send, |
|
|
77 i82559_recv, |
|
|
78 i82559_deliver, |
|
|
79 i82559_poll, |
|
|
80 i82559_int_vector |
|
|
81 ); |
|
|
82 |
|
|
83 NETDEVTAB_ENTRY(i82559_netdev0, |
|
|
84 "i82559_" CYGDAT_DEVS_ETH_CSB281_ETH0_NAME, |
|
|
85 i82559_init, |
|
|
86 &i82559_sc0); |
|
|
87 |
|
|
88 #endif // CYGPKG_DEVS_ETH_CSB281_ETH0 |
|
|
89 |
|
|
90 |
|
|
91 // These arrays are used for sanity checking of pointers |
|
|
92 I82559 * |
|
|
93 i82559_priv_array[CYGNUM_DEVS_ETH_INTEL_I82559_DEV_COUNT] = { |
|
|
94 #ifdef CYGPKG_DEVS_ETH_CSB281_ETH0 |
|
|
95 &i82559_eth0_priv_data, |
|
|
96 #endif |
|
|
97 }; |
|
|
98 |
|
|
99 #ifdef CYGDBG_USE_ASSERTS |
|
|
100 // These are only used when assertions are enabled |
|
|
101 cyg_netdevtab_entry_t * |
|
|
102 i82559_netdev_array[CYGNUM_DEVS_ETH_INTEL_I82559_DEV_COUNT] = { |
|
|
103 #ifdef CYGPKG_DEVS_ETH_CSB281_ETH0 |
|
|
104 &i82559_netdev0, |
|
|
105 #endif |
|
|
106 }; |
|
|
107 |
|
|
108 struct eth_drv_sc * |
|
|
109 i82559_sc_array[CYGNUM_DEVS_ETH_INTEL_I82559_DEV_COUNT] = { |
|
|
110 #ifdef CYGPKG_DEVS_ETH_CSB281_ETH0 |
|
|
111 &i82559_sc0, |
|
|
112 #endif |
|
|
113 }; |
|
|
114 #endif // CYGDBG_USE_ASSERTS |
|
|
115 |
|
|
116 // EOF devs_eth_csb281.inl |