This patch series adds support for TMR Manager and TMR Inject IPs.
The TMR Manager is responsible for handling the TMR subsystem state,
including fault detection and error recovery. The core is triplicated
in each of the sub-blocks in the TMR subsystem, and provides majority
voting of its internal state.
The TMR Inject core provides functional fault injection by changing
selected MicroBlaze instructions, which provides the possibility to
verify that the TMR subsystem error detection and fault recovery logic
is working properly.
For more details about TMR Manager and Inject IPs please refer PG268[1].
[1]: https://docs.xilinx.com/r/en-US/pg268-tmr/Triple-Modular-Redundancy-TMR-v1.0-LogiCORE-IP-Product-Guide-PG268
Appana Durga Kedareswara rao (4):
dt-bindings: misc: tmr-manager: Add device-tree binding for TMR
Manager
drivers: misc: Add Support for TMR Manager
dt-bindings: misc: tmr-inject: Add device-tree binding for TMR Inject
drivers: misc: Add Support for TMR Inject IP
.../testing/sysfs-driver-xilinx-tmr-manager | 16 ++
.../bindings/misc/xlnx,tmr-inject.yaml | 47 ++++
.../bindings/misc/xlnx,tmr-manager.yaml | 47 ++++
MAINTAINERS | 13 ++
drivers/misc/Kconfig | 20 ++
drivers/misc/Makefile | 2 +
drivers/misc/xilinx_tmr_inject.c | 171 ++++++++++++++
drivers/misc/xilinx_tmr_manager.c | 220 ++++++++++++++++++
8 files changed, 536 insertions(+)
create mode 100644 Documentation/ABI/testing/sysfs-driver-xilinx-tmr-manager
create mode 100644 Documentation/devicetree/bindings/misc/xlnx,tmr-inject.yaml
create mode 100644 Documentation/devicetree/bindings/misc/xlnx,tmr-manager.yaml
create mode 100644 drivers/misc/xilinx_tmr_inject.c
create mode 100644 drivers/misc/xilinx_tmr_manager.c
--
2.25.1
The Triple Modular Redundancy(TMR) Inject core provides functional fault
injection by changing selected MicroBlaze instructions, which provides the
possibility to verify that the TMR subsystem error detection and fault
recovery logic is working properly.
Signed-off-by: Appana Durga Kedareswara rao <[email protected]>
Reviewed-by: Krzysztof Kozlowski <[email protected]>
---
Changes for v5:
--> None.
Changes for v4:
--> None.
Changes for v3:
--> Added Krzysztof Reviewed by.
Changes for v2:
--> Added minimum and maximum values for xlnx,magic1 property as
suggested
by Michal.
--> Fixed 80 char limit in description as suggested by Michal
.../bindings/misc/xlnx,tmr-inject.yaml | 47 +++++++++++++++++++
1 file changed, 47 insertions(+)
create mode 100644 Documentation/devicetree/bindings/misc/xlnx,tmr-inject.yaml
diff --git a/Documentation/devicetree/bindings/misc/xlnx,tmr-inject.yaml b/Documentation/devicetree/bindings/misc/xlnx,tmr-inject.yaml
new file mode 100644
index 000000000000..1b6020e4ec27
--- /dev/null
+++ b/Documentation/devicetree/bindings/misc/xlnx,tmr-inject.yaml
@@ -0,0 +1,47 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/misc/xlnx,tmr-inject.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Xilinx Triple Modular Redundancy(TMR) Inject IP
+
+maintainers:
+ - Appana Durga Kedareswara rao <[email protected]>
+
+description: |
+ The Triple Modular Redundancy(TMR) Inject core provides functional fault
+ injection by changing selected MicroBlaze instructions, which provides the
+ possibility to verify that the TMR subsystem error detection and fault
+ recovery logic is working properly.
+
+properties:
+ compatible:
+ enum:
+ - xlnx,tmr-inject-1.0
+
+ reg:
+ maxItems: 1
+
+ xlnx,magic:
+ minimum: 0
+ maximum: 255
+ description: |
+ Magic number, When configured it allows the controller to perform
+ recovery.
+ $ref: /schemas/types.yaml#/definitions/uint32
+
+required:
+ - compatible
+ - reg
+ - xlnx,magic
+
+additionalProperties: false
+
+examples:
+ - |
+ fault-inject@44a30000 {
+ compatible = "xlnx,tmr-inject-1.0";
+ reg = <0x44a10000 0x10000>;
+ xlnx,magic = <0x46>;
+ };
--
2.25.1