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?

Reply via email to