spl: ymodem: Add support for loading full fitImages

Add support for loading fully featured fitImages over YModem in SPL.
This is useful when various advanced features of full fitImages are
needed in SPL.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Tom Rini <trini@konsulko.com>
diff --git a/common/spl/spl_ymodem.c b/common/spl/spl_ymodem.c
index 25226e9..fa539ec 100644
--- a/common/spl/spl_ymodem.c
+++ b/common/spl/spl_ymodem.c
@@ -89,7 +89,25 @@
 	if (res <= 0)
 		goto end_stream;
 
-	if (IS_ENABLED(CONFIG_SPL_LOAD_FIT) &&
+	if (IS_ENABLED(CONFIG_SPL_LOAD_FIT_FULL) &&
+	    image_get_magic((struct image_header *)buf) == FDT_MAGIC) {
+		addr = CONFIG_SYS_LOAD_ADDR;
+		ih = (struct image_header *)addr;
+
+		memcpy((void *)addr, buf, res);
+		size += res;
+		addr += res;
+
+		while ((res = xyzModem_stream_read(buf, BUF_SIZE, &err)) > 0) {
+			memcpy((void *)addr, buf, res);
+			size += res;
+			addr += res;
+		}
+
+		ret = spl_parse_image_header(spl_image, ih);
+		if (ret)
+			return ret;
+	} else if (IS_ENABLED(CONFIG_SPL_LOAD_FIT) &&
 	    image_get_magic((struct image_header *)buf) == FDT_MAGIC) {
 		struct spl_load_info load;
 		struct ymodem_fit_info info;