| 0b345c6c | 07-Feb-2019 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: add tee_tadb_get_tag()
Adds the function tee_tadb_get_tag() which returns a tag that uniquely identifies a TA.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens
core: add tee_tadb_get_tag()
Adds the function tee_tadb_get_tag() which returns a tag that uniquely identifies a TA.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 9f31ef5a | 07-Feb-2019 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: add a file abstraction
Adds a struct file which is used to share fobjs with other memory mappings or contexts.
Acked-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wik
core: add a file abstraction
Adds a struct file which is used to share fobjs with other memory mappings or contexts.
Acked-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 6cc3087f | 07-Feb-2019 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: user_ta: support mapping paged parameters
Supports mapping shared paged parameters for user TA.
vm_map() is modified to map objects with the TEE_MATTR_EPHEMERAL attribute which is an indicati
core: user_ta: support mapping paged parameters
Supports mapping shared paged parameters for user TA.
vm_map() is modified to map objects with the TEE_MATTR_EPHEMERAL attribute which is an indication that it's a parameter instead of TA code/data or permanent mapping.
tee_mmu_clean_param() is added to clean out all parameters added with tee_mmu_map_param().
In tee_mmu_map_param() instead of clearing out any old parameters there's a check to see that there's no old parameters hanging around.
Finally mobj_update_mapping() is removed since the pager now supports shared mappings.
Acked-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| b83c0d5f | 07-Feb-2019 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: pager: record fobj in pmem instead of area
Records the fobj backing the physical page represented by a pmem instead of struct tee_pager_area which was used prior to this patch. Each fobj can
core: pager: record fobj in pmem instead of area
Records the fobj backing the physical page represented by a pmem instead of struct tee_pager_area which was used prior to this patch. Each fobj can be used by several unrelated areas in the end allowing real shared memory between multiple user context.
Reference counting for the page tables is increasing in activity since entries which are hidden/unhidden also decrease/increase the count. This is because there's no difference between unhiding a pmem or just mapping it again in another page table.
The memory sharing is not fully taken advantage of in this patch.
Acked-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| e595a5f0 | 07-Feb-2019 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: remove TEE_MATTR_HIDDEN_*
Removes the now unused TEE_MATTR_HIDDEN_BLOCK and TEE_MATTR_HIDDEN_DIRTY_BLOCK.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wikla
core: remove TEE_MATTR_HIDDEN_*
Removes the now unused TEE_MATTR_HIDDEN_BLOCK and TEE_MATTR_HIDDEN_DIRTY_BLOCK.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| fbcaa411 | 07-Feb-2019 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: add fobj_sec_mem_alloc()
Adds fobj_sec_mem_alloc() which allocates physical memory from tee_mm_sec_ddr, to be used as TA memory.
Support is added in the MOBJ of with_fobj type to handle this
core: add fobj_sec_mem_alloc()
Adds fobj_sec_mem_alloc() which allocates physical memory from tee_mm_sec_ddr, to be used as TA memory.
Support is added in the MOBJ of with_fobj type to handle this new kind of fobj.
A fobj_ta_mem_alloc() macro is added to use either fobj_rw_paged_alloc() if paging of user TAs is enabled or else to use fobj_sec_mem_alloc() instead.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| ee546289 | 07-Feb-2019 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: add a file object interface
Adds a file object interface which is an abstraction of the storage part in a struct tee_pager_area. This adds no new features, just moves some code from tee_pager.
core: add a file object interface
Adds a file object interface which is an abstraction of the storage part in a struct tee_pager_area. This adds no new features, just moves some code from tee_pager.c into fobj.c.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 082f27ae | 03-May-2019 |
Etienne Carriere <etienne.carriere@st.com> |
stm32_uart: pin control with stm32_gpio
stm32_uart instance get related pins configuration from device tree content.
Signed-off-by: Etienne Carriere <etienne.carriere@st.com> Acked-by: Jerome Foris
stm32_uart: pin control with stm32_gpio
stm32_uart instance get related pins configuration from device tree content.
Signed-off-by: Etienne Carriere <etienne.carriere@st.com> Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| 61e7d84c | 29-Apr-2019 |
Etienne Carriere <etienne.carriere@linaro.org> |
stm32_i2c: expose standard speed in driver API
Move definition of I2C standard speeds configuration means from driver source file to its header file. This change allows bus owners to use appropriate
stm32_i2c: expose standard speed in driver API
Move definition of I2C standard speeds configuration means from driver source file to its header file. This change allows bus owners to use appropriate value for bus configuration.
Exposes struct i2c_speed_e and enum i2c_speed_e
This change fixes the driver API as enum i2c_speed_e is expected by the API.
Fixes: b844655c9519 ("stm32_i2c: driver for STM32 I2C bus")
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Joakim Bech <joakim.bech@linaro.org>
show more ...
|
| 8aeb6c94 | 18-Apr-2019 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: introduce CFG_CORE_RESERVED_SHM
Introduces CFG_CORE_RESERVED_SHM which if set to y enables reserved shared memory, else disables support for reserved shared memory.
Reviewed-by: Etienne Carri
core: introduce CFG_CORE_RESERVED_SHM
Introduces CFG_CORE_RESERVED_SHM which if set to y enables reserved shared memory, else disables support for reserved shared memory.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 37a6b717 | 18-Apr-2019 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: introduce CFG_CORE_DYN_SHM
Introduces CFG_CORE_DYN_SHM which if set to y enables dynamic shared memory, else disables support for dynamic shared memory. In contrast with CFG_DYN_SHM_CAP it act
core: introduce CFG_CORE_DYN_SHM
Introduces CFG_CORE_DYN_SHM which if set to y enables dynamic shared memory, else disables support for dynamic shared memory. In contrast with CFG_DYN_SHM_CAP it actually removes the support instead of just omit reporting it.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| fa0525fa | 25-Apr-2019 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: introduce huk_subkey_derive()
The hardware unique key should preferably only be used to generate other keys. This is encouraged with huk_subkey_derive() which is used to derive a subkey from
core: introduce huk_subkey_derive()
The hardware unique key should preferably only be used to generate other keys. This is encouraged with huk_subkey_derive() which is used to derive a subkey from the hardware unique key.
Reviewed-by: Joakim Bech <joakim.bech@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| e61fc00f | 19-Apr-2019 |
Sandeep Tripathy <sandeep.tripathy@broadcom.com> |
drivers: bcm_gpio: add IPROC GPIO driver
low level driver for Broadcom IPROC GPIO controller.
Signed-off-by: Sandeep Tripathy <sandeep.tripathy@broadcom.com> Acked-by: Etienne Carriere <etienne.car
drivers: bcm_gpio: add IPROC GPIO driver
low level driver for Broadcom IPROC GPIO controller.
Signed-off-by: Sandeep Tripathy <sandeep.tripathy@broadcom.com> Acked-by: Etienne Carriere <etienne.carriere@linaro.org> Acked-by: Victor Chong <victor.chong@linaro.org>
show more ...
|
| e8e7f1c5 | 18-Mar-2019 |
Rouven Czerwinski <r.czerwinski@pengutronix.de> |
tzc380: add region auto configuration function
The tzc_auto_configure() function takes an address, a size, the attribute and a region as arguments. It calculates the fitting tzc380 region configurat
tzc380: add region auto configuration function
The tzc_auto_configure() function takes an address, a size, the attribute and a region as arguments. It calculates the fitting tzc380 region configuration and applies it to the controller.
Signed-off-by: Rouven Czerwinski <r.czerwinski@pengutronix.de> Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| 7eedcd15 | 12-Mar-2019 |
Rouven Czerwinski <rouven@czerwinskis.de> |
tzc380: add function to retrieve action register
The TZC380 IP has an action configuration which defines the action taken if a region is accessed with the wrong permissions. Devices do not have to s
tzc380: add function to retrieve action register
The TZC380 IP has an action configuration which defines the action taken if a region is accessed with the wrong permissions. Devices do not have to set the action register explicitly, add a function to retrieve the default configuration.
Signed-off-by: Rouven Czerwinski <rouven@czerwinskis.de> Acked-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| 525c44ee | 12-Apr-2019 |
Sandeep Tripathy <sandeep.tripathy@broadcom.com> |
drivers: bcm_sotp: add SOTP driver
low level driver for Broadcom SOTP controller.
Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Si
drivers: bcm_sotp: add SOTP driver
low level driver for Broadcom SOTP controller.
Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Rahul Gupta <rahul.gupta@broadcom.com> Signed-off-by: Sandeep Tripathy <sandeep.tripathy@broadcom.com>
show more ...
|
| 16b6c0f6 | 12-Apr-2019 |
Sandeep Tripathy <sandeep.tripathy@broadcom.com> |
drivers: bcm_hwrng: add HWRNG driver
low level driver for Broadcom random number generator IP.
Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Signed-off-by: Bharat Kumar Reddy Gooty <bharat.g
drivers: bcm_hwrng: add HWRNG driver
low level driver for Broadcom random number generator IP.
Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Signed-off-by: Bharat Kumar Reddy Gooty <bharat.gooty@broadcom.com> Signed-off-by: Sandeep Tripathy <sandeep.tripathy@broadcom.com>
show more ...
|
| c75303f7 | 08-Mar-2019 |
Etienne Carriere <etienne.carriere@linaro.org> |
stm32_i2c: handle pinctrl
Get pinctrl support from stm32_gpio.h into STM32 I2C driver. When device tree content defines pins related to an I2C interface, the I2C driver saves the pins configuration
stm32_i2c: handle pinctrl
Get pinctrl support from stm32_gpio.h into STM32 I2C driver. When device tree content defines pins related to an I2C interface, the I2C driver saves the pins configuration instances and set the registered pins in the expected power mode at runtime.
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| f3c22059 | 13-Feb-2019 |
Etienne Carriere <etienne.carriere@st.com> |
stm32_rng: driver for STM32 RNG
Drivers is embedded upon CFG_STM32_RNG=y.
The driver main API functions are: - stm32_rng_read() to get a buffer of random bytes, - stm32_rng_read_raw() to get a buff
stm32_rng: driver for STM32 RNG
Drivers is embedded upon CFG_STM32_RNG=y.
The driver main API functions are: - stm32_rng_read() to get a buffer of random bytes, - stm32_rng_read_raw() to get a buffer of random bytes assuming the RNG hardware is ready, i.e clock enabled.
The device driver is initialized from DT resource when a secure DTB, currently the embedded DTB, is found.
STM32 RNG driver assumes the platform supports at most RNG instance in the secure world.
Signed-off-by: Etienne Carriere <etienne.carriere@st.com> Signed-off-by: Lionel Debieve <lionel.debieve@st.com> Signed-off-by: Nicolas Le Bayon <nicolas.le.bayon@st.com> Signed-off-by: Yann Gautier <yann.gautier@st.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| e7dbc357 | 02-Jul-2018 |
Summer Qin <summer.qin@arm.com> |
core: add encrypt key length in AES encrypt API
Adds size of expanded AES encryption key to crypto_aes_expand_enc_key() and crypto_aes_enc_block() to make the functions more safe to call.
Reviewed-
core: add encrypt key length in AES encrypt API
Adds size of expanded AES encryption key to crypto_aes_expand_enc_key() and crypto_aes_enc_block() to make the functions more safe to call.
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Summer Qin <summer.qin@arm.com> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| f1e9b21b | 08-Mar-2019 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: crypto: introduce struct crypto_authenc_ops
Uses struct crypto_authenc_ops pointer in crypto context for authenc ciphers (AES-GCM and AES-CCM) as a glue layer instead of a switch(algo) in each
core: crypto: introduce struct crypto_authenc_ops
Uses struct crypto_authenc_ops pointer in crypto context for authenc ciphers (AES-GCM and AES-CCM) as a glue layer instead of a switch(algo) in each cryto_authenc_*() function.
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 96098f01 | 08-Mar-2019 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: crypto: introduce struct crypto_cipher_ops
Uses struct crypto_cipher_ops pointer in crypto context for ciphers as a glue layer instead of a switch(algo) in each crypto_cipher_*() function.
Re
core: crypto: introduce struct crypto_cipher_ops
Uses struct crypto_cipher_ops pointer in crypto context for ciphers as a glue layer instead of a switch(algo) in each crypto_cipher_*() function.
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 5da36a24 | 08-Mar-2019 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: crypto: introduce struct crypto_mac_ops
Uses struct crypto_mac_ops pointer in crypto context for MACs as a glue layer instead of a switch(algo) in each crypto_mac_*() function.
Moves CBC-MAC
core: crypto: introduce struct crypto_mac_ops
Uses struct crypto_mac_ops pointer in crypto context for MACs as a glue layer instead of a switch(algo) in each crypto_mac_*() function.
Moves CBC-MAC implementation from LTC wrapper to core/crypto.
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 6648f482 | 08-Mar-2019 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: crypto: introduce struct crypto_hash_ops
Uses struct crypto_hash_ops pointer in crypto context for hashes as a glue layer instead of a switch(algo) in each crypto_hash_*() function.
Reviewed-
core: crypto: introduce struct crypto_hash_ops
Uses struct crypto_hash_ops pointer in crypto context for hashes as a glue layer instead of a switch(algo) in each crypto_hash_*() function.
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| b844655c | 07-Mar-2019 |
Etienne Carriere <etienne.carriere@st.com> |
stm32_i2c: driver for STM32 I2C bus
Drivers is embedded upon CFG_STM32_I2C=y.
The driver main API functions are: stm32_i2c_init() to initialize the device driver, stm32_i2c_mem_{write|read}() for I
stm32_i2c: driver for STM32 I2C bus
Drivers is embedded upon CFG_STM32_I2C=y.
The driver main API functions are: stm32_i2c_init() to initialize the device driver, stm32_i2c_mem_{write|read}() for I2C memory mode transfer, stm32_i2c_master_{transmit|receive}() for stream transfer.
2 helpers: stm32_i2c_is_device_ready() checks the hardware I2C link, stm32_i2c_get_setup_from_fdt() fills the I2C initialization structure from the content found in the DT.
I2C driver instances do not register themselves to the PM framework. Bus owner is responsible for calling the stm32_i2c_{suspend|resume}() APIs when the owner device executes a PM sequence.
stm32_i2c driver is dual licensed GPL-2.0/BSD-3-Clause. The conversion algorithm for converting device tree bindings timing information into STM32 I2C timings configuration register is shared with other packages (Linux kernel, Arm Trusted Firmware-A, U-Boot).
Signed-off-by: Etienne Carriere <etienne.carriere@st.com> Signed-off-by: Nicolas Le Bayon <nicolas.le.bayon@st.com> Signed-off-by: Pascal Paillet <p.paillet@st.com> Signed-off-by: Pierre-Yves MORDRET <pierre-yves.mordret@st.com> Signed-off-by: Yann Gautier <yann.gautier@st.com> Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Joakim Bech <joakim.bech@linaro.org>
show more ...
|