Subject: [PATCH v2] ARM: shmobile: uImage load address rework

From: [email-masked] (Laurent Pinchart)
Date: Tue, 11 Jun 2013 23:50:28 +0200

Hi Magnus,

Thanks for the patch.

On Monday 10 June 2013 18:28:57 Magnus Damm wrote:
> From: Magnus Damm <[email-masked]>
> 
> This is V2 of the mach-shmobile uImage load address rework patch.
> 
> Rework the mach-shmobile uImage load address calculation by storing
> the per-board load addresses in Makefile.boot. This removes the
> CONFIG_MEMORY_START dependency from Makefile.boot, and it also makes
> it possible to create safe kernel images that boot on multiple boards.
> 
> This is one of several series of code that reworks code not to rely on
> CONFIG_MEMORY_START/SIZE which in turn is needed for ARCH_MULTIPLATFORM.
> 
> Signed-off-by: Magnus Damm <[email-masked]>
> Reviewed-by: Laurent Pinchart <[email-masked]>
> Reviewed-by: Kuninori Morimoto <[email-masked]>

I've noticed today that KZM9G doesn't boot v3.10-rc2 with 
CONFIG_AUTO_ZRELADDR=y. While not caused by this patch, that's something that 
will need to be fixed to support multi-arch kernels. I'm not too familiar with 
early boot code, would you be able to have a look at this ?

> ---
> 
>  Changes since V1:
>  - On popular request, merged patch 5 and 14 and all other.
>  - Updated the __ZRELADDR calculation, thanks Arnd!
>  - Added Reviewed-by from Laurent and Morimoto-san, thanks!
> 
>  arch/arm/mach-shmobile/Makefile.boot |   20 ++++++++++++++++++--
>  1 file changed, 18 insertions(+), 2 deletions(-)
> 
> --- 0001/arch/arm/mach-shmobile/Makefile.boot
> +++ work/arch/arm/mach-shmobile/Makefile.boot	2013-06-10 
16:15:22.000000000
> +0900 @@ -1,6 +1,22 @@
> -__ZRELADDR	:= $(shell /bin/bash -c 'printf "0x%08x" \
> -		     $$[$(CONFIG_MEMORY_START) + 0x8000]')
> +# per-board load address for uImage
> +loadaddr-y	:=
> +loadaddr-$(CONFIG_MACH_AG5EVM) += 0x40008000
> +loadaddr-$(CONFIG_MACH_AP4EVB) += 0x40008000
> +loadaddr-$(CONFIG_MACH_APE6EVM) += 0x40008000
> +loadaddr-$(CONFIG_MACH_ARMADILLO800EVA) += 0x40008000
> +loadaddr-$(CONFIG_MACH_ARMADILLO800EVA_REFERENCE) += 0x40008000
> +loadaddr-$(CONFIG_MACH_BOCKW) += 0x60008000
> +loadaddr-$(CONFIG_MACH_BONITO) += 0x40008000
> +loadaddr-$(CONFIG_MACH_KOTA2) += 0x41008000
> +loadaddr-$(CONFIG_MACH_KZM9D) += 0x40008000
> +loadaddr-$(CONFIG_MACH_KZM9G) += 0x41008000
> +loadaddr-$(CONFIG_MACH_KZM9G_REFERENCE) += 0x41008000
> +loadaddr-$(CONFIG_MACH_LAGER) += 0x40008000
> +loadaddr-$(CONFIG_MACH_MACKEREL) += 0x40008000
> +loadaddr-$(CONFIG_MACH_MARZEN) += 0x60008000
> +loadaddr-$(CONFIG_MACH_MARZEN_REFERENCE) += 0x60008000
> 
> +__ZRELADDR	:= $(sort $(loadaddr-y))
>     zreladdr-y   += $(__ZRELADDR)
> 
>  # Unsupported legacy stuff

-- 
Regards,

Laurent Pinchart