[Buildroot] [PATCH 00/11] Fix RV64 NOMMU and add Canaan K210 SoC support

Damien Le Moal damien.lemoal at wdc.com
Wed May 25 13:27:18 UTC 2022


From: Damien Le Moal <damien.lemoal at opensource.wdc.com>

(resend using subscribed email address)

This patch series is a rework of the old v5 series "Add RV64 NOMMU and
Canaan K210 SoC support" already posted some (long) time ago.

This series adds support for building 64-bits RISC-V NOMMU kernels (both
bootable kernels and u-boot sdcard boot envronements) for NOMMU RISC-V
64-bits boards. The board supported include QEMU and many boards using
the dual-core RISC-V 64-bits Cannan Kendryte K210 SoC.

The first patch is a simple fix of elf2flt configuration menu entry.
The second patch fixes the existing elf2flt RISC-V 64-bits support.

The third patch adds a Linux kernel patch that must be used for all
NOMMU RISC-V builds. This patch will be present in the upcoming 5.19
kernel.

Patch 4 adds a buildroot configuration file for QEMU NOMMU RISC-V
64-bits builds.

Patch 5 modifies the python-serial package definition so that it can be
used as a host package to open serial consoles with the K210-based
boards.

Patch 6 adds all configurations bits common to all K210-based boards.

Finally, the last 5 patches add support for the following K210-based
boards:
* Sipeed MAIX Bit
* Sipeed MAIXDUINO
* Sipeed MAIX Dock (dan)
* Sipeed MAIX Go
* Canaan KD233 development board

For each board, a readme.txt file is added to document how to build and
install images for these   
boards.

One thing that is missing from this patch series is the addition of the
python-based Kendryte K210 UART ISP utility kflash
(https://github.com/vowstar/kflash.py). This utility is available
as a package on the pypi.org package index but adding it as a buildroot
package is difficult due to the package dependencies needed. These
dependencies end up requiring other packages to be enable and end up
with an openssl build conflict resulting in u-boot compilation failures.
For this reason, this utility is not added as a package. Its
installation and use is documented in the readme file for the K210
boards.

Damien Le Moal (10):
  package: elf2flt: fix config menu entry description
  package: elf2flt: Update RISC-V 64-bits support
  board: Add common Linux kernel support for RISCV NOMMU builds
  package: python-serial: Define host package
  board: Add common support for Canaan K210 SoC-based boards
  board: Add Sipeed MAIX-Bit board support
  board: Add Sipeed MAIXDUINO board support
  board: Add Sipeed MAIX-Dock board support
  board: Add Sipeed MAIX-Go board support
  board: Add Canaan KD233 board support

Niklas Cassel (1):
  configs/qemu_riscv64_nommu_virt_defconfig: new defconfig

 DEVELOPERS                                    |  13 +
 board/canaan/k210-soc/busybox-tiny.config     | 231 +++++++++++++
 board/canaan/k210-soc/genimage.cfg            |  30 ++
 board/canaan/k210-soc/linux-sdcard.config     |   4 +
 board/canaan/k210-soc/post-build.sh           |  28 ++
 board/canaan/k210-soc/rootfs_overlay/init     |   1 +
 .../canaan/k210-soc/rootfs_overlay/sbin/init  |  41 +++
 board/canaan/k210-soc/uboot.config            |   1 +
 board/canaan/kd233/linux-cpio.config          |   2 +
 board/canaan/kd233/readme.txt                 | 142 ++++++++
 board/qemu/riscv64-virt/readme.txt            |   2 +
 ...ot-stop-relocating-GOT-entries-prema.patch | 110 ++++++
 board/riscv/nommu/readme.txt                  |   3 +
 board/sipeed/maix-bit/linux-cpio.config       |   2 +
 board/sipeed/maix-bit/readme.txt              | 309 +++++++++++++++++
 board/sipeed/maix-dock/linux-cpio.config      |   2 +
 board/sipeed/maix-dock/readme.txt             | 314 ++++++++++++++++++
 board/sipeed/maix-go/linux-cpio.config        |   2 +
 board/sipeed/maix-go/readme.txt               | 313 +++++++++++++++++
 board/sipeed/maixduino/linux-cpio.config      |   2 +
 board/sipeed/maixduino/readme.txt             | 286 ++++++++++++++++
 configs/canaan_kd233_defconfig                |  41 +++
 configs/qemu_riscv64_nommu_virt_defconfig     |  38 +++
 configs/sipeed_maix_bit_defconfig             |  38 +++
 configs/sipeed_maix_bit_sdcard_defconfig      |  56 ++++
 configs/sipeed_maix_dock_defconfig            |  38 +++
 configs/sipeed_maix_dock_sdcard_defconfig     |  56 ++++
 configs/sipeed_maix_go_defconfig              |  38 +++
 configs/sipeed_maix_go_sdcard_defconfig       |  56 ++++
 configs/sipeed_maixduino_defconfig            |  38 +++
 configs/sipeed_maixduino_sdcard_defconfig     |  56 ++++
 package/Config.in.host                        |   1 +
 ...tate-32-byte-alignment-for-.data-sec.patch |  81 +++++
 ...f2flt-fix-.eh_frame-section-handling.patch |  73 ++++
 ...4-elf2flt-add-riscv-64-bits-support.patch} |  80 ++---
 package/elf2flt/Config.in.host                |   2 +-
 package/python-serial/Config.in.host          |   6 +
 package/python-serial/python-serial.mk        |   1 +
 38 files changed, 2483 insertions(+), 54 deletions(-)
 create mode 100644 board/canaan/k210-soc/busybox-tiny.config
 create mode 100644 board/canaan/k210-soc/genimage.cfg
 create mode 100644 board/canaan/k210-soc/linux-sdcard.config
 create mode 100755 board/canaan/k210-soc/post-build.sh
 create mode 120000 board/canaan/k210-soc/rootfs_overlay/init
 create mode 100755 board/canaan/k210-soc/rootfs_overlay/sbin/init
 create mode 100644 board/canaan/k210-soc/uboot.config
 create mode 100644 board/canaan/kd233/linux-cpio.config
 create mode 100644 board/canaan/kd233/readme.txt
 create mode 100644 board/riscv/nommu/kernel_patches/0001-binfmt_flat-do-not-stop-relocating-GOT-entries-prema.patch
 create mode 100644 board/riscv/nommu/readme.txt
 create mode 100644 board/sipeed/maix-bit/linux-cpio.config
 create mode 100644 board/sipeed/maix-bit/readme.txt
 create mode 100644 board/sipeed/maix-dock/linux-cpio.config
 create mode 100644 board/sipeed/maix-dock/readme.txt
 create mode 100644 board/sipeed/maix-go/linux-cpio.config
 create mode 100644 board/sipeed/maix-go/readme.txt
 create mode 100644 board/sipeed/maixduino/linux-cpio.config
 create mode 100644 board/sipeed/maixduino/readme.txt
 create mode 100644 configs/canaan_kd233_defconfig
 create mode 100644 configs/qemu_riscv64_nommu_virt_defconfig
 create mode 100644 configs/sipeed_maix_bit_defconfig
 create mode 100644 configs/sipeed_maix_bit_sdcard_defconfig
 create mode 100644 configs/sipeed_maix_dock_defconfig
 create mode 100644 configs/sipeed_maix_dock_sdcard_defconfig
 create mode 100644 configs/sipeed_maix_go_defconfig
 create mode 100644 configs/sipeed_maix_go_sdcard_defconfig
 create mode 100644 configs/sipeed_maixduino_defconfig
 create mode 100644 configs/sipeed_maixduino_sdcard_defconfig
 create mode 100644 package/elf2flt/0002-elf2flt.ld-reinstate-32-byte-alignment-for-.data-sec.patch
 create mode 100644 package/elf2flt/0003-elf2flt-fix-.eh_frame-section-handling.patch
 rename package/elf2flt/{0002-elf2flt-add-riscv-64-bits-support.patch => 0004-elf2flt-add-riscv-64-bits-support.patch} (52%)
 create mode 100644 package/python-serial/Config.in.host

-- 
2.36.1




More information about the buildroot mailing list