interconnect: intel: Add Keem Bay noc driver
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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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