[PATCH 3/4] board: turris: Allow to specify first eth idx of first MAC address
Stefan Roese
sr at denx.de
Thu Apr 21 16:15:02 CEST 2022
On 4/8/22 16:30, Pali Rohár wrote:
> Turris Omnia uses first MAC address from OTP for second ethernet interface.
> Second MAC address for third interface and third MAC address for first
> interface.
>
> Other Turris routers do not have this rotate by one mapping. So add
> function parameter for specifying id of the first ethernet interface.
>
> Signed-off-by: Pali Rohár <pali at kernel.org>
Applied to u-boot-marvell/master
Thanks,
Stefan
> ---
> board/CZ.NIC/turris_atsha_otp.c | 8 ++++----
> board/CZ.NIC/turris_atsha_otp.h | 2 +-
> board/CZ.NIC/turris_omnia/turris_omnia.c | 2 +-
> 3 files changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/board/CZ.NIC/turris_atsha_otp.c b/board/CZ.NIC/turris_atsha_otp.c
> index 840721a9b737..7a39b7f61d5d 100644
> --- a/board/CZ.NIC/turris_atsha_otp.c
> +++ b/board/CZ.NIC/turris_atsha_otp.c
> @@ -49,7 +49,7 @@ static void set_mac_if_invalid(int i, u8 *mac)
> eth_env_set_enetaddr_by_index("eth", i, mac);
> }
>
> -int turris_atsha_otp_init_mac_addresses(void)
> +int turris_atsha_otp_init_mac_addresses(int first_idx)
> {
> struct udevice *dev = get_atsha204a_dev();
> u8 mac0[4], mac1[4], mac[6];
> @@ -81,11 +81,11 @@ int turris_atsha_otp_init_mac_addresses(void)
> mac[4] = mac1[2];
> mac[5] = mac1[3];
>
> - set_mac_if_invalid(1, mac);
> + set_mac_if_invalid((first_idx + 0) % 3, mac);
> increment_mac(mac);
> - set_mac_if_invalid(2, mac);
> + set_mac_if_invalid((first_idx + 1) % 3, mac);
> increment_mac(mac);
> - set_mac_if_invalid(0, mac);
> + set_mac_if_invalid((first_idx + 2) % 3, mac);
>
> return 0;
> }
> diff --git a/board/CZ.NIC/turris_atsha_otp.h b/board/CZ.NIC/turris_atsha_otp.h
> index 667d01af7310..bd4308fdc3ef 100644
> --- a/board/CZ.NIC/turris_atsha_otp.h
> +++ b/board/CZ.NIC/turris_atsha_otp.h
> @@ -3,7 +3,7 @@
> #ifndef TURRIS_ATSHA_OTP_H
> #define TURRIS_ATSHA_OTP_H
>
> -int turris_atsha_otp_init_mac_addresses(void);
> +int turris_atsha_otp_init_mac_addresses(int first_idx);
> int turris_atsha_otp_get_serial_number(u32 *version_num, u32 *serial_num);
>
> #endif
> diff --git a/board/CZ.NIC/turris_omnia/turris_omnia.c b/board/CZ.NIC/turris_omnia/turris_omnia.c
> index 719e8750e60a..da2fee578c44 100644
> --- a/board/CZ.NIC/turris_omnia/turris_omnia.c
> +++ b/board/CZ.NIC/turris_omnia/turris_omnia.c
> @@ -606,7 +606,7 @@ int show_board_info(void)
>
> int misc_init_r(void)
> {
> - turris_atsha_otp_init_mac_addresses();
> + turris_atsha_otp_init_mac_addresses(1);
> return 0;
> }
>
Viele Grüße,
Stefan Roese
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr at denx.de
More information about the U-Boot
mailing list