mkimage will now report information about loadable
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 Documentation can be found in doc/uImage.FIT/source_file_format.txt and doc/uImage.Fit/multi-with-loadables.its Signed-off-by: Karl Apsite <Karl.Apsite@dornerworks.com> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
15b8973cdf
commit
ecf8cd6535
|
@ -1436,6 +1436,7 @@ void fit_conf_print(const void *fit, int noffset, const char *p)
|
||||||
char *desc;
|
char *desc;
|
||||||
char *uname;
|
char *uname;
|
||||||
int ret;
|
int ret;
|
||||||
|
int loadables_index;
|
||||||
|
|
||||||
/* Mandatory properties */
|
/* Mandatory properties */
|
||||||
ret = fit_get_desc(fit, noffset, &desc);
|
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);
|
uname = (char *)fdt_getprop(fit, noffset, FIT_FDT_PROP, NULL);
|
||||||
if (uname)
|
if (uname)
|
||||||
printf("%s FDT: %s\n", p, 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)
|
static int fit_image_select(const void *fit, int rd_noffset, int verify)
|
||||||
|
|
|
@ -0,0 +1,89 @@
|
||||||
|
/*
|
||||||
|
* U-Boot uImage source file with multiple kernels, ramdisks and FDT blobs
|
||||||
|
* This example makes use of the 'loadables' field
|
||||||
|
*/
|
||||||
|
|
||||||
|
/dts-v1/;
|
||||||
|
|
||||||
|
/ {
|
||||||
|
description = "Configuration to load a Xen Kernel";
|
||||||
|
#address-cells = <1>;
|
||||||
|
|
||||||
|
images {
|
||||||
|
xen_kernel@1 {
|
||||||
|
description = "xen binary";
|
||||||
|
data = /incbin/("./xen");
|
||||||
|
type = "kernel";
|
||||||
|
arch = "arm";
|
||||||
|
os = "linux";
|
||||||
|
compression = "none";
|
||||||
|
load = <0xa0000000>;
|
||||||
|
entry = <0xa0000000>;
|
||||||
|
hash@1 {
|
||||||
|
algo = "md5";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
fdt@1 {
|
||||||
|
description = "xexpress-ca15 tree blob";
|
||||||
|
data = /incbin/("./vexpress-v2p-ca15-tc1.dtb");
|
||||||
|
type = "flat_dt";
|
||||||
|
arch = "arm";
|
||||||
|
compression = "none";
|
||||||
|
load = <0xb0000000>;
|
||||||
|
hash@1 {
|
||||||
|
algo = "md5";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
fdt@2 {
|
||||||
|
description = "xexpress-ca15 tree blob";
|
||||||
|
data = /incbin/("./vexpress-v2p-ca15-tc1.dtb");
|
||||||
|
type = "flat_dt";
|
||||||
|
arch = "arm";
|
||||||
|
compression = "none";
|
||||||
|
load = <0xb0400000>;
|
||||||
|
hash@1 {
|
||||||
|
algo = "md5";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
linux_kernel@1 {
|
||||||
|
description = "Linux Image";
|
||||||
|
data = /incbin/("./Image");
|
||||||
|
type = "kernel";
|
||||||
|
arch = "arm";
|
||||||
|
os = "linux";
|
||||||
|
compression = "none";
|
||||||
|
load = <0xa0000000>;
|
||||||
|
entry = <0xa0000000>;
|
||||||
|
hash@1 {
|
||||||
|
algo = "md5";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
configurations {
|
||||||
|
default = "config@2";
|
||||||
|
|
||||||
|
config@1 {
|
||||||
|
description = "Just plain Linux";
|
||||||
|
kernel = "linux_kernel@1";
|
||||||
|
fdt = "fdt@1";
|
||||||
|
};
|
||||||
|
|
||||||
|
config@2 {
|
||||||
|
description = "Xen one loadable";
|
||||||
|
kernel = "xen_kernel@1";
|
||||||
|
fdt = "fdt@1";
|
||||||
|
loadables = "linux_kernel@1";
|
||||||
|
};
|
||||||
|
|
||||||
|
config@3 {
|
||||||
|
description = "Xen two loadables";
|
||||||
|
kernel = "xen_kernel@1";
|
||||||
|
fdt = "fdt@1";
|
||||||
|
loadables = "linux_kernel@1", "fdt@2";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
|
@ -235,6 +235,7 @@ o config@1
|
||||||
|- kernel = "kernel sub-node unit name"
|
|- kernel = "kernel sub-node unit name"
|
||||||
|- ramdisk = "ramdisk sub-node unit name"
|
|- ramdisk = "ramdisk sub-node unit name"
|
||||||
|- fdt = "fdt sub-node unit-name"
|
|- fdt = "fdt sub-node unit-name"
|
||||||
|
|- loadables = "loadables sub-node unit-name"
|
||||||
|
|
||||||
|
|
||||||
Mandatory properties:
|
Mandatory properties:
|
||||||
|
@ -249,6 +250,9 @@ o config@1
|
||||||
"fdt type").
|
"fdt type").
|
||||||
- setup : Unit name of the corresponding setup binary (used for booting
|
- setup : Unit name of the corresponding setup binary (used for booting
|
||||||
an x86 kernel). This contains the setup.bin file built by the kernel.
|
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
|
The FDT blob is required to properly boot FDT based kernel, so the minimal
|
||||||
configuration for 2.6 FDT kernel is (kernel, fdt) pair.
|
configuration for 2.6 FDT kernel is (kernel, fdt) pair.
|
||||||
|
|
|
@ -742,6 +742,7 @@ int bootz_setup(ulong image, ulong *start, ulong *end);
|
||||||
#define FIT_KERNEL_PROP "kernel"
|
#define FIT_KERNEL_PROP "kernel"
|
||||||
#define FIT_RAMDISK_PROP "ramdisk"
|
#define FIT_RAMDISK_PROP "ramdisk"
|
||||||
#define FIT_FDT_PROP "fdt"
|
#define FIT_FDT_PROP "fdt"
|
||||||
|
#define FIT_LOADABLE_PROP "loadables"
|
||||||
#define FIT_DEFAULT_PROP "default"
|
#define FIT_DEFAULT_PROP "default"
|
||||||
#define FIT_SETUP_PROP "setup"
|
#define FIT_SETUP_PROP "setup"
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue