docs/platforms/risc-v/k210/boards/maix-bit: Migrate README.txt

Migrated legacy README.txt documentation to RST format following the
standard board documentation template.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
This commit is contained in:
Matteo Golin
2025-10-17 15:20:18 -04:00
committed by simbit18
parent 286bec29d9
commit a0c878ad96
4 changed files with 136 additions and 94 deletions
@@ -1,47 +0,0 @@
1. Download and install toolchain
$ curl https://static.dev.sifive.com/dev-tools/riscv64-unknown-elf-gcc-8.3.0-2019.08.0-x86_64-linux-ubuntu14.tar.gz
2. Build and install qemu
$ git clone https://github.com/qemu/qemu
$ cd qemu
$ ./configure --target-list=riscv64-softmmu
$ make
$ sudo make install
3. Modify defconfig
--- a/boards/risc-v/k210/maix-bit/configs/nsh/defconfig
+++ b/boards/risc-v/k210/maix-bit/configs/nsh/defconfig
@@ -25,6 +25,7 @@ CONFIG_EXAMPLES_HELLO=y
CONFIG_FS_PROCFS=y
CONFIG_IDLETHREAD_STACKSIZE=2048
CONFIG_INTELHEX_BINARY=y
+CONFIG_K210_WITH_QEMU=y
CONFIG_LIBC_PERROR_STDOUT=y
CONFIG_LIBC_STRERROR=y
4. Configure and build NuttX
$ mkdir ./nuttx; cd ./nuttx
$ git clone https://github.com/apache/nuttx.git nuttx
$ git clone https://github.com/apache/nuttx-apps.git apps
$ cd nuttx
$ make distclean
$ ./tools/configure.sh maix-bit:nsh
$ make V=1
5. Run the nuttx with qemu
$ qemu-system-riscv64 -nographic -machine sifive_u -bios ./nuttx
NOTE: To run nuttx for kostest, gdb needs to be used to load both nuttx_user.elf and nuttx
$ qemu-system-riscv64 -nographic -machine sifive_u -s -S
$ riscv64-unknown-elf-gdb -ex 'target extended-remote:1234' -ex 'load nuttx_user.elf' -ex 'load nuttx' -ex 'c'
6. TODO
Support FPU
Support RISC-V User mode
@@ -1,42 +0,0 @@
1. Download and install toolchain and openocd-k210
$ curl https://static.dev.sifive.com/dev-tools/riscv64-unknown-elf-gcc-8.3.0-2019.08.0-x86_64-linux-ubuntu14.tar.gz
$ export PATH=$PATH:/$TOOL_CHAIN_PATH/bin
2. Build openocd-k210
$ git clone https://github.com/kendryte/openocd-kendryte
$ cd openocd-kendryte
$ ./bootstrap & ./configure & make
3. Configure and build NuttX
$ mkdir ./nuttx; cd ./nuttx
$ git clone https://github.com/apache/nuttx.git nuttx
$ git clone https://github.com/apache/nuttx-apps.git apps
$ cd nuttx
$ make distclean
$ ./tools/configure.sh maix-bit:nsh
$ make V=1
4. Download and run the nuttx from SRAM (not SPI-Flash)
$ picocom -b 115200 /dev/ttyUSB0
$ sudo ./src/openocd -s ./tcl -f ./tcl/kendryte.cfg -m 0
$ riscv64-unknown-elf-gdb ./nuttx
(gdb) target extended-remote :3333
(gdb) load nuttx
(gdb) c
5. Write nuttx.bin to SPI-Flash
$ pip3 install kflash
$ kflash -p /dev/ttyUSB0 -b 1500000 ./nuttx/nuttx.bin
NOTE: The kflash_gui is not recommended because it's unstable
6. TODO
Support peripherals such as GPIO/SPI/I2C/...
Support FPU
Support RISC-V U-mode including memory protection
@@ -1,9 +1,140 @@
========
maix-bit
Maix Bit
========
.. include:: README.txt
:literal:
.. tags:: experimental, arch:risc-v, chip:k210, vendor:sipeed
.. include:: README-qemu.txt
:literal:
.. figure:: maix-bit.png
:figwidth: 50%
:align: center
:alt: The Maix Bit development board.
The Maix Bit development board.
The Maix Bit is a RISC-V AI IoT development board.
Features
========
* K210 RISC-V AI Chip
* Dual-core
* Independent FPU
* 64-bit
* 8MB on-chip SRAM
* Double precision FPU with multiplication, division and square root
.. warning::
There is currently no support for the FPU, or RISC-V User mode. Peripherals
such as GPIO, SPI and I2C are also currently unsupported.
.. todo::
If you are intersted in using this board, please consider contributing
implementations for the above missing features.
Installation
============
1. Download and install toolchain and openocd-k210
.. code:: console
$ curl https://static.dev.sifive.com/dev-tools/riscv64-unknown-elf-gcc-8.3.0-2019.08.0-x86_64-linux-ubuntu14.tar.gz
$ export PATH=$PATH:/$TOOL_CHAIN_PATH/bin
2. Build openocd-k210
.. code:: console
$ git clone https://github.com/kendryte/openocd-kendryte
$ cd openocd-kendryte
$ ./bootstrap & ./configure & make
Flashing
========
Download and run NuttX from SRAM (not SPI-Flash):
.. code:: console
$ picocom -b 115200 /dev/ttyUSB0
$ sudo ./src/openocd -s ./tcl -f ./tcl/kendryte.cfg -m 0
$ riscv64-unknown-elf-gdb ./nuttx
(gdb) target extended-remote :3333
(gdb) load nuttx
(gdb) c
Write ``nuttx.bin`` to SPI-Flash:
.. code:: console
$ pip3 install kflash
$ kflash -p /dev/ttyUSB0 -b 1500000 ./nuttx/nuttx.bin
.. note::
The ``kflash_gui`` is not recommended because it's unstable.
QEMU Process
============
In order to run this board's version of NuttX on QEMU, make the following
adjustments:
QEMU Installation
-----------------
Installing and building QEMU can be done with:
.. code:: console
$ git clone https://github.com/qemu/qemu
$ cd qemu
$ ./configure --target-list=riscv64-softmmu
$ make
$ sudo make install
Building NuttX for QEMU
-----------------------
Building NuttX follows the same process, but you will need to modify your chosen
configuration to include the option ``CONFIG_K210_WITH_QEMU=y``.
Running on QEMU
---------------
Run the following:
.. code:: console
$ qemu-system-riscv64 -nographic -machine sifive_u -bios ./nuttx
.. note::
To run Nuttx for kostest, ``gdb`` needs to be used to load both
``nuttx_user.elf`` and ``nuttx``.
.. code:: console
$ qemu-system-riscv64 -nographic -machine sifive_u -s -S
$ riscv64-unknown-elf-gdb -ex 'target extended-remote:1234' -ex 'load nuttx_user.elf' -ex 'load nuttx' -ex 'c'
Configurations
==============
Configurations can be selected using the following configure tool command:
.. code:: console
$ ./tools/configure.sh maix-bit:<config>
Where ``<config>`` can be replaced by the name of any configuration listed
below.
nsh
---
A simple configuration with NSH running.
Binary file not shown.

After

Width:  |  Height:  |  Size: 510 KiB