1 # ====================================================================
3 # rltk_8139_eth_drivers.cdl
5 # RealTek 8139 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): Eric Doenges
48 #####DESCRIPTIONEND####
50 # ====================================================================
52 cdl_package CYGPKG_DEVS_ETH_RLTK_8139 {
53 display "RealTek 8139 ethernet driver"
54 description "Ethernet driver for RealTek 8139 controller."
56 parent CYGPKG_IO_ETH_DRIVERS
57 active_if CYGPKG_IO_ETH_DRIVERS
58 active_if CYGINT_DEVS_ETH_RLTK_8139_REQUIRED
60 implements CYGINT_IO_ETH_MULTICAST
62 include_dir cyg/devs/eth
64 # SNMP demands to know stuff; this sadly makes us break the neat
65 # abstraction of the device having nothing exported.
66 # include_files include/8139_info.h
67 # and tell them that it is available
69 puts $::cdl_system_header \
70 "#define CYGBLD_DEVS_ETH_DEVICE_H <pkgconf/devs_eth_rltk_8139.h>"
72 puts $::cdl_header "#include CYGDAT_DEVS_ETH_RLTK_8139_CFG";
75 compile -library=libextras.a if_8139.c
77 cdl_component CYGPKG_DEVS_ETH_RLTK_8139_SHARE_INTERRUPTS {
78 display "Share interrupt with other devices"
81 If this option is enabled, the driver does not assume that it is
82 in sole possession of the interrupt pin used by the 8139."
84 cdl_option CYGPKG_DEVS_ETH_RLTK_8139_MASK_INTERRUPTS_IN_8139 {
85 display "Mask 8139 interrupts on chip"
88 If this option is enabled, the driver masks interrupts in the 8139's
89 status register, and does not mask the interrupt vector. This is
90 only useful if the 8139 must share it's interrupt line with other
95 cdl_option CYGDBG_DEVS_ETH_RLTK_8139_CHATTER {
96 display "Print debugging messages"
99 If this option is set, a lot of debugging messages are printed
100 to the console to help debug the driver."
103 # cdl_component CYGDBG_DEVS_ETH_RLTK_8139_KEEP_STATISTICS {
104 # display "Keep Ethernet statistics"
107 # The ethernet device can maintain statistics about the network,
108 # specifically a great variety of error rates which are useful
109 # for network management. SNMP for example uses this
110 # information. There is some performance cost in maintaining
111 # this information; disable this option to recoup that."
113 # cdl_option CYGDBG_DEVS_ETH_RLTK_8139_KEEP_8139_STATISTICS {
114 # display "Keep RealTek 8139 internal statistics"
117 # The i82559 keeps internal counters, and it is possible to
118 # acquire these. But the i82559 (reputedly) does not service
119 # the network whilst uploading the data to RAM from its
120 # internal registers. If throughput is a problem, disable
121 # this option to acquire only those statistics gathered by
122 # software, so that the i82559 never sleeps."
126 # cdl_component CYGPKG_DEVS_ETH_RLTK_8139_WRITE_EEPROM {
127 # display "SIOCSIFHWADDR records MAC address in EEPROM"
130 # The ioctl() socket call with operand SIOCSIFHWADDR sets the
131 # interface hardware address - the MAC address or ethernet
132 # address. This option causes the new MAC address to be written
133 # into the EEPROM associated with the interface, so that the new
134 # MAC address is permanently recorded. Doing this should be a
135 # carefully chosen decision, hence this option."
138 cdl_option CYGNUM_DEVS_ETH_RLTK_8139_RX_BUF_LEN_IDX {
139 display "Size of the receive ring"
142 default_value { CYGPKG_REDBOOT ? 0 : 2 }
143 define RX_BUF_LEN_IDX
145 The 8139 stores all received packets in a single 'rx ring'
146 located somewhere in physical memory. The size of this ring
147 can be varied from ~8k to ~64k; however the driver currently
148 supports a maximum buffer size of only ~32k (so we can use
149 the 8139's WRAP mode). The actual buffer size is
150 8192<<x + 16 + 1536 bytes, with x being the value of this
154 cdl_component CYGPKG_DEVS_ETH_RLTK_8139_OPTIONS {
155 display "RealTek 8139 ethernet driver build options"
159 cdl_option CYGPKG_DEVS_ETH_RLTK_8139_CFLAGS_ADD {
160 display "Additional compiler flags"
163 default_value { "-D_KERNEL -D__ECOS" }
165 This option modifies the set of compiler flags for
166 building the RealTek 8139 ethernet driver package. These
167 flags are used in addition to the set of global flags."
171 # EOF rltk_8139_eth_drivers.cdl