On 03.03.21 01:55, Phil Sutter wrote:
Define a misc_init_r() which calls "syno populate_env" if the
environment seems incomplete (or default), indicated by missing
"ethaddr" variable. With this in place, no random MAC address fallback
is needed anymore.

Signed-off-by: Phil Sutter <p...@nwl.cc>
---
  board/Synology/ds414/cmd_syno.c |  2 +-
  board/Synology/ds414/ds414.c    | 13 +++++++++++++
  configs/ds414_defconfig         |  4 +---
  3 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/board/Synology/ds414/cmd_syno.c b/board/Synology/ds414/cmd_syno.c
index a120c3123ffb3..07bb395da3acc 100644
--- a/board/Synology/ds414/cmd_syno.c
+++ b/board/Synology/ds414/cmd_syno.c
@@ -22,7 +22,7 @@
  #define SYNO_CHKSUM_TAG               "CHK="
-static int do_syno_populate(int argc, char *const argv[])
+int do_syno_populate(int argc, char *const argv[])
  {
        unsigned int bus = CONFIG_SF_DEFAULT_BUS;
        unsigned int cs = CONFIG_SF_DEFAULT_CS;
diff --git a/board/Synology/ds414/ds414.c b/board/Synology/ds414/ds414.c
index 9c4ce670ddfbd..c2469d6665255 100644
--- a/board/Synology/ds414/ds414.c
+++ b/board/Synology/ds414/ds414.c
@@ -179,6 +179,19 @@ int board_init(void)
        return 0;
  }
+#ifndef CONFIG_SPL_BUILD
+int do_syno_populate(int argc, char *const argv[]);

I suspect that this prototype in a C file will trigger at least a
checkpatch warning?

Other than that:

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

Thanks,
Stefan


+
+int misc_init_r(void)
+{
+       if (!env_get("ethaddr")) {
+               puts("Incomplete environment, populating from SPI flash\n");
+               do_syno_populate(0, NULL);
+       }
+       return 0;
+}
+#endif
+
  int checkboard(void)
  {
        puts("Board: DS414\n");
diff --git a/configs/ds414_defconfig b/configs/ds414_defconfig
index fa9366778748c..948b22f3d1f66 100644
--- a/configs/ds414_defconfig
+++ b/configs/ds414_defconfig
@@ -21,10 +21,9 @@ CONFIG_DEBUG_UART=y
  CONFIG_BOOTDELAY=3
  CONFIG_USE_BOOTARGS=y
  CONFIG_BOOTARGS="console=ttyS0,115200 ip=off initrd=0x8000040,8M root=/dev/md0 rw 
syno_hw_version=DS414r1 ihd_num=4 netif_num=2 flash_size=8 SataLedSpecial=1 
HddHotplug=1"
-CONFIG_USE_PREBOOT=y
-CONFIG_PREBOOT="usb start; sf probe"
  # CONFIG_DISPLAY_BOARDINFO is not set
  CONFIG_DISPLAY_BOARDINFO_LATE=y
+CONFIG_MISC_INIT_R=y
  CONFIG_SPL_I2C_SUPPORT=y
  # CONFIG_CMD_FLASH is not set
  CONFIG_CMD_I2C=y
@@ -47,7 +46,6 @@ CONFIG_ENV_OVERWRITE=y
  CONFIG_USE_ENV_SPI_MAX_HZ=y
  CONFIG_ENV_SPI_MAX_HZ=50000000
  CONFIG_SYS_RELOC_GD_ENV_ADDR=y
-CONFIG_NET_RANDOM_ETHADDR=y
  CONFIG_SPL_OF_TRANSLATE=y
  CONFIG_BLK=y
  # CONFIG_MMC is not set



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

Reply via email to