All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH 1/2] spl: nor: Add FIT support
@ 2018-06-26 17:10 York Sun
  2018-06-26 17:10 ` [U-Boot] [PATCH 2/2] spl: nor: Skip CONFIG_SYS_FDT_BASE if not defined York Sun
  2018-07-20 12:35 ` [U-Boot] [U-Boot,1/2] spl: nor: Add FIT support Tom Rini
  0 siblings, 2 replies; 4+ messages in thread
From: York Sun @ 2018-06-26 17:10 UTC (permalink / raw)
  To: u-boot

Add support of loading FIT image from NOR flash.

Signed-off-by: York Sun <york.sun@nxp.com>
---
 common/spl/spl_nor.c | 42 ++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 40 insertions(+), 2 deletions(-)

diff --git a/common/spl/spl_nor.c b/common/spl/spl_nor.c
index bb6194f..b919fff 100644
--- a/common/spl/spl_nor.c
+++ b/common/spl/spl_nor.c
@@ -6,10 +6,25 @@
 #include <common.h>
 #include <spl.h>
 
+#ifdef CONFIG_SPL_LOAD_FIT
+static ulong spl_nor_load_read(struct spl_load_info *load, ulong sector,
+			       ulong count, void *buf)
+{
+	debug("%s: sector %lx, count %lx, buf %p\n",
+	      __func__, sector, count, buf);
+	memcpy(buf, (void *)sector, count);
+
+	return count;
+}
+#endif
+
 static int spl_nor_load_image(struct spl_image_info *spl_image,
 			      struct spl_boot_device *bootdev)
 {
 	int ret;
+	__maybe_unused const struct image_header *header;
+	__maybe_unused struct spl_load_info load;
+
 	/*
 	 * Loading of the payload to SDRAM is done with skipping of
 	 * the mkimage header in this SPL NOR driver
@@ -18,14 +33,24 @@ static int spl_nor_load_image(struct spl_image_info *spl_image,
 
 #ifdef CONFIG_SPL_OS_BOOT
 	if (!spl_start_uboot()) {
-		const struct image_header *header;
-
 		/*
 		 * Load Linux from its location in NOR flash to its defined
 		 * location in SDRAM
 		 */
 		header = (const struct image_header *)CONFIG_SYS_OS_BASE;
+#ifdef CONFIG_SPL_LOAD_FIT
+		if (image_get_magic(header) == FDT_MAGIC) {
+			debug("Found FIT\n");
+			load.bl_len = 1;
+			load.read = spl_nor_load_read;
 
+			ret = spl_load_simple_fit(spl_image, &load,
+						  CONFIG_SYS_OS_BASE,
+						  (void *)header);
+
+			return ret;
+		}
+#endif
 		if (image_get_os(header) == IH_OS_LINUX) {
 			/* happy - was a Linux */
 
@@ -53,6 +78,19 @@ static int spl_nor_load_image(struct spl_image_info *spl_image,
 	 * Load real U-Boot from its location in NOR flash to its
 	 * defined location in SDRAM
 	 */
+#ifdef CONFIG_SPL_LOAD_FIT
+	header = (const struct image_header *)CONFIG_SYS_UBOOT_BASE;
+	if (image_get_magic(header) == FDT_MAGIC) {
+		debug("Found FIT format U-Boot\n");
+		load.bl_len = 1;
+		load.read = spl_nor_load_read;
+		ret = spl_load_simple_fit(spl_image, &load,
+					  CONFIG_SYS_UBOOT_BASE,
+					  (void *)header);
+
+		return ret;
+	}
+#endif
 	ret = spl_parse_image_header(spl_image,
 			(const struct image_header *)CONFIG_SYS_UBOOT_BASE);
 	if (ret)
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [U-Boot] [PATCH 2/2] spl: nor: Skip CONFIG_SYS_FDT_BASE if not defined
  2018-06-26 17:10 [U-Boot] [PATCH 1/2] spl: nor: Add FIT support York Sun
@ 2018-06-26 17:10 ` York Sun
  2018-07-20 12:35   ` [U-Boot] [U-Boot, " Tom Rini
  2018-07-20 12:35 ` [U-Boot] [U-Boot,1/2] spl: nor: Add FIT support Tom Rini
  1 sibling, 1 reply; 4+ messages in thread
From: York Sun @ 2018-06-26 17:10 UTC (permalink / raw)
  To: u-boot

If FIT image is used, CONFIG_SYS_FDT_BASE is not needed.

Signed-off-by: York Sun <york.sun@nxp.com>
---
 common/spl/spl_nor.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/common/spl/spl_nor.c b/common/spl/spl_nor.c
index b919fff..969e319 100644
--- a/common/spl/spl_nor.c
+++ b/common/spl/spl_nor.c
@@ -62,8 +62,9 @@ static int spl_nor_load_image(struct spl_image_info *spl_image,
 			       (void *)(CONFIG_SYS_OS_BASE +
 					sizeof(struct image_header)),
 			       spl_image->size);
-
+#ifdef CONFIG_SYS_FDT_BASE
 			spl_image->arg = (void *)CONFIG_SYS_FDT_BASE;
+#endif
 
 			return 0;
 		} else {
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [U-Boot] [U-Boot,1/2] spl: nor: Add FIT support
  2018-06-26 17:10 [U-Boot] [PATCH 1/2] spl: nor: Add FIT support York Sun
  2018-06-26 17:10 ` [U-Boot] [PATCH 2/2] spl: nor: Skip CONFIG_SYS_FDT_BASE if not defined York Sun
@ 2018-07-20 12:35 ` Tom Rini
  1 sibling, 0 replies; 4+ messages in thread
From: Tom Rini @ 2018-07-20 12:35 UTC (permalink / raw)
  To: u-boot

On Tue, Jun 26, 2018 at 10:10:03AM -0700, York Sun wrote:

> Add support of loading FIT image from NOR flash.
> 
> Signed-off-by: York Sun <york.sun@nxp.com>

Applied to u-boot/master, thanks!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180720/6172eeb2/attachment.sig>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [U-Boot] [U-Boot, 2/2] spl: nor: Skip CONFIG_SYS_FDT_BASE if not defined
  2018-06-26 17:10 ` [U-Boot] [PATCH 2/2] spl: nor: Skip CONFIG_SYS_FDT_BASE if not defined York Sun
@ 2018-07-20 12:35   ` Tom Rini
  0 siblings, 0 replies; 4+ messages in thread
From: Tom Rini @ 2018-07-20 12:35 UTC (permalink / raw)
  To: u-boot

On Tue, Jun 26, 2018 at 10:10:04AM -0700, York Sun wrote:

> If FIT image is used, CONFIG_SYS_FDT_BASE is not needed.
> 
> Signed-off-by: York Sun <york.sun@nxp.com>

Applied to u-boot/master, thanks!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180720/9f6fb7fd/attachment.sig>

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2018-07-20 12:35 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-06-26 17:10 [U-Boot] [PATCH 1/2] spl: nor: Add FIT support York Sun
2018-06-26 17:10 ` [U-Boot] [PATCH 2/2] spl: nor: Skip CONFIG_SYS_FDT_BASE if not defined York Sun
2018-07-20 12:35   ` [U-Boot] [U-Boot, " Tom Rini
2018-07-20 12:35 ` [U-Boot] [U-Boot,1/2] spl: nor: Add FIT support Tom Rini

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.