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