linux/arch/arm/mach-realview
Marc Zyngier 34ae6c96a6 ARM: 7298/1: realview: fix mapping of MPCore private memory region
Since commit 0536bdf33f (ARM: move iotable mappings within
the vmalloc region), the RealView PB11MP cannot boot anymore.

This is caused by the way the mappings are described on this
platform (define replaced by hex values for clarity):

{	/* GIC CPU interface mapping */
        .virtual        = IO_ADDRESS(0x1F000100),
        .pfn            = __phys_to_pfn(0x1F000100),
        .length         = SZ_4K,
        .type           = MT_DEVICE,
}, {	/* GIC distributor mapping */
        .virtual        = IO_ADDRESS(0x1F001000),
        .pfn            = __phys_to_pfn(0x1F001000),
        .length         = SZ_4K,
        .type           = MT_DEVICE,
}

The first mapping ends up reserving two pages, and clashes with
the second one, which triggers a BUG_ON in vm_area_add_early().

In order to solve this problem, treat the MPCore private memory
region (containing the SCU, the GIC and the TWD) as a single region,
as described in the TRM:
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0360f/CACGDJJC.html

The EB11MP is converted the same way, even if it manages to avoid
the problem.

Tested on both PB11MP and EB11MP.

Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2012-01-25 09:24:36 +00:00
..
include/mach ARM: 7298/1: realview: fix mapping of MPCore private memory region 2012-01-25 09:24:36 +00:00
core.c driver-core: remove sysdev.h usage. 2011-12-21 16:26:03 -08:00
core.h ARM: restart: realview: use new restart hook 2012-01-05 12:57:18 +00:00
hotplug.c ARM: 7293/1: logical_cpu_map: decouple CPU mapping from SMP 2012-01-23 10:20:05 +00:00
Kconfig ARM: SMP: Refactor Kconfig to be more maintainable 2011-12-19 13:47:39 +00:00
Makefile ARM: realview/vexpress: consolidate SMP bringup code 2011-02-19 11:11:41 +00:00
Makefile.boot ARM: 7022/1: allow to detect conflicting zreladdrs 2011-10-17 09:12:40 +01:00
platsmp.c ARM: versatile: Add missing ENDPROC to headsmp.S 2012-01-16 08:35:25 -06:00
realview_eb.c ARM: 7298/1: realview: fix mapping of MPCore private memory region 2012-01-25 09:24:36 +00:00
realview_pb11mp.c ARM: 7298/1: realview: fix mapping of MPCore private memory region 2012-01-25 09:24:36 +00:00
realview_pb1176.c 2nd round of GPIO changes for v3.3 merge window 2012-01-14 13:25:23 -08:00
realview_pba8.c 2nd round of GPIO changes for v3.3 merge window 2012-01-14 13:25:23 -08:00
realview_pbx.c 2nd round of GPIO changes for v3.3 merge window 2012-01-14 13:25:23 -08:00