2023-07-24 09:08:52

by Komal Bajaj

[permalink] [raw]
Subject: [PATCH v5 1/2] dt-bindings: nvmem: sec-qfprom: Add bindings for secure qfprom

This patch adds bindings for secure qfprom found in QCOM SOCs.
Secure QFPROM driver is based on simple nvmem framework.

Signed-off-by: Komal Bajaj <[email protected]>
---
.../bindings/nvmem/qcom,sec-qfprom.yaml | 58 +++++++++++++++++++
1 file changed, 58 insertions(+)
create mode 100644 Documentation/devicetree/bindings/nvmem/qcom,sec-qfprom.yaml

diff --git a/Documentation/devicetree/bindings/nvmem/qcom,sec-qfprom.yaml b/Documentation/devicetree/bindings/nvmem/qcom,sec-qfprom.yaml
new file mode 100644
index 000000000000..1425ced36fdf
--- /dev/null
+++ b/Documentation/devicetree/bindings/nvmem/qcom,sec-qfprom.yaml
@@ -0,0 +1,58 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/nvmem/qcom,sec-qfprom.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm Technologies Inc, Secure QFPROM Efuse
+
+maintainers:
+ - Komal Bajaj <[email protected]>
+
+description: |
+ For some of the Qualcomm SoC's, it is possible that
+ the qfprom region is protected from non-secure access.
+ In such situations, linux will have to use secure calls
+ to read the region.
+
+allOf:
+ - $ref: nvmem.yaml#
+
+properties:
+ compatible:
+ items:
+ - enum:
+ - qcom,qdu1000-sec-qfprom
+ - const: qcom,sec-qfprom
+
+ reg:
+ items:
+ - description: The secure qfprom corrected region.
+
+required:
+ - compatible
+ - reg
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/clock/qcom,gcc-sc7180.h>
+
+ soc {
+ #address-cells = <2>;
+ #size-cells = <2>;
+
+ efuse@221c8000 {
+ compatible = "qcom,qdu1000-sec-qfprom", "qcom,sec-qfprom";
+ reg = <0 0x221c8000 0 0x1000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ multi_chan_ddr: multi-chan-ddr@12b {
+ reg = <0x12b 0x1>;
+ bits = <0 2>;
+ };
+ };
+ };
+
--
2.40.1



2023-07-26 17:07:55

by Rob Herring

[permalink] [raw]
Subject: Re: [PATCH v5 1/2] dt-bindings: nvmem: sec-qfprom: Add bindings for secure qfprom

On Mon, Jul 24, 2023 at 02:08:48PM +0530, Komal Bajaj wrote:
> This patch adds bindings for secure qfprom found in QCOM SOCs.
> Secure QFPROM driver is based on simple nvmem framework.
>
> Signed-off-by: Komal Bajaj <[email protected]>
> ---
> .../bindings/nvmem/qcom,sec-qfprom.yaml | 58 +++++++++++++++++++
> 1 file changed, 58 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/nvmem/qcom,sec-qfprom.yaml
>
> diff --git a/Documentation/devicetree/bindings/nvmem/qcom,sec-qfprom.yaml b/Documentation/devicetree/bindings/nvmem/qcom,sec-qfprom.yaml
> new file mode 100644
> index 000000000000..1425ced36fdf
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/nvmem/qcom,sec-qfprom.yaml
> @@ -0,0 +1,58 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/nvmem/qcom,sec-qfprom.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Qualcomm Technologies Inc, Secure QFPROM Efuse
> +
> +maintainers:
> + - Komal Bajaj <[email protected]>
> +
> +description: |

Don't need '|'

> + For some of the Qualcomm SoC's, it is possible that
> + the qfprom region is protected from non-secure access.
> + In such situations, linux will have to use secure calls

s/linux/the OS/

> + to read the region.

Wrap lines at 80

The wording for this is strange. Only sometimes for this binding do
secure calls have to be used? If you are using secure calls, does that
mean the 'reg' address is not directly accessible.

> +
> +allOf:
> + - $ref: nvmem.yaml#
> +
> +properties:
> + compatible:
> + items:
> + - enum:
> + - qcom,qdu1000-sec-qfprom
> + - const: qcom,sec-qfprom
> +
> + reg:
> + items:
> + - description: The secure qfprom corrected region.
> +
> +required:
> + - compatible
> + - reg
> +
> +unevaluatedProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/clock/qcom,gcc-sc7180.h>
> +
> + soc {
> + #address-cells = <2>;
> + #size-cells = <2>;
> +
> + efuse@221c8000 {
> + compatible = "qcom,qdu1000-sec-qfprom", "qcom,sec-qfprom";
> + reg = <0 0x221c8000 0 0x1000>;
> + #address-cells = <1>;
> + #size-cells = <1>;
> +
> + multi_chan_ddr: multi-chan-ddr@12b {
> + reg = <0x12b 0x1>;
> + bits = <0 2>;
> + };
> + };
> + };
> +
> --
> 2.40.1
>

2023-07-27 09:41:07

by Pavan Kondeti

[permalink] [raw]
Subject: Re: [PATCH v5 1/2] dt-bindings: nvmem: sec-qfprom: Add bindings for secure qfprom

On Mon, Jul 24, 2023 at 02:08:48PM +0530, Komal Bajaj wrote:
> This patch adds bindings for secure qfprom found in QCOM SOCs.
> Secure QFPROM driver is based on simple nvmem framework.
>
> Signed-off-by: Komal Bajaj <[email protected]>
> ---
> .../bindings/nvmem/qcom,sec-qfprom.yaml | 58 +++++++++++++++++++
> 1 file changed, 58 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/nvmem/qcom,sec-qfprom.yaml
>

[...]

> +$id: http://devicetree.org/schemas/nvmem/qcom,sec-qfprom.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Qualcomm Technologies Inc, Secure QFPROM Efuse
> +
> +maintainers:
> + - Komal Bajaj <[email protected]>
> +
> +description: |
> + For some of the Qualcomm SoC's, it is possible that
> + the qfprom region is protected from non-secure access.
> + In such situations, linux will have to use secure calls
> + to read the region.
> +
> +allOf:
> + - $ref: nvmem.yaml#
> +
> +properties:
> + compatible:
> + items:
> + - enum:
> + - qcom,qdu1000-sec-qfprom
> + - const: qcom,sec-qfprom
> +
> + reg:
> + items:
> + - description: The secure qfprom corrected region.
> +
> +required:
> + - compatible
> + - reg
> +
> +unevaluatedProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/clock/qcom,gcc-sc7180.h>
> +

minor nitpick:

Since this device does not have any clocks, the above header inclusion
can be dropped.

> + soc {
> + #address-cells = <2>;
> + #size-cells = <2>;
> +
> + efuse@221c8000 {
> + compatible = "qcom,qdu1000-sec-qfprom", "qcom,sec-qfprom";
> + reg = <0 0x221c8000 0 0x1000>;
> + #address-cells = <1>;
> + #size-cells = <1>;
> +
> + multi_chan_ddr: multi-chan-ddr@12b {
> + reg = <0x12b 0x1>;
> + bits = <0 2>;
> + };
> + };
> + };
> +

Thanks,
Pavan

2023-07-28 15:51:16

by Komal Bajaj

[permalink] [raw]
Subject: Re: [PATCH v5 1/2] dt-bindings: nvmem: sec-qfprom: Add bindings for secure qfprom



On 7/26/2023 10:10 PM, Rob Herring wrote:
> On Mon, Jul 24, 2023 at 02:08:48PM +0530, Komal Bajaj wrote:
>> This patch adds bindings for secure qfprom found in QCOM SOCs.
>> Secure QFPROM driver is based on simple nvmem framework.
>>
>> Signed-off-by: Komal Bajaj <[email protected]>
>> ---
>> .../bindings/nvmem/qcom,sec-qfprom.yaml | 58 +++++++++++++++++++
>> 1 file changed, 58 insertions(+)
>> create mode 100644 Documentation/devicetree/bindings/nvmem/qcom,sec-qfprom.yaml
>>
>> diff --git a/Documentation/devicetree/bindings/nvmem/qcom,sec-qfprom.yaml b/Documentation/devicetree/bindings/nvmem/qcom,sec-qfprom.yaml
>> new file mode 100644
>> index 000000000000..1425ced36fdf
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/nvmem/qcom,sec-qfprom.yaml
>> @@ -0,0 +1,58 @@
>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/nvmem/qcom,sec-qfprom.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: Qualcomm Technologies Inc, Secure QFPROM Efuse
>> +
>> +maintainers:
>> + - Komal Bajaj <[email protected]>
>> +
>> +description: |
> Don't need '|'

Okay, will drop this.
Just a doubt here, when do we use this '|' symbol, I

 thought we will use this when
we have multi-line description/value.

>
>> + For some of the Qualcomm SoC's, it is possible that
>> + the qfprom region is protected from non-secure access.
>> + In such situations, linux will have to use secure calls
> s/linux/the OS/

Will do it.

>
>> + to read the region.
> Wrap lines at 80
>
> The wording for this is strange. Only sometimes for this binding do
> secure calls have to be used? If you are using secure calls, does that
> mean the 'reg' address is not directly accessible.

For this binding, we will always use secure calls because the 'reg'
address is not directly
accessible to the OS.

Thanks
Komal

>
>> +
>> +allOf:
>> + - $ref: nvmem.yaml#
>> +
>> +properties:
>> + compatible:
>> + items:
>> + - enum:
>> + - qcom,qdu1000-sec-qfprom
>> + - const: qcom,sec-qfprom
>> +
>> + reg:
>> + items:
>> + - description: The secure qfprom corrected region.
>> +
>> +required:
>> + - compatible
>> + - reg
>> +
>> +unevaluatedProperties: false
>> +
>> +examples:
>> + - |
>> + #include <dt-bindings/clock/qcom,gcc-sc7180.h>
>> +
>> + soc {
>> + #address-cells = <2>;
>> + #size-cells = <2>;
>> +
>> + efuse@221c8000 {
>> + compatible = "qcom,qdu1000-sec-qfprom", "qcom,sec-qfprom";
>> + reg = <0 0x221c8000 0 0x1000>;
>> + #address-cells = <1>;
>> + #size-cells = <1>;
>> +
>> + multi_chan_ddr: multi-chan-ddr@12b {
>> + reg = <0x12b 0x1>;
>> + bits = <0 2>;
>> + };
>> + };
>> + };
>> +
>> --
>> 2.40.1
>>


2023-07-28 15:56:11

by Komal Bajaj

[permalink] [raw]
Subject: Re: [PATCH v5 1/2] dt-bindings: nvmem: sec-qfprom: Add bindings for secure qfprom



On 7/27/2023 2:39 PM, Pavan Kondeti wrote:
> On Mon, Jul 24, 2023 at 02:08:48PM +0530, Komal Bajaj wrote:
>> This patch adds bindings for secure qfprom found in QCOM SOCs.
>> Secure QFPROM driver is based on simple nvmem framework.
>>
>> Signed-off-by: Komal Bajaj <[email protected]>
>> ---
>> .../bindings/nvmem/qcom,sec-qfprom.yaml | 58 +++++++++++++++++++
>> 1 file changed, 58 insertions(+)
>> create mode 100644 Documentation/devicetree/bindings/nvmem/qcom,sec-qfprom.yaml
>>
> [...]
>
>> +$id: http://devicetree.org/schemas/nvmem/qcom,sec-qfprom.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: Qualcomm Technologies Inc, Secure QFPROM Efuse
>> +
>> +maintainers:
>> + - Komal Bajaj <[email protected]>
>> +
>> +description: |
>> + For some of the Qualcomm SoC's, it is possible that
>> + the qfprom region is protected from non-secure access.
>> + In such situations, linux will have to use secure calls
>> + to read the region.
>> +
>> +allOf:
>> + - $ref: nvmem.yaml#
>> +
>> +properties:
>> + compatible:
>> + items:
>> + - enum:
>> + - qcom,qdu1000-sec-qfprom
>> + - const: qcom,sec-qfprom
>> +
>> + reg:
>> + items:
>> + - description: The secure qfprom corrected region.
>> +
>> +required:
>> + - compatible
>> + - reg
>> +
>> +unevaluatedProperties: false
>> +
>> +examples:
>> + - |
>> + #include <dt-bindings/clock/qcom,gcc-sc7180.h>
>> +
> minor nitpick:
>
> Since this device does not have any clocks, the above header inclusion
> can be dropped.

Yes, it is not needed, will drop it.

Thanks
Komal

>
>> + soc {
>> + #address-cells = <2>;
>> + #size-cells = <2>;
>> +
>> + efuse@221c8000 {
>> + compatible = "qcom,qdu1000-sec-qfprom", "qcom,sec-qfprom";
>> + reg = <0 0x221c8000 0 0x1000>;
>> + #address-cells = <1>;
>> + #size-cells = <1>;
>> +
>> + multi_chan_ddr: multi-chan-ddr@12b {
>> + reg = <0x12b 0x1>;
>> + bits = <0 2>;
>> + };
>> + };
>> + };
>> +
> Thanks,
> Pavan