From: MANNURU VENKATESWARLU <v-mannuru@ti.com>
To: <peterz@infradead.org>, <mingo@redhat.com>, <acme@kernel.org>
Cc: <linux-arm-kernel@lists.infradead.org>,
<linux-perf-users@vger.kernel.org>, <n-francis@ti.com>,
<s-k6@ti.com>, <bb@ti.com>, <v-mannuru@ti.com>
Subject: [RFC PATCH 19/22] perf/events: arm64: ti: Add AM62A DDR performance events
Date: Tue, 14 Jul 2026 18:26:32 +0530 [thread overview]
Message-ID: <20260714125635.3304437-3-v-mannuru@ti.com> (raw)
In-Reply-To: <20260714125635.3304437-1-v-mannuru@ti.com>
From: Aarya Chaumal <a-chaumal@ti.com>
Add perf JSON event and metric definitions for the AM62A
DDR controller PMU.
Signed-off-by: MANNURU VENKATESWARLU <v-mannuru@ti.com>
Signed-off-by: Aarya Chaumal <a-chaumal@ti.com>
---
.../arch/arm64/ti/am62a/sys/ddrc.json | 240 ++++++++++++++++++
.../arch/arm64/ti/am62a/sys/metrics.json | 34 +++
2 files changed, 274 insertions(+)
create mode 100644 tools/perf/pmu-events/arch/arm64/ti/am62a/sys/ddrc.json
create mode 100644 tools/perf/pmu-events/arch/arm64/ti/am62a/sys/metrics.json
diff --git a/tools/perf/pmu-events/arch/arm64/ti/am62a/sys/ddrc.json b/tools/perf/pmu-events/arch/arm64/ti/am62a/sys/ddrc.json
new file mode 100644
index 0000000000000..0322e3c4a73c4
--- /dev/null
+++ b/tools/perf/pmu-events/arch/arm64/ti/am62a/sys/ddrc.json
@@ -0,0 +1,240 @@
+[
+ {
+ "BriefDescription": "Counts every Write command",
+ "EventCode": "0x00",
+ "EventName": "k3_ddr.write",
+ "Unit": "k3_ddr",
+ "Compat": "AM62A"
+ },
+ {
+ "BriefDescription": "Counts every Read command",
+ "EventCode": "0x01",
+ "EventName": "k3_ddr.read",
+ "Unit": "k3_ddr",
+ "Compat": "AM62A"
+ },
+ {
+ "BriefDescription": "Counts every read as a result of a RMW command",
+ "EventCode": "0x02",
+ "EventName": "k3_ddr.read_rmw",
+ "Unit": "k3_ddr",
+ "Compat": "AM62A"
+ },
+ {
+ "BriefDescription": "Counts every Activate command",
+ "EventCode": "0x03",
+ "EventName": "k3_ddr.activate",
+ "Unit": "k3_ddr",
+ "Compat": "AM62A"
+ },
+ {
+ "BriefDescription": "Counts every Precharge command",
+ "EventCode": "0x04",
+ "EventName": "k3_ddr.precharge",
+ "Unit": "k3_ddr",
+ "Compat": "AM62A"
+ },
+ {
+ "BriefDescription": "Counts every Precharge All command",
+ "EventCode": "0x05",
+ "EventName": "k3_ddr.precharge_all",
+ "Unit": "k3_ddr",
+ "Compat": "AM62A"
+ },
+ {
+ "BriefDescription": "Counts every Mode Register Read command",
+ "EventCode": "0x06",
+ "EventName": "k3_ddr.mode_reg_read",
+ "Unit": "k3_ddr",
+ "Compat": "AM62A"
+ },
+ {
+ "BriefDescription": "Counts every Mode Register Write command",
+ "EventCode": "0x07",
+ "EventName": "k3_ddr.mode_reg_write",
+ "Unit": "k3_ddr",
+ "Compat": "AM62A"
+ },
+ {
+ "BriefDescription": "Counts every Per Bank Refresh command",
+ "EventCode": "0x08",
+ "EventName": "k3_ddr.per_bank_refresh",
+ "Unit": "k3_ddr",
+ "Compat": "AM62A"
+ },
+ {
+ "BriefDescription": "Counts every Auto Refresh command",
+ "EventCode": "0x09",
+ "EventName": "k3_ddr.auto_refresh",
+ "Unit": "k3_ddr",
+ "Compat": "AM62A"
+ },
+ {
+ "BriefDescription": "Counts every ZQ Calib Long command",
+ "EventCode": "0x0a",
+ "EventName": "k3_ddr.zq_calib_long",
+ "Unit": "k3_ddr",
+ "Compat": "AM62A"
+ },
+ {
+ "BriefDescription": "Counts every ZQ Calib Short command",
+ "EventCode": "0x0b",
+ "EventName": "k3_ddr.zq_calib_short",
+ "Unit": "k3_ddr",
+ "Compat": "AM62A"
+ },
+ {
+ "BriefDescription": "Counts every Write-to-Read and Read-to-Write bus-turn-around",
+ "EventCode": "0x0c",
+ "EventName": "k3_ddr.bus_turn_around",
+ "Unit": "k3_ddr",
+ "Compat": "AM62A"
+ },
+ {
+ "BriefDescription": "Counts every Write-to-Write address collision",
+ "EventCode": "0x0d",
+ "EventName": "k3_ddr.write_write_collision",
+ "Unit": "k3_ddr",
+ "Compat": "AM62A"
+ },
+ {
+ "BriefDescription": "Counts every Write-to-Read address collision",
+ "EventCode": "0x0e",
+ "EventName": "k3_ddr.write_read_collision",
+ "Unit": "k3_ddr",
+ "Compat": "AM62A"
+ },
+ {
+ "BriefDescription": "Counts every Read-to-Write address collision",
+ "EventCode": "0x0f",
+ "EventName": "k3_ddr.read_write_collision",
+ "Unit": "k3_ddr",
+ "Compat": "AM62A"
+ },
+ {
+ "BriefDescription": "Counts every Read-to-Read address collision",
+ "EventCode": "0x10",
+ "EventName": "k3_ddr.read_read_collision",
+ "Unit": "k3_ddr",
+ "Compat": "AM62A"
+ },
+ {
+ "BriefDescription": "Counts every exit from Power-Down Self-Refresh mode",
+ "EventCode": "0x11",
+ "EventName": "k3_ddr.exit_power_down_self_refresh",
+ "Unit": "k3_ddr",
+ "Compat": "AM62A"
+ },
+ {
+ "BriefDescription": "Counts every entry into Power-Down Self-Refresh mode",
+ "EventCode": "0x12",
+ "EventName": "k3_ddr.entry_power_down_self_refresh",
+ "Unit": "k3_ddr",
+ "Compat": "AM62A"
+ },
+ {
+ "BriefDescription": "Counts every cycle for which the DDR Controller stays in Power-Down Self-Refresh mode",
+ "EventCode": "0x13",
+ "EventName": "k3_ddr.power_down_self_refresh_cycles",
+ "Unit": "k3_ddr",
+ "Compat": "AM62A"
+ },
+ {
+ "BriefDescription": "Counts every exit from Power-Down mode",
+ "EventCode": "0x14",
+ "EventName": "k3_ddr.exit_power_down",
+ "Unit": "k3_ddr",
+ "Compat": "AM62A"
+ },
+ {
+ "BriefDescription": "Counts every entry into Power-Down mode",
+ "EventCode": "0x15",
+ "EventName": "k3_ddr.entry_power_down",
+ "Unit": "k3_ddr",
+ "Compat": "AM62A"
+ },
+ {
+ "BriefDescription": "Counts every cycle for which the DDR Controller stays in Power-Down mode",
+ "EventCode": "0x16",
+ "EventName": "k3_ddr.power_down_cycles",
+ "Unit": "k3_ddr",
+ "Compat": "AM62A"
+ },
+ {
+ "BriefDescription": "Counts every exit from Self-Refresh mode",
+ "EventCode": "0x17",
+ "EventName": "k3_ddr.exit_self_refresh",
+ "Unit": "k3_ddr",
+ "Compat": "AM62A"
+ },
+ {
+ "BriefDescription": "Counts every entry into Self-Refresh mode",
+ "EventCode": "0x18",
+ "EventName": "k3_ddr.entry_self_refresh",
+ "Unit": "k3_ddr",
+ "Compat": "AM62A"
+ },
+ {
+ "BriefDescription": "Counts every cycle for which the DDR Controller stays in Self-Refresh mode",
+ "EventCode": "0x19",
+ "EventName": "k3_ddr.self_refresh_cycles",
+ "Unit": "k3_ddr",
+ "Compat": "AM62A"
+ },
+ {
+ "BriefDescription": "Counts every cycle for which the DDR Controller command queue is full",
+ "EventCode": "0x1c",
+ "EventName": "k3_ddr.command_queue_full_cycles",
+ "Unit": "k3_ddr",
+ "Compat": "AM62A"
+ },
+ {
+ "BriefDescription": "Counts every cycle for which the DDR Controller info FIFO is full",
+ "EventCode": "0x1d",
+ "EventName": "k3_ddr.info_fifo_full_cycles",
+ "Unit": "k3_ddr",
+ "Compat": "AM62A"
+ },
+ {
+ "BriefDescription": "Counts every cycle for which the DDR Controller write latency FIFO is full",
+ "EventCode": "0x1e",
+ "EventName": "k3_ddr.write_latency_fifo_full_cycles",
+ "Unit": "k3_ddr",
+ "Compat": "AM62A"
+ },
+ {
+ "BriefDescription": "Counts every cycle for which the DDR Controller port command FIFO is full",
+ "EventCode": "0x1f",
+ "EventName": "k3_ddr.port_command_fifo_full_cycles",
+ "Unit": "k3_ddr",
+ "Compat": "AM62A"
+ },
+ {
+ "BriefDescription": "Counts every cycle for which the DDR Controller write response FIFO is full",
+ "EventCode": "0x20",
+ "EventName": "k3_ddr.write_response_fifo_full_cycles",
+ "Unit": "k3_ddr",
+ "Compat": "AM62A"
+ },
+ {
+ "BriefDescription": "Counts every cycle for which the DDR Controller port write FIFO is full",
+ "EventCode": "0x21",
+ "EventName": "k3_ddr.port_write_fifo_full_cycles",
+ "Unit": "k3_ddr",
+ "Compat": "AM62A"
+ },
+ {
+ "BriefDescription": "Counts every cycle for which the DDR Controller core read FIFO is full",
+ "EventCode": "0x22",
+ "EventName": "k3_ddr.core_read_fifo_full_cycles",
+ "Unit": "k3_ddr",
+ "Compat": "AM62A"
+ },
+ {
+ "BriefDescription": "Counts every cycle for which the DDR Controller port read FIFO is full",
+ "EventCode": "0x23",
+ "EventName": "k3_ddr.port_read_fifo_full_cycles",
+ "Unit": "k3_ddr",
+ "Compat": "AM62A"
+ }
+]
diff --git a/tools/perf/pmu-events/arch/arm64/ti/am62a/sys/metrics.json b/tools/perf/pmu-events/arch/arm64/ti/am62a/sys/metrics.json
new file mode 100644
index 0000000000000..51f4c8a690828
--- /dev/null
+++ b/tools/perf/pmu-events/arch/arm64/ti/am62a/sys/metrics.json
@@ -0,0 +1,34 @@
+[
+ {
+ "BriefDescription": "DDR memory read bandwidth in MB/s (32-bit bus, BL16)",
+ "MetricExpr": "(k3_ddr.read * 64) / (duration_time * 1e6)",
+ "MetricGroup": "ddr",
+ "MetricName": "k3_ddr_am62a.read_bandwidth_mbytes_sec",
+ "ScaleUnit": "1MB/s",
+ "Compat": "AM62A"
+ },
+ {
+ "BriefDescription": "DDR memory write bandwidth in MB/s (32-bit bus, BL16)",
+ "MetricExpr": "(k3_ddr.write * 64) / (duration_time * 1e6)",
+ "MetricGroup": "ddr",
+ "MetricName": "k3_ddr_am62a.write_bandwidth_mbytes_sec",
+ "ScaleUnit": "1MB/s",
+ "Compat": "AM62A"
+ },
+ {
+ "BriefDescription": "Average DDR read requests per second",
+ "MetricExpr": "k3_ddr.read / duration_time",
+ "MetricGroup": "ddr",
+ "MetricName": "k3_ddr_am62a.read_requests_per_sec",
+ "ScaleUnit": "1reads/sec",
+ "Compat": "AM62A"
+ },
+ {
+ "BriefDescription": "Average DDR write requests per second",
+ "MetricExpr": "k3_ddr.write / duration_time",
+ "MetricGroup": "ddr",
+ "MetricName": "k3_ddr_am62a.write_requests_per_sec",
+ "ScaleUnit": "1writes/sec",
+ "Compat": "AM62A"
+ }
+]
--
2.34.1
next prev parent reply other threads:[~2026-07-14 12:57 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-14 12:56 [RFC PATCH 17/22] perf/events: arm64: ti: Add J7 DDR performance events MANNURU VENKATESWARLU
2026-07-14 12:56 ` [RFC PATCH 18/22] perf/events: arm64: ti: Add AM62 " MANNURU VENKATESWARLU
2026-07-14 12:56 ` MANNURU VENKATESWARLU [this message]
2026-07-14 12:56 ` [RFC PATCH 20/22] perf/events: arm64: ti: Add AM62P " MANNURU VENKATESWARLU
2026-07-14 12:56 ` [RFC PATCH 21/22] perf/events: arm64: ti: Add AM64 " MANNURU VENKATESWARLU
2026-07-14 12:56 ` [RFC PATCH 22/22] tools/perf: jevents: Add k3_ddr to JSON unit table MANNURU VENKATESWARLU
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260714125635.3304437-3-v-mannuru@ti.com \
--to=v-mannuru@ti.com \
--cc=acme@kernel.org \
--cc=bb@ti.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=n-francis@ti.com \
--cc=peterz@infradead.org \
--cc=s-k6@ti.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox