Mercurial > ecos-v3_0-branch
annotate packages/devs/eth/arm/xsengine/current/include/devs_eth_xsengine.inl @ 2729:74dbf4c3f2e1 after-copyright-change-20090129
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
| author | jlarmour |
|---|---|
| date | Thu, 29 Jan 2009 17:47:46 +0000 |
| parents | 27f925f10983 |
| children |
| rev | line source |
|---|---|
| 1902 | 1 //========================================================================== |
| 2 // | |
| 3 // | |
| 4 // XSEngine ethernet I/O definitions. | |
| 5 // | |
| 6 //========================================================================== | |
|
2729
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
1902
diff
changeset
|
7 // ####ECOSGPLCOPYRIGHTBEGIN#### |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
1902
diff
changeset
|
8 // ------------------------------------------- |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
1902
diff
changeset
|
9 // This file is part of eCos, the Embedded Configurable Operating System. |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
1902
diff
changeset
|
10 // Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2005 Free Software Foundation, Inc. |
| 1902 | 11 // |
|
2729
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
1902
diff
changeset
|
12 // eCos is free software; you can redistribute it and/or modify it under |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
1902
diff
changeset
|
13 // the terms of the GNU General Public License as published by the Free |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
1902
diff
changeset
|
14 // Software Foundation; either version 2 or (at your option) any later |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
1902
diff
changeset
|
15 // version. |
| 1902 | 16 // |
|
2729
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
1902
diff
changeset
|
17 // eCos is distributed in the hope that it will be useful, but WITHOUT |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
1902
diff
changeset
|
18 // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
1902
diff
changeset
|
19 // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
1902
diff
changeset
|
20 // for more details. |
| 1902 | 21 // |
|
2729
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
1902
diff
changeset
|
22 // You should have received a copy of the GNU General Public License |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
1902
diff
changeset
|
23 // along with eCos; if not, write to the Free Software Foundation, Inc., |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
1902
diff
changeset
|
24 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
| 1902 | 25 // |
|
2729
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
1902
diff
changeset
|
26 // As a special exception, if other files instantiate templates or use |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
1902
diff
changeset
|
27 // macros or inline functions from this file, or you compile this file |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
1902
diff
changeset
|
28 // and link it with other works to produce a work based on this file, |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
1902
diff
changeset
|
29 // this file does not by itself cause the resulting work to be covered by |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
1902
diff
changeset
|
30 // the GNU General Public License. However the source code for this file |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
1902
diff
changeset
|
31 // must still be made available in accordance with section (3) of the GNU |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
1902
diff
changeset
|
32 // General Public License v2. |
| 1902 | 33 // |
|
2729
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
1902
diff
changeset
|
34 // This exception does not invalidate any other reasons why a work based |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
1902
diff
changeset
|
35 // on this file might be covered by the GNU General Public License. |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
1902
diff
changeset
|
36 // ------------------------------------------- |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
1902
diff
changeset
|
37 // ####ECOSGPLCOPYRIGHTEND#### |
| 1902 | 38 //========================================================================== |
| 39 //#####DESCRIPTIONBEGIN#### | |
| 40 // | |
| 41 // Author(s): Kurt Stremerch | |
| 42 // Contributors: Jordi Colomer, nickg | |
| 43 // Date: 2005-02-23 | |
| 44 // Purpose: XSEngine ethernet definitions | |
| 45 //####DESCRIPTIONEND#### | |
| 46 //========================================================================== | |
| 47 | |
| 48 #include <pkgconf/system.h> | |
| 49 #include <pkgconf/devs_eth_arm_xscale_xsengine.h> | |
| 50 #include <cyg/hal/hal_intr.h> | |
| 51 | |
| 52 #ifdef CYGPKG_REDBOOT | |
| 53 # include <pkgconf/redboot.h> | |
| 54 # ifdef CYGSEM_REDBOOT_FLASH_CONFIG | |
| 55 # include <redboot.h> | |
| 56 # include <flash_config.h> | |
| 57 # endif | |
| 58 #endif | |
| 59 | |
| 60 #define LAN91CXX_IS_LAN91C111 | |
| 61 #define CYGNUM_DEVS_ETH_SMSC_LAN91CXX_SHIFT_ADDR 1 | |
| 62 | |
| 63 #ifdef CYGPKG_DEVS_ETH_XSENGINE_ETH0 | |
| 64 | |
| 65 #if defined(CYGPKG_REDBOOT) && defined(CYGSEM_REDBOOT_FLASH_CONFIG) | |
| 66 RedBoot_config_option("Set " CYGDAT_DEVS_ETH_XSENGINE_ETH0_NAME " network hardware address [MAC]", | |
| 67 eth0_esa, | |
| 68 ALWAYS_ENABLED, true, | |
| 69 CONFIG_BOOL, false | |
| 70 ); | |
| 71 RedBoot_config_option(CYGDAT_DEVS_ETH_XSENGINE_ETH0_NAME " network hardware address [MAC]", | |
| 72 eth0_esa_data, | |
| 73 "eth0_esa", true, | |
| 74 CONFIG_ESA, 0 | |
| 75 ); | |
| 76 #endif // CYGPKG_REDBOOT && CYGSEM_REDBOOT_FLASH_CONFIG | |
| 77 | |
| 78 #ifdef CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT | |
| 79 // Note that this section *is* active in an application, outside RedBoot, | |
| 80 // where the above section is not included. | |
| 81 | |
| 82 # include <cyg/hal/hal_if.h> | |
| 83 | |
| 84 # ifndef CONFIG_ESA | |
| 85 # define CONFIG_ESA (6) | |
| 86 # endif | |
| 87 # ifndef CONFIG_BOOL | |
| 88 # define CONFIG_BOOL (1) | |
| 89 # endif | |
| 90 | |
| 91 cyg_bool | |
| 92 _xsengine_provide_eth0_esa(struct lan91cxx_priv_data* cpd) | |
| 93 { | |
| 94 cyg_bool set_esa; | |
| 95 int ok; | |
| 96 ok = CYGACC_CALL_IF_FLASH_CFG_OP( CYGNUM_CALL_IF_FLASH_CFG_GET, | |
| 97 "eth0_esa", &set_esa, CONFIG_BOOL); | |
| 98 if (ok && set_esa) { | |
| 99 ok = CYGACC_CALL_IF_FLASH_CFG_OP( CYGNUM_CALL_IF_FLASH_CFG_GET, | |
| 100 "eth0_esa_data", cpd->enaddr, CONFIG_ESA); | |
| 101 } | |
| 102 return ok && set_esa; | |
| 103 } | |
| 104 | |
| 105 #endif // CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT | |
| 106 | |
| 107 static lan91cxx_priv_data lan91cxx_eth0_priv_data = { | |
| 108 base : (unsigned short *) 0x60000000, | |
| 109 #ifdef CYGSEM_DEVS_ETH_XSENGINE_ETH0_SET_ESA | |
| 110 enaddr : CYGDAT_DEVS_ETH_XSENGINE_ETH0_ESA, | |
| 111 hardwired_esa : true, | |
| 112 #else | |
| 113 hardwired_esa : false, | |
| 114 #endif | |
| 115 #ifdef CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT | |
| 116 provide_esa : &_xsengine_provide_eth0_esa, | |
| 117 #else | |
| 118 provide_esa : NULL, | |
| 119 #endif | |
| 120 }; | |
| 121 | |
| 122 ETH_DRV_SC(lan91cxx_sc, | |
| 123 &lan91cxx_eth0_priv_data, // Driver specific data | |
| 124 CYGDAT_DEVS_ETH_XSENGINE_ETH0_NAME, // Name for device | |
| 125 lan91cxx_start, | |
| 126 lan91cxx_stop, | |
| 127 lan91cxx_control, | |
| 128 lan91cxx_can_send, | |
| 129 lan91cxx_send, | |
| 130 lan91cxx_recv, | |
| 131 lan91cxx_deliver, | |
| 132 lan91cxx_poll, | |
| 133 lan91cxx_int_vector | |
| 134 ); | |
| 135 | |
| 136 NETDEVTAB_ENTRY(lan91cxx_netdev, | |
| 137 "lan91cxx_" CYGDAT_DEVS_ETH_XSENGINE_ETH0_NAME, | |
| 138 smsc_lan91cxx_init, | |
| 139 &lan91cxx_sc); | |
| 140 | |
| 141 #endif // CYGPKG_DEVS_ETH_XSENGINE_ETH0 |
