From: swarren@nvidia.com (Stephen Warren)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 1/2] ARM: Add Kconfig option to use mkimage -T kernel_noload
Date: Tue, 28 Feb 2012 17:03:23 -0700 [thread overview]
Message-ID: <1330473804-23348-1-git-send-email-swarren@nvidia.com> (raw)
uImage files typically encode a single absolute load and entry address.
This is inconvenient when attempting to share that uImage across multiple
SoCs with different physical RAM addresses. Recent versions of mkimage
implement a "kernel_noload" image type which encodes no absolute load
address, and a relative entry address. This works well for uImage-wrapped
ARM zImages, since they are relocatable.
This is enabled by commit b9b50e89d317c58becd0e2d7fac2e21e3a81dd0a
"image: Implement IH_TYPE_KERNEL_NOLOAD" in U-Boot.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
---
I assume I should put this into the ARM patch tracker if it's OK?
arch/arm/Kconfig | 15 +++++++++++++++
arch/arm/boot/Makefile | 15 ++++++++++++++-
2 files changed, 29 insertions(+), 1 deletions(-)
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 0884b67..27e7672 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -2066,6 +2066,21 @@ config AUTO_ZRELADDR
0xf8000000. This assumes the zImage being placed in the first 128MB
from start of memory.
+config UIMAGE_NOLOAD
+ bool "Using mkimage's kernel_noload image type"
+ depends on AUTO_ZRELADDR
+ help
+ Say Y here to build a uImage using type "kernel_noload" instead of
+ "kernel".
+
+ uImage files typically encode a single absolute load and entry
+ address. This is inconvenient when attempting to share that uImage
+ across multiple SoCs with different physical RAM addresses. Recent
+ versions of mkimage implement a "kernel_noload" image type which
+ encodes no absolute load address, and a relative entry address.
+ This works well for uImage-wrapped ARM zImages, since they are
+ relocatable.
+
endmenu
menu "CPU Power Management"
diff --git a/arch/arm/boot/Makefile b/arch/arm/boot/Makefile
index fc871e7..45c3cbe 100644
--- a/arch/arm/boot/Makefile
+++ b/arch/arm/boot/Makefile
@@ -70,10 +70,21 @@ $(obj)/dtbs: $(addprefix $(obj)/, $(dtb-y))
clean-files := *.dtb
quiet_cmd_uimage = UIMAGE $@
- cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) -A arm -O linux -T kernel \
+ cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) -A arm -O linux \
+ -T $(UIMAGE_TYPE) \
-C none -a $(LOADADDR) -e $(STARTADDR) \
-n 'Linux-$(KERNELRELEASE)' -d $< $@
+ifeq ($(CONFIG_UIMAGE_NOLOAD),y)
+
+$(obj)/uImage: UIMAGE_TYPE := kernel_noload
+$(obj)/uImage: override LOADADDR := 0
+$(obj)/uImage: STARTADDR := 0 # Relative to load address
+
+else
+
+$(obj)/uImage: UIMAGE_TYPE := kernel
+
ifeq ($(CONFIG_ZBOOT_ROM),y)
$(obj)/uImage: LOADADDR=$(CONFIG_ZBOOT_ROM_TEXT)
else
@@ -82,6 +93,8 @@ endif
$(obj)/uImage: STARTADDR=$(LOADADDR)
+endif
+
check_for_multiple_loadaddr = \
if [ $(words $(LOADADDR)) -gt 1 ]; then \
echo 'multiple load addresses: $(LOADADDR)'; \
--
1.7.0.4
next reply other threads:[~2012-02-29 0:03 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-02-29 0:03 Stephen Warren [this message]
2012-02-29 0:03 ` [PATCH 2/2] ARM: tegra: Add zreladdr etc to Makefile.boot for Tegra30 Stephen Warren
2012-02-29 12:29 ` [PATCH 1/2] ARM: Add Kconfig option to use mkimage -T kernel_noload Jean-Christophe PLAGNIOL-VILLARD
2012-02-29 16:58 ` Stephen Warren
2012-02-29 18:14 ` Jean-Christophe PLAGNIOL-VILLARD
2012-02-29 18:33 ` Tim Bird
2012-02-29 18:50 ` Jean-Christophe PLAGNIOL-VILLARD
2012-03-12 17:40 ` Marek Vasut
2012-03-12 17:44 ` Jean-Christophe PLAGNIOL-VILLARD
2012-02-29 19:12 ` Uwe Kleine-König
2012-02-29 19:17 ` Stephen Warren
2012-02-29 19:44 ` Uwe Kleine-König
2012-02-29 19:59 ` Stephen Warren
2012-02-29 20:12 ` Andre Renaud
2012-02-29 20:16 ` Stephen Warren
2012-02-29 20:19 ` Russell King - ARM Linux
2012-02-29 20:25 ` Andre Renaud
2012-02-29 20:29 ` Russell King - ARM Linux
2012-02-29 20:39 ` Uwe Kleine-König
2012-02-29 20:45 ` Russell King - ARM Linux
2012-02-29 20:59 ` Uwe Kleine-König
2012-03-01 4:55 ` Jean-Christophe PLAGNIOL-VILLARD
2012-03-12 17:42 ` Marek Vasut
2012-02-29 21:27 ` Stephen Warren
2012-02-29 22:28 ` Andre Renaud
2012-02-29 20:30 ` Uwe Kleine-König
2012-02-29 23:53 ` Ryan Mallon
2012-03-12 17:44 ` Marek Vasut
2012-03-01 15:34 ` Mark Brown
2012-03-01 17:01 ` Stephen Warren
2012-03-05 4:21 ` Olof Johansson
2012-03-05 20:29 ` Nicolas Pitre
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1330473804-23348-1-git-send-email-swarren@nvidia.com \
--to=swarren@nvidia.com \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).