boot: image-pre-load: Check environment for location of signature info
authorSteven Lawrance <steven.lawrance@softathome.com>
Wed, 14 Sep 2022 18:57:28 +0000 (20:57 +0200)
committerTom Rini <trini@konsulko.com>
Tue, 11 Oct 2022 19:40:48 +0000 (15:40 -0400)
Setting an alternative signature info node in "pre_load_sig_info_path"
allows verification of an image using the bootm pre-load mechanism with
a different key, e.g.: setenv pre_load_sig_info_path "/alt/sig" ; bootm
preload [addr]

Signed-off-by: Steven Lawrance <steven.lawrance@softathome.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
boot/image-pre-load.c

index 01b6003..b504ab4 100644 (file)
@@ -33,6 +33,7 @@ static int image_pre_load_sig_setup(struct image_sig_info *info)
        const u32 *sig_size;
        int key_len;
        int node, ret = 0;
+       char *sig_info_path = NULL;
 
        if (!info) {
                log_err("ERROR: info is NULL for image pre-load sig check\n");
@@ -42,7 +43,11 @@ static int image_pre_load_sig_setup(struct image_sig_info *info)
 
        memset(info, 0, sizeof(*info));
 
-       node = fdt_path_offset(gd_fdt_blob(), IMAGE_PRE_LOAD_PATH);
+       sig_info_path = env_get("pre_load_sig_info_path");
+       if (!sig_info_path)
+               sig_info_path = IMAGE_PRE_LOAD_PATH;
+
+       node = fdt_path_offset(gd_fdt_blob(), sig_info_path);
        if (node < 0) {
                log_info("INFO: no info for image pre-load sig check\n");
                ret = 1;