| 667e576e | 04-Jul-2022 |
Jorge Ramirez-Ortiz <jorge@foundries.io> |
drivers: versal: physical unclonable function
This driver uses the PLM xilpuf service to deliver the physical unclonable function (PUF).
The Physical unclonable function (PUF) generates two device
drivers: versal: physical unclonable function
This driver uses the PLM xilpuf service to deliver the physical unclonable function (PUF).
The Physical unclonable function (PUF) generates two device unique signatures per die. One signature is used for the key encryption key (KEK) and one signature is used as an unique identification value.
The Unique ID is fully accessible and its value can be cleared (hidden) and regenerated.
The KEK is never accessible and only usable from the AES-GCM engine.
https://github.com/Xilinx/embeddedsw
[1] TRM: https://docs.xilinx.com/r/en-US/am011-versal-acap-trm
Signed-off-by: Jorge Ramirez-Ortiz <jorge@foundries.io> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| e4c76cc2 | 15-Dec-2022 |
Jorge Ramirez-Ortiz <jorge@foundries.io> |
drivers: versal_pm: fix compilation issue
The "struct ipi_cmd" was used during the development of the versal_mbox driver; during the mbox driver review, the struct was renamed to versal_ipi_cmd.
Th
drivers: versal_pm: fix compilation issue
The "struct ipi_cmd" was used during the development of the versal_mbox driver; during the mbox driver review, the struct was renamed to versal_ipi_cmd.
The code being removed in this commit was merged by mistake.
Signed-off-by: Jorge Ramirez-Ortiz <jorge@foundries.io> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| 93114f2e | 07-Dec-2022 |
Gatien Chevallier <gatien.chevallier@foss.st.com> |
drivers: stm32_bsec: support NVMEM cell description in device-tree
Support the nvmem cells description in device tree and add the platform helper function stm32_bsec_find_otp_in_nvmem_layout() that
drivers: stm32_bsec: support NVMEM cell description in device-tree
Support the nvmem cells description in device tree and add the platform helper function stm32_bsec_find_otp_in_nvmem_layout() that allows drivers to find an OTP location (BSEC word number and bit size) from the OTP string identifier, name of the cell in device tree.
The bsec driver directly reads the nvmem cells sub node of bsec device.
This allow to remove the hardcoded OTP index in platform and is aligned with linux kernel binding.
Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com> Signed-off-by: Gatien Chevallier <gatien.chevallier@foss.st.com> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| 1ff52b85 | 12-Dec-2022 |
Gatien Chevallier <gatien.chevallier@foss.st.com> |
drivers: stm32_bsec: move debug defines to include
Moves definition of DEBUG status macros from driver source file to its header file to allow other drivers to control the debug level. Introduces BS
drivers: stm32_bsec: move debug defines to include
Moves definition of DEBUG status macros from driver source file to its header file to allow other drivers to control the debug level. Introduces BSEC_DEBUG_ALL that is the default debug configuration. Removes configuration masking as it has no use.
Signed-off-by: Lionel Debieve <lionel.debieve@foss.st.com> Signed-off-by: Gatien Chevallier <gatien.chevallier@foss.st.com> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| 27a02b1e | 12-Dec-2022 |
Gatien Chevallier <gatien.chevallier@foss.st.com> |
drivers: stm32_bsec: use _fdt_reg* API
Changes bsec_dt_otp_nsec_access() to use _fdt_reg_base_address() and _fdt_reg_size().
Signed-off-by: Gatien Chevallier <gatien.chevallier@foss.st.com> Reviewe
drivers: stm32_bsec: use _fdt_reg* API
Changes bsec_dt_otp_nsec_access() to use _fdt_reg_base_address() and _fdt_reg_size().
Signed-off-by: Gatien Chevallier <gatien.chevallier@foss.st.com> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| c6d2483a | 12-Dec-2022 |
Gatien Chevallier <gatien.chevallier@foss.st.com> |
drivers: stm32_bsec: correct address in lock support for any upper_base value
The address computed in stm32_bsec_permanent_lock_otp (with hardcoded +2 offset) only supports OTP upper base offset 32.
drivers: stm32_bsec: correct address in lock support for any upper_base value
The address computed in stm32_bsec_permanent_lock_otp (with hardcoded +2 offset) only supports OTP upper base offset 32. This patch corrects to handle any value of OTP upper base.
This patch corrects to handle any value of OTP upper base. and simplify this part by using division clearer than mask in this context.
Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com> Signed-off-by: Gatien Chevallier <gatien.chevallier@foss.st.com> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| 4bbd20f1 | 12-Dec-2022 |
Gatien Chevallier <gatien.chevallier@foss.st.com> |
drivers: stm32_bsec: use U() for unsigned constants
Updates with the U() macro as described in the coding guidelines.
Signed-off-by: Lionel Debieve <lionel.debieve@foss.st.com> Signed-off-by: Gatie
drivers: stm32_bsec: use U() for unsigned constants
Updates with the U() macro as described in the coding guidelines.
Signed-off-by: Lionel Debieve <lionel.debieve@foss.st.com> Signed-off-by: Gatien Chevallier <gatien.chevallier@foss.st.com> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| 8396f62e | 15-Dec-2022 |
Gatien Chevallier <gatien.chevallier@foss.st.com> |
drivers: stm32_bsec: rework and move BITS_PER_WORD
Transforms BITS_PER_WORD to BSEC_BITS_PER_WORD to specify it is BSEC-related and move it to BSEC driver header file.
Adds BSEC_BYTES_PER_WORD for
drivers: stm32_bsec: rework and move BITS_PER_WORD
Transforms BITS_PER_WORD to BSEC_BITS_PER_WORD to specify it is BSEC-related and move it to BSEC driver header file.
Adds BSEC_BYTES_PER_WORD for later use.
Signed-off-by: Gatien Chevallier <gatien.chevallier@foss.st.com> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| de7a768c | 30-Nov-2022 |
Xiaoxu Zeng <zengxiaoxu@huawei.com> |
drivers: implement lpc_uart driver
Support for lpc_uart that is a serial driver.
Signed-off-by: Xiaoxu Zeng <zengxiaoxu@huawei.com> Signed-off-by: Zeng Tao <prime.zeng@hisilicon.com> Reviewed-by: J
drivers: implement lpc_uart driver
Support for lpc_uart that is a serial driver.
Signed-off-by: Xiaoxu Zeng <zengxiaoxu@huawei.com> Signed-off-by: Zeng Tao <prime.zeng@hisilicon.com> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 0e074465 | 06-Dec-2022 |
Jerome Forissier <jerome.forissier@linaro.org> |
drivers: imx_lpuart: remove stubbed .flush() implementation
There is no need to provide function stubs for unimplemented functions in struct serial_ops. Just let the compiler set the pointer to NULL
drivers: imx_lpuart: remove stubbed .flush() implementation
There is no need to provide function stubs for unimplemented functions in struct serial_ops. Just let the compiler set the pointer to NULL.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| 011c182a | 12-Sep-2022 |
Andrew Mustea <andrew.mustea@microsoft.com> |
core: drivers: nxp: Add LX series SFP driver
- Implement reading and writing to the NXP LX2160-series Security Fuse Processor (SFP). - Add the CFG_LS_SFP flag to enable building the SFP driver. -
core: drivers: nxp: Add LX series SFP driver
- Implement reading and writing to the NXP LX2160-series Security Fuse Processor (SFP). - Add the CFG_LS_SFP flag to enable building the SFP driver. - The SFP driver should be able to: - Read the entire SFP. - Read the debug level. - Read the Intent to Secure (ITS) and Secure Boot (SB) flags. - Read individual OEM Unique Scratch Pad Fuse (OUID) registers. - Read individual Super Root Key Hash (SRKH) registers. - Set the debug level. - Set the device to permanently program the fuse block by setting the ITS and SB flags. - Set individual OUID registers. - Get the status of the SFP driver itself. - Update fsl-lx2160a device tree with sfp and gpio nodes.
Signed-off-by: Andrew Mustea <andrew.mustea@microsoft.com> Reviewed-by: Sahil Malhotra <sahil.malhotra@nxp.com> Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| 4502832d | 30-Nov-2022 |
Jorge Ramirez-Ortiz <jorge@foundries.io> |
drivers: versal: SHA3-384 engine support
Enable the PLM controlled SHA3-384 cryptographic engine for TEE core usage.
Since the engine does not have the concept of "context", it can't provide the le
drivers: versal: SHA3-384 engine support
Enable the PLM controlled SHA3-384 cryptographic engine for TEE core usage.
Since the engine does not have the concept of "context", it can't provide the level support required by user-space (multiple parallel contexts) hence why it is being provided just to the core.
Signed-off-by: Jorge Ramirez-Ortiz <jorge@foundries.io> Reviewed-by: Nathan Menhorn <nathan.menhorn@amd.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| cef8ce12 | 11-Nov-2022 |
Jorge Ramirez-Ortiz <jorge@foundries.io> |
crypto: versal: RSA driver
This driver uses the PLM xilsecure service to deliver RSA encryption/decryption functionality.
https://github.com/Xilinx/embeddedsw
Signed-off-by: Jorge Ramirez-Ortiz <j
crypto: versal: RSA driver
This driver uses the PLM xilsecure service to deliver RSA encryption/decryption functionality.
https://github.com/Xilinx/embeddedsw
Signed-off-by: Jorge Ramirez-Ortiz <jorge@foundries.io> Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| 49b0febc | 04-Jul-2022 |
Jorge Ramirez-Ortiz <jorge@foundries.io> |
crypto: versal: elliptic curve cryptography driver
This driver uses the PLM xilsecure service to deliver ECC sign/verify functionality.
Signed-off-by: Jorge Ramirez-Ortiz <jorge@foundries.io> Acked
crypto: versal: elliptic curve cryptography driver
This driver uses the PLM xilsecure service to deliver ECC sign/verify functionality.
Signed-off-by: Jorge Ramirez-Ortiz <jorge@foundries.io> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| b303be92 | 01-Apr-2022 |
Jens Wiklander <jens.wiklander@linaro.org> |
drivers: crypto: add stubbed fault mitigation in crypto_acipher_rsassa_verify()
Adds a stubbed fault mitigation for the drivers version of crypto_acipher_rsassa_verify). End the function with FTMN_C
drivers: crypto: add stubbed fault mitigation in crypto_acipher_rsassa_verify()
Adds a stubbed fault mitigation for the drivers version of crypto_acipher_rsassa_verify). End the function with FTMN_CALLEE_DONE() to record that the function was indeed called and a redundant copy of the return value.
Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| dc23c448 | 20-Oct-2022 |
Jorge Ramirez-Ortiz <jorge@foundries.io> |
crypto: versal: authentication driver
This driver uses the PLM xilsecure service to deliver authentication functionality using AES-GCM.
The driver currently does not handle unaligned data and lengt
crypto: versal: authentication driver
This driver uses the PLM xilsecure service to deliver authentication functionality using AES-GCM.
The driver currently does not handle unaligned data and lengths; due to this the corresponding xtest regression test will not pass (xtest -t regression 4005 will fail).
Signed-off-by: Jorge Ramirez-Ortiz <jorge@foundries.io> Acked-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| 614bc034 | 04-Jul-2022 |
Jorge Ramirez-Ortiz <jorge@foundries.io> |
crypto: versal: interprocessor communication
Interface to the PLM xilsecure service.
Signed-off-by: Jorge Ramirez-Ortiz <jorge@foundries.io> Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
crypto: versal: interprocessor communication
Interface to the PLM xilsecure service.
Signed-off-by: Jorge Ramirez-Ortiz <jorge@foundries.io> Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| e41e74a8 | 10-Nov-2022 |
Jorge Ramirez-Ortiz <jorge@foundries.io> |
crypto: se050: provision SCP03 keys on SCP03 enablement.
Rotate the SCP03 keys as soon as the SCP03 communication channel is established.
This can happen during boot or at a later time via normal w
crypto: se050: provision SCP03 keys on SCP03 enablement.
Rotate the SCP03 keys as soon as the SCP03 communication channel is established.
This can happen during boot or at a later time via normal world request [1].
The rotation configuration that can be built-in in the driver allows the algorithm to rotate to a HUK based secret key or back to the factory based keys.
[1] https://u-boot.readthedocs.io/en/latest/usage/cmd/scp03.html
Signed-off-by: Jorge Ramirez-Ortiz <jorge@foundries.io> Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| d5050d09 | 10-Nov-2022 |
Jorge Ramirez-Ortiz <jorge@foundries.io> |
crypto: se050: reword configuration options
Reword and add caution clauses to some of the critical configuration options in the driver.
Signed-off-by: Jorge Ramirez-Ortiz <jorge@foundries.io> Acked
crypto: se050: reword configuration options
Reword and add caution clauses to some of the critical configuration options in the driver.
Signed-off-by: Jorge Ramirez-Ortiz <jorge@foundries.io> Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| a833cb74 | 21-Oct-2022 |
Etienne Carriere <etienne.carriere@linaro.org> |
drivers: stm32mp15_huk: default to fuse key without derivation
Introduces 2 configuration switches for defining how stm32mp15 HUK is generated from fuses. Both are exclusive. One of them must be set
drivers: stm32mp15_huk: default to fuse key without derivation
Introduces 2 configuration switches for defining how stm32mp15 HUK is generated from fuses. Both are exclusive. One of them must be set when CFG_STM32MP15_HUK is enable.
When CFG_STM32MP15_HUK_BSEC_KEY is enabled, HUK is HUK fuses raw content. When CFG_STM32MP15_HUK_BSEC_DERIVE_UID is enabled, HUK is the derivation of HUK fuses content derived with device UID fuses content.
The platform default enables CFG_STM32MP15_HUK_BSEC_KEY when CFG_STM32MP15_HUK is enable.
Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| 5ddb11a1 | 04-Nov-2022 |
Jorge Ramirez-Ortiz <jorge@foundries.io> |
crypto: se050: provision SCP03 keys back factory keys
This commit allows a user who might have rotated the device's SCP03 keys to reset them back to their factory settings (public).
Signed-off-by:
crypto: se050: provision SCP03 keys back factory keys
This commit allows a user who might have rotated the device's SCP03 keys to reset them back to their factory settings (public).
Signed-off-by: Jorge Ramirez-Ortiz <jorge@foundries.io> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| b54b17ab | 04-Nov-2022 |
Jorge Ramirez-Ortiz <jorge@foundries.io> |
crypto: se050: output the SCP03 security level to the console
The SCP03 keys used in the secure channel have different levels of security that can change at runtime.
Output the name of the one bein
crypto: se050: output the SCP03 security level to the console
The SCP03 keys used in the secure channel have different levels of security that can change at runtime.
Output the name of the one being used to the console for informational purposes.
Signed-off-by: Jorge Ramirez-Ortiz <jorge@foundries.io> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 25a36f4c | 08-Feb-2022 |
Vesa Jääskeläinen <vesa.jaaskelainen@vaisala.com> |
drivers: clk_dt: Switch to use get_secure_dt()
This adds support for both embedded and external secure device trees so that clock driver and system configuration information can be fetched from ther
drivers: clk_dt: Switch to use get_secure_dt()
This adds support for both embedded and external secure device trees so that clock driver and system configuration information can be fetched from there.
Signed-off-by: Vesa Jääskeläinen <vesa.jaaskelainen@vaisala.com> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| 55667e70 | 04-Jul-2022 |
Jorge Ramirez-Ortiz <jorge@foundries.io> |
drivers: versal: non volatile memory (eFuse and BBRAM)
Provide an interface to access the xilnvm service executing in the PLM firmware running on the Microblaze processor.
Signed-off-by: Jorge Rami
drivers: versal: non volatile memory (eFuse and BBRAM)
Provide an interface to access the xilnvm service executing in the PLM firmware running on the Microblaze processor.
Signed-off-by: Jorge Ramirez-Ortiz <jorge@foundries.io> Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| 64d3c0c2 | 08-Sep-2022 |
Olivier Masse <olivier.masse@nxp.com> |
plat-imx, plat-ls: replace crypto_conf.mk by common drivers/crypto/caam/crypto.mk
move platform specific conf file to crypto drivers one. CFG_CRYPTO_DRIVER should be define in driver conf file inste
plat-imx, plat-ls: replace crypto_conf.mk by common drivers/crypto/caam/crypto.mk
move platform specific conf file to crypto drivers one. CFG_CRYPTO_DRIVER should be define in driver conf file instead of platform configuration file.
Signed-off-by: Olivier Masse <olivier.masse@nxp.com> Acked-by: Etienne Carriere <etienne.carriere@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Clement Faure <clement.faure@nxp.com>
show more ...
|