blob: 98f966f0513db7fa8ae7fb541731ba3b747e7124 [file] [log] [blame]
.. _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