Skip to contentSkip to conversation

interconnect: intel: Add Keem Bay noc driver

PATCH Superseded [email protected] 1 participant 1 message Sep 28, 2021 Interconnect API

v7 of 8 Superseded Latest is v8 →

lore
Share & tools
lore
#0 lore raw

PATCH v7 1/1 interconnect: intel: Add Keem Bay noc driver

From: Pandith N <[email protected]>

Add support for Network on Chip(NOC) counters. Enable features to configure and capture NOC probe counters, needed for DDR bandwidth measurement. NOC driver is specific to Intel Keem Bay SOC. NOC hardware counters are used for DDR statistics profiling, it is not related to timers. Interface details are provided in include/uapi/linux/noc_uapi.h

---
Changes in V2 :
NOC is class driver, platform driver not needed. Removed LINUX syscall note from noc_driver.c. Order variable from longest to shortest.
Using variable in sizeof parameter, rather than data type. Consistent project naming as Keem Bay

Changes in V3 :
Free noc device in failure case and module exit.
Remove platform device references.

Changes in V4 :
Rephrased commit description, added missing punctuation in Kconfig.

Changes in V5 :
Local variables are always initialized before use in all cases of capture function
No need of counter 3 definition in enumeration

Changes in V6 :
Renaming noc driver as keembay-bwmon, moved to interconnect/intel. Added more description about DSS, NOC

Changes in V7 :
Removed unwanted parenthesis, optimized local variables usage.

---
 MAINTAINERS                                |   6 +
 drivers/interconnect/Kconfig               |   1 +
 drivers/interconnect/Makefile              |   1 +
 drivers/interconnect/intel/Kconfig         |  19 ++
 drivers/interconnect/intel/Makefile        |   5 +
 drivers/interconnect/intel/keembay-bwmon.c | 310 +++++++++++++++++++++
 drivers/interconnect/intel/keembay-bwmon.h | 110 ++++++++
 include/uapi/linux/noc_uapi.h              |  42 +++
 8 files changed, 494 insertions(+)
 create mode 100644 drivers/interconnect/intel/Kconfig
 create mode 100644 drivers/interconnect/intel/Makefile
 create mode 100644 drivers/interconnect/intel/keembay-bwmon.c
 create mode 100644 drivers/interconnect/intel/keembay-bwmon.h
 create mode 100644 include/uapi/linux/noc_uapi.h
MAINTAINERS +6 -0
index 6eff4f720c72..0c22e30ed2ea 100644
@@ -9045,6 +9045,12 @@ M:	Deepak Saxena <[email protected]>
 S:	Maintained
 F:	drivers/char/hw_random/ixp4xx-rng.c
 
+INTEL KEEM BAY DDR SUBSYSTEM, NETWORK ON CHIP INTERCONNECT DRIVER
+M:	Pandith N <[email protected]>
+S:	Supported
+F:	drivers/interconnect/intel/
+F:	include/uapi/linux/noc_uapi.h
+
 INTEL KEEM BAY DRM DRIVER
 M:	Anitha Chrisanthus <[email protected]>
 M:	Edmund Dea <[email protected]>
drivers/interconnect/Kconfig +1 -0
index d637a89d4695..e820e270b40d 100644
@@ -12,6 +12,7 @@ menuconfig INTERCONNECT
 if INTERCONNECT
 
 source "drivers/interconnect/imx/Kconfig"
+source "drivers/interconnect/intel/Kconfig"
 source "drivers/interconnect/qcom/Kconfig"
 source "drivers/interconnect/samsung/Kconfig"
 
drivers/interconnect/Makefile +1 -0
index 97d393fd638d..c88227f7a7c5 100644
@@ -5,5 +5,6 @@ icc-core-objs				:= core.o bulk.o
 
 obj-$(CONFIG_INTERCONNECT)		+= icc-core.o
 obj-$(CONFIG_INTERCONNECT_IMX)		+= imx/
+obj-$(CONFIG_INTERCONNECT_INTEL)	+= intel/
 obj-$(CONFIG_INTERCONNECT_QCOM)		+= qcom/
 obj-$(CONFIG_INTERCONNECT_SAMSUNG)	+= samsung/
drivers/interconnect/intel/Kconfig new file +19 -0
new file mode 100644
index 000000000000..449f43f66ee5
@@ -0,0 +1,19 @@
+# Copyright (C) 2019 Intel Corporation
+# SPDX-License-Identifier: GPL-2.0-only
+config INTERCONNECT_INTEL
+	bool "Intel Network-on-chip interconnect drivers"
+	help
+	  Support for Intel's Network on chip interconnect hardware.
+
+config INTERCONNECT_INTEL_KEEMBAY
+	tristate "Intel Keem Bay Enable DDR profiling using NOC"
+	depends on INTERCONNECT_INTEL || ARCH_KEEMBAY || COMPILE_TEST
+	help
+	  Enable this option for DDR bandwidth measurements using NOC.
+
+	  Add support for Network-on-chip (NOC) in DDR Subsystem(DSS).
+	  DSS NOC has capabilities to enable and get statistics profiling.
+	  NOC driver enables features to configure and capture NOC probe
+	  counters, needed for DSS bandwidth measurement.
+	  Say Y if using a processor that includes the Intel VPU such as
+	  Keem Bay.  If unsure, say N.
drivers/interconnect/intel/Makefile new file +5 -0
new file mode 100644
index 000000000000..5bb34fcfefae
@@ -0,0 +1,5 @@
+# Copyright (C) 2019 Intel Corporation
+# SPDX-License-Identifier: GPL-2.0-only
+#     Makefile for Keem Bay NOC
+#
+obj-$(CONFIG_INTERCONNECT_INTEL_KEEMBAY) += keembay-bwmon.o
drivers/interconnect/intel/keembay-bwmon.c new file +310 -0

310 lines not on this page · raw message

drivers/interconnect/intel/keembay-bwmon.h new file +110 -0

110 lines not on this page · raw message

include/uapi/linux/noc_uapi.h new file +42 -0

42 lines not on this page · raw message

Signature · 1 line
2.17.1