On 25.11.19 17:24, Holger Brunck wrote:
For upcoming SECU board we have different MAC address offsets depending
on which functional unit we are running. In this case we need to pass
this value to the ivm_populate_env function instead of using the hard
coded config option there.

Signed-off-by: Holger Brunck <holger.bru...@ch.abb.com>
CC: Stefan Roese <s...@denx.de>
CC: Valentin Longchamp <valentin.longch...@ch.abb.com>
CC: Marek Vasut <ma...@denx.de>

Reviewed-by: Stefan Roese <s...@denx.de>

Thanks,
Stefan

---
  board/keymile/common/common.h   |  2 +-
  board/keymile/common/ivm.c      | 12 ++++++------
  board/keymile/km83xx/km83xx.c   |  3 ++-
  board/keymile/km_arm/km_arm.c   |  3 ++-
  board/keymile/kmp204x/kmp204x.c |  3 ++-
  5 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/board/keymile/common/common.h b/board/keymile/common/common.h
index 42b760dc6e..8251de4db8 100644
--- a/board/keymile/common/common.h
+++ b/board/keymile/common/common.h
@@ -121,7 +121,7 @@ struct bfticu_iomap {
  };
int ethernet_present(void);
-int ivm_read_eeprom(unsigned char *buf, int len);
+int ivm_read_eeprom(unsigned char *buf, int len, int mac_address_offset);
  int ivm_analyze_eeprom(unsigned char *buf, int len);
int trigger_fpga_config(void);
diff --git a/board/keymile/common/ivm.c b/board/keymile/common/ivm.c
index 429e9c7914..fee7f03c8c 100644
--- a/board/keymile/common/ivm.c
+++ b/board/keymile/common/ivm.c
@@ -297,7 +297,7 @@ int ivm_analyze_eeprom(unsigned char *buf, int len)
        return 0;
  }
-static int ivm_populate_env(unsigned char *buf, int len)
+static int ivm_populate_env(unsigned char *buf, int len, int 
mac_address_offset)
  {
        unsigned char   *page2;
        unsigned char   valbuf[MAC_STR_SZ];
@@ -309,23 +309,23 @@ static int ivm_populate_env(unsigned char *buf, int len)
#ifndef CONFIG_KMTEGR1
        /* if an offset is defined, add it */
-       process_mac(valbuf, page2, CONFIG_PIGGY_MAC_ADDRESS_OFFSET, true);
+       process_mac(valbuf, page2, mac_address_offset, true);
        env_set((char *)"ethaddr", (char *)valbuf);
  #else
  /* KMTEGR1 has a special setup. eth0 has no connection to the outside and
   * gets an locally administred MAC address, eth1 is the debug interface and
   * gets the official MAC address from the IVM
   */
-       process_mac(valbuf, page2, CONFIG_PIGGY_MAC_ADDRESS_OFFSET, false);
+       process_mac(valbuf, page2, mac_address_offset, false);
        env_set((char *)"ethaddr", (char *)valbuf);
-       process_mac(valbuf, page2, CONFIG_PIGGY_MAC_ADDRESS_OFFSET, true);
+       process_mac(valbuf, page2, mac_address_offset, true);
        env_set((char *)"eth1addr", (char *)valbuf);
  #endif
return 0;
  }
-int ivm_read_eeprom(unsigned char *buf, int len)
+int ivm_read_eeprom(unsigned char *buf, int len, int mac_address_offset)
  {
        int ret;
@@ -339,5 +339,5 @@ int ivm_read_eeprom(unsigned char *buf, int len)
                return -2;
        }
- return ivm_populate_env(buf, len);
+       return ivm_populate_env(buf, len, mac_address_offset);
  }
diff --git a/board/keymile/km83xx/km83xx.c b/board/keymile/km83xx/km83xx.c
index 8846b64f7d..59347a3990 100644
--- a/board/keymile/km83xx/km83xx.c
+++ b/board/keymile/km83xx/km83xx.c
@@ -185,7 +185,8 @@ int board_early_init_r(void)
int misc_init_r(void)
  {
-       ivm_read_eeprom(ivm_content, CONFIG_SYS_IVM_EEPROM_MAX_LEN);
+       ivm_read_eeprom(ivm_content, CONFIG_SYS_IVM_EEPROM_MAX_LEN,
+                       CONFIG_PIGGY_MAC_ADDRESS_OFFSET);
        return 0;
  }
diff --git a/board/keymile/km_arm/km_arm.c b/board/keymile/km_arm/km_arm.c
index 922cc621f7..2724d8bd48 100644
--- a/board/keymile/km_arm/km_arm.c
+++ b/board/keymile/km_arm/km_arm.c
@@ -231,7 +231,8 @@ int misc_init_r(void)
        }
  #endif
- ivm_read_eeprom(ivm_content, CONFIG_SYS_IVM_EEPROM_MAX_LEN);
+       ivm_read_eeprom(ivm_content, CONFIG_SYS_IVM_EEPROM_MAX_LEN,
+                       CONFIG_PIGGY_MAC_ADDRESS_OFFSET);
initialize_unit_leds();
        set_km_env();
diff --git a/board/keymile/kmp204x/kmp204x.c b/board/keymile/kmp204x/kmp204x.c
index 4d1e38aa3a..e7c321c326 100644
--- a/board/keymile/kmp204x/kmp204x.c
+++ b/board/keymile/kmp204x/kmp204x.c
@@ -195,7 +195,8 @@ int misc_init_r(void)
                }
        }
- ivm_read_eeprom(ivm_content, CONFIG_SYS_IVM_EEPROM_MAX_LEN);
+       ivm_read_eeprom(ivm_content, CONFIG_SYS_IVM_EEPROM_MAX_LEN,
+                       CONFIG_PIGGY_MAC_ADDRESS_OFFSET);
        return 0;
  }

Viele Grüße,
Stefan

--
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: s...@denx.de
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to