Subject: [PATCH v2 0/4] drivers: misc: Add support for TMR Manager and Inject IPs

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

This patch series has a dependency on the patch series
https://www.spinics.net/lists/arm-kernel/msg991887.html

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-inject | 16 ++
.../testing/sysfs-driver-xilinx-tmr-manager | 27 ++
.../bindings/misc/xlnx,tmr-inject.yaml | 47 ++++
.../bindings/misc/xlnx,tmr-manager.yaml | 47 ++++
MAINTAINERS | 14 +
drivers/misc/Kconfig | 20 ++
drivers/misc/Makefile | 2 +
drivers/misc/xilinx_tmr_inject.c | 186 +++++++++++++
drivers/misc/xilinx_tmr_manager.c | 253 ++++++++++++++++++
9 files changed, 612 insertions(+)
create mode 100644 Documentation/ABI/testing/sysfs-driver-xilinx-tmr-inject
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


Subject: [PATCH v2 3/4] dt-bindings: misc: tmr-inject: Add device-tree binding for TMR Inject

From: Appana Durga Kedareswara rao <[email protected]>

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]>
Signed-off-by: Appana Durga Kedareswara rao <[email protected]>
---
Changes for v2:
--> Improved description for xlnx,magic property as suggested by Krzysztof.
--> Fixed style issues (indentation of example node title description
etc..)
.../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..cb14ea73fb4c
--- /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

2022-07-20 06:59:05

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH v2 3/4] dt-bindings: misc: tmr-inject: Add device-tree binding for TMR Inject

On 20/07/2022 08:00, Appana Durga Kedareswara rao wrote:
> From: Appana Durga Kedareswara rao <[email protected]>
>
> 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]>
> Signed-off-by: Appana Durga Kedareswara rao <[email protected]>

Keep only one SoB.

> ---


Reviewed-by: Krzysztof Kozlowski <[email protected]>


Best regards,
Krzysztof

2022-07-20 08:30:43

by Michal Simek

[permalink] [raw]
Subject: Re: [PATCH v2 3/4] dt-bindings: misc: tmr-inject: Add device-tree binding for TMR Inject



On 7/20/22 08:15, Krzysztof Kozlowski wrote:
> On 20/07/2022 08:00, Appana Durga Kedareswara rao wrote:
>> From: Appana Durga Kedareswara rao <[email protected]>
>>
>> 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]>
>> Signed-off-by: Appana Durga Kedareswara rao <[email protected]>
>
> Keep only one SoB.

nit: First of all it is from xilinx.com that's why xilinx.com should be the first.

Just for my understanding about guidance here.
Code was developed by Xilinx before acquisition with AMD. And because it was
picked from vendor tree origin xilinx.com was there to keep origin author there.
And upstreaming is done by new company. I can't see nothing wrong on keeping
both emails there but that's why my opinion. Definitely not a problem to remove
one of them but wanted to make sure that we do it properly for all our submissions.

Thanks,
Michal

2022-07-20 10:19:53

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH v2 3/4] dt-bindings: misc: tmr-inject: Add device-tree binding for TMR Inject

On 20/07/2022 10:26, Michal Simek wrote:
>
>
> On 7/20/22 08:15, Krzysztof Kozlowski wrote:
>> On 20/07/2022 08:00, Appana Durga Kedareswara rao wrote:
>>> From: Appana Durga Kedareswara rao <[email protected]>
>>>
>>> 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]>
>>> Signed-off-by: Appana Durga Kedareswara rao <[email protected]>
>>
>> Keep only one SoB.
>
> nit: First of all it is from xilinx.com that's why xilinx.com should be the first.
>
> Just for my understanding about guidance here.
> Code was developed by Xilinx before acquisition with AMD. And because it was
> picked from vendor tree origin xilinx.com was there to keep origin author there.
> And upstreaming is done by new company. I can't see nothing wrong on keeping
> both emails there but that's why my opinion. Definitely not a problem to remove
> one of them but wanted to make sure that we do it properly for all our submissions.

It's the same person. No need for two SoBs from the same person. Since
AMD acquired Xilinx, it holds all copyrights thus @amd.com person does
not have to include previous SoB. He/She/They has the permission from
employer to submit it. The second SoB is just redundant - brings no
actual information. Otherwise please tell me which piece of DCO the
additional SoB adds/solves (comparing to single SoB - @amd.com)?

Similarly when you change jobs while resending your patch - you do not
add new SoB but just keep SoB from @previous-company.com.


Best regards,
Krzysztof

2022-07-20 12:28:17

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH v2 3/4] dt-bindings: misc: tmr-inject: Add device-tree binding for TMR Inject

On 20/07/2022 14:09, Michal Simek wrote:
>> Similarly when you change jobs while resending your patch - you do not
>> add new SoB but just keep SoB from @previous-company.com.
>
> IMHO That would be more questionable when you create changes in origin series
> and new employer pays you to do the work.

True, when changes happen in between, it gets tricky.

> If it is 3rd party company picking series where upstreaming is not finished you
> will expect that 3rd party will add their sob lines there too.

Of course, because this is different person. The SoB comes always from a
person, although he might represent company.

Best regards,
Krzysztof

2022-07-20 13:02:57

by Michal Simek

[permalink] [raw]
Subject: Re: [PATCH v2 3/4] dt-bindings: misc: tmr-inject: Add device-tree binding for TMR Inject



On 7/20/22 11:35, Krzysztof Kozlowski wrote:
> On 20/07/2022 10:26, Michal Simek wrote:
>>
>>
>> On 7/20/22 08:15, Krzysztof Kozlowski wrote:
>>> On 20/07/2022 08:00, Appana Durga Kedareswara rao wrote:
>>>> From: Appana Durga Kedareswara rao <[email protected]>
>>>>
>>>> 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]>
>>>> Signed-off-by: Appana Durga Kedareswara rao <[email protected]>
>>>
>>> Keep only one SoB.
>>
>> nit: First of all it is from xilinx.com that's why xilinx.com should be the first.
>>
>> Just for my understanding about guidance here.
>> Code was developed by Xilinx before acquisition with AMD. And because it was
>> picked from vendor tree origin xilinx.com was there to keep origin author there.
>> And upstreaming is done by new company. I can't see nothing wrong on keeping
>> both emails there but that's why my opinion. Definitely not a problem to remove
>> one of them but wanted to make sure that we do it properly for all our submissions.
>
> It's the same person. No need for two SoBs from the same person. Since
> AMD acquired Xilinx, it holds all copyrights thus @amd.com person does
> not have to include previous SoB. He/She/They has the permission from
> employer to submit it. The second SoB is just redundant - brings no
> actual information. Otherwise please tell me which piece of DCO the
> additional SoB adds/solves (comparing to single SoB - @amd.com)?

ok. It means enough to choose one now. I am aware about some IT issues in
progress that's why that patches can come from xilinx.com or amd.com for some
time time.
Kedar: please just choose one.


> Similarly when you change jobs while resending your patch - you do not
> add new SoB but just keep SoB from @previous-company.com.

IMHO That would be more questionable when you create changes in origin series
and new employer pays you to do the work.

If it is 3rd party company picking series where upstreaming is not finished you
will expect that 3rd party will add their sob lines there too.

Thanks,
Michal

2022-07-20 13:09:42

by Michal Simek

[permalink] [raw]
Subject: Re: [PATCH v2 3/4] dt-bindings: misc: tmr-inject: Add device-tree binding for TMR Inject



On 7/20/22 14:21, Krzysztof Kozlowski wrote:
> On 20/07/2022 14:09, Michal Simek wrote:
>>> Similarly when you change jobs while resending your patch - you do not
>>> add new SoB but just keep SoB from @previous-company.com.
>>
>> IMHO That would be more questionable when you create changes in origin series
>> and new employer pays you to do the work.
>
> True, when changes happen in between, it gets tricky.
>
>> If it is 3rd party company picking series where upstreaming is not finished you
>> will expect that 3rd party will add their sob lines there too.
>
> Of course, because this is different person. The SoB comes always from a
> person, although he might represent company.

Good chat.

Cheers,
Michal



Subject: Re: [PATCH v2 3/4] dt-bindings: misc: tmr-inject: Add device-tree binding for TMR Inject

Hi,

Thanks for the review Krzysztof

On 20/07/22 5:39 pm, Michal Simek wrote:
>
>
> On 7/20/22 11:35, Krzysztof Kozlowski wrote:
>> On 20/07/2022 10:26, Michal Simek wrote:
>>>
>>>
>>> On 7/20/22 08:15, Krzysztof Kozlowski wrote:
>>>> On 20/07/2022 08:00, Appana Durga Kedareswara rao wrote:
>>>>> From: Appana Durga Kedareswara rao <[email protected]>
>>>>>
>>>>> 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]>
>>>>> Signed-off-by: Appana Durga Kedareswara rao
>>>>> <[email protected]>
>>>>
>>>> Keep only one SoB.
Surce Krzysztof will take care of it next patch series onwards.
>>>
>>> nit: First of all it is from xilinx.com that's why xilinx.com should
>>> be the first.
>>>
>>> Just for my understanding about guidance here.
>>> Code was developed by Xilinx before acquisition with AMD. And because
>>> it was
>>> picked from vendor tree origin xilinx.com was there to keep origin
>>> author there.
>>> And upstreaming is done by new company. I can't see nothing wrong on
>>> keeping
>>> both emails there but that's why my opinion. Definitely not a problem
>>> to remove
>>> one of them but wanted to make sure that we do it properly for all
>>> our submissions.
>>
>> It's the same person. No need for two SoBs from the same person. Since
>> AMD acquired Xilinx, it holds all copyrights thus @amd.com person does
>> not have to include previous SoB. He/She/They has the permission from
>> employer to submit it. The second SoB is just redundant - brings no
>> actual information. Otherwise please tell me which piece of DCO the
>> additional SoB adds/solves (comparing to single SoB - @amd.com)?
>
> ok. It means enough to choose one now. I am aware about some IT issues
> in progress that's why that patches can come from xilinx.com or amd.com
> for some time time.
> Kedar: please just choose one.
>

Sure Michal

Regards,
Kedar.
>
>> Similarly when you change jobs while resending your patch - you do not
>> add new SoB but just keep SoB from @previous-company.com.
>
> IMHO That would be more questionable when you create changes in origin
> series and new employer pays you to do the work.
>
> If it is 3rd party company picking series where upstreaming is not
> finished you will expect that 3rd party will add their sob lines there too.
>
> Thanks,
> Michal