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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [ecos-3.0/] [packages/] [devs/] [eth/] [arm/] [xsengine/] [current/] [include/] [devs_eth_xsengine.inl] - Blame information for rev 810

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 786 skrzyp
//==========================================================================
2
//
3
//
4
//      XSEngine ethernet I/O definitions.
5
//
6
//==========================================================================
7
// ####ECOSGPLCOPYRIGHTBEGIN####
8
// -------------------------------------------
9
// This file is part of eCos, the Embedded Configurable Operating System.
10
// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
11
//
12
// eCos is free software; you can redistribute it and/or modify it under
13
// the terms of the GNU General Public License as published by the Free
14
// Software Foundation; either version 2 or (at your option) any later
15
// version.
16
//
17
// eCos is distributed in the hope that it will be useful, but WITHOUT
18
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
19
// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
20
// for more details.
21
//
22
// You should have received a copy of the GNU General Public License
23
// along with eCos; if not, write to the Free Software Foundation, Inc.,
24
// 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
25
//
26
// As a special exception, if other files instantiate templates or use
27
// macros or inline functions from this file, or you compile this file
28
// and link it with other works to produce a work based on this file,
29
// this file does not by itself cause the resulting work to be covered by
30
// the GNU General Public License. However the source code for this file
31
// must still be made available in accordance with section (3) of the GNU
32
// General Public License v2.
33
//
34
// This exception does not invalidate any other reasons why a work based
35
// on this file might be covered by the GNU General Public License.
36
// -------------------------------------------
37
// ####ECOSGPLCOPYRIGHTEND####
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 
49
#include 
50
#include 
51
 
52
#ifdef CYGPKG_REDBOOT
53
# include 
54
# ifdef CYGSEM_REDBOOT_FLASH_CONFIG
55
#  include 
56
#  include 
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 
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

powered by: WebSVN 2.1.0

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