[e52906b] | 1 | .. SPDX-License-Identifier: CC-BY-SA-4.0 |
---|
[d909c5f] | 2 | |
---|
[bbb8b7a] | 3 | .. Copyright (C) 2018 embedded brains GmbH & Co. KG |
---|
[d909c5f] | 4 | |
---|
| 5 | RISC-V Specific Information |
---|
| 6 | *************************** |
---|
| 7 | |
---|
| 8 | Calling Conventions |
---|
| 9 | =================== |
---|
| 10 | |
---|
| 11 | Please refer to the |
---|
| 12 | `RISC-V ELF psABI specification <https://github.com/riscv/riscv-elf-psabi-doc/blob/master/riscv-elf.md>`_. |
---|
| 13 | |
---|
| 14 | Multilibs |
---|
| 15 | ========= |
---|
| 16 | |
---|
| 17 | The GCC for RISC-V can generate code for several 32-bit and 64-bit ISA/ABI |
---|
| 18 | variants. The following multilibs are available: |
---|
| 19 | |
---|
| 20 | * ``.``: The default multilib ISA is RV32IMAFDC with ABI ILP32D. |
---|
| 21 | |
---|
| 22 | * ``rv32i/ilp32``: ISA RV32I with ABI ILP32. |
---|
| 23 | |
---|
| 24 | * ``rv32im/ilp32``: ISA RV32IM with ABI ILP32. |
---|
| 25 | |
---|
| 26 | * ``rv32imafd/ilp32d``: ISA RV32IMAFD with ABI ILP32D. |
---|
| 27 | |
---|
| 28 | * ``rv32iac/ilp32``: ISA RV32IAC with ABI ILP32. |
---|
| 29 | |
---|
| 30 | * ``rv32imac/ilp32``: ISA RV32IMAC with ABI ILP32. |
---|
| 31 | |
---|
| 32 | * ``rv32imafc/ilp32f``: ISA RV32IMAFC with ABI ILP32F. |
---|
| 33 | |
---|
| 34 | * ``rv64imafd/lp64d``: ISA RV64IMAFD with ABI LP64D and code model medlow. |
---|
| 35 | |
---|
| 36 | * ``rv64imafd/lp64d/medany``: ISA RV64IMAFD with ABI LP64D and code model medany. |
---|
| 37 | |
---|
| 38 | * ``rv64imac/lp64``: ISA RV64IMAC with ABI LP64 and code model medlow. |
---|
| 39 | |
---|
| 40 | * ``rv64imac/lp64/medany``: ISA RV64IMAC with ABI LP64 and code model medany. |
---|
| 41 | |
---|
| 42 | * ``rv64imafdc/lp64d``: ISA RV64IMAFDC with ABI LP64D and code model medlow. |
---|
| 43 | |
---|
| 44 | * ``rv64imafdc/lp64d/medany``: ISA RV64IMAFDC with ABI LP64D and code model medany. |
---|
| 45 | |
---|
| 46 | Interrupt Processing |
---|
| 47 | ==================== |
---|
| 48 | |
---|
| 49 | Interrupt exceptions are handled via the interrupt extensions API. All other |
---|
| 50 | exceptions end up in a fatal error (RTEMS_FATAL_SOURCE_EXCEPTION). |
---|
| 51 | |
---|
| 52 | Interrupt Levels |
---|
| 53 | ---------------- |
---|
| 54 | |
---|
| 55 | There are exactly two interrupt levels on RISC-V with respect to RTEMS. Level |
---|
| 56 | zero corresponds to machine interrupts enabled. Level one corresponds to |
---|
| 57 | machine interrupts disabled. |
---|
| 58 | |
---|
| 59 | Interrupt Stack |
---|
| 60 | --------------- |
---|
| 61 | |
---|
| 62 | The memory region for the interrupt stack is defined by the BSP. |
---|
| 63 | |
---|
| 64 | Default Fatal Error Processing |
---|
| 65 | ============================== |
---|
| 66 | |
---|
| 67 | The default fatal error is BSP-specific. |
---|
| 68 | |
---|
| 69 | Symmetric Multiprocessing |
---|
| 70 | ========================= |
---|
| 71 | |
---|
| 72 | SMP is supported. |
---|
| 73 | |
---|
| 74 | Thread-Local Storage |
---|
| 75 | ==================== |
---|
| 76 | |
---|
| 77 | Thread-local storage is supported. |
---|