Re: [PATCH] board: amlogic: Add Odroid-N2 board support
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
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
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
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
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