From bf4eadf7353562d9c64b5f514b9cb1559d0732da Mon Sep 17 00:00:00 2001 From: p-szafonimateusz Date: Thu, 7 Nov 2024 08:45:19 +0100 Subject: [PATCH] drivers/net/{e1000|igc}: configure RX/TX descriptors from Kconfig configure E1000/IGC RX/TX descriptors from Kconfig Signed-off-by: p-szafonimateusz --- drivers/net/Kconfig | 16 ++++++++++++++++ drivers/net/e1000.c | 12 ++++++++++-- drivers/net/igc.c | 12 ++++++++++-- 3 files changed, 36 insertions(+), 4 deletions(-) diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig index 30132b2efbc..7e2e89dfdf8 100644 --- a/drivers/net/Kconfig +++ b/drivers/net/Kconfig @@ -777,12 +777,28 @@ menuconfig NET_E1000 if NET_E1000 +config NET_E1000_TXDESC + int "Intel E1000 TX descriptors" + default 256 + +config NET_E1000_RXDESC + int "Intel E1000 RX descriptors" + default 256 + config NET_E1000_RXSPARE int "Intel E1000 spare RX buffers" default 8 endif # NET_E1000 +config NET_IGC_TXDESC + int "Intel IGC TX descriptors" + default 256 + +config NET_IGC_RXDESC + int "Intel IGC RX descriptors" + default 256 + menuconfig NET_IGC bool "Intel IGC support" default n diff --git a/drivers/net/e1000.c b/drivers/net/e1000.c index b959654c795..f22540d209d 100644 --- a/drivers/net/e1000.c +++ b/drivers/net/e1000.c @@ -46,6 +46,14 @@ * Pre-processor Definitions *****************************************************************************/ +#if CONFIG_NET_E1000_TXDESC % 2 != 0 +# error CONFIG_NET_E1000_TXDESC must be multiple of 2 +#endif + +#if CONFIG_NET_E1000_RXDESC % 2 != 0 +# error CONFIG_NET_E1000_RXDESC must be multiple of 2 +#endif + /* Packet buffer size */ #define E1000_PKTBUF_SIZE 2048 @@ -53,8 +61,8 @@ /* TX and RX descriptors */ -#define E1000_TX_DESC 256 -#define E1000_RX_DESC 256 +#define E1000_TX_DESC CONFIG_NET_E1000_TXDESC +#define E1000_RX_DESC CONFIG_NET_E1000_RXDESC /* After RX packet is done, we provide free netpkt to the RX descriptor ring. * The upper-half network logic is responsible for freeing the RX packets diff --git a/drivers/net/igc.c b/drivers/net/igc.c index aaf5d601133..e36cd3d7a19 100644 --- a/drivers/net/igc.c +++ b/drivers/net/igc.c @@ -46,6 +46,14 @@ * Pre-processor Definitions *****************************************************************************/ +#if CONFIG_NET_IGC_TXDESC % 2 != 0 +# error CONFIG_NET_IGC_TXDESC must be multiple of 2 +#endif + +#if CONFIG_NET_IGC_RXDESC % 2 != 0 +# error CONFIG_NET_IGC_RXDESC must be multiple of 2 +#endif + /* Packet buffer size */ #define IGC_PKTBUF_SIZE 2048 @@ -53,8 +61,8 @@ /* TX and RX descriptors */ -#define IGC_TX_DESC 256 -#define IGC_RX_DESC 256 +#define IGC_TX_DESC CONFIG_NET_IGC_TXDESC +#define IGC_RX_DESC CONFIG_NET_IGC_RXDESC /* After RX packet is done, we provide free netpkt to the RX descriptor ring. * The upper-half network logic is responsible for freeing the RX packets