]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
arm64: xilinx: Guard distro boot variable generation
authorMichal Simek <michal.simek@amd.com>
Tue, 5 Sep 2023 11:30:07 +0000 (13:30 +0200)
committerMichal Simek <michal.simek@amd.com>
Thu, 21 Sep 2023 11:20:11 +0000 (13:20 +0200)
When distro boot is disabled there is no reason to generate variables for
it. Also do not update boot_targets variable because it would be unused.

It is useful for example when standard boot is enabled and distro boot
is disabled.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/570c51435da59831ec245cddceda078afa58a550.1693913398.git.michal.simek@amd.com
board/xilinx/versal-net/board.c
board/xilinx/versal/board.c
board/xilinx/zynqmp/zynqmp.c
include/configs/xilinx_versal.h
include/configs/xilinx_versal_net.h
include/configs/xilinx_zynqmp.h

index 7ad299f3a231d87bb591c5866cadd28e61927603..c18be0c26c995a6852ea5efd228a236d42120ed3 100644 (file)
@@ -194,7 +194,7 @@ static u8 versal_net_get_bootmode(void)
        return bootmode;
 }
 
-int board_late_init(void)
+static int boot_targets_setup(void)
 {
        u8 bootmode;
        struct udevice *dev;
@@ -205,14 +205,6 @@ int board_late_init(void)
        char *new_targets;
        char *env_targets;
 
-       if (!(gd->flags & GD_FLG_ENV_DEFAULT)) {
-               debug("Saved variables - Skipping\n");
-               return 0;
-       }
-
-       if (!IS_ENABLED(CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG))
-               return 0;
-
        bootmode = versal_net_get_bootmode();
 
        puts("Bootmode: ");
@@ -320,6 +312,28 @@ int board_late_init(void)
 
                env_set("boot_targets", new_targets);
        }
+
+       return 0;
+}
+
+int board_late_init(void)
+{
+       int ret;
+
+       if (!(gd->flags & GD_FLG_ENV_DEFAULT)) {
+               debug("Saved variables - Skipping\n");
+               return 0;
+       }
+
+       if (!IS_ENABLED(CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG))
+               return 0;
+
+       if (IS_ENABLED(CONFIG_DISTRO_DEFAULTS)) {
+               ret = boot_targets_setup();
+               if (ret)
+                       return ret;
+       }
+
        return board_late_init_xilinx();
 }
 
index 982a8b3779f1dcb71bec710474d92687d26068a2..e4bdd5d7a38b20774fcd1a219bddbba972cd042e 100644 (file)
@@ -126,7 +126,7 @@ static u8 versal_get_bootmode(void)
        return bootmode;
 }
 
-int board_late_init(void)
+static int boot_targets_setup(void)
 {
        u8 bootmode;
        struct udevice *dev;
@@ -137,14 +137,6 @@ int board_late_init(void)
        char *new_targets;
        char *env_targets;
 
-       if (!(gd->flags & GD_FLG_ENV_DEFAULT)) {
-               debug("Saved variables - Skipping\n");
-               return 0;
-       }
-
-       if (!IS_ENABLED(CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG))
-               return 0;
-
        bootmode = versal_get_bootmode();
 
        puts("Bootmode: ");
@@ -247,6 +239,27 @@ int board_late_init(void)
                env_set("boot_targets", new_targets);
        }
 
+       return 0;
+}
+
+int board_late_init(void)
+{
+       int ret;
+
+       if (!(gd->flags & GD_FLG_ENV_DEFAULT)) {
+               debug("Saved variables - Skipping\n");
+               return 0;
+       }
+
+       if (!IS_ENABLED(CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG))
+               return 0;
+
+       if (IS_ENABLED(CONFIG_DISTRO_DEFAULTS)) {
+               ret = boot_targets_setup();
+               if (ret)
+                       return ret;
+       }
+
        return board_late_init_xilinx();
 }
 
index 0b6d4e57078bdf261cde451d9b31023a82733346..f16280308483153e14dba863fc177f97a3a0cc6f 100644 (file)
@@ -384,7 +384,7 @@ static int set_fdtfile(void)
        return 0;
 }
 
-int board_late_init(void)
+static int boot_targets_setup(void)
 {
        u8 bootmode;
        struct udevice *dev;
@@ -394,27 +394,6 @@ int board_late_init(void)
        const char *mode = NULL;
        char *new_targets;
        char *env_targets;
-       int ret, multiboot;
-
-#if defined(CONFIG_USB_ETHER) && !defined(CONFIG_USB_GADGET_DOWNLOAD)
-       usb_ether_init();
-#endif
-
-       if (!(gd->flags & GD_FLG_ENV_DEFAULT)) {
-               debug("Saved variables - Skipping\n");
-               return 0;
-       }
-
-       if (!IS_ENABLED(CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG))
-               return 0;
-
-       ret = set_fdtfile();
-       if (ret)
-               return ret;
-
-       multiboot = multi_boot();
-       if (multiboot >= 0)
-               env_set_hex("multiboot", multiboot);
 
        bootmode = zynqmp_get_bootmode();
 
@@ -525,6 +504,39 @@ int board_late_init(void)
                free(new_targets);
        }
 
+       return 0;
+}
+
+int board_late_init(void)
+{
+       int ret, multiboot;
+
+#if defined(CONFIG_USB_ETHER) && !defined(CONFIG_USB_GADGET_DOWNLOAD)
+       usb_ether_init();
+#endif
+
+       if (!(gd->flags & GD_FLG_ENV_DEFAULT)) {
+               debug("Saved variables - Skipping\n");
+               return 0;
+       }
+
+       if (!IS_ENABLED(CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG))
+               return 0;
+
+       ret = set_fdtfile();
+       if (ret)
+               return ret;
+
+       multiboot = multi_boot();
+       if (multiboot >= 0)
+               env_set_hex("multiboot", multiboot);
+
+       if (IS_ENABLED(CONFIG_DISTRO_DEFAULTS)) {
+               ret = boot_targets_setup();
+               if (ret)
+                       return ret;
+       }
+
        reset_reason();
 
        return board_late_init_xilinx();
index 98792aba7ccec822d256d67c14084f7822bd7aba..b634bb1ab705d1587515775112e63dd9fd89b446 100644 (file)
@@ -43,6 +43,8 @@
        "ramdisk_addr_r=0x02100000\0" \
        "script_size_f=0x80000\0"
 
+#if defined(CONFIG_DISTRO_DEFAULTS)
+
 #if defined(CONFIG_MMC_SDHCI_ZYNQ)
 # define BOOT_TARGET_DEVICES_MMC(func) func(MMC, mmc, 0) func(MMC, mmc, 1)
 #else
 
 #include <config_distro_bootcmd.h>
 
+#else /* CONFIG_DISTRO_DEFAULTS */
+# define BOOTENV
+#endif /* CONFIG_DISTRO_DEFAULTS */
+
 /* Initial environment variables */
 #ifndef CFG_EXTRA_ENV_SETTINGS
 #define CFG_EXTRA_ENV_SETTINGS \
index e17b44093548a70ba20a2758d2b86f539acecc54..2b441da91a10d3b47447f558b99ebcaee97fc786 100644 (file)
@@ -57,6 +57,8 @@
        "ramdisk_addr_r=0x02100000\0" \
        "script_size_f=0x80000\0"
 
+#if defined(CONFIG_DISTRO_DEFAULTS)
+
 #if defined(CONFIG_MMC_SDHCI_ZYNQ)
 # define BOOT_TARGET_DEVICES_MMC(func) func(MMC, mmc, 0) func(MMC, mmc, 1)
 #else
 
 #include <config_distro_bootcmd.h>
 
+#else /* CONFIG_DISTRO_DEFAULTS */
+# define BOOTENV
+#endif /* CONFIG_DISTRO_DEFAULTS */
+
 /* Initial environment variables */
 #ifndef CFG_EXTRA_ENV_SETTINGS
 #define CFG_EXTRA_ENV_SETTINGS \
index 51f0a42534067253fe56e2556125e6853d8cdc34..c57ab14d1b9720c86648e4d519664b9dffec7ae8 100644 (file)
@@ -63,6 +63,8 @@
        "stdout=serial,vidconsole\0" \
        "stderr=serial,vidconsole\0" \
 
+#if defined(CONFIG_DISTRO_DEFAULTS)
+
 #if defined(CONFIG_MMC_SDHCI_ZYNQ)
 # define BOOT_TARGET_DEVICES_MMC(func) func(MMC, mmc, 0) func(MMC, mmc, 1)
 #else
 
 #include <config_distro_bootcmd.h>
 
+#else /* CONFIG_DISTRO_DEFAULTS */
+# define BOOTENV
+#endif /* CONFIG_DISTRO_DEFAULTS */
+
 /* Initial environment variables */
 #ifndef CFG_EXTRA_ENV_SETTINGS
 #define CFG_EXTRA_ENV_SETTINGS \