diff mbox

[U-Boot,v2,2/4] mkimage will now report information about loadable

Message ID 1431724394-30545-3-git-send-email-Karl.Apsite@dornerworks.com
State Superseded
Delegated to: Tom Rini
Headers show

Commit Message

Karl Apsite May 15, 2015, 9:13 p.m. UTC
From: Karl Apsite <karl.apsite@dornerworks.com>

Added FIT_LOADABLE_PROP, so the user can identify an optional entry
named "loadables" in their .its configuration. "loadables" is a comma
separated list in the .its

example configuration:
config@1 {
    description = "Xen 4.6.0-one loadable";
    kernel = "xen_kernel@1";
    fdt = "fdt@1";
    loadables = "linux_kernel@1";
};

config@2 {
    description = "Xen 4.6.0-two loadables";
    kernel = "xen_kernel@1";
    fdt = "fdt@1";
    loadables = "linux_kernel@2", "linux_kernel@1";
};

example output:
...
 Configuration 0 (config@1)
  Description:  Xen 4.6.0-one loadable
  Kernel:       xen_kernel@1
  FDT:          fdt@1
  Loadables:    linux_kernel@1
 Configuration 1 (config@2)
  Description:  Xen 4.6.0-two loadables
  Kernel:       xen_kernel@1
  FDT:          fdt@1
  Loadables:    linux_kernel@2
                linux_kernel@1

Signed-off-by: Karl Apsite <Karl.Apsite@dornerworks.com>
---

 common/image-fit.c                    | 17 +++++++++++++++++
 doc/uImage.FIT/source_file_format.txt |  4 ++++
 include/image.h                       |  1 +
 3 files changed, 22 insertions(+)

Comments

Simon Glass May 18, 2015, 9:39 p.m. UTC | #1
Hi Karl,

On 15 May 2015 at 15:13, Karl Apsite <Karl.Apsite@dornerworks.com> wrote:
> From: Karl Apsite <karl.apsite@dornerworks.com>
>
> Added FIT_LOADABLE_PROP, so the user can identify an optional entry
> named "loadables" in their .its configuration. "loadables" is a comma
> separated list in the .its
>
> example configuration:
> config@1 {
>     description = "Xen 4.6.0-one loadable";
>     kernel = "xen_kernel@1";
>     fdt = "fdt@1";
>     loadables = "linux_kernel@1";
> };
>
> config@2 {
>     description = "Xen 4.6.0-two loadables";
>     kernel = "xen_kernel@1";
>     fdt = "fdt@1";
>     loadables = "linux_kernel@2", "linux_kernel@1";
> };
>
> example output:
> ...
>  Configuration 0 (config@1)
>   Description:  Xen 4.6.0-one loadable
>   Kernel:       xen_kernel@1
>   FDT:          fdt@1
>   Loadables:    linux_kernel@1
>  Configuration 1 (config@2)
>   Description:  Xen 4.6.0-two loadables
>   Kernel:       xen_kernel@1
>   FDT:          fdt@1
>   Loadables:    linux_kernel@2
>                 linux_kernel@1
>
> Signed-off-by: Karl Apsite <Karl.Apsite@dornerworks.com>

Reviewed-by: Simon Glass <sjg@chromium.org>

But I think you should remove this stuff from your commit message. It
should go in the docs.

Regards,
Simon
diff mbox

Patch

diff --git a/common/image-fit.c b/common/image-fit.c
index 4eb4d42..fc9ea1f 100644
--- a/common/image-fit.c
+++ b/common/image-fit.c
@@ -1436,6 +1436,7 @@  void fit_conf_print(const void *fit, int noffset, const char *p)
 	char *desc;
 	char *uname;
 	int ret;
+	int loadables_index;
 
 	/* Mandatory properties */
 	ret = fit_get_desc(fit, noffset, &desc);
@@ -1460,6 +1461,22 @@  void fit_conf_print(const void *fit, int noffset, const char *p)
 	uname = (char *)fdt_getprop(fit, noffset, FIT_FDT_PROP, NULL);
 	if (uname)
 		printf("%s  FDT:          %s\n", p, uname);
+
+	/* Print out all of the specified loadables */
+	for (loadables_index = 0;
+	     !fdt_get_string_index(fit, noffset,
+			FIT_LOADABLE_PROP,
+			loadables_index,
+			(const char **)&uname) > 0;
+	     loadables_index++)
+	{
+		if (loadables_index == 0) {
+			printf("%s  Loadables:    ", p);
+		} else {
+			printf("%s                ", p);
+		}
+		printf("%s\n", uname);
+	}
 }
 
 static int fit_image_select(const void *fit, int rd_noffset, int verify)
diff --git a/doc/uImage.FIT/source_file_format.txt b/doc/uImage.FIT/source_file_format.txt
index 427ea49..004acd1 100644
--- a/doc/uImage.FIT/source_file_format.txt
+++ b/doc/uImage.FIT/source_file_format.txt
@@ -235,6 +235,7 @@  o config@1
   |- kernel = "kernel sub-node unit name"
   |- ramdisk = "ramdisk sub-node unit name"
   |- fdt = "fdt sub-node unit-name"
+  |- loadables = "loadables sub-node unit-name"
 
 
   Mandatory properties:
@@ -249,6 +250,9 @@  o config@1
     "fdt type").
   - setup : Unit name of the corresponding setup binary (used for booting
     an x86 kernel). This contains the setup.bin file built by the kernel.
+  - loadables : Unit name containing a list of additional binaries to be loaded at
+    their given locations.  "loadables" is a comma-separated list of strings.
+    u-boot will load each binary at its given start-address.
 
 The FDT blob is required to properly boot FDT based kernel, so the minimal
 configuration for 2.6 FDT kernel is (kernel, fdt) pair.
diff --git a/include/image.h b/include/image.h
index 60b924a..97b96b3 100644
--- a/include/image.h
+++ b/include/image.h
@@ -742,6 +742,7 @@  int bootz_setup(ulong image, ulong *start, ulong *end);
 #define FIT_KERNEL_PROP		"kernel"
 #define FIT_RAMDISK_PROP	"ramdisk"
 #define FIT_FDT_PROP		"fdt"
+#define FIT_LOADABLE_PROP	"loadables"
 #define FIT_DEFAULT_PROP	"default"
 #define FIT_SETUP_PROP		"setup"