diff mbox series

board: amlogic: Add Odroid-N2 board support

Message ID 20200618144037.23392-1-narmstrong@baylibre.com
State Accepted, archived
Commit 6de936b011fb02d1019a69aea0184cee4a578f59
Delegated to: Neil Armstrong
Headers show
Series board: amlogic: Add Odroid-N2 board support | expand

Commit Message

Neil Armstrong June 18, 2020, 2:40 p.m. UTC
From: Pascal Vizeli <pvizeli@syshack.ch>

Add a proper Odroid-N2 board support to handle the Ethernet MAC
address stored in the in-SoC eFuses.

Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch>
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
---
 board/amlogic/odroid-n2/MAINTAINERS |  7 +++++
 board/amlogic/odroid-n2/Makefile    |  6 ++++
 board/amlogic/odroid-n2/odroid-n2.c | 49 +++++++++++++++++++++++++++++
 board/amlogic/w400/MAINTAINERS      |  2 --
 configs/odroid-n2_defconfig         |  2 +-
 5 files changed, 63 insertions(+), 3 deletions(-)
 create mode 100644 board/amlogic/odroid-n2/MAINTAINERS
 create mode 100644 board/amlogic/odroid-n2/Makefile
 create mode 100644 board/amlogic/odroid-n2/odroid-n2.c

Comments

Anand Moon June 21, 2020, 5:23 p.m. UTC | #1
Hi Neil,

On Thu, 18 Jun 2020 at 20:11, Neil Armstrong <narmstrong@baylibre.com> wrote:
>
> From: Pascal Vizeli <pvizeli@syshack.ch>
>
> Add a proper Odroid-N2 board support to handle the Ethernet MAC
> address stored in the in-SoC eFuses.
>

This feature need to be implemented for all Amlogic SoC boards,
since many boards link libretech-cc also generate random mac address
for ethernet.

Please add my: Tested on N2.
Tested-by: Anand Moon <linux.amoon@gmail.com>

-Anand

> Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch>
> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
> ---
>  board/amlogic/odroid-n2/MAINTAINERS |  7 +++++
>  board/amlogic/odroid-n2/Makefile    |  6 ++++
>  board/amlogic/odroid-n2/odroid-n2.c | 49 +++++++++++++++++++++++++++++
>  board/amlogic/w400/MAINTAINERS      |  2 --
>  configs/odroid-n2_defconfig         |  2 +-
>  5 files changed, 63 insertions(+), 3 deletions(-)
>  create mode 100644 board/amlogic/odroid-n2/MAINTAINERS
>  create mode 100644 board/amlogic/odroid-n2/Makefile
>  create mode 100644 board/amlogic/odroid-n2/odroid-n2.c
>
> diff --git a/board/amlogic/odroid-n2/MAINTAINERS b/board/amlogic/odroid-n2/MAINTAINERS
> new file mode 100644
> index 0000000000..5627e54058
> --- /dev/null
> +++ b/board/amlogic/odroid-n2/MAINTAINERS
> @@ -0,0 +1,7 @@
> +ODROID-N2
> +M:     Neil Armstrong <narmstrong@baylibre.com>
> +S:     Maintained
> +L:     u-boot-amlogic@groups.io
> +F:     board/amlogic/odroid-n2/
> +F:     configs/odroid-n2_defconfig
> +F:     doc/board/amlogic/odroid-n2.rst
> diff --git a/board/amlogic/odroid-n2/Makefile b/board/amlogic/odroid-n2/Makefile
> new file mode 100644
> index 0000000000..68e4e2a828
> --- /dev/null
> +++ b/board/amlogic/odroid-n2/Makefile
> @@ -0,0 +1,6 @@
> +# SPDX-License-Identifier: GPL-2.0+
> +#
> +# (C) Copyright 2020 BayLibre, SAS
> +# Author: Neil Armstrong <narmstrong@baylibre.com>
> +
> +obj-y  := odroid-n2.o
> diff --git a/board/amlogic/odroid-n2/odroid-n2.c b/board/amlogic/odroid-n2/odroid-n2.c
> new file mode 100644
> index 0000000000..caf7fd6810
> --- /dev/null
> +++ b/board/amlogic/odroid-n2/odroid-n2.c
> @@ -0,0 +1,49 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * Copyright (C) 2020 BayLibre, SAS
> + * Author: Neil Armstrong <narmstrong@baylibre.com>
> + */
> +
> +#include <common.h>
> +#include <dm.h>
> +#include <env.h>
> +#include <init.h>
> +#include <net.h>
> +#include <asm/io.h>
> +#include <asm/arch/sm.h>
> +#include <asm/arch/eth.h>
> +
> +#define EFUSE_MAC_OFFSET       20
> +#define EFUSE_MAC_SIZE         12
> +#define MAC_ADDR_LEN           6
> +
> +int misc_init_r(void)
> +{
> +       u8 mac_addr[MAC_ADDR_LEN];
> +       char efuse_mac_addr[EFUSE_MAC_SIZE], tmp[3];
> +       ssize_t len;
> +
> +       meson_eth_init(PHY_INTERFACE_MODE_RGMII, 0);
> +
> +       if (!eth_env_get_enetaddr("ethaddr", mac_addr)) {
> +               len = meson_sm_read_efuse(EFUSE_MAC_OFFSET,
> +                                         efuse_mac_addr, EFUSE_MAC_SIZE);
> +               if (len != EFUSE_MAC_SIZE)
> +                       return 0;
> +
> +               /* MAC is stored in ASCII format, 1bytes = 2characters */
> +               for (int i = 0; i < 6; i++) {
> +                       tmp[0] = efuse_mac_addr[i * 2];
> +                       tmp[1] = efuse_mac_addr[i * 2 + 1];
> +                       tmp[2] = '\0';
> +                       mac_addr[i] = simple_strtoul(tmp, NULL, 16);
> +               }
> +
> +               if (is_valid_ethaddr(mac_addr))
> +                       eth_env_set_enetaddr("ethaddr", mac_addr);
> +               else
> +                       meson_generate_serial_ethaddr();
> +       }
> +
> +       return 0;
> +}
> diff --git a/board/amlogic/w400/MAINTAINERS b/board/amlogic/w400/MAINTAINERS
> index 5e837cfaef..a1b0ac8636 100644
> --- a/board/amlogic/w400/MAINTAINERS
> +++ b/board/amlogic/w400/MAINTAINERS
> @@ -5,8 +5,6 @@ L:      u-boot-amlogic@groups.io
>  F:     board/amlogic/w400/
>  F:     configs/khadas-vim3_defconfig
>  F:     configs/khadas-vim3l_defconfig
> -F:     configs/odroid-n2_defconfig
>  F:     doc/board/amlogic/w400.rst
>  F:     doc/board/amlogic/khadas-vim3.rst
>  F:     doc/board/amlogic/khadas-vim3l.rst
> -F:     doc/board/amlogic/odroid-n2.rst
> diff --git a/configs/odroid-n2_defconfig b/configs/odroid-n2_defconfig
> index e0cc6e3729..063809416e 100644
> --- a/configs/odroid-n2_defconfig
> +++ b/configs/odroid-n2_defconfig
> @@ -1,5 +1,5 @@
>  CONFIG_ARM=y
> -CONFIG_SYS_BOARD="w400"
> +CONFIG_SYS_BOARD="odroid-n2"
>  CONFIG_ARCH_MESON=y
>  CONFIG_SYS_TEXT_BASE=0x01000000
>  CONFIG_ENV_SIZE=0x2000
> --
> 2.22.0
>
Neil Armstrong June 22, 2020, 1:06 p.m. UTC | #2
Hi,

On 21/06/2020 19:23, Anand Moon wrote:
> Hi Neil,
> 
> On Thu, 18 Jun 2020 at 20:11, Neil Armstrong <narmstrong@baylibre.com> wrote:
>>
>> From: Pascal Vizeli <pvizeli@syshack.ch>
>>
>> Add a proper Odroid-N2 board support to handle the Ethernet MAC
>> address stored in the in-SoC eFuses.
>>
> 
> This feature need to be implemented for all Amlogic SoC boards,
> since many boards link libretech-cc also generate random mac address
> for ethernet.

In fact, AFAIK only HardKernel stores the MAC in the fuses, now Amlogic stores
the MAC in the eMMC custom partitions, but they did for GXBB and previous SoCs.
Earlier I introduced meson_generate_serial_ethaddr() for GXL and later (not GXBB),
to generate an unique MAC address from the SoC serial.

Neil

> 
> Please add my: Tested on N2.
> Tested-by: Anand Moon <linux.amoon@gmail.com>
> 
> -Anand
> 
>> Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch>
>> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
>> ---
>>  board/amlogic/odroid-n2/MAINTAINERS |  7 +++++
>>  board/amlogic/odroid-n2/Makefile    |  6 ++++
>>  board/amlogic/odroid-n2/odroid-n2.c | 49 +++++++++++++++++++++++++++++
>>  board/amlogic/w400/MAINTAINERS      |  2 --
>>  configs/odroid-n2_defconfig         |  2 +-
>>  5 files changed, 63 insertions(+), 3 deletions(-)
>>  create mode 100644 board/amlogic/odroid-n2/MAINTAINERS
>>  create mode 100644 board/amlogic/odroid-n2/Makefile
>>  create mode 100644 board/amlogic/odroid-n2/odroid-n2.c
>>
>> diff --git a/board/amlogic/odroid-n2/MAINTAINERS b/board/amlogic/odroid-n2/MAINTAINERS
>> new file mode 100644
>> index 0000000000..5627e54058
>> --- /dev/null
>> +++ b/board/amlogic/odroid-n2/MAINTAINERS
>> @@ -0,0 +1,7 @@
>> +ODROID-N2
>> +M:     Neil Armstrong <narmstrong@baylibre.com>
>> +S:     Maintained
>> +L:     u-boot-amlogic@groups.io
>> +F:     board/amlogic/odroid-n2/
>> +F:     configs/odroid-n2_defconfig
>> +F:     doc/board/amlogic/odroid-n2.rst
>> diff --git a/board/amlogic/odroid-n2/Makefile b/board/amlogic/odroid-n2/Makefile
>> new file mode 100644
>> index 0000000000..68e4e2a828
>> --- /dev/null
>> +++ b/board/amlogic/odroid-n2/Makefile
>> @@ -0,0 +1,6 @@
>> +# SPDX-License-Identifier: GPL-2.0+
>> +#
>> +# (C) Copyright 2020 BayLibre, SAS
>> +# Author: Neil Armstrong <narmstrong@baylibre.com>
>> +
>> +obj-y  := odroid-n2.o
>> diff --git a/board/amlogic/odroid-n2/odroid-n2.c b/board/amlogic/odroid-n2/odroid-n2.c
>> new file mode 100644
>> index 0000000000..caf7fd6810
>> --- /dev/null
>> +++ b/board/amlogic/odroid-n2/odroid-n2.c
>> @@ -0,0 +1,49 @@
>> +// SPDX-License-Identifier: GPL-2.0+
>> +/*
>> + * Copyright (C) 2020 BayLibre, SAS
>> + * Author: Neil Armstrong <narmstrong@baylibre.com>
>> + */
>> +
>> +#include <common.h>
>> +#include <dm.h>
>> +#include <env.h>
>> +#include <init.h>
>> +#include <net.h>
>> +#include <asm/io.h>
>> +#include <asm/arch/sm.h>
>> +#include <asm/arch/eth.h>
>> +
>> +#define EFUSE_MAC_OFFSET       20
>> +#define EFUSE_MAC_SIZE         12
>> +#define MAC_ADDR_LEN           6
>> +
>> +int misc_init_r(void)
>> +{
>> +       u8 mac_addr[MAC_ADDR_LEN];
>> +       char efuse_mac_addr[EFUSE_MAC_SIZE], tmp[3];
>> +       ssize_t len;
>> +
>> +       meson_eth_init(PHY_INTERFACE_MODE_RGMII, 0);
>> +
>> +       if (!eth_env_get_enetaddr("ethaddr", mac_addr)) {
>> +               len = meson_sm_read_efuse(EFUSE_MAC_OFFSET,
>> +                                         efuse_mac_addr, EFUSE_MAC_SIZE);
>> +               if (len != EFUSE_MAC_SIZE)
>> +                       return 0;
>> +
>> +               /* MAC is stored in ASCII format, 1bytes = 2characters */
>> +               for (int i = 0; i < 6; i++) {
>> +                       tmp[0] = efuse_mac_addr[i * 2];
>> +                       tmp[1] = efuse_mac_addr[i * 2 + 1];
>> +                       tmp[2] = '\0';
>> +                       mac_addr[i] = simple_strtoul(tmp, NULL, 16);
>> +               }
>> +
>> +               if (is_valid_ethaddr(mac_addr))
>> +                       eth_env_set_enetaddr("ethaddr", mac_addr);
>> +               else
>> +                       meson_generate_serial_ethaddr();
>> +       }
>> +
>> +       return 0;
>> +}
>> diff --git a/board/amlogic/w400/MAINTAINERS b/board/amlogic/w400/MAINTAINERS
>> index 5e837cfaef..a1b0ac8636 100644
>> --- a/board/amlogic/w400/MAINTAINERS
>> +++ b/board/amlogic/w400/MAINTAINERS
>> @@ -5,8 +5,6 @@ L:      u-boot-amlogic@groups.io
>>  F:     board/amlogic/w400/
>>  F:     configs/khadas-vim3_defconfig
>>  F:     configs/khadas-vim3l_defconfig
>> -F:     configs/odroid-n2_defconfig
>>  F:     doc/board/amlogic/w400.rst
>>  F:     doc/board/amlogic/khadas-vim3.rst
>>  F:     doc/board/amlogic/khadas-vim3l.rst
>> -F:     doc/board/amlogic/odroid-n2.rst
>> diff --git a/configs/odroid-n2_defconfig b/configs/odroid-n2_defconfig
>> index e0cc6e3729..063809416e 100644
>> --- a/configs/odroid-n2_defconfig
>> +++ b/configs/odroid-n2_defconfig
>> @@ -1,5 +1,5 @@
>>  CONFIG_ARM=y
>> -CONFIG_SYS_BOARD="w400"
>> +CONFIG_SYS_BOARD="odroid-n2"
>>  CONFIG_ARCH_MESON=y
>>  CONFIG_SYS_TEXT_BASE=0x01000000
>>  CONFIG_ENV_SIZE=0x2000
>> --
>> 2.22.0
>>
Anand Moon June 22, 2020, 3:56 p.m. UTC | #3
Hi Neil,

On Mon, 22 Jun 2020 at 18:36, Neil Armstrong <narmstrong@baylibre.com> wrote:
>
> Hi,
>
> On 21/06/2020 19:23, Anand Moon wrote:
> > Hi Neil,
> >
> > On Thu, 18 Jun 2020 at 20:11, Neil Armstrong <narmstrong@baylibre.com> wrote:
> >>
> >> From: Pascal Vizeli <pvizeli@syshack.ch>
> >>
> >> Add a proper Odroid-N2 board support to handle the Ethernet MAC
> >> address stored in the in-SoC eFuses.
> >>
> >
> > This feature need to be implemented for all Amlogic SoC boards,
> > since many boards link libretech-cc also generate random mac address
> > for ethernet.
>
> In fact, AFAIK only HardKernel stores the MAC in the fuses, now Amlogic stores
> the MAC in the eMMC custom partitions, but they did for GXBB and previous SoCs.
> Earlier I introduced meson_generate_serial_ethaddr() for GXL and later (not GXBB),
> to generate an unique MAC address from the SoC serial.
>
> Neil
>

Thanks for this information.

-Anand
Neil Armstrong June 30, 2020, 1:02 p.m. UTC | #4
On 18/06/2020 16:40, Neil Armstrong wrote:
> From: Pascal Vizeli <pvizeli@syshack.ch>
> 
> Add a proper Odroid-N2 board support to handle the Ethernet MAC
> address stored in the in-SoC eFuses.
> 
> Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch>
> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
> ---
>  board/amlogic/odroid-n2/MAINTAINERS |  7 +++++
>  board/amlogic/odroid-n2/Makefile    |  6 ++++
>  board/amlogic/odroid-n2/odroid-n2.c | 49 +++++++++++++++++++++++++++++
>  board/amlogic/w400/MAINTAINERS      |  2 --
>  configs/odroid-n2_defconfig         |  2 +-
>  5 files changed, 63 insertions(+), 3 deletions(-)
>  create mode 100644 board/amlogic/odroid-n2/MAINTAINERS
>  create mode 100644 board/amlogic/odroid-n2/Makefile
>  create mode 100644 board/amlogic/odroid-n2/odroid-n2.c
> 
> diff --git a/board/amlogic/odroid-n2/MAINTAINERS b/board/amlogic/odroid-n2/MAINTAINERS
> new file mode 100644
> index 0000000000..5627e54058
> --- /dev/null
> +++ b/board/amlogic/odroid-n2/MAINTAINERS
> @@ -0,0 +1,7 @@
> +ODROID-N2
> +M:	Neil Armstrong <narmstrong@baylibre.com>
> +S:	Maintained
> +L:	u-boot-amlogic@groups.io
> +F:	board/amlogic/odroid-n2/
> +F:	configs/odroid-n2_defconfig
> +F:	doc/board/amlogic/odroid-n2.rst
> diff --git a/board/amlogic/odroid-n2/Makefile b/board/amlogic/odroid-n2/Makefile
> new file mode 100644
> index 0000000000..68e4e2a828
> --- /dev/null
> +++ b/board/amlogic/odroid-n2/Makefile
> @@ -0,0 +1,6 @@
> +# SPDX-License-Identifier: GPL-2.0+
> +#
> +# (C) Copyright 2020 BayLibre, SAS
> +# Author: Neil Armstrong <narmstrong@baylibre.com>
> +
> +obj-y	:= odroid-n2.o
> diff --git a/board/amlogic/odroid-n2/odroid-n2.c b/board/amlogic/odroid-n2/odroid-n2.c
> new file mode 100644
> index 0000000000..caf7fd6810
> --- /dev/null
> +++ b/board/amlogic/odroid-n2/odroid-n2.c
> @@ -0,0 +1,49 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * Copyright (C) 2020 BayLibre, SAS
> + * Author: Neil Armstrong <narmstrong@baylibre.com>
> + */
> +
> +#include <common.h>
> +#include <dm.h>
> +#include <env.h>
> +#include <init.h>
> +#include <net.h>
> +#include <asm/io.h>
> +#include <asm/arch/sm.h>
> +#include <asm/arch/eth.h>
> +
> +#define EFUSE_MAC_OFFSET	20
> +#define EFUSE_MAC_SIZE		12
> +#define MAC_ADDR_LEN		6
> +
> +int misc_init_r(void)
> +{
> +	u8 mac_addr[MAC_ADDR_LEN];
> +	char efuse_mac_addr[EFUSE_MAC_SIZE], tmp[3];
> +	ssize_t len;
> +
> +	meson_eth_init(PHY_INTERFACE_MODE_RGMII, 0);
> +
> +	if (!eth_env_get_enetaddr("ethaddr", mac_addr)) {
> +		len = meson_sm_read_efuse(EFUSE_MAC_OFFSET,
> +					  efuse_mac_addr, EFUSE_MAC_SIZE);
> +		if (len != EFUSE_MAC_SIZE)
> +			return 0;
> +
> +		/* MAC is stored in ASCII format, 1bytes = 2characters */
> +		for (int i = 0; i < 6; i++) {
> +			tmp[0] = efuse_mac_addr[i * 2];
> +			tmp[1] = efuse_mac_addr[i * 2 + 1];
> +			tmp[2] = '\0';
> +			mac_addr[i] = simple_strtoul(tmp, NULL, 16);
> +		}
> +
> +		if (is_valid_ethaddr(mac_addr))
> +			eth_env_set_enetaddr("ethaddr", mac_addr);
> +		else
> +			meson_generate_serial_ethaddr();
> +	}
> +
> +	return 0;
> +}
> diff --git a/board/amlogic/w400/MAINTAINERS b/board/amlogic/w400/MAINTAINERS
> index 5e837cfaef..a1b0ac8636 100644
> --- a/board/amlogic/w400/MAINTAINERS
> +++ b/board/amlogic/w400/MAINTAINERS
> @@ -5,8 +5,6 @@ L:	u-boot-amlogic@groups.io
>  F:	board/amlogic/w400/
>  F:	configs/khadas-vim3_defconfig
>  F:	configs/khadas-vim3l_defconfig
> -F:	configs/odroid-n2_defconfig
>  F:	doc/board/amlogic/w400.rst
>  F:	doc/board/amlogic/khadas-vim3.rst
>  F:	doc/board/amlogic/khadas-vim3l.rst
> -F:	doc/board/amlogic/odroid-n2.rst
> diff --git a/configs/odroid-n2_defconfig b/configs/odroid-n2_defconfig
> index e0cc6e3729..063809416e 100644
> --- a/configs/odroid-n2_defconfig
> +++ b/configs/odroid-n2_defconfig
> @@ -1,5 +1,5 @@
>  CONFIG_ARM=y
> -CONFIG_SYS_BOARD="w400"
> +CONFIG_SYS_BOARD="odroid-n2"
>  CONFIG_ARCH_MESON=y
>  CONFIG_SYS_TEXT_BASE=0x01000000
>  CONFIG_ENV_SIZE=0x2000
> 

Applied to u-boot-amlogic for U-Boot 2020.10

Neil
diff mbox series

Patch

diff --git a/board/amlogic/odroid-n2/MAINTAINERS b/board/amlogic/odroid-n2/MAINTAINERS
new file mode 100644
index 0000000000..5627e54058
--- /dev/null
+++ b/board/amlogic/odroid-n2/MAINTAINERS
@@ -0,0 +1,7 @@ 
+ODROID-N2
+M:	Neil Armstrong <narmstrong@baylibre.com>
+S:	Maintained
+L:	u-boot-amlogic@groups.io
+F:	board/amlogic/odroid-n2/
+F:	configs/odroid-n2_defconfig
+F:	doc/board/amlogic/odroid-n2.rst
diff --git a/board/amlogic/odroid-n2/Makefile b/board/amlogic/odroid-n2/Makefile
new file mode 100644
index 0000000000..68e4e2a828
--- /dev/null
+++ b/board/amlogic/odroid-n2/Makefile
@@ -0,0 +1,6 @@ 
+# SPDX-License-Identifier: GPL-2.0+
+#
+# (C) Copyright 2020 BayLibre, SAS
+# Author: Neil Armstrong <narmstrong@baylibre.com>
+
+obj-y	:= odroid-n2.o
diff --git a/board/amlogic/odroid-n2/odroid-n2.c b/board/amlogic/odroid-n2/odroid-n2.c
new file mode 100644
index 0000000000..caf7fd6810
--- /dev/null
+++ b/board/amlogic/odroid-n2/odroid-n2.c
@@ -0,0 +1,49 @@ 
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2020 BayLibre, SAS
+ * Author: Neil Armstrong <narmstrong@baylibre.com>
+ */
+
+#include <common.h>
+#include <dm.h>
+#include <env.h>
+#include <init.h>
+#include <net.h>
+#include <asm/io.h>
+#include <asm/arch/sm.h>
+#include <asm/arch/eth.h>
+
+#define EFUSE_MAC_OFFSET	20
+#define EFUSE_MAC_SIZE		12
+#define MAC_ADDR_LEN		6
+
+int misc_init_r(void)
+{
+	u8 mac_addr[MAC_ADDR_LEN];
+	char efuse_mac_addr[EFUSE_MAC_SIZE], tmp[3];
+	ssize_t len;
+
+	meson_eth_init(PHY_INTERFACE_MODE_RGMII, 0);
+
+	if (!eth_env_get_enetaddr("ethaddr", mac_addr)) {
+		len = meson_sm_read_efuse(EFUSE_MAC_OFFSET,
+					  efuse_mac_addr, EFUSE_MAC_SIZE);
+		if (len != EFUSE_MAC_SIZE)
+			return 0;
+
+		/* MAC is stored in ASCII format, 1bytes = 2characters */
+		for (int i = 0; i < 6; i++) {
+			tmp[0] = efuse_mac_addr[i * 2];
+			tmp[1] = efuse_mac_addr[i * 2 + 1];
+			tmp[2] = '\0';
+			mac_addr[i] = simple_strtoul(tmp, NULL, 16);
+		}
+
+		if (is_valid_ethaddr(mac_addr))
+			eth_env_set_enetaddr("ethaddr", mac_addr);
+		else
+			meson_generate_serial_ethaddr();
+	}
+
+	return 0;
+}
diff --git a/board/amlogic/w400/MAINTAINERS b/board/amlogic/w400/MAINTAINERS
index 5e837cfaef..a1b0ac8636 100644
--- a/board/amlogic/w400/MAINTAINERS
+++ b/board/amlogic/w400/MAINTAINERS
@@ -5,8 +5,6 @@  L:	u-boot-amlogic@groups.io
 F:	board/amlogic/w400/
 F:	configs/khadas-vim3_defconfig
 F:	configs/khadas-vim3l_defconfig
-F:	configs/odroid-n2_defconfig
 F:	doc/board/amlogic/w400.rst
 F:	doc/board/amlogic/khadas-vim3.rst
 F:	doc/board/amlogic/khadas-vim3l.rst
-F:	doc/board/amlogic/odroid-n2.rst
diff --git a/configs/odroid-n2_defconfig b/configs/odroid-n2_defconfig
index e0cc6e3729..063809416e 100644
--- a/configs/odroid-n2_defconfig
+++ b/configs/odroid-n2_defconfig
@@ -1,5 +1,5 @@ 
 CONFIG_ARM=y
-CONFIG_SYS_BOARD="w400"
+CONFIG_SYS_BOARD="odroid-n2"
 CONFIG_ARCH_MESON=y
 CONFIG_SYS_TEXT_BASE=0x01000000
 CONFIG_ENV_SIZE=0x2000