* [RFC PATCH 00/22] Add TI K3 DDR subsystem drivers and DT bindings
@ 2026-07-14 12:55 MANNURU VENKATESWARLU
0 siblings, 0 replies; only message in thread
From: MANNURU VENKATESWARLU @ 2026-07-14 12:55 UTC (permalink / raw)
To: linux-arm-kernel
Cc: linux-kernel, devicetree, linux-perf-users, mfd, n-francis, s-k6,
bb, v-mannuru
This series adds support for the DDR subsystem (DDRSS) on TI K3 SoCs,
which wraps a Cadence DDR controller. It introduces three drivers and
the associated DT bindings and DTS nodes.
The Cadence DDR controller (cdns,k3-ddr) handles the actual DRAM
interface. The TI DDRSS wrapper provides interrupt routing, subsystem
configuration registers (SSCFG), and performance counters. It is
modelled as an MFD device that instantiates two child drivers:
ti-ddrss-mr4: Reads the LPDDR4 MR4 temperature code on every TUF
interrupt and left-shifts the firmware-initialized baseline tRAS_MAX
and tREF values across all three FSPs. The baseline is the 0.25x
worst-case rate set at boot; cooler temperatures relax refresh to save
power, hotter temperatures restore the baseline to comply with JEDEC
LPDDR4 requirements.
ti-k3-ddr-pmu: Exposes 34 hardware performance counters per DDR
channel via the perf subsystem. JSON event and metric definitions are
provided for perf stat named-event support.
SoC coverage: J721E, J7200, J721S2, J784S4, AM62x, AM62Ax, AM62Px,
AM64x.
Tested on J721S2 EVM (kernel 7.2.0-rc2-next-20260708):
root@j721s2-evm:~# cat /sys/bus/platform/devices/ti-ddrss-mr4.*/refresh_status
2x refresh interval
2x refresh interval
root@j721s2-evm:~# perf stat -a \
-M k3_ddr_j7.read_bandwidth_mbytes_sec \
-M k3_ddr_j7.write_bandwidth_mbytes_sec \
stress-ng --vm 2 --vm-bytes 256M -t 10s
143668213 k3_ddr0/k3_ddr.write/ # 912.8 MB/s k3_ddr_j7.write_bandwidth_mbytes_sec
142802125 k3_ddr1/k3_ddr.write/ # 907.3 MB/s k3_ddr_j7.write_bandwidth_mbytes_sec
142443551 k3_ddr0/k3_ddr.read/ # 905.1 MB/s k3_ddr_j7.read_bandwidth_mbytes_sec
141198258 k3_ddr1/k3_ddr.read/ # 897.1 MB/s k3_ddr_j7.read_bandwidth_mbytes_sec
Aarya Chaumal (8):
dt-bindings: perf: ti,k3-ddr-pmu: Add K3 DDR PMU binding
perf: ti_k3_ddr: Add TI K3 DDR performance monitor driver
docs: perf: Add TI K3 DDR PMU documentation
perf/events: arm64: ti: Add AM62 DDR performance events
perf/events: arm64: ti: Add AM62A DDR performance events
perf/events: arm64: ti: Add AM62P DDR performance events
perf/events: arm64: ti: Add AM64 DDR performance events
tools/perf: jevents: Add k3_ddr to JSON unit table
Gandhar Deshpande (1):
arm64: dts: ti: k3-j7200: Add DDR node for j7200
MANNURU VENKATESWARLU (5):
dt-bindings: memory: cdns,k3-ddr: Add Cadence K3 DDR controller
binding
dt-bindings: memory: ti,j7-ddrss: Add TI K3 DDRSS wrapper binding
dt-bindings: memory: ti,j721s2-msmc: Add TI K3 MSMC binding
mfd: ti-ddrss: Add TI K3 DDR subsystem MFD core driver
perf/events: arm64: ti: Add J7 DDR performance events
Neha Malcom Francis (4):
arm64: dts: ti: k3-j721e: Add DDR and controller node
arm64: dts: ti: k3-j721s2-main: Add DDR nodes for J721S2
arm64: dts: ti: k3-j784s4-main: Add DDR nodes for J784S4
arm64: dts: ti: k3-am64: Add DDR and controller node
Santhosh Kumar K (4):
memory: ti-ddrss: Add MR4 temperature-driven refresh rate driver
arm64: dts: ti: k3-am62: Add DDR and controller node
arm64: dts: ti: k3-am62a: Add DDR and controller node
arm64: dts: ti: k3-am62p: Add DDR and controller node
Documentation/admin-guide/perf/index.rst | 1 +
Documentation/admin-guide/perf/k3-ddr.rst | 57 ++
.../memory-controllers/ti/cdns,k3-ddr.yaml | 81 +++
.../memory-controllers/ti/ti,j7-ddrss.yaml | 186 ++++++
.../memory-controllers/ti/ti,j721s2-msmc.yaml | 124 ++++
.../bindings/perf/ti,k3-ddr-pmu.yaml | 40 ++
arch/arm64/boot/dts/ti/k3-am62-main.dtsi | 25 +
arch/arm64/boot/dts/ti/k3-am62a-main.dtsi | 33 ++
.../dts/ti/k3-am62p-j722s-common-main.dtsi | 25 +
arch/arm64/boot/dts/ti/k3-am64-main.dtsi | 33 ++
arch/arm64/boot/dts/ti/k3-j7200-main.dtsi | 32 ++
arch/arm64/boot/dts/ti/k3-j721e-main.dtsi | 32 ++
arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi | 84 +++
.../dts/ti/k3-j784s4-j742s2-main-common.dtsi | 83 +++
arch/arm64/boot/dts/ti/k3-j784s4-main.dtsi | 73 +++
drivers/memory/Kconfig | 19 +
drivers/memory/Makefile | 1 +
drivers/memory/ti-ddrss-mr4.c | 322 +++++++++++
drivers/mfd/Kconfig | 13 +
drivers/mfd/Makefile | 1 +
drivers/mfd/ti-ddrss-core.c | 280 +++++++++
drivers/perf/Kconfig | 11 +
drivers/perf/Makefile | 1 +
drivers/perf/ti_k3_ddr_perf.c | 532 ++++++++++++++++++
include/linux/mfd/ti-ddrss.h | 53 ++
.../arch/arm64/ti/am62/sys/ddrc.json | 240 ++++++++
.../arch/arm64/ti/am62/sys/metrics.json | 34 ++
.../arch/arm64/ti/am62a/sys/ddrc.json | 240 ++++++++
.../arch/arm64/ti/am62a/sys/metrics.json | 34 ++
.../arch/arm64/ti/am62p/sys/ddrc.json | 240 ++++++++
.../arch/arm64/ti/am62p/sys/metrics.json | 34 ++
.../arch/arm64/ti/am64/sys/ddrc.json | 240 ++++++++
.../arch/arm64/ti/am64/sys/metrics.json | 34 ++
.../pmu-events/arch/arm64/ti/j7/sys/ddrc.json | 240 ++++++++
.../arch/arm64/ti/j7/sys/metrics.json | 34 ++
tools/perf/pmu-events/jevents.py | 1 +
36 files changed, 3513 insertions(+)
create mode 100644 Documentation/admin-guide/perf/k3-ddr.rst
create mode 100644 Documentation/devicetree/bindings/memory-controllers/ti/cdns,k3-ddr.yaml
create mode 100644 Documentation/devicetree/bindings/memory-controllers/ti/ti,j7-ddrss.yaml
create mode 100644 Documentation/devicetree/bindings/memory-controllers/ti/ti,j721s2-msmc.yaml
create mode 100644 Documentation/devicetree/bindings/perf/ti,k3-ddr-pmu.yaml
create mode 100644 drivers/memory/ti-ddrss-mr4.c
create mode 100644 drivers/mfd/ti-ddrss-core.c
create mode 100644 drivers/perf/ti_k3_ddr_perf.c
create mode 100644 include/linux/mfd/ti-ddrss.h
create mode 100644 tools/perf/pmu-events/arch/arm64/ti/am62/sys/ddrc.json
create mode 100644 tools/perf/pmu-events/arch/arm64/ti/am62/sys/metrics.json
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
create mode 100644 tools/perf/pmu-events/arch/arm64/ti/am62p/sys/ddrc.json
create mode 100644 tools/perf/pmu-events/arch/arm64/ti/am62p/sys/metrics.json
create mode 100644 tools/perf/pmu-events/arch/arm64/ti/am64/sys/ddrc.json
create mode 100644 tools/perf/pmu-events/arch/arm64/ti/am64/sys/metrics.json
create mode 100644 tools/perf/pmu-events/arch/arm64/ti/j7/sys/ddrc.json
create mode 100644 tools/perf/pmu-events/arch/arm64/ti/j7/sys/metrics.json
--
2.34.1
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-07-14 12:56 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-14 12:55 [RFC PATCH 00/22] Add TI K3 DDR subsystem drivers and DT bindings MANNURU VENKATESWARLU
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox