All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot-Users] [PATCH 0/6] [new uImage] patchset4 - assorted patches
@ 2008-02-20 17:19 Bartlomiej Sieka
  2008-02-20 17:19 ` [U-Boot-Users] [PATCH 1/6] [new uImage] Pull in libfdt if CONFIG_FIT is enabled Bartlomiej Sieka
                   ` (5 more replies)
  0 siblings, 6 replies; 16+ messages in thread
From: Bartlomiej Sieka @ 2008-02-20 17:19 UTC (permalink / raw)
  To: u-boot

This patchset encompasses some clean-ups and fixes, and adds the new uImage
#define knob (CONFIG_FIT), which is enabled by default. The patchset also adds
some new uImage-specific functionality: (1) a routine to parse new-style
arguments to bootm (and other commands), (2) a generic function for retrieving
images. It lays foundation for the soon-to-follow:
- low-level new uImage handling functions
- mkimage extensions to allow generation of new format images
- U-Boot support for booting new format images

Code from this patchset will be soon available from the new-image branch of
the u-boot-testing repository.

Please review, test and provide comments.


Marian Balakowicz (6):
      [new uImage] Fix erroneous use of image_get_magic() in fdc/usb cmds
      [new uImage] Rename and move print_image_hdr() routine
      [new uImage] Add fit_parse_conf() and fit_parse_subimage() routines
      [new uImage] Add gen_get_image() routine
      [libfdt] Fix compilation errors is fdt_support.c
      [new uImage] Pull in libfdt if CONFIG_FIT is enabled



Regards,
Bartlomiej

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

* [U-Boot-Users] [PATCH 1/6] [new uImage] Pull in libfdt if CONFIG_FIT is enabled
  2008-02-20 17:19 [U-Boot-Users] [PATCH 0/6] [new uImage] patchset4 - assorted patches Bartlomiej Sieka
@ 2008-02-20 17:19 ` Bartlomiej Sieka
  2008-02-20 17:20 ` [U-Boot-Users] [PATCH 2/6] [libfdt] Fix compilation errors is fdt_support.c Bartlomiej Sieka
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 16+ messages in thread
From: Bartlomiej Sieka @ 2008-02-20 17:19 UTC (permalink / raw)
  To: u-boot

From: Marian Balakowicz <m8@semihalf.com>

New uImage format (Flattened Image Tree) requires libfdt
functionality, print out error message if CONFIG_OF_LIBFDT
is not defined.

New uImage support is enabled by defining CONFIG_FIT (and CONFIG_OF_LIBFDT).
This commit turns it on by default.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
---

 cpu/mpc5xxx/cpu.c |    2 +-
 cpu/mpc8260/cpu.c |    2 +-
 cpu/mpc8xx/cpu.c  |    2 +-
 include/image.h   |    9 +++++++++
 4 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/cpu/mpc5xxx/cpu.c b/cpu/mpc5xxx/cpu.c
index e4d6168..7522afe 100644
--- a/cpu/mpc5xxx/cpu.c
+++ b/cpu/mpc5xxx/cpu.c
@@ -114,7 +114,7 @@ unsigned long get_tbclk (void)
 
 /* ------------------------------------------------------------------------- */
 
-#ifdef CONFIG_OF_LIBFDT
+#if defined(CONFIG_OF_LIBFDT) && defined (CONFIG_OF_BOARD_SETUP)
 void ft_cpu_setup(void *blob, bd_t *bd)
 {
 	int div = in_8((void*)CFG_MBAR + 0x204) & 0x0020 ? 8 : 4;
diff --git a/cpu/mpc8260/cpu.c b/cpu/mpc8260/cpu.c
index 55e61a1..414759e 100644
--- a/cpu/mpc8260/cpu.c
+++ b/cpu/mpc8260/cpu.c
@@ -300,7 +300,7 @@ void watchdog_reset (void)
 #endif /* CONFIG_WATCHDOG */
 
 /* ------------------------------------------------------------------------- */
-#if defined(CONFIG_OF_LIBFDT)
+#if defined(CONFIG_OF_LIBFDT) && defined (CONFIG_OF_BOARD_SETUP)
 void ft_cpu_setup (void *blob, bd_t *bd)
 {
 	char * cpu_path = "/cpus/" OF_CPU;
diff --git a/cpu/mpc8xx/cpu.c b/cpu/mpc8xx/cpu.c
index c878352..5d4ab82 100644
--- a/cpu/mpc8xx/cpu.c
+++ b/cpu/mpc8xx/cpu.c
@@ -638,7 +638,7 @@ void reset_8xx_watchdog (volatile immap_t * immr)
 #endif /* CONFIG_WATCHDOG */
 
 /* ------------------------------------------------------------------------- */
-#if defined(CONFIG_OF_LIBFDT)
+#if defined(CONFIG_OF_LIBFDT) && defined (CONFIG_OF_BOARD_SETUP)
 void ft_cpu_setup (void *blob, bd_t *bd)
 {
 	char * cpu_path = "/cpus/" OF_CPU;
diff --git a/include/image.h b/include/image.h
index dbbbee9..ecfce72 100644
--- a/include/image.h
+++ b/include/image.h
@@ -35,10 +35,19 @@
 
 #include <asm/byteorder.h>
 #include <command.h>
+
 #ifndef USE_HOSTCC
 #include <linux/string.h>
 #include <asm/u-boot.h>
+
+/* new uImage format support enabled by default */
+#define CONFIG_FIT		1
+#define CONFIG_OF_LIBFDT	1
+
+#if defined(CONFIG_FIT) && !defined(CONFIG_OF_LIBFDT)
+#error "CONFIG_OF_LIBFDT not enabled, required by CONFIG_FIT!"
 #endif
+#endif /* USE_HOSTCC */
 
 /*
  * Operating System Codes

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

* [U-Boot-Users] [PATCH 2/6] [libfdt] Fix compilation errors is fdt_support.c
  2008-02-20 17:19 [U-Boot-Users] [PATCH 0/6] [new uImage] patchset4 - assorted patches Bartlomiej Sieka
  2008-02-20 17:19 ` [U-Boot-Users] [PATCH 1/6] [new uImage] Pull in libfdt if CONFIG_FIT is enabled Bartlomiej Sieka
@ 2008-02-20 17:20 ` Bartlomiej Sieka
  2008-02-20 17:33   ` Jerry Van Baren
  2008-02-20 19:10   ` Kumar Gala
  2008-02-20 17:20 ` [U-Boot-Users] [PATCH 3/6] [new uImage] Add gen_get_image() routine Bartlomiej Sieka
                   ` (3 subsequent siblings)
  5 siblings, 2 replies; 16+ messages in thread
From: Bartlomiej Sieka @ 2008-02-20 17:20 UTC (permalink / raw)
  To: u-boot

From: Marian Balakowicz <m8@semihalf.com>

fdt_support.c does not compile with the DEBUG enabled,
correct arguments passed to debug() calls.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
---

 common/fdt_support.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/common/fdt_support.c b/common/fdt_support.c
index a13c140..628bbdd 100644
--- a/common/fdt_support.c
+++ b/common/fdt_support.c
@@ -418,7 +418,7 @@ void do_fixup_by_path(void *fdt, const char *path, const char *prop,
 {
 #if defined(DEBUG)
 	int i;
-	debug("Updating property '%s/%s' = ", node, prop);
+	debug("Updating property %s, path '%s' = ", prop, path);
 	for (i = 0; i < len; i++)
 		debug(" %.2x", *(u8*)(val+i));
 	debug("\n");
@@ -444,7 +444,7 @@ void do_fixup_by_prop(void *fdt,
 	int off;
 #if defined(DEBUG)
 	int i;
-	debug("Updating property '%s/%s' = ", node, prop);
+	debug("Updating property '%s', pname '%s' = ", prop, pname);
 	for (i = 0; i < len; i++)
 		debug(" %.2x", *(u8*)(val+i));
 	debug("\n");
@@ -471,7 +471,7 @@ void do_fixup_by_compat(void *fdt, const char *compat,
 	int off = -1;
 #if defined(DEBUG)
 	int i;
-	debug("Updating property '%s/%s' = ", node, prop);
+	debug("Updating property '%s', compat '%s' = ", prop, compat);
 	for (i = 0; i < len; i++)
 		debug(" %.2x", *(u8*)(val+i));
 	debug("\n");

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

* [U-Boot-Users] [PATCH 3/6] [new uImage] Add gen_get_image() routine
  2008-02-20 17:19 [U-Boot-Users] [PATCH 0/6] [new uImage] patchset4 - assorted patches Bartlomiej Sieka
  2008-02-20 17:19 ` [U-Boot-Users] [PATCH 1/6] [new uImage] Pull in libfdt if CONFIG_FIT is enabled Bartlomiej Sieka
  2008-02-20 17:20 ` [U-Boot-Users] [PATCH 2/6] [libfdt] Fix compilation errors is fdt_support.c Bartlomiej Sieka
@ 2008-02-20 17:20 ` Bartlomiej Sieka
  2008-02-20 19:19   ` Kumar Gala
  2008-02-20 17:20 ` [U-Boot-Users] [PATCH 4/6] [new uImage] Add fit_parse_conf() and fit_parse_subimage() routines Bartlomiej Sieka
                   ` (2 subsequent siblings)
  5 siblings, 1 reply; 16+ messages in thread
From: Bartlomiej Sieka @ 2008-02-20 17:20 UTC (permalink / raw)
  To: u-boot

From: Marian Balakowicz <m8@semihalf.com>

This routine assures that image (whether legacy or FIT) is not
in a special dataflash storage.

If image address is a dataflash address image is moved to system RAM.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
---

 common/cmd_bootm.c |   22 +--------
 common/image.c     |  124 +++++++++++++++++++++++++++++++++++++++++++---------
 include/image.h    |    6 +++
 lib_ppc/bootm.c    |    5 ++
 4 files changed, 117 insertions(+), 40 deletions(-)

diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c
index 2ddb191..ebb6b69 100644
--- a/common/cmd_bootm.c
+++ b/common/cmd_bootm.c
@@ -44,10 +44,6 @@
 #include <hush.h>
 #endif
 
-#ifdef CONFIG_HAS_DATAFLASH
-#include <dataflash.h>
-#endif
-
 DECLARE_GLOBAL_DATA_PTR;
 
 extern int gunzip (void *dst, int dstlen, unsigned char *src, unsigned long *lenp);
@@ -304,12 +300,8 @@ static image_header_t *get_kernel (cmd_tbl_t *cmdtp, int flag,
 	show_boot_progress (1);
 	printf ("## Booting image at %08lx ...\n", img_addr);
 
-#ifdef CONFIG_HAS_DATAFLASH
-	if (addr_dataflash (img_addr)){
-		hdr = (image_header_t *)CFG_LOAD_ADDR;
-		read_dataflash (img_addr, image_get_header_size (), (char *)hdr);
-	} else
-#endif
+	/* copy from dataflash if needed */
+	img_addr = gen_get_image (img_addr);
 	hdr = (image_header_t *)img_addr;
 
 	if (!image_check_magic(hdr)) {
@@ -324,16 +316,8 @@ static image_header_t *get_kernel (cmd_tbl_t *cmdtp, int flag,
 		show_boot_progress (-2);
 		return NULL;
 	}
-	show_boot_progress (3);
 
-#ifdef CONFIG_HAS_DATAFLASH
-	if (addr_dataflash (img_addr))
-		read_dataflash (img_addr + image_get_header_size (),
-				image_get_data_size (hdr),
-				(char *)image_get_data (hdr));
-#endif
-
-	/* uImage is in a system RAM, pointed to by hdr */
+	show_boot_progress (3);
 	print_image_hdr (hdr);
 
 	if (verify) {
diff --git a/common/image.c b/common/image.c
index 39e5f23..8d5ca4e 100644
--- a/common/image.c
+++ b/common/image.c
@@ -41,6 +41,12 @@
 #include <logbuff.h>
 #endif
 
+#if defined(CONFIG_FIT)
+#include <fdt.h>
+#include <libfdt.h>
+#include <fdt_support.h>
+#endif
+
 extern int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
 
 #ifdef CONFIG_CMD_BDI
@@ -305,6 +311,101 @@ const char* image_get_comp_name (uint8_t comp)
 }
 
 /**
+ * gen_image_get_format - get image format type
+ * @img_addr: image start address
+ *
+ * gen_image_get_format() checks whether provided address points to a valid
+ * legacy or FIT image.
+ *
+ * returns:
+ *     image format type or IMAGE_FORMAT_INVALID if no image is present
+ */
+int gen_image_get_format (void *img_addr)
+{
+	ulong		format = IMAGE_FORMAT_INVALID;
+	image_header_t	*hdr;
+#if defined(CONFIG_FIT)
+	char		*fit_hdr;
+#endif
+
+	hdr = (image_header_t *)img_addr;
+	if (image_check_magic(hdr))
+		format = IMAGE_FORMAT_LEGACY;
+#if defined(CONFIG_FIT)
+	else {
+		fit_hdr = (char *)img_addr;
+		if (fdt_check_header (fit_hdr) == 0)
+			format = IMAGE_FORMAT_FIT;
+	}
+#endif
+
+	return format;
+}
+
+/**
+ * gen_get_image - get image from special storage (if necessary)
+ * @img_addr: image start address
+ *
+ * gen_get_image() checks if provided image start adddress is located
+ * in a dataflash storage. If so, image is moved to a system RAM memory.
+ *
+ * returns:
+ *     image start address after possible relocation from special storage
+ */
+ulong gen_get_image (ulong img_addr)
+{
+	ulong ram_addr, h_size, d_size;
+
+	h_size = image_get_header_size ();
+#if defined(CONFIG_FIT)
+	if (sizeof(struct fdt_header) > h_size)
+		h_size = sizeof(struct fdt_header);
+#endif
+
+#ifdef CONFIG_HAS_DATAFLASH
+	if (addr_dataflash (img_addr)){
+		ram_addr = CFG_LOAD_ADDR;
+		debug ("   Reading image header from dataflash address "
+			"%08lx to RAM address %08lx\n", img_addr, ram_addr);
+		read_dataflash (img_addr, h_size, (char *)ram_addr);
+	} else
+#endif
+	ram_addr = img_addr;
+
+	switch (gen_image_get_format ((void *)ram_addr)) {
+	case IMAGE_FORMAT_LEGACY:
+		d_size = image_get_data_size ((image_header_t *)ram_addr);
+		debug ("   Legacy format image found at 0x%08lx, size 0x%08lx\n",
+				ram_addr, d_size);
+		break;
+#if defined(CONFIG_FIT)
+	case IMAGE_FORMAT_FIT:
+		d_size = fdt_totalsize((void *)ram_addr) - h_size;
+		debug ("   FIT/FDT format image found at 0x%08lx, size 0x%08lx\n",
+				ram_addr, d_size);
+
+		break;
+#endif
+	default:
+		printf ("   No valid image found at 0x%08lx\n", img_addr);
+		return ram_addr;
+	}
+
+#ifdef CONFIG_HAS_DATAFLASH
+	if (addr_dataflash (img_addr)) {
+		debug ("   Reading image remaining data from dataflash address "
+			"%08lx to RAM address %08lx\n", img_addr + h_size,
+			ram_addr + h_size);
+
+		read_dataflash (img_addr + h_size, d_size,
+				(char *)(ram_addr + h_size));
+	}
+#endif
+
+	return ram_addr;
+}
+
+/**
  * image_get_ramdisk - get and verify ramdisk image
  * @cmdtp: command table pointer
  * @flag: command flag
@@ -334,15 +435,8 @@ image_header_t* image_get_ramdisk (cmd_tbl_t *cmdtp, int flag,
 
 	show_boot_progress (9);
 
-#ifdef CONFIG_HAS_DATAFLASH
-	if (addr_dataflash (rd_addr)) {
-		rd_hdr = (image_header_t *)CFG_LOAD_ADDR;
-		debug ("   Reading Ramdisk image header from dataflash address "
-			"%08lx to %08lx\n", rd_addr, (ulong)rd_hdr);
-		read_dataflash (rd_addr, image_get_header_size (),
-				(char *)rd_hdr);
-	} else
-#endif
+	/* copy from dataflash if needed */
+	rd_addr = gen_get_image (rd_addr);
 	rd_hdr = (image_header_t *)rd_addr;
 
 	if (!image_check_magic (rd_hdr)) {
@@ -360,18 +454,6 @@ image_header_t* image_get_ramdisk (cmd_tbl_t *cmdtp, int flag,
 	show_boot_progress (10);
 	print_image_hdr (rd_hdr);
 
-#ifdef CONFIG_HAS_DATAFLASH
-	if (addr_dataflash (rd_addr)) {
-		debug ("   Reading Ramdisk image data from dataflash address "
-			"%08lx to %08lx\n", rd_addr + image_get_header_size,
-			(ulong)image_get_data (rd_hdr));
-
-		read_dataflash (rd_addr + image_get_header_size (),
-				image_get_data_size (rd_hdr),
-				(char *)image_get_data (rd_hdr));
-	}
-#endif
-
 	if (verify) {
 		puts("   Verifying Checksum ... ");
 		if (!image_check_dcrc_wd (rd_hdr, CHUNKSZ)) {
diff --git a/include/image.h b/include/image.h
index ecfce72..b4de49d 100644
--- a/include/image.h
+++ b/include/image.h
@@ -343,6 +343,12 @@ const char* image_get_arch_name (uint8_t arch);
 const char* image_get_type_name (uint8_t type);
 const char* image_get_comp_name (uint8_t comp);
 
+#define IMAGE_FORMAT_INVALID	0x00
+#define IMAGE_FORMAT_LEGACY	0x01
+#define IMAGE_FORMAT_FIT	0x02
+int gen_image_get_format (void *img_addr);
+ulong gen_get_image (ulong img_addr);
+
 image_header_t* image_get_ramdisk (cmd_tbl_t *cmdtp, int flag,
 		int argc, char *argv[],
 		ulong rd_addr, uint8_t arch, int verify);
diff --git a/lib_ppc/bootm.c b/lib_ppc/bootm.c
index 69ec459..04a9665 100644
--- a/lib_ppc/bootm.c
+++ b/lib_ppc/bootm.c
@@ -234,6 +234,11 @@ static ulong get_fdt (ulong alloc_current,
 
 	if(argc > 3) {
 		fdt = (char *)simple_strtoul (argv[3], NULL, 16);
+
+		debug ("## Checking for 'FDT'/'FDT image' at %08lx\n", fdt);
+
+		/* copy from dataflash if needed */
+		fdt = (char *)gen_get_image ((ulong)fdt);
 		fdt_hdr = (image_header_t *)fdt;
 
 		if (fdt_check_header (fdt) == 0) {

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

* [U-Boot-Users] [PATCH 4/6] [new uImage] Add fit_parse_conf() and fit_parse_subimage() routines
  2008-02-20 17:19 [U-Boot-Users] [PATCH 0/6] [new uImage] patchset4 - assorted patches Bartlomiej Sieka
                   ` (2 preceding siblings ...)
  2008-02-20 17:20 ` [U-Boot-Users] [PATCH 3/6] [new uImage] Add gen_get_image() routine Bartlomiej Sieka
@ 2008-02-20 17:20 ` Bartlomiej Sieka
  2008-02-20 19:27   ` Kumar Gala
  2008-02-20 17:20 ` [U-Boot-Users] [PATCH 5/6] [new uImage] Rename and move print_image_hdr() routine Bartlomiej Sieka
  2008-02-20 17:20 ` [U-Boot-Users] [PATCH 6/6] [new uImage] Fix erroneous use of image_get_magic() in fdc/usb cmds Bartlomiej Sieka
  5 siblings, 1 reply; 16+ messages in thread
From: Bartlomiej Sieka @ 2008-02-20 17:20 UTC (permalink / raw)
  To: u-boot

From: Marian Balakowicz <m8@semihalf.com>

New routines for parsing new uImage format bootm arguments:
[<addr>]#<conf>		- configuration spec
[<addr>]:<subimg>	- subimage spec

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
---

 common/image.c  |   78 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 include/image.h |   10 +++++++
 2 files changed, 88 insertions(+), 0 deletions(-)

diff --git a/common/image.c b/common/image.c
index 8d5ca4e..c9a09ce 100644
--- a/common/image.c
+++ b/common/image.c
@@ -772,4 +772,82 @@ ulong get_boot_kbd (ulong alloc_current, bd_t **kbd)
 }
 #endif /* CONFIG_PPC || CONFIG_M68K */
 
+#if defined(CONFIG_FIT)
+/*****************************************************************************/
+/* New uImage format routines */
+/*****************************************************************************/
+static int fit_parse_spec (const char *spec, char sepc, ulong addr_curr,
+		ulong *addr, const char **name)
+{
+	const char *sep;
+
+	*addr = addr_curr;
+	*name = NULL;
+
+	sep = strchr (spec, sepc);
+	if (sep) {
+		if (sep - spec > 0)
+			*addr = simple_strtoul (spec, NULL, 16);
+
+		*name = sep + 1;
+		return 1;
+	}
+
+	return 0;
+}
+
+/**
+ * fit_parse_conf - parse FIT configuration spec
+ * @spec: input string, containing configuration spec
+ * @add_curr: current image address (to be used as a possible default)
+ * @addr: pointer to a ulong variable, will hold FIT image address of a given
+ * configuration
+ * @conf_name double pointer to a char, will hold pointer to a configuration
+ * unit name
+ *
+ * fit_parse_conf() expects configuration spec in the for of [<addr>]#<conf>,
+ * where <addr> is a FIT image address that contains configuration
+ * with a <conf> unit name.
+ *
+ * Address part is optional, and if omitted default add_curr will
+ * be used instead.
+ *
+ * returns:
+ *     1 if spec is a valid configuration string,
+ *     addr and conf_name are set accordingly
+ *     0 otherwise
+ */
+inline int fit_parse_conf (const char *spec, ulong addr_curr,
+		ulong *addr, const char **conf_name)
+{
+	return fit_parse_spec (spec, '#', addr_curr, addr, conf_name);
+}
+
+/**
+ * fit_parse_subimage - parse FIT subimage spec
+ * @spec: input string, containing subimage spec
+ * @add_curr: current image address (to be used as a possible default)
+ * @addr: pointer to a ulong variable, will hold FIT image address of a given
+ * subimage
+ * @image_name: double pointer to a char, will hold pointer to a subimage name
+ *
+ * fit_parse_subimage() expects subimage spec in the for of
+ * [<addr>]:<subimage>, where <addr> is a FIT image address that contains
+ * subimage with a <subimg> unit name.
+ *
+ * Address part is optional, and if omitted default add_curr will
+ * be used instead.
+ *
+ * returns:
+ *     1 if spec is a valid subimage string,
+ *     addr and image_name are set accordingly
+ *     0 otherwise
+ */
+inline int fit_parse_subimage (const char *spec, ulong addr_curr,
+		ulong *addr, const char **image_name)
+{
+	return fit_parse_spec (spec, ':', addr_curr, addr, image_name);
+}
+#endif /* CONFIG_FIT */
+
 #endif /* USE_HOSTCC */
diff --git a/include/image.h b/include/image.h
index b4de49d..4923612 100644
--- a/include/image.h
+++ b/include/image.h
@@ -367,6 +367,16 @@ ulong get_boot_cmdline (ulong alloc_current, ulong *cmd_start, ulong *cmd_end);
 ulong get_boot_kbd (ulong alloc_current, bd_t **kbd);
 #endif /* CONFIG_PPC || CONFIG_M68K */
 
+#if defined(CONFIG_FIT)
+/*
+ * New uImage format
+ */
+inline int fit_parse_conf (const char *spec, ulong addr_curr,
+		ulong *addr, const char **conf_name);
+inline int fit_parse_subimage (const char *spec, ulong addr_curr,
+		ulong *addr, const char **image_name);
+#endif /* CONFIG_FIT */
+
 #endif /* USE_HOSTCC */
 
 #endif	/* __IMAGE_H__ */

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

* [U-Boot-Users] [PATCH 5/6] [new uImage] Rename and move print_image_hdr() routine
  2008-02-20 17:19 [U-Boot-Users] [PATCH 0/6] [new uImage] patchset4 - assorted patches Bartlomiej Sieka
                   ` (3 preceding siblings ...)
  2008-02-20 17:20 ` [U-Boot-Users] [PATCH 4/6] [new uImage] Add fit_parse_conf() and fit_parse_subimage() routines Bartlomiej Sieka
@ 2008-02-20 17:20 ` Bartlomiej Sieka
  2008-02-20 17:20 ` [U-Boot-Users] [PATCH 6/6] [new uImage] Fix erroneous use of image_get_magic() in fdc/usb cmds Bartlomiej Sieka
  5 siblings, 0 replies; 16+ messages in thread
From: Bartlomiej Sieka @ 2008-02-20 17:20 UTC (permalink / raw)
  To: u-boot

From: Marian Balakowicz <m8@semihalf.com>

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
---

 board/mpl/common/common_util.c |    2 +
 common/cmd_bootm.c             |   60 ++--------------------------------------
 common/cmd_doc.c               |    2 +
 common/cmd_fdc.c               |    2 +
 common/cmd_ide.c               |    2 +
 common/cmd_nand.c              |    4 +--
 common/cmd_scsi.c              |    2 +
 common/cmd_usb.c               |    2 +
 common/cmd_ximg.c              |    2 +
 common/image.c                 |   56 +++++++++++++++++++++++++++++++++++++
 include/common.h               |    3 --
 include/image.h                |    1 +
 lib_ppc/bootm.c                |    2 +
 13 files changed, 69 insertions(+), 71 deletions(-)

diff --git a/board/mpl/common/common_util.c b/board/mpl/common/common_util.c
index 30c6ca9..b171ca5 100644
--- a/board/mpl/common/common_util.c
+++ b/board/mpl/common/common_util.c
@@ -185,7 +185,7 @@ mpl_prg_image(uchar *ld_addr)
 		puts("Bad Magic Number\n");
 		return 1;
 	}
-	print_image_hdr(hdr);
+	image_print_contents (hdr);
 	if (!image_check_os (hdr, IH_OS_U_BOOT)) {
 		puts("No U-Boot Image\n");
 		return 1;
diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c
index ebb6b69..846af3e 100644
--- a/common/cmd_bootm.c
+++ b/common/cmd_bootm.c
@@ -36,10 +36,6 @@
 #include <environment.h>
 #include <asm/byteorder.h>
 
-#if defined(CONFIG_TIMESTAMP) || defined(CONFIG_CMD_DATE)
-#include <rtc.h>
-#endif
-
 #ifdef CFG_HUSH_PARSER
 #include <hush.h>
 #endif
@@ -318,7 +314,7 @@ static image_header_t *get_kernel (cmd_tbl_t *cmdtp, int flag,
 	}
 
 	show_boot_progress (3);
-	print_image_hdr (hdr);
+	image_print_contents (hdr);
 
 	if (verify) {
 		puts ("   Verifying Checksum ... ");
@@ -445,7 +441,7 @@ static int image_info (ulong addr)
 		return 1;
 	}
 
-	print_image_hdr (hdr);
+	image_print_contents (hdr);
 
 	puts ("   Verifying Checksum ... ");
 	if (!image_check_dcrc (hdr)) {
@@ -493,7 +489,7 @@ int do_imls (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 				goto next_sector;
 
 			printf ("Image at %08lX:\n", (ulong)hdr);
-			print_image_hdr (hdr);
+			image_print_contents (hdr);
 
 			puts ("   Verifying Checksum ... ");
 			if (!image_check_dcrc (hdr)) {
@@ -521,56 +517,6 @@ U_BOOT_CMD(
 /*******************************************************************/
 /* helper routines */
 /*******************************************************************/
-void print_image_hdr (image_header_t *hdr)
-{
-#if defined(CONFIG_TIMESTAMP) || defined(CONFIG_CMD_DATE)
-	time_t timestamp = (time_t)image_get_time (hdr);
-	struct rtc_time tm;
-#endif
-
-	printf ("   Image Name:   %.*s\n", IH_NMLEN, image_get_name (hdr));
-
-#if defined(CONFIG_TIMESTAMP) || defined(CONFIG_CMD_DATE)
-	to_tm (timestamp, &tm);
-	printf ("   Created:      %4d-%02d-%02d  %2d:%02d:%02d UTC\n",
-		tm.tm_year, tm.tm_mon, tm.tm_mday,
-		tm.tm_hour, tm.tm_min, tm.tm_sec);
-#endif
-	puts ("   Image Type:   ");
-	print_type (hdr);
-
-	printf ("\n   Data Size:    %d Bytes = ", image_get_data_size (hdr));
-	print_size (image_get_data_size (hdr), "\n");
-	printf ("   Load Address: %08x\n"
-		"   Entry Point:  %08x\n",
-		 image_get_load (hdr), image_get_ep (hdr));
-
-	if (image_check_type (hdr, IH_TYPE_MULTI)) {
-		int i;
-		ulong data, len;
-		ulong count = image_multi_count (hdr);
-
-		puts ("   Contents:\n");
-		for (i = 0; i < count; i++) {
-			image_multi_getimg (hdr, i, &data, &len);
-			printf ("   Image %d: %8ld Bytes = ", i, len);
-			print_size (len, "\n");
-		}
-	}
-}
-
-static void print_type (image_header_t *hdr)
-{
-	const char *os, *arch, *type, *comp;
-
-	os = image_get_os_name (image_get_os (hdr));
-	arch = image_get_arch_name (image_get_arch (hdr));
-	type = image_get_type_name (image_get_type (hdr));
-	comp = image_get_comp_name (image_get_comp (hdr));
-
-	printf ("%s %s %s (%s)", arch, os, type, comp);
-}
-
 #ifdef CONFIG_SILENT_CONSOLE
 static void fixup_silent_linux ()
 {
diff --git a/common/cmd_doc.c b/common/cmd_doc.c
index b20a2e1..70bbd31 100644
--- a/common/cmd_doc.c
+++ b/common/cmd_doc.c
@@ -265,7 +265,7 @@ int do_docboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 
 	if (image_check_magic (hdr)) {
 
-		print_image_hdr (hdr);
+		image_print_contents (hdr);
 
 		cnt = image_get_image_size (hdr);
 		cnt -= SECTORSIZE;
diff --git a/common/cmd_fdc.c b/common/cmd_fdc.c
index 3b8f80b..c97abfb 100644
--- a/common/cmd_fdc.c
+++ b/common/cmd_fdc.c
@@ -840,7 +840,7 @@ int do_fdcboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 		printf ("Bad Magic Number\n");
 		return 1;
 	}
-	print_image_hdr (hdr);
+	image_print_contents (hdr);
 
 	imsize= image_get_image_size (hdr);
 	nrofblk=imsize/512;
diff --git a/common/cmd_ide.c b/common/cmd_ide.c
index bcd1325..a396643 100644
--- a/common/cmd_ide.c
+++ b/common/cmd_ide.c
@@ -462,7 +462,7 @@ int do_diskboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 	}
 	show_boot_progress (50);
 
-	print_image_hdr (hdr);
+	image_print_contents (hdr);
 
 	cnt = image_get_image_size (hdr);
 	cnt += info.blksz - 1;
diff --git a/common/cmd_nand.c b/common/cmd_nand.c
index bfa39d7..7fd6667 100644
--- a/common/cmd_nand.c
+++ b/common/cmd_nand.c
@@ -521,7 +521,7 @@ static int nand_load_image(cmd_tbl_t *cmdtp, nand_info_t *nand,
 	}
 	show_boot_progress (57);
 
-	print_image_hdr (hdr);
+	image_print_contents (hdr);
 
 	cnt = image_get_image_size (hdr);
 	if (jffs2) {
@@ -984,7 +984,7 @@ int do_nandboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 
 	if (image_check_magic (hdr)) {
 
-		print_image_hdr (hdr);
+		image_print_contents (hdr);
 
 		cnt = image_get_image_size (hdr);
 		cnt -= SECTORSIZE;
diff --git a/common/cmd_scsi.c b/common/cmd_scsi.c
index c2b27a5..5aae7ec 100644
--- a/common/cmd_scsi.c
+++ b/common/cmd_scsi.c
@@ -285,7 +285,7 @@ int do_scsiboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 		return 1;
 	}
 
-	print_image_hdr (hdr);
+	image_print_contents (hdr);
 	cnt = image_get_image_size (hdr);
 	cnt += info.blksz - 1;
 	cnt /= info.blksz;
diff --git a/common/cmd_usb.c b/common/cmd_usb.c
index db2e754..2d7a85a 100644
--- a/common/cmd_usb.c
+++ b/common/cmd_usb.c
@@ -398,7 +398,7 @@ int do_usbboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 		return 1;
 	}
 
-	print_image_hdr (hdr);
+	image_print_contents (hdr);
 
 	cnt = image_get_image_size (hdr);
 	cnt += info.blksz - 1;
diff --git a/common/cmd_ximg.c b/common/cmd_ximg.c
index ab579cd..7d83dc3 100644
--- a/common/cmd_ximg.c
+++ b/common/cmd_ximg.c
@@ -70,7 +70,7 @@ do_imgextract(cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
 		return 1;
 	}
 #ifdef DEBUG
-	print_image_hdr (hdr);
+	image_print_contents (hdr);
 #endif
 
 	if (!image_check_type (hdr, IH_TYPE_MULTI)) {
diff --git a/common/image.c b/common/image.c
index c9a09ce..42b0d78 100644
--- a/common/image.c
+++ b/common/image.c
@@ -41,6 +41,10 @@
 #include <logbuff.h>
 #endif
 
+#if defined(CONFIG_TIMESTAMP) || defined(CONFIG_CMD_DATE)
+#include <rtc.h>
+#endif
+
 #if defined(CONFIG_FIT)
 #include <fdt.h>
 #include <libfdt.h>
@@ -310,6 +314,56 @@ const char* image_get_comp_name (uint8_t comp)
 	return name;
 }
 
+static void image_print_type (image_header_t *hdr)
+{
+	const char *os, *arch, *type, *comp;
+
+	os = image_get_os_name (image_get_os (hdr));
+	arch = image_get_arch_name (image_get_arch (hdr));
+	type = image_get_type_name (image_get_type (hdr));
+	comp = image_get_comp_name (image_get_comp (hdr));
+
+	printf ("%s %s %s (%s)", arch, os, type, comp);
+}
+
+void image_print_contents (image_header_t *hdr)
+{
+#if defined(CONFIG_TIMESTAMP) || defined(CONFIG_CMD_DATE)
+	time_t timestamp = (time_t)image_get_time (hdr);
+	struct rtc_time tm;
+#endif
+
+	printf ("   Image Name:   %.*s\n", IH_NMLEN, image_get_name (hdr));
+
+#if defined(CONFIG_TIMESTAMP) || defined(CONFIG_CMD_DATE)
+	to_tm (timestamp, &tm);
+	printf ("   Created:      %4d-%02d-%02d  %2d:%02d:%02d UTC\n",
+		tm.tm_year, tm.tm_mon, tm.tm_mday,
+		tm.tm_hour, tm.tm_min, tm.tm_sec);
+#endif
+	puts ("   Image Type:   ");
+	image_print_type (hdr);
+
+	printf ("\n   Data Size:    %d Bytes = ", image_get_data_size (hdr));
+	print_size (image_get_data_size (hdr), "\n");
+	printf ("   Load Address: %08x\n"
+		"   Entry Point:  %08x\n",
+		 image_get_load (hdr), image_get_ep (hdr));
+
+	if (image_check_type (hdr, IH_TYPE_MULTI)) {
+		int i;
+		ulong data, len;
+		ulong count = image_multi_count (hdr);
+
+		puts ("   Contents:\n");
+		for (i = 0; i < count; i++) {
+			image_multi_getimg (hdr, i, &data, &len);
+			printf ("   Image %d: %8ld Bytes = ", i, len);
+			print_size (len, "\n");
+		}
+	}
+}
+
 /**
  * gen_image_get_format - get image format type
  * @img_addr: image start address
@@ -452,7 +506,7 @@ image_header_t* image_get_ramdisk (cmd_tbl_t *cmdtp, int flag,
 	}
 
 	show_boot_progress (10);
-	print_image_hdr (rd_hdr);
+	image_print_contents (rd_hdr);
 
 	if (verify) {
 		puts("   Verifying Checksum ... ");
diff --git a/include/common.h b/include/common.h
index c4ee3e2..92baac9 100644
--- a/include/common.h
+++ b/include/common.h
@@ -221,9 +221,6 @@ void flash_perror (int);
 /* common/cmd_autoscript.c */
 int	autoscript (ulong addr);
 
-/* common/cmd_bootm.c */
-void	print_image_hdr (image_header_t *hdr);
-
 extern ulong load_addr;		/* Default Load Address */
 
 /* common/cmd_nvedit.c */
diff --git a/include/image.h b/include/image.h
index 4923612..502d35a 100644
--- a/include/image.h
+++ b/include/image.h
@@ -342,6 +342,7 @@ const char* image_get_os_name (uint8_t os);
 const char* image_get_arch_name (uint8_t arch);
 const char* image_get_type_name (uint8_t type);
 const char* image_get_comp_name (uint8_t comp);
+void image_print_contents (image_header_t *hdr);
 
 #define IMAGE_FORMAT_INVALID	0x00
 #define IMAGE_FORMAT_LEGACY	0x01
diff --git a/lib_ppc/bootm.c b/lib_ppc/bootm.c
index 04a9665..d2ee3dc 100644
--- a/lib_ppc/bootm.c
+++ b/lib_ppc/bootm.c
@@ -254,7 +254,7 @@ static ulong get_fdt (ulong alloc_current,
 			printf ("## Flattened Device Tree Image@%08lx\n",
 					fdt_hdr);
 
-			print_image_hdr (fdt_hdr);
+			image_print_contents (fdt_hdr);
 
 			image_start = (ulong)fdt_hdr;
 			image_end = image_get_image_end (fdt_hdr);

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

* [U-Boot-Users] [PATCH 6/6] [new uImage] Fix erroneous use of image_get_magic() in fdc/usb cmds
  2008-02-20 17:19 [U-Boot-Users] [PATCH 0/6] [new uImage] patchset4 - assorted patches Bartlomiej Sieka
                   ` (4 preceding siblings ...)
  2008-02-20 17:20 ` [U-Boot-Users] [PATCH 5/6] [new uImage] Rename and move print_image_hdr() routine Bartlomiej Sieka
@ 2008-02-20 17:20 ` Bartlomiej Sieka
  5 siblings, 0 replies; 16+ messages in thread
From: Bartlomiej Sieka @ 2008-02-20 17:20 UTC (permalink / raw)
  To: u-boot

From: Marian Balakowicz <m8@semihalf.com>

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
---

 common/cmd_fdc.c |    2 +-
 common/cmd_usb.c |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/common/cmd_fdc.c b/common/cmd_fdc.c
index c97abfb..9ddc59b 100644
--- a/common/cmd_fdc.c
+++ b/common/cmd_fdc.c
@@ -836,7 +836,7 @@ int do_fdcboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 		return 1;
 	}
 	hdr = (image_header_t *)addr;
-	if (!image_get_magic (hdr)) {
+	if (!image_check_magic (hdr)) {
 		printf ("Bad Magic Number\n");
 		return 1;
 	}
diff --git a/common/cmd_usb.c b/common/cmd_usb.c
index 2d7a85a..3f1aa7d 100644
--- a/common/cmd_usb.c
+++ b/common/cmd_usb.c
@@ -388,7 +388,7 @@ int do_usbboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 
 	hdr = (image_header_t *)addr;
 
-	if (!image_get_magic (hdr)) {
+	if (!image_check_magic (hdr)) {
 		printf("\n** Bad Magic Number **\n");
 		return 1;
 	}

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

* [U-Boot-Users] [PATCH 2/6] [libfdt] Fix compilation errors is fdt_support.c
  2008-02-20 17:20 ` [U-Boot-Users] [PATCH 2/6] [libfdt] Fix compilation errors is fdt_support.c Bartlomiej Sieka
@ 2008-02-20 17:33   ` Jerry Van Baren
  2008-02-20 19:10   ` Kumar Gala
  1 sibling, 0 replies; 16+ messages in thread
From: Jerry Van Baren @ 2008-02-20 17:33 UTC (permalink / raw)
  To: u-boot

Bartlomiej Sieka wrote:
> From: Marian Balakowicz <m8@semihalf.com>
> 
> fdt_support.c does not compile with the DEBUG enabled,
> correct arguments passed to debug() calls.
> 
> Signed-off-by: Marian Balakowicz <m8@semihalf.com>

Hi Bartlomiej,

It would be much better to cherry-pick the version that is in the main 
repository so that git knows that the two patches are the same.  Having 
a separate patch will set ourselves up for a merge conflict.

<http://www.denx.de/cgi-bin/gitweb.cgi?p=u-boot.git;a=commit;h=d9ad115bbf7bb0842de7dbd2502b7e430f83cc3d>

author		Kumar Gala <galak@kernel.crashing.org>
		Wed, 13 Feb 2008 21:09:58 +0000 (15:09 -0600)
committer	Wolfgang Denk <wd@denx.de>
		Wed, 13 Feb 2008 22:58:18 +0000 (23:58 +0100)
commit		d9ad115bbf7bb0842de7dbd2502b7e430f83cc3d
tree		5261939c31d5e6114eb928a6667e25b68baddf00
parent		10bbb38a402a2faf18858c451bcdc63d45888e6e

Best regards,
gvb

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

* [U-Boot-Users] [PATCH 2/6] [libfdt] Fix compilation errors is fdt_support.c
  2008-02-20 17:20 ` [U-Boot-Users] [PATCH 2/6] [libfdt] Fix compilation errors is fdt_support.c Bartlomiej Sieka
  2008-02-20 17:33   ` Jerry Van Baren
@ 2008-02-20 19:10   ` Kumar Gala
  2008-02-20 20:36     ` Bartlomiej Sieka
  1 sibling, 1 reply; 16+ messages in thread
From: Kumar Gala @ 2008-02-20 19:10 UTC (permalink / raw)
  To: u-boot


On Feb 20, 2008, at 11:20 AM, Bartlomiej Sieka wrote:

> From: Marian Balakowicz <m8@semihalf.com>
>
> fdt_support.c does not compile with the DEBUG enabled,
> correct arguments passed to debug() calls.
>
> Signed-off-by: Marian Balakowicz <m8@semihalf.com>
> ---

This is fixed already.  We need up pull in the changes from 1.3.2-rc1+  
into u-boot-testing (and the branch).

- k

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

* [U-Boot-Users] [PATCH 3/6] [new uImage] Add gen_get_image() routine
  2008-02-20 17:20 ` [U-Boot-Users] [PATCH 3/6] [new uImage] Add gen_get_image() routine Bartlomiej Sieka
@ 2008-02-20 19:19   ` Kumar Gala
  2008-02-20 20:38     ` Bartlomiej Sieka
  0 siblings, 1 reply; 16+ messages in thread
From: Kumar Gala @ 2008-02-20 19:19 UTC (permalink / raw)
  To: u-boot

> +/**
> + * gen_get_image - get image from special storage (if necessary)
> + * @img_addr: image start address
> + *
> + * gen_get_image() checks if provided image start adddress is located
> + * in a dataflash storage. If so, image is moved to a system RAM  
> memory.
> + *
> + * returns:
> + *     image start address after possible relocation from special  
> storage
> + */
> +ulong gen_get_image (ulong img_addr)
> +{
> +	ulong ram_addr, h_size, d_size;
> +
> +	h_size = image_get_header_size ();
> +#if defined(CONFIG_FIT)
> +	if (sizeof(struct fdt_header) > h_size)
> +		h_size = sizeof(struct fdt_header);
> +#endif
> +
> +#ifdef CONFIG_HAS_DATAFLASH
> +	if (addr_dataflash (img_addr)){
> +		ram_addr = CFG_LOAD_ADDR;
> +		debug ("   Reading image header from dataflash address "
> +			"%08lx to RAM address %08lx\n", img_addr, ram_addr);
> +		read_dataflash (img_addr, h_size, (char *)ram_addr);
> +	} else
> +#endif
> +	ram_addr = img_addr;

can we not early out at this point?

> +
> +	switch (gen_image_get_format ((void *)ram_addr)) {
> +	case IMAGE_FORMAT_LEGACY:
> +		d_size = image_get_data_size ((image_header_t *)ram_addr);
> +		debug ("   Legacy format image found at 0x%08lx, size 0x%08lx\n",
> +				ram_addr, d_size);
> +		break;
> +#if defined(CONFIG_FIT)
> +	case IMAGE_FORMAT_FIT:
> +		d_size = fdt_totalsize((void *)ram_addr) - h_size;
> +		debug ("   FIT/FDT format image found at 0x%08lx, size 0x%08lx\n",
> +				ram_addr, d_size);
> +
> +		break;
> +#endif
> +	default:
> +		printf ("   No valid image found at 0x%08lx\n", img_addr);
> +		return ram_addr;
> +	}
> +
> +#ifdef CONFIG_HAS_DATAFLASH
> +	if (addr_dataflash (img_addr)) {
> +		debug ("   Reading image remaining data from dataflash address "
> +			"%08lx to RAM address %08lx\n", img_addr + h_size,
> +			ram_addr + h_size);
> +
> +		read_dataflash (img_addr + h_size, d_size,
> +				(char *)(ram_addr + h_size));
> +	}
> +#endif
> +
> +	return ram_addr;
> +}

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

* [U-Boot-Users] [PATCH 4/6] [new uImage] Add fit_parse_conf() and fit_parse_subimage() routines
  2008-02-20 17:20 ` [U-Boot-Users] [PATCH 4/6] [new uImage] Add fit_parse_conf() and fit_parse_subimage() routines Bartlomiej Sieka
@ 2008-02-20 19:27   ` Kumar Gala
  2008-02-20 20:39     ` Bartlomiej Sieka
  0 siblings, 1 reply; 16+ messages in thread
From: Kumar Gala @ 2008-02-20 19:27 UTC (permalink / raw)
  To: u-boot


On Feb 20, 2008, at 11:20 AM, Bartlomiej Sieka wrote:

> From: Marian Balakowicz <m8@semihalf.com>
>
> New routines for parsing new uImage format bootm arguments:
> [<addr>]#<conf>		- configuration spec
> [<addr>]:<subimg>	- subimage spec

I'm sure its be posted previously, but it would probably be nice to  
have more details in the commit message about what <conf> and <subimg>  
are all about.
>
>
> Signed-off-by: Marian Balakowicz <m8@semihalf.com>
> ---

- k

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

* [U-Boot-Users] [PATCH 2/6] [libfdt] Fix compilation errors is fdt_support.c
  2008-02-20 19:10   ` Kumar Gala
@ 2008-02-20 20:36     ` Bartlomiej Sieka
  0 siblings, 0 replies; 16+ messages in thread
From: Bartlomiej Sieka @ 2008-02-20 20:36 UTC (permalink / raw)
  To: u-boot

Kumar Gala wrote:
[...]
>> fdt_support.c does not compile with the DEBUG enabled,
>> correct arguments passed to debug() calls.
>>
>> Signed-off-by: Marian Balakowicz <m8@semihalf.com>
>> ---
> 
> This is fixed already.

Yes, Jerry has also pointed this out. I haven't caught your fix, and
just posted the above patch while processing my backlog...


 > We need up pull in the changes from 1.3.2-rc1+
> into u-boot-testing (and the branch).

Right. Wolfgang -- could you do the pull? I'll re-base the patches and
resubmit.


Regards,
Bartlomiej

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

* [U-Boot-Users] [PATCH 3/6] [new uImage] Add gen_get_image() routine
  2008-02-20 19:19   ` Kumar Gala
@ 2008-02-20 20:38     ` Bartlomiej Sieka
  2008-02-20 20:44       ` Kumar Gala
  0 siblings, 1 reply; 16+ messages in thread
From: Bartlomiej Sieka @ 2008-02-20 20:38 UTC (permalink / raw)
  To: u-boot

Kumar Gala wrote:
>> +/**
>> + * gen_get_image - get image from special storage (if necessary)
>> + * @img_addr: image start address
>> + *
>> + * gen_get_image() checks if provided image start adddress is located
>> + * in a dataflash storage. If so, image is moved to a system RAM memory.
>> + *
>> + * returns:
>> + *     image start address after possible relocation from special 
>> storage
>> + */
>> +ulong gen_get_image (ulong img_addr)
>> +{
>> +    ulong ram_addr, h_size, d_size;
>> +
>> +    h_size = image_get_header_size ();
>> +#if defined(CONFIG_FIT)
>> +    if (sizeof(struct fdt_header) > h_size)
>> +        h_size = sizeof(struct fdt_header);
>> +#endif
>> +
>> +#ifdef CONFIG_HAS_DATAFLASH
>> +    if (addr_dataflash (img_addr)){
>> +        ram_addr = CFG_LOAD_ADDR;
>> +        debug ("   Reading image header from dataflash address "
>> +            "%08lx to RAM address %08lx\n", img_addr, ram_addr);
>> +        read_dataflash (img_addr, h_size, (char *)ram_addr);
>> +    } else
>> +#endif
>> +    ram_addr = img_addr;
> 
> can we not early out at this point?

I'm not sure what you mean here -- could you clarify?

Thanks,
Bartlomiej

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

* [U-Boot-Users] [PATCH 4/6] [new uImage] Add fit_parse_conf() and fit_parse_subimage() routines
  2008-02-20 19:27   ` Kumar Gala
@ 2008-02-20 20:39     ` Bartlomiej Sieka
  0 siblings, 0 replies; 16+ messages in thread
From: Bartlomiej Sieka @ 2008-02-20 20:39 UTC (permalink / raw)
  To: u-boot

Kumar Gala wrote:
> 
> On Feb 20, 2008, at 11:20 AM, Bartlomiej Sieka wrote:
> 
>> From: Marian Balakowicz <m8@semihalf.com>
>>
>> New routines for parsing new uImage format bootm arguments:
>> [<addr>]#<conf>        - configuration spec
>> [<addr>]:<subimg>    - subimage spec
> 
> I'm sure its be posted previously, but it would probably be nice to have 
> more details in the commit message about what <conf> and <subimg> are 
> all about.

OK, will add this in the next round.

Regards,
Bartlomiej

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

* [U-Boot-Users] [PATCH 3/6] [new uImage] Add gen_get_image() routine
  2008-02-20 20:38     ` Bartlomiej Sieka
@ 2008-02-20 20:44       ` Kumar Gala
  2008-02-21 15:57         ` Bartlomiej Sieka
  0 siblings, 1 reply; 16+ messages in thread
From: Kumar Gala @ 2008-02-20 20:44 UTC (permalink / raw)
  To: u-boot


On Feb 20, 2008, at 2:38 PM, Bartlomiej Sieka wrote:

> Kumar Gala wrote:
>>> +/**
>>> + * gen_get_image - get image from special storage (if necessary)
>>> + * @img_addr: image start address
>>> + *
>>> + * gen_get_image() checks if provided image start adddress is  
>>> located
>>> + * in a dataflash storage. If so, image is moved to a system RAM  
>>> memory.
>>> + *
>>> + * returns:
>>> + *     image start address after possible relocation from special  
>>> storage
>>> + */
>>> +ulong gen_get_image (ulong img_addr)
>>> +{
>>> +    ulong ram_addr, h_size, d_size;
>>> +
>>> +    h_size = image_get_header_size ();
>>> +#if defined(CONFIG_FIT)
>>> +    if (sizeof(struct fdt_header) > h_size)
>>> +        h_size = sizeof(struct fdt_header);
>>> +#endif
>>> +
>>> +#ifdef CONFIG_HAS_DATAFLASH
>>> +    if (addr_dataflash (img_addr)){
>>> +        ram_addr = CFG_LOAD_ADDR;
>>> +        debug ("   Reading image header from dataflash address "
>>> +            "%08lx to RAM address %08lx\n", img_addr, ram_addr);
>>> +        read_dataflash (img_addr, h_size, (char *)ram_addr);
>>> +    } else
>>> +#endif
>>> +    ram_addr = img_addr;
>> can we not early out at this point?
>
> I'm not sure what you mean here -- could you clarify?

Just that it seems like the code should be something like:

#ifdef CONFIG_HAS_DATAFLASH
	if (addr_dataflash(img_addr)) {
		...
	} else
#endif
		return img_addr;

unless I'm missing something the code should return 'img_addr' if we  
don't have to deal with dataflash (either by it not being config'd in  
or 'img_addr' isn't in a dataflash.

- k

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

* [U-Boot-Users] [PATCH 3/6] [new uImage] Add gen_get_image() routine
  2008-02-20 20:44       ` Kumar Gala
@ 2008-02-21 15:57         ` Bartlomiej Sieka
  0 siblings, 0 replies; 16+ messages in thread
From: Bartlomiej Sieka @ 2008-02-21 15:57 UTC (permalink / raw)
  To: u-boot

Kumar Gala wrote:
>>>> +/**
>>>> + * gen_get_image - get image from special storage (if necessary)
>>>> + * @img_addr: image start address
>>>> + *
>>>> + * gen_get_image() checks if provided image start adddress is located
>>>> + * in a dataflash storage. If so, image is moved to a system RAM 
>>>> memory.
>>>> + *
>>>> + * returns:
>>>> + *     image start address after possible relocation from special 
>>>> storage
>>>> + */
>>>> +ulong gen_get_image (ulong img_addr)
>>>> +{
>>>> +    ulong ram_addr, h_size, d_size;
>>>> +
>>>> +    h_size = image_get_header_size ();
>>>> +#if defined(CONFIG_FIT)
>>>> +    if (sizeof(struct fdt_header) > h_size)
>>>> +        h_size = sizeof(struct fdt_header);
>>>> +#endif
>>>> +
>>>> +#ifdef CONFIG_HAS_DATAFLASH
>>>> +    if (addr_dataflash (img_addr)){
>>>> +        ram_addr = CFG_LOAD_ADDR;
>>>> +        debug ("   Reading image header from dataflash address "
>>>> +            "%08lx to RAM address %08lx\n", img_addr, ram_addr);
>>>> +        read_dataflash (img_addr, h_size, (char *)ram_addr);
>>>> +    } else
>>>> +#endif
>>>> +    ram_addr = img_addr;
>>> can we not early out at this point?
>>
>> I'm not sure what you mean here -- could you clarify?
> 
> Just that it seems like the code should be something like:
> 
> #ifdef CONFIG_HAS_DATAFLASH
>     if (addr_dataflash(img_addr)) {
>         ...
>     } else
> #endif
>         return img_addr;
> 
> unless I'm missing something the code should return 'img_addr' if we 
> don't have to deal with dataflash (either by it not being config'd in or 
> 'img_addr' isn't in a dataflash.

You're right, I'll make this change for the re-spin.

Cheers,
Bartlomiej

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

end of thread, other threads:[~2008-02-21 15:57 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-02-20 17:19 [U-Boot-Users] [PATCH 0/6] [new uImage] patchset4 - assorted patches Bartlomiej Sieka
2008-02-20 17:19 ` [U-Boot-Users] [PATCH 1/6] [new uImage] Pull in libfdt if CONFIG_FIT is enabled Bartlomiej Sieka
2008-02-20 17:20 ` [U-Boot-Users] [PATCH 2/6] [libfdt] Fix compilation errors is fdt_support.c Bartlomiej Sieka
2008-02-20 17:33   ` Jerry Van Baren
2008-02-20 19:10   ` Kumar Gala
2008-02-20 20:36     ` Bartlomiej Sieka
2008-02-20 17:20 ` [U-Boot-Users] [PATCH 3/6] [new uImage] Add gen_get_image() routine Bartlomiej Sieka
2008-02-20 19:19   ` Kumar Gala
2008-02-20 20:38     ` Bartlomiej Sieka
2008-02-20 20:44       ` Kumar Gala
2008-02-21 15:57         ` Bartlomiej Sieka
2008-02-20 17:20 ` [U-Boot-Users] [PATCH 4/6] [new uImage] Add fit_parse_conf() and fit_parse_subimage() routines Bartlomiej Sieka
2008-02-20 19:27   ` Kumar Gala
2008-02-20 20:39     ` Bartlomiej Sieka
2008-02-20 17:20 ` [U-Boot-Users] [PATCH 5/6] [new uImage] Rename and move print_image_hdr() routine Bartlomiej Sieka
2008-02-20 17:20 ` [U-Boot-Users] [PATCH 6/6] [new uImage] Fix erroneous use of image_get_magic() in fdc/usb cmds Bartlomiej Sieka

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.