This is an automated email from the ASF dual-hosted git repository. simbit18 pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/nuttx.git
commit a0c878ad96d8993b9e02ffaf168b5033f2826abe Author: Matteo Golin <[email protected]> AuthorDate: Fri Oct 17 15:20:18 2025 -0400 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 <[email protected]> --- .../risc-v/k210/boards/maix-bit/README-qemu.txt | 47 ------- .../risc-v/k210/boards/maix-bit/README.txt | 42 ------ .../risc-v/k210/boards/maix-bit/index.rst | 141 ++++++++++++++++++++- .../risc-v/k210/boards/maix-bit/maix-bit.png | Bin 0 -> 521760 bytes 4 files changed, 136 insertions(+), 94 deletions(-) diff --git a/Documentation/platforms/risc-v/k210/boards/maix-bit/README-qemu.txt b/Documentation/platforms/risc-v/k210/boards/maix-bit/README-qemu.txt deleted file mode 100644 index 53fcddcd1f0..00000000000 --- a/Documentation/platforms/risc-v/k210/boards/maix-bit/README-qemu.txt +++ /dev/null @@ -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 diff --git a/Documentation/platforms/risc-v/k210/boards/maix-bit/README.txt b/Documentation/platforms/risc-v/k210/boards/maix-bit/README.txt deleted file mode 100644 index dff369abcbf..00000000000 --- a/Documentation/platforms/risc-v/k210/boards/maix-bit/README.txt +++ /dev/null @@ -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 diff --git a/Documentation/platforms/risc-v/k210/boards/maix-bit/index.rst b/Documentation/platforms/risc-v/k210/boards/maix-bit/index.rst index fbc248a3783..8ab90c7e9b8 100644 --- a/Documentation/platforms/risc-v/k210/boards/maix-bit/index.rst +++ b/Documentation/platforms/risc-v/k210/boards/maix-bit/index.rst @@ -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. diff --git a/Documentation/platforms/risc-v/k210/boards/maix-bit/maix-bit.png b/Documentation/platforms/risc-v/k210/boards/maix-bit/maix-bit.png new file mode 100644 index 00000000000..b9d21264b82 Binary files /dev/null and b/Documentation/platforms/risc-v/k210/boards/maix-bit/maix-bit.png differ
