[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