]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
board: turris: Allow to specify first eth idx of first MAC address
authorPali Rohár <pali@kernel.org>
Fri, 8 Apr 2022 14:30:14 +0000 (16:30 +0200)
committerStefan Roese <sr@denx.de>
Thu, 21 Apr 2022 10:31:36 +0000 (12:31 +0200)
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@kernel.org>
Reviewed-by: Marek Behún <marek.behun@nic.cz>
board/CZ.NIC/turris_atsha_otp.c
board/CZ.NIC/turris_atsha_otp.h
board/CZ.NIC/turris_omnia/turris_omnia.c

index 840721a9b737548aabaadb063e16a847e30db210..7a39b7f61d5d84eb2f4f740cf38f396d2fae682e 100644 (file)
@@ -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;
 }
index 667d01af7310f254995532b9828cab27408604d4..bd4308fdc3efa3f5c5303b3074c389fd0fbc1e1c 100644 (file)
@@ -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
index 719e8750e60a622192fb8724f51ca727bed9e5d5..da2fee578c44513c58d9792a314434d717727ac3 100644 (file)
@@ -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;
 }