Lines Matching defs:cpu
40 void spm_enable_cpu_auto_off(int cluster, int cpu)
42 uintptr_t reg = per_cpu(cluster, cpu, MCUCFG_SPARK);
48 void spm_disable_cpu_auto_off(int cluster, int cpu)
50 uintptr_t reg = per_cpu(cluster, cpu, MCUCFG_SPARK);
56 void spm_set_cpu_power_off(int cluster, int cpu)
58 mmio_clrbits_32(per_cpu(cluster, cpu, SPM_CPU_PWR), PWRCTRL_PWR_ON);
73 void mcucfg_set_bootaddr(int cluster, int cpu, uintptr_t bootaddr)
81 assert(cpu >= 0 && cpu < 4);
82 reg = mp2_bootreg[cpu];
84 reg = per_cpu(cluster, cpu, MCUCFG_BOOTADDR);
90 uintptr_t mcucfg_get_bootaddr(int cluster, int cpu)
98 assert(cpu >= 0 && cpu < 4);
99 reg = mp2_bootreg[cpu];
101 reg = per_cpu(cluster, cpu, MCUCFG_BOOTADDR);
107 void mcucfg_init_archstate(int cluster, int cpu, int arm64)
115 mmio_setbits_32(reg, (arm64 & 1) << (i + cpu));
141 int spm_get_cpu_powerstate(int cluster, int cpu)
146 * a quick way to specify the mask of cpu[0-3]/cpu[4-7] in PWR_STATUS
151 i = 1 << (i + cpu);
201 * @cpu: the CPU ID of the CPU which to be powered on
203 void spm_poweron_cpu(int cluster, int cpu)
205 INFO("spmc: power on core %d.%d\n", cluster, cpu);
211 mmio_setbits_32(per_cpu(cluster, cpu, SPM_CPU_PWR), PWRCTRL_PWR_RST_B);
214 mmio_setbits_32(per_cpu(cluster, cpu, SPM_CPU_PWR), PWRCTRL_PWR_ON);
217 while (!spm_get_cpu_powerstate(cluster, cpu))
221 INFO("spmc: power on core %d.%d successfully\n", cluster, cpu);
228 * @cpu: the CPU ID of the CPU which to be powered off
230 void spm_poweroff_cpu(int cluster, int cpu)
232 INFO("spmc: power off core %d.%d\n", cluster, cpu);
236 mmio_clrbits_32(per_cpu(cluster, cpu, SPM_CPU_PWR), PWRCTRL_PWR_ON_2ND);
239 mmio_clrbits_32(per_cpu(cluster, cpu, SPM_CPU_PWR), PWRCTRL_PWR_ON);
242 while (spm_get_cpu_powerstate(cluster, cpu))
246 mmio_clrbits_32(per_cpu(cluster, cpu, SPM_CPU_PWR), PWRCTRL_PWR_RST_B);
249 INFO("spmc: power off core %d.%d successfully\n", cluster, cpu);