SPL: Add struct spl_boot_device parameter into spl_parse_board_header()

Add parameter spl_boot_device to spl_parse_board_header(), which allows
the implementations to see from which device we are booting and do
boot-device-specific checks of the image header.

Signed-off-by: Pali Rohár <pali@kernel.org>
Signed-off-by: Marek Behún <marek.behun@nic.cz>
Reviewed-by: Stefan Roese <sr@denx.de>
diff --git a/common/spl/spl_spi.c b/common/spl/spl_spi.c
index 4e20a23..cf3f7ef 100644
--- a/common/spl/spl_spi.c
+++ b/common/spl/spl_spi.c
@@ -24,6 +24,7 @@
  * the kernel and then device tree.
  */
 static int spi_load_image_os(struct spl_image_info *spl_image,
+			     struct spl_boot_device *bootdev,
 			     struct spi_flash *flash,
 			     struct image_header *header)
 {
@@ -36,7 +37,7 @@
 	if (image_get_magic(header) != IH_MAGIC)
 		return -1;
 
-	err = spl_parse_image_header(spl_image, header);
+	err = spl_parse_image_header(spl_image, bootdev, header);
 	if (err)
 		return err;
 
@@ -108,7 +109,7 @@
 	}
 
 #if CONFIG_IS_ENABLED(OS_BOOT)
-	if (spl_start_uboot() || spi_load_image_os(spl_image, flash, header))
+	if (spl_start_uboot() || spi_load_image_os(spl_image, bootdev, flash, header))
 #endif
 	{
 		/* Load u-boot, mkimage header is 64 bytes. */
@@ -127,7 +128,7 @@
 					     (void *)CONFIG_SYS_LOAD_ADDR);
 			if (err)
 				return err;
-			err = spl_parse_image_header(spl_image,
+			err = spl_parse_image_header(spl_image, bootdev,
 					(struct image_header *)CONFIG_SYS_LOAD_ADDR);
 		} else if (IS_ENABLED(CONFIG_SPL_LOAD_FIT) &&
 			   image_get_magic(header) == FDT_MAGIC) {
@@ -154,7 +155,7 @@
 			err = spl_load_imx_container(spl_image, &load,
 						     payload_offs);
 		} else {
-			err = spl_parse_image_header(spl_image, header);
+			err = spl_parse_image_header(spl_image, bootdev, header);
 			if (err)
 				return err;
 			err = spi_flash_read(flash, payload_offs + spl_image->offset,