On Saturday 17 October 2015 12:53 AM, Tony Lindgren wrote: > * Lokesh Vutla <a0131933@xxxxxx> [151015 08:21]: [..snip..] >>> > > 8< ----------------------From c37732f6cea23d15faaaaa357cf698833c03ce05 Mon Sep 17 00:00:00 2001 > Date: Fri, 16 Oct 2015 12:16:21 -0700 > Subject: [PATCH] ARM: OMAP2+: Fix oops with LPAE and more than 2GB of memory > > On boards with more than 2GB of RAM booting goes wrong with things not > working and we're getting lots of l3 warnings: > > WARNING: CPU: 0 PID: 1 at drivers/bus/omap_l3_noc.c:147 > l3_interrupt_handler+0x260/0x384() > 44000000.ocp:L3 Custom Error: MASTER MMC6 TARGET DMM1 (Idle): > Data Access in User mode during Functional access > ... > [<c044e158>] (scsi_add_host_with_dma) from [<c04705c8>] > (ata_scsi_add_hosts+0x5c/0x18c) > [<c04705c8>] (ata_scsi_add_hosts) from [<c046b13c>] > (ata_host_register+0x150/0x2cc) > [<c046b13c>] (ata_host_register) from [<c046b38c>] > (ata_host_activate+0xd4/0x124) > [<c046b38c>] (ata_host_activate) from [<c047f42c>] > (ahci_host_activate+0x5c/0x194) > [<c047f42c>] (ahci_host_activate) from [<c0480854>] > (ahci_platform_init_host+0x1f0/0x3f0) > [<c0480854>] (ahci_platform_init_host) from [<c047c9dc>] > (ahci_probe+0x70/0x98) > [<c047c9dc>] (ahci_probe) from [<c04220cc>] > (platform_drv_probe+0x54/0xb4) > > Let's fix the issue by enabling ZONE_DMA for LPAE. Note that we need to > limit dma_zone_size to 2GB as the rest of the RAM is beyond the 4GB limit. > > Let's also fix things for dra7 as done in similar patches in the TI tree > by Lokesh Vutla <lokeshvutla@xxxxxx>. Looks good to me. Reviewed-by: Lokesh Vutla <lokeshvutla@xxxxxx> Since there is a big hole with in the memory space, we might also need to enable SPARSEMEM ? Thanks and regards, Lokesh > > Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx> > > --- a/arch/arm/mach-omap2/Kconfig > +++ b/arch/arm/mach-omap2/Kconfig > @@ -49,6 +49,7 @@ config SOC_OMAP5 > select OMAP_INTERCONNECT > select OMAP_INTERCONNECT_BARRIER > select PM_OPP if PM > + select ZONE_DMA if ARM_LPAE > > config SOC_AM33XX > bool "TI AM33XX" > @@ -78,6 +79,7 @@ config SOC_DRA7XX > select OMAP_INTERCONNECT > select OMAP_INTERCONNECT_BARRIER > select PM_OPP if PM > + select ZONE_DMA if ARM_LPAE > > config ARCH_OMAP2PLUS > bool > --- a/arch/arm/mach-omap2/board-generic.c > +++ b/arch/arm/mach-omap2/board-generic.c > @@ -243,6 +243,9 @@ static const char *const omap5_boards_compat[] __initconst = { > }; > > DT_MACHINE_START(OMAP5_DT, "Generic OMAP5 (Flattened Device Tree)") > +#if defined(CONFIG_ZONE_DMA) && defined(CONFIG_ARM_LPAE) > + .dma_zone_size = SZ_2G, > +#endif > .reserve = omap_reserve, > .smp = smp_ops(omap4_smp_ops), > .map_io = omap5_map_io, > @@ -288,6 +291,9 @@ static const char *const dra74x_boards_compat[] __initconst = { > }; > > DT_MACHINE_START(DRA74X_DT, "Generic DRA74X (Flattened Device Tree)") > +#if defined(CONFIG_ZONE_DMA) && defined(CONFIG_ARM_LPAE) > + .dma_zone_size = SZ_2G, > +#endif > .reserve = omap_reserve, > .smp = smp_ops(omap4_smp_ops), > .map_io = dra7xx_map_io, > @@ -308,6 +314,9 @@ static const char *const dra72x_boards_compat[] __initconst = { > }; > > DT_MACHINE_START(DRA72X_DT, "Generic DRA72X (Flattened Device Tree)") > +#if defined(CONFIG_ZONE_DMA) && defined(CONFIG_ARM_LPAE) > + .dma_zone_size = SZ_2G, > +#endif > .reserve = omap_reserve, > .map_io = dra7xx_map_io, > .init_early = dra7xx_init_early, > -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html