@@ -59,8 +59,8 @@ struct sy1xx_mac_dev_config {
5959 uint32_t base_addr ;
6060 /* optional - enable promiscuous mode */
6161 bool promiscuous_mode ;
62- /* optional - random mac */
63- bool use_zephyr_random_mac ;
62+
63+ struct net_eth_mac_config mcfg ;
6464
6565 /* phy config */
6666 const struct device * phy_dev ;
@@ -203,13 +203,6 @@ static int sy1xx_mac_start(const struct device *dev)
203203 sys_write32 (0x0001 , cfg -> ctrl_addr + SY1XX_MAC_CTRL_REG );
204204 sys_write32 (0x0000 , cfg -> ctrl_addr + SY1XX_MAC_CTRL_REG );
205205
206- if (cfg -> use_zephyr_random_mac ) {
207- /* prio 1 -- generate random, if set in device tree */
208- sys_rand_get (& data -> mac_addr , 6 );
209- /* Set MAC address locally administered, unicast (LAA) */
210- data -> mac_addr [0 ] |= 0x02 ;
211- }
212-
213206 sy1xx_mac_set_mac_addr (dev );
214207
215208 sy1xx_mac_set_promiscuous_mode (dev , cfg -> promiscuous_mode );
@@ -315,6 +308,8 @@ static void sy1xx_mac_iface_init(struct net_if *iface)
315308
316309 data -> iface = iface ;
317310
311+ (void )net_eth_mac_load (& cfg -> mcfg , data -> mac_addr );
312+
318313 ethernet_init (iface );
319314
320315 if (device_is_ready (cfg -> phy_dev )) {
@@ -570,14 +565,13 @@ const struct ethernet_api sy1xx_mac_driver_api = {
570565 .base_addr = DT_INST_REG_ADDR_BY_NAME(n, data), \
571566 .pcfg = PINCTRL_DT_INST_DEV_CONFIG_GET(n), \
572567 .promiscuous_mode = DT_INST_PROP_OR(n, promiscuous_mode, false), \
573- .use_zephyr_random_mac = DT_INST_PROP(n, zephyr_random_mac_address), \
568+ .mcfg = NET_ETH_MAC_DT_INST_CONFIG_INIT(n), \
574569 .phy_dev = DEVICE_DT_GET(DT_INST_PHANDLE(n, phy_handle))}; \
575570 \
576571 static struct sy1xx_mac_dma_buffers __attribute__((section(".udma_access"))) \
577572 __aligned(4) sy1xx_mac_dma_buffers_##n; \
578573 \
579574 static struct sy1xx_mac_dev_data sy1xx_mac_dev_data##n = { \
580- .mac_addr = DT_INST_PROP_OR(n, local_mac_address, {0}), \
581575 .dma_buffers = &sy1xx_mac_dma_buffers_##n, \
582576 }; \
583577 \
0 commit comments