Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

quickstart: add sparcv8leon3-gr716-mimas target #204

Merged
merged 1 commit into from
Aug 28, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions index.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ The ARINC653 execution environment (APEX) is under development.
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)
13. [Running system on `sparcv8leon3-gr712rc-board`](quickstart/sparcv8leon3-gr716-mimas)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This has been merged, but the target's name is incorrect here

Suggested change
13. [Running system on `sparcv8leon3-gr712rc-board`](quickstart/sparcv8leon3-gr716-mimas)
13. [Running system on `sparcv8leon3-gr716-mimas`](quickstart/sparcv8leon3-gr716-mimas)

5. [Loader](loader/index.md)
1. [Architecture](loader/architecture.md)
2. [Command-line interface](loader/cli.md)
Expand Down
Binary file added quickstart/_images/MimasA7_Mini_Connected.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added quickstart/_images/MimasA7_Mini_WD.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added quickstart/_images/gr716-mimas-help.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added quickstart/_images/gr716-mimas-loading.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added quickstart/_images/gr716-mimas-picocom-send.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added quickstart/_images/gr716-mimas-ps.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added quickstart/_images/gr716-mimas-start.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 4 additions & 2 deletions quickstart/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ and building artifacts are available in the `_boot` directory. The building proc
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)
13. [Running system on sparcv8leon3-gr716-mimas](sparcv8leon3-gr716-mimas.md)
14. [Table of Contents](../index.md)

```{toctree}
:maxdepth: 1
Expand All @@ -38,5 +39,6 @@ ia32-generic-qemu.md
riscv64-generic-qemu.md
riscv64-generic-spike.md
sparcv8leon3-gr716-mini.md
sparcv8leon3-gr712rc-board
sparcv8leon3-gr712rc-board.md
sparcv8leon3-gr716-mimas.md
```
107 changes: 107 additions & 0 deletions quickstart/sparcv8leon3-gr716-mimas.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
# Running system on <nobr>sparcv8leon3-gr716-mimas</nobr>

These instructions describe how to run Phoenix-RTOS on the LEON3/GR716 emulated
on Mimas A7 Mini FPGA which is called `sparcv8leon3-gr716-mimas`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 a USB cable which provide power to the board (There is pin jumper that
determinate which power line will be in use).

Communication with the board in this case is provided via USB-UART converters connected to connector `P4`

- pins `3-tx (E13 - red)`&`5-rx (D16 - orange)` are used for interfacing with the `phoenixd` server.
- pins `7-tx (E15 - yellow)`&`9-rx (F14 - orange)` are used for `psh/plo` console.
- pins `37-M4` & `49-GND` must be connected via `10k` ohm resistor.

Mimas pinout diagram:
![Image](_images/MimasA7_Mini_WD.png)
maska989 marked this conversation as resolved.
Show resolved Hide resolved

Source: The MimasA7 Mini board's schematic, available on
<https://numato.com/product/mimas-a7-mini-fpga-development-board/>

This is how connected device should look like:
![Image](_images/MimasA7_Mini_Connected.jpg)

## Programming Artix FPGA

All information about preparing and uploading a bit stream for the Mimas A7 Mini can be found in the
[phoenix-rtos-hdl](https://github.com/phoenix-rtos/phoenix-rtos-hdl/blob/master/leon3-numato-mimas-a7-mini/README.md)
repository.

`Note: Do not run further steps until FPGA isn't programed properly.`

## Copying system image using PHFS (phoenixd)

To load the disk image on the board, first step is to verify which device the `plo` serial interface is connected to
using the following command:

```bash
ls -l /dev/serial/by-id
```

The output of this command depends on what interfaces are used. (Easiest way to determinate which one are correct is
run this command, unplug one of them and again using same command check what device disappears).

To provide the disk image to the bootloader, `phoenixd` has to be launched with the following arguments
(choose suitable ttys device, in this case, USB-UART converter is connected to pins `3 & 5`):

`-s` option to `phoenixd` determines from where program will upload files to the device. To simplify this process,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks a bit strange

we can just move to the desired folder and use `.` to point to the current directory.
To do that simply type:

```bash
maska989 marked this conversation as resolved.
Show resolved Hide resolved
cd _boot/sparcv8leon3-gr716-mimas
```

then

```bash
sudo ./phoenixd -p /dev/ttyUSB[X] -b 115200 -s .
```

In a second terminal start `picocom` using the following command:

```bash
picocom --imap lfcrlf -b 115200 -r -l /dev/ttyUSB[X] --send-cmd cat
```

After resetting the board using the `BTN0` button, you should see `Bootloader` message in the terminal. To load the
bootloader (`plo`) to the RAM, send the image using `picocom --send-cmd`. Type `Ctrl+a` followed by `Ctrl+s`,
enter the path to the `plo.img` file and press `Enter`. The file is located in the `_boot/sparcv8leon3-gr716-mimas`
directory. Refer to the image below:

![Image](_images/gr716-mimas-picocom-send.png)

If the image has been loaded correctly, you should see system startup logs.

![Image](_images/gr716-mimas-loading.png)

## Using the Phoenix-RTOS

After loading, Phoenix-RTOS will be launched and the `psh` shell command prompt will appear in the terminal.

![Image](_images/gr716-mimas-start.png)

To get the available command list type:

```console
help
```

![Image](_images/gr716-mimas-help.png)

To get the list of working processes type:

```bash
ps
```

![Image](_images/gr716-mimas-ps.png)

## See also

1. [Running system on targets](index.md)
2. [Table of Contents](../index.md)
Loading