mbox series

[v4,0/2] Make i.MX9 OCOTP work as accessing controller

Message ID 20241223-imx-ocotp-v4-0-f504c1420640@nxp.com (mailing list archive)
Headers show
Series Make i.MX9 OCOTP work as accessing controller | expand

Message

Peng Fan (OSS) Dec. 23, 2024, 12:46 a.m. UTC
Previously there was discussion on using "feature-controller" or
adding a specific node to group the fuse information for U-Boot to
parse and update node. But rejected by DT maintainer(Rob).

Since the STM32 engineers added access controller concept and landed
the support in Linux Kernel, reuse the concept for i.MX.

i.MX OCOTP eFuse has some bits to indicate a specific periphral or
function is avaiable for current chip, for example i.MX93 has variants
that not have NPU. So introduce '#access-controller-cells' for OCOTP,
and add "#access-controllers = <&ocotp [gate_index]>" for periphrals
that needs accessing control checking.

In OCOTP driver, the nodes under "/" will be iterated, and checked
if property "#access-controllers" exsits. If not allow access, detach
the node.

In the end, cpu nodes should still be handled by bootloader.
And I may also update i.MX8M to use same method to support variants
if this patchset is good.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
Changes in v4:
- Add missing of_node_put(provider)
- Typo fix in commit log
- Link to v3: https://lore.kernel.org/r/20241219-imx-ocotp-v3-0-b22371098071@nxp.com

Changes in v3:
- Add A-b for patch 1
- Use scoped API when iterate nodes and address build warning in patch 2
- I am also thinking that to drop patch 2 to let
 bootloader to iterate the nodes that have access-controllers property and
 update the nodes before booting the kernel. Then just need patch 1 for
 the binding updates. Anyway, comments are welcomed.
- Link to v2: https://lore.kernel.org/r/20241217-imx-ocotp-v2-0-3faa6cbff41b@nxp.com

Changes in v2:
- Add R-b for patch 1
- Use '/' root node instead of '/soc' or '/soc@0' for patch 2
- Link to v1: https://lore.kernel.org/r/20241212-imx-ocotp-v1-0-198bb0af86a0@nxp.com

---
Peng Fan (2):
      dt-bindings: nvmem: imx-ocotp: Introduce #access-controller-cells
      nvmem: imx-ocotp-ele: Support accessing controller for i.MX9

 .../devicetree/bindings/nvmem/imx-ocotp.yaml       |   5 +
 drivers/nvmem/imx-ocotp-ele.c                      | 184 ++++++++++++++++++++-
 include/dt-bindings/nvmem/fsl,imx93-ocotp.h        |  24 +++
 include/dt-bindings/nvmem/fsl,imx95-ocotp.h        |  43 +++++
 4 files changed, 255 insertions(+), 1 deletion(-)
---
base-commit: 6d13015b67d58ddba56631c56e0a6f376ade0867
change-id: 20241212-imx-ocotp-cbef304140f5

Best regards,

Comments

Peng Fan (OSS) Dec. 31, 2024, 2:19 a.m. UTC | #1
Hi Srinivas,

Is this patchset good for you to pick up?

Thanks,
Peng
On Mon, Dec 23, 2024 at 08:46:12AM +0800, Peng Fan (OSS) wrote:
>Previously there was discussion on using "feature-controller" or
>adding a specific node to group the fuse information for U-Boot to
>parse and update node. But rejected by DT maintainer(Rob).
>
>Since the STM32 engineers added access controller concept and landed
>the support in Linux Kernel, reuse the concept for i.MX.
>
>i.MX OCOTP eFuse has some bits to indicate a specific periphral or
>function is avaiable for current chip, for example i.MX93 has variants
>that not have NPU. So introduce '#access-controller-cells' for OCOTP,
>and add "#access-controllers = <&ocotp [gate_index]>" for periphrals
>that needs accessing control checking.
>
>In OCOTP driver, the nodes under "/" will be iterated, and checked
>if property "#access-controllers" exsits. If not allow access, detach
>the node.
>
>In the end, cpu nodes should still be handled by bootloader.
>And I may also update i.MX8M to use same method to support variants
>if this patchset is good.
>
>Signed-off-by: Peng Fan <peng.fan@nxp.com>
>---
>Changes in v4:
>- Add missing of_node_put(provider)
>- Typo fix in commit log
>- Link to v3: https://lore.kernel.org/r/20241219-imx-ocotp-v3-0-b22371098071@nxp.com
>
>Changes in v3:
>- Add A-b for patch 1
>- Use scoped API when iterate nodes and address build warning in patch 2
>- I am also thinking that to drop patch 2 to let
> bootloader to iterate the nodes that have access-controllers property and
> update the nodes before booting the kernel. Then just need patch 1 for
> the binding updates. Anyway, comments are welcomed.
>- Link to v2: https://lore.kernel.org/r/20241217-imx-ocotp-v2-0-3faa6cbff41b@nxp.com
>
>Changes in v2:
>- Add R-b for patch 1
>- Use '/' root node instead of '/soc' or '/soc@0' for patch 2
>- Link to v1: https://lore.kernel.org/r/20241212-imx-ocotp-v1-0-198bb0af86a0@nxp.com
>
>---
>Peng Fan (2):
>      dt-bindings: nvmem: imx-ocotp: Introduce #access-controller-cells
>      nvmem: imx-ocotp-ele: Support accessing controller for i.MX9
>
> .../devicetree/bindings/nvmem/imx-ocotp.yaml       |   5 +
> drivers/nvmem/imx-ocotp-ele.c                      | 184 ++++++++++++++++++++-
> include/dt-bindings/nvmem/fsl,imx93-ocotp.h        |  24 +++
> include/dt-bindings/nvmem/fsl,imx95-ocotp.h        |  43 +++++
> 4 files changed, 255 insertions(+), 1 deletion(-)
>---
>base-commit: 6d13015b67d58ddba56631c56e0a6f376ade0867
>change-id: 20241212-imx-ocotp-cbef304140f5
>
>Best regards,
>-- 
>Peng Fan <peng.fan@nxp.com>
>