menu "RealView platform type"
	depends on ARCH_REALVIEW

config MACH_REALVIEW_EB
	bool "Support RealView/EB platform"
	select ARM_GIC
	help
	  Include support for the ARM(R) RealView Emulation Baseboard platform.

config REALVIEW_EB_A9MP
	bool "Support Multicore Cortex-A9"
	depends on MACH_REALVIEW_EB
	select CPU_V7
	help
	  Enable support for the Cortex-A9MPCore tile on the Realview platform.

config REALVIEW_EB_ARM11MP
	bool "Support ARM11MPCore tile"
	depends on MACH_REALVIEW_EB
	select CPU_V6
	help
	  Enable support for the ARM11MPCore tile on the Realview platform.

config REALVIEW_EB_ARM11MP_REVB
	bool "Support ARM11MPCore RevB tile"
	depends on REALVIEW_EB_ARM11MP
	help
	  Enable support for the ARM11MPCore RevB tile on the Realview
	  platform. Since there are device address differences, a
	  kernel built with this option enabled is not compatible with
	  other revisions of the ARM11MPCore tile.

config MACH_REALVIEW_PB11MP
	bool "Support RealView/PB11MPCore platform"
	select CPU_V6
	select ARM_GIC
	select HAVE_PATA_PLATFORM
	help
	  Include support for the ARM(R) RealView MPCore Platform Baseboard.
	  PB11MPCore is a platform with an on-board ARM11MPCore and has
	  support for PCI-E and Compact Flash.

config MACH_REALVIEW_PB1176
	bool "Support RealView/PB1176 platform"
	select CPU_V6
	select ARM_GIC
	help
	  Include support for the ARM(R) RealView ARM1176 Platform Baseboard.

config REALVIEW_PB1176_SECURE_FLASH
	bool "Allow access to the secure flash memory block"
	depends on MACH_REALVIEW_PB1176
	default n
	help
	  Select this option if Linux will only run in secure mode on the
	  RealView PB1176 platform and access to the secure flash memory
	  block (64MB @ 0x3c000000) is required.

config MACH_REALVIEW_PBA8
	bool "Support RealView/PB-A8 platform"
	select CPU_V7
	select ARM_GIC
	select HAVE_PATA_PLATFORM
	help
	  Include support for the ARM(R) RealView Cortex-A8 Platform Baseboard.
	  PB-A8 is a platform with an on-board Cortex-A8 and has support for
	  PCI-E and Compact Flash.

config MACH_REALVIEW_PBX
	bool "Support RealView/PBX platform"
	select ARM_GIC
	select HAVE_PATA_PLATFORM
	help
	  Include support for the ARM(R) RealView PBX platform.

config REALVIEW_HIGH_PHYS_OFFSET
	bool "High physical base address for the RealView platform"
	depends on MMU && !MACH_REALVIEW_PB1176
	default y
	help
	  RealView boards other than PB1176 have the RAM available at
	  0x70000000, 256MB of which being mirrored at 0x00000000. If
	  the board supports 512MB of RAM, this option allows the
	  memory to be accessed contiguously at the high physical
	  offset.

endmenu
