diff --git a/net/eth-uclass.c b/net/eth-uclass.c
index c15cc4d90bf47dffacdd1339077340b0c99dd36a..a32961e6ceaae8e819a247c1f30bac24b3bc370f 100644
--- a/net/eth-uclass.c
+++ b/net/eth-uclass.c
@@ -227,6 +227,7 @@ static int on_ethaddr(const char *name, const char *value, enum env_op op,
 		case env_op_create:
 		case env_op_overwrite:
 			eth_parse_enetaddr(value, pdata->enetaddr);
+			eth_write_hwaddr(dev);
 			break;
 		case env_op_delete:
 			memset(pdata->enetaddr, 0, 6);