Bouffalo SDK
1.0
Bouffalolab Software Development Kit
|
#include "bflb_core.h"
Go to the source code of this file.
Data Structures | |
struct | bflb_emac_config_s |
EMAC configuration structure. More... | |
struct | bflb_emac_phy_cfg_s |
EMAC phy configuration structure. More... | |
Macros | |
#define | EMAC_DO_FLUSH_DATA (1) |
#define | EMAC_CLK_USE_EXTERNAL (0) |
#define | EMAC_CLK_USE_INTERNAL (1) |
#define | EMAC_CMD_NO_PREAMBLE_MODE (0x01) |
#define | EMAC_CMD_EN_PROMISCUOUS (0x02) |
#define | EMAC_CMD_FRAME_GAP_CHECK (0x03) |
#define | EMAC_CMD_FULL_DUPLEX (0x04) |
#define | EMAC_CMD_EN_TX_CRC_FIELD (0x05) |
#define | EMAC_CMD_RECV_HUGE_FRAMES (0x06) |
#define | EMAC_CMD_EN_AUTO_PADDING (0x07) |
#define | EMAC_CMD_RECV_SMALL_FRAME (0x08) |
#define | EMAC_CMD_SET_PHY_ADDRESS (0x09) |
#define | EMAC_CMD_SET_MAC_ADDRESS (0x0A) |
#define | EMAC_CMD_SET_PACKET_GAP (0x0B) |
#define | EMAC_CMD_SET_MIN_FRAME (0x0C) |
#define | EMAC_CMD_SET_MAX_FRAME (0x0D) |
#define | EMAC_CMD_SET_MAXRET (0x0E) |
#define | EMAC_CMD_SET_COLLVALID (0x0F) |
#define | PHY_STATE_DOWN (0) /* PHY is not usable */ |
#define | PHY_STATE_READY (1) /* PHY is OK, wait for controller */ |
#define | PHY_STATE_UP (2) /* Network is ready for TX/RX */ |
#define | PHY_STATE_RUNNING (3) /* working */ |
#define | PHY_STATE_NOLINK (4) /* no cable connected */ |
#define | PHY_STATE_STOPPED (5) /* PHY has been stopped */ |
#define | PHY_STATE_TESTING (6) /* in test mode */ |
#define | EMAC_NORMAL_PACKET (uint32_t)(0) |
#define | EMAC_FRAGMENT_PACKET (uint32_t)(0x01) |
#define | EMAC_NOCOPY_PACKET (uint32_t)(0x02) |
#define | ETH_MAX_PACKET_SIZE ((uint32_t)1524U) |
#define | ETH_HEADER_SZIE ((uint32_t)14U) |
#define | ETH_CRC_SIZE ((uint32_t)4U) |
#define | ETH_EXTRA_SIZE ((uint32_t)2U) |
#define | ETH_VLAN_TAG_SIZE ((uint32_t)4U) |
#define | ETH_MIN_ETH_PAYLOAD_SIZE ((uint32_t)46U) |
#define | ETH_MAX_ETH_PAYLOAD_SIZE ((uint32_t)1500U) |
#define | ETH_JUMBO_FRAME_PAYLOAD_SIZE ((uint32_t)9000U) |
#define | ETH_TX_BUFFER_SIZE (ETH_MAX_PACKET_SIZE) |
#define | ETH_RX_BUFFER_SIZE (ETH_MAX_PACKET_SIZE) |
#define | EMAC_INT_EN_TX_DONE (1 << 0) |
#define | EMAC_INT_EN_TX_ERROR (1 << 1) |
#define | EMAC_INT_EN_RX_DONE (1 << 2) |
#define | EMAC_INT_EN_RX_ERROR (1 << 3) |
#define | EMAC_INT_EN_RX_BUSY (1 << 4) |
#define | EMAC_INT_EN_TX_CTRL (1 << 5) |
#define | EMAC_INT_EN_RX_CTRL (1 << 6) |
#define | EMAC_INT_EN_ALL (0x7f << 0) |
#define | EMAC_INT_STS_TX_DONE (1 << 0) |
#define | EMAC_INT_STS_TX_ERROR (1 << 1) |
#define | EMAC_INT_STS_RX_DONE (1 << 2) |
#define | EMAC_INT_STS_RX_ERROR (1 << 3) |
#define | EMAC_INT_STS_RX_BUSY (1 << 4) |
#define | EMAC_INT_STS_TX_CTRL (1 << 5) |
#define | EMAC_INT_STS_RX_CTRL (1 << 6) |
#define | EMAC_INT_STS_ALL (0x7f << 0) |
#define | EMAC_BD_TYPE_INVLAID (0) |
#define | EMAC_BD_TYPE_TX (1) |
#define | EMAC_BD_TYPE_RX (2) |
#define | EMAC_BD_TYPE_NONE (3) |
#define | EMAC_BD_TYPE_MAX (0x7FFFFFFF) |
Functions | |
void | bflb_emac_init (struct bflb_device_s *dev, const struct bflb_emac_config_s *config) |
void | bflb_emac_stop (struct bflb_device_s *dev) |
void | bflb_emac_start (struct bflb_device_s *dev) |
void | bflb_emac_start_tx (struct bflb_device_s *dev) |
void | bflb_emac_stop_tx (struct bflb_device_s *dev) |
void | bflb_emac_start_rx (struct bflb_device_s *dev) |
void | bflb_emac_stop_rx (struct bflb_device_s *dev) |
void | bflb_emac_bd_init (struct bflb_device_s *dev, uint8_t *eth_tx_buff, uint8_t tx_buf_count, uint8_t *eth_rx_buff, uint8_t rx_buf_count) |
uint32_t | bflb_emac_bd_get_cur_active (struct bflb_device_s *dev, uint8_t bdt) |
void | bflb_emac_bd_rx_enqueue (uint32_t index) |
void | bflb_emac_bd_rx_on_err (uint32_t index) |
void | bflb_emac_bd_tx_dequeue (uint32_t index) |
void | bflb_emac_bd_tx_on_err (uint32_t index) |
int | bflb_emac_bd_tx_enqueue (uint32_t flags, uint32_t len, const uint8_t *data_in) |
int | bflb_emac_bd_rx_dequeue (uint32_t flags, uint32_t *len, uint8_t *data_out) |
int | emac_bd_fragment_support (void) |
void | bflb_emac_int_enable (struct bflb_device_s *dev, uint32_t flag, bool enable) |
void | bflb_emac_int_clear (struct bflb_device_s *dev, uint32_t flag) |
uint32_t | bflb_emac_get_int_status (struct bflb_device_s *dev) |
int | bflb_emac_feature_control (struct bflb_device_s *dev, int cmd, size_t arg) |
int | bflb_emac_phy_reg_read (struct bflb_device_s *dev, uint16_t phy_reg, uint16_t *phy_reg_val) |
int | bflb_emac_phy_reg_write (struct bflb_device_s *dev, uint16_t phy_reg, uint16_t phy_reg_val) |