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

Arnout Vandecappelle arnout at mind.be
Thu Mar 14 06:36:04 UTC 2013


On 03/13/13 22:13, julien.boibessot at free.fr wrote:
> From: Julien Boibessot <julien.boibessot at armadeus.com>
>
> Signed-off-by: Julien Boibessot <julien.boibessot at armadeus.com>

Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout at 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
>


-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F



More information about the buildroot mailing list