122 lines
2.9 KiB
C
122 lines
2.9 KiB
C
#ifndef _RTL8370_ASICDRV_H_
|
|
#define _RTL8370_ASICDRV_H_
|
|
|
|
#include <rtk_types.h>
|
|
#include <rtl8370_reg.h>
|
|
#include <rtl8370_base.h>
|
|
#include <rtk_error.h>
|
|
|
|
#define RTL8370_REGBITLENGTH 16
|
|
#define RTL8370_REGDATAMAX 0xFFFF
|
|
|
|
#define RTL8370_VIDMAX 0xFFF
|
|
#define RTL8370_EVIDMAX 0x1FFF
|
|
#define RTL8370_CVLANMCNO 32
|
|
#define RTL8370_CVIDXMAX (RTL8370_CVLANMCNO - 1)
|
|
|
|
#define RTL8370_PRIMAX 7
|
|
|
|
#define RTL8370_PRIDECMAX 0xFF
|
|
|
|
#define RTL8370_PORTNO 16
|
|
#define RTL8370_PORTIDMAX (RTL8370_PORTNO - 1)
|
|
#define RTL8370_PMSKMAX ((1 << (RTL8370_PORTNO)) - 1)
|
|
#define RTL8370_PORTMASK 0xFFFF
|
|
|
|
#define RTL8370_SVIDXNO 64
|
|
#define RTL8370_SVIDXMAX (RTL8370_SVIDXNO - 1)
|
|
#define RTL8370_MSTIMAX 15
|
|
|
|
#define RTL8370_METERNO 64
|
|
#define RTL8370_METERMAX (RTL8370_METERNO - 1)
|
|
|
|
#define RTL8370_QUEUENO 8
|
|
#define RTL8370_QIDMAX (RTL8370_QUEUENO - 1)
|
|
|
|
#define RTL8370_PHY_BUSY_CHECK_COUNTER 1000
|
|
#define RTL8370_PHYNO 8
|
|
#define RTL8370_PHYIDMAX (RTL8370_PHYNO - 1)
|
|
|
|
#define RTL8370_QOS_GRANULARTY_MAX 0x1FFFF
|
|
#define RTL8370_QOS_GRANULARTY_LSB_MASK 0xFFFF
|
|
#define RTL8370_QOS_GRANULARTY_LSB_OFFSET 0
|
|
#define RTL8370_QOS_GRANULARTY_MSB_MASK 0x10000
|
|
#define RTL8370_QOS_GRANULARTY_MSB_OFFSET 16
|
|
|
|
#define RTL8370_QOS_GRANULARTY_UNIT_KBPS 8
|
|
|
|
#define RTL8370_QOS_RATE_INPUT_MAX (0x1FFFF * 8)
|
|
#define RTL8370_QOS_RATE_INPUT_MIN 8
|
|
|
|
#define RTL8370_QUEUE_MASK 0xFF
|
|
|
|
#define RTL8370_EFIDMAX 0x7
|
|
#define RTL8370_FIDMAX 0xFFF
|
|
|
|
/* the above macro is generated by genDotH */
|
|
#define RTL8370_VALID_REG_NO 3236
|
|
|
|
/*=======================================================================
|
|
* Enum
|
|
*========================================================================*/
|
|
enum RTL8370_TABLE_ACCESS_OP
|
|
{
|
|
TB_OP_READ = 0,
|
|
TB_OP_WRITE
|
|
};
|
|
|
|
enum RTL8370_TABLE_ACCESS_TARGET
|
|
{
|
|
TB_TARGET_ACLRULE = 1,
|
|
TB_TARGET_ACLACT,
|
|
TB_TARGET_CVLAN,
|
|
TB_TARGET_L2
|
|
};
|
|
|
|
#define RTL8370_TABLE_ACCESS_REG_DATA(op, target) ((op << 4) | target)
|
|
|
|
/*=======================================================================
|
|
* Structures
|
|
*========================================================================*/
|
|
|
|
typedef struct smi_ether_addr_s
|
|
{
|
|
|
|
#ifdef _LITTLE_ENDIAN
|
|
uint16 mac0 : 8;
|
|
uint16 mac1 : 8;
|
|
uint16 mac2 : 8;
|
|
uint16 mac3 : 8;
|
|
uint16 mac4 : 8;
|
|
uint16 mac5 : 8;
|
|
#else
|
|
uint16 mac1 : 8;
|
|
uint16 mac0 : 8;
|
|
uint16 mac3 : 8;
|
|
uint16 mac2 : 8;
|
|
uint16 mac5 : 8;
|
|
uint16 mac4 : 8;
|
|
#endif
|
|
|
|
} smi_ether_addr_t;
|
|
|
|
#ifdef __cplusplus
|
|
extern "C"
|
|
{
|
|
#endif
|
|
|
|
extern ret_t rtl8370_setAsicRegBit(uint16 reg, int bitNum, uint16 value);
|
|
extern ret_t rtl8370_getAsicRegBit(uint16 reg, int bitNum, uint16 *value);
|
|
|
|
extern ret_t rtl8370_setAsicRegBits(uint16 reg, int bits, uint16 value);
|
|
extern ret_t rtl8370_getAsicRegBits(uint16 reg, int bits, uint16 *value);
|
|
|
|
extern ret_t rtl8370_setAsicReg(uint16 reg, uint16 value);
|
|
extern ret_t rtl8370_getAsicReg(uint16 reg, uint16 *value);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /*#ifndef _RTL8370_ASICDRV_H_*/
|