Linux-4.0 as shipped has a bug causing it to not boot if the end of memory is not aligned to a multiple of 2 MiB. For details see the linux-arm mailing list post titled: "Memory size unaligned to section boundary" http://www.spinics.net/lists/arm-kernel/msg413811.html
This is something which specifically hits the sunxi display driver because we carve out the exact needed framebuffer size at the top of mem, this commit works around this issue by aligning the carve out. Cc: Stefan Agner <ste...@agner.ch> Signed-off-by: Hans de Goede <hdego...@redhat.com> --- drivers/video/sunxi_display.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/drivers/video/sunxi_display.c b/drivers/video/sunxi_display.c index 95cfe94..4607269 100644 --- a/drivers/video/sunxi_display.c +++ b/drivers/video/sunxi_display.c @@ -1278,6 +1278,19 @@ int sunxi_simplefb_setup(void *blob) */ start = gd->bd->bi_dram[0].start; size = gd->bd->bi_dram[0].size - sunxi_display.fb_size; + + /* + * Linux-4.0 as shipped has a bug causing it not boot if the end + * of memory is not aligned to a multiple of 2 MiB. For details + * see the linux-arm mailing list post titled: + * "Memory size unaligned to section boundary" + * http://www.spinics.net/lists/arm-kernel/msg413811.html + * + * This workaround should be removed once the bug has been fixed + * and we no longer care about the Linux versions with the bug. + */ + size &= ~(2 * 1024 * 1024 - 1); + ret = fdt_fixup_memory_banks(blob, &start, &size, 1); if (ret) { eprintf("Cannot setup simplefb: Error reserving memory\n"); -- 2.3.5 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot