[PATCH v3 06/15] net/txgbe: add RX&TX support for Amber-Lite NICs
Jiawen Wu
jiawenwu at trustnetic.com
Mon Aug 4 09:07:22 CEST 2025
> diff --git a/drivers/net/txgbe/base/txgbe_regs.h b/drivers/net/txgbe/base/txgbe_regs.h
> index 4777b0335b..7830abac7b 100644
> --- a/drivers/net/txgbe/base/txgbe_regs.h
> +++ b/drivers/net/txgbe/base/txgbe_regs.h
> @@ -318,12 +318,18 @@
> #define TXGBE_LEDCTL_1G MS(2, 0x1)
> #define TXGBE_LEDCTL_100M MS(3, 0x1)
> #define TXGBE_LEDCTL_ACTIVE MS(4, 0x1)
> +#define TXGBE_LINKUP_FILTER 0x014428
> #define TXGBE_TAGTPID(i) (0x014430 + (i) * 4) /* 0-3 */
> #define TXGBE_TAGTPID_LSB_MASK MS(0, 0xFFFF)
> #define TXGBE_TAGTPID_LSB(v) LS(v, 0, 0xFFFF)
> #define TXGBE_TAGTPID_MSB_MASK MS(16, 0xFFFF)
> #define TXGBE_TAGTPID_MSB(v) LS(v, 16, 0xFFFF)
>
> +/*AML LINK STATUS OVERWRITE*/
> +#define TXGBE_AML_EPCS_MISC_CTL 0x13240
> +#define TXGBE_AML_LINK_STATUS_OVRD_EN 0x00000020
> +#define TXGBE_AML_LINK_STATUS_OVRD_VAL 0x00000010
Improve readability and be consistent, use MS() here.
>
> +#define TXGBE_MAC_TX_CFG_AML_SPEED_MASK 0x78000000U
> +#define TXGBE_MAC_TX_CFG_AML_SPEED_50G 0x20000000U
> +#define TXGBE_MAC_TX_CFG_AML_SPEED_40G 0x00000000U
> +#define TXGBE_MAC_TX_CFG_AML_SPEED_25G 0x10000000U
> +#define TXGBE_MAC_TX_CFG_AML_SPEED_10G 0x40000000U
> +#define TXGBE_MAC_TX_CFG_AML_SPEED_1G 0x70000000U
Ditto.
> @@ -4712,11 +4702,18 @@ txgbe_dev_rxtx_start(struct rte_eth_dev *dev)
> for (i = 0; i < dev->data->nb_tx_queues; i++) {
> txq = dev->data->tx_queues[i];
> /* Setup Transmit Threshold Registers */
> - wr32m(hw, TXGBE_TXCFG(txq->reg_idx),
> - TXGBE_TXCFG_HTHRESH_MASK |
> - TXGBE_TXCFG_WTHRESH_MASK,
> - TXGBE_TXCFG_HTHRESH(txq->hthresh) |
> - TXGBE_TXCFG_WTHRESH(txq->wthresh));
> + if (hw->mac.type == txgbe_mac_aml || hw->mac.type == txgbe_mac_aml40)
> + wr32m(hw, TXGBE_TXCFG(txq->reg_idx),
> + TXGBE_TXCFG_HTHRESH_MASK |
> + TXGBE_TXCFG_WTHRESH_MASK_AML,
> + TXGBE_TXCFG_HTHRESH(txq->hthresh) |
> + TXGBE_TXCFG_WTHRESH(txq->wthresh));
> + else
> + wr32m(hw, TXGBE_TXCFG(txq->reg_idx),
> + TXGBE_TXCFG_HTHRESH_MASK |
> + TXGBE_TXCFG_WTHRESH_MASK,
> + TXGBE_TXCFG_HTHRESH(txq->hthresh) |
> + TXGBE_TXCFG_WTHRESH(txq->wthresh));
> }
These...
#define TXGBE_TXCFG_WTHRESH_MASK MS(16, 0x7F)
#define TXGBE_TXCFG_WTHRESH_MASK_AML MS(16, 0x1FF)
#define TXGBE_TXCFG_WTHRESH(v) LS(v, 16, 0x7F)
How to deal with txq->wthresh is greater than 0x7F for aml?
More information about the dev
mailing list