Skip to content

Commit

Permalink
boards: starfive: add visionfive2 board
Browse files Browse the repository at this point in the history
these list of patches add support the Starfive Visionfive2
SBC based on the JH7110 SoC. Board identifier is `visionfive2`.

Signed-off-by: Kanak Shilledar <kanakshilledar111@protonmail.com>
Signed-off-by: Pratik Farkase <pratik.farkase@wsisweden.com>
  • Loading branch information
pfarwsi committed Mar 8, 2024
1 parent 3edbd19 commit e4a4ba1
Show file tree
Hide file tree
Showing 9 changed files with 162 additions and 0 deletions.
10 changes: 10 additions & 0 deletions boards/starfive/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
.. _boards-starfive:

StarFive
########

.. toctree::
:maxdepth: 1
:glob:

**/*
12 changes: 12 additions & 0 deletions boards/starfive/visionfive2/Kconfig.defconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Copyright (c) 2024 Kanak Shilledar <kanakshilledar111@protonmail.com>
# SPDX-License-Identifier: Apache-2.0

if BOARD_VISIONFIVE2_JH7110

config SYS_CLOCK_TICKS_PER_SEC
default 1000

config SYS_CLOCK_HW_CYCLES_PER_SEC
default 1000000

endif # BOARD_VISIONFIVE2_JH7110
5 changes: 5 additions & 0 deletions boards/starfive/visionfive2/Kconfig.visionfive2
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Copyright (c) 2024 Kanak Shilledar <kanakshilledar111@protonmail.com>
# SPDX-License-Identifier: Apache-2.0

config BOARD_VISIONFIVE2_JH7110
select SOC_JH7110
8 changes: 8 additions & 0 deletions boards/starfive/visionfive2/board.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Copyright (c) 2024 Kanak Shilledar <kanakshilledar111@protonmail.com>
# SPDX-License-Identifier: Apache-2.0

board:
name: visionfive2
vendor: starfive
socs:
- name: jh7110
Binary file not shown.
78 changes: 78 additions & 0 deletions boards/starfive/visionfive2/doc/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
.. _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
30 changes: 30 additions & 0 deletions boards/starfive/visionfive2/visionfive2.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
/*
* Copyright (c) 2024 Kanak Shilledar <kanakshilledar111@protonmail.com>
*
* SPDX-License-Identifier: Apache-2.0
*/

/dts-v1/;

#include "starfive/jh7110-visionfive-v2.dtsi"

/ {
model = "StarFive VisionFive V2";
compatible = "starfive,visionfive-v2";

chosen {
zephyr,console = &uart0;
zephyr,shell-uart = &uart0;
zephyr,sram = &ram0;
};
};

&uart0 {
status = "okay";
current-speed = <115200>;
};

&uart1 {
status = "okay";
current-speed = <115200>;
};
9 changes: 9 additions & 0 deletions boards/starfive/visionfive2/visionfive2.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
identifier: visionfive2
name: Visionfive JH7110 (NON-SMP)
type: mcu
arch: riscv64
toolchain:
- zephyr
- cross-compile
supported:
- uart
10 changes: 10 additions & 0 deletions boards/starfive/visionfive2/visionfive2_defconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# SPDX-License-Identifier: Apache-2.0

# Zephyr Kernel Configuration
CONFIG_PRINTK=y
CONFIG_XIP=n

# Serial Drivers
CONFIG_SERIAL=y
CONFIG_CONSOLE=y
CONFIG_UART_CONSOLE=y

0 comments on commit e4a4ba1

Please sign in to comment.