57 lines
1.3 KiB
C
57 lines
1.3 KiB
C
|
/* SPDX-License-Identifier: BSD-3-Clause
|
||
|
* Copyright 2019 NXP
|
||
|
*/
|
||
|
|
||
|
#ifndef _PFE_MOD_H_
|
||
|
#define _PFE_MOD_H_
|
||
|
|
||
|
struct pfe;
|
||
|
|
||
|
#include "pfe_eth.h"
|
||
|
|
||
|
#define PHYID_MAX_VAL 32
|
||
|
|
||
|
/* PFE DPDK driver supports two interfaces.
|
||
|
*/
|
||
|
#define PFE_CDEV_ETH_COUNT 2
|
||
|
|
||
|
/* PFE DPDK driver needs a kernel module named "pfe.ko", This module
|
||
|
* is required for PHY initialisation and creates a character device
|
||
|
* "pfe_us_cdev" for IOCTL support. PFE DPDK driver uses this character
|
||
|
* device for link status.
|
||
|
*/
|
||
|
#define PFE_CDEV_PATH "/dev/pfe_us_cdev"
|
||
|
#define PFE_CDEV_INVALID_FD -1
|
||
|
#define PFE_NAME_PMD net_pfe
|
||
|
|
||
|
/* used when 'read' call is issued, returning PFE_CDEV_ETH_COUNT number of
|
||
|
* pfe_shared_info as array.
|
||
|
*/
|
||
|
struct pfe_shared_info {
|
||
|
uint32_t phy_id; /* Link phy ID */
|
||
|
uint8_t state; /* Has either 0 or 1 */
|
||
|
};
|
||
|
|
||
|
struct pfe_eth {
|
||
|
struct pfe_eth_priv_s *eth_priv[PFE_CDEV_ETH_COUNT];
|
||
|
};
|
||
|
|
||
|
struct pfe {
|
||
|
uint64_t ddr_phys_baseaddr;
|
||
|
void *ddr_baseaddr;
|
||
|
uint64_t ddr_size;
|
||
|
void *cbus_baseaddr;
|
||
|
uint64_t cbus_size;
|
||
|
struct pfe_eth eth;
|
||
|
int mdio_muxval[PHYID_MAX_VAL];
|
||
|
uint8_t nb_devs;
|
||
|
uint8_t max_intf;
|
||
|
int cdev_fd;
|
||
|
};
|
||
|
|
||
|
/* IOCTL Commands */
|
||
|
#define PFE_CDEV_ETH0_STATE_GET _IOR('R', 0, int)
|
||
|
#define PFE_CDEV_ETH1_STATE_GET _IOR('R', 1, int)
|
||
|
#define PFE_CDEV_HIF_INTR_EN _IOWR('R', 2, int)
|
||
|
#endif /* _PFE_MOD_H */
|