diff options
| -rw-r--r-- | board/armltd/vexpress/vexpress_common.c | 15 | ||||
| -rw-r--r-- | include/configs/vexpress_ca15_tc2.h | 5 | 
2 files changed, 20 insertions, 0 deletions
| diff --git a/board/armltd/vexpress/vexpress_common.c b/board/armltd/vexpress/vexpress_common.c index 4c7a7f46d..56febd952 100644 --- a/board/armltd/vexpress/vexpress_common.c +++ b/board/armltd/vexpress/vexpress_common.c @@ -256,3 +256,18 @@ ulong get_tbclk(void)  {  	return (ulong)CONFIG_SYS_HZ;  } + +#if defined(CONFIG_ARMV7_NONSEC) || defined(CONFIG_ARMV7_VIRT) +/* Setting the address at which secondary cores start from. + * Versatile Express uses one address for all cores, so ignore corenr + */ +void smp_set_core_boot_addr(unsigned long addr, int corenr) +{ +	/* The SYSFLAGS register on VExpress needs to be cleared first +	 * by writing to the next address, since any writes to the address +	 * at offset 0 will only be ORed in +	 */ +	writel(~0, CONFIG_SYSFLAGS_ADDR + 4); +	writel(addr, CONFIG_SYSFLAGS_ADDR); +} +#endif diff --git a/include/configs/vexpress_ca15_tc2.h b/include/configs/vexpress_ca15_tc2.h index 89ce1c711..080603409 100644 --- a/include/configs/vexpress_ca15_tc2.h +++ b/include/configs/vexpress_ca15_tc2.h @@ -15,4 +15,9 @@  #include "vexpress_common.h"  #define CONFIG_BOOTP_VCI_STRING     "U-boot.armv7.vexpress_ca15x2_tc2" +#define CONFIG_SYSFLAGS_ADDR	0x1c010030 +#define CONFIG_SMP_PEN_ADDR	CONFIG_SYSFLAGS_ADDR + +#define CONFIG_ARMV7_VIRT +  #endif |