| 6ce6769f | 03-Mar-2025 |
Alvin Chang <alvinga@andestech.com> |
core: riscv: Preparation to support CFG_BOOT_MEM
Refer to commit d461c892a15a ("core: arm: enable CFG_BOOT_MEM unconditionally") and commit f12843460d47 ("core: mm: allocate temporary memory map arr
core: riscv: Preparation to support CFG_BOOT_MEM
Refer to commit d461c892a15a ("core: arm: enable CFG_BOOT_MEM unconditionally") and commit f12843460d47 ("core: mm: allocate temporary memory map array"), call the boot_mem_*() functions as needed from entry.S and boot.c for RISC-V architecture.
Signed-off-by: Alvin Chang <alvinga@andestech.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Yu-Chien Peter Lin <peter.lin@sifive.com>
show more ...
|
| 03ae0a0f | 08-Feb-2025 |
Sahil Malhotra <sahil.malhotra@nxp.com> |
core: imx: enable ELE by default
Enable ELE by default on all ELE supported devices
Signed-off-by: Sahil Malhotra <sahil.malhotra@nxp.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Acked
core: imx: enable ELE by default
Enable ELE by default on all ELE supported devices
Signed-off-by: Sahil Malhotra <sahil.malhotra@nxp.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 35e561d8 | 11-Aug-2023 |
Sahil Malhotra <sahil.malhotra@nxp.com> |
drivers: ele: enable TRUST MU in OP-TEE for i.MX93-EVK/i.MX91-EVK
There is TRUST MU available on i.MX91 and i.MX93 platforms.
TRUST MU can be used to access some HW features of Edgelock Enclave whi
drivers: ele: enable TRUST MU in OP-TEE for i.MX93-EVK/i.MX91-EVK
There is TRUST MU available on i.MX91 and i.MX93 platforms.
TRUST MU can be used to access some HW features of Edgelock Enclave which Normal MU cannot, but for now it is configured to be used to communicate with ELE FW.
So Kernel will use Normal MU and OP-TEE will use TRUST MU.
There is special setup needed to write to Trust MU. * First for TRUST-MU we must write a valid command to TR0 before we can write any of the remaining registers, and TR15 is reserved for special USM command. * The CMD field for TR0 is bits 31:26 and must be greater than the value of the watermark set in SCM_CR2[31:22]. Typically if you just set the MSB (bit 31) its enough. * SIZE must be programmed in bits 19:16 of TR0, we cannot write TRn past the specified size in this bit field
Signed-off-by: Sahil Malhotra <sahil.malhotra@nxp.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 43730326 | 28-Feb-2025 |
Huang Borong <huangborong@bosc.ac.cn> |
riscv: plat-virt: add APLIC and IMSIC support for QEMU virt platform
- Add APLIC and IMSIC configurations for the QEMU virt platform. - Override the interrupt controller initialization and interrupt
riscv: plat-virt: add APLIC and IMSIC support for QEMU virt platform
- Add APLIC and IMSIC configurations for the QEMU virt platform. - Override the interrupt controller initialization and interrupt handler functions when using APLIC or IMSIC.
Signed-off-by: Huang Borong <huangborong@bosc.ac.cn> Reviewed-by: Alvin Chang <alvinga@andestech.com> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| f4b54213 | 27-Feb-2025 |
Huang Borong <huangborong@bosc.ac.cn> |
drivers: add RISC-V IMSIC interrupt driver
The RISC-V Advanced Interrupt Architecture (AIA) specification introduces the IMSIC as a new external interrupt controller. An IMSIC receives and records i
drivers: add RISC-V IMSIC interrupt driver
The RISC-V Advanced Interrupt Architecture (AIA) specification introduces the IMSIC as a new external interrupt controller. An IMSIC receives and records incoming message-signaled interrupts (MSIs).
This commit enables the initialization of the IMSIC based on the device tree and adds control and status registers (CSRs) for indirect access to the IMSIC as well as for reading interrupt identities.
Use the `CFG_RISCV_IMSIC` flag to control whether to build this driver.
For more details, see: https://github.com/riscv/riscv-aia
Signed-off-by: Huang Borong <huangborong@bosc.ac.cn> Reviewed-by: Alvin Chang <alvinga@andestech.com> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| ebc079eb | 26-Feb-2025 |
Alvin Chang <alvinga@andestech.com> |
core: arm: Remove dummy call_initcalls()
Remove call_initcalls() since we will remove prototype of this function.
Signed-off-by: Alvin Chang <alvinga@andestech.com> Reviewed-by: Jens Wiklander <jen
core: arm: Remove dummy call_initcalls()
Remove call_initcalls() since we will remove prototype of this function.
Signed-off-by: Alvin Chang <alvinga@andestech.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Marouene Boubakri <marouene.boubakri@nxp.com>
show more ...
|
| fe1244f1 | 26-Feb-2025 |
Alvin Chang <alvinga@andestech.com> |
core: riscv: Call call_driver_initcalls() late
Calls call_early_initcalls() and call_service_initcalls() directly instead of call_initcalls() from init_tee_runtime().
This commit is to synchronize
core: riscv: Call call_driver_initcalls() late
Calls call_early_initcalls() and call_service_initcalls() directly instead of call_initcalls() from init_tee_runtime().
This commit is to synchronize the initcalls with ARM architecture, introduced in 27ed6973 (core: arm: call call_driver_initcalls() late).
Signed-off-by: Alvin Chang <alvinga@andestech.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Marouene Boubakri <marouene.boubakri@nxp.com>
show more ...
|
| 1ede8ef4 | 26-Feb-2025 |
Alvin Chang <alvinga@andestech.com> |
core: riscv: Introduce boot_init_primary_final()
Introduce boot_init_primary_final() and move the call to call_finalcalls() into that function.
This commit is to synchronize the boot stages with AR
core: riscv: Introduce boot_init_primary_final()
Introduce boot_init_primary_final() and move the call to call_finalcalls() into that function.
This commit is to synchronize the boot stages with ARM architecture, introduced in d0c23684 (core: arm: introduce boot_init_primary_final()).
Signed-off-by: Alvin Chang <alvinga@andestech.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Marouene Boubakri <marouene.boubakri@nxp.com>
show more ...
|
| 30686e1e | 17-Feb-2025 |
Gatien Chevallier <gatien.chevallier@foss.st.com> |
core: fix debug event fault value for ARM32 with LPAE
According to ARM documentation, the debug event fault value is indeed 0b100010, which is 0x22, not 0x12. Fix this value in core_mmu_get_fault_ty
core: fix debug event fault value for ARM32 with LPAE
According to ARM documentation, the debug event fault value is indeed 0b100010, which is 0x22, not 0x12. Fix this value in core_mmu_get_fault_type().
Fixes: 0eff3e9bf016 ("arm32: Adds LPAE support") Signed-off-by: Gatien Chevallier <gatien.chevallier@foss.st.com> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 321b5b24 | 11-Oct-2023 |
Gatien Chevallier <gatien.chevallier@foss.st.com> |
plat-stm32mp2: add platform-specific abort handler
When a data abort occurs and its fault type is FAULT_TYPE_IGNORE, it may be an abort generated by the SERC hardware block. Check if a SERC Illegal
plat-stm32mp2: add platform-specific abort handler
When a data abort occurs and its fault type is FAULT_TYPE_IGNORE, it may be an abort generated by the SERC hardware block. Check if a SERC Illegal Access was caught and print the SERC register and panic() if that is the case.
Signed-off-by: Gatien Chevallier <gatien.chevallier@foss.st.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 325d4963 | 11-Oct-2023 |
Gatien Chevallier <gatien.chevallier@foss.st.com> |
core: add platform-specific abort handler
Platforms may have specific code to handle an abort when fault type is FAULT_TYPE_IGNORE. Add plat_abort_handler() that can be overridden at platform level
core: add platform-specific abort handler
Platforms may have specific code to handle an abort when fault type is FAULT_TYPE_IGNORE. Add plat_abort_handler() that can be overridden at platform level.
Signed-off-by: Gatien Chevallier <gatien.chevallier@foss.st.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 1729a810 | 21-Feb-2025 |
Alvin Chang <alvinga@andestech.com> |
riscv: plat-virt: Let console devices be build time configurable
Currently RISC-V virtual platform enforces 16550 UART to be console device. However, there are other console devices which can be cho
riscv: plat-virt: Let console devices be build time configurable
Currently RISC-V virtual platform enforces 16550 UART to be console device. However, there are other console devices which can be chose by developer. Thus, we allow the configurations for console device to be overridden at build time while keeping the default value enabled.
Besides, fix CFG_SBI_CONSOLE to be CFG_RISCV_SBI_CONSOLE.
Signed-off-by: Alvin Chang <alvinga@andestech.com> Reviewed-by: Yu-Chien Peter Lin <peter.lin@sifive.com>
show more ...
|
| a137cc88 | 12-Feb-2025 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: arm: boot: mask native interrupts for virtualization
Native interrupts are prior to this patch unmasked while processing initcalls. This is only permitted if the temporary stack isn't used. Th
core: arm: boot: mask native interrupts for virtualization
Native interrupts are prior to this patch unmasked while processing initcalls. This is only permitted if the temporary stack isn't used. That's not true when CFG_NS_VIRTUALIZATION=y so fix this by only unmasking when NS-virtualization isn't enabled.
Fixes: 259c34df294f ("core: arm: boot: enable native interrupts before initcalls") Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 358cdcd2 | 22-Jan-2025 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: arm32: initialize secure monitor late
Initialize the secure monitor as late as possible before exiting to the normal world. This is needed in later patches where the stacks aren't statically a
core: arm32: initialize secure monitor late
Initialize the secure monitor as late as possible before exiting to the normal world. This is needed in later patches where the stacks aren't statically allocated.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| b5ec8152 | 22-Jan-2025 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: arm: refactor boot
Introduce CFG_BOOT_INIT_THREAD_CORE_LOCAL0 to indicate that thread_core_local[0] is initialized before the boot_init_* functions are called.
thread_init_core_local_stacks()
core: arm: refactor boot
Introduce CFG_BOOT_INIT_THREAD_CORE_LOCAL0 to indicate that thread_core_local[0] is initialized before the boot_init_* functions are called.
thread_init_core_local_stacks() and thread_init_thread_core_local() are replaced by a new version of thread_init_thread_core_local() for CFG_BOOT_INIT_THREAD_CORE_LOCAL0=y.
Move initialization of thread_core_local[] from very early to boot_init_primary_late() where various DTBs containing run-time configuration are available. This will be needed in later patches when the number of configured cores can be read from DT or some other run-time configuration.
Move the "OP-TEE version" print and following code from boot_init_primary_late() to boot_init_primary_final()
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| d9d38bf9 | 22-Jan-2025 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: arm: entry_a32.S: use ldr over adr
Load address of reset_vect_table using ldr r0, =reset_vect_table, instead of adr r0 reset_vect_table to allow longer addressing range.
Signed-off-by: Jens W
core: arm: entry_a32.S: use ldr over adr
Load address of reset_vect_table using ldr r0, =reset_vect_table, instead of adr r0 reset_vect_table to allow longer addressing range.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 47a61ff1 | 16-Feb-2025 |
Alvin Chang <alvinga@andestech.com> |
riscv: plat-virt: Let CFG_RISCV_PLIC be build time configurable
RISC-V has several standard interrupt controllers supported by QEMU virtual platform. Thus, we allow CFG_RISCV_PLIC to be overridden a
riscv: plat-virt: Let CFG_RISCV_PLIC be build time configurable
RISC-V has several standard interrupt controllers supported by QEMU virtual platform. Thus, we allow CFG_RISCV_PLIC to be overridden at build time while keeping the default value enabled.
Signed-off-by: Alvin Chang <alvinga@andestech.com> Reviewed-by: Yu-Chien Peter Lin <peter.lin@sifive.com> Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| 873f5f6c | 12-Feb-2025 |
Mark Zhang <markz@nvidia.com> |
core: mmu: Add dynamic VA regions' mapping to page table
When optee boots, the initial mapping for MEM_AREA_RES_VASPACE and MEM_AREA_SHM_VASPACE should be added into page tables and replicated to al
core: mmu: Add dynamic VA regions' mapping to page table
When optee boots, the initial mapping for MEM_AREA_RES_VASPACE and MEM_AREA_SHM_VASPACE should be added into page tables and replicated to all CPU cores too. This fixes an issue when the VA of MEM_AREA_RES_VASPACE or MEM_AREA_SHM_VASPACE is not in a same 1GB region with other memory regions.
Link: https://github.com/OP-TEE/optee_os/issues/7275 Signed-off-by: Mark Zhang <markz@nvidia.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 71aed2db | 27-Jan-2025 |
Amey Avinash Raghatate <AmeyAvinash.Raghatate@amd.com> |
plat-versal2: disable ARM CE v8.2
Disable the ARM CE v8.2 configuration since it is not available on the SoC. Allow the ARM CE configuration to be overridden at build time while keeping the default
plat-versal2: disable ARM CE v8.2
Disable the ARM CE v8.2 configuration since it is not available on the SoC. Allow the ARM CE configuration to be overridden at build time while keeping the default value enabled.
Signed-off-by: Amey Avinash Raghatate <AmeyAvinash.Raghatate@amd.com> Signed-off-by: Akshay Belsare <akshay.belsare@amd.com> Acked-by: Michal Simek <michal.simek@amd.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 7d9d593d | 05-Feb-2025 |
Etienne Carriere <etienne.carriere@foss.st.com> |
drivers: firewall: stm32_etzpc: remove header file
Remove stm32_etzpc.h header file that is not required since the declared and defined resources are used internally in stm32_etzpc.c
By the way, al
drivers: firewall: stm32_etzpc: remove header file
Remove stm32_etzpc.h header file that is not required since the declared and defined resources are used internally in stm32_etzpc.c
By the way, also remove inclusion of stm32mp15-etzpc.h DT bindings header file from stm32_rng.c where it is not needed.
Signed-off-by: Etienne Carriere <etienne.carriere@foss.st.com> Acked-by: Gatien Chevallier <gatien.chevallier@foss.st.com>
show more ...
|
| 539836f9 | 27-Jan-2025 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: arm: virt-aware FF-A thread_foreign_intr_exit()
thread_foreign_intr_exit() is called after the thread state has been saved and the thread is suspended. With virtualization enabled (CFG_NS_VIRT
core: arm: virt-aware FF-A thread_foreign_intr_exit()
thread_foreign_intr_exit() is called after the thread state has been saved and the thread is suspended. With virtualization enabled (CFG_NS_VIRTUALIZATION=y) the virt_unset_guest() is also called. After this, the guests thread contexts aren't available any longer. For FF-A thread_foreign_intr_exit() needs a few fields from the suspend threads context so extract those before suspending the thread and pass them as parameters for thread_foreign_intr_exit().
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 2b17b9bf | 22-Jan-2025 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: ffa: __nex-annotate nexus rxtx buffer
Add __nex_bss and __nex_data annotations for the rxtx buffers used in a configuration with SPMC at S-EL2 or EL3.
Signed-off-by: Jens Wiklander <jens.wikl
core: ffa: __nex-annotate nexus rxtx buffer
Add __nex_bss and __nex_data annotations for the rxtx buffers used in a configuration with SPMC at S-EL2 or EL3.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 101b9d4d | 22-Jan-2025 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: ffa: virt-aware spmc_init() for SPMC at S-EL2/EL3
Call virt_add_guest_spec_data() for the struct notif_vm_bitmap to make it accessible from notif_send_async().
Signed-off-by: Jens Wiklander <
core: ffa: virt-aware spmc_init() for SPMC at S-EL2/EL3
Call virt_add_guest_spec_data() for the struct notif_vm_bitmap to make it accessible from notif_send_async().
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 259c34df | 04-Feb-2025 |
Etienne Carriere <etienne.carriere@foss.st.com> |
core: arm: boot: enable native interrupts before initcalls
Enable native interrupts on Arm architectures when executing initcalls (early,service,driver,final). This change allows drivers to leverage
core: arm: boot: enable native interrupts before initcalls
Enable native interrupts on Arm architectures when executing initcalls (early,service,driver,final). This change allows drivers to leverage interrupts during OP-TEE core initialization, as for example detecting a firewall access violation when it occurs. Before this change, OP-TEE needed to complete its initialization and return the secure monitor for secure interrupts to be handled.
Note that when CFG_NS_VIRTUALIZATION is enabled, initcalls called from virt_on_stdcall() is not changed here since they are executing from a standard call entry hence with native and foreign interrupts already default unmasked.
Signed-off-by: Etienne Carriere <etienne.carriere@foss.st.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| ef1ebdc2 | 01-Oct-2024 |
Vignesh Raghavendra <vigneshr@ti.com> |
plat-k3: Add initial support for AM62Lx SoC
AM62Lx newest among on the K3 class of SoCs designed to be low footprint system where DDR can be as small as 128M. Hence, move the DDR location to the beg
plat-k3: Add initial support for AM62Lx SoC
AM62Lx newest among on the K3 class of SoCs designed to be low footprint system where DDR can be as small as 128M. Hence, move the DDR location to the beginning of DDR right after TF-A.
Disable TI SCI, secure boot info and HW unique ID support for now, they will be incrementally at later point in time as the underlying communication layer is different than AM62x.
Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com> Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Dhruva Gole <d-gole@ti.com>
show more ...
|