gemini: Make a per-board case for ethernet MAC
authorLinus Walleij <linus.walleij@linaro.org>
Tue, 11 Jun 2019 21:06:54 +0000 (23:06 +0200)
committerChristian Lamparter <chunkeey@gmail.com>
Sat, 15 Jun 2019 17:55:31 +0000 (19:55 +0200)
The DNS-313 isn't the only special board so let's bite the
bullet and create a case ladder in preparation for DIR-685.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com> [refreshed]
target/linux/gemini/base-files/lib/preinit/05_set_ether_mac_gemini

index fed76a3e221b95d1459bb99e0652c6c9d5caeb29..f63a6f1d39b864eeabc69c37fe7669c1b1854e49 100644 (file)
@@ -9,6 +9,22 @@ set_ether_mac() {
        local MAC1
        local MAC2
 
+       case "$(board_name)" in
+       dlink,dns-313)
+               # The DNS-313 has a special field in its RedBoot
+               # binary that we need to check
+               part="$(find_mtd_part RedBoot)"
+               if [ -n "$part" ]; then
+                       DEVID="$(dd if=$part bs=1 skip=119508 count=7 2>/dev/null)"
+                       if [ "$DEVID" = "dns-313" ]; then
+                               MAC1="$(mtd_get_mac_binary RedBoot 119540)"
+                               ip link set eth0 address "$MAC1" 2>/dev/null
+                               return 0
+                       fi
+               fi
+               ;;
+       esac
+
        # Most devices have a standard "VCTL" partition
        part="$(find_mtd_part VCTL)"
        if [ -n "$part" ]; then
@@ -19,18 +35,6 @@ set_ether_mac() {
                ip link set eth1 address "$MAC2" 2>/dev/null
                return 0
        fi
-
-       # The DNS-313 has a special field in its RedBoot
-       # binary that we need to check
-       part="$(find_mtd_part RedBoot)"
-       if [ -n "$part" ]; then
-               DEVID="$(dd if=$part bs=1 skip=119508 count=7 2>/dev/null)"
-               if [ "$DEVID" = "dns-313" ]; then
-                       MAC1="$(mtd_get_mac_binary RedBoot 119540)"
-                       ip link set eth0 address "$MAC1" 2>/dev/null
-                       return 0
-               fi
-       fi
 }
 
 boot_hook_add preinit_main set_ether_mac