Hardware Performance Monitoring Counters provide programmers and systems integrators with the ability to gather accurate, low level, information about the performance of their code, both at the user and kernel levels. Until recently these counters were only available on Intel and AMD chips but they have now been made available on alternate, embedded, architectures such as MIPS and ARM. This paper discusses the motivation, design and implementation of counters using the hwpmc(4) driver in the FreeBSD operating system with an eye towards easing future porting efforts.