1 # ====================================================================
3 # intel_i82544_eth_drivers.cdl
5 # Intel 82544 ethernet driver
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.
13 ## eCos is free software; you can redistribute it and/or modify it under
14 ## the terms of the GNU General Public License as published by the Free
15 ## Software Foundation; either version 2 or (at your option) any later version.
17 ## eCos is distributed in the hope that it will be useful, but WITHOUT ANY
18 ## WARRANTY; without even the implied warranty of MERCHANTABILITY or
19 ## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
22 ## You should have received a copy of the GNU General Public License along
23 ## with eCos; if not, write to the Free Software Foundation, Inc.,
24 ## 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
26 ## As a special exception, if other files instantiate templates or use macros
27 ## or inline functions from this file, or you compile this file and link it
28 ## with other works to produce a work based on this file, this file does not
29 ## by itself cause the resulting work to be covered by the GNU General Public
30 ## License. However the source code for this file must still be made available
31 ## in accordance with section (3) of the GNU General Public License.
33 ## This exception does not invalidate any other reasons why a work based on
34 ## this file might be covered by the GNU General Public License.
36 ## Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
37 ## at http://sources.redhat.com/ecos/ecos-license/
38 ## -------------------------------------------
39 #####ECOSGPLCOPYRIGHTEND####
40 # ====================================================================
41 ######DESCRIPTIONBEGIN####
43 # Author(s): nickg, from i82559 original
45 # Contributors: hmt, gthomas, jskov
48 #####DESCRIPTIONEND####
50 # ====================================================================
52 cdl_package CYGPKG_DEVS_ETH_INTEL_I82544 {
53 display "Intel 82544 ethernet driver"
54 description "Ethernet driver for Intel 82544 Gigabit controller."
56 parent CYGPKG_IO_ETH_DRIVERS
57 active_if CYGPKG_IO_ETH_DRIVERS
59 active_if CYGINT_DEVS_ETH_INTEL_I82544_REQUIRED
61 include_dir cyg/devs/eth
63 # SNMP demands to know stuff; this sadly makes us break the neat
64 # abstraction of the device having nothing exported.
65 include_files include/i82544_info.h
66 # and tell them that it is available
68 puts $::cdl_system_header \
69 "#define CYGBLD_DEVS_ETH_DEVICE_H <pkgconf/devs_eth_intel_i82544.h>"
71 puts $::cdl_header "#include CYGDAT_DEVS_ETH_INTEL_I82544_CFG";
74 compile -library=libextras.a if_i82544.c
76 cdl_option CYGDBG_DEVS_ETH_INTEL_I82544_CHATTER {
77 display "Prints ethernet device status info during startup"
80 The ethernet device initialization code can print lots of info
81 to confirm that it has found the devices on the PCI bus, read
82 the MAC address from EEPROM correctly, and so on, and also
83 displays the mode (10/100MHz, half/full duplex) of the
87 cdl_option CYGNUM_DEVS_ETH_INTEL_I82544_DEV_COUNT {
88 display "Number of supported interfaces."
89 calculated { CYGINT_DEVS_ETH_INTEL_I82544_REQUIRED }
92 This option selects the number of PCI ethernet interfaces to
93 be supported by the driver."
96 cdl_component CYGDBG_DEVS_ETH_INTEL_I82544_KEEP_STATISTICS {
97 display "Keep Ethernet statistics"
100 The ethernet device can maintain statistics about the network,
101 specifically a great variety of error rates which are useful
102 for network management. SNMP for example uses this
103 information. There is some performance cost in maintaining
104 this information; disable this option to recoup that."
106 cdl_option CYGDBG_DEVS_ETH_INTEL_I82544_KEEP_82544_STATISTICS {
107 display "Keep i82544 Internal statistics"
110 The i82544 keeps internal counters, and it is possible to
111 acquire these. But the i82544 (reputedly) does not service
112 the network whilst uploading the data to RAM from its
113 internal registers. If throughput is a problem, disable
114 this option to acquire only those statistics gathered by
115 software, so that the i82544 never sleeps."
119 cdl_component CYGPKG_DEVS_ETH_INTEL_I82544_WRITE_EEPROM {
120 display "SIOCSIFHWADDR records MAC address in EEPROM"
123 The ioctl() socket call with operand SIOCSIFHWADDR sets the
124 interface hardware address - the MAC address or ethernet
125 address. This option causes the new MAC address to be written
126 into the EEPROM associated with the interface, so that the new
127 MAC address is permanently recorded. Doing this should be a
128 carefully chosen decision, hence this option."
131 cdl_option CYGNUM_DEVS_ETH_INTEL_I82544_MAX_RX_DESCRIPTORS {
132 display "Maximum number of RX descriptors"
134 default_value { CYGPKG_REDBOOT ? 8 : 128 }
135 define MAX_RX_DESCRIPTORS
137 An RX descriptor is used for each ethernet frame required
138 to be passed to the upper networking layers. This option
139 sets the maximum number of these. Higher numbers use more
140 memory, lower numbers will reduce performance. The system
141 appears to work OK with as few as 8 descriptors but limps
142 painfully with only 4. Performance is better with more than
143 8, but assuming the size of non-cached (so useless for anything
144 else) memory window is 1Mb, we might as well use it all.
145 128 RX and TX descriptors uses the whole 1Mb, near enough."
148 cdl_option CYGNUM_DEVS_ETH_INTEL_I82544_MAX_TX_DESCRIPTORS {
149 display "Maximum number of TX descriptors"
151 default_value { CYGPKG_REDBOOT ? 8 : 128 }
152 define MAX_TX_DESCRIPTORS
154 A TX descriptor is used for each ethernet frame passed down
155 from upper networking layers for transmission. This option
156 sets the maximum number of these. Higher numbers use more
157 memory, lower numbers will reduce performance. The system
158 appears to work OK with as few as 8 descriptors but limps
159 painfully with only 4. Performance is better with more than
160 8, but assuming the size of non-cached (so useless for anything
161 else) memory window is 1Mb, we might as well use it all.
162 128 RX and TX descriptors uses the whole 1Mb, near enough."
165 cdl_component CYGPKG_DEVS_ETH_INTEL_I82544_OPTIONS {
166 display "Intel 82544 ethernet driver build options"
170 cdl_option CYGPKG_DEVS_ETH_INTEL_I82544_CFLAGS_ADD {
171 display "Additional compiler flags"
174 default_value { "-D_KERNEL -D__ECOS" }
176 This option modifies the set of compiler flags for
177 building the Intel 82544 ethernet driver
178 package. These flags are used in addition to the set of
183 # EOF intel_i82544_eth_drivers.cdl