Merge branch 'feature/eth_set_mac_addr' into 'master'
emac:add set_eth_mac api See merge request !1604
This commit is contained in:
commit
709d19f99e
2 changed files with 33 additions and 15 deletions
|
@ -90,6 +90,16 @@ void esp_eth_get_mac(uint8_t mac[6])
|
||||||
memcpy(mac, &(emac_config.macaddr[0]), 6);
|
memcpy(mac, &(emac_config.macaddr[0]), 6);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
esp_err_t esp_eth_set_mac(const uint8_t mac[6])
|
||||||
|
{
|
||||||
|
if((mac[0] & 0x01) == 0) {
|
||||||
|
memcpy(&(emac_config.macaddr[0]),mac, 6);
|
||||||
|
return ESP_OK;
|
||||||
|
} else {
|
||||||
|
return ESP_ERR_INVALID_MAC;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void emac_setup_tx_desc(struct dma_extended_desc *tx_desc , uint32_t size)
|
static void emac_setup_tx_desc(struct dma_extended_desc *tx_desc , uint32_t size)
|
||||||
{
|
{
|
||||||
tx_desc->basic.desc1 = size & 0xfff;
|
tx_desc->basic.desc1 = size & 0xfff;
|
||||||
|
@ -350,16 +360,6 @@ static esp_err_t emac_verify_args(void)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
//TODO for mac filter
|
|
||||||
void emac_set_mac_addr(void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
//TODO
|
|
||||||
void emac_check_mac_addr(void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
static void emac_process_tx(void)
|
static void emac_process_tx(void)
|
||||||
{
|
{
|
||||||
uint32_t cur_tx_desc = emac_read_tx_cur_reg();
|
uint32_t cur_tx_desc = emac_read_tx_cur_reg();
|
||||||
|
@ -414,7 +414,7 @@ static uint32_t IRAM_ATTR emac_get_rxbuf_count_in_intr(void)
|
||||||
uint32_t cur_rx_desc = emac_read_rx_cur_reg();
|
uint32_t cur_rx_desc = emac_read_rx_cur_reg();
|
||||||
struct dma_extended_desc *cur_desc = (struct dma_extended_desc *)cur_rx_desc;
|
struct dma_extended_desc *cur_desc = (struct dma_extended_desc *)cur_rx_desc;
|
||||||
|
|
||||||
while (cur_desc->basic.desc0 == EMAC_DESC_RX_OWN) {
|
while (cur_desc->basic.desc0 == EMAC_DESC_RX_OWN && cnt < DMA_RX_BUF_NUM) {
|
||||||
cnt++;
|
cnt++;
|
||||||
cur_desc = (struct dma_extended_desc *)cur_desc->basic.desc3;
|
cur_desc = (struct dma_extended_desc *)cur_desc->basic.desc3;
|
||||||
}
|
}
|
||||||
|
@ -769,11 +769,7 @@ static void emac_start(void *param)
|
||||||
emac_enable_clk(true);
|
emac_enable_clk(true);
|
||||||
|
|
||||||
emac_reset();
|
emac_reset();
|
||||||
emac_macaddr_init();
|
|
||||||
|
|
||||||
emac_check_mac_addr();
|
|
||||||
|
|
||||||
emac_set_mac_addr();
|
|
||||||
emac_set_macaddr_reg();
|
emac_set_macaddr_reg();
|
||||||
|
|
||||||
emac_set_tx_base_reg();
|
emac_set_tx_base_reg();
|
||||||
|
@ -1097,6 +1093,7 @@ esp_err_t esp_eth_init_internal(eth_config_t *config)
|
||||||
|
|
||||||
ESP_LOGI(TAG, "mac version %04xa", emac_read_mac_version());
|
ESP_LOGI(TAG, "mac version %04xa", emac_read_mac_version());
|
||||||
emac_hw_init();
|
emac_hw_init();
|
||||||
|
emac_macaddr_init();
|
||||||
|
|
||||||
//watchdog TODO
|
//watchdog TODO
|
||||||
|
|
||||||
|
|
|
@ -250,6 +250,27 @@ static inline esp_err_t esp_eth_smi_wait_set(uint32_t reg_num, uint16_t value_ma
|
||||||
*/
|
*/
|
||||||
void esp_eth_free_rx_buf(void *buf);
|
void esp_eth_free_rx_buf(void *buf);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get mac of ethernet interface.
|
||||||
|
*
|
||||||
|
* @param[out] mac: store mac of the interface.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
void esp_eth_get_mac(uint8_t mac[6]);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Set mac of ethernet interface.
|
||||||
|
*
|
||||||
|
* @note user can call this function after emac_init,and the new mac address will be enabled after emac_enable.
|
||||||
|
*
|
||||||
|
* @param[in] mac: the Mac address.
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
* - ESP_OK: succeed
|
||||||
|
* - ESP_ERR_INVALID_MAC: invalid mac address
|
||||||
|
*/
|
||||||
|
esp_err_t esp_eth_set_mac(const uint8_t mac[6]);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue