| .. _visionfive2: |
| |
| Starfive VisionFive 2 JH7110 |
| ############################ |
| |
| Overview |
| ******** |
| |
| The StarFive VisionFive 2 is a development board with a StarFive JH7110 |
| multi-core 64bit RISC-V SoC. |
| |
| .. image:: img/visionfive2.webp |
| :align: center |
| :alt: StarFive VisionFive 2 Board |
| |
| Programming and debugging |
| ************************* |
| |
| Building |
| ======== |
| |
| Applications for the ``visionfive2`` board configuration can be built |
| as usual (see :ref:`build_an_application`) using the corresponding board name: |
| |
| .. zephyr-app-commands:: |
| :board: visionfive2 |
| :goals: build |
| |
| `spl_tool <https://github.com/starfive-tech/Tools/tree/master/spl_tool/>`_ |
| is a jh7110 signature tool used to generate spl header information |
| and generate ``zephyr.bin.normal.out``. |
| |
| .. code-block:: console |
| |
| ./spl_tool -c -f build/zephyr/zephyr.bin |
| |
| This will create a new file ``build/zephyr/zephyr.bin.normal.out`` that can be flashed. |
| This step is necessary as zephyr binary must contain the SPL header info in order |
| to run it in M-Mode (Machine Mode) since S-Mode (Supervisor Mode) is |
| currently not supported. |
| |
| Flashing |
| ======== |
| |
| .. note:: |
| The following steps use minicom for serial communication, feel free to use |
| any other serial terminal that supports xmodem based file transfers. |
| Thanks to @orangecms for his vf2-loader tool which makes the flashing process easier |
| |
| git clone the vf2-loader tool from https://github.com/orangecms/vf2-loader.git and |
| xmodem tool from https://github.com/orangecms/xmodem.rs.git side by side. |
| |
| VisionFive2 uses uart for flashing. Refer to |
| `VisionFive2 Recovery Quick Start Guide |
| <https://doc-en.rvspace.org/VisionFive2/Quick_Start_Guide/VisionFive2_SDK_QSG/recovering_bootloader%20-%20vf2.html>`_ |
| to connect your serial-to-usb converter. Now power on the board and using |
| minicom access board's serial and press the reset switch on the board until you see CCCCCC... prompt |
| |
| Copy the ``zephyr.bin.normal.out`` from ``build/zephyr/zephyr.bin.normal.out`` |
| to previously git cloned vf2-loader/ directory and cd into it. |
| Flash the ``zephyr.bin.normal.out`` using this command: |
| |
| .. code-block:: console |
| |
| cargo run -- zephyr.bin.normal.out && minicom -D /dev/ttyUSB0 |
| |
| .. code-block:: text |
| |
| cargo run -- zephyr.bin.normal.out && minicom -D /dev/ttyUSB0 |
| Finished dev [unoptimized + debuginfo] target(s) in 0.03s |
| Running `target/debug/vf2-loader zephyr.bin.normal.out` |
| Welcome to minicom 2.7.1 |
| OPTIONS: I18n |
| Compiled on Dec 23 2019, 02:06:26. |
| Port /dev/ttyUSB0, 14:59:24 |
| Press CTRL-A Z for help on special keys |
| 6*** Booting Zephyr OS build v3.6.0-rc3 *** |
| Hello World! visionfive2 |