74bf659c83
Add hwpmc(4) support for the PowerPC 970 class processors, direct events. This also fixes asserts on removal of the module for the mpc74xx. The PowerPC 970 processors have two different types of events: direct events and indirect events. Thus far only direct events are supported. I included some documentation in the driver on how indirect events work, but support is for the future.
39 lines
693 B
C
39 lines
693 B
C
/*-
|
|
* This file is in the public domain.
|
|
*
|
|
* $FreeBSD$
|
|
*/
|
|
|
|
#ifndef _MACHINE_PMC_MDEP_H_
|
|
#define _MACHINE_PMC_MDEP_H_
|
|
|
|
#define PMC_MDEP_CLASS_INDEX_CPU 1
|
|
#define PMC_MDEP_CLASS_INDEX_PPC7450 1
|
|
#define PMC_MDEP_CLASS_INDEX_PPC970 1
|
|
|
|
union pmc_md_op_pmcallocate {
|
|
uint64_t __pad[4];
|
|
};
|
|
|
|
/* Logging */
|
|
#define PMCLOG_READADDR PMCLOG_READ32
|
|
#define PMCLOG_EMITADDR PMCLOG_EMIT32
|
|
|
|
#if _KERNEL
|
|
|
|
struct pmc_md_powerpc_pmc {
|
|
uint32_t pm_powerpc_evsel;
|
|
};
|
|
|
|
union pmc_md_pmc {
|
|
struct pmc_md_powerpc_pmc pm_powerpc;
|
|
};
|
|
|
|
#define PMC_TRAPFRAME_TO_PC(TF) ((TF)->srr0)
|
|
#define PMC_TRAPFRAME_TO_FP(TF) ((TF)->fixreg[1])
|
|
#define PMC_TRAPFRAME_TO_SP(TF) (0)
|
|
|
|
#endif
|
|
|
|
#endif /* !_MACHINE_PMC_MDEP_H_ */
|