diff --git a/index.md b/index.md index e8f11914..6a0f075f 100644 --- a/index.md +++ b/index.md @@ -33,8 +33,9 @@ The ARINC653 execution environment (APEX) is under development. 8. [Running system on `ia32-generic-qemu`](quickstart/ia32-generic-qemu.md) 9. [Running system on `riscv64-generic-qemu`](quickstart/riscv64-generic-qemu.md) 10. [Running system on `riscv64-generic-spike`](quickstart/riscv64-generic-spike.md) - 11. [Running system on `sparcv8leon3-gr716-mini`](quickstart/sparcv8leon3-gr716-mini.md) - 12. [Running system on `sparcv8leon3-gr712rc-board`](quickstart/sparcv8leon3-gr712rc-board) + 11. [Running system on riscv64-noelv-fpga](quickstart/riscv64-noelv-fpga.md) + 12. [Running system on `sparcv8leon3-gr716-mini`](quickstart/sparcv8leon3-gr716-mini.md) + 13. [Running system on `sparcv8leon3-gr712rc-board`](quickstart/sparcv8leon3-gr712rc-board) 5. [Loader](loader/index.md) 1. [Architecture](loader/architecture.md) 2. [Command-line interface](loader/cli.md) diff --git a/quickstart/_images/ArtyA7_Board.bmp b/quickstart/_images/ArtyA7_Board.bmp new file mode 100644 index 00000000..21f9625c Binary files /dev/null and b/quickstart/_images/ArtyA7_Board.bmp differ diff --git a/quickstart/_images/GRmon_Entry.png b/quickstart/_images/GRmon_Entry.png new file mode 100644 index 00000000..31a6a4fb Binary files /dev/null and b/quickstart/_images/GRmon_Entry.png differ diff --git a/quickstart/_images/GRmon_Phoenix.png b/quickstart/_images/GRmon_Phoenix.png new file mode 100644 index 00000000..9ef5c27a Binary files /dev/null and b/quickstart/_images/GRmon_Phoenix.png differ diff --git a/quickstart/_images/GRmon_SBI.png b/quickstart/_images/GRmon_SBI.png new file mode 100644 index 00000000..475ea1a5 Binary files /dev/null and b/quickstart/_images/GRmon_SBI.png differ diff --git a/quickstart/_images/GRmon_bad_connect.png b/quickstart/_images/GRmon_bad_connect.png new file mode 100644 index 00000000..aa357bc5 Binary files /dev/null and b/quickstart/_images/GRmon_bad_connect.png differ diff --git a/quickstart/_images/GRmon_run_termin.png b/quickstart/_images/GRmon_run_termin.png new file mode 100644 index 00000000..870518d8 Binary files /dev/null and b/quickstart/_images/GRmon_run_termin.png differ diff --git a/quickstart/_images/GRmon_start.png b/quickstart/_images/GRmon_start.png new file mode 100644 index 00000000..ff774e2f Binary files /dev/null and b/quickstart/_images/GRmon_start.png differ diff --git a/quickstart/_images/noelv-ls.png b/quickstart/_images/noelv-ls.png new file mode 100644 index 00000000..466a91d6 Binary files /dev/null and b/quickstart/_images/noelv-ls.png differ diff --git a/quickstart/_images/noelv-start.png b/quickstart/_images/noelv-start.png new file mode 100644 index 00000000..56647d22 Binary files /dev/null and b/quickstart/_images/noelv-start.png differ diff --git a/quickstart/index.md b/quickstart/index.md index c68c9932..675c6813 100644 --- a/quickstart/index.md +++ b/quickstart/index.md @@ -16,9 +16,10 @@ and building artifacts are available in the `_boot` directory. The building proc 8. [Running system on ia32-generic-qemu](ia32-generic-qemu.md) 9. [Running system on riscv64-generic-qemu](riscv64-generic-qemu.md) 10. [Running system on riscv64-generic-spike](riscv64-generic-spike.md) -11. [Running system on sparcv8leon3-gr716-mini](sparcv8leon3-gr716-mini.md) -12. [Running system on sparcv8leon3-gr712rc-board](sparcv8leon3-gr712rc-board.md) -12. [Table of Contents](../index.md) +11. [Running system on riscv64-noelv-fpga](riscv64-noelv-fpga.md) +12. [Running system on sparcv8leon3-gr716-mini](sparcv8leon3-gr716-mini.md) +13. [Running system on sparcv8leon3-gr712rc-board](sparcv8leon3-gr712rc-board.md) +14. [Table of Contents](../index.md) ```{toctree} :maxdepth: 1 @@ -37,6 +38,7 @@ armv8r52-mps3an536-qemu.md ia32-generic-qemu.md riscv64-generic-qemu.md riscv64-generic-spike.md +riscv64-noelv-fpga.md sparcv8leon3-gr716-mini.md sparcv8leon3-gr712rc-board ``` diff --git a/quickstart/riscv64-noelv-fpga.md b/quickstart/riscv64-noelv-fpga.md new file mode 100644 index 00000000..0ac065b5 --- /dev/null +++ b/quickstart/riscv64-noelv-fpga.md @@ -0,0 +1,117 @@ +# Running system on riscv64-noelv-fpga + +These instructions describe how to run Phoenix-RTOS on the NOEL-V processor configured on the Digilent Arty A7-100T +FPGA - `riscv64-noelv-fpga` target. Note that the build artifacts, including the system image should be provided in the +`_boot` directory. If you have not built the system image yet, please refer to the +[Building Phoenix-RTOS image](../building/index.md) section. + +## Connecting the board + +Connect the board to the computer using micro USB cable that provides power and UART communication, like on image +below: + +![Image](_images/ArtyA7_Board.bmp) + +## Loading the Phoenix-RTOS system image + +To load the Phoenix-RTOS system image to the board, you will need to use the `GRMON` debug monitor. + +
+How to get GRMON + +- Download the GRMON software from the [official website](https://www.gaisler.com/index.php/downloads/debug-tools) + +- After downloading the archive, extract it and optionally add the `grmon` binary to the `PATH` variable +(You can also copy its binary to `/bin` with sudo). + +- Install Digilent Adept Runtime for debug link connection: + + - On Linux systems, the Digilent Adept2 Runtime must be installed on the host computer, which can be downloaded + from Digilent's website. + - More detailed information you can be found in the + [GRMON User's Manual](https://www.gaisler.com/doc/grmon-eval/grmon3.pdf) + & [Digilent Adept 2](https://digilent.com/reference/software/adept/start). + +
+
+ +Launch the `GRMON` monitor using the following command: + +```console +grmon -digilent +``` + +Note: The `-digilent` parameter specifies the Digilent JTAG adapter. + +If the board is correctly plugged in and Adept2 is present on the system, grmon will display something similar to this: + +![Image](_images/GRmon_start.png) + +In case of bad connection or problem with Adept2 you may get similar output: + +![Image](_images/GRmon_bad_connect.png) + +Load the Phoenix-RTOS system image into the RAM by running the following commands in the `GRMON`: + +- Load supervisor binary interface for RISC-V: + +```console +load phoenix-rtos-project/_boot/riscv64-noelv-fpga/sbi-noelv.elf +``` + +![Image](_images/GRmon_SBI.png) + +- Load Phoenix-RTOS system: + +```console +load -binary phoenix-rtos-project/_boot/riscv64-noelv-fpga/phoenix.disk 0x08000000 +``` + +![Image](_images/GRmon_Phoenix.png) + +Determine entry point of the program: + +```console +ep 0x0 +``` + +![Image](_images/GRmon_Entry.png) + +Check on which port the board is connected to the computer. To do this, run the following command: + +```console +ls -l /dev/serial/by-id +``` + +![Image](_images/noelv-ls.png) + +In this case, the serial port to use is `/dev/ttyUSB1`. Open the terminal emulator and connect to the board using the +following command: + +```console +picocom -b 115200 --imap lfcrlf /dev/ttyUSB1 +``` + +To start the Phoenix-RTOS system, execute the following command in the `GRMON` monitor: + +```console +run +``` + +## Using the Phoenix-RTOS + +After executing the `run` command, Phoenix-RTOS will be launched and the `psh` shell command prompt will appear in the +terminal. + +![Image](_images/noelv-start.png) + +Note: Keep in mind that it is necessary to have grmon running in background. In case of closing emulation via `detach` +or accidental terminating `run` command, it will shut down the connection with the board. +Grmon will inform you of such an event like or similar to this: + +![Image](_images/GRmon_run_termin.png) + +## See also + +1. [Running system on targets](index.md) +2. [Table of Contents](../index.md)