[PATCH] Support kernel_noload uImage type

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Do not trigger an error when loading a uImage with the
IH_TYPE_KERNEL_NOLOAD type. These images do not need to be copied to
their load address before being executed.

All archs (excepted PPC) do not use the uImage load and entry point
parameters, so their current behavior needs not be changed further than
just accepting the image type.

Tested and validated on ARM.

Signed-off-by: Alexandre Courbot <acourbot at nvidia.com>
---
 include/image.h      |    2 ++
 kexec/kexec-uImage.c |    6 +++++-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/include/image.h b/include/image.h
index e52acbe..e742aae 100644
--- a/include/image.h
+++ b/include/image.h
@@ -129,6 +129,8 @@
 #define IH_TYPE_FILESYSTEM	7	/* Filesystem Image (any type)	*/
 #define IH_TYPE_FLATDT		8	/* Binary Flat Device Tree Blob	*/
 #define IH_TYPE_KWBIMAGE	9	/* Kirkwood Boot Image		*/
+#define IH_TYPE_KERNEL_NOLOAD	14	/* OS Kernel Image, can run     */
+					/* from any load address	*/
 
 /*
  * Compression Types
diff --git a/kexec/kexec-uImage.c b/kexec/kexec-uImage.c
index 83e7910..3bc85c5 100644
--- a/kexec/kexec-uImage.c
+++ b/kexec/kexec-uImage.c
@@ -39,7 +39,11 @@ int uImage_probe(const unsigned char *buf, off_t len, unsigned int arch)
 		return -1;
 	}
 #endif
-	if (header.ih_type != IH_TYPE_KERNEL) {
+	switch (header.ih_type) {
+	case IH_TYPE_KERNEL:
+	case IH_TYPE_KERNEL_NOLOAD:
+		break;
+	default:
 		printf("uImage type %d unsupported\n", header.ih_type);
 		return -1;
 	}
-- 
1.7.10.4




[Index of Archives]     [LM Sensors]     [Linux Sound]     [ALSA Users]     [ALSA Devel]     [Linux Audio Users]     [Linux Media]     [Kernel]     [Gimp]     [Yosemite News]     [Linux Media]

  Powered by Linux