msm: platsmp: Release secondary cores out of reset for copper

Add support to release secondary cores out of reset for
copper target on simulator.

This helps avoid the warning message from showing up on the
console when the secondary cores are brought online as copper
was not in the list of recognized targets.

Signed-off-by: Sathish Ambley <sambley@codeaurora.org>
Change-Id: Ib9d8df35d277535f8a885c0e9e803ecee1e71903
diff --git a/arch/arm/mach-msm/platsmp.c b/arch/arm/mach-msm/platsmp.c
index 6b48d57..668e0c2 100644
--- a/arch/arm/mach-msm/platsmp.c
+++ b/arch/arm/mach-msm/platsmp.c
@@ -61,9 +61,9 @@
 	return 0;
 }
 
-static int __cpuinit krait_release_secondary_sim(int cpu)
+static int __cpuinit krait_release_secondary_sim(unsigned long base, int cpu)
 {
-	void *base_ptr = ioremap_nocache(0x02088000 + (cpu * 0x10000), SZ_4K);
+	void *base_ptr = ioremap_nocache(base + (cpu * 0x10000), SZ_4K);
 	if (!base_ptr)
 		return -ENODEV;
 
@@ -75,14 +75,17 @@
 	if (machine_is_apq8064_sim())
 		writel_relaxed(0xf0000, base_ptr+0x04);
 
+	if (machine_is_copper_sim())
+		writel_relaxed(0x9, base_ptr+0x04);
+
 	mb();
 	iounmap(base_ptr);
 	return 0;
 }
 
-static int __cpuinit krait_release_secondary(int cpu)
+static int __cpuinit krait_release_secondary(unsigned long base, int cpu)
 {
-	void *base_ptr = ioremap_nocache(0x02088000 + (cpu * 0x10000), SZ_4K);
+	void *base_ptr = ioremap_nocache(base + (cpu * 0x10000), SZ_4K);
 	if (!base_ptr)
 		return -ENODEV;
 
@@ -116,10 +119,13 @@
 
 	if (machine_is_msm8960_sim() || machine_is_msm8960_rumi3() ||
 	    machine_is_apq8064_sim())
-		return krait_release_secondary_sim(cpu);
+		return krait_release_secondary_sim(0x02088000, cpu);
+
+	if (machine_is_copper_sim())
+		return krait_release_secondary_sim(0xf9088000, cpu);
 
 	if (cpu_is_msm8960() || cpu_is_msm8930() || cpu_is_apq8064())
-		return krait_release_secondary(cpu);
+		return krait_release_secondary(0x02088000, cpu);
 
 	WARN(1, "unknown CPU case in release_secondary\n");
 	return -EINVAL;