MCPcopy Create free account
hub / github.com/F-Stack/f-stack / xlp_get_cpu_frequency

Function xlp_get_cpu_frequency

freebsd/mips/nlm/hal/nlm_hal.c:44–62  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

42#include <mips/nlm/xlp.h>
43
44uint32_t
45xlp_get_cpu_frequency(int node, int core)
46{
47 uint64_t sysbase = nlm_get_sys_regbase(node);
48 unsigned int pll_divf, pll_divr, dfs_div, ext_div;
49 unsigned int rstval, dfsval;
50
51 rstval = nlm_read_sys_reg(sysbase, SYS_POWER_ON_RESET_CFG);
52 dfsval = nlm_read_sys_reg(sysbase, SYS_CORE_DFS_DIV_VALUE);
53 pll_divf = ((rstval >> 10) & 0x7f) + 1;
54 pll_divr = ((rstval >> 8) & 0x3) + 1;
55 if (!nlm_is_xlp8xx_ax())
56 ext_div = ((rstval >> 30) & 0x3) + 1;
57 else
58 ext_div = 1;
59 dfs_div = ((dfsval >> (core << 2)) & 0xf) + 1;
60
61 return ((800000000ULL * pll_divf)/(3 * pll_divr * ext_div * dfs_div));
62}
63
64static u_int
65nlm_get_device_frequency(uint64_t sysbase, int devtype)

Callers 1

platform_startFunction · 0.85

Calls 1

nlm_is_xlp8xx_axFunction · 0.85

Tested by

no test coverage detected