Message ID | 1595344835-67746-1-git-send-email-franck.lenormand@oss.nxp.com (mailing list archive) |
---|---|
Headers | show |
Series | Add support of SECVIO from SNVS on iMX8q/x | expand |
Hello, Peng was able to do a firt pass of review on my patchset which led to this second version. I hope a maintainer will be able to take a look at this patchset once rested after all the work they did for 5.9. On mar., 2020-07-21 at 17:20 +0200, franck.lenormand@oss.nxp.com wrote: > From: Franck LENORMAND <franck.lenormand@oss.nxp.com> > > This patchset aims to add support for the SECurity VIOlation (SECVIO) of the > SNVS. A secvio is a signal emitted by the SNVS when a hardware attack > is detected. On imx8x and imx8q SoC, the SNVS is controlled by the > SECO and it is possible to interact with it using the SCU using the SC APIs. > > For the driver to communicate with the SNVS via the SCU and the SECO, I had to: > - Add support for exchange of big message with the SCU (needed for > imx_scu_irq_get_status) > - Add API to check linux can control the SECVIO (imx_sc_rm_is_resource_owned) > - Add APIs for the driver to read the state of the SECVIO registers of the > SNVS and DGO (imx_sc_seco_secvio_enable and imx_sc_seco_secvio_enable). > > To check the state of the SECVIO IRQ in the SCU, I added the > imx_scu_irq_get_status API. > > The secvio driver is designed to receive the IRQ produced by the > SNVS in case of hardware attack and notify the status to the > audit framework which can be used by the user. > > The goal of the driver is to be self suficient but can be extended by the > user to perform custom operations on values read (imx_sc_seco_secvio_enable) > > v2: > - Removed (firmware: imx: scu-rm: Add Resource Management APIs) > -> Code required is already present > - Removed (firmware: imx: scu: Support reception of messages of any size) > -> The imx-scu is already working in fast-ipc mode > - (soc: imx8: Add the SC SECVIO driver): > - Fixed the warnings reported by kernel test robot > > Franck LENORMAND (5): > firmware: imx: scu-seco: Add SEcure Controller APIS > firmware: imx: scu-irq: Add API to retrieve status of IRQ > dt-bindings: firmware: imx-scu: Add SECVIO resource > dt-bindings: arm: imx: Documentation of the SC secvio driver > soc: imx8: Add the SC SECVIO driver > > .../bindings/arm/freescale/fsl,imx-sc-secvio.yaml | 34 + > drivers/firmware/imx/Makefile | 2 +- > drivers/firmware/imx/imx-scu-irq.c | 37 +- > drivers/firmware/imx/imx-scu.c | 3 + > drivers/firmware/imx/seco.c | 275 +++++++ > drivers/soc/imx/Kconfig | 10 + > drivers/soc/imx/Makefile | 1 + > drivers/soc/imx/secvio/Kconfig | 10 + > drivers/soc/imx/secvio/Makefile | 3 + > drivers/soc/imx/secvio/imx-secvio-audit.c | 39 + > drivers/soc/imx/secvio/imx-secvio-debugfs.c | 379 +++++++++ > drivers/soc/imx/secvio/imx-secvio-sc-int.h | 84 ++ > drivers/soc/imx/secvio/imx-secvio-sc.c | 858 +++++++++++++++++++++ > include/dt-bindings/firmware/imx/rsrc.h | 3 +- > include/linux/firmware/imx/ipc.h | 1 + > include/linux/firmware/imx/sci.h | 5 + > include/linux/firmware/imx/svc/seco.h | 73 ++ > include/soc/imx/imx-secvio-sc.h | 177 +++++ > 18 files changed, 1991 insertions(+), 3 deletions(-) > create mode 100644 Documentation/devicetree/bindings/arm/freescale/fsl,imx-sc- > secvio.yaml > create mode 100644 drivers/firmware/imx/seco.c > create mode 100644 drivers/soc/imx/secvio/Kconfig > create mode 100644 drivers/soc/imx/secvio/Makefile > create mode 100644 drivers/soc/imx/secvio/imx-secvio-audit.c > create mode 100644 drivers/soc/imx/secvio/imx-secvio-debugfs.c > create mode 100644 drivers/soc/imx/secvio/imx-secvio-sc-int.h > create mode 100644 drivers/soc/imx/secvio/imx-secvio-sc.c > create mode 100644 include/linux/firmware/imx/svc/seco.h > create mode 100644 include/soc/imx/imx-secvio-sc.h >
On Tue, Aug 18, 2020 at 09:52:02AM +0200, Franck LENORMAND (OSS) wrote: > Hello, > > Peng was able to do a firt pass of review on my patchset which led to this > second version. I hope a maintainer will be able to take a look at this > patchset once rested after all the work they did for 5.9. @Peng, are you okay with this version? @Aisheng, have a review on this? Shawn > > On mar., 2020-07-21 at 17:20 +0200, franck.lenormand@oss.nxp.com wrote: > > From: Franck LENORMAND <franck.lenormand@oss.nxp.com> > > > > This patchset aims to add support for the SECurity VIOlation (SECVIO) of the > > SNVS. A secvio is a signal emitted by the SNVS when a hardware attack > > is detected. On imx8x and imx8q SoC, the SNVS is controlled by the > > SECO and it is possible to interact with it using the SCU using the SC APIs. > > > > For the driver to communicate with the SNVS via the SCU and the SECO, I had to: > > - Add support for exchange of big message with the SCU (needed for > > imx_scu_irq_get_status) > > - Add API to check linux can control the SECVIO (imx_sc_rm_is_resource_owned) > > - Add APIs for the driver to read the state of the SECVIO registers of the > > SNVS and DGO (imx_sc_seco_secvio_enable and imx_sc_seco_secvio_enable). > > > > To check the state of the SECVIO IRQ in the SCU, I added the > > imx_scu_irq_get_status API. > > > > The secvio driver is designed to receive the IRQ produced by the > > SNVS in case of hardware attack and notify the status to the > > audit framework which can be used by the user. > > > > The goal of the driver is to be self suficient but can be extended by the > > user to perform custom operations on values read (imx_sc_seco_secvio_enable) > > > > v2: > > - Removed (firmware: imx: scu-rm: Add Resource Management APIs) > > -> Code required is already present > > - Removed (firmware: imx: scu: Support reception of messages of any size) > > -> The imx-scu is already working in fast-ipc mode > > - (soc: imx8: Add the SC SECVIO driver): > > - Fixed the warnings reported by kernel test robot > > > > Franck LENORMAND (5): > > firmware: imx: scu-seco: Add SEcure Controller APIS > > firmware: imx: scu-irq: Add API to retrieve status of IRQ > > dt-bindings: firmware: imx-scu: Add SECVIO resource > > dt-bindings: arm: imx: Documentation of the SC secvio driver > > soc: imx8: Add the SC SECVIO driver > > > > .../bindings/arm/freescale/fsl,imx-sc-secvio.yaml | 34 + > > drivers/firmware/imx/Makefile | 2 +- > > drivers/firmware/imx/imx-scu-irq.c | 37 +- > > drivers/firmware/imx/imx-scu.c | 3 + > > drivers/firmware/imx/seco.c | 275 +++++++ > > drivers/soc/imx/Kconfig | 10 + > > drivers/soc/imx/Makefile | 1 + > > drivers/soc/imx/secvio/Kconfig | 10 + > > drivers/soc/imx/secvio/Makefile | 3 + > > drivers/soc/imx/secvio/imx-secvio-audit.c | 39 + > > drivers/soc/imx/secvio/imx-secvio-debugfs.c | 379 +++++++++ > > drivers/soc/imx/secvio/imx-secvio-sc-int.h | 84 ++ > > drivers/soc/imx/secvio/imx-secvio-sc.c | 858 +++++++++++++++++++++ > > include/dt-bindings/firmware/imx/rsrc.h | 3 +- > > include/linux/firmware/imx/ipc.h | 1 + > > include/linux/firmware/imx/sci.h | 5 + > > include/linux/firmware/imx/svc/seco.h | 73 ++ > > include/soc/imx/imx-secvio-sc.h | 177 +++++ > > 18 files changed, 1991 insertions(+), 3 deletions(-) > > create mode 100644 Documentation/devicetree/bindings/arm/freescale/fsl,imx-sc- > > secvio.yaml > > create mode 100644 drivers/firmware/imx/seco.c > > create mode 100644 drivers/soc/imx/secvio/Kconfig > > create mode 100644 drivers/soc/imx/secvio/Makefile > > create mode 100644 drivers/soc/imx/secvio/imx-secvio-audit.c > > create mode 100644 drivers/soc/imx/secvio/imx-secvio-debugfs.c > > create mode 100644 drivers/soc/imx/secvio/imx-secvio-sc-int.h > > create mode 100644 drivers/soc/imx/secvio/imx-secvio-sc.c > > create mode 100644 include/linux/firmware/imx/svc/seco.h > > create mode 100644 include/soc/imx/imx-secvio-sc.h > > >
> From: Shawn Guo <shawnguo@kernel.org> > Sent: Wednesday, August 19, 2020 9:23 PM > > On Tue, Aug 18, 2020 at 09:52:02AM +0200, Franck LENORMAND (OSS) wrote: > > Hello, > > > > Peng was able to do a firt pass of review on my patchset which led to > > this second version. I hope a maintainer will be able to take a look > > at this patchset once rested after all the work they did for 5.9. > > @Peng, are you okay with this version? > > @Aisheng, have a review on this? Sorry, just noticed this. Will find a time to review these two days. Regards Aisheng > > Shawn > > > > > On mar., 2020-07-21 at 17:20 +0200, franck.lenormand@oss.nxp.com wrote: > > > From: Franck LENORMAND <franck.lenormand@oss.nxp.com> > > > > > > This patchset aims to add support for the SECurity VIOlation > > > (SECVIO) of the SNVS. A secvio is a signal emitted by the SNVS when > > > a hardware attack is detected. On imx8x and imx8q SoC, the SNVS is > > > controlled by the SECO and it is possible to interact with it using the SCU > using the SC APIs. > > > > > > For the driver to communicate with the SNVS via the SCU and the SECO, I > had to: > > > - Add support for exchange of big message with the SCU (needed for > > > imx_scu_irq_get_status) > > > - Add API to check linux can control the SECVIO > > > (imx_sc_rm_is_resource_owned) > > > - Add APIs for the driver to read the state of the SECVIO registers > > > of the SNVS and DGO (imx_sc_seco_secvio_enable and > imx_sc_seco_secvio_enable). > > > > > > To check the state of the SECVIO IRQ in the SCU, I added the > > > imx_scu_irq_get_status API. > > > > > > The secvio driver is designed to receive the IRQ produced by the > > > SNVS in case of hardware attack and notify the status to the audit > > > framework which can be used by the user. > > > > > > The goal of the driver is to be self suficient but can be extended > > > by the user to perform custom operations on values read > > > (imx_sc_seco_secvio_enable) > > > > > > v2: > > > - Removed (firmware: imx: scu-rm: Add Resource Management APIs) > > > -> Code required is already present > > > - Removed (firmware: imx: scu: Support reception of messages of any size) > > > -> The imx-scu is already working in fast-ipc mode > > > - (soc: imx8: Add the SC SECVIO driver): > > > - Fixed the warnings reported by kernel test robot > > > > > > Franck LENORMAND (5): > > > firmware: imx: scu-seco: Add SEcure Controller APIS > > > firmware: imx: scu-irq: Add API to retrieve status of IRQ > > > dt-bindings: firmware: imx-scu: Add SECVIO resource > > > dt-bindings: arm: imx: Documentation of the SC secvio driver > > > soc: imx8: Add the SC SECVIO driver > > > > > > .../bindings/arm/freescale/fsl,imx-sc-secvio.yaml | 34 + > > > drivers/firmware/imx/Makefile | 2 +- > > > drivers/firmware/imx/imx-scu-irq.c | 37 +- > > > drivers/firmware/imx/imx-scu.c | 3 + > > > drivers/firmware/imx/seco.c | 275 > +++++++ > > > drivers/soc/imx/Kconfig | 10 + > > > drivers/soc/imx/Makefile | 1 + > > > drivers/soc/imx/secvio/Kconfig | 10 + > > > drivers/soc/imx/secvio/Makefile | 3 + > > > drivers/soc/imx/secvio/imx-secvio-audit.c | 39 + > > > drivers/soc/imx/secvio/imx-secvio-debugfs.c | 379 +++++++++ > > > drivers/soc/imx/secvio/imx-secvio-sc-int.h | 84 ++ > > > drivers/soc/imx/secvio/imx-secvio-sc.c | 858 > > > +++++++++++++++++++++ > > > include/dt-bindings/firmware/imx/rsrc.h | 3 +- > > > include/linux/firmware/imx/ipc.h | 1 + > > > include/linux/firmware/imx/sci.h | 5 + > > > include/linux/firmware/imx/svc/seco.h | 73 ++ > > > include/soc/imx/imx-secvio-sc.h | 177 +++++ > > > 18 files changed, 1991 insertions(+), 3 deletions(-) > > > create mode 100644 > > > Documentation/devicetree/bindings/arm/freescale/fsl,imx-sc- > > > secvio.yaml > > > create mode 100644 drivers/firmware/imx/seco.c > > > create mode 100644 drivers/soc/imx/secvio/Kconfig > > > create mode 100644 drivers/soc/imx/secvio/Makefile > > > create mode 100644 drivers/soc/imx/secvio/imx-secvio-audit.c > > > create mode 100644 drivers/soc/imx/secvio/imx-secvio-debugfs.c > > > create mode 100644 drivers/soc/imx/secvio/imx-secvio-sc-int.h > > > create mode 100644 drivers/soc/imx/secvio/imx-secvio-sc.c > > > create mode 100644 include/linux/firmware/imx/svc/seco.h > > > create mode 100644 include/soc/imx/imx-secvio-sc.h > > > > >
From: Franck LENORMAND <franck.lenormand@oss.nxp.com> This patchset aims to add support for the SECurity VIOlation (SECVIO) of the SNVS. A secvio is a signal emitted by the SNVS when a hardware attack is detected. On imx8x and imx8q SoC, the SNVS is controlled by the SECO and it is possible to interact with it using the SCU using the SC APIs. For the driver to communicate with the SNVS via the SCU and the SECO, I had to: - Add support for exchange of big message with the SCU (needed for imx_scu_irq_get_status) - Add API to check linux can control the SECVIO (imx_sc_rm_is_resource_owned) - Add APIs for the driver to read the state of the SECVIO registers of the SNVS and DGO (imx_sc_seco_secvio_enable and imx_sc_seco_secvio_enable). To check the state of the SECVIO IRQ in the SCU, I added the imx_scu_irq_get_status API. The secvio driver is designed to receive the IRQ produced by the SNVS in case of hardware attack and notify the status to the audit framework which can be used by the user. The goal of the driver is to be self suficient but can be extended by the user to perform custom operations on values read (imx_sc_seco_secvio_enable) v2: - Removed (firmware: imx: scu-rm: Add Resource Management APIs) -> Code required is already present - Removed (firmware: imx: scu: Support reception of messages of any size) -> The imx-scu is already working in fast-ipc mode - (soc: imx8: Add the SC SECVIO driver): - Fixed the warnings reported by kernel test robot Franck LENORMAND (5): firmware: imx: scu-seco: Add SEcure Controller APIS firmware: imx: scu-irq: Add API to retrieve status of IRQ dt-bindings: firmware: imx-scu: Add SECVIO resource dt-bindings: arm: imx: Documentation of the SC secvio driver soc: imx8: Add the SC SECVIO driver .../bindings/arm/freescale/fsl,imx-sc-secvio.yaml | 34 + drivers/firmware/imx/Makefile | 2 +- drivers/firmware/imx/imx-scu-irq.c | 37 +- drivers/firmware/imx/imx-scu.c | 3 + drivers/firmware/imx/seco.c | 275 +++++++ drivers/soc/imx/Kconfig | 10 + drivers/soc/imx/Makefile | 1 + drivers/soc/imx/secvio/Kconfig | 10 + drivers/soc/imx/secvio/Makefile | 3 + drivers/soc/imx/secvio/imx-secvio-audit.c | 39 + drivers/soc/imx/secvio/imx-secvio-debugfs.c | 379 +++++++++ drivers/soc/imx/secvio/imx-secvio-sc-int.h | 84 ++ drivers/soc/imx/secvio/imx-secvio-sc.c | 858 +++++++++++++++++++++ include/dt-bindings/firmware/imx/rsrc.h | 3 +- include/linux/firmware/imx/ipc.h | 1 + include/linux/firmware/imx/sci.h | 5 + include/linux/firmware/imx/svc/seco.h | 73 ++ include/soc/imx/imx-secvio-sc.h | 177 +++++ 18 files changed, 1991 insertions(+), 3 deletions(-) create mode 100644 Documentation/devicetree/bindings/arm/freescale/fsl,imx-sc-secvio.yaml create mode 100644 drivers/firmware/imx/seco.c create mode 100644 drivers/soc/imx/secvio/Kconfig create mode 100644 drivers/soc/imx/secvio/Makefile create mode 100644 drivers/soc/imx/secvio/imx-secvio-audit.c create mode 100644 drivers/soc/imx/secvio/imx-secvio-debugfs.c create mode 100644 drivers/soc/imx/secvio/imx-secvio-sc-int.h create mode 100644 drivers/soc/imx/secvio/imx-secvio-sc.c create mode 100644 include/linux/firmware/imx/svc/seco.h create mode 100644 include/soc/imx/imx-secvio-sc.h