platsmp.c (9938b04472d5c59f8bd8152a548533a8599596a2) platsmp.c (64fc2a947a9873700929ec0ef02b4654a04e0476)
1/*
2 * SMP support for Allwinner SoCs
3 *
4 * Copyright (C) 2013 Maxime Ripard
5 *
6 * Maxime Ripard <maxime.ripard@free-electrons.com>
7 *
8 * Based on code

--- 66 unchanged lines hidden (view full) ---

75 int i;
76
77 if (!(prcm_membase && cpucfg_membase))
78 return -EFAULT;
79
80 spin_lock(&cpu_lock);
81
82 /* Set CPU boot address */
1/*
2 * SMP support for Allwinner SoCs
3 *
4 * Copyright (C) 2013 Maxime Ripard
5 *
6 * Maxime Ripard <maxime.ripard@free-electrons.com>
7 *
8 * Based on code

--- 66 unchanged lines hidden (view full) ---

75 int i;
76
77 if (!(prcm_membase && cpucfg_membase))
78 return -EFAULT;
79
80 spin_lock(&cpu_lock);
81
82 /* Set CPU boot address */
83 writel(virt_to_phys(secondary_startup),
83 writel(__pa_symbol(secondary_startup),
84 cpucfg_membase + CPUCFG_PRIVATE0_REG);
85
86 /* Assert the CPU core in reset */
87 writel(0, cpucfg_membase + CPUCFG_CPU_RST_CTRL_REG(cpu));
88
89 /* Assert the L1 cache in reset */
90 reg = readl(cpucfg_membase + CPUCFG_GEN_CTRL_REG);
91 writel(reg & ~BIT(cpu), cpucfg_membase + CPUCFG_GEN_CTRL_REG);

--- 65 unchanged lines hidden (view full) ---

157 u32 reg;
158
159 if (!(prcm_membase && cpucfg_membase))
160 return -EFAULT;
161
162 spin_lock(&cpu_lock);
163
164 /* Set CPU boot address */
84 cpucfg_membase + CPUCFG_PRIVATE0_REG);
85
86 /* Assert the CPU core in reset */
87 writel(0, cpucfg_membase + CPUCFG_CPU_RST_CTRL_REG(cpu));
88
89 /* Assert the L1 cache in reset */
90 reg = readl(cpucfg_membase + CPUCFG_GEN_CTRL_REG);
91 writel(reg & ~BIT(cpu), cpucfg_membase + CPUCFG_GEN_CTRL_REG);

--- 65 unchanged lines hidden (view full) ---

157 u32 reg;
158
159 if (!(prcm_membase && cpucfg_membase))
160 return -EFAULT;
161
162 spin_lock(&cpu_lock);
163
164 /* Set CPU boot address */
165 writel(virt_to_phys(secondary_startup),
165 writel(__pa_symbol(secondary_startup),
166 cpucfg_membase + CPUCFG_PRIVATE0_REG);
167
168 /* Assert the CPU core in reset */
169 writel(0, cpucfg_membase + CPUCFG_CPU_RST_CTRL_REG(cpu));
170
171 /* Assert the L1 cache in reset */
172 reg = readl(cpucfg_membase + CPUCFG_GEN_CTRL_REG);
173 writel(reg & ~BIT(cpu), cpucfg_membase + CPUCFG_GEN_CTRL_REG);

--- 19 unchanged lines hidden ---
166 cpucfg_membase + CPUCFG_PRIVATE0_REG);
167
168 /* Assert the CPU core in reset */
169 writel(0, cpucfg_membase + CPUCFG_CPU_RST_CTRL_REG(cpu));
170
171 /* Assert the L1 cache in reset */
172 reg = readl(cpucfg_membase + CPUCFG_GEN_CTRL_REG);
173 writel(reg & ~BIT(cpu), cpucfg_membase + CPUCFG_GEN_CTRL_REG);

--- 19 unchanged lines hidden ---