diff --git a/sys/powerpc/mpc85xx/mpc85xx.c b/sys/powerpc/mpc85xx/mpc85xx.c index f8c938f603a..1ab14e61af2 100644 --- a/sys/powerpc/mpc85xx/mpc85xx.c +++ b/sys/powerpc/mpc85xx/mpc85xx.c @@ -436,3 +436,18 @@ mpc85xx_fix_errata(vm_offset_t va_ccsr) err: return; } + +uint32_t +mpc85xx_get_system_clock(void) +{ + phandle_t soc; + uint32_t freq; + + soc = OF_finddevice("/soc"); + freq = 0; + + /* freq isn't modified on error. */ + OF_getencprop(soc, "bus-frequency", (void *)&freq, sizeof(freq)); + + return (freq / 2); +} diff --git a/sys/powerpc/mpc85xx/mpc85xx.h b/sys/powerpc/mpc85xx/mpc85xx.h index dd1f9b52ddb..692f70ca701 100644 --- a/sys/powerpc/mpc85xx/mpc85xx.h +++ b/sys/powerpc/mpc85xx/mpc85xx.h @@ -171,5 +171,6 @@ void mpc85xx_enable_l3_cache(void); void mpc85xx_fix_errata(vm_offset_t); void dataloss_erratum_access(vm_offset_t, uint32_t); int mpc85xx_is_qoriq(void); +uint32_t mpc85xx_get_system_clock(void); #endif /* _MPC85XX_H_ */