| 155ebf23 | 21-Nov-2024 |
Pascal Paillet <p.paillet@foss.st.com> |
drivers: add stm32 CPU DVFS driver
drivers/cpu_opp.c implements dynamic voltage and frequency scaling for the CPU. It is used at boot time to set an higher operating point than the one used to boot.
drivers: add stm32 CPU DVFS driver
drivers/cpu_opp.c implements dynamic voltage and frequency scaling for the CPU. It is used at boot time to set an higher operating point than the one used to boot. It will be used by the SCMI performance service.
Signed-off-by: Pascal Paillet <p.paillet@foss.st.com> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 3e7d042b | 14-Mar-2025 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: arm: boot: fix calling page_alloc_init()
The functions page_alloc_init() and nex_page_alloc_init() depends on MEM_AREA_TEE_DYN_VASPACE and MEM_AREA_NEX_DYN_VASPACE, but the memory areas are on
core: arm: boot: fix calling page_alloc_init()
The functions page_alloc_init() and nex_page_alloc_init() depends on MEM_AREA_TEE_DYN_VASPACE and MEM_AREA_NEX_DYN_VASPACE, but the memory areas are only available with CFG_DYN_CONFIG so check that before calling the functions.
Fixes: 0e12fb0c2d75 ("core: arm: boot: call page_alloc_init()") Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| 758c3687 | 13-Mar-2025 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: fix CFG_BOOT_INIT_THREAD_CORE_LOCAL0
CFG_BOOT_INIT_THREAD_CORE_LOCAL0 is misleading since it's concerning the core id of the boot CPU. So rename the configuration flag to CFG_BOOT_INIT_CURRENT
core: fix CFG_BOOT_INIT_THREAD_CORE_LOCAL0
CFG_BOOT_INIT_THREAD_CORE_LOCAL0 is misleading since it's concerning the core id of the boot CPU. So rename the configuration flag to CFG_BOOT_INIT_CURRENT_THREAD_CORE_LOCAL and update the code as needed. Only thread_init_thread_core_local() has a change of behaviour where the boot CPU now can have any core id.
Fixes: b5ec8152f3e5 ("core: arm: refactor boot") Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 14bb2927 | 06-Mar-2025 |
Daniel Lang <ldaniell14260@gmail.com> |
dts: stm32: disable unused i2c1 and i2c2
i2c1 and i2c2 on Avenger96 board are not consumed by OP-TEE, therefore they can be disabled.
Link: https://github.com/OP-TEE/optee_os/issues/7296 Acked-by:
dts: stm32: disable unused i2c1 and i2c2
i2c1 and i2c2 on Avenger96 board are not consumed by OP-TEE, therefore they can be disabled.
Link: https://github.com/OP-TEE/optee_os/issues/7296 Acked-by: Gatien Chevallier <gatien.chevallier@foss.st.com> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com> Signed-off-by: Daniel Lang <ldaniell14260@gmail.com>
show more ...
|
| 0e12fb0c | 26-Feb-2025 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: arm: boot: call page_alloc_init()
Call page_alloc_init()/nex_page_alloc_init() from init_primary() after unused boot memory has been released. virt_guest_created() calls page_alloc_init().
Th
core: arm: boot: call page_alloc_init()
Call page_alloc_init()/nex_page_alloc_init() from init_primary() after unused boot memory has been released. virt_guest_created() calls page_alloc_init().
This allows virt_page_alloc() to be used instead of boot_mem_alloc() now that boot_mem_alloc() can't be used any longer.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 809e0744 | 26-Feb-2025 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: mm: add virt_page_alloc()
Add virt_page_alloc() to allocate memory from physical pool and map it in a virtual address pool.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-
core: mm: add virt_page_alloc()
Add virt_page_alloc() to allocate memory from physical pool and map it in a virtual address pool.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 1baf19de | 26-Feb-2025 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: mm: add phys_mem_alloc_flags()
Add phys_mem_alloc_flags() taking MAF_* flags to control memory allocation. The new flag MAF_CORE_MEM behaves like {nex_,}phys_mem_core_alloc(), if the flag is
core: mm: add phys_mem_alloc_flags()
Add phys_mem_alloc_flags() taking MAF_* flags to control memory allocation. The new flag MAF_CORE_MEM behaves like {nex_,}phys_mem_core_alloc(), if the flag is absent it becomes {nex_,}phys_mem_ta_alloc().
The MAF_NEX flag selects Nexus memory.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 5f76bc75 | 26-Feb-2025 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: add tee_mm_alloc_flags()
Add tee_mm_alloc_flags() taking a flags field to passed to malloc_flags() when allocating the tee_mm_entry_t.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org
core: add tee_mm_alloc_flags()
Add tee_mm_alloc_flags() taking a flags field to passed to malloc_flags() when allocating the tee_mm_entry_t.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| fe8de805 | 26-Feb-2025 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: tee_mm.c: use malloc_flags() and free_flags()
Use malloc_flags() and free_flags() to simplify memory allocations with regards to the MAF_NEX/TEE_MM_POOL_NEX_MALLOC flag.
Signed-off-by: Jens W
core: tee_mm.c: use malloc_flags() and free_flags()
Use malloc_flags() and free_flags() to simplify memory allocations with regards to the MAF_NEX/TEE_MM_POOL_NEX_MALLOC flag.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| b462b681 | 26-Feb-2025 |
Jens Wiklander <jens.wiklander@linaro.org> |
Use malloc flags MAF_* in tee_mm.h
Switch to use the malloc flags MAF_* in tee_mm.h replacing the previous TEE_MM_POOL_* flags. TEE_MM_POOL_* flags are kept defined using MAF_* flags to for easier t
Use malloc flags MAF_* in tee_mm.h
Switch to use the malloc flags MAF_* in tee_mm.h replacing the previous TEE_MM_POOL_* flags. TEE_MM_POOL_* flags are kept defined using MAF_* flags to for easier transition. The TEE_MM_POOL_* flags can be moved gradually after this commit.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 96f43358 | 26-Feb-2025 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: add nex_dyn_vaspace and tee_dyn_vaspace areas
Add MEM_AREA_NEX_DYN_VASPACE and MEM_AREA_TEE_DYN_VASPACE areas for dynamic Nexus and TEE memory mapping. This will be used to map additional heap
core: add nex_dyn_vaspace and tee_dyn_vaspace areas
Add MEM_AREA_NEX_DYN_VASPACE and MEM_AREA_TEE_DYN_VASPACE areas for dynamic Nexus and TEE memory mapping. This will be used to map additional heap and the stacks in later patches.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| d5f3d146 | 26-Feb-2025 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: mmu: fix dynamic VA region dummy mapping
The commit 873f5f6c7201 ("core: mmu: Add dynamic VA regions' mapping to page table") populated page tables so all are available later when needed. Howe
core: mmu: fix dynamic VA region dummy mapping
The commit 873f5f6c7201 ("core: mmu: Add dynamic VA regions' mapping to page table") populated page tables so all are available later when needed. However, it also mapped physical address 0 in all those ranges. So fix this by setting attributes to 0 when the physical address is 0.
Fixes: 873f5f6c7201 ("core: mmu: Add dynamic VA regions' mapping to page table") Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| c43b8cf7 | 11-Mar-2025 |
Etienne Carriere <etienne.carriere@foss.st.com> |
drivers: stm32_gpio: remove test on CFG_DRIVERS_GPIO
Remove test on CFG_DRIVERS_GPIO inside stm32_gpio.c C source file. CFG_* dependencies are addressed in makefile file (e.g. plat-*/conf.mk), not i
drivers: stm32_gpio: remove test on CFG_DRIVERS_GPIO
Remove test on CFG_DRIVERS_GPIO inside stm32_gpio.c C source file. CFG_* dependencies are addressed in makefile file (e.g. plat-*/conf.mk), not in the driver source file.
Fixes: 1001585e2e56 ("drivers: stm32_gpio: remove GPIO access specific API functions") Signed-off-by: Etienne Carriere <etienne.carriere@foss.st.com> Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 45fecab0 | 06-Mar-2025 |
Jens Wiklander <jens.wiklander@linaro.org> |
Deprecate libgcc for OP-TEE core and ldelf
By default turn of linking with ligcc for OP-TEE core and ldelf. This allows building CFG_CORE_BTI=y and CFG_TA_BTI=n using a AArch64 cross toolchain witho
Deprecate libgcc for OP-TEE core and ldelf
By default turn of linking with ligcc for OP-TEE core and ldelf. This allows building CFG_CORE_BTI=y and CFG_TA_BTI=n using a AArch64 cross toolchain without BTI enabled in libgcc.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Joakim Bech <joakim.bech@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| e6b19839 | 05-Feb-2025 |
Tony Han <tony.han@microchip.com> |
drivers: clk: sam: select AUDIOPLL as the source for sama7g5 I2SMCC0 GCLK
Initialize the generic clock used by for sama7g5 I2SMCC0 peripheral.
Signed-off-by: Tony Han <tony.han@microchip.com> Acked
drivers: clk: sam: select AUDIOPLL as the source for sama7g5 I2SMCC0 GCLK
Initialize the generic clock used by for sama7g5 I2SMCC0 peripheral.
Signed-off-by: Tony Han <tony.han@microchip.com> Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| 3006d24d | 08-Jan-2025 |
Tony Han <tony.han@microchip.com> |
plat-sam: add sama7g5's PDMC gclk clocks to the SCMI clock list
Add PDMC gclk clocks to the SCMI clock list so that they could be used outside OP-TEE OS.
Signed-off-by: Tony Han <tony.han@microchip
plat-sam: add sama7g5's PDMC gclk clocks to the SCMI clock list
Add PDMC gclk clocks to the SCMI clock list so that they could be used outside OP-TEE OS.
Signed-off-by: Tony Han <tony.han@microchip.com> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| b20bd0e0 | 23-Jan-2025 |
Tony Han <tony.han@microchip.com> |
drivers: clk: sam: fix underflow of the divider for sama7g5 PLL clocks
Fix the underflow of the divider calculated when clock given rate is greater than the rate of the clock parent.
Fixes: 4318c69
drivers: clk: sam: fix underflow of the divider for sama7g5 PLL clocks
Fix the underflow of the divider calculated when clock given rate is greater than the rate of the clock parent.
Fixes: 4318c69fa77d ("drivers: clk: sam: add PLL clock driver for sama7g5") Signed-off-by: Tony Han <tony.han@microchip.com> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| e83d1906 | 09-Jan-2025 |
Tony Han <tony.han@microchip.com> |
drivers: clk: sam: fix operation on wrong PMC_PLL_CTRLx registers
When writing/reading a PLL control register (PMC_PLL_CTRLx), the ID in PMC_PLL_UPDT specifies which PLL fields are written/read. Set
drivers: clk: sam: fix operation on wrong PMC_PLL_CTRLx registers
When writing/reading a PLL control register (PMC_PLL_CTRLx), the ID in PMC_PLL_UPDT specifies which PLL fields are written/read. Set correct ID to PMC_PLL_UPDT to avoid operating on wrong PMC_PLL_CTRLx.
Fixes: 4318c69fa77d ("drivers: clk: sam: add PLL clock driver for sama7g5") Signed-off-by: Tony Han <tony.han@microchip.com> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 5d74b835 | 09-Jan-2025 |
Tony Han <tony.han@microchip.com> |
drivers: clk: sam: initialize the clocks used by sama7g5 PDMC0
Initialize the audio PLL and generic clocks used by for sama7g5 PDMC0 peripheral.
Signed-off-by: Tony Han <tony.han@microchip.com> Ack
drivers: clk: sam: initialize the clocks used by sama7g5 PDMC0
Initialize the audio PLL and generic clocks used by for sama7g5 PDMC0 peripheral.
Signed-off-by: Tony Han <tony.han@microchip.com> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| b71b399e | 08-Jan-2025 |
Tony Han <tony.han@microchip.com> |
drivers: clk: sam: initialize the clock range values for sama7g5 SCMI clocks
Initialize the clock range values for sama7g5 clocks so that they can be used in responding SCMI CLOCK_DESCRIBE_RATES com
drivers: clk: sam: initialize the clock range values for sama7g5 SCMI clocks
Initialize the clock range values for sama7g5 clocks so that they can be used in responding SCMI CLOCK_DESCRIBE_RATES command.
Signed-off-by: Tony Han <tony.han@microchip.com> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| f90d78a6 | 08-Jan-2025 |
Tony Han <tony.han@microchip.com> |
plat-sam: add clock range support for the clocks used by SCMI
Add clock range attribute to the struct for the clocks. New function for initializing the clock range for the clocks. Implement "plat_sc
plat-sam: add clock range support for the clocks used by SCMI
Add clock range attribute to the struct for the clocks. New function for initializing the clock range for the clocks. Implement "plat_scmi_clock_rates_by_step()" to be used by SCMI.
Signed-off-by: Tony Han <tony.han@microchip.com> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| fb2b4f6f | 24-Feb-2025 |
Thomas Bourgoin <thomas.bourgoin@foss.st.com> |
drivers: stm32_remote_proc: fix definition of stm32_rproc_compat_data
Fix compilation error of core/drivers/remoteproc/stm32_remoteproc.c Move bool ns_loading from "struct stm32_rproc_instance" to "
drivers: stm32_remote_proc: fix definition of stm32_rproc_compat_data
Fix compilation error of core/drivers/remoteproc/stm32_remoteproc.c Move bool ns_loading from "struct stm32_rproc_instance" to "struct stm32_rproc_compat_data".
Fixes: a03044318866 ("drivers: stm32_remote_proc: add stm32_rproc_is_secure()") Signed-off-by: Thomas Bourgoin <thomas.bourgoin@foss.st.com> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| b0da0d59 | 06-Mar-2025 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: boot: add boot_init_primary_runtime()
Split the early parts of boot_init_primary_final() into boot_init_primary_runtime(). boot_init_primary_runtime() initializes the runtime, part of that is
core: boot: add boot_init_primary_runtime()
Split the early parts of boot_init_primary_final() into boot_init_primary_runtime(). boot_init_primary_runtime() initializes the runtime, part of that is to generate the PAUTH keys. The PAUTH keys are loaded in assembly before boot_init_primary_final() is called.
This fixes an error when SPs are initialized by entering and exiting S-EL0 from boot_init_primary_final() but the PAUTH registers hasn't been initialized with the right values. E/TC:0 0 Core undef-abort at address 0xe106be4 E/TC:0 0 esr 0x72000000 ttbr0 0x200000e27d000 ttbr1 0x00000000 cidr 0x0 E/TC:0 0 cpu #0 cpsr 0x60000144 E/TC:0 0 x0 0000000000000000 x1 0000000000000000 E/TC:0 0 x2 0000000000000000 x3 0000000000000000 E/TC:0 0 x4 000000000e27a060 x5 000000000e27a05c E/TC:0 0 x6 000000000000009f x7 0000000000000083 E/TC:0 0 x8 0000000000000000 x9 0000000000004367 E/TC:0 0 x10 000000000000009f x11 0000000000000000 E/TC:0 0 x12 0000000000000000 x13 0000000040006f80 E/TC:0 0 x14 0000000000000000 x15 0000000000000000 E/TC:0 0 x16 000000000e107460 x17 0000000000000000 E/TC:0 0 x18 0000000000000000 x19 000000000e002000 E/TC:0 0 x20 000000000e300000 x21 0000000040000000 E/TC:0 0 x22 0000000000000000 x23 000000000e272830 E/TC:0 0 x24 000000000e22c250 x25 0000000000000000 E/TC:0 0 x26 0000000000000000 x27 0000000000000000 E/TC:0 0 x28 0000000000000000 x29 000000000e27a020 E/TC:0 0 x30 0a2ed3b10e1314e8 elr 000000000e106be4 E/TC:0 0 sp_el0 000000000e27a010 E/TC:0 0 TEE load address @ 0xe100000 E/TC:0 0 Core undef-abort at address 0xe106be4 .debug_info+27620 E/TC:0 0 Call stack: E/TC:0 0 0x0e106be4 thread_enter_user_mode at core/arch/arm/kernel/thread.c:1049 E/TC:0 0 0x0e110628 sp_open_session at core/arch/arm/kernel/secure_partition.c:635 E/TC:0 0 0x0e112508 sp_init_uuid at core/arch/arm/kernel/secure_partition.c:1583 E/TC:0 0 0x0e1135f8 sp_init_all at core/arch/arm/kernel/secure_partition.c:2018 E/TC:0 0 0x0e137950 do_init_calls at core/kernel/initcall.c:20 E/TC:0 0 0x0e137b0c call_finalcalls at core/kernel/initcall.c:73
Fixes: b5ec8152f3e5 ("core: arm: refactor boot") Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 6169a1f6 | 04-Feb-2025 |
Chris Morgan <macromorgan@hotmail.com> |
plat-rockchip: rk3588: Correct TZDRAM_START and SHMEM_START
Update the TZDRAM_START and SHMEM_START values to match the PX30 and RK3399 values. If this is not done, a compressed kernel using the def
plat-rockchip: rk3588: Correct TZDRAM_START and SHMEM_START
Update the TZDRAM_START and SHMEM_START values to match the PX30 and RK3399 values. If this is not done, a compressed kernel using the default value of kernel_comp_addr_r (0x0a000000) within U-Boot and having a decompressed size greater than 28MiB puts the decompressed kernel in the reserved address space for OP-TEE that starts at 0x08400000. Using the values for the RK3399 and PX30 avoids this problem.
Fixes: 14754b93b1b7 ("plat-rockchip: add support for Rockchip rk3588") Signed-off-by: Chris Morgan <macromorgan@hotmail.com> Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| 74891be2 | 04-Feb-2025 |
Chris Morgan <macromorgan@hotmail.com> |
plat-rockchip: rk3588: Increase FDT Max Size to 384KiB
Increase the maximum size of the FDT to 384KiB to match the proposed changes with Arm Trusted Firmware. This allows us to pass and parse the FD
plat-rockchip: rk3588: Increase FDT Max Size to 384KiB
Increase the maximum size of the FDT to 384KiB to match the proposed changes with Arm Trusted Firmware. This allows us to pass and parse the FDT within OP-TEE. When doing this, we also need to allow OP-TEE to detect the maximum PA bits so that allocating RAM above 4GiB does not fail.
With these two changes, OP-TEE can parse and add the correct memory nodes to the devicetree passed to it automatically.
Associated A-TF commit: https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/34997
Signed-off-by: Chris Morgan <macromorgan@hotmail.com> Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|