
Hi, i think there are some issues with this patch.
@@ -1131,6 +1205,7 @@ static int eqos_start(struct udevice *dev) }
/* Configure MTL */
writel(0x60, &eqos->mtl_regs->txq0_quantum_weight - 0x100);
/* Enable Store and Forward mode for TX */ /* Program Tx operating mode */
What is this address: &eqos->mtl_regs->txq0_quantum_weight - 0x100? Isn't it outside of MTL registers range?
@@ -1144,7 +1219,9 @@ static int eqos_start(struct udevice *dev)
/* Enable Store and Forward mode for RX, since no jumbo frame */ setbits_le32(&eqos->mtl_regs->rxq0_operation_mode,
EQOS_MTL_RXQ0_OPERATION_MODE_RSF);
EQOS_MTL_RXQ0_OPERATION_MODE_RSF |
EQOS_MTL_RXQ0_OPERATION_MODE_FEP |
EQOS_MTL_RXQ0_OPERATION_MODE_FUP);
/* Transmit/Receive queue fifo size; use all RAM for 1 queue */ val = readl(&eqos->mac_regs->hw_feature1);
Why do you set FEP and FUP bits? It can lead to data corruption as they allow accepting erroneous packets.
I think these options should only be used in some debugging mode but not in production.
@@ -1220,6 +1297,19 @@ static int eqos_start(struct udevice *dev) eqos->config->config_mac << EQOS_MAC_RXQ_CTRL0_RXQ0EN_SHIFT);
- clrsetbits_le32(&eqos->mac_regs->rxq_ctrl0,
EQOS_MAC_RXQ_CTRL0_RXQ0EN_MASK <<
EQOS_MAC_RXQ_CTRL0_RXQ0EN_SHIFT,
0x2 <<
EQOS_MAC_RXQ_CTRL0_RXQ0EN_SHIFT);
This line just overrides the value set in the previous line. Is it a mistake?
- /* enable promise mode */
- setbits_le32(&eqos->mac_regs->unused_004[1],
0x1);
Isn't this mode also useful only for debugging?