OpenCloudOS-Kernel/arch/arm/mach-realview/include/mach
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
..
barriers.h ARM: 6870/1: The mandatory barrier rmb() must be a dsb() in for device accesses 2011-05-12 10:52:00 +01:00
board-eb.h ARM: 7298/1: realview: fix mapping of MPCore private memory region 2012-01-25 09:24:36 +00:00
board-pb11mp.h ARM: 7298/1: realview: fix mapping of MPCore private memory region 2012-01-25 09:24:36 +00:00
board-pb1176.h ARM: 6217/4: mach-realview: expose PB1176 ROM using physmap and map_rom 2011-10-17 09:13:41 +01:00
board-pba8.h RealView: Move the IRQ_* definitions out of the board-*.h files 2009-05-30 14:00:17 +01:00
board-pbx.h RealView: Move the IRQ_* definitions out of the board-*.h files 2009-05-30 14:00:17 +01:00
clkdev.h ARM: Indirect round/set_rate operations through clk structure 2010-05-02 09:35:38 +01:00
debug-macro.S Merge branch 'next/cross-platform' of git://git.linaro.org/people/arnd/arm-soc 2011-11-01 20:34:22 -07:00
entry-macro.S ARM: RealView: convert to CONFIG_MULTI_IRQ_HANDLER 2011-11-15 18:13:59 +00:00
gpio.h ARM: gpio: make trivial GPIOLIB implementation the default 2011-08-12 08:54:19 +01:00
hardware.h nommu: Add MMU-less support for the RealView boards 2009-07-24 12:34:57 +01:00
io.h [ARM] Add a common typesafe __io implementation 2008-11-30 11:45:54 +00:00
irqs-eb.h RealView: Move the IRQ_* definitions out of the board-*.h files 2009-05-30 14:00:17 +01:00
irqs-pb11mp.h RealView: Move the IRQ_* definitions out of the board-*.h files 2009-05-30 14:00:17 +01:00
irqs-pb1176.h ARM: 6227/1: PL022 SSP platform data for the RealViews 2010-07-15 11:17:10 +01:00
irqs-pba8.h ARM: 5890/1: Fix incorrect Realview board IRQs for L220 and PMU 2010-05-02 09:35:37 +01:00
irqs-pbx.h ARM: 5890/1: Fix incorrect Realview board IRQs for L220 and PMU 2010-05-02 09:35:37 +01:00
irqs.h RealView: Move the IRQ_* definitions out of the board-*.h files 2009-05-30 14:00:17 +01:00
memory.h ARM: mach-realview: move from ARM_DMA_ZONE_SIZE to mdesc->dma_zone_size 2011-07-18 15:30:02 -04:00
platform.h ARM: Realview/Versatile/Integrator: remove unused definitions from platform.h 2010-05-02 09:35:35 +01:00
system.h ARM: restart: remove the now empty arch_reset() 2012-01-05 12:57:22 +00:00
timex.h [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
uncompress.h RealView: Add support for the RealView/PBX platform 2009-05-30 13:56:12 +01:00