LibXenon
Bare-metal Xbox 360 homebrew library
Loading...
Searching...
No Matches
usbeth.h
Go to the documentation of this file.
1/* *********************************************************************
2 * Broadcom Common Firmware Environment (CFE)
3 *
4 * USB Ethernet File: usbeth.h
5 *
6 * Driver for USB Ethernet devices.
7 *
8 *********************************************************************
9 *
10 * Copyright 2000,2001,2002,2003,2005
11 * Broadcom Corporation. All rights reserved.
12 *
13 * This software is furnished under license and may be used and
14 * copied only in accordance with the following terms and
15 * conditions. Subject to these conditions, you may download,
16 * copy, install, use, modify and distribute modified or unmodified
17 * copies of this software in source and/or binary form. No title
18 * or ownership is transferred hereby.
19 *
20 * 1) Any source code used, modified or distributed must reproduce
21 * and retain this copyright notice and list of conditions
22 * as they appear in the source file.
23 *
24 * 2) No right is granted to use any trade name, trademark, or
25 * logo of Broadcom Corporation. The "Broadcom Corporation"
26 * name may not be used to endorse or promote products derived
27 * from this software without the prior written permission of
28 * Broadcom Corporation.
29 *
30 * 3) THIS SOFTWARE IS PROVIDED "AS-IS" AND ANY EXPRESS OR
31 * IMPLIED WARRANTIES, INCLUDING BUT NOT LIMITED TO, ANY IMPLIED
32 * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
33 * PURPOSE, OR NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT
34 * SHALL BROADCOM BE LIABLE FOR ANY DAMAGES WHATSOEVER, AND IN
35 * PARTICULAR, BROADCOM SHALL NOT BE LIABLE FOR DIRECT, INDIRECT,
36 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
37 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
38 * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
39 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
40 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
41 * TORT (INCLUDING NEGLIGENCE OR OTHERWISE), EVEN IF ADVISED OF
42 * THE POSSIBILITY OF SUCH DAMAGE.
43 ********************************************************************* */
44
45#ifndef _USBETH_H__
46#define _USBETH_H__
47
48/* *********************************************************************
49 * USB-Ethernet adapter driver includes
50 ********************************************************************* */
51
52/* **************************************
53 * CATC Netmate adapter
54 ************************************** */
55
56#define CATC_MCAST_TBL_ADDR 0xFA80 //in Netmate's SRAM
57
58#define CATC_GET_MAC_ADDR 0xF2
59#define CATC_SET_REG 0xFA
60#define CATC_GET_REG 0xFB
61#define CATC_SET_MEM 0xFC
62
63#define CATC_TX_BUF_CNT_REG 0x20
64#define CATC_RX_BUF_CNT_REG 0x21
65#define CATC_ADV_OP_MODES_REG 0x22
66#define CATC_RX_FRAME_CNT_REG 0x24
67
68#define CATC_ETH_CTRL_REG 0x60
69#define CATC_ENET_STATUS_REG 0x61
70#define CATC_ETH_ADDR_0_REG 0x67 // Byte #0 (leftmost)
71#define CATC_LED_CTRL_REG 0x81
72
73
74/* *******************************************************************
75 * Admtek ADM8511 (Pegasus II) register and bit definitions.
76 *
77 * Reference:
78 * ADM 8511 Pegasus II USB / Fast Ethernet with MII Interface,
79 * Version 2.04
80 * ADMtek Incorporated, Hsinchu, Taiwan
81 ******************************************************************* */
82
83#define PEG_SET_REG 0xF1
84#define PEG_GET_REG 0xF0
85
86#define R_PEG_ETH_CTL0 0x00
87#define R_PEG_ETH_CTL1 0x01
88#define R_PEG_ETH_CTL2 0x02
89#define R_PEG_MCAST_TBL 0x08
90#define R_PEG_MAC_ADDR_0 0x10
91#define R_PEG_EEPROM_OFS 0x20
92#define R_PEG_EEPROM_DATA 0x21
93#define R_PEG_EEPROM_CTL 0x23
94#define R_PEG_PHY_ADDR 0x25
95#define R_PEG_PHY_DATA 0x26 //& 0x27 for 2 bytes
96#define R_PEG_PHY_CTRL 0x28
97#define R_PEG_INT_PHY 0x7b
98#define R_PEG_GPIO0 0x7e
99#define R_PEG_GPIO1 0x7f
100
101/* PHY Access Control Register (0x28) */
102#define PEG_PHY_WRITE 0x20
103#define PEG_PHY_READ 0x40
104
105
106/* *******************************************************************
107 * Realtek RTL8150 register and bit definitions.
108 *
109 * Reference:
110 * Realtek Single-Chip USB to Fast Ethernet Controller with
111 * MII Interface RTL8150L(M), Version 1.40
112 * Realtek Semiconductor Corporation, Hsinchu, Taiwan, 2002/2/18.
113 ******************************************************************* */
114
115#define RTEK_REG_ACCESS 0x05
116
117#define R_RTEK_MAC 0x0120
118#define R_RTEK_CMD 0x012E
119#define R_RTEK_TXCFG 0x012F
120#define R_RTEK_RXCFG 0x0130
121#define R_RTEK_TXSTAT 0x0132
122#define R_RTEK_RXSTAT 0x0133
123
124/* Command Register (0x012E) */
125#define RTEK_AUTOLOAD 0x01
126#define RTEK_TXENABLE 0x04
127#define RTEK_RXENABLE 0x08
128#define RTEK_RESET 0x10
129
130/* Receive Configuration Register (0x0130) */
131#define RTEK_MACADDR 0x04
132#define RTEK_BCASTADDR 0x08
133
134
135/* *******************************************************************
136 * Kawasaki LSI KL5KUSB101B register and bit definitions.
137 *
138 * Reference: inferred from *BSD kue drivers.
139 ******************************************************************* */
140
141/* Generic commands */
142#define KLSI_SEND_SCAN 0xFF
143
144/* MAC-specific commands */
145#define KLSI_GET_ETH_DESC 0x00
146#define KLSI_SET_MCAST_FILTER 0x01
147#define KLSI_SET_PKT_FILTER 0x02
148#define KLSI_SET_MAC 0x06
149#define KLSI_GET_MAC 0x07
150#define KLSI_SET_URB_SIZE 0x08
151#define KLSI_SET_SOFS 0x09
152
153/* Structure returned by GET_ETH_DESC */
154typedef struct klsi_ether_desc_s {
164
165/* Bit masks for SET_PKT_FILTER */
166#define KLSI_RX_PROMISC 0x0001
167#define KLSI_RX_ALLMULTI 0x0002
168#define KLSI_RX_UNICAST 0x0004
169#define KLSI_RX_BROADCAST 0x0008
170#define KLSI_RX_MULTICAST 0x0010
171
172
173/* *********************************************************************
174 * Device register/unregister
175 ********************************************************************* */
176
177typedef struct usbeth_disp_s {
178 int (*read)(void *,hsaddr_t buf);
179 int (*inpstat)(void *);
180 int (*write)(void *,hsaddr_t buf,int len);
181 int (*getaddr)(void *,hsaddr_t addr);
183
184int usbeth_register(usbeth_disp_t *disp,void *softc);
185void usbeth_unregister(void *softc);
186
187#endif /*__USBETH_H_ */
void * hsaddr_t
Definition: cfe.h:11
u8 uint8_t
Definition: libfdt_env.h:9
uint8_t klsi_rsvd1
Definition: usbeth.h:157
uint8_t klsi_len
Definition: usbeth.h:155
uint8_t klsi_maxseg[2]
Definition: usbeth.h:160
uint8_t klsi_mcastfilt[2]
Definition: usbeth.h:161
uint8_t klsi_rsvd2
Definition: usbeth.h:162
uint8_t klsi_macaddr[6]
Definition: usbeth.h:158
uint8_t klsi_etherstats[4]
Definition: usbeth.h:159
uint8_t klsi_rsvd0
Definition: usbeth.h:156
int(* read)(void *, hsaddr_t buf)
Definition: usbeth.h:178
int(* write)(void *, hsaddr_t buf, int len)
Definition: usbeth.h:180
int(* getaddr)(void *, hsaddr_t addr)
Definition: usbeth.h:181
int(* inpstat)(void *)
Definition: usbeth.h:179
struct usbeth_disp_s usbeth_disp_t
int usbeth_register(usbeth_disp_t *disp, void *softc)
Definition: usbeth.c:78
struct klsi_ether_desc_s klsi_ether_desc_t
void usbeth_unregister(void *softc)
Definition: usbeth.c:97