summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/net/dwc_eth_qos.c10
-rw-r--r--drivers/net/dwc_eth_qos.h28
2 files changed, 25 insertions, 13 deletions
diff --git a/drivers/net/dwc_eth_qos.c b/drivers/net/dwc_eth_qos.c
index b104d4e4725..8a396d0b29e 100644
--- a/drivers/net/dwc_eth_qos.c
+++ b/drivers/net/dwc_eth_qos.c
@@ -890,11 +890,11 @@ static int eqos_start(struct udevice *dev)
EQOS_MAC_RXQ_CTRL0_RXQ0EN_SHIFT);
/* Multicast and Broadcast Queue Enable */
- setbits_le32(&eqos->mac_regs->unused_0a4,
- 0x00100000);
- /* enable promise mode */
- setbits_le32(&eqos->mac_regs->unused_004[1],
- 0x1);
+ setbits_le32(&eqos->mac_regs->rxq_ctrl1,
+ EQOS_MAC_RXQ_CTRL1_MCBCQEN);
+ /* Promiscuous Mode Enable */
+ setbits_le32(&eqos->mac_regs->packet_filter,
+ EQOS_MAC_PACKET_FILTER_PR);
/* Set TX flow control parameters */
/* Set Pause Time */
diff --git a/drivers/net/dwc_eth_qos.h b/drivers/net/dwc_eth_qos.h
index c239a5c7aca..ba16f1a37cb 100644
--- a/drivers/net/dwc_eth_qos.h
+++ b/drivers/net/dwc_eth_qos.h
@@ -14,23 +14,31 @@
#define EQOS_MAC_REGS_BASE 0x000
struct eqos_mac_regs {
u32 configuration; /* 0x000 */
- u32 unused_004[(0x070 - 0x004) / 4]; /* 0x004 */
+ u32 ext_configuration; /* 0x004 */
+ u32 packet_filter; /* 0x008 */
+ u32 watchdog_timeout; /* 0x00c */
+ u32 unused_010[(0x070 - 0x010) / 4]; /* 0x010 */
u32 q0_tx_flow_ctrl; /* 0x070 */
- u32 unused_070[(0x090 - 0x074) / 4]; /* 0x074 */
+ u32 unused_074[(0x090 - 0x074) / 4]; /* 0x074 */
u32 rx_flow_ctrl; /* 0x090 */
- u32 unused_094; /* 0x094 */
+ u32 rxq_ctrl4; /* 0x094 */
u32 txq_prty_map0; /* 0x098 */
- u32 unused_09c; /* 0x09c */
+ u32 txq_prty_map1; /* 0x09c */
u32 rxq_ctrl0; /* 0x0a0 */
- u32 unused_0a4; /* 0x0a4 */
+ u32 rxq_ctrl1; /* 0x0a4 */
u32 rxq_ctrl2; /* 0x0a8 */
- u32 unused_0ac[(0x0dc - 0x0ac) / 4]; /* 0x0ac */
+ u32 rxq_ctrl3; /* 0x0ac */
+ u32 unused_0b0[(0x0dc - 0x0b0) / 4]; /* 0x0b0 */
u32 us_tic_counter; /* 0x0dc */
- u32 unused_0e0[(0x11c - 0x0e0) / 4]; /* 0x0e0 */
+ u32 unused_0e0[(0x110 - 0x0e0) / 4]; /* 0x0e0 */
+ u32 version; /* 0x110 */
+ u32 debug; /* 0x114 */
+ u32 unused_118; /* 0x118 */
u32 hw_feature0; /* 0x11c */
u32 hw_feature1; /* 0x120 */
u32 hw_feature2; /* 0x124 */
- u32 unused_128[(0x200 - 0x128) / 4]; /* 0x128 */
+ u32 hw_feature3; /* 0x128 */
+ u32 unused_12c[(0x200 - 0x12c) / 4]; /* 0x12c */
u32 mdio_address; /* 0x200 */
u32 mdio_data; /* 0x204 */
u32 unused_208[(0x300 - 0x208) / 4]; /* 0x208 */
@@ -51,6 +59,8 @@ struct eqos_mac_regs {
#define EQOS_MAC_CONFIGURATION_TE BIT(1)
#define EQOS_MAC_CONFIGURATION_RE BIT(0)
+#define EQOS_MAC_PACKET_FILTER_PR BIT(0)
+
#define EQOS_MAC_Q0_TX_FLOW_CTRL_PT_SHIFT 16
#define EQOS_MAC_Q0_TX_FLOW_CTRL_PT_MASK 0xffff
#define EQOS_MAC_Q0_TX_FLOW_CTRL_TFE BIT(1)
@@ -66,6 +76,8 @@ struct eqos_mac_regs {
#define EQOS_MAC_RXQ_CTRL0_RXQ0EN_ENABLED_DCB 2
#define EQOS_MAC_RXQ_CTRL0_RXQ0EN_ENABLED_AV 1
+#define EQOS_MAC_RXQ_CTRL1_MCBCQEN BIT(20)
+
#define EQOS_MAC_RXQ_CTRL2_PSRQ0_SHIFT 0
#define EQOS_MAC_RXQ_CTRL2_PSRQ0_MASK 0xff