Lines Matching +full:non +full:- +full:armv7
1 /*-
6 * Cambridge Computer Laboratory under DARPA/AFRL contract (FA8750-10-C-0237)
49 * Per-processor information.
142 ("[armv7,%d] illegal CPU value %d", __LINE__, cpu)); in armv7_allocate_pmc()
144 ("[armv7,%d] illegal row index %d", __LINE__, ri)); in armv7_allocate_pmc()
146 if (a->pm_class != PMC_CLASS_ARMV7) in armv7_allocate_pmc()
148 pe = a->pm_ev; in armv7_allocate_pmc()
151 pm->pm_md.pm_armv7.pm_armv7_evsel = config; in armv7_allocate_pmc()
153 PMCDBG2(MDP, ALL, 2, "armv7-allocate ri=%d -> config=0x%x", ri, config); in armv7_allocate_pmc()
167 ("[armv7,%d] illegal CPU value %d", __LINE__, cpu)); in armv7_read_pmc()
169 ("[armv7,%d] illegal row index %d", __LINE__, ri)); in armv7_read_pmc()
172 tmp = armv7_pmcn_read(ri, pm->pm_md.pm_armv7.pm_armv7_evsel); in armv7_read_pmc()
175 if (pm->pm_md.pm_armv7.pm_armv7_evsel == PMC_EV_CPU_CYCLES) in armv7_read_pmc()
183 pm->pm_pcpu_state[cpu].pps_overflowcnt++; in armv7_read_pmc()
186 tmp = armv7_pmcn_read(ri, pm->pm_md.pm_armv7.pm_armv7_evsel); in armv7_read_pmc()
188 tmp += 0x100000000llu * pm->pm_pcpu_state[cpu].pps_overflowcnt; in armv7_read_pmc()
191 PMCDBG2(MDP, REA, 2, "armv7-read id=%d -> %jd", ri, tmp); in armv7_read_pmc()
213 ("[armv7,%d] illegal CPU value %d", __LINE__, cpu)); in armv7_write_pmc()
215 ("[armv7,%d] illegal row-index %d", __LINE__, ri)); in armv7_write_pmc()
220 PMCDBG3(MDP, WRI, 1, "armv7-write cpu=%d ri=%d v=%jx", cpu, ri, v); in armv7_write_pmc()
222 pm->pm_pcpu_state[cpu].pps_overflowcnt = v >> 32; in armv7_write_pmc()
223 if (pm->pm_md.pm_armv7.pm_armv7_evsel == PMC_EV_CPU_CYCLES) in armv7_write_pmc()
239 ("[armv7,%d] illegal CPU value %d", __LINE__, cpu)); in armv7_config_pmc()
241 ("[armv7,%d] illegal row-index %d", __LINE__, ri)); in armv7_config_pmc()
243 phw = &armv7_pcpu[cpu]->pc_armv7pmcs[ri]; in armv7_config_pmc()
245 KASSERT(pm == NULL || phw->phw_pmc == NULL, in armv7_config_pmc()
246 ("[armv7,%d] pm=%p phw->pm=%p hwpmc not unconfigured", in armv7_config_pmc()
247 __LINE__, pm, phw->phw_pmc)); in armv7_config_pmc()
249 phw->phw_pmc = pm; in armv7_config_pmc()
259 config = pm->pm_md.pm_armv7.pm_armv7_evsel; in armv7_start_pmc()
284 config = pm->pm_md.pm_armv7.pm_armv7_evsel; in armv7_stop_pmc()
303 ("[armv7,%d] illegal CPU value %d", __LINE__, cpu)); in armv7_release_pmc()
305 ("[armv7,%d] illegal row-index %d", __LINE__, ri)); in armv7_release_pmc()
307 phw = &armv7_pcpu[cpu]->pc_armv7pmcs[ri]; in armv7_release_pmc()
308 KASSERT(phw->phw_pmc == NULL, in armv7_release_pmc()
309 ("[armv7,%d] PHW pmc %p non-NULL", __LINE__, phw->phw_pmc)); in armv7_release_pmc()
324 ("[armv7,%d] CPU %d out of range", __LINE__, cpu)); in armv7_intr()
329 pm = armv7_pcpu[cpu]->pc_armv7pmcs[ri].phw_pmc; in armv7_intr()
334 if (pm->pm_md.pm_armv7.pm_armv7_evsel == PMC_EV_CPU_CYCLES) in armv7_intr()
348 pm->pm_pcpu_state[cpu].pps_overflowcnt += 1; in armv7_intr()
353 if (pm->pm_state != PMC_STATE_RUNNING) in armv7_intr()
361 armv7_write_pmc(cpu, ri, pm, pm->pm_sc.pm_reloadcount); in armv7_intr()
373 ("[armv7,%d], illegal CPU %d", __LINE__, cpu)); in armv7_describe()
375 ("[armv7,%d] row-index %d out of range", __LINE__, ri)); in armv7_describe()
377 phw = &armv7_pcpu[cpu]->pc_armv7pmcs[ri]; in armv7_describe()
379 snprintf(pi->pm_name, sizeof(pi->pm_name), "ARMV7-%d", ri); in armv7_describe()
380 pi->pm_class = PMC_CLASS_ARMV7; in armv7_describe()
382 if (phw->phw_state & PMC_PHW_FLAG_IS_ENABLED) { in armv7_describe()
383 pi->pm_enabled = TRUE; in armv7_describe()
384 *ppmc = phw->phw_pmc; in armv7_describe()
386 pi->pm_enabled = FALSE; in armv7_describe()
397 *ppm = armv7_pcpu[cpu]->pc_armv7pmcs[ri].phw_pmc; in armv7_get_config()
413 ("[armv7,%d] wrong cpu number %d", __LINE__, cpu)); in armv7_pcpu_init()
414 PMCDBG0(MDP, INI, 1, "armv7-pcpu-init"); in armv7_pcpu_init()
419 pac->pc_armv7pmcs = malloc(sizeof(struct pmc_hw) * armv7_npmcs, in armv7_pcpu_init()
422 first_ri = md->pmd_classdep[PMC_MDEP_CLASS_INDEX_ARMV7].pcd_ri; in armv7_pcpu_init()
423 KASSERT(pc != NULL, ("[armv7,%d] NULL per-cpu pointer", __LINE__)); in armv7_pcpu_init()
425 for (i = 0, phw = pac->pc_armv7pmcs; i < armv7_npmcs; i++, phw++) { in armv7_pcpu_init()
426 phw->phw_state = PMC_PHW_FLAG_IS_ENABLED | in armv7_pcpu_init()
428 phw->phw_pmc = NULL; in armv7_pcpu_init()
429 pc->pc_hwpmcs[i + first_ri] = phw; in armv7_pcpu_init()
450 PMCDBG0(MDP, INI, 1, "armv7-pcpu-fini"); in armv7_pcpu_fini()
461 free(armv7_pcpu[cpu]->pc_armv7pmcs, M_PMC); in armv7_pcpu_fini()
481 PMCDBG1(MDP, INI, 1, "armv7-init npmcs=%d", armv7_npmcs); in pmc_armv7_initialize()
495 pmc_mdep->pmd_cputype = PMC_CPU_ARMV7_CORTEX_A9; in pmc_armv7_initialize()
503 pmc_mdep->pmd_cputype = PMC_CPU_ARMV7_CORTEX_A8; in pmc_armv7_initialize()
507 pcd = &pmc_mdep->pmd_classdep[PMC_MDEP_CLASS_INDEX_ARMV7]; in pmc_armv7_initialize()
508 pcd->pcd_caps = ARMV7_PMC_CAPS; in pmc_armv7_initialize()
509 pcd->pcd_class = PMC_CLASS_ARMV7; in pmc_armv7_initialize()
510 pcd->pcd_num = armv7_npmcs; in pmc_armv7_initialize()
511 pcd->pcd_ri = pmc_mdep->pmd_npmc; in pmc_armv7_initialize()
512 pcd->pcd_width = 32; in pmc_armv7_initialize()
514 pcd->pcd_allocate_pmc = armv7_allocate_pmc; in pmc_armv7_initialize()
515 pcd->pcd_config_pmc = armv7_config_pmc; in pmc_armv7_initialize()
516 pcd->pcd_pcpu_fini = armv7_pcpu_fini; in pmc_armv7_initialize()
517 pcd->pcd_pcpu_init = armv7_pcpu_init; in pmc_armv7_initialize()
518 pcd->pcd_describe = armv7_describe; in pmc_armv7_initialize()
519 pcd->pcd_get_config = armv7_get_config; in pmc_armv7_initialize()
520 pcd->pcd_read_pmc = armv7_read_pmc; in pmc_armv7_initialize()
521 pcd->pcd_release_pmc = armv7_release_pmc; in pmc_armv7_initialize()
522 pcd->pcd_start_pmc = armv7_start_pmc; in pmc_armv7_initialize()
523 pcd->pcd_stop_pmc = armv7_stop_pmc; in pmc_armv7_initialize()
524 pcd->pcd_write_pmc = armv7_write_pmc; in pmc_armv7_initialize()
526 pmc_mdep->pmd_intr = armv7_intr; in pmc_armv7_initialize()
527 pmc_mdep->pmd_npmc += armv7_npmcs; in pmc_armv7_initialize()
535 PMCDBG0(MDP, INI, 1, "armv7-finalize"); in pmc_armv7_finalize()
539 ("[armv7,%d] non-null pcpu cpu %d", __LINE__, i)); in pmc_armv7_finalize()