diff mbox

[v1] Add a load address option for building uImage on 3.7+ multi-platform kernels.

Message ID 1363209204-3604-1-git-send-email-julien.boibessot@free.fr
State Accepted
Headers show

Commit Message

Julien Boibessot March 13, 2013, 9:13 p.m. UTC
From: Julien Boibessot <julien.boibessot@armadeus.com>

Signed-off-by: Julien Boibessot <julien.boibessot@armadeus.com>
---
Changes since RFC:
 * Took Daniel Price and Arnout Vandecappelle remarks into account to be more
   explicit in the description of the option + add ARM dependancy.
 * Changed the way option is used in linux.mk to prevent empty LOADADDR=

 linux/Config.in |   13 +++++++++++++
 linux/linux.mk  |    5 +++++
 2 files changed, 18 insertions(+), 0 deletions(-)

Comments

Arnout Vandecappelle March 14, 2013, 6:36 a.m. UTC | #1
On 03/13/13 22:13, julien.boibessot@free.fr wrote:
> From: Julien Boibessot <julien.boibessot@armadeus.com>
>
> Signed-off-by: Julien Boibessot <julien.boibessot@armadeus.com>

Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
  (visual inspection only)

> ---
> Changes since RFC:
>   * Took Daniel Price and Arnout Vandecappelle remarks into account to be more
>     explicit in the description of the option + add ARM dependancy.
>   * Changed the way option is used in linux.mk to prevent empty LOADADDR=
>
>   linux/Config.in |   13 +++++++++++++
>   linux/linux.mk  |    5 +++++
>   2 files changed, 18 insertions(+), 0 deletions(-)
>
> diff --git a/linux/Config.in b/linux/Config.in
> index 94ce951..a44880f 100644
> --- a/linux/Config.in
> +++ b/linux/Config.in
> @@ -213,6 +213,19 @@ config BR2_LINUX_KERNEL_IMAGE_TARGET_NAME
>   	  Specify the kernel make target to build the kernel that you
>   	  need.
>
> +config BR2_LINUX_KERNEL_UIMAGE_LOADADDR
> +	string "load address (for 3.7+ multi-platform image)"
> +	depends on BR2_arm || BR2_armeb
> +	depends on BR2_LINUX_KERNEL_UIMAGE || BR2_LINUX_KERNEL_APPENDED_UIMAGE
> +	help
> +	  If your ARM system's Linux kernel is configured with the new (3.7+)
> +	  multi-architecture support (CONFIG_ARCH_MULTIPLATFORM=y in your
> +	  kernel config), then it is necessary to specify a kernel load address
> +	  when building the uImage. This should be a hexadecimal string
> +	  beginning with 0x, for example: 0x00008000.
> +
> +	  If unsure, let this option empty.
> +
>   config BR2_LINUX_KERNEL_DTS_SUPPORT
>   	bool "Device tree support"
>   	help
> diff --git a/linux/linux.mk b/linux/linux.mk
> index 0352acd..c8f7b57 100644
> --- a/linux/linux.mk
> +++ b/linux/linux.mk
> @@ -95,6 +95,11 @@ LINUX_IMAGE_NAME=vmlinuz
>   endif
>   endif
>
> +LINUX_KERNEL_UIMAGE_LOADADDR=$(call qstrip,$(BR2_LINUX_KERNEL_UIMAGE_LOADADDR))
> +ifneq ($(LINUX_KERNEL_UIMAGE_LOADADDR),)
> +LINUX_MAKE_FLAGS+=LOADADDR=$(LINUX_KERNEL_UIMAGE_LOADADDR)

  I would put quotes around the value, just in case the user was so 
stupid to insert a space. Alternatively, add an explicit check here:

ifneq ($(words $(LINUX_KERNEL_UIMAGE_LOADDR)),1)
$(error Multiple load addresses specified, please check \ 
BR2_LINUX_KERNEL_UIMAGE_LOADADDR)
endif

  But honestly I think that is going a bit too far.

> +endif
> +

  Coding style question: the rest of the linux.mk doesn't comply with the 
buildroot coding style to put spaces around assignment operators. Should 
patches against linux.mk follow the buildroot coding style or the local 
linux.mk coding style? Or maybe even accept whatever the contributor fancies?

  I have no preference either way, I guess it's just Peter's executive 
decision.


  Regards,
  Arnout


>   ifeq ($(BR2_LINUX_KERNEL_APPENDED_DTB),y)
>   LINUX_IMAGE_TARGET=zImage
>   else
>
Peter Korsgaard March 15, 2013, 1:58 p.m. UTC | #2
>>>>> "julien" == julien boibessot <julien.boibessot@free.fr> writes:

 julien> From: Julien Boibessot <julien.boibessot@armadeus.com>
 julien> Signed-off-by: Julien Boibessot <julien.boibessot@armadeus.com>

Committed with the quotes added as suggested by Arnout - Thanks.
diff mbox

Patch

diff --git a/linux/Config.in b/linux/Config.in
index 94ce951..a44880f 100644
--- a/linux/Config.in
+++ b/linux/Config.in
@@ -213,6 +213,19 @@  config BR2_LINUX_KERNEL_IMAGE_TARGET_NAME
 	  Specify the kernel make target to build the kernel that you
 	  need.
 
+config BR2_LINUX_KERNEL_UIMAGE_LOADADDR
+	string "load address (for 3.7+ multi-platform image)"
+	depends on BR2_arm || BR2_armeb
+	depends on BR2_LINUX_KERNEL_UIMAGE || BR2_LINUX_KERNEL_APPENDED_UIMAGE
+	help
+	  If your ARM system's Linux kernel is configured with the new (3.7+)
+	  multi-architecture support (CONFIG_ARCH_MULTIPLATFORM=y in your
+	  kernel config), then it is necessary to specify a kernel load address
+	  when building the uImage. This should be a hexadecimal string
+	  beginning with 0x, for example: 0x00008000.
+
+	  If unsure, let this option empty.
+
 config BR2_LINUX_KERNEL_DTS_SUPPORT
 	bool "Device tree support"
 	help
diff --git a/linux/linux.mk b/linux/linux.mk
index 0352acd..c8f7b57 100644
--- a/linux/linux.mk
+++ b/linux/linux.mk
@@ -95,6 +95,11 @@  LINUX_IMAGE_NAME=vmlinuz
 endif
 endif
 
+LINUX_KERNEL_UIMAGE_LOADADDR=$(call qstrip,$(BR2_LINUX_KERNEL_UIMAGE_LOADADDR))
+ifneq ($(LINUX_KERNEL_UIMAGE_LOADADDR),)
+LINUX_MAKE_FLAGS+=LOADADDR=$(LINUX_KERNEL_UIMAGE_LOADADDR)
+endif
+
 ifeq ($(BR2_LINUX_KERNEL_APPENDED_DTB),y)
 LINUX_IMAGE_TARGET=zImage
 else