mirror of
https://github.com/espressif/esp-idf.git
synced 2025-08-10 04:43:33 +00:00
update emac_reg_v2.h
This commit is contained in:
@@ -36,20 +36,20 @@ static const char *TAG = "emac";
|
||||
|
||||
void emac_enable_flowctrl(void)
|
||||
{
|
||||
REG_SET_BIT(EMAC_GMACFLOWCONTROL_REG, EMAC_TRANSMIT_FLOW_CONTROL_ENABLE);
|
||||
REG_SET_BIT(EMAC_GMACFLOWCONTROL_REG, EMAC_RECEIVE_FLOW_CONTROL_ENABLE);
|
||||
REG_CLR_BIT(EMAC_GMACFLOWCONTROL_REG, EMAC_DISABLE_ZERO_QUANTA_PAUSE);
|
||||
REG_SET_FIELD(EMAC_GMACFLOWCONTROL_REG, EMAC_PAUSE_TIME, 0x1648);
|
||||
REG_SET_FIELD(EMAC_GMACFLOWCONTROL_REG, EMAC_PAUSE_LOW_THRESHOLD, 0x1);
|
||||
REG_SET_BIT(EMAC_GMACFC_REG, EMAC_TFCE);
|
||||
REG_SET_BIT(EMAC_GMACFC_REG, EMAC_RFCE);
|
||||
REG_CLR_BIT(EMAC_GMACFC_REG, EMAC_DZPQ);
|
||||
REG_SET_FIELD(EMAC_GMACFC_REG, EMAC_PAUSE_TIME, 0x1648);
|
||||
REG_SET_FIELD(EMAC_GMACFC_REG, EMAC_PLT, 0x1);
|
||||
}
|
||||
|
||||
void emac_disable_flowctrl(void)
|
||||
{
|
||||
REG_CLR_BIT(EMAC_GMACFLOWCONTROL_REG, EMAC_TRANSMIT_FLOW_CONTROL_ENABLE);
|
||||
REG_CLR_BIT(EMAC_GMACFLOWCONTROL_REG, EMAC_RECEIVE_FLOW_CONTROL_ENABLE);
|
||||
REG_CLR_BIT(EMAC_GMACFLOWCONTROL_REG, EMAC_DISABLE_ZERO_QUANTA_PAUSE);
|
||||
REG_SET_FIELD(EMAC_GMACFLOWCONTROL_REG, EMAC_PAUSE_TIME, 0);
|
||||
REG_SET_FIELD(EMAC_GMACFLOWCONTROL_REG, EMAC_PAUSE_LOW_THRESHOLD, 0);
|
||||
REG_CLR_BIT(EMAC_GMACFC_REG, EMAC_TFCE);
|
||||
REG_CLR_BIT(EMAC_GMACFC_REG, EMAC_RFCE);
|
||||
REG_CLR_BIT(EMAC_GMACFC_REG, EMAC_DZPQ);
|
||||
REG_SET_FIELD(EMAC_GMACFC_REG, EMAC_PAUSE_TIME, 0);
|
||||
REG_SET_FIELD(EMAC_GMACFC_REG, EMAC_PLT, 0);
|
||||
}
|
||||
|
||||
void emac_enable_dma_tx(void)
|
||||
@@ -59,25 +59,17 @@ void emac_enable_dma_tx(void)
|
||||
|
||||
void emac_enable_dma_rx(void)
|
||||
{
|
||||
REG_SET_BIT(EMAC_DMAOPERATION_MODE_REG, EMAC_START_STOP_RECEIVE);
|
||||
REG_SET_BIT(EMAC_DMAOPERATION_MODE_REG, EMAC_START_STOP_RX);
|
||||
}
|
||||
|
||||
void emac_disable_dma_tx(void)
|
||||
{
|
||||
REG_CLR_BIT(EMAC_DMAOPERATION_MODE_REG, EMAC_OPERATE_SECOND_FRAME);
|
||||
REG_CLR_BIT(EMAC_DMAOPERATION_MODE_REG, EMAC_START_STOP_TRANSMISSION_COMMAND);
|
||||
}
|
||||
|
||||
void emac_disable_dma_rx(void)
|
||||
{
|
||||
REG_CLR_BIT(EMAC_DMAOPERATION_MODE_REG, EMAC_START_STOP_RECEIVE);
|
||||
}
|
||||
|
||||
|
||||
uint32_t emac_read_mac_version(void)
|
||||
{
|
||||
uint32_t data = 0;
|
||||
data = REG_READ(EMAC_GMACVERSION_REG);
|
||||
return data;
|
||||
REG_CLR_BIT(EMAC_DMAOPERATION_MODE_REG, EMAC_START_STOP_RX);
|
||||
}
|
||||
|
||||
void emac_reset(void)
|
||||
@@ -103,22 +95,22 @@ void emac_enable_clk(bool enable)
|
||||
|
||||
void emac_dma_init(void)
|
||||
{
|
||||
REG_SET_BIT(EMAC_DMAOPERATION_MODE_REG, EMAC_FORWARD_UNDERSIZED_GOOD_FRAMES);
|
||||
REG_SET_BIT(EMAC_DMAOPERATION_MODE_REG, EMAC_OPERATE_SECOND_FRAME);
|
||||
REG_SET_BIT(EMAC_DMAOPERATION_MODE_REG, EMAC_FWD_UNDER_GF);
|
||||
REG_SET_BIT(EMAC_DMAOPERATION_MODE_REG, EMAC_OPT_SECOND_FRAME);
|
||||
REG_SET_FIELD(EMAC_DMABUSMODE_REG, EMAC_PROG_BURST_LEN, 4);
|
||||
REG_SET_BIT(EMAC_DMAOPERATION_MODE_REG, EMAC_DMAOPERATION_MODE_REG);
|
||||
}
|
||||
|
||||
void emac_mac_enable_txrx(void)
|
||||
{
|
||||
REG_SET_BIT(EMAC_GMACCONFIG_REG, EMAC_GMACRX);
|
||||
REG_SET_BIT(EMAC_GMACCONFIG_REG, EMAC_GMACTX);
|
||||
REG_SET_BIT(EMAC_GMACCONFIG_REG, EMAC_EMACRX);
|
||||
REG_SET_BIT(EMAC_GMACCONFIG_REG, EMAC_EMACTX);
|
||||
}
|
||||
|
||||
void emac_mac_init(void)
|
||||
{
|
||||
REG_SET_BIT(EMAC_GMACCONFIG_REG, EMAC_GMACDUPLEX);
|
||||
REG_SET_BIT(EMAC_GMACCONFIG_REG, EMAC_GMACMIIGMII);
|
||||
REG_CLR_BIT(EMAC_GMACCONFIG_REG, EMAC_GMACFESPEED);
|
||||
REG_SET_BIT(EMAC_GMACFRAMEFILTER_REG, EMAC_PROMISCUOUS_MODE);
|
||||
REG_SET_BIT(EMAC_GMACCONFIG_REG, EMAC_EMACDUPLEX);
|
||||
REG_SET_BIT(EMAC_GMACCONFIG_REG, EMAC_EMACMII);
|
||||
REG_CLR_BIT(EMAC_GMACCONFIG_REG, EMAC_EMACFESPEED);
|
||||
REG_SET_BIT(EMAC_GMACFF_REG, EMAC_PMODE);
|
||||
}
|
||||
|
Reference in New Issue
Block a user