blob: 9820d7bf47d1cb7eade6377cb6b5396bb1effb2e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
/* SPDX-License-Identifier: BSD-3-Clause
* Copyright 2018-2019 NXP
*/
#ifndef _PFE_ETH_H_
#define _PFE_ETH_H_
#include <compat.h>
#include <rte_ethdev.h>
#include <rte_ethdev_vdev.h>
#define ETH_ALEN 6
#define GEMAC_NO_PHY BIT(0)
#define PFE_SOC_ID_FILE "/sys/devices/soc0/soc_id"
extern unsigned int pfe_svr;
#define SVR_LS1012A_REV2 0x87040020
#define SVR_LS1012A_REV1 0x87040010
#define PFE_ETH_OVERHEAD (RTE_ETHER_HDR_LEN + RTE_ETHER_CRC_LEN)
#define MAX_MTU_ON_REV1 1878
struct ls1012a_eth_platform_data {
/* device specific information */
u32 device_flags;
char name[16];
/* board specific information */
u32 mii_config;
u32 phy_flags;
u32 gem_id;
u32 bus_id;
u32 phy_id;
u32 mdio_muxval;
u8 mac_addr[ETH_ALEN];
};
struct ls1012a_mdio_platform_data {
int enabled;
int irq[32];
u32 phy_mask;
int mdc_div;
};
struct ls1012a_pfe_platform_data {
struct ls1012a_eth_platform_data ls1012a_eth_pdata[3];
struct ls1012a_mdio_platform_data ls1012a_mdio_pdata[3];
};
#define EMAC_TXQ_CNT 16
#define EMAC_TXQ_DEPTH (HIF_TX_DESC_NT)
#define JUMBO_FRAME_SIZE 10258
#define EMAC_RXQ_CNT 1
#define EMAC_RXQ_DEPTH HIF_RX_DESC_NT
struct pfe_eth_priv_s {
struct pfe *pfe;
struct hif_client_s client;
int low_tmu_q;
int high_tmu_q;
struct rte_eth_dev *ndev;
struct rte_eth_stats stats;
int id;
int promisc;
int link_fd;
spinlock_t lock; /* protect member variables */
void *EMAC_baseaddr;
/* This points to the EMAC base from where we access PHY */
void *PHY_baseaddr;
void *GPI_baseaddr;
struct ls1012a_eth_platform_data *einfo;
};
#endif /* _PFE_ETH_H_ */
|