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

Commit 766211e7 authored by Changhwan Youn's avatar Changhwan Youn Committed by Kukjin Kim
Browse files

ARM: S5PV310: Fix on Secondary CPU startup



Following occurs on boot message without this patch.
    CPU1: processor failed to boot
    Brought up 1 CPUs
    SMP: Total of 1 processors activated...

This patch adds SYSRAM mapping for fixing Secondary CPU startup.
    CPU1: Booted secondary processor
    Brought up 2 CPUs
    SMP: Total of 2 processors activated...

Signed-off-by: default avatarChanghwan Youn <chaos.youn@samsung.com>
Signed-off-by: default avatarKukjin Kim <kgene.kim@samsung.com>
parent 3297c2e6
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -45,12 +45,17 @@ static struct map_desc s5pv310_iodesc[] __initdata = {
		.pfn		= __phys_to_pfn(S5PV310_PA_L2CC),
		.length		= SZ_4K,
		.type		= MT_DEVICE,
	}, {
		.virtual	= (unsigned long)S5P_VA_SYSRAM,
		.pfn		= __phys_to_pfn(S5PV310_PA_SYSRAM),
		.length		= SZ_4K,
		.type		= MT_DEVICE,
	}, {
		.virtual	= (unsigned long)S5P_VA_CMU,
		.pfn		= __phys_to_pfn(S5PV310_PA_CMU),
		.length		= SZ_128K,
		.type		= MT_DEVICE,
	}
	},
};

static void s5pv310_idle(void)
+2 −0
Original line number Diff line number Diff line
@@ -23,6 +23,8 @@

#include <plat/map-s5p.h>

#define S5PV310_PA_SYSRAM		(0x02025000)

#define S5PV310_PA_CHIPID		(0x10000000)
#define S5P_PA_CHIPID			S5PV310_PA_CHIPID

+1 −1
Original line number Diff line number Diff line
@@ -187,6 +187,6 @@ void __init smp_prepare_cpus(unsigned int max_cpus)
		 * until it receives a soft interrupt, and then the
		 * secondary CPU branches to this address.
		 */
	__raw_writel(BSYM(virt_to_phys(s5pv310_secondary_startup)), S5P_INFORM0);
	__raw_writel(BSYM(virt_to_phys(s5pv310_secondary_startup)), S5P_VA_SYSRAM);
	}
}
+1 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
#define S5P_VA_GPIO		S3C_ADDR(0x00500000)
#define S5P_VA_SYSTIMER		S3C_ADDR(0x01200000)
#define S5P_VA_SROMC		S3C_ADDR(0x01100000)
#define S5P_VA_SYSRAM		S3C_ADDR(0x01180000)

#define S5P_VA_COMBINER_BASE	S3C_ADDR(0x00600000)
#define S5P_VA_COMBINER(x)	(S5P_VA_COMBINER_BASE + ((x) >> 2) * 0x10)