linux/arch/arm/mach-shmobile
Magnus Damm 744cadba1a ARM: shmobile: No R-Car Gen2 CMA reservation when HIGHMEM=n
Allow R-Car Gen2 platforms to boot with CMA enabled
and HIGHMEM disabled. This patch adds code to check
if the R-Car Gen2 specific memory reservation window
is included in the kernel memory range or not. When
HIGHMEM is disabled the R-Car Gen2 reservation area is
outside the kernel memory range and in such case the
memory reservation is simply skipped over.

Without this patch the kernel boot hangs when CMA is
enabled and HIGHMEM is disabled on the r8a7791 Koelsch
hardware platform:

    WARNING: CPU: 1 PID: 1 at mm/cma.c:113 cma_init_reserved_areas+0x88/0x1d4()
    ...
    WARNING: CPU: 1 PID: 1 at mm/cma.c:121 cma_init_reserved_areas+0xf8/0x1d4()
    ...
    Unable to handle kernel NULL pointer dereference at virtual address 00000160
    pgd = c0003000
    [00000160] *pgd=80000040004003, *pmd=00000000
    Internal error: Oops: 206 [#1] SMP ARM
    Modules linked in:
    CPU: 1 PID: 1 Comm: swapper/0 Tainted: G        W
3.19.0-rc4-koelsch-01450-g7f9b6075ce12c3ea-dirty #735
    Hardware name: Generic R8A7791 (Flattened Device Tree)
    task: edc553c0 ti: edc56000 task.ti: edc56000
    PC is at set_pfnblock_flags_mask+0x54/0xa0
    LR is at 0x440

In the current shmobile_defconfig HIGHMEM is enabled
while CMA is disabled, so to trigger this the kernel
configuration for both CMA and HIGHMEM needs to be
adjusted.

Signed-off-by: Magnus Damm <damm+renesas@opensource.se>
Tested-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2015-02-24 07:13:54 +09:00
..
include/mach
Kconfig ARM: SoC platform changes 2015-02-17 09:27:54 -08:00
Makefile ARM: shmobile: r8a7790: Remove legacy code 2014-12-21 17:03:50 +09:00
Makefile.boot ARM: shmobile: lager: Remove legacy board support 2014-12-21 17:03:44 +09:00
board-ape6evm-reference.c Renesas ARM Based SoC r8a73a4 DT Timers Updates for v3.19 2014-10-30 09:54:13 +09:00
board-ape6evm.c Third Round of Renesas ARM Based SoC Fixes for v3.19 2015-02-01 08:51:12 -08:00
board-armadillo800eva.c ARM: SoC platform changes for 3.19 2014-12-09 14:38:28 -08:00
board-bockw-reference.c ARM: shmobile: Remove FSF address from copyright headers 2014-10-27 09:48:07 +09:00
board-bockw.c ARM: shmobile: Remove FSF address from copyright headers 2014-10-27 09:48:07 +09:00
board-kzm9g-reference.c ARM: SoC platform changes for 3.19 2014-12-09 14:38:28 -08:00
board-kzm9g.c ARM: shmobile: Remove FSF address from copyright headers 2014-10-27 09:48:07 +09:00
board-mackerel.c media updates for v3.19-rc1 2014-12-11 11:49:23 -08:00
board-marzen-reference.c Second Round of Renesas ARM Based SoC Boards Cleanups for v3.19 2014-11-19 22:29:59 +01:00
board-marzen.c ARM: shmobile: marzen: Remove DU platform device 2014-12-02 07:25:09 +10:00
clock-r8a73a4.c ARM: shmobile: Remove FSF address from copyright headers 2014-10-27 09:48:07 +09:00
clock-r8a7740.c ARM: SoC cleanups for 3.19 2014-12-09 14:18:35 -08:00
clock-r8a7778.c ARM: shmobile: Remove FSF address from copyright headers 2014-10-27 09:48:07 +09:00
clock-r8a7779.c ARM: shmobile: Remove FSF address from copyright headers 2014-10-27 09:48:07 +09:00
clock-sh73a0.c ARM: shmobile: sh73a0 legacy/reference: Add missing INTCA0 clock for irqpin module 2014-12-21 17:11:18 +09:00
clock-sh7372.c ARM: shmobile: Remove FSF address from copyright headers 2014-10-27 09:48:07 +09:00
clock.c ARM: shmobile: Remove shmobile_clk_workaround() implementation 2014-10-30 10:14:57 +09:00
clock.h ARM: shmobile: Remove shmobile_clk_workaround() implementation 2014-10-30 10:14:57 +09:00
common.h ARM: shmobile: Separate APMU resource data into CPU dependant part 2014-11-04 09:31:23 +09:00
console.c ARM: shmobile: Remove FSF address from copyright headers 2014-10-27 09:48:07 +09:00
cpufreq.c cpufreq: cpu0: rename driver and internals to 'cpufreq_dt' 2014-10-03 15:37:54 +02:00
cpuidle.c
dma-register.h
entry-intc.S
headsmp-scu.S ARM: shmobile: Remove FSF address from copyright headers 2014-10-27 09:48:07 +09:00
headsmp.S
intc-sh73a0.c ARM: shmobile: Remove FSF address from copyright headers 2014-10-27 09:48:07 +09:00
intc-sh7372.c ARM: shmobile: Remove FSF address from copyright headers 2014-10-27 09:48:07 +09:00
intc.h
irqs.h
platsmp-apmu.c ARM: shmobile: Separate APMU resource data into CPU dependant part 2014-11-04 09:31:23 +09:00
platsmp-apmu.h ARM: shmobile: Separate APMU resource data into CPU dependant part 2014-11-04 09:31:23 +09:00
platsmp-scu.c
platsmp.c
pm-r8a7740.c ARM: shmobile: R-Mobile: Store SYSC base address in rmobile_pm_domain 2015-01-13 09:33:19 +09:00
pm-r8a7779.c ARM: shmobile: Convert to genpd flags for PM clocks for r8a7779 2014-12-04 00:44:44 +01:00
pm-r8a7790.c
pm-r8a7791.c
pm-rcar.c
pm-rcar.h
pm-rmobile.c ARM: shmobile: R-Mobile: Special-case PM domains with memory-controllers 2015-01-16 11:02:42 +09:00
pm-rmobile.h ARM: shmobile: R-Mobile: Add DT support for PM domains 2015-01-15 08:38:14 +09:00
pm-sh73a0.c
pm-sh7372.c ARM: shmobile: R-Mobile: Store SYSC base address in rmobile_pm_domain 2015-01-13 09:33:19 +09:00
r8a73a4.h ARM: shmobile: r8a73a4: Remove empty r8a73a4_add_dt_devices 2014-10-24 11:54:49 +09:00
r8a7740.h ARM: shmobile: Remove FSF address from copyright headers 2014-10-27 09:48:07 +09:00
r8a7778.h Renesas ARM Based SoC Cleanup for v3.19 2014-11-04 14:43:02 -08:00
r8a7779.h
r8a7790.h ARM: shmobile: r8a7790: Remove legacy code 2014-12-21 17:03:50 +09:00
r8a7791.h ARM: shmobile: r8a7791: Remove legacy code 2014-10-30 10:14:57 +09:00
rcar-gen2.h
setup-emev2.c ARM: make arrays containing machine compatible strings const 2015-02-19 09:44:17 +01:00
setup-r7s72100.c ARM: shmobile: Remove FSF address from copyright headers 2014-10-27 09:48:07 +09:00
setup-r8a73a4.c Renesas ARM Based SoC r8a73a4 DT Timers Updates for v3.19 2014-10-30 09:54:13 +09:00
setup-r8a7740.c ARM: SoC cleanups 2015-02-17 09:17:33 -08:00
setup-r8a7778.c Second Round of Renesas ARM Based SoC Fixes for v3.19 2015-01-21 17:15:49 -08:00
setup-r8a7779.c Second Round of Renesas ARM Based SoC Fixes for v3.19 2015-01-21 17:15:49 -08:00
setup-r8a7790.c ARM: shmobile: r8a7790: Remove legacy code 2014-12-21 17:03:50 +09:00
setup-r8a7791.c ARM: shmobile: r8a7791: Remove legacy code 2014-10-30 10:14:57 +09:00
setup-r8a7794.c
setup-rcar-gen2.c ARM: shmobile: No R-Car Gen2 CMA reservation when HIGHMEM=n 2015-02-24 07:13:54 +09:00
setup-sh73a0.c ARM: SoC driver updates 2015-02-17 09:38:59 -08:00
setup-sh7372.c ARM: SoC platform changes for 3.19 2014-12-09 14:38:28 -08:00
sh-gpio.h
sh73a0.h ARM: shmobile: sh73a0: Remove wrapper sh73a0_init_delay() 2014-10-24 13:07:01 +09:00
sh7372.h
sleep-sh7372.S ARM: shmobile: Remove FSF address from copyright headers 2014-10-27 09:48:07 +09:00
smp-emev2.c ARM: shmobile: Remove FSF address from copyright headers 2014-10-27 09:48:07 +09:00
smp-r8a7779.c ARM: shmobile: r8a7779: No TWD setup in C for Multiplatform 2014-12-21 17:11:20 +09:00
smp-r8a7790.c ARM: shmobile: Separate APMU resource data into CPU dependant part 2014-11-04 09:31:23 +09:00
smp-r8a7791.c ARM: shmobile: r8a7791: Correct number of CPU cores 2014-11-04 09:31:27 +09:00
smp-sh73a0.c ARM: shmobile: Remove FSF address from copyright headers 2014-10-27 09:48:07 +09:00
suspend.c
timer.c Third Round of Renesas ARM Based SoC Fixes for v3.19 2015-02-01 08:51:12 -08:00