static void __init ebony_calibrate_decr(void) { unsigned int freq; /* * Determine system clock speed * * If we are on Rev. B silicon, then use * default external system clock. If we are * on Rev. C silicon then errata forces us to * use the internal clock. */ switch (PVR_REV(mfspr(PVR))) { case PVR_REV(PVR_440GP_RB): freq = EBONY_440GP_RB_SYSCLK; break; case PVR_REV(PVR_440GP_RC1): default: freq = EBONY_440GP_RC_SYSCLK; break; } ibm44x_calibrate_decr(freq); }
int get_cpuid(char *buffer, size_t sz) { unsigned long pvr; int nb; pvr = mfspr(SPRN_PVR); nb = scnprintf(buffer, sz, "%lu,%lu$", PVR_VER(pvr), PVR_REV(pvr)); /* */ if (strchr(buffer, '$')) { buffer[nb-1] = '\0'; return 0; } return -1; }
static void __init katana_setup_arch(void) { if (ppc_md.progress) ppc_md.progress("katana_setup_arch: enter", 0); set_tb(0, 0); #ifdef CONFIG_BLK_DEV_INITRD if (initrd_start) ROOT_DEV = Root_RAM0; else #endif #ifdef CONFIG_ROOT_NFS ROOT_DEV = Root_NFS; #else ROOT_DEV = Root_SDA2; #endif /* * Set up the L2CR register. * * 750FX has only L2E, L2PE (bits 2-8 are reserved) * DD2.0 has bug that requires the L2 to be in WRT mode * avoid dirty data in cache */ if (PVR_REV(mfspr(SPRN_PVR)) == 0x0200) { printk(KERN_INFO "DD2.0 detected. Setting L2 cache" "to Writethrough mode\n"); _set_L2CR(L2CR_L2E | L2CR_L2PE | L2CR_L2WT); } else _set_L2CR(L2CR_L2E | L2CR_L2PE); if (ppc_md.progress) ppc_md.progress("katana_setup_arch: calling setup_bridge", 0); katana_setup_bridge(); katana_setup_peripherals(); katana_enable_ipmi(); katana_bus_frequency = katana_bus_freq(cpld_base); printk(KERN_INFO "Artesyn Communication Products, LLC - Katana(TM)\n"); if (ppc_md.progress) ppc_md.progress("katana_setup_arch: exit", 0); }
int get_cpuid(char *buffer, size_t sz) { unsigned long pvr; int nb; pvr = mfspr(SPRN_PVR); nb = scnprintf(buffer, sz, "%lu,%lu$", PVR_VER(pvr), PVR_REV(pvr)); /* look for end marker to ensure the entire data fit */ if (strchr(buffer, '$')) { buffer[nb-1] = '\0'; return 0; } return -1; }