Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit af607747 authored by Catalin Marinas's avatar Catalin Marinas
Browse files

RealView: Allow access to the secure flash memory block on PB1176



This patch adds a Kconfig option for specifying whether Linux will only
be run in secure mode on the RealView PB1176 platform. Enabling it will
make the secure flash memory block (64MB @ 0x3c000000) available to
Linux.

Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
parent 1b504bbe
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -48,6 +48,15 @@ config MACH_REALVIEW_PB1176
	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
+2 −0
Original line number Diff line number Diff line
@@ -32,6 +32,8 @@
#define REALVIEW_PB1176_SDRAM67_BASE		0x70000000 /* SDRAM banks 6 and 7 */
#define REALVIEW_PB1176_FLASH_BASE		0x30000000
#define REALVIEW_PB1176_FLASH_SIZE		SZ_64M
#define REALVIEW_PB1176_SEC_FLASH_BASE		0x3C000000 /* Secure flash */
#define REALVIEW_PB1176_SEC_FLASH_SIZE		SZ_64M

#define REALVIEW_PB1176_TIMER0_1_BASE		0x10104000 /* Timer 0 and 1 */
#define REALVIEW_PB1176_TIMER2_3_BASE		0x10105000 /* Timer 2 and 3 */
+18 −5
Original line number Diff line number Diff line
@@ -203,11 +203,23 @@ static struct amba_device *amba_devs[] __initdata = {
/*
 * RealView PB1176 platform devices
 */
static struct resource realview_pb1176_flash_resource = {
static struct resource realview_pb1176_flash_resources[] = {
	[0] = {
		.start		= REALVIEW_PB1176_FLASH_BASE,
		.end		= REALVIEW_PB1176_FLASH_BASE + REALVIEW_PB1176_FLASH_SIZE - 1,
		.flags		= IORESOURCE_MEM,
	},
	[1] = {
		.start		= REALVIEW_PB1176_SEC_FLASH_BASE,
		.end		= REALVIEW_PB1176_SEC_FLASH_BASE + REALVIEW_PB1176_SEC_FLASH_SIZE - 1,
		.flags		= IORESOURCE_MEM,
	},
};
#ifdef CONFIG_REALVIEW_PB1176_SECURE_FLASH
#define PB1176_FLASH_BLOCKS	2
#else
#define PB1176_FLASH_BLOCKS	1
#endif

static struct resource realview_pb1176_smsc911x_resources[] = {
	[0] = {
@@ -271,7 +283,8 @@ static void __init realview_pb1176_init(void)
	l2x0_init(__io_address(REALVIEW_PB1176_L220_BASE), 0x00730000, 0xfe000fff);
#endif

	realview_flash_register(&realview_pb1176_flash_resource, 1);
	realview_flash_register(realview_pb1176_flash_resources,
				PB1176_FLASH_BLOCKS);
	realview_eth_register(NULL, realview_pb1176_smsc911x_resources);
	platform_device_register(&realview_i2c_device);
	realview_usb_register(realview_pb1176_isp1761_resources);