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 <[email protected]>
> Cc: Nicolas Pitre <[email protected]>

[..]

> +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 <[email protected]>


Nicolas
--
To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to