boards: starfive: add visionfive2 board

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>
This commit is contained in:
Pratik Farkase 2024-03-05 16:14:06 +01:00 committed by David Leach
parent 2b4ce8b3bb
commit 5e346f553d
9 changed files with 162 additions and 0 deletions

10
boards/starfive/index.rst Normal file
View file

@ -0,0 +1,10 @@
.. _boards-starfive:
StarFive
########
.. toctree::
:maxdepth: 1
:glob:
**/*

View file

@ -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

View file

@ -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

View file

@ -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.

After

Width:  |  Height:  |  Size: 64 KiB

View file

@ -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

View file

@ -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>;
};

View file

@ -0,0 +1,9 @@
identifier: visionfive2
name: Visionfive JH7110 (NON-SMP)
type: mcu
arch: riscv64
toolchain:
- zephyr
- cross-compile
supported:
- uart

View file

@ -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