| #
8e17e072 |
| 15-Jul-2025 |
Marouene Boubakri <marouene.boubakri@nxp.com> |
core: riscv: add build config for MPXY/RPMI support
Enable compilation of MPXY/RPMI support by introducing the build option `CFG_RISCV_SBI_MPXY_RPMI`.
This commit: - Adds sbi_mpxy_rpmi.c to the bui
core: riscv: add build config for MPXY/RPMI support
Enable compilation of MPXY/RPMI support by introducing the build option `CFG_RISCV_SBI_MPXY_RPMI`.
This commit: - Adds sbi_mpxy_rpmi.c to the build when the option is enabled - Forces `CFG_RISCV_SBI_MPXY` when MPXY/RPMI is selected - Enables CFG_RISCV_SBI_MPXY_RPMI in plat-virt by default
Signed-off-by: Marouene Boubakri <marouene.boubakri@nxp.com> Reviewed-by: Alvin Chang <alvinga@andestech.com>
show more ...
|
| #
00eea924 |
| 15-Jul-2025 |
Marouene Boubakri <marouene.boubakri@nxp.com> |
core: riscv: introduce CFG_RISCV_SBI_MPXY flag for MPXY SBI support
Add a new build-time configuration flag CFG_RISCV_SBI_MPXY to enable compilation of MPXY SBI extension support in OP-TEE. When ena
core: riscv: introduce CFG_RISCV_SBI_MPXY flag for MPXY SBI support
Add a new build-time configuration flag CFG_RISCV_SBI_MPXY to enable compilation of MPXY SBI extension support in OP-TEE. When enabled, this automatically forces CFG_RISCV_SBI to ensure the SBI infrastructure is included.
Also update the build system to conditionally compile sbi_mpxy.c based on this flag.
Enable CFG_RISCV_SBI_MPXY by default for the virt platform.
Signed-off-by: Marouene Boubakri <marouene.boubakri@nxp.com> Reviewed-by: Yu-Chien Peter Lin <peter.lin@sifive.com> Reviewed-by: Alvin Chang <alvinga@andestech.com>
show more ...
|
| #
71214c12 |
| 11-Apr-2025 |
Alvin Chang <alvinga@andestech.com> |
riscv: mm: support Sv48 and Sv57 address translation for core and TA
Add the macros for Sv57 address translation mode. Add CFG_RISCV_MMU_MODE into riscv.mk and set it as 39 by default to enable Sv39
riscv: mm: support Sv48 and Sv57 address translation for core and TA
Add the macros for Sv57 address translation mode. Add CFG_RISCV_MMU_MODE into riscv.mk and set it as 39 by default to enable Sv39 virtual address translation scheme.
Currently, TA virtual memory occupies 1GB space, and TAs page table should be an entry inside a level 2 (VPN[2]) page table, which is decided by user_va_idx variable. For Sv39 translation scheme, it starts from VPN[2], so nothing to do. For Sv48 translation scheme, we need to allocate entry 0 of level 3 (VPN[3]) page table, and let it point to the level 2 page table used by TA. For Sv57 translation scheme, we need to further allocate entry 0 of level 4 (VPN[4]) page table, and let it point to the level 3 page table.
Signed-off-by: Alvin Chang <alvinga@andestech.com> Reviewed-by: Yu-Chien Peter Lin <peter.lin@sifive.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
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 ...
|
| #
7c76fdcd |
| 12-Jun-2024 |
Yu Chien Peter Lin <peterlin@andestech.com> |
core: riscv: apply "-march" and "-mabi" options to assembler
Update platform-aflags-generic to include the -march option. Without specifying -march, the assembler will enable the C extension by defa
core: riscv: apply "-march" and "-mabi" options to assembler
Update platform-aflags-generic to include the -march option. Without specifying -march, the assembler will enable the C extension by default and generate compressed instructions, even if CFG_RISCV_ISA_C=n.
Signed-off-by: Yu Chien Peter Lin <peterlin@andestech.com> Reviewed-by: Alvin Chang <alvinga@andestech.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
883402f5 |
| 28-Apr-2024 |
Yu Chien Peter Lin <peterlin@andestech.com> |
core: riscv: use configuration options for RISC-V extensions
RISC-V is a modular ISA, add config options to allow platforms to customize their binaries with specific "-march" and "-mabi".
Also, ena
core: riscv: use configuration options for RISC-V extensions
RISC-V is a modular ISA, add config options to allow platforms to customize their binaries with specific "-march" and "-mabi".
Also, enable RVC and FPU extension for QEMU virt machine.
Note that the RISC-V FPU for OP-TEE will be introduced later. Enable FPU to temporarily bypass incompatible soft/hard-fp linker errors.
Signed-off-by: Yu Chien Peter Lin <peterlin@andestech.com> Reviewed-by: Alvin Chang <alvinga@andestech.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
a30b4486 |
| 23-Jan-2024 |
Alvin Chang <alvinga@andestech.com> |
core: riscv: Add CFG_RISCV_WITH_M_MODE_SM and dependency checking
OP-TEE may communicate with the untrusted domain by different solutions, such as M-mode secure monitor based solution, or direct mes
core: riscv: Add CFG_RISCV_WITH_M_MODE_SM and dependency checking
OP-TEE may communicate with the untrusted domain by different solutions, such as M-mode secure monitor based solution, or direct messaging based solution. This commit adds CFG_RISCV_WITH_M_MODE_SM to indicate that OP-TEE uses M-mode secure monitor based solution for the communication.
The CFG_RISCV_WITH_M_MODE_SM should depend on CFG_RISCV_S_MODE and CFG_RISCV_SBI, since we are using "ecall" to trap into M-mode secure monitor.
Signed-off-by: Alvin Chang <alvinga@andestech.com> Reviewed-by: Marouene Boubakri <marouene.boubakri@nxp.com>
show more ...
|
| #
51b745fa |
| 02-Mar-2024 |
Etienne Carriere <etienne.carriere@foss.st.com> |
core: riscv: force enable of CFG_CORE_HAS_GENERIC_TIMER
Ensure CFG_CORE_HAS_GENERIC_TIMER is enabled for RISC-V architecture since the current implementation provides the necessary routines in delay
core: riscv: force enable of CFG_CORE_HAS_GENERIC_TIMER
Ensure CFG_CORE_HAS_GENERIC_TIMER is enabled for RISC-V architecture since the current implementation provides the necessary routines in delay_arch.h outside any configuration switch directive. This change clarifies riscv based platforms configuration that previously depended on CFG_CORE_HAS_GENERIC_TIMER default enabling from mk/config.mk.
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Signed-off-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| #
9d1a0f06 |
| 20-Jul-2023 |
Marouene Boubakri <marouene.boubakri@nxp.com> |
core: riscv: riscv.mk: define CFG_WITH_LPAE
Set CFG_WITH_LPAE according to CFG_CORE_LARGE_PHYS_ADDR. Memory manager makes use of CFG_WITH_LPAE, therefore, we set it according to the platform specifi
core: riscv: riscv.mk: define CFG_WITH_LPAE
Set CFG_WITH_LPAE according to CFG_CORE_LARGE_PHYS_ADDR. Memory manager makes use of CFG_WITH_LPAE, therefore, we set it according to the platform specifications.
Signed-off-by: Marouene Boubakri <marouene.boubakri@nxp.com> Reviewed-by: Alvin Chang <alvinga@andestech.com>
show more ...
|
| #
7d6b0a05 |
| 02-Jun-2023 |
Alvin Chang <alvinga@andestech.com> |
core: riscv: Add TA compiler flags for stack unwinding
When the CFG_UNWIND is enabled, the frame pointer should not be omitted by compiler. Add "-fno-omit-frame-pointer" compiler flag when we enable
core: riscv: Add TA compiler flags for stack unwinding
When the CFG_UNWIND is enabled, the frame pointer should not be omitted by compiler. Add "-fno-omit-frame-pointer" compiler flag when we enable the CFG_UNWIND to let compiler not to omit the frame pointer when it builds TA.
Signed-off-by: Alvin Chang <alvinga@andestech.com> Tested-by: Marouene Boubakri <marouene.boubakri@nxp.com> Reviewed-by: Marouene Boubakri <marouene.boubakri@nxp.com>
show more ...
|
| #
88dfa327 |
| 08-Jun-2023 |
Alvin Chang <alvinga@andestech.com> |
core: riscv: Fix misuse of cppflags
The -mxxx and -Wxxx are not preprocessor flags. Fix it by defining them as C flags.
Signed-off-by: Alvin Chang <alvinga@andestech.com> Reviewed-by: Jerome Foriss
core: riscv: Fix misuse of cppflags
The -mxxx and -Wxxx are not preprocessor flags. Fix it by defining them as C flags.
Signed-off-by: Alvin Chang <alvinga@andestech.com> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| #
27be144d |
| 26-May-2023 |
Alvin Chang <alvinga@andestech.com> |
core: riscv: Add core compiler flags for stack unwinding
When the CFG_UNWIND is enabled, the frame pointer should not be omitted by compiler. Add "-fno-omit-frame-pointer" compiler flag when we enab
core: riscv: Add core compiler flags for stack unwinding
When the CFG_UNWIND is enabled, the frame pointer should not be omitted by compiler. Add "-fno-omit-frame-pointer" compiler flag when we enable the CFG_UNWIND to let compiler not to omit the frame pointer.
Signed-off-by: Alvin Chang <alvinga@andestech.com> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| #
f65415b3 |
| 19-May-2023 |
Alvin Chang <alvinga@andestech.com> |
core: riscv: Add default variables for platform ISA, ABI and code model
In RISC-V, each platform may have different supported ISA extensions, ABI, and code model. In this commit, we define the defau
core: riscv: Add default variables for platform ISA, ABI and code model
In RISC-V, each platform may have different supported ISA extensions, ABI, and code model. In this commit, we define the default variables of ISA extensions, ABI, and code model in RISC-V core Makefile. The platform can further overrides the values in their plat-*/conf.mk.
Signed-off-by: Alvin Chang <alvinga@andestech.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
d1c0af7d |
| 30-Dec-2022 |
Marouene Boubakri <marouene.boubakri@nxp.com> |
core: riscv.mk: disable unsupported configuration flags
Features which are not supported, or, specific to other architectures are disabled.
Signed-off-by: Marouene Boubakri <marouene.boubakri@nxp.c
core: riscv.mk: disable unsupported configuration flags
Features which are not supported, or, specific to other architectures are disabled.
Signed-off-by: Marouene Boubakri <marouene.boubakri@nxp.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| #
f303c856 |
| 28-Dec-2022 |
Marouene Boubakri <marouene.boubakri@nxp.com> |
core: riscv: riscv.mk: add mm and tee subdirectories to build tree
Add mm and tee subdirectories to core-platform-subdirs.
Signed-off-by: Marouene Boubakri <marouene.boubakri@nxp.com> Reviewed-by:
core: riscv: riscv.mk: add mm and tee subdirectories to build tree
Add mm and tee subdirectories to core-platform-subdirs.
Signed-off-by: Marouene Boubakri <marouene.boubakri@nxp.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
9afe87e0 |
| 14-Nov-2022 |
Marouene Boubakri <marouene.boubakri@nxp.com> |
riscv: kernel: add console driver for S-Mode using SBI
Implements a generic console driver using legacy SBI extension. This introduces a flag CFG_RISCV_SBI_CONSOLE to decide building the driver or n
riscv: kernel: add console driver for S-Mode using SBI
Implements a generic console driver using legacy SBI extension. This introduces a flag CFG_RISCV_SBI_CONSOLE to decide building the driver or not. This allows using another UART driver instead.
Signed-off-by: Marouene Boubakri <marouene.boubakri@nxp.com> Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org> [jf: set author to be same as Signed-off-by:] Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| #
3cdf0b24 |
| 11-Nov-2022 |
Marouene Boubakri <marouene.boubakri@nxp.com> |
riscv: kernel: sbi: add RISC-V SBI interface
Allow OP-TEE core running in S-Mode (supervisor) to interface with Supervisor Execution Environment (SEE) through environmental calls (ecall). Adds CFG_R
riscv: kernel: sbi: add RISC-V SBI interface
Allow OP-TEE core running in S-Mode (supervisor) to interface with Supervisor Execution Environment (SEE) through environmental calls (ecall). Adds CFG_RISCV_SBI flag to enable or disable it.
Signed-off-by: Marouene Boubakri <marouene.boubakri@nxp.com> Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org> [jf: set author to be same as Signed-off-by:] Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| #
7c14296e |
| 11-Nov-2022 |
Marouene Boubakri <marouene.boubakri@nxp.com> |
riscv: core: riscv.mk: select privilege mode of OP-TEE core
Introduce CFG_RISCV_M_MODE and CFG_RISCV_S_MODE flags to decide in which privilege level OP-TEE OS will run, respectively, machine mode or
riscv: core: riscv.mk: select privilege mode of OP-TEE core
Introduce CFG_RISCV_M_MODE and CFG_RISCV_S_MODE flags to decide in which privilege level OP-TEE OS will run, respectively, machine mode or supervisor mode.
Signed-off-by: Marouene Boubakri <marouene.boubakri@nxp.com> Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org> [jf: set author to be same as Signed-off-by:] Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| #
5f7b832a |
| 24-Oct-2022 |
Marouene Boubakri <marouene.boubakri@nxp.com> |
riscv: core: define CFG_MAX_CACHE_LINE_SHIFT in riscv.mk
Define platform specific maximum cache line size in address lines.
Signed-off-by: Marouene Boubakri <marouene.boubakri@nxp.com> Acked-by: Je
riscv: core: define CFG_MAX_CACHE_LINE_SHIFT in riscv.mk
Define platform specific maximum cache line size in address lines.
Signed-off-by: Marouene Boubakri <marouene.boubakri@nxp.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
7f43e5c3 |
| 27-Dec-2021 |
Marouene Boubakri <marouene.boubakri@nxp.com> |
core: riscv: riscv.mk: setup compiler for the RISC-V core module
Setup compiler for the risc-v core module on 32 and 64 bits definitions.
Signed-off-by: Marouene Boubakri <marouene.boubakri@nxp.com
core: riscv: riscv.mk: setup compiler for the RISC-V core module
Setup compiler for the risc-v core module on 32 and 64 bits definitions.
Signed-off-by: Marouene Boubakri <marouene.boubakri@nxp.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@linaro.org> Acked-by: Jerome Forissier <jerome@forissier.org>
show more ...
|
| #
ad0ae800 |
| 27-Dec-2021 |
Marouene Boubakri <marouene.boubakri@nxp.com> |
riscv: create makefiles and directories tree for riscv
This commits creates the very first makefiles, directories and subdirectories for RISC-V port. It also creates a new platform flavor named plat
riscv: create makefiles and directories tree for riscv
This commits creates the very first makefiles, directories and subdirectories for RISC-V port. It also creates a new platform flavor named plat-spike. Spike is a reference functional RISC-V ISA simulator which provides full system emulation and it is developed alongside the RISC-V toolchain.
Signed-off-by: Marouene Boubakri <marouene.boubakri@nxp.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|