binman: Allow reading entries from a subnode

Some images may have multiple copies of the same thing, e.g. two versions
of the read/write U-Boots. It is necessary to read data from one or other
of these under selection of the verified-boot logic. Add a function to
select the subnode to use.

Signed-off-by: Simon Glass <sjg@chromium.org>
diff --git a/include/binman.h b/include/binman.h
index 8b89a96..5958dfb 100644
--- a/include/binman.h
+++ b/include/binman.h
@@ -71,6 +71,20 @@
 ofnode binman_section_find_node(const char *name);
 
 /**
+ * binman_select_subnode() - Select a subnode to use to find entries
+ *
+ * Normally binman selects the top-level node for future entry requests, such as
+ * binman_entry_find(). This function allows a subnode to be chosen instead.
+ *
+ * @name: Name of subnode, typically a section. This must be in the top-level
+ *	binman node
+ * @return 0 if OK, -EINVAL if there is no /binman node, -ECHILD if multiple
+ *	images are being used but the first image is not available, -ENOENT if
+ *	the requested subnode cannot be found
+ */
+int binman_select_subnode(const char *name);
+
+/**
  * binman_init() - Set up the binman symbol information
  *
  * This locates the binary symbol information in the device tree ready for use