| /* SPDX-License-Identifier: GPL-2.0-only */ |
| /* |
| * GXP bus performance monitor interface. |
| * |
| * Copyright (C) 2021 Google LLC |
| */ |
| #ifndef __GXP_BPM_H__ |
| #define __GXP_BPM_H__ |
| |
| #include "gxp-internal.h" |
| |
| /* |
| * Available BPMs |
| * |
| * Passed to gxp_bpm_configure() and gxp_bpm_read_counter() to specify |
| * which BPM to use: instruction, data, or DMA. |
| */ |
| #define INST_BPM_OFFSET 0x0000 |
| #define DATA_BPM_OFFSET 0x1000 |
| #define IDMA_BPM_OFFSET 0x2000 |
| |
| /* |
| * Available BPM Events |
| * |
| * Passed to gxp_bpm_configure() to specify the type of event being counted. |
| */ |
| #define BPM_EVENT_ADDR_READ 0x0 |
| #define BPM_EVENT_ADDR_WRITE 0x1 |
| #define BPM_EVENT_WRITE_XFER 0x2 |
| #define BPM_EVENT_READ_XFER 0x3 |
| |
| void gxp_bpm_configure(struct gxp_dev *gxp, u8 core, u32 bpm_offset, u32 event); |
| void gxp_bpm_start(struct gxp_dev *gxp, u8 core); |
| void gxp_bpm_stop(struct gxp_dev *gxp, u8 core); |
| u32 gxp_bpm_read_counter(struct gxp_dev *gxp, u8 core, u32 bpm_offset); |
| |
| #endif /* __GXP_BPM_H__ */ |