[patch 2/2] Add support for building the new U-boot uImage format (FIT-format)

Previous thread: [patch 0/2] Several U-boot uImage building patches by Remy Bohmer on Monday, August 25, 2008 - 12:14 pm. (1 message)

Next thread: x86: move kstat_irqs from kstat to irq_desc - fix by Yinghai Lu on Monday, August 25, 2008 - 12:41 pm. (3 messages)
From: Remy Bohmer
Date: Monday, August 25, 2008 - 12:14 pm

Allow building of the newer FIT-image format for U-boot, while keeping
it possible to build the legacy format, for people who do not want to (or can) 
upgrade to U-boot 1.3.3 or newer.

If an older mkimage is detected, or if there is no dtc (Device Tree Compiler)
then automagically the legacy format is created.
There is also a possibility to force the legacy format by means of a Kconfig
option.

Note: This patch only adapts this for ARM, AVR32, Blackfin and sh architectures.
      It does not adapt the PowerPC tree, because PowerPC does not use the
      script at scripts/mkuboot.sh

Signed-off-by: Remy Bohmer <linux@bohmer.net>
---
 arch/arm/Kconfig                |   10 ++
 arch/arm/boot/Makefile          |   10 ++
 arch/avr32/Kconfig              |   14 ++++
 arch/avr32/boot/images/Makefile |    8 ++
 arch/blackfin/Kconfig           |   10 ++
 arch/blackfin/boot/Makefile     |    8 ++
 arch/sh/Kconfig                 |   10 ++
 arch/sh/boot/Makefile           |    8 ++
 scripts/mkuboot.sh              |  140 ++++++++++++++++++++++++++++++++++++++--
 9 files changed, 209 insertions(+), 9 deletions(-)

Index: linux-2.6.27-rc4/arch/arm/Kconfig
===================================================================
--- linux-2.6.27-rc4.orig/arch/arm/Kconfig	2008-08-25 20:58:36.000000000 +0200
+++ linux-2.6.27-rc4/arch/arm/Kconfig	2008-08-25 20:58:40.000000000 +0200
@@ -977,6 +977,16 @@ config UNCOMPRESSED_UIMAGE
 
 	  If unsure, say N.
 
+config LEGACY_UIMAGE
+	bool "Use legacy format for building uImage"
+	default n
+	help
+	  Enable this option if you want uImage to be build in the legacy
+	  format. If this option is 'N' the uImage will be build in the newer
+	  FIT-image format. (Needs at least 'mkimage v1.3.3', and 'dtc v1.2.0')
+
+	  If unsure, say N.
+
 config XIP_PHYS_ADDR
 	hex "XIP Kernel Physical Location"
 	depends on XIP_KERNEL
Index: linux-2.6.27-rc4/arch/arm/boot/Makefile
===================================================================
--- ...
From: Wolfgang Denk
Date: Monday, August 25, 2008 - 2:18 pm

Dear Remy,


Why should there ever be no dtc? It is part of the Linux kernel source

As before, I think this should not be implemented as a  configuration
option; it should be selectable as separate make targets without need

Hm... Power support would be especially interesting, of course :-)

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de
Without facts, the decision cannot be made logically. You  must  rely
on your human intuition.
	-- Spock, "Assignment: Earth", stardate unknown
--

From: Remy Bohmer
Date: Tuesday, August 26, 2008 - 3:31 am

uuh, because it was not there in 2.6.24...?
And that was the kernel I made the patch for originally...

Will look into (all) your comments.
Thanks,

--

From: Remy Bohmer
Date: Tuesday, August 26, 2008 - 11:59 am

Okay, I see it is there in 2.6.27-rc, but the version there is pre
historical, and definitely in the wrong location, because it is not
PowerPC only anymore. It does not support the incbin directive, so it
cannot be used to build a uImage.

I agree if you are talking about the other patch which was about
choosing between compressed image yes/no; related to the current make
targets they should indeed be similar to Image/zImage. I made it
configurable because that saved me some time adapting the
build-tooling for the target-filesystem. (and thought it could be
handy for others too)

But, for this patch I disagree, I do not think it should be separate
make targets, because it is choosing between a legacy and a new image
file format. Legacy means that it is old and should go away some time.
When it comes to functionality it will behave the same like the old
uImage (on no-powerpc architectures at least), so creating a new
filename as make-target would imply all tools that depend on the
target name uImage should be adapted to a new name, when there is no
new functionality, resulting in a very long time before the new format
because 'the standard'. Not to speak about documentation issues.

I knew that, that is why I added this note... But I do not have
PowerPC systems (except my PS3, or Qemu) so it is not easy to test any
modifications in that area, and there is a risk of breaking things.
Besides, if I look at how I believe things are done for PowerPC, it
can easily be added to the mkuboot.sh script, once it knows about the
FIT format, and the proper tools are available.
I may look at that later, when I have more free (hobby) time.

Kind Regards,

Remy
--

Previous thread: [patch 0/2] Several U-boot uImage building patches by Remy Bohmer on Monday, August 25, 2008 - 12:14 pm. (1 message)

Next thread: x86: move kstat_irqs from kstat to irq_desc - fix by Yinghai Lu on Monday, August 25, 2008 - 12:41 pm. (3 messages)