* [PATCH 0/2] Add support for K3 BIST
@ 2024-11-28 14:08 Neha Malcom Francis
2024-11-28 14:08 ` [PATCH 1/2] dt-bindings: misc: bist: Add BIST dt-binding for TI K3 devices Neha Malcom Francis
2024-11-28 14:08 ` [PATCH 2/2] arm64: dts: ti: k3-j784s4-main: Add PBIST_14 node Neha Malcom Francis
0 siblings, 2 replies; 11+ messages in thread
From: Neha Malcom Francis @ 2024-11-28 14:08 UTC (permalink / raw)
To: nm, vigneshr, kristo, robh, krzk+dt, conor+dt
Cc: linux-arm-kernel, devicetree, linux-kernel, u-kumar1, n-francis
BIST (Built-In Self Test) is an IP responsible for triggering hardware
circuitry tests on both logic as well as memory blocks. This driver is
currently being upstreamed in U-Boot [1] and triggers these tests on
cores. This patch series adds the dt-binding as well as a node for BIST
on J784S4.
[1] https://lore.kernel.org/all/613efa0b-f785-444c-8769-ea40ac94d6f9@ti.com/T/
Neha Malcom Francis (2):
dt-bindings: misc: bist: Add BIST dt-binding for TI K3 devices
arm64: dts: ti: k3-j784s4-main: Add PBIST_14 node
.../bindings/misc/ti,j784s4-bist.yaml | 66 +++++++++++++++++++
arch/arm64/boot/dts/ti/k3-j784s4-main.dtsi | 11 ++++
2 files changed, 77 insertions(+)
create mode 100644 Documentation/devicetree/bindings/misc/ti,j784s4-bist.yaml
--
2.34.1
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 1/2] dt-bindings: misc: bist: Add BIST dt-binding for TI K3 devices
2024-11-28 14:08 [PATCH 0/2] Add support for K3 BIST Neha Malcom Francis
@ 2024-11-28 14:08 ` Neha Malcom Francis
2024-11-29 7:20 ` Krzysztof Kozlowski
2024-11-28 14:08 ` [PATCH 2/2] arm64: dts: ti: k3-j784s4-main: Add PBIST_14 node Neha Malcom Francis
1 sibling, 1 reply; 11+ messages in thread
From: Neha Malcom Francis @ 2024-11-28 14:08 UTC (permalink / raw)
To: nm, vigneshr, kristo, robh, krzk+dt, conor+dt
Cc: linux-arm-kernel, devicetree, linux-kernel, u-kumar1, n-francis
Document the binding for TI K3 BIST (Built-In Self Test) block.
Signed-off-by: Neha Malcom Francis <n-francis@ti.com>
---
.../bindings/misc/ti,j784s4-bist.yaml | 66 +++++++++++++++++++
1 file changed, 66 insertions(+)
create mode 100644 Documentation/devicetree/bindings/misc/ti,j784s4-bist.yaml
diff --git a/Documentation/devicetree/bindings/misc/ti,j784s4-bist.yaml b/Documentation/devicetree/bindings/misc/ti,j784s4-bist.yaml
new file mode 100644
index 000000000000..bd1b42734b3d
--- /dev/null
+++ b/Documentation/devicetree/bindings/misc/ti,j784s4-bist.yaml
@@ -0,0 +1,66 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+# Copyright (C) 2024 Texas Instruments Incorporated
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/misc/ti,j784s4-bist.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Texas Instruments K3 BIST
+
+maintainers:
+ - Neha Malcom Francis <n-francis@ti.com>
+
+description:
+ The BIST (Built-In Self Test) module is an IP block present in K3 devices
+ that support triggering of BIST tests, both PBIST (Memory BIST) and LBIST
+ (Logic BIST) on a core. Both tests are destructive in nature. At boot, BIST
+ is executed by hardware for the MCU domain automatically as part of HW POST.
+
+properties:
+ compatible:
+ const: ti,j784s4-bist
+
+ reg:
+ minItems: 2
+ maxItems: 2
+
+ reg-names:
+ items:
+ - const: cfg
+ - const: ctrl_mmr
+
+ clocks:
+ maxItems: 1
+
+ power-domains:
+ maxItems: 1
+
+ ti,bist-instance:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description:
+ the BIST instance in the SoC represented as an integer
+
+required:
+ - compatible
+ - reg
+ - reg-names
+ - ti,bist-instance
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/soc/ti,sci_pm_domain.h>
+ bus {
+ #address-cells = <2>;
+ #size-cells = <2>;
+ bist@33c0000 {
+ compatible = "ti,j784s4-bist";
+ reg = <0x00 0x033c0000 0x00 0x400>,
+ <0x00 0x0010c1a0 0x00 0x01c>;
+ reg-names = "cfg", "ctrl_mmr";
+ clocks = <&k3_clks 237 7>;
+ power-domains = <&k3_pds 237 TI_SCI_PD_EXCLUSIVE>;
+ ti,bist-instance = <14>;
+ };
+ };
--
2.34.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 2/2] arm64: dts: ti: k3-j784s4-main: Add PBIST_14 node
2024-11-28 14:08 [PATCH 0/2] Add support for K3 BIST Neha Malcom Francis
2024-11-28 14:08 ` [PATCH 1/2] dt-bindings: misc: bist: Add BIST dt-binding for TI K3 devices Neha Malcom Francis
@ 2024-11-28 14:08 ` Neha Malcom Francis
1 sibling, 0 replies; 11+ messages in thread
From: Neha Malcom Francis @ 2024-11-28 14:08 UTC (permalink / raw)
To: nm, vigneshr, kristo, robh, krzk+dt, conor+dt
Cc: linux-arm-kernel, devicetree, linux-kernel, u-kumar1, n-francis
Add DT node for PBIST_14 that is responsible for triggering the PBIST
self-tests for the MAIN_R5_2_x cores.
Signed-off-by: Neha Malcom Francis <n-francis@ti.com>
---
arch/arm64/boot/dts/ti/k3-j784s4-main.dtsi | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/arch/arm64/boot/dts/ti/k3-j784s4-main.dtsi b/arch/arm64/boot/dts/ti/k3-j784s4-main.dtsi
index 0160fe0da983..f96113d8db22 100644
--- a/arch/arm64/boot/dts/ti/k3-j784s4-main.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-j784s4-main.dtsi
@@ -113,6 +113,17 @@ serdes2: serdes@5020000 {
status = "disabled";
};
};
+
+ bist_main14: bist@33c0000 {
+ compatible = "ti,j784s4-bist";
+ reg = <0x00 0x033c0000 0x00 0x400>,
+ <0x00 0x0010c1a0 0x00 0x01c>;
+ reg-names = "cfg", "ctrl_mmr";
+ clocks = <&k3_clks 237 7>;
+ power-domains = <&k3_pds 237 TI_SCI_PD_EXCLUSIVE>;
+ bootph-pre-ram;
+ ti,bist-instance = <14>;
+ };
};
&scm_conf {
--
2.34.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH 1/2] dt-bindings: misc: bist: Add BIST dt-binding for TI K3 devices
2024-11-28 14:08 ` [PATCH 1/2] dt-bindings: misc: bist: Add BIST dt-binding for TI K3 devices Neha Malcom Francis
@ 2024-11-29 7:20 ` Krzysztof Kozlowski
2024-11-29 7:43 ` Neha Malcom Francis
0 siblings, 1 reply; 11+ messages in thread
From: Krzysztof Kozlowski @ 2024-11-29 7:20 UTC (permalink / raw)
To: Neha Malcom Francis
Cc: nm, vigneshr, kristo, robh, krzk+dt, conor+dt, linux-arm-kernel,
devicetree, linux-kernel, u-kumar1
On Thu, Nov 28, 2024 at 07:38:24PM +0530, Neha Malcom Francis wrote:
> Document the binding for TI K3 BIST (Built-In Self Test) block.
>
A nit, subject: drop second/last, redundant "dt-binding". The
"dt-bindings" prefix is already stating that these are bindings.
See also:
https://elixir.bootlin.com/linux/v6.7-rc8/source/Documentation/devicetree/bindings/submitting-patches.rst#L18
> Signed-off-by: Neha Malcom Francis <n-francis@ti.com>
> ---
> .../bindings/misc/ti,j784s4-bist.yaml | 66 +++++++++++++++++++
> 1 file changed, 66 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/misc/ti,j784s4-bist.yaml
soc directory, not misc.
>
> diff --git a/Documentation/devicetree/bindings/misc/ti,j784s4-bist.yaml b/Documentation/devicetree/bindings/misc/ti,j784s4-bist.yaml
> new file mode 100644
> index 000000000000..bd1b42734b3d
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/misc/ti,j784s4-bist.yaml
> @@ -0,0 +1,66 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +# Copyright (C) 2024 Texas Instruments Incorporated
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/misc/ti,j784s4-bist.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Texas Instruments K3 BIST
> +
> +maintainers:
> + - Neha Malcom Francis <n-francis@ti.com>
> +
> +description:
> + The BIST (Built-In Self Test) module is an IP block present in K3 devices
> + that support triggering of BIST tests, both PBIST (Memory BIST) and LBIST
> + (Logic BIST) on a core. Both tests are destructive in nature. At boot, BIST
> + is executed by hardware for the MCU domain automatically as part of HW POST.
> +
> +properties:
> + compatible:
> + const: ti,j784s4-bist
> +
> + reg:
> + minItems: 2
Drop minItems
> + maxItems: 2
> +
> + reg-names:
> + items:
> + - const: cfg
> + - const: ctrl_mmr
> +
> + clocks:
> + maxItems: 1
> +
> + power-domains:
> + maxItems: 1
> +
> + ti,bist-instance:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description:
> + the BIST instance in the SoC represented as an integer
No instance indices are allowed. Drop.
> +
> +required:
> + - compatible
> + - reg
> + - reg-names
> + - ti,bist-instance
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/soc/ti,sci_pm_domain.h>
> + bus {
> + #address-cells = <2>;
> + #size-cells = <2>;
> + bist@33c0000 {
Node names should be generic. See also an explanation and list of
examples (not exhaustive) in DT specification:
https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation
Come with something, don't just use device name.
> + compatible = "ti,j784s4-bist";
> + reg = <0x00 0x033c0000 0x00 0x400>,
> + <0x00 0x0010c1a0 0x00 0x01c>;
Misaligned code.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 1/2] dt-bindings: misc: bist: Add BIST dt-binding for TI K3 devices
2024-11-29 7:20 ` Krzysztof Kozlowski
@ 2024-11-29 7:43 ` Neha Malcom Francis
2024-11-29 9:15 ` Krzysztof Kozlowski
0 siblings, 1 reply; 11+ messages in thread
From: Neha Malcom Francis @ 2024-11-29 7:43 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: nm, vigneshr, kristo, robh, krzk+dt, conor+dt, linux-arm-kernel,
devicetree, linux-kernel, u-kumar1
Hi Krzysztof,
On 29/11/24 12:50, Krzysztof Kozlowski wrote:
> On Thu, Nov 28, 2024 at 07:38:24PM +0530, Neha Malcom Francis wrote:
>> Document the binding for TI K3 BIST (Built-In Self Test) block.
>>
>
> A nit, subject: drop second/last, redundant "dt-binding". The
> "dt-bindings" prefix is already stating that these are bindings.
> See also:
> https://elixir.bootlin.com/linux/v6.7-rc8/source/Documentation/devicetree/bindings/submitting-patches.rst#L18
>
>> Signed-off-by: Neha Malcom Francis <n-francis@ti.com>
>> ---
>> .../bindings/misc/ti,j784s4-bist.yaml | 66 +++++++++++++++++++
>> 1 file changed, 66 insertions(+)
>> create mode 100644 Documentation/devicetree/bindings/misc/ti,j784s4-bist.yaml
>
> soc directory, not misc.
>
>>
>> diff --git a/Documentation/devicetree/bindings/misc/ti,j784s4-bist.yaml b/Documentation/devicetree/bindings/misc/ti,j784s4-bist.yaml
>> new file mode 100644
>> index 000000000000..bd1b42734b3d
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/misc/ti,j784s4-bist.yaml
>> @@ -0,0 +1,66 @@
>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>> +# Copyright (C) 2024 Texas Instruments Incorporated
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/misc/ti,j784s4-bist.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: Texas Instruments K3 BIST
>> +
>> +maintainers:
>> + - Neha Malcom Francis <n-francis@ti.com>
>> +
>> +description:
>> + The BIST (Built-In Self Test) module is an IP block present in K3 devices
>> + that support triggering of BIST tests, both PBIST (Memory BIST) and LBIST
>> + (Logic BIST) on a core. Both tests are destructive in nature. At boot, BIST
>> + is executed by hardware for the MCU domain automatically as part of HW POST.
>> +
>> +properties:
>> + compatible:
>> + const: ti,j784s4-bist
>> +
>> + reg:
>> + minItems: 2
>
> Drop minItems
>
>> + maxItems: 2
>> +
>> + reg-names:
>> + items:
>> + - const: cfg
>> + - const: ctrl_mmr
>> +
>> + clocks:
>> + maxItems: 1
>> +
>> + power-domains:
>> + maxItems: 1
>> +
>> + ti,bist-instance:
>> + $ref: /schemas/types.yaml#/definitions/uint32
>> + description:
>> + the BIST instance in the SoC represented as an integer
>
> No instance indices are allowed. Drop.
>
Question on this, this is not a property that is driven by software but rather
indicates which register sequences have to be picked up for triggering this test
from this instance. So I don't see how I can workaround this without getting
this number. Or maybe call it ID rather than instance?
>> +
>> +required:
>> + - compatible
>> + - reg
>> + - reg-names
>> + - ti,bist-instance
>> +
>> +additionalProperties: false
>> +
>> +examples:
>> + - |
>> + #include <dt-bindings/soc/ti,sci_pm_domain.h>
>> + bus {
>> + #address-cells = <2>;
>> + #size-cells = <2>;
>> + bist@33c0000 {
>
> Node names should be generic. See also an explanation and list of
> examples (not exhaustive) in DT specification:
> https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation
>
> Come with something, don't just use device name.
>
>> + compatible = "ti,j784s4-bist";
>> + reg = <0x00 0x033c0000 0x00 0x400>,
>> + <0x00 0x0010c1a0 0x00 0x01c>;
>
> Misaligned code.
>
> Best regards,
> Krzysztof
>
For the rest of the comments, got it! thanks for the review!
--
Thanking You
Neha Malcom Francis
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 1/2] dt-bindings: misc: bist: Add BIST dt-binding for TI K3 devices
2024-11-29 7:43 ` Neha Malcom Francis
@ 2024-11-29 9:15 ` Krzysztof Kozlowski
2025-03-13 11:14 ` Neha Malcom Francis
0 siblings, 1 reply; 11+ messages in thread
From: Krzysztof Kozlowski @ 2024-11-29 9:15 UTC (permalink / raw)
To: Neha Malcom Francis
Cc: nm, vigneshr, kristo, robh, krzk+dt, conor+dt, linux-arm-kernel,
devicetree, linux-kernel, u-kumar1
On 29/11/2024 08:43, Neha Malcom Francis wrote:
>>> +
>>> + power-domains:
>>> + maxItems: 1
>>> +
>>> + ti,bist-instance:
>>> + $ref: /schemas/types.yaml#/definitions/uint32
>>> + description:
>>> + the BIST instance in the SoC represented as an integer
>>
>> No instance indices are allowed. Drop.
>>
>
> Question on this, this is not a property that is driven by software but rather
> indicates which register sequences have to be picked up for triggering this test
> from this instance. So I don't see how I can workaround this without getting
> this number. Or maybe call it ID rather than instance?
I don't understand how the device operates, so what is exactly behind
some sequences of registers for triggering this test. You described
property as index or ID of one instance of the block. That's not what we
want in the binding. That's said maybe other, different hardware
characteristic is behind, who knows. Or maybe it's about callers... or
maybe that's not hardware property at all, but runtime OS, who knows.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 1/2] dt-bindings: misc: bist: Add BIST dt-binding for TI K3 devices
2024-11-29 9:15 ` Krzysztof Kozlowski
@ 2025-03-13 11:14 ` Neha Malcom Francis
2025-03-19 7:46 ` Krzysztof Kozlowski
0 siblings, 1 reply; 11+ messages in thread
From: Neha Malcom Francis @ 2025-03-13 11:14 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: nm, vigneshr, kristo, robh, krzk+dt, conor+dt, linux-arm-kernel,
devicetree, linux-kernel, u-kumar1
Hi Krzysztof
On 29/11/24 14:45, Krzysztof Kozlowski wrote:
> On 29/11/2024 08:43, Neha Malcom Francis wrote:
>>>> +
>>>> + power-domains:
>>>> + maxItems: 1
>>>> +
>>>> + ti,bist-instance:
>>>> + $ref: /schemas/types.yaml#/definitions/uint32
>>>> + description:
>>>> + the BIST instance in the SoC represented as an integer
>>>
>>> No instance indices are allowed. Drop.
>>>
>>
>> Question on this, this is not a property that is driven by software but rather
>> indicates which register sequences have to be picked up for triggering this test
>> from this instance. So I don't see how I can workaround this without getting
>> this number. Or maybe call it ID rather than instance?
>
> I don't understand how the device operates, so what is exactly behind
> some sequences of registers for triggering this test. You described
> property as index or ID of one instance of the block. That's not what we
> want in the binding. That's said maybe other, different hardware
> characteristic is behind, who knows. Or maybe it's about callers... or
> maybe that's not hardware property at all, but runtime OS, who knows.
>
Sorry for such a late reply, but I was hoping to get more details on
this "ID" and never got back to the thread...
The best way I can describe is this device (BIST) runs a safety
diagnostic test on a bunch of processors/blocks (let's call them
targets). There's a mapping between the instance of this device and the
targets it will run the test. This ID was essentially letting the BIST
driver know which are these targets.
Should I perhaps trigger it the other way around; a target driver asks
for it's safety test to be run by pointing to the BIST instance? However
the issue with this approach is, the architecture of this safety test
device is that once triggered, it will run the test on all the targets
it controls and that should be reflected in the software arch as well right?
Yet another way would be the BIST points out the targets it controls via
their phandles in its node... but this approach would trigger the probe
of these targets before the test runs on them. And in hardware, the test
must run only one before the device is used, else we see indefinite
behavior.
> Best regards,
> Krzysztof
--
Thanking You
Neha Malcom Francis
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 1/2] dt-bindings: misc: bist: Add BIST dt-binding for TI K3 devices
2025-03-13 11:14 ` Neha Malcom Francis
@ 2025-03-19 7:46 ` Krzysztof Kozlowski
2025-03-19 9:02 ` Neha Malcom Francis
0 siblings, 1 reply; 11+ messages in thread
From: Krzysztof Kozlowski @ 2025-03-19 7:46 UTC (permalink / raw)
To: Neha Malcom Francis
Cc: nm, vigneshr, kristo, robh, krzk+dt, conor+dt, linux-arm-kernel,
devicetree, linux-kernel, u-kumar1
On 13/03/2025 12:14, Neha Malcom Francis wrote:
> Hi Krzysztof
>
> On 29/11/24 14:45, Krzysztof Kozlowski wrote:
>> On 29/11/2024 08:43, Neha Malcom Francis wrote:
>>>>> +
>>>>> + power-domains:
>>>>> + maxItems: 1
>>>>> +
>>>>> + ti,bist-instance:
>>>>> + $ref: /schemas/types.yaml#/definitions/uint32
>>>>> + description:
>>>>> + the BIST instance in the SoC represented as an integer
>>>>
>>>> No instance indices are allowed. Drop.
>>>>
>>>
>>> Question on this, this is not a property that is driven by software but rather
>>> indicates which register sequences have to be picked up for triggering this test
>>> from this instance. So I don't see how I can workaround this without getting
>>> this number. Or maybe call it ID rather than instance?
>>
>> I don't understand how the device operates, so what is exactly behind
>> some sequences of registers for triggering this test. You described
>> property as index or ID of one instance of the block. That's not what we
>> want in the binding. That's said maybe other, different hardware
>> characteristic is behind, who knows. Or maybe it's about callers... or
>> maybe that's not hardware property at all, but runtime OS, who knows.
>>
>
> Sorry for such a late reply, but I was hoping to get more details on
> this "ID" and never got back to the thread...
>
> The best way I can describe is this device (BIST) runs a safety
> diagnostic test on a bunch of processors/blocks (let's call them
> targets). There's a mapping between the instance of this device and the
> targets it will run the test. This ID was essentially letting the BIST
> driver know which are these targets.
So you want to configure some target? Then this is your property. If you
want to configure 'foo' difference in DT, you do not write 'bar'...
Anyway, no clue, original emails are long time not in my inbox. Context
disappeared also long time ago.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 1/2] dt-bindings: misc: bist: Add BIST dt-binding for TI K3 devices
2025-03-19 7:46 ` Krzysztof Kozlowski
@ 2025-03-19 9:02 ` Neha Malcom Francis
2025-03-24 7:23 ` Krzysztof Kozlowski
0 siblings, 1 reply; 11+ messages in thread
From: Neha Malcom Francis @ 2025-03-19 9:02 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: nm, vigneshr, kristo, robh, krzk+dt, conor+dt, linux-arm-kernel,
devicetree, linux-kernel, u-kumar1
Hi Krzysztof,
On 19/03/25 13:16, Krzysztof Kozlowski wrote:
> On 13/03/2025 12:14, Neha Malcom Francis wrote:
>> Hi Krzysztof
>>
>> On 29/11/24 14:45, Krzysztof Kozlowski wrote:
>>> On 29/11/2024 08:43, Neha Malcom Francis wrote:
>>>>>> +
>>>>>> + power-domains:
>>>>>> + maxItems: 1
>>>>>> +
>>>>>> + ti,bist-instance:
>>>>>> + $ref: /schemas/types.yaml#/definitions/uint32
>>>>>> + description:
>>>>>> + the BIST instance in the SoC represented as an integer
>>>>>
>>>>> No instance indices are allowed. Drop.
>>>>>
>>>>
>>>> Question on this, this is not a property that is driven by software but rather
>>>> indicates which register sequences have to be picked up for triggering this test
>>>> from this instance. So I don't see how I can workaround this without getting
>>>> this number. Or maybe call it ID rather than instance?
>>>
>>> I don't understand how the device operates, so what is exactly behind
>>> some sequences of registers for triggering this test. You described
>>> property as index or ID of one instance of the block. That's not what we
>>> want in the binding. That's said maybe other, different hardware
>>> characteristic is behind, who knows. Or maybe it's about callers... or
>>> maybe that's not hardware property at all, but runtime OS, who knows.
>>>
>>
>> Sorry for such a late reply, but I was hoping to get more details on
>> this "ID" and never got back to the thread...
>>
>> The best way I can describe is this device (BIST) runs a safety
>> diagnostic test on a bunch of processors/blocks (let's call them
>> targets). There's a mapping between the instance of this device and the
>> targets it will run the test. This ID was essentially letting the BIST
>> driver know which are these targets.
>
>
> So you want to configure some target? Then this is your property. If you
> want to configure 'foo' difference in DT, you do not write 'bar'...
>
So the difficulty in doing this is, what I mentioned in the earlier
email just copying it over again:
"Yet another way would be the BIST points out the targets it controls via
their phandles in its node... but this approach would trigger the probe
of these targets before the test runs on them. And in hardware, the test
must run only one before the device is used, else we see indefinite
behavior."
Property that has a list of strings (targets) instead of phandles maybe?
Would that be acceptable?
> Anyway, no clue, original emails are long time not in my inbox. Context
> disappeared also long time ago.
>
Completely understand, delay from my end, sorry!
>
> Best regards,
> Krzysztof
--
Thanking You
Neha Malcom Francis
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 1/2] dt-bindings: misc: bist: Add BIST dt-binding for TI K3 devices
2025-03-19 9:02 ` Neha Malcom Francis
@ 2025-03-24 7:23 ` Krzysztof Kozlowski
2025-03-27 4:12 ` Neha Malcom Francis
0 siblings, 1 reply; 11+ messages in thread
From: Krzysztof Kozlowski @ 2025-03-24 7:23 UTC (permalink / raw)
To: Neha Malcom Francis
Cc: nm, vigneshr, kristo, robh, krzk+dt, conor+dt, linux-arm-kernel,
devicetree, linux-kernel, u-kumar1
On 19/03/2025 10:02, Neha Malcom Francis wrote:
> Hi Krzysztof,
>
> On 19/03/25 13:16, Krzysztof Kozlowski wrote:
>> On 13/03/2025 12:14, Neha Malcom Francis wrote:
>>> Hi Krzysztof
>>>
>>> On 29/11/24 14:45, Krzysztof Kozlowski wrote:
>>>> On 29/11/2024 08:43, Neha Malcom Francis wrote:
>>>>>>> +
>>>>>>> + power-domains:
>>>>>>> + maxItems: 1
>>>>>>> +
>>>>>>> + ti,bist-instance:
>>>>>>> + $ref: /schemas/types.yaml#/definitions/uint32
>>>>>>> + description:
>>>>>>> + the BIST instance in the SoC represented as an integer
>>>>>>
>>>>>> No instance indices are allowed. Drop.
>>>>>>
>>>>>
>>>>> Question on this, this is not a property that is driven by software but rather
>>>>> indicates which register sequences have to be picked up for triggering this test
>>>>> from this instance. So I don't see how I can workaround this without getting
>>>>> this number. Or maybe call it ID rather than instance?
>>>>
>>>> I don't understand how the device operates, so what is exactly behind
>>>> some sequences of registers for triggering this test. You described
>>>> property as index or ID of one instance of the block. That's not what we
>>>> want in the binding. That's said maybe other, different hardware
>>>> characteristic is behind, who knows. Or maybe it's about callers... or
>>>> maybe that's not hardware property at all, but runtime OS, who knows.
>>>>
>>>
>>> Sorry for such a late reply, but I was hoping to get more details on
>>> this "ID" and never got back to the thread...
>>>
>>> The best way I can describe is this device (BIST) runs a safety
>>> diagnostic test on a bunch of processors/blocks (let's call them
>>> targets). There's a mapping between the instance of this device and the
>>> targets it will run the test. This ID was essentially letting the BIST
>>> driver know which are these targets.
>>
>>
>> So you want to configure some target? Then this is your property. If you
>> want to configure 'foo' difference in DT, you do not write 'bar'...
>>
>
> So the difficulty in doing this is, what I mentioned in the earlier
> email just copying it over again:
>
> "Yet another way would be the BIST points out the targets it controls via
> their phandles in its node... but this approach would trigger the probe
No, it would not. Which part of OF kernel code causes probe ordering
(device links) if some random phandle appears?
> of these targets before the test runs on them. And in hardware, the test
> must run only one before the device is used, else we see indefinite
> behavior."
>
> Property that has a list of strings (targets) instead of phandles maybe?
> Would that be acceptable?
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 1/2] dt-bindings: misc: bist: Add BIST dt-binding for TI K3 devices
2025-03-24 7:23 ` Krzysztof Kozlowski
@ 2025-03-27 4:12 ` Neha Malcom Francis
0 siblings, 0 replies; 11+ messages in thread
From: Neha Malcom Francis @ 2025-03-27 4:12 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: nm, vigneshr, kristo, robh, krzk+dt, conor+dt, linux-arm-kernel,
devicetree, linux-kernel, u-kumar1
On 24/03/25 12:53, Krzysztof Kozlowski wrote:
> On 19/03/2025 10:02, Neha Malcom Francis wrote:
>> Hi Krzysztof,
>>
>> On 19/03/25 13:16, Krzysztof Kozlowski wrote:
>>> On 13/03/2025 12:14, Neha Malcom Francis wrote:
>>>> Hi Krzysztof
>>>>
>>>> On 29/11/24 14:45, Krzysztof Kozlowski wrote:
>>>>> On 29/11/2024 08:43, Neha Malcom Francis wrote:
>>>>>>>> +
>>>>>>>> + power-domains:
>>>>>>>> + maxItems: 1
>>>>>>>> +
>>>>>>>> + ti,bist-instance:
>>>>>>>> + $ref: /schemas/types.yaml#/definitions/uint32
>>>>>>>> + description:
>>>>>>>> + the BIST instance in the SoC represented as an integer
>>>>>>>
>>>>>>> No instance indices are allowed. Drop.
>>>>>>>
>>>>>>
>>>>>> Question on this, this is not a property that is driven by software but rather
>>>>>> indicates which register sequences have to be picked up for triggering this test
>>>>>> from this instance. So I don't see how I can workaround this without getting
>>>>>> this number. Or maybe call it ID rather than instance?
>>>>>
>>>>> I don't understand how the device operates, so what is exactly behind
>>>>> some sequences of registers for triggering this test. You described
>>>>> property as index or ID of one instance of the block. That's not what we
>>>>> want in the binding. That's said maybe other, different hardware
>>>>> characteristic is behind, who knows. Or maybe it's about callers... or
>>>>> maybe that's not hardware property at all, but runtime OS, who knows.
>>>>>
>>>>
>>>> Sorry for such a late reply, but I was hoping to get more details on
>>>> this "ID" and never got back to the thread...
>>>>
>>>> The best way I can describe is this device (BIST) runs a safety
>>>> diagnostic test on a bunch of processors/blocks (let's call them
>>>> targets). There's a mapping between the instance of this device and the
>>>> targets it will run the test. This ID was essentially letting the BIST
>>>> driver know which are these targets.
>>>
>>>
>>> So you want to configure some target? Then this is your property. If you
>>> want to configure 'foo' difference in DT, you do not write 'bar'...
>>>
>>
>> So the difficulty in doing this is, what I mentioned in the earlier
>> email just copying it over again:
>>
>> "Yet another way would be the BIST points out the targets it controls via
>> their phandles in its node... but this approach would trigger the probe
>
> No, it would not. Which part of OF kernel code causes probe ordering
> (device links) if some random phandle appears?
Going through device links now, I realize I may have come to the wrong
conclusion while writing the driver. Let me try to respin the driver
using this approach then post which I will resume this series.
>
>> of these targets before the test runs on them. And in hardware, the test
>> must run only one before the device is used, else we see indefinite
>> behavior."
>>
>> Property that has a list of strings (targets) instead of phandles maybe?
>> Would that be acceptable?
>
>
>
> Best regards,
> Krzysztof
--
Thanking You
Neha Malcom Francis
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2025-03-27 4:12 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-11-28 14:08 [PATCH 0/2] Add support for K3 BIST Neha Malcom Francis
2024-11-28 14:08 ` [PATCH 1/2] dt-bindings: misc: bist: Add BIST dt-binding for TI K3 devices Neha Malcom Francis
2024-11-29 7:20 ` Krzysztof Kozlowski
2024-11-29 7:43 ` Neha Malcom Francis
2024-11-29 9:15 ` Krzysztof Kozlowski
2025-03-13 11:14 ` Neha Malcom Francis
2025-03-19 7:46 ` Krzysztof Kozlowski
2025-03-19 9:02 ` Neha Malcom Francis
2025-03-24 7:23 ` Krzysztof Kozlowski
2025-03-27 4:12 ` Neha Malcom Francis
2024-11-28 14:08 ` [PATCH 2/2] arm64: dts: ti: k3-j784s4-main: Add PBIST_14 node Neha Malcom Francis
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox