Exemplo n.º 1
0
static void meson_secondary_set(unsigned int cpu)
{
	meson_set_cpu_ctrl_addr(cpu,
		(const uint32_t)virt_to_phys(meson_secondary_startup));
	meson_set_cpu_ctrl_reg(cpu, 1);
	smp_wmb();	
	mb();
}
Exemplo n.º 2
0
void meson_cpu_die(unsigned int cpu)
{
	meson_set_cpu_ctrl_reg(cpu, 0);
	flush_cache_all();
	dsb();
	dmb();

	meson_cleanup();
	aml_set_reg32_bits(MESON_CPU_POWER_CTRL_REG,0x3,(cpu << 3),2);
	asm volatile(
		"dsb\n"
		"wfi\n"
	);
	BUG();
}