spl: LOAD_FIT_FULL: Support 'kernel' and 'firmware' properties
authorAlexandru Gagniuc <mr.nuke.me@gmail.com>
Thu, 1 Apr 2021 18:25:29 +0000 (13:25 -0500)
committerTom Rini <trini@konsulko.com>
Wed, 14 Apr 2021 20:02:43 +0000 (16:02 -0400)
The 'firmware' property of a config node takes precedence over the
'kernel' property. 'standalone' is deprecated. However, give users a
couple of releases where 'standalone' still works, but warns loudly.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
common/spl/spl.c

index 8941cbf..8c4cd93 100644 (file)
@@ -215,7 +215,24 @@ static int spl_load_fit_image(struct spl_image_info *spl_image,
        ret = fit_image_load(&images, (ulong)header,
                             NULL, &fit_uname_config,
                             IH_ARCH_DEFAULT, IH_TYPE_STANDALONE, -1,
-                            FIT_LOAD_REQUIRED, &fw_data, &fw_len);
+                            FIT_LOAD_OPTIONAL, &fw_data, &fw_len);
+       if (ret >= 0) {
+               printf("DEPRECATED: 'standalone = ' property.");
+               printf("Please use either 'firmware =' or 'kernel ='\n");
+       } else {
+               ret = fit_image_load(&images, (ulong)header, NULL,
+                                    &fit_uname_config, IH_ARCH_DEFAULT,
+                                    IH_TYPE_FIRMWARE, -1, FIT_LOAD_OPTIONAL,
+                                    &fw_data, &fw_len);
+       }
+
+       if (ret < 0) {
+               ret = fit_image_load(&images, (ulong)header, NULL,
+                                    &fit_uname_config, IH_ARCH_DEFAULT,
+                                    IH_TYPE_KERNEL, -1, FIT_LOAD_OPTIONAL,
+                                    &fw_data, &fw_len);
+       }
+
        if (ret < 0)
                return ret;