Re: [PATCH] board: amlogic: Add Odroid-N2 board support

2020-06-30 Thread Neil Armstrong
On 18/06/2020 16:40, Neil Armstrong wrote:
> From: Pascal Vizeli 
> 
> Add a proper Odroid-N2 board support to handle the Ethernet MAC
> address stored in the in-SoC eFuses.
> 
> Signed-off-by: Pascal Vizeli 
> Signed-off-by: Neil Armstrong 
> ---
>  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 00..5627e54058
> --- /dev/null
> +++ b/board/amlogic/odroid-n2/MAINTAINERS
> @@ -0,0 +1,7 @@
> +ODROID-N2
> +M:   Neil Armstrong 
> +S:   Maintained
> +L:   u-boot-amlo...@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 00..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 
> +
> +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 00..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 
> + */
> +
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +
> +#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-amlo...@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=0x0100
>  CONFIG_ENV_SIZE=0x2000
> 

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

Neil


Re: [PATCH] board: amlogic: Add Odroid-N2 board support

2020-06-22 Thread Anand Moon
Hi Neil,

On Mon, 22 Jun 2020 at 18:36, Neil Armstrong  wrote:
>
> Hi,
>
> On 21/06/2020 19:23, Anand Moon wrote:
> > Hi Neil,
> >
> > On Thu, 18 Jun 2020 at 20:11, Neil Armstrong  
> > wrote:
> >>
> >> From: Pascal Vizeli 
> >>
> >> 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


Re: [PATCH] board: amlogic: Add Odroid-N2 board support

2020-06-22 Thread Neil Armstrong
Hi,

On 21/06/2020 19:23, Anand Moon wrote:
> Hi Neil,
> 
> On Thu, 18 Jun 2020 at 20:11, Neil Armstrong  wrote:
>>
>> From: Pascal Vizeli 
>>
>> 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 
> 
> -Anand
> 
>> Signed-off-by: Pascal Vizeli 
>> Signed-off-by: Neil Armstrong 
>> ---
>>  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 00..5627e54058
>> --- /dev/null
>> +++ b/board/amlogic/odroid-n2/MAINTAINERS
>> @@ -0,0 +1,7 @@
>> +ODROID-N2
>> +M: Neil Armstrong 
>> +S: Maintained
>> +L: u-boot-amlo...@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 00..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 
>> +
>> +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 00..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 
>> + */
>> +
>> +#include 
>> +#include 
>> +#include 
>> +#include 
>> +#include 
>> +#include 
>> +#include 
>> +#include 
>> +
>> +#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-amlo...@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=0x0100
>>  CONFIG_ENV_SIZE=0x2000
>> --
>> 2.22.0
>>



Re: [PATCH] board: amlogic: Add Odroid-N2 board support

2020-06-21 Thread Anand Moon
Hi Neil,

On Thu, 18 Jun 2020 at 20:11, Neil Armstrong  wrote:
>
> From: Pascal Vizeli 
>
> 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 

-Anand

> Signed-off-by: Pascal Vizeli 
> Signed-off-by: Neil Armstrong 
> ---
>  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 00..5627e54058
> --- /dev/null
> +++ b/board/amlogic/odroid-n2/MAINTAINERS
> @@ -0,0 +1,7 @@
> +ODROID-N2
> +M: Neil Armstrong 
> +S: Maintained
> +L: u-boot-amlo...@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 00..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 
> +
> +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 00..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 
> + */
> +
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +
> +#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-amlo...@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=0x0100
>  CONFIG_ENV_SIZE=0x2000
> --
> 2.22.0
>


[PATCH] board: amlogic: Add Odroid-N2 board support

2020-06-18 Thread Neil Armstrong
From: Pascal Vizeli 

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

Signed-off-by: Pascal Vizeli 
Signed-off-by: Neil Armstrong 
---
 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 00..5627e54058
--- /dev/null
+++ b/board/amlogic/odroid-n2/MAINTAINERS
@@ -0,0 +1,7 @@
+ODROID-N2
+M: Neil Armstrong 
+S: Maintained
+L: u-boot-amlo...@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 00..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 
+
+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 00..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 
+ */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#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-amlo...@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=0x0100
 CONFIG_ENV_SIZE=0x2000
-- 
2.22.0