]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - tools/image-host.c
Merge branch 'master' of git://git.denx.de/u-boot
[karo-tx-uboot.git] / tools / image-host.c
index 2be5e8043c1dd9cefa7b0380dd51533bee473fea..7effb6cea59e2a084e253e26661949f058c8b534 100644 (file)
@@ -10,6 +10,7 @@
  */
 
 #include "mkimage.h"
+#include <bootm.h>
 #include <image.h>
 #include <version.h>
 
@@ -609,11 +610,13 @@ static int fit_config_process_sig(const char *keydir, void *keydest,
        /* Write the public key into the supplied FDT file */
        if (keydest) {
                ret = info.algo->add_verify_data(&info, keydest);
+               if (ret == -ENOSPC)
+                       return -ENOSPC;
                if (ret) {
                        printf("Failed to add verification data for '%s' signature node in '%s' image node\n",
                               node_name, conf_name);
-                       return ret == FDT_ERR_NOSPACE ? -ENOSPC : -EIO;
                }
+               return ret;
        }
 
        return 0;
@@ -686,7 +689,7 @@ int fit_add_verification_data(const char *keydir, void *keydest, void *fit,
        confs_noffset = fdt_path_offset(fit, FIT_CONFS_PATH);
        if (confs_noffset < 0) {
                printf("Can't find images parent node '%s' (%s)\n",
-                      FIT_IMAGES_PATH, fdt_strerror(confs_noffset));
+                      FIT_CONFS_PATH, fdt_strerror(confs_noffset));
                return -ENOENT;
        }
 
@@ -705,16 +708,21 @@ int fit_add_verification_data(const char *keydir, void *keydest, void *fit,
 }
 
 #ifdef CONFIG_FIT_SIGNATURE
-int fit_check_sign(const void *working_fdt, const void *key)
+int fit_check_sign(const void *fit, const void *key)
 {
        int cfg_noffset;
        int ret;
 
-       cfg_noffset = fit_conf_get_node(working_fdt, NULL);
+       cfg_noffset = fit_conf_get_node(fit, NULL);
        if (!cfg_noffset)
                return -1;
 
-       ret = fit_config_verify(working_fdt, cfg_noffset);
+       printf("Verifying Hash Integrity ... ");
+       ret = fit_config_verify(fit, cfg_noffset);
+       if (ret)
+               return ret;
+       ret = bootm_host_load_images(fit, cfg_noffset);
+
        return ret;
 }
 #endif