* [PATCH v5 0/2] nvmem: sec-qfprom: Add Qualcomm secure QFPROM support @ 2023-07-24 8:29 Komal Bajaj 2023-07-24 8:29 ` [PATCH v5 1/2] dt-bindings: nvmem: sec-qfprom: Add bindings for secure qfprom Komal Bajaj 2023-07-24 8:29 ` [PATCH v5 2/2] nvmem: sec-qfprom: Add Qualcomm secure QFPROM support Komal Bajaj 0 siblings, 2 replies; 9+ messages in thread From: Komal Bajaj @ 2023-07-24 8:29 UTC (permalink / raw) To: agross, andersson, konrad.dybcio, srinivas.kandagatla, robh+dt, krzysztof.kozlowski+dt, conor+dt Cc: linux-arm-msm, devicetree, linux-kernel, Komal Bajaj Changes in v5 - - Separating this from original series [1]. - Added description of driver to secure qfprom binding. - Replaced pm_runtime_enable() withh devm_pm_runtime_enable(). - Changed module license to GPL instead of GPL v2. This series introduces a new driver for reading secure fuse region and adding dt-bindings for same. [1] https://lore.kernel.org/linux-arm-msm/20230623141806.13388-1-quic_kbajaj@quicinc.com/ Komal Bajaj (2): dt-bindings: nvmem: sec-qfprom: Add bindings for secure qfprom nvmem: sec-qfprom: Add Qualcomm secure QFPROM support .../bindings/nvmem/qcom,sec-qfprom.yaml | 58 ++++++++++ drivers/nvmem/Kconfig | 13 +++ drivers/nvmem/Makefile | 2 + drivers/nvmem/sec-qfprom.c | 101 ++++++++++++++++++ 4 files changed, 174 insertions(+) create mode 100644 Documentation/devicetree/bindings/nvmem/qcom,sec-qfprom.yaml create mode 100644 drivers/nvmem/sec-qfprom.c -- 2.40.1 ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v5 1/2] dt-bindings: nvmem: sec-qfprom: Add bindings for secure qfprom 2023-07-24 8:29 [PATCH v5 0/2] nvmem: sec-qfprom: Add Qualcomm secure QFPROM support Komal Bajaj @ 2023-07-24 8:29 ` Komal Bajaj 2023-07-24 9:48 ` Krzysztof Kozlowski 2023-07-24 8:29 ` [PATCH v5 2/2] nvmem: sec-qfprom: Add Qualcomm secure QFPROM support Komal Bajaj 1 sibling, 1 reply; 9+ messages in thread From: Komal Bajaj @ 2023-07-24 8:29 UTC (permalink / raw) To: agross, andersson, konrad.dybcio, srinivas.kandagatla, robh+dt, krzysztof.kozlowski+dt, conor+dt Cc: linux-arm-msm, devicetree, linux-kernel, Komal Bajaj 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 <quic_kbajaj@quicinc.com> --- .../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 <quic_kbajaj@quicinc.com> + +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 ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v5 1/2] dt-bindings: nvmem: sec-qfprom: Add bindings for secure qfprom 2023-07-24 8:29 ` [PATCH v5 1/2] dt-bindings: nvmem: sec-qfprom: Add bindings for secure qfprom Komal Bajaj @ 2023-07-24 9:48 ` Krzysztof Kozlowski 0 siblings, 0 replies; 9+ messages in thread From: Krzysztof Kozlowski @ 2023-07-24 9:48 UTC (permalink / raw) To: Komal Bajaj, agross, andersson, konrad.dybcio, srinivas.kandagatla, robh+dt, krzysztof.kozlowski+dt, conor+dt Cc: linux-arm-msm, devicetree, linux-kernel On 24/07/2023 10:29, 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 <quic_kbajaj@quicinc.com> > --- > .../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 <quic_kbajaj@quicinc.com> > + > +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 Bindings are not for Linux, so: s/linux/software/ > + to read the region. > + > +allOf: > + - $ref: nvmem.yaml# > + With above: Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Best regards, Krzysztof ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v5 2/2] nvmem: sec-qfprom: Add Qualcomm secure QFPROM support 2023-07-24 8:29 [PATCH v5 0/2] nvmem: sec-qfprom: Add Qualcomm secure QFPROM support Komal Bajaj 2023-07-24 8:29 ` [PATCH v5 1/2] dt-bindings: nvmem: sec-qfprom: Add bindings for secure qfprom Komal Bajaj @ 2023-07-24 8:29 ` Komal Bajaj 1 sibling, 0 replies; 9+ messages in thread From: Komal Bajaj @ 2023-07-24 8:29 UTC (permalink / raw) To: agross, andersson, konrad.dybcio, srinivas.kandagatla, robh+dt, krzysztof.kozlowski+dt, conor+dt Cc: linux-arm-msm, devicetree, linux-kernel, Komal Bajaj For some of the Qualcomm SoC's, it is possible that some of the fuse regions or entire qfprom region is protected from non-secure access. In such situations, Linux will have to use secure calls to read the region. With that motivation, add secure qfprom driver. Signed-off-by: Komal Bajaj <quic_kbajaj@quicinc.com> --- drivers/nvmem/Kconfig | 13 +++++ drivers/nvmem/Makefile | 2 + drivers/nvmem/sec-qfprom.c | 101 +++++++++++++++++++++++++++++++++++++ 3 files changed, 116 insertions(+) create mode 100644 drivers/nvmem/sec-qfprom.c diff --git a/drivers/nvmem/Kconfig b/drivers/nvmem/Kconfig index b291b27048c7..764fc5feb26c 100644 --- a/drivers/nvmem/Kconfig +++ b/drivers/nvmem/Kconfig @@ -216,6 +216,19 @@ config NVMEM_QCOM_QFPROM This driver can also be built as a module. If so, the module will be called nvmem_qfprom. +config NVMEM_QCOM_SEC_QFPROM + tristate "QCOM SECURE QFPROM Support" + depends on ARCH_QCOM || COMPILE_TEST + depends on HAS_IOMEM + depends on OF + select QCOM_SCM + help + Say y here to enable secure QFPROM support. The secure QFPROM provides access + functions for QFPROM data to rest of the drivers via nvmem interface. + + This driver can also be built as a module. If so, the module will be called + nvmem_sec_qfprom. + config NVMEM_RAVE_SP_EEPROM tristate "Rave SP EEPROM Support" depends on RAVE_SP_CORE diff --git a/drivers/nvmem/Makefile b/drivers/nvmem/Makefile index f82431ec8aef..e248d3daadf3 100644 --- a/drivers/nvmem/Makefile +++ b/drivers/nvmem/Makefile @@ -44,6 +44,8 @@ obj-$(CONFIG_NVMEM_NINTENDO_OTP) += nvmem-nintendo-otp.o nvmem-nintendo-otp-y := nintendo-otp.o obj-$(CONFIG_NVMEM_QCOM_QFPROM) += nvmem_qfprom.o nvmem_qfprom-y := qfprom.o +obj-$(CONFIG_NVMEM_QCOM_SEC_QFPROM) += nvmem_sec_qfprom.o +nvmem_sec_qfprom-y := sec-qfprom.o obj-$(CONFIG_NVMEM_RAVE_SP_EEPROM) += nvmem-rave-sp-eeprom.o nvmem-rave-sp-eeprom-y := rave-sp-eeprom.o obj-$(CONFIG_NVMEM_RMEM) += nvmem-rmem.o diff --git a/drivers/nvmem/sec-qfprom.c b/drivers/nvmem/sec-qfprom.c new file mode 100644 index 000000000000..bc68053b7d94 --- /dev/null +++ b/drivers/nvmem/sec-qfprom.c @@ -0,0 +1,101 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Copyright (c) 2023, Qualcomm Innovation Center, Inc. All rights reserved. + */ + +#include <linux/firmware/qcom/qcom_scm.h> +#include <linux/mod_devicetable.h> +#include <linux/nvmem-provider.h> +#include <linux/platform_device.h> +#include <linux/pm_runtime.h> + +/** + * struct sec_qfprom - structure holding secure qfprom attributes + * + * @base: starting physical address for secure qfprom corrected address space. + * @dev: qfprom device structure. + */ +struct sec_qfprom { + phys_addr_t base; + struct device *dev; +}; + +static int sec_qfprom_reg_read(void *context, unsigned int reg, void *_val, size_t bytes) +{ + struct sec_qfprom *priv = context; + unsigned int i; + u8 *val = _val; + u32 read_val; + u8 *tmp; + + for (i = 0; i < bytes; i++, reg++) { + if (i == 0 || reg % 4 == 0) { + if (qcom_scm_io_readl(priv->base + (reg & ~3), &read_val)) { + dev_err(priv->dev, "Couldn't access fuse register\n"); + return -EINVAL; + } + tmp = (u8 *)&read_val; + } + + val[i] = tmp[reg & 3]; + } + + return 0; +} + +static int sec_qfprom_probe(struct platform_device *pdev) +{ + struct nvmem_config econfig = { + .name = "sec-qfprom", + .stride = 1, + .word_size = 1, + .id = NVMEM_DEVID_AUTO, + .reg_read = sec_qfprom_reg_read, + }; + struct device *dev = &pdev->dev; + struct nvmem_device *nvmem; + struct sec_qfprom *priv; + struct resource *res; + int ret; + + priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); + if (!priv) + return -ENOMEM; + + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + if (!res) + return -EINVAL; + + priv->base = res->start; + + econfig.size = resource_size(res); + econfig.dev = dev; + econfig.priv = priv; + + priv->dev = dev; + + ret = devm_pm_runtime_enable(dev); + if (ret) + return ret; + + nvmem = devm_nvmem_register(dev, &econfig); + + return PTR_ERR_OR_ZERO(nvmem); +} + +static const struct of_device_id sec_qfprom_of_match[] = { + { .compatible = "qcom,sec-qfprom" }, + {/* sentinel */}, +}; +MODULE_DEVICE_TABLE(of, sec_qfprom_of_match); + +static struct platform_driver qfprom_driver = { + .probe = sec_qfprom_probe, + .driver = { + .name = "qcom_sec_qfprom", + .of_match_table = sec_qfprom_of_match, + }, +}; +module_platform_driver(qfprom_driver); +MODULE_DESCRIPTION("Qualcomm Secure QFPROM driver"); +MODULE_LICENSE("GPL"); -- 2.40.1 ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v5 0/2] nvmem: sec-qfprom: Add Qualcomm secure QFPROM support @ 2023-07-24 8:38 Komal Bajaj 2023-07-24 8:38 ` [PATCH v5 1/2] dt-bindings: nvmem: sec-qfprom: Add bindings for secure qfprom Komal Bajaj 0 siblings, 1 reply; 9+ messages in thread From: Komal Bajaj @ 2023-07-24 8:38 UTC (permalink / raw) To: agross, andersson, konrad.dybcio, robh+dt, krzysztof.kozlowski+dt, conor+dt, srinivas.kandagatla Cc: linux-arm-msm, devicetree, linux-kernel, Komal Bajaj Changes in v5 - - Separating this from original series [1]. - Added description of driver to secure qfprom binding. - Replaced pm_runtime_enable() withh devm_pm_runtime_enable(). - Changed module license to GPL instead of GPL v2. This series introduces a new driver for reading secure fuse region and adding dt-bindings for same. [1] https://lore.kernel.org/linux-arm-msm/20230623141806.13388-1-quic_kbajaj@quicinc.com/ Komal Bajaj (2): dt-bindings: nvmem: sec-qfprom: Add bindings for secure qfprom nvmem: sec-qfprom: Add Qualcomm secure QFPROM support .../bindings/nvmem/qcom,sec-qfprom.yaml | 58 ++++++++++ drivers/nvmem/Kconfig | 13 +++ drivers/nvmem/Makefile | 2 + drivers/nvmem/sec-qfprom.c | 101 ++++++++++++++++++ 4 files changed, 174 insertions(+) create mode 100644 Documentation/devicetree/bindings/nvmem/qcom,sec-qfprom.yaml create mode 100644 drivers/nvmem/sec-qfprom.c -- 2.40.1 ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v5 1/2] dt-bindings: nvmem: sec-qfprom: Add bindings for secure qfprom 2023-07-24 8:38 [PATCH v5 0/2] " Komal Bajaj @ 2023-07-24 8:38 ` Komal Bajaj 2023-07-26 16:40 ` Rob Herring 2023-07-27 9:09 ` Pavan Kondeti 0 siblings, 2 replies; 9+ messages in thread From: Komal Bajaj @ 2023-07-24 8:38 UTC (permalink / raw) To: agross, andersson, konrad.dybcio, robh+dt, krzysztof.kozlowski+dt, conor+dt, srinivas.kandagatla Cc: linux-arm-msm, devicetree, linux-kernel, Komal Bajaj 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 <quic_kbajaj@quicinc.com> --- .../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 <quic_kbajaj@quicinc.com> + +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 ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v5 1/2] dt-bindings: nvmem: sec-qfprom: Add bindings for secure qfprom 2023-07-24 8:38 ` [PATCH v5 1/2] dt-bindings: nvmem: sec-qfprom: Add bindings for secure qfprom Komal Bajaj @ 2023-07-26 16:40 ` Rob Herring 2023-07-28 13:54 ` Komal Bajaj 2023-07-27 9:09 ` Pavan Kondeti 1 sibling, 1 reply; 9+ messages in thread From: Rob Herring @ 2023-07-26 16:40 UTC (permalink / raw) To: Komal Bajaj Cc: agross, andersson, konrad.dybcio, krzysztof.kozlowski+dt, conor+dt, srinivas.kandagatla, linux-arm-msm, devicetree, linux-kernel 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 <quic_kbajaj@quicinc.com> > --- > .../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 <quic_kbajaj@quicinc.com> > + > +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 > ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v5 1/2] dt-bindings: nvmem: sec-qfprom: Add bindings for secure qfprom 2023-07-26 16:40 ` Rob Herring @ 2023-07-28 13:54 ` Komal Bajaj 0 siblings, 0 replies; 9+ messages in thread From: Komal Bajaj @ 2023-07-28 13:54 UTC (permalink / raw) To: Rob Herring Cc: agross, andersson, konrad.dybcio, krzysztof.kozlowski+dt, conor+dt, srinivas.kandagatla, linux-arm-msm, devicetree, linux-kernel 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 <quic_kbajaj@quicinc.com> >> --- >> .../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 <quic_kbajaj@quicinc.com> >> + >> +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 >> ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v5 1/2] dt-bindings: nvmem: sec-qfprom: Add bindings for secure qfprom 2023-07-24 8:38 ` [PATCH v5 1/2] dt-bindings: nvmem: sec-qfprom: Add bindings for secure qfprom Komal Bajaj 2023-07-26 16:40 ` Rob Herring @ 2023-07-27 9:09 ` Pavan Kondeti 2023-07-28 13:57 ` Komal Bajaj 1 sibling, 1 reply; 9+ messages in thread From: Pavan Kondeti @ 2023-07-27 9:09 UTC (permalink / raw) To: Komal Bajaj Cc: agross, andersson, konrad.dybcio, robh+dt, krzysztof.kozlowski+dt, conor+dt, srinivas.kandagatla, linux-arm-msm, devicetree, linux-kernel 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 <quic_kbajaj@quicinc.com> > --- > .../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 <quic_kbajaj@quicinc.com> > + > +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 ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v5 1/2] dt-bindings: nvmem: sec-qfprom: Add bindings for secure qfprom 2023-07-27 9:09 ` Pavan Kondeti @ 2023-07-28 13:57 ` Komal Bajaj 0 siblings, 0 replies; 9+ messages in thread From: Komal Bajaj @ 2023-07-28 13:57 UTC (permalink / raw) To: Pavan Kondeti Cc: agross, andersson, konrad.dybcio, robh+dt, krzysztof.kozlowski+dt, conor+dt, srinivas.kandagatla, linux-arm-msm, devicetree, linux-kernel 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 <quic_kbajaj@quicinc.com> >> --- >> .../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 <quic_kbajaj@quicinc.com> >> + >> +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 ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2023-07-28 13:57 UTC | newest] Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2023-07-24 8:29 [PATCH v5 0/2] nvmem: sec-qfprom: Add Qualcomm secure QFPROM support Komal Bajaj 2023-07-24 8:29 ` [PATCH v5 1/2] dt-bindings: nvmem: sec-qfprom: Add bindings for secure qfprom Komal Bajaj 2023-07-24 9:48 ` Krzysztof Kozlowski 2023-07-24 8:29 ` [PATCH v5 2/2] nvmem: sec-qfprom: Add Qualcomm secure QFPROM support Komal Bajaj 2023-07-24 8:38 [PATCH v5 0/2] " Komal Bajaj 2023-07-24 8:38 ` [PATCH v5 1/2] dt-bindings: nvmem: sec-qfprom: Add bindings for secure qfprom Komal Bajaj 2023-07-26 16:40 ` Rob Herring 2023-07-28 13:54 ` Komal Bajaj 2023-07-27 9:09 ` Pavan Kondeti 2023-07-28 13:57 ` Komal Bajaj
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®