Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/arch/powerpc/sysdev/bestcomm/fec.h
10818 views
1
/*
2
* Header for Bestcomm FEC tasks driver
3
*
4
*
5
* Copyright (C) 2006-2007 Sylvain Munaut <[email protected]>
6
* Copyright (C) 2003-2004 MontaVista, Software, Inc.
7
* ( by Dale Farnsworth <[email protected]> )
8
*
9
* This file is licensed under the terms of the GNU General Public License
10
* version 2. This program is licensed "as is" without any warranty of any
11
* kind, whether express or implied.
12
*/
13
14
#ifndef __BESTCOMM_FEC_H__
15
#define __BESTCOMM_FEC_H__
16
17
18
struct bcom_fec_bd {
19
u32 status;
20
u32 skb_pa;
21
};
22
23
#define BCOM_FEC_TX_BD_TFD 0x08000000ul /* transmit frame done */
24
#define BCOM_FEC_TX_BD_TC 0x04000000ul /* transmit CRC */
25
#define BCOM_FEC_TX_BD_ABC 0x02000000ul /* append bad CRC */
26
27
#define BCOM_FEC_RX_BD_L 0x08000000ul /* buffer is last in frame */
28
#define BCOM_FEC_RX_BD_BC 0x00800000ul /* DA is broadcast */
29
#define BCOM_FEC_RX_BD_MC 0x00400000ul /* DA is multicast and not broadcast */
30
#define BCOM_FEC_RX_BD_LG 0x00200000ul /* Rx frame length violation */
31
#define BCOM_FEC_RX_BD_NO 0x00100000ul /* Rx non-octet aligned frame */
32
#define BCOM_FEC_RX_BD_CR 0x00040000ul /* Rx CRC error */
33
#define BCOM_FEC_RX_BD_OV 0x00020000ul /* overrun */
34
#define BCOM_FEC_RX_BD_TR 0x00010000ul /* Rx frame truncated */
35
#define BCOM_FEC_RX_BD_LEN_MASK 0x000007fful /* mask for length of received frame */
36
#define BCOM_FEC_RX_BD_ERRORS (BCOM_FEC_RX_BD_LG | BCOM_FEC_RX_BD_NO | \
37
BCOM_FEC_RX_BD_CR | BCOM_FEC_RX_BD_OV | BCOM_FEC_RX_BD_TR)
38
39
40
extern struct bcom_task *
41
bcom_fec_rx_init(int queue_len, phys_addr_t fifo, int maxbufsize);
42
43
extern int
44
bcom_fec_rx_reset(struct bcom_task *tsk);
45
46
extern void
47
bcom_fec_rx_release(struct bcom_task *tsk);
48
49
50
extern struct bcom_task *
51
bcom_fec_tx_init(int queue_len, phys_addr_t fifo);
52
53
extern int
54
bcom_fec_tx_reset(struct bcom_task *tsk);
55
56
extern void
57
bcom_fec_tx_release(struct bcom_task *tsk);
58
59
60
#endif /* __BESTCOMM_FEC_H__ */
61
62
63