[PATCH] ARM: Set proper TEXT_OFFSET for newer MSMs

Nicolas Pitre nico at fluxnic.net
Sun Jul 24 15:56:17 EDT 2011


On Sun, 24 Jul 2011, Stephen Boyd wrote:

> MSMs post 8x50 have 2Mb at the beginning of RAM reserved for
> shared memory. Since the kernel hasn't typically been told this
> RAM exists, PHYS_OFFSET has been set to 0xN0200000 and the memory
> atags passed to the kernel have matched. This doesn't play nicely
> with things such as AUTO_ZRELADDR, which doesn't work at all, and
> dynamic phys to virt, which requires an MSM specific workaround.
> 
> Work around these issues by telling the kernel RAM starts at
> 0xN0000000 (it actually does) and fixup the atags from the
> bootloader (if necessary) to say the same. In addition, make sure
> to set TEXT_OFFSET at least 2Mb beyond the start of RAM so that
> the kernel doesn't end up being decompressed into shared memory.
> 
> After doing this, AUTO_ZRELADDR should work on MSM with no
> problems and ARM_PATCH_PHYS_VIRT_16BIT should no longer be
> necessary.
> 
> Signed-off-by: Stephen Boyd <sboyd at codeaurora.org>
> Cc: Nicolas Pitre <nico at fluxnic.net>

[..]

> +static void __init msm7x30_fixup(struct machine_desc *desc, struct tag *tag,
> +			 char **cmdline, struct meminfo *mi)
> +{
> +	for (; tag->hdr.size; tag = tag_next(tag))
> +		if (tag->hdr.tag == ATAG_MEM && tag->u.mem.start == 0x200000)
> +			tag->u.mem.start = 0;
> +}

Don't you need to also increase tag->u.mem.size  by 2MB ?

Other than that:

Acked-by: Nicolas Pitre <nicolas.pitre at linaro.org>


Nicolas



More information about the linux-arm-kernel mailing list