drivers: eth: Replace driver specific RANDOM_MAC Kconfig with devicetree

Utilize the devicetree property "zephyr,random-mac-address" to determine
if a driver should use a random mac address and remove the associated
Kconfig options that enabled this feature.

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
This commit is contained in:
Kumar Gala 2020-04-23 12:28:00 -05:00 committed by Carles Cufí
commit 1de61b4c42
12 changed files with 14 additions and 72 deletions

View file

@ -16,10 +16,6 @@ config NET_L2_ETHERNET
config ETH_SAM_GMAC
default y if NET_L2_ETHERNET
choice ETH_SAM_GMAC_MAC_SELECT
default ETH_SAM_GMAC_RANDOM_MAC
endchoice
endif # NETWORKING
endif # BOARD_ATSAME54_XPRO

View file

@ -85,4 +85,5 @@
&gmac {
status = "okay";
zephyr,random-mac-address;
};

View file

@ -28,10 +28,6 @@ config NET_L2_ETHERNET
config ETH_SAM_GMAC
default y if NET_L2_ETHERNET
choice ETH_SAM_GMAC_MAC_SELECT
default ETH_SAM_GMAC_RANDOM_MAC
endchoice
endif # NETWORKING
endif # BOARD_SAM4E_XPRO

View file

@ -59,6 +59,7 @@
&gmac {
status = "okay";
zephyr,random-mac-address;
};
&wdt {

View file

@ -39,11 +39,6 @@ choice ETH_GECKO_MAC_SELECT
help
Choose how to configure MAC address.
config ETH_GECKO_RANDOM_MAC
bool "Random MAC address"
help
Generate a random MAC address dynamically.
config ETH_GECKO_MAC_MANUAL
bool "Manual"
help

View file

@ -16,10 +16,4 @@ config ETH_LITEETH_0_IRQ_PRI
help
IRQ priority
config ETH_LITEETH_0_RANDOM_MAC
bool "Random MAC address"
depends on ENTROPY_GENERATOR
help
Generate a random MAC address dynamically.
endif # ETH_LITEETH_0

View file

@ -66,15 +66,6 @@ config ETH_MCUX_0_UNIQUE_MAC
help
Generate MAC address from MCU's unique identification register.
config ETH_MCUX_0_RANDOM_MAC
bool "Random MAC address"
help
Generate a random MAC address dynamically on each reboot.
Note that using this choice and rebooting a board may leave
stale MAC address in peers' ARP caches and lead to issues and
delays in communication. (Use "ip neigh flush all" on Linux
peers to clear ARP cache.)
config ETH_MCUX_0_MANUAL_MAC
bool "Manual MAC address"
help
@ -102,15 +93,6 @@ config ETH_MCUX_1_UNIQUE_MAC
help
Generate MAC address from MCU's unique identification register.
config ETH_MCUX_1_RANDOM_MAC
bool "Random MAC address"
help
Generate a random MAC address dynamically on each reboot.
Note that using this choice and rebooting a board may leave
stale MAC address in peers' ARP caches and lead to issues and
delays in communication. (Use "ip neigh flush all" on Linux
peers to clear ARP cache.)
config ETH_MCUX_1_MANUAL_MAC
bool "Manual MAC address"
help

View file

@ -91,11 +91,6 @@ config ETH_SAM_GMAC_MAC_I2C_EEPROM
help
Read MAC address from an I2C EEPROM.
config ETH_SAM_GMAC_RANDOM_MAC
bool "Random MAC address"
help
Generate a random MAC address dynamically.
endchoice
if ETH_SAM_GMAC_MAC_I2C_EEPROM

View file

@ -488,17 +488,10 @@ static int eth_init(struct device *dev)
return 0;
}
#if defined(CONFIG_ETH_GECKO_RANDOM_MAC)
static void generate_random_mac(u8_t mac_addr[6])
{
gen_random_mac(mac_addr, SILABS_OUI_B0, SILABS_OUI_B1, SILABS_OUI_B2);
}
#endif
static void generate_mac(u8_t mac_addr[6])
{
#if defined(CONFIG_ETH_GECKO_RANDOM_MAC)
generate_random_mac(mac_addr);
#if DT_INST_PROP(0, zephyr_random_mac_address)
gen_random_mac(mac_addr, SILABS_OUI_B0, SILABS_OUI_B1, SILABS_OUI_B2);
#endif
}

View file

@ -177,12 +177,6 @@ static void eth_irq_handler(struct device *port)
}
}
#ifdef CONFIG_ETH_LITEETH_0_RANDOM_MAC
static void generate_mac(u8_t *mac_addr)
gen_random_mac(mac_addr, 0x10, 0xe2, 0xd5);
}
#endif
#ifdef CONFIG_ETH_LITEETH_0
static struct eth_liteeth_dev_data eth_data = {
@ -211,9 +205,9 @@ static void eth_iface_init(struct net_if *iface)
/* initialize ethernet L2 */
ethernet_init(iface);
#ifdef CONFIG_ETH_LITEETH_0_RANDOM_MAC
#if DT_INST_PROP(0, zephyr_random_mac_address)
/* generate random MAC address */
generate_mac(context->mac_addr);
gen_random_mac(context->mac_addr, 0x10, 0xe2, 0xd5);
#endif
/* set MAC address */

View file

@ -878,8 +878,8 @@ static void eth_callback(ENET_Type *base, enet_handle_t *handle,
}
}
#if defined(CONFIG_ETH_MCUX_0_RANDOM_MAC) || \
defined(CONFIG_ETH_MCUX_1_RANDOM_MAC)
#if DT_INST_PROP(0, zephyr_random_mac_address) || \
DT_INST_PROP(1, zephyr_random_mac_address)
static void generate_random_mac(u8_t *mac_addr)
{
gen_random_mac(mac_addr, FREESCALE_OUI_B0,
@ -1207,7 +1207,7 @@ static struct eth_context eth_0_context = {
#if defined(CONFIG_ETH_MCUX_0_UNIQUE_MAC)
.generate_mac = generate_eth0_unique_mac,
#endif
#if defined(CONFIG_ETH_MCUX_0_RANDOM_MAC)
#if DT_INST_PROP(0, zephyr_random_mac_address)
.generate_mac = generate_random_mac,
#endif
#if defined(CONFIG_ETH_MCUX_0_MANUAL_MAC)
@ -1274,7 +1274,7 @@ static struct eth_context eth_1_context = {
#if defined(CONFIG_ETH_MCUX_1_UNIQUE_MAC)
.generate_mac = generate_eth1_unique_mac,
#endif
#if defined(CONFIG_ETH_MCUX_1_RANDOM_MAC)
#if DT_INST_PROP(1, zephyr_random_mac_address)
.generate_mac = generate_random_mac,
#endif
#if defined(CONFIG_ETH_MCUX_1_MANUAL_MAC)

View file

@ -41,6 +41,8 @@ LOG_MODULE_REGISTER(LOG_MODULE_NAME);
#include "phy_sam_gmac.h"
#include "eth_sam_gmac_priv.h"
#include "eth.h"
#ifdef CONFIG_SOC_FAMILY_SAM0
#include "eth_sam0_gmac.h"
#endif
@ -1797,19 +1799,12 @@ static void get_mac_addr_from_i2c_eeprom(u8_t mac_addr[6])
}
#endif
#if defined(CONFIG_ETH_SAM_GMAC_RANDOM_MAC)
static void generate_random_mac(u8_t mac_addr[6])
{
gen_random_mac(mac_addr, ATMEL_OUI_B0, ATMEL_OUI_B1, ATMEL_OUI_B2);
}
#endif
static void generate_mac(u8_t mac_addr[6])
{
#if defined(CONFIG_ETH_SAM_GMAC_MAC_I2C_EEPROM)
get_mac_addr_from_i2c_eeprom(mac_addr);
#elif defined(CONFIG_ETH_SAM_GMAC_RANDOM_MAC)
generate_random_mac(mac_addr);
#elif DT_INST_PROP(0, zephyr_random_mac_address)
gen_random_mac(mac_addr, ATMEL_OUI_B0, ATMEL_OUI_B1, ATMEL_OUI_B2);
#endif
}