Lines Matching +full:0 +full:x349
77 #define HAMMERHEAD_BASE 0xf8000000
78 #define HHEAD_CONFIG 0x90
79 #define HHEAD_SEC_INTR 0xc0
83 #define PSURGE_PRI_INTR 0xf3019000
87 #define PSURGE_START 0xf2800000
90 #define PSURGE_QUAD_REG_ADDR 0xf8800000
92 #define PSURGE_QUAD_IRQ_SET 0
103 #define PSURGE_QUAD_IN(r) (in_8(quad_base + ((r) << 4) + 4) & 0x0f)
116 #define PSURGE_DUAL 0
135 if (cpu == 0) in psurge_set_ipi()
138 out_8(psurge_sec_intr, 0); in psurge_set_ipi()
145 if (cpu > 0) { in psurge_clr_ipi()
148 out_8(psurge_sec_intr, ~0); in psurge_clr_ipi()
181 return 0; in psurge_host_map()
192 psurge_host = irq_domain_add_nomap(NULL, ~0, &psurge_host_ops, NULL); in psurge_secondary_ipi_init()
225 for (i = 0; i < 100; i++) { in psurge_quad_probe()
227 bogus[(0+i)%8] = 0x00000000; in psurge_quad_probe()
228 bogus[(1+i)%8] = 0x55555555; in psurge_quad_probe()
229 bogus[(2+i)%8] = 0xFFFFFFFF; in psurge_quad_probe()
230 bogus[(3+i)%8] = 0xAAAAAAAA; in psurge_quad_probe()
231 bogus[(4+i)%8] = 0x33333333; in psurge_quad_probe()
232 bogus[(5+i)%8] = 0xCCCCCCCC; in psurge_quad_probe()
233 bogus[(6+i)%8] = 0xCCCCCCCC; in psurge_quad_probe()
234 bogus[(7+i)%8] = 0x33333333; in psurge_quad_probe()
236 asm volatile("dcbf 0,%0" : : "r" (bogus) : "memory"); in psurge_quad_probe()
248 if (ppc_md.progress) ppc_md.progress("psurge_quad_init", 0x351); in psurge_quad_init()
255 out_8(psurge_sec_intr, ~0); in psurge_quad_init()
288 hhead_base = ioremap(HAMMERHEAD_BASE, 0x800); in smp_psurge_probe()
302 if ((in_8(hhead_base + HHEAD_CONFIG) & 0x02) == 0) { in smp_psurge_probe()
327 if (ppc_md.progress) ppc_md.progress("smp_psurge_probe - done", 0x352); in smp_psurge_probe()
343 for (a = KERNELBASE; a < KERNELBASE + 0x800000; a += 32) in smp_psurge_kick_cpu()
344 asm volatile("dcbf 0,%0" : : "r" (a) : "memory"); in smp_psurge_kick_cpu()
347 if (ppc_md.progress) ppc_md.progress("smp_psurge_kick_cpu", 0x353); in smp_psurge_kick_cpu()
360 for (i = 0; i < 2000; ++i) in smp_psurge_kick_cpu()
369 for (i = 0; i < 100000 && !cpu_callin_map[nr]; ++i) { in smp_psurge_kick_cpu()
381 tb_req = 0; in smp_psurge_kick_cpu()
394 if (ppc_md.progress) ppc_md.progress("smp_psurge_kick_cpu - done", 0x354); in smp_psurge_kick_cpu()
396 return 0; in smp_psurge_kick_cpu()
404 if (cpu_nr != 0 || !psurge_start) in smp_psurge_setup_cpu()
409 out_be32(psurge_start, 0x100); in smp_psurge_setup_cpu()
425 set_tb(timebase >> 32, timebase & 0xffffffff); in smp_psurge_take_timebase()
426 timebase = 0; in smp_psurge_take_timebase()
462 tb_req = 0; in smp_core99_give_timebase()
470 (*pmac_tb_freeze)(0); in smp_core99_give_timebase()
488 set_tb(timebase >> 32, timebase & 0xffffffff); in smp_core99_take_timebase()
489 timebase = 0; in smp_core99_take_timebase()
507 /* Strangely, the device-tree says address is 0xd2, but darwin in smp_core99_cypress_tb_freeze()
508 * accesses 0xd0 ... in smp_core99_cypress_tb_freeze()
513 0xd0 | pmac_i2c_read, in smp_core99_cypress_tb_freeze()
514 1, 0x81, &data, 1); in smp_core99_cypress_tb_freeze()
515 if (rc != 0) in smp_core99_cypress_tb_freeze()
518 data = (data & 0xf3) | (freeze ? 0x00 : 0x0c); in smp_core99_cypress_tb_freeze()
522 0xd0 | pmac_i2c_write, in smp_core99_cypress_tb_freeze()
523 1, 0x81, &data, 1); in smp_core99_cypress_tb_freeze()
526 if (rc != 0) { in smp_core99_cypress_tb_freeze()
543 1, 0x2e, &data, 1); in smp_core99_pulsar_tb_freeze()
544 if (rc != 0) in smp_core99_pulsar_tb_freeze()
547 data = (data & 0x88) | (freeze ? 0x11 : 0x22); in smp_core99_pulsar_tb_freeze()
552 1, 0x2e, &data, 1); in smp_core99_pulsar_tb_freeze()
554 if (rc != 0) { in smp_core99_pulsar_tb_freeze()
584 case 0xd2: in smp_core99_setup_i2c_hwsync()
587 pmac_tb_pulsar_addr = 0xd2; in smp_core99_setup_i2c_hwsync()
594 case 0xd4: in smp_core99_setup_i2c_hwsync()
596 pmac_tb_pulsar_addr = 0xd4; in smp_core99_setup_i2c_hwsync()
633 args.u[0].v = !freeze; in smp_core99_pfunc_tb_freeze()
651 pmac_call_feature(PMAC_FTR_WRITE_GPIO, NULL, core99_tb_gpio, 0); in smp_core99_gpio_tb_freeze()
652 pmac_call_feature(PMAC_FTR_READ_GPIO, NULL, core99_tb_gpio, 0); in smp_core99_gpio_tb_freeze()
668 if (cpu == 0) { in core99_init_caches()
673 _set_L2CR(0); in core99_init_caches()
681 if (cpu == 0){ in core99_init_caches()
686 _set_L3CR(0); in core99_init_caches()
732 " GPIO 0x%02x\n", core99_tb_gpio); in smp_core99_setup()
756 powersave_nap = 0; in smp_core99_setup()
762 int ncpus = 0; in smp_core99_probe()
764 if (ppc_md.progress) ppc_md.progress("smp_core99_probe", 0x345); in smp_core99_probe()
788 /* Collect l2cr and l3cr values from CPU 0 */ in smp_core99_probe()
789 core99_init_caches(0); in smp_core99_probe()
796 unsigned int *vector = (unsigned int *)(PAGE_OFFSET+0x100); in smp_core99_kick_cpu()
798 if (nr < 0 || nr > 3) in smp_core99_kick_cpu()
802 ppc_md.progress("smp_core99_kick_cpu", 0x346); in smp_core99_kick_cpu()
816 pmac_call_feature(PMAC_FTR_RESET_CPU, NULL, nr, 0); in smp_core99_kick_cpu()
829 if (ppc_md.progress) ppc_md.progress("smp_core99_kick_cpu done", 0x347); in smp_core99_kick_cpu()
831 return 0; in smp_core99_kick_cpu()
837 if (cpu_nr != 0) in smp_core99_setup_cpu()
861 return 0; in smp_core99_cpu_prepare()
869 smp_core99_host_open = 0; in smp_core99_cpu_online()
871 return 0; in smp_core99_cpu_online()
900 ppc_md.progress("smp_core99_bringup_done", 0x349); in smp_core99_bringup_done()
912 mpic_cpu_set_priority(0xf); in smp_core99_cpu_disable()
916 return 0; in smp_core99_cpu_disable()
964 set_dec(0x7fffffff); in pmac_cpu_offline_self()