| #
ad194957 |
| 13-Oct-2023 |
Yi Chou <yich@google.com> |
core: pta: widevine: Add the init implementation
On the new ChromeOS mediatek platform, we will use the device tree to pass hardware unique key and the parameters for widevine TAs.
Signed-off-by: Y
core: pta: widevine: Add the init implementation
On the new ChromeOS mediatek platform, we will use the device tree to pass hardware unique key and the parameters for widevine TAs.
Signed-off-by: Yi Chou <yich@google.com> Reviewed-by: Joakim Bech <joakim.bech@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| #
515c1ba9 |
| 22-Mar-2023 |
Clément Léger <clement.leger@bootlin.com> |
drivers: nvmem: add API for nvmem controllers
Add a nvmem API to access nvmem cells using device-tree description. This API allows to register nvmeme provider and obtain nvmem cells for consumer. Mu
drivers: nvmem: add API for nvmem controllers
Add a nvmem API to access nvmem cells using device-tree description. This API allows to register nvmeme provider and obtain nvmem cells for consumer. Much like other subsystem, this one relies on the generic dt_driver mechanism.
Signed-off-by: Clément Léger <clement.leger@bootlin.com> Signed-off-by: Thomas Perrot <thomas.perrot@bootlin.com> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| #
5a2d2237 |
| 07-Sep-2023 |
Arnaud Pouliquen <arnaud.pouliquen@foss.st.com> |
drivers: Add stm32mp1 remoteproc driver
This driver is responsible for configuring the registers and memories of the remote processor. - It stores information about memories assigned to the remote p
drivers: Add stm32mp1 remoteproc driver
This driver is responsible for configuring the registers and memories of the remote processor. - It stores information about memories assigned to the remote processor based on the device tree. - It ensures consistency between the registered memory and the addresses of the firmware segments to be loaded. - Additionally, it is responsible for starting and stopping the remote processor core.
Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com> Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| #
fb5592f9 |
| 09-Oct-2023 |
loubaihui <loubaihui1@huawei.com> |
core: drivers: add HiSilicon TRNG implementation
Based on HiSilicon hardware, a matching TRNG module is added. The driver is enabled for the D06 platform (PLATFORM=d06).
Signed-off-by: loubaihui <l
core: drivers: add HiSilicon TRNG implementation
Based on HiSilicon hardware, a matching TRNG module is added. The driver is enabled for the D06 platform (PLATFORM=d06).
Signed-off-by: loubaihui <loubaihui1@huawei.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com> Acked-by: Xiaoxu Zeng <zengxiaoxu@huawei.com> [jf: amend commit description] Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| #
1a3d3273 |
| 12-Sep-2023 |
Etienne Carriere <etienne.carriere@foss.st.com> |
drivers: regulator framework
Introduces a voltage regulator driver framework for management of regulators and supply dependencies. The framework permits 1 regulator supply per regulator.
API functi
drivers: regulator framework
Introduces a voltage regulator driver framework for management of regulators and supply dependencies. The framework permits 1 regulator supply per regulator.
API function regulator_register() allows a regulator driver to register a regulator in the regulator framework.
Supported operation here are to enable, disable, get and set voltage level. They are all optional.
Registered regulators are referenced in a list for initialization resource release and debug purpose.
Acked-by: Gatien Chevallier <gatien.chevallier@foss.st.com> Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Co-developed-by: Pascal Paillet <p.paillet@foss.st.com> Signed-off-by: Pascal Paillet <p.paillet@foss.st.com> Signed-off-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| #
12438b45 |
| 19-Dec-2022 |
Marouene Boubakri <marouene.boubakri@nxp.com> |
riscv: driver: implement platform-level interrupt controller (PLIC) driver
An initial implementation of RISC-V PLIC driver conforming to the specification. CFG_RISCV_PLIC flag allows building it or
riscv: driver: implement platform-level interrupt controller (PLIC) driver
An initial implementation of RISC-V PLIC driver conforming to the specification. CFG_RISCV_PLIC flag allows building it or not for platforms with custom PLIC IP.
Signed-off-by: Marouene Boubakri <marouene.boubakri@nxp.com> Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| #
9aec039e |
| 22-Feb-2022 |
Clément Léger <clement.leger@bootlin.com> |
drivers: pinctrl: add pinctrl support
Add support for pinctrl support using device-tree. The device-tree "pinctrl-<x>" and "pinctrl-names" properties are supported and allows to apply a pinctrl conf
drivers: pinctrl: add pinctrl support
Add support for pinctrl support using device-tree. The device-tree "pinctrl-<x>" and "pinctrl-names" properties are supported and allows to apply a pinctrl configuration based on this. This support also includes a way to register pin muxing controllers that can apply these states. A few properties of the pinctrl nodes are supported such as "bias-disable", "bias-pull-up" and "bias-pull-down".
Signed-off-by: Clément Léger <clement.leger@bootlin.com> Signed-off-by: Thomas Perrot <thomas.perrot@bootlin.com> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| #
4fc179b6 |
| 11-May-2023 |
Thomas Perrot <thomas.perrot@bootlin.com> |
drivers: gpio: add device-tree based gpio controller framework
Build a small gpio framework based on the device-tree infrastructure and on top of the existing gpio.h content. This framework allows t
drivers: gpio: add device-tree based gpio controller framework
Build a small gpio framework based on the device-tree infrastructure and on top of the existing gpio.h content. This framework allows to register gpio controllers and to retrieve gpio struct based on a "<name>-gpios" properties.
Signed-off-by: Clément Léger <clement.leger@bootlin.com> Signed-off-by: Thomas Perrot <thomas.perrot@bootlin.com> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| #
946f37ee |
| 04-Apr-2022 |
Etienne Carriere <etienne.carriere@linaro.org> |
driver: tpm2: remove TPM2 driver
Remove TPM2 driver from OP-TEE core. OP-TEE will instead rely on a remote REE TPM2 driver allowing REE OS to embed TPM2 software stack and leverage TPM2 features.
A
driver: tpm2: remove TPM2 driver
Remove TPM2 driver from OP-TEE core. OP-TEE will instead rely on a remote REE TPM2 driver allowing REE OS to embed TPM2 software stack and leverage TPM2 features.
Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| #
92b64e4f |
| 28-Apr-2023 |
Clement Faure <clement.faure@nxp.com> |
drivers: imx_csu: move imx_csu driver source file
Move imx_csu driver from plat-imx/ to core/drivers/ Rename CFG_CSU to CFG_IMX_CSU compilation flag.
Signed-off-by: Clement Faure <clement.faure@nxp
drivers: imx_csu: move imx_csu driver source file
Move imx_csu driver from plat-imx/ to core/drivers/ Rename CFG_CSU to CFG_IMX_CSU compilation flag.
Signed-off-by: Clement Faure <clement.faure@nxp.com> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| #
40c3f16e |
| 28-Apr-2023 |
Clement Faure <clement.faure@nxp.com> |
drivers: imx_scu: move imx_scu driver source file
Move imx_scu driver from plat-imx/ to core/drivers/ Rename CFG_SCU to CFG_IMX_SCU compilation flag.
Signed-off-by: Clement Faure <clement.faure@nxp
drivers: imx_scu: move imx_scu driver source file
Move imx_scu driver from plat-imx/ to core/drivers/ Rename CFG_SCU to CFG_IMX_SCU compilation flag.
Signed-off-by: Clement Faure <clement.faure@nxp.com> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| #
fab76a67 |
| 28-Apr-2023 |
Clement Faure <clement.faure@nxp.com> |
driver: imx_caam: move imx_caam driver source file
Move imx_caam driver from plat-imx/ to core/drivers/
Signed-off-by: Clement Faure <clement.faure@nxp.com> Reviewed-by: Jerome Forissier <jerome.fo
driver: imx_caam: move imx_caam driver source file
Move imx_caam driver from plat-imx/ to core/drivers/
Signed-off-by: Clement Faure <clement.faure@nxp.com> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| #
426790bd |
| 13-Feb-2023 |
Jeffrey Kardatzke <jkardatzke@google.com> |
drivers: add cbmem console driver
This adds a CBMEM console driver which gets the cbmem address from a device tree with the coreboot table information.
Signed-off-by: Jeffrey Kardatzke <jkardatzke@
drivers: add cbmem console driver
This adds a CBMEM console driver which gets the cbmem address from a device tree with the coreboot table information.
Signed-off-by: Jeffrey Kardatzke <jkardatzke@google.com> Acked-by: Etienne Carriere <etienne.carriere@linaro.org> Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
8bc9c9e2 |
| 16-Dec-2022 |
Clément Léger <clement.leger@bootlin.com> |
drivers: i2c: add a simple framework to handle i2c devices
Add simple i2c support which provides support for I2C controllers and devices using the generic DT mechanisms that already exists. I2C cont
drivers: i2c: add a simple framework to handle i2c devices
Add simple i2c support which provides support for I2C controllers and devices using the generic DT mechanisms that already exists. I2C controllers needs to implement i2c_ctrl_ops to provide i2c operations such as read, write and smbus commands depending on their capabilities. I2C devices driver can then be defined using DEFINE_I2C_DEV_DRIVER(). This macros will use a default i2c probe function (__i2c_probe()) which will then call the I2C device probe function by passing a i2c_dev struct that can be used to communicate with the I2C device defined in the device-tree.
Signed-off-by: Clément Léger <clement.leger@bootlin.com> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| #
f60c6b9c |
| 26-Jan-2023 |
Clement Faure <clement.faure@nxp.com> |
drivers: imx_ele: add ELE driver
Add EdgeLock Enclave (or ELE) driver support. ELE is a built-in security subsystem available on imx8ulp and imx93 providing security features to the Cortex-A.
Signe
drivers: imx_ele: add ELE driver
Add EdgeLock Enclave (or ELE) driver support. ELE is a built-in security subsystem available on imx8ulp and imx93 providing security features to the Cortex-A.
Signed-off-by: Clement Faure <clement.faure@nxp.com> Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| #
a0602052 |
| 08-Nov-2022 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: add driver for hafnium interrupt controller
Adds a driver for the paravirtualized interrupt controller provided by Hafnium at S-EL2. The driver is enabled with CFG_CORE_HAFNIUM_INTC=y.
The in
core: add driver for hafnium interrupt controller
Adds a driver for the paravirtualized interrupt controller provided by Hafnium at S-EL2. The driver is enabled with CFG_CORE_HAFNIUM_INTC=y.
The interrupt controller is limited compared to the GIC and only works with interrupt ids which are already added in the SP manifest or as predefined reserved interrupt ids.
Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
cd0d1dd6 |
| 03-Jan-2023 |
Jorge Ramirez-Ortiz <jorge@foundries.io> |
drivers: versal: hardware unique key
The hardware unique key is calculated as the AS-GCM encrypted value of the SoC DNA unique identifier.
The key source used for encryption is selectable at build
drivers: versal: hardware unique key
The hardware unique key is calculated as the AS-GCM encrypted value of the SoC DNA unique identifier.
The key source used for encryption is selectable at build time using the CFG_VERSAL_HUK_KEY configuration flag.
The following sources are supported VERSAL_AES_EFUSE_USER_KEY_0 (CFG_VERSAL_HUK_KEY = 6) VERSAL_AES_EFUSE_USER_KEY_1 (CFG_VERSAL_HUK_KEY = 7) VERSAL_AES_PUF_KEY (CFG_VERSAL_HUK_KEY = 11) VERSAL_AES_USER_KEY_0 (CFG_VERSAL_HUK_KEY = 12 (default))
The default configuration does not generate a secret HUK since the key is hardcoded in the driver - it however validates the algorithm; but security-wise it is not different than not enabling CFG_VERSAL_HUK and therefore using the OP-TEE provided HUK stub.
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 ...
|
| #
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 ...
|
| #
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 ...
|
| #
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 ...
|
| #
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 ...
|
| #
cc672e1f |
| 04-Jul-2022 |
Jorge Ramirez-Ortiz <jorge@foundries.io> |
drivers: versal: true random number generator
Configure the TRNG driver to operate in Hybrid mode with derivative function.
This driver was ported from its original FSBL implementation [1].
[1] ht
drivers: versal: true random number generator
Configure the TRNG driver to operate in Hybrid mode with derivative function.
This driver was ported from its original FSBL implementation [1].
[1] 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 ...
|
| #
7e203c67 |
| 27-Sep-2022 |
Jorge Ramirez-Ortiz <jorge@foundries.io> |
core: drivers: stm32mp15 Hardware Unique Key driver
Generate a secret Hardware Unique Key from BSEC OTPs.
The algorithm used simplifies the device provisioning phase because it does not require a u
core: drivers: stm32mp15 Hardware Unique Key driver
Generate a secret Hardware Unique Key from BSEC OTPs.
The algorithm used simplifies the device provisioning phase because it does not require a unique per device secret to be fused: just a key common to all devices.
The algorithm uses a 128 bit symmetric key stored as four 32 bit words read from OTP fuses.
The HUK is calculated by AES-GCM encrypting the device UID (96 bits).
Since the UID is persistent - and so should be the key - the NONCE can be reused and hold any value.
The OTP values must be secrets but don't need to be unique per-device.
Signed-off-by: Jorge Ramirez-Ortiz <jorge@foundries.io> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| #
40e40cd2 |
| 04-Jul-2022 |
Jorge Ramirez-Ortiz <jorge@foundries.io> |
drivers: versal: PM service
Calls the TF-A exported SiP services or PLM PM APIs.
The programming of the FPGA bitstream is being phased out from the TF-A so it is no longer supported as such: the re
drivers: versal: PM service
Calls the TF-A exported SiP services or PLM PM APIs.
The programming of the FPGA bitstream is being phased out from the TF-A so it is no longer supported as such: the recommended interface uses the MBOX driver to the PLM.
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 ...
|