[rtems-docs commit] user: Add RISC-V BSP section

Sebastian Huber sebh at rtems.org
Thu Aug 2 11:21:48 UTC 2018


Module:    rtems-docs
Branch:    master
Commit:    24326a8d07ffa386e058c10b559aedbd02b29795
Changeset: http://git.rtems.org/rtems-docs/commit/?id=24326a8d07ffa386e058c10b559aedbd02b29795

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Thu Aug  2 13:21:25 2018 +0200

user: Add RISC-V BSP section

Update #3433.

---

 user/bsps/bsps-riscv.rst | 110 ++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 109 insertions(+), 1 deletion(-)

diff --git a/user/bsps/bsps-riscv.rst b/user/bsps/bsps-riscv.rst
index 5767a20..cda676f 100644
--- a/user/bsps/bsps-riscv.rst
+++ b/user/bsps/bsps-riscv.rst
@@ -4,4 +4,112 @@
 riscv (RISC-V)
 **************
 
-TODO.
+RISC-V
+======
+
+This BSP offers 13 variants:
+
+* rv32i
+
+* rv32iac
+
+* rv32im
+
+* rv32imac
+
+* rv32imafc
+
+* rv32imafd
+
+* rv32imafdc
+
+* rv64imac
+
+* rv64imac_medany
+
+* rv64imafd
+
+* rv64imafd_medany
+
+* rv64imafdc
+
+* rv64imafdc_medany
+
+Each variant corresponds to a GCC multilib.  A particular variant reflects an
+ISA with ABI and code model choice.
+
+The basic hardware initialization is not performed by the BSP.  A boot loader
+with device tree support must be used to start the BSP, e.g. BBL.  The BSP must
+be started im machine mode.
+
+The reference platform for this BSP is the Qemu `virt` machine.
+
+Build Configuration Options
+---------------------------
+
+The following options are available at the configure command line.
+
+``BSP_PRESS_KEY_FOR_RESET``
+    If defined to a non-zero value, then print a message and wait until pressed
+    before resetting board when application terminates.
+
+``BSP_RESET_BOARD_AT_EXIT``
+    If defined to a non-zero value, then reset the board when the application
+    terminates.
+
+``BSP_PRINT_EXCEPTION_CONTEXT``
+    If defined to a non-zero value, then print the exception context when an
+    unexpected exception occurs.
+
+``BSP_FDT_BLOB_SIZE_MAX``
+    The maximum size of the device tree blob in bytes (default is 65536).
+
+``BSP_CONSOLE_BAUD``
+    The default baud for console driver devices (default 115200).
+
+``RISCV_MAXIMUM_EXTERNAL_INTERRUPTS``
+     The maximum number of external interrupts supported by the BSP (default
+     64).
+
+``RISCV_ENABLE_HTIF_SUPPORT``
+     Enables the HTIF support if defined to a non-zero value, otherwise it is
+     disabled (disabled by default).
+
+``RISCV_CONSOLE_MAX_NS16550_DEVICES``
+     The maximum number of NS16550 devices supported by the console driver (2
+     by default).
+
+``RISCV_RAM_REGION_BEGIN``
+     The begin of the RAM region for linker command file (default is 0x70000000
+     for 64-bit with -mcmodel=medlow and 0x80000000 for all other).
+
+``RISCV_RAM_REGION_SIZE``
+     The size of the RAM region for linker command file (default 64MiB).
+
+Interrupt Controller
+--------------------
+
+Exactly one Core Local Interruptor (CLINT) and exactly one Platform-Level
+Interrupt Controller (PLIC) are supported.  The maximum number of external
+interrupts supported by the BSP is defined by the
+``RISCV_MAXIMUM_EXTERNAL_INTERRUPTS`` BSP option.
+
+Clock Driver
+------------
+
+The clock driver uses the CLINT timer.
+
+Console Driver
+--------------
+
+The console driver supports devices compatible to
+
+* "ucb,htif0" (depending on the ``RISCV_ENABLE_HTIF_SUPPORT`` BSP option),
+
+* "ns16550a" (see ``RISCV_CONSOLE_MAX_NS16550_DEVICES`` BSP option), and
+
+* "ns16750" (see ``RISCV_CONSOLE_MAX_NS16550_DEVICES`` BSP option).
+
+They are initialized according to the device tree.  The console driver does not
+configure the pins or peripheral clocks.  The console device is selected
+according to the device tree "/chosen/stdout-path" property value.



More information about the vc mailing list