All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH v2 0/9] Add RISC-V NOMMU and Canaan K210 SoC support
@ 2021-07-15  0:48 Damien Le Moal
  2021-07-15  0:48 ` [Buildroot] [PATCH v2 1/9] arch/config: Make RISC-V MMU optional Damien Le Moal
                   ` (9 more replies)
  0 siblings, 10 replies; 23+ messages in thread
From: Damien Le Moal @ 2021-07-15  0:48 UTC (permalink / raw)
  To: buildroot

This series adds support for building RISC-V NOMMU kernel bootable
images for boards using the Cannan Kendryte K210 SoC.

The first patch makes MMU builds optional for RISC-V. The second patch
enables RV64 support in elf2flt (patch sent to uclinux-dev). The third
patch changes the base name of the toolchain to avoid build errors.

The following 5 patches add default build configuration files for
various boards: MAIX-bit, MAIX-go, MAIX-dock (Dan Dock) and MAIXDUINO
from Sipeed and the Canaan KD233 development board.

Finally, patch 9 documents how to build and install images for these
boards.

Changes from v1:
* Rebased on latest master
* Simplified patch 3 as suggested by Baruch
* Fixed typos in documentation (patch 9)
* Added reviewed-by tags

Christoph Hellwig (2):
  package/elf2flt: add RISC-V support
  package make: build RISC-V nommu builds as linux

Damien Le Moal (7):
  arch/config: Make RISC-V MMU optional
  board: Add Sipeed MAIX-bit support
  board: Add Sipeed MAIX-Go support
  board: Add Sipeed MAIXDUINO support
  board: Add Sipeed MAIX-Dock support
  board: Add Canaan KD233 support
  board: Document Canaan K210 based boards support

 arch/Config.in                                |    2 +-
 board/canaan/k210-common/README.md            |  318 +++++
 .../k210-common/busybox-tiny-initramfs.config | 1183 +++++++++++++++++
 .../k210-common/rootfs_overlay/usr/sbin/init  |   26 +
 board/canaan/kd233/README.md                  |    4 +
 board/canaan/kd233/linux-dtb.config           |    2 +
 board/sipeed/maix-bit/README.md               |    4 +
 board/sipeed/maix-bit/linux-dtb.config        |    2 +
 board/sipeed/maix-dock/README.md              |    4 +
 board/sipeed/maix-dock/linux-dtb.config       |    2 +
 board/sipeed/maix-go/README.md                |    4 +
 board/sipeed/maix-go/linux-dtb.config         |    2 +
 board/sipeed/maixduino/README.md              |    4 +
 board/sipeed/maixduino/linux-dtb.config       |    2 +
 configs/canaan_kd233_defconfig                |   23 +
 configs/canaan_kd233_sdcard_defconfig         |   23 +
 configs/sipeed_maix_bit_defconfig             |   23 +
 configs/sipeed_maix_bit_sdcard_defconfig      |   23 +
 configs/sipeed_maix_dock_defconfig            |   23 +
 configs/sipeed_maix_dock_sdcard_defconfig     |   23 +
 configs/sipeed_maix_go_defconfig              |   23 +
 configs/sipeed_maix_go_sdcard_defconfig       |   23 +
 configs/sipeed_maixduino_defconfig            |   23 +
 configs/sipeed_maixduino_sdcard_defconfig     |   23 +
 package/Makefile.in                           |    5 +-
 .../0004-elf2flt-add-riscv-support.patch      |  293 ++++
 package/elf2flt/Config.in.host                |    2 +-
 27 files changed, 2085 insertions(+), 4 deletions(-)
 create mode 100644 board/canaan/k210-common/README.md
 create mode 100644 board/canaan/k210-common/busybox-tiny-initramfs.config
 create mode 100755 board/canaan/k210-common/rootfs_overlay/usr/sbin/init
 create mode 100644 board/canaan/kd233/README.md
 create mode 100644 board/canaan/kd233/linux-dtb.config
 create mode 100644 board/sipeed/maix-bit/README.md
 create mode 100644 board/sipeed/maix-bit/linux-dtb.config
 create mode 100644 board/sipeed/maix-dock/README.md
 create mode 100644 board/sipeed/maix-dock/linux-dtb.config
 create mode 100644 board/sipeed/maix-go/README.md
 create mode 100644 board/sipeed/maix-go/linux-dtb.config
 create mode 100644 board/sipeed/maixduino/README.md
 create mode 100644 board/sipeed/maixduino/linux-dtb.config
 create mode 100644 configs/canaan_kd233_defconfig
 create mode 100644 configs/canaan_kd233_sdcard_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/0004-elf2flt-add-riscv-support.patch

-- 
2.31.1

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Buildroot] [PATCH v2 1/9] arch/config: Make RISC-V MMU optional
  2021-07-15  0:48 [Buildroot] [PATCH v2 0/9] Add RISC-V NOMMU and Canaan K210 SoC support Damien Le Moal
@ 2021-07-15  0:48 ` Damien Le Moal
  2021-07-17 15:46   ` Yann E. MORIN
  2021-07-15  0:48 ` [Buildroot] [PATCH v2 2/9] package/elf2flt: add RISC-V support Damien Le Moal
                   ` (8 subsequent siblings)
  9 siblings, 1 reply; 23+ messages in thread
From: Damien Le Moal @ 2021-07-15  0:48 UTC (permalink / raw)
  To: buildroot

Linux supports No-MMU RISC-V since kernel version 5.8. Make MMU optional
to enable building for RISC-V boards that do not have one.

Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
---
 arch/Config.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/Config.in b/arch/Config.in
index 1853e26bb4..82d3b01980 100644
--- a/arch/Config.in
+++ b/arch/Config.in
@@ -210,7 +210,7 @@ config BR2_powerpc64le
 
 config BR2_riscv
 	bool "RISCV"
-	select BR2_ARCH_HAS_MMU_MANDATORY
+	select BR2_ARCH_HAS_MMU_OPTIONAL
 	select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
 	help
 	  RISC-V is an open, free Instruction Set Architecture created
-- 
2.31.1

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [Buildroot] [PATCH v2 2/9] package/elf2flt: add RISC-V support
  2021-07-15  0:48 [Buildroot] [PATCH v2 0/9] Add RISC-V NOMMU and Canaan K210 SoC support Damien Le Moal
  2021-07-15  0:48 ` [Buildroot] [PATCH v2 1/9] arch/config: Make RISC-V MMU optional Damien Le Moal
@ 2021-07-15  0:48 ` Damien Le Moal
  2021-07-17 15:54   ` Yann E. MORIN
  2021-07-15  0:48 ` [Buildroot] [PATCH v2 3/9] package make: build RISC-V nommu builds as linux Damien Le Moal
                   ` (7 subsequent siblings)
  9 siblings, 1 reply; 23+ messages in thread
From: Damien Le Moal @ 2021-07-15  0:48 UTC (permalink / raw)
  To: buildroot

From: Christoph Hellwig <hch@lst.de>

Enable selecting elf2flt for RISC-V no MMU builds and add support for
it.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
---
 .../0004-elf2flt-add-riscv-support.patch      | 293 ++++++++++++++++++
 package/elf2flt/Config.in.host                |   2 +-
 2 files changed, 294 insertions(+), 1 deletion(-)
 create mode 100644 package/elf2flt/0004-elf2flt-add-riscv-support.patch

diff --git a/package/elf2flt/0004-elf2flt-add-riscv-support.patch b/package/elf2flt/0004-elf2flt-add-riscv-support.patch
new file mode 100644
index 0000000000..4a0bc6e4fa
--- /dev/null
+++ b/package/elf2flt/0004-elf2flt-add-riscv-support.patch
@@ -0,0 +1,293 @@
+From d096b496525e487b356ac180a7168c18703c1c43 Mon Sep 17 00:00:00 2001
+From: Christoph Hellwig <hch@lst.de>
+Date: Wed, 9 Sep 2020 17:31:33 +0900
+Subject: [PATCH] elf2flt: add riscv support
+
+We need a new linker script - riscv has a global_pointer and is
+very picky about some section ordering.
+
+Signed-off-by: Christoph Hellwig <hch@lst.de>
+Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
+---
+ Makefile.in        |   4 +-
+ elf2flt.c          |  22 +++++
+ riscv64-elf2flt.ld | 198 +++++++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 223 insertions(+), 1 deletion(-)
+ create mode 100644 riscv64-elf2flt.ld
+
+diff --git a/Makefile.in b/Makefile.in
+index 0529c7f..121a2a7 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -44,7 +44,9 @@ endif
+ LDFILE= elf2flt.ld
+ ifeq ($(strip $(CPU)),e1)
+ SRC_LDFILE= $(srcdir)/$(CPU)-elf2flt.ld
+-else 
++else ifeq ($(strip $(CPU)),riscv64)
++SRC_LDFILE= $(srcdir)/$(CPU)-elf2flt.ld
++else
+ SRC_LDFILE= elf2flt.ld
+ endif
+ 
+diff --git a/elf2flt.c b/elf2flt.c
+index 3bcf4fe..0adba12 100644
+--- a/elf2flt.c
++++ b/elf2flt.c
+@@ -81,6 +81,8 @@ const char *elf2flt_progname;
+ #include <elf/v850.h>
+ #elif defined(TARGET_xtensa)
+ #include <elf/xtensa.h>
++#elif defined(TARGET_riscv64)
++#include <elf/riscv.h>
+ #endif
+ 
+ #if defined(__MINGW32__)
+@@ -123,6 +125,8 @@ const char *elf2flt_progname;
+ #define ARCH	"nios2"
+ #elif defined(TARGET_xtensa)
+ #define ARCH	"xtensa"
++#elif defined(TARGET_riscv64)
++#define ARCH    "riscv64"
+ #else
+ #error "Don't know how to support your CPU architecture??"
+ #endif
+@@ -820,6 +824,15 @@ output_relocs (
+ 					goto good_32bit_resolved_reloc;
+ 				default:
+ 					goto bad_resolved_reloc;
++#elif defined(TARGET_riscv64)
++				case R_RISCV_32_PCREL:
++				case R_RISCV_ADD32:
++				case R_RISCV_SUB32:
++					break;
++				case R_RISCV_64:
++					goto good_32bit_resolved_reloc;
++				default:
++					goto bad_resolved_reloc;
+ #else
+ 				default:
+ 					/* The default is to assume that the
+@@ -1840,6 +1853,15 @@ int main(int argc, char *argv[])
+   if (!load_to_ram && !pfile)
+     load_to_ram = 1;
+ 
++#ifdef TARGET_riscv64
++  /*
++   * riscv only supports loading text and data contiguously.
++   * So fail if load_to_ram is false.
++   */
++  if (!load_to_ram)
++    fatal("Loading to RAM ('-r' option) is required");
++#endif
++
+   fname = argv[argc-1];
+ 
+   if (pfile) {
+diff --git a/riscv64-elf2flt.ld b/riscv64-elf2flt.ld
+new file mode 100644
+index 0000000..74ab680
+--- /dev/null
++++ b/riscv64-elf2flt.ld
+@@ -0,0 +1,198 @@
++
++ENTRY (_start)
++
++MEMORY {
++	flatmem : ORIGIN = 0x0, LENGTH = 0xfffffff
++}
++
++PHDRS {
++	text PT_LOAD ;
++	data PT_LOAD ;
++}
++
++SECTIONS {
++
++	.text 0x0 : {
++		. = . + 4;
++		. = ALIGN(0x4) ;
++		_stext = . ;
++		*(.literal .text)
++		*(.literal.* .text.*)
++		*(.gnu.warning)
++		*(.stub)
++		*(.gnu.linkonce.literal.*)
++		*(.gnu.linkonce.t*)
++		*(.glue_7t)
++		*(.glue_7)
++		*(.jcr)
++		*(.init.literal)
++		KEEP (*(.init))
++		*(.fini.literal)
++		KEEP (*(.fini))
++
++W_RODAT		*(.rodata)
++W_RODAT		*(.rodata1)
++W_RODAT		*(.rodata.*)
++W_RODAT		*(.gnu.linkonce.r*)
++
++		/* This is special code area at the end of the normal
++		   text section.  It contains a small lookup table at
++		   the start followed by the code pointed to by entries
++		   in the lookup table.  */
++		. = ALIGN (4) ;
++		PROVIDE(__ctbp = .);
++		*(.call_table_data)
++		*(.call_table_text)
++
++		. = ALIGN(0x10) ;
++		_etext = . ;
++	} > flatmem :text
++
++	.data : {
++		. = ALIGN(0x20) ;
++		_sdata = . ;
++		__data_start = . ;
++		data_start = . ;
++		*(.got)
++		*(.got.plt)
++		*(.igot)
++		*(.igot.plt)
++		FILL(0) ;
++		. = ALIGN(0x20) ;
++		LONG(-1)
++		. = ALIGN(0x20) ;
++
++		__global_pointer$ = . + 0x800;
++
++R_RODAT		*(.rodata)
++R_RODAT		*(.rodata1)
++R_RODAT		*(.rodata.*)
++R_RODAT		*(.gnu.linkonce.r*)
++		*(.data)
++		*(.data1)
++		*(.data.*)
++		*(.gnu.linkonce.d*)
++
++		*(.gnu.linkonce.s.*)
++		*(__libc_atexit)
++		*(__libc_subinit)
++		*(__libc_subfreeres)
++
++		. = ALIGN(4) ;
++TOR:		__CTOR_LIST__ = .;
++TOR:		LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2)
++SINGLE_LINK:	/* gcc uses crtbegin.o to find the start of
++SINGLE_LINK:	   the constructors, so we make sure it is
++SINGLE_LINK:	   first.  Because this is a wildcard, it
++SINGLE_LINK:	   doesn't matter if the user does not
++SINGLE_LINK:	   actually link against crtbegin.o; the
++SINGLE_LINK:	   linker won't look for a file to match a
++SINGLE_LINK:	   wildcard.  The wildcard also means that it
++SINGLE_LINK:	   doesn't matter which directory crtbegin.o
++SINGLE_LINK:	   is in.  */
++SINGLE_LINK:	KEEP (*crtbegin*.o(.ctors))
++SINGLE_LINK:	/* We don't want to include the .ctor section from
++SINGLE_LINK:	   from the crtend.o file until after the sorted ctors.
++SINGLE_LINK:	   The .ctor section from the crtend file contains the
++SINGLE_LINK:	   end of ctors marker and it must be last */
++SINGLE_LINK:	KEEP (*(EXCLUDE_FILE (*crtend*.o ) .ctors))
++SINGLE_LINK:	KEEP (*(SORT(.ctors.*)))
++		KEEP (*(.ctors))
++TOR:		LONG(0)
++TOR:		__CTOR_END__ = .;
++TOR:		__DTOR_LIST__ = .;
++TOR:		LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2)
++SINGLE_LINK:	KEEP (*crtbegin*.o(.dtors))
++SINGLE_LINK:	KEEP (*(EXCLUDE_FILE (*crtend*.o ) .dtors))
++SINGLE_LINK:	KEEP (*(SORT(.dtors.*)))
++		KEEP (*(.dtors))
++TOR:		LONG(0)
++TOR:		__DTOR_END__ = .;
++
++		PROVIDE (__preinit_array_start = .);
++		KEEP (*(.preinit_array))
++		PROVIDE (__preinit_array_end = .);
++
++		PROVIDE (__init_array_start = .);
++		KEEP (*(SORT(.init_array.*)))
++		KEEP (*(.init_array))
++		PROVIDE (__init_array_end = .);
++
++		PROVIDE (__fini_array_start = .);
++		KEEP (*(.fini_array))
++		KEEP (*(SORT(.fini_array.*)))
++		PROVIDE (__fini_array_end = .);
++
++		. = ALIGN(0x10) ;
++		_edata = . ;
++	} > flatmem :data
++
++	.note.ABI-tag : { *(.note.ABI-tag) } > flatmem
++	.eh_frame_hdr : { *(.eh_frame_hdr) } > flatmem
++	.eh_frame : { KEEP(*(.eh_frame)) } > flatmem
++	.gcc_except_table : {
++		KEEP(*(.gcc_except_table))
++		KEEP(*(.gcc_except_table.*))
++	} > flatmem
++
++	.bss : {
++		. = ALIGN(0x4) ;
++		_sbss = ALIGN(0x4) ;
++		__bss_start = . ;
++		*(.dynsbss)
++		*(.sbss)
++		*(.sbss.*)
++		*(.scommon)
++		*(.dynbss)
++		*(.bss)
++		*(.bss.*)
++		*(.bss*)
++		*(.gnu.linkonce.b*)
++		*(COMMON)
++		. = ALIGN(0x10) ;
++		_ebss = . ;
++		_end = . ;
++		end = . ;
++	} > flatmem
++
++	.stack : {
++		. = ALIGN(0x4);
++		_stack_start = .;
++	} > flatmem
++
++	.junk 0 : { *(.rel*) *(.rela*) }
++	/DISCARD/ : { *(.note.GNU-stack) }
++	/* Stabs debugging sections.    */
++	.stab 0 : { *(.stab) }
++	.stabstr 0 : { *(.stabstr) }
++	.stab.excl 0 : { *(.stab.excl) }
++	.stab.exclstr 0 : { *(.stab.exclstr) }
++	.stab.index 0 : { *(.stab.index) }
++	.stab.indexstr 0 : { *(.stab.indexstr) }
++	.comment 0 : { *(.comment) }
++	/* DWARF debug sections.
++	   Symbols in the DWARF debugging sections are relative to the beginning
++	   of the section so we begin them at 0.  */
++	/* DWARF 1 */
++	.debug          0 : { *(.debug) }
++	.line           0 : { *(.line) }
++	/* GNU DWARF 1 extensions */
++	.debug_srcinfo  0 : { *(.debug_srcinfo) }
++	.debug_sfnames  0 : { *(.debug_sfnames) }
++	/* DWARF 1.1 and DWARF 2 */
++	.debug_aranges  0 : { *(.debug_aranges) }
++	.debug_pubnames 0 : { *(.debug_pubnames) }
++	/* DWARF 2 */
++	.debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }
++	.debug_abbrev   0 : { *(.debug_abbrev) }
++	.debug_line     0 : { *(.debug_line) }
++	.debug_frame    0 : { *(.debug_frame) }
++	.debug_str      0 : { *(.debug_str) }
++	.debug_loc      0 : { *(.debug_loc) }
++	.debug_macinfo  0 : { *(.debug_macinfo) }
++	/* SGI/MIPS DWARF 2 extensions */
++	.debug_weaknames 0 : { *(.debug_weaknames) }
++	.debug_funcnames 0 : { *(.debug_funcnames) }
++	.debug_typenames 0 : { *(.debug_typenames) }
++	.debug_varnames  0 : { *(.debug_varnames) }
++}
+-- 
+2.30.2
+
diff --git a/package/elf2flt/Config.in.host b/package/elf2flt/Config.in.host
index d6685a7ff6..2010526e04 100644
--- a/package/elf2flt/Config.in.host
+++ b/package/elf2flt/Config.in.host
@@ -1,6 +1,6 @@
 config BR2_PACKAGE_HOST_ELF2FLT
 	bool "Enable elf2flt support?"
-	depends on BR2_arm || BR2_sh || BR2_sparc || BR2_xtensa
+	depends on BR2_arm || BR2_sh || BR2_sparc || BR2_xtensa || BR2_riscv
 	depends on !BR2_USE_MMU
 	help
 	  uCLinux uses a Binary Flat format commonly known as BFLT. It
-- 
2.31.1

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [Buildroot] [PATCH v2 3/9] package make: build RISC-V nommu builds as linux
  2021-07-15  0:48 [Buildroot] [PATCH v2 0/9] Add RISC-V NOMMU and Canaan K210 SoC support Damien Le Moal
  2021-07-15  0:48 ` [Buildroot] [PATCH v2 1/9] arch/config: Make RISC-V MMU optional Damien Le Moal
  2021-07-15  0:48 ` [Buildroot] [PATCH v2 2/9] package/elf2flt: add RISC-V support Damien Le Moal
@ 2021-07-15  0:48 ` Damien Le Moal
  2021-07-15  4:45   ` Alistair Francis
  2021-07-15  0:48 ` [Buildroot] [PATCH v2 4/9] board: Add Sipeed MAIX-bit support Damien Le Moal
                   ` (6 subsequent siblings)
  9 siblings, 1 reply; 23+ messages in thread
From: Damien Le Moal @ 2021-07-15  0:48 UTC (permalink / raw)
  To: buildroot

From: Christoph Hellwig <hch@lst.de>

Using *-uclinux-* seems like an only partially followed convention.
And at least for RISC-V gcc doesn't know about uclinux tuples, so
switch back to the normal Linux one for now.

Signed-off-by: Christoph Hellwig <hch@lst.de>

[Damien]
* Make the change conditional on BR2_riscv arch being "y".

Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
---
 package/Makefile.in | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/package/Makefile.in b/package/Makefile.in
index 86db62ba5b..6de673a085 100644
--- a/package/Makefile.in
+++ b/package/Makefile.in
@@ -39,8 +39,9 @@ endif
 # Compute GNU_TARGET_NAME
 GNU_TARGET_NAME = $(ARCH)-$(TARGET_VENDOR)-$(TARGET_OS)-$(LIBC)$(ABI)
 
-# FLAT binary format needs uclinux
-ifeq ($(BR2_BINFMT_FLAT),y)
+# FLAT binary format needs uclinux, except RISC-V which needs
+# the regular linux name.
+ifeq ($(BR2_BINFMT_FLAT):$(BR2_riscv),y:)
 TARGET_OS = uclinux
 else
 TARGET_OS = linux
-- 
2.31.1

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [Buildroot] [PATCH v2 4/9] board: Add Sipeed MAIX-bit support
  2021-07-15  0:48 [Buildroot] [PATCH v2 0/9] Add RISC-V NOMMU and Canaan K210 SoC support Damien Le Moal
                   ` (2 preceding siblings ...)
  2021-07-15  0:48 ` [Buildroot] [PATCH v2 3/9] package make: build RISC-V nommu builds as linux Damien Le Moal
@ 2021-07-15  0:48 ` Damien Le Moal
  2021-07-23 22:25   ` Arnout Vandecappelle
  2021-07-15  0:48 ` [Buildroot] [PATCH v2 5/9] board: Add Sipeed MAIX-Go support Damien Le Moal
                   ` (5 subsequent siblings)
  9 siblings, 1 reply; 23+ messages in thread
From: Damien Le Moal @ 2021-07-15  0:48 UTC (permalink / raw)
  To: buildroot

Add two configuration files to support the RISC-V Canaan K210 SoC based
Sipeed MAIX-bit board.

The first configuration file, sipeed_maix_bit_defconfig, enables
building a bootable kernel 5.13 image with the root file system
initramfs linked with the kernel. This configuration uses the busybox
busybox-tiny-initramfs.config configuration to reduce the size of the
busybox executable (to save memory when executing shell commands).

The second configuration file (sipeed_maix_bit_sdcard_defconfig) builds
a bootable kernel 5.13 image that uses the board SD card for the root
file system. This configuration uses the default busybox minimal
configuration.

Both configurations share the same device tree which is provided by and
built-in the kernel. This configuration is set with the kernel
configuration snippet provided by
board/sipeed/maix-bit/linux-dtb.config.

Both configurations also share the same init script provided using the
rootfs_overlay root file system overlay. This init script replaces the
default init process which causes failures due to excessive memory
usage.

busybox-tiny-initramfs.config and the init script overlay will be
reused for all Canaan K210 SoC based boards. These 2 files are thus
placed in the directory board/canaan/k210-common while the Sipeed
MAIX-bit board specific kernel config snippet is added under the
directory board/sipeed/maxi-bit.

Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
---
 .../k210-common/busybox-tiny-initramfs.config | 1183 +++++++++++++++++
 .../k210-common/rootfs_overlay/usr/sbin/init  |   26 +
 board/sipeed/maix-bit/linux-dtb.config        |    2 +
 configs/sipeed_maix_bit_defconfig             |   23 +
 configs/sipeed_maix_bit_sdcard_defconfig      |   23 +
 5 files changed, 1257 insertions(+)
 create mode 100644 board/canaan/k210-common/busybox-tiny-initramfs.config
 create mode 100755 board/canaan/k210-common/rootfs_overlay/usr/sbin/init
 create mode 100644 board/sipeed/maix-bit/linux-dtb.config
 create mode 100644 configs/sipeed_maix_bit_defconfig
 create mode 100644 configs/sipeed_maix_bit_sdcard_defconfig

diff --git a/board/canaan/k210-common/busybox-tiny-initramfs.config b/board/canaan/k210-common/busybox-tiny-initramfs.config
new file mode 100644
index 0000000000..f0367e5460
--- /dev/null
+++ b/board/canaan/k210-common/busybox-tiny-initramfs.config
@@ -0,0 +1,1183 @@
+#
+# Automatically generated make config: don't edit
+# Busybox version: 1.33.0
+# Wed Apr  7 23:05:55 2021
+#
+CONFIG_HAVE_DOT_CONFIG=y
+
+#
+# Settings
+#
+# CONFIG_DESKTOP is not set
+# CONFIG_EXTRA_COMPAT is not set
+# CONFIG_FEDORA_COMPAT is not set
+# CONFIG_INCLUDE_SUSv2 is not set
+CONFIG_LONG_OPTS=y
+# CONFIG_SHOW_USAGE is not set
+# CONFIG_FEATURE_VERBOSE_USAGE is not set
+# CONFIG_FEATURE_COMPRESS_USAGE is not set
+CONFIG_LFS=y
+# CONFIG_PAM is not set
+# CONFIG_FEATURE_DEVPTS is not set
+CONFIG_FEATURE_UTMP=y
+CONFIG_FEATURE_WTMP=y
+# CONFIG_FEATURE_PIDFILE is not set
+CONFIG_PID_FILE_PATH=""
+CONFIG_BUSYBOX=y
+CONFIG_FEATURE_SHOW_SCRIPT=y
+CONFIG_FEATURE_INSTALLER=y
+# CONFIG_INSTALL_NO_USR is not set
+CONFIG_FEATURE_SUID=y
+# CONFIG_FEATURE_SUID_CONFIG is not set
+# CONFIG_FEATURE_SUID_CONFIG_QUIET is not set
+CONFIG_FEATURE_PREFER_APPLETS=y
+CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe"
+# CONFIG_SELINUX is not set
+# CONFIG_FEATURE_CLEAN_UP is not set
+# CONFIG_FEATURE_SYSLOG_INFO is not set
+# CONFIG_FEATURE_SYSLOG is not set
+
+#
+# Build Options
+#
+CONFIG_STATIC=y
+# CONFIG_PIE is not set
+CONFIG_NOMMU=y
+# CONFIG_BUILD_LIBBUSYBOX is not set
+# CONFIG_FEATURE_LIBBUSYBOX_STATIC is not set
+# CONFIG_FEATURE_INDIVIDUAL is not set
+# CONFIG_FEATURE_SHARED_BUSYBOX is not set
+CONFIG_CROSS_COMPILER_PREFIX=""
+CONFIG_SYSROOT=""
+CONFIG_EXTRA_CFLAGS="-Os -fPIC"
+CONFIG_EXTRA_LDFLAGS="-Os -static -Wl,-elf2flt=-r"
+CONFIG_EXTRA_LDLIBS=""
+# CONFIG_USE_PORTABLE_CODE is not set
+# CONFIG_STACK_OPTIMIZATION_386 is not set
+CONFIG_STATIC_LIBGCC=y
+
+#
+# Installation Options ("make install" behavior)
+#
+CONFIG_INSTALL_APPLET_SYMLINKS=y
+# CONFIG_INSTALL_APPLET_HARDLINKS is not set
+# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set
+# CONFIG_INSTALL_APPLET_DONT is not set
+# CONFIG_INSTALL_SH_APPLET_SYMLINK is not set
+# CONFIG_INSTALL_SH_APPLET_HARDLINK is not set
+# CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER is not set
+CONFIG_PREFIX="./_install"
+
+#
+# Debugging Options
+#
+# CONFIG_DEBUG is not set
+# CONFIG_DEBUG_PESSIMIZE is not set
+# CONFIG_DEBUG_SANITIZE is not set
+# CONFIG_UNIT_TEST is not set
+# CONFIG_WERROR is not set
+# CONFIG_WARN_SIMPLE_MSG is not set
+CONFIG_NO_DEBUG_LIB=y
+# CONFIG_DMALLOC is not set
+# CONFIG_EFENCE is not set
+
+#
+# Library Tuning
+#
+# CONFIG_FEATURE_USE_BSS_TAIL is not set
+# CONFIG_FLOAT_DURATION is not set
+# CONFIG_FEATURE_RTMINMAX is not set
+# CONFIG_FEATURE_RTMINMAX_USE_LIBC_DEFINITIONS is not set
+# CONFIG_FEATURE_BUFFERS_USE_MALLOC is not set
+CONFIG_FEATURE_BUFFERS_GO_ON_STACK=y
+# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set
+CONFIG_PASSWORD_MINLEN=6
+CONFIG_MD5_SMALL=1
+CONFIG_SHA3_SMALL=1
+CONFIG_FEATURE_FAST_TOP=y
+# CONFIG_FEATURE_ETC_NETWORKS is not set
+# CONFIG_FEATURE_ETC_SERVICES is not set
+CONFIG_FEATURE_EDITING=y
+CONFIG_FEATURE_EDITING_MAX_LEN=1024
+CONFIG_FEATURE_EDITING_VI=y
+CONFIG_FEATURE_EDITING_HISTORY=999
+# CONFIG_FEATURE_EDITING_SAVEHISTORY is not set
+# CONFIG_FEATURE_EDITING_SAVE_ON_EXIT is not set
+# CONFIG_FEATURE_REVERSE_SEARCH is not set
+# CONFIG_FEATURE_TAB_COMPLETION is not set
+# CONFIG_FEATURE_USERNAME_COMPLETION is not set
+CONFIG_FEATURE_EDITING_FANCY_PROMPT=y
+# CONFIG_FEATURE_EDITING_WINCH is not set
+# CONFIG_FEATURE_EDITING_ASK_TERMINAL is not set
+# CONFIG_LOCALE_SUPPORT is not set
+# CONFIG_UNICODE_SUPPORT is not set
+# CONFIG_UNICODE_USING_LOCALE is not set
+# CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set
+CONFIG_SUBST_WCHAR=0
+CONFIG_LAST_SUPPORTED_WCHAR=0
+# CONFIG_UNICODE_COMBINING_WCHARS is not set
+# CONFIG_UNICODE_WIDE_WCHARS is not set
+# CONFIG_UNICODE_BIDI_SUPPORT is not set
+# CONFIG_UNICODE_NEUTRAL_TABLE is not set
+# CONFIG_UNICODE_PRESERVE_BROKEN is not set
+CONFIG_FEATURE_NON_POSIX_CP=y
+# CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set
+CONFIG_FEATURE_USE_SENDFILE=y
+CONFIG_FEATURE_COPYBUF_KB=4
+CONFIG_FEATURE_SKIP_ROOTFS=y
+CONFIG_MONOTONIC_SYSCALL=y
+CONFIG_IOCTL_HEX2STR_ERROR=y
+# CONFIG_FEATURE_HWIB is not set
+
+#
+# Applets
+#
+
+#
+# Archival Utilities
+#
+# CONFIG_FEATURE_SEAMLESS_XZ is not set
+# CONFIG_FEATURE_SEAMLESS_LZMA is not set
+# CONFIG_FEATURE_SEAMLESS_BZ2 is not set
+# CONFIG_FEATURE_SEAMLESS_GZ is not set
+# CONFIG_FEATURE_SEAMLESS_Z is not set
+# CONFIG_AR is not set
+# CONFIG_FEATURE_AR_LONG_FILENAMES is not set
+# CONFIG_FEATURE_AR_CREATE is not set
+# CONFIG_UNCOMPRESS is not set
+# CONFIG_GUNZIP is not set
+# CONFIG_ZCAT is not set
+# CONFIG_FEATURE_GUNZIP_LONG_OPTIONS is not set
+# CONFIG_BUNZIP2 is not set
+# CONFIG_BZCAT is not set
+# CONFIG_UNLZMA is not set
+# CONFIG_LZCAT is not set
+# CONFIG_LZMA is not set
+# CONFIG_UNXZ is not set
+# CONFIG_XZCAT is not set
+# CONFIG_XZ is not set
+# CONFIG_BZIP2 is not set
+CONFIG_BZIP2_SMALL=0
+# CONFIG_FEATURE_BZIP2_DECOMPRESS is not set
+# CONFIG_CPIO is not set
+# CONFIG_FEATURE_CPIO_O is not set
+# CONFIG_FEATURE_CPIO_P is not set
+# CONFIG_DPKG is not set
+# CONFIG_DPKG_DEB is not set
+# CONFIG_GZIP is not set
+# CONFIG_FEATURE_GZIP_LONG_OPTIONS is not set
+CONFIG_GZIP_FAST=0
+# CONFIG_FEATURE_GZIP_LEVELS is not set
+# CONFIG_FEATURE_GZIP_DECOMPRESS is not set
+# CONFIG_LZOP is not set
+# CONFIG_UNLZOP is not set
+# CONFIG_LZOPCAT is not set
+# CONFIG_LZOP_COMPR_HIGH is not set
+# CONFIG_RPM is not set
+# CONFIG_RPM2CPIO is not set
+# CONFIG_TAR is not set
+# CONFIG_FEATURE_TAR_LONG_OPTIONS is not set
+# CONFIG_FEATURE_TAR_CREATE is not set
+# CONFIG_FEATURE_TAR_AUTODETECT is not set
+# CONFIG_FEATURE_TAR_FROM is not set
+# CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY is not set
+# CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set
+# CONFIG_FEATURE_TAR_GNU_EXTENSIONS is not set
+# CONFIG_FEATURE_TAR_TO_COMMAND is not set
+# CONFIG_FEATURE_TAR_UNAME_GNAME is not set
+# CONFIG_FEATURE_TAR_NOPRESERVE_TIME is not set
+# CONFIG_FEATURE_TAR_SELINUX is not set
+# CONFIG_UNZIP is not set
+# CONFIG_FEATURE_UNZIP_CDF is not set
+# CONFIG_FEATURE_UNZIP_BZIP2 is not set
+# CONFIG_FEATURE_UNZIP_LZMA is not set
+# CONFIG_FEATURE_UNZIP_XZ is not set
+# CONFIG_FEATURE_LZMA_FAST is not set
+
+#
+# Coreutils
+#
+CONFIG_BASENAME=y
+CONFIG_CAT=y
+CONFIG_FEATURE_CATN=y
+CONFIG_FEATURE_CATV=y
+CONFIG_CHGRP=y
+CONFIG_CHMOD=y
+CONFIG_CHOWN=y
+CONFIG_FEATURE_CHOWN_LONG_OPTIONS=y
+CONFIG_CHROOT=y
+# CONFIG_CKSUM is not set
+# CONFIG_COMM is not set
+CONFIG_CP=y
+CONFIG_FEATURE_CP_LONG_OPTIONS=y
+CONFIG_FEATURE_CP_REFLINK=y
+# CONFIG_CUT is not set
+CONFIG_DATE=y
+CONFIG_FEATURE_DATE_ISOFMT=y
+# CONFIG_FEATURE_DATE_NANO is not set
+CONFIG_FEATURE_DATE_COMPAT=y
+# CONFIG_DD is not set
+# CONFIG_FEATURE_DD_SIGNAL_HANDLING is not set
+# CONFIG_FEATURE_DD_THIRD_STATUS_LINE is not set
+# CONFIG_FEATURE_DD_IBS_OBS is not set
+# CONFIG_FEATURE_DD_STATUS is not set
+# CONFIG_DF is not set
+# CONFIG_FEATURE_DF_FANCY is not set
+CONFIG_DIRNAME=y
+# CONFIG_DOS2UNIX is not set
+# CONFIG_UNIX2DOS is not set
+# CONFIG_DU is not set
+# CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K is not set
+CONFIG_ECHO=y
+CONFIG_FEATURE_FANCY_ECHO=y
+CONFIG_ENV=y
+# CONFIG_EXPAND is not set
+# CONFIG_UNEXPAND is not set
+CONFIG_EXPR=y
+CONFIG_EXPR_MATH_SUPPORT_64=y
+# CONFIG_FACTOR is not set
+CONFIG_FALSE=y
+# CONFIG_FOLD is not set
+CONFIG_HEAD=y
+CONFIG_FEATURE_FANCY_HEAD=y
+CONFIG_HOSTID=y
+CONFIG_ID=y
+CONFIG_GROUPS=y
+# CONFIG_INSTALL is not set
+# CONFIG_FEATURE_INSTALL_LONG_OPTIONS is not set
+CONFIG_LINK=y
+CONFIG_LN=y
+# CONFIG_LOGNAME is not set
+CONFIG_LS=y
+CONFIG_FEATURE_LS_FILETYPES=y
+CONFIG_FEATURE_LS_FOLLOWLINKS=y
+CONFIG_FEATURE_LS_RECURSIVE=y
+CONFIG_FEATURE_LS_WIDTH=y
+CONFIG_FEATURE_LS_SORTFILES=y
+CONFIG_FEATURE_LS_TIMESTAMPS=y
+CONFIG_FEATURE_LS_USERNAME=y
+CONFIG_FEATURE_LS_COLOR=y
+CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y
+# CONFIG_MD5SUM is not set
+# CONFIG_SHA1SUM is not set
+# CONFIG_SHA256SUM is not set
+# CONFIG_SHA512SUM is not set
+# CONFIG_SHA3SUM is not set
+# CONFIG_FEATURE_MD5_SHA1_SUM_CHECK is not set
+CONFIG_MKDIR=y
+# CONFIG_MKFIFO is not set
+CONFIG_MKNOD=y
+CONFIG_MKTEMP=y
+CONFIG_MV=y
+CONFIG_NICE=y
+# CONFIG_NL is not set
+CONFIG_NOHUP=y
+CONFIG_NPROC=y
+# CONFIG_OD is not set
+# CONFIG_PASTE is not set
+CONFIG_PRINTENV=y
+CONFIG_PRINTF=y
+CONFIG_PWD=y
+CONFIG_READLINK=y
+CONFIG_FEATURE_READLINK_FOLLOW=y
+CONFIG_REALPATH=y
+CONFIG_RM=y
+CONFIG_RMDIR=y
+CONFIG_SEQ=y
+# CONFIG_SHRED is not set
+# CONFIG_SHUF is not set
+CONFIG_SLEEP=y
+CONFIG_FEATURE_FANCY_SLEEP=y
+# CONFIG_SORT is not set
+# CONFIG_FEATURE_SORT_BIG is not set
+# CONFIG_FEATURE_SORT_OPTIMIZE_MEMORY is not set
+# CONFIG_SPLIT is not set
+# CONFIG_FEATURE_SPLIT_FANCY is not set
+CONFIG_STAT=y
+CONFIG_FEATURE_STAT_FORMAT=y
+CONFIG_FEATURE_STAT_FILESYSTEM=y
+CONFIG_STTY=y
+# CONFIG_SUM is not set
+# CONFIG_SYNC is not set
+# CONFIG_FEATURE_SYNC_FANCY is not set
+# CONFIG_FSYNC is not set
+# CONFIG_TAC is not set
+CONFIG_TAIL=y
+CONFIG_FEATURE_FANCY_TAIL=y
+CONFIG_TEE=y
+CONFIG_FEATURE_TEE_USE_BLOCK_IO=y
+CONFIG_TEST=y
+CONFIG_TEST1=y
+CONFIG_TEST2=y
+CONFIG_FEATURE_TEST_64=y
+# CONFIG_TIMEOUT is not set
+CONFIG_TOUCH=y
+# CONFIG_FEATURE_TOUCH_NODEREF is not set
+CONFIG_FEATURE_TOUCH_SUSV3=y
+# CONFIG_TR is not set
+# CONFIG_FEATURE_TR_CLASSES is not set
+# CONFIG_FEATURE_TR_EQUIV is not set
+CONFIG_TRUE=y
+CONFIG_TRUNCATE=y
+CONFIG_TTY=y
+CONFIG_UNAME=y
+CONFIG_UNAME_OSNAME="GNU/Linux"
+CONFIG_BB_ARCH=y
+CONFIG_UNIQ=y
+CONFIG_UNLINK=y
+CONFIG_USLEEP=y
+# CONFIG_UUDECODE is not set
+CONFIG_BASE32=y
+# CONFIG_BASE64 is not set
+# CONFIG_UUENCODE is not set
+CONFIG_WC=y
+# CONFIG_FEATURE_WC_LARGE is not set
+CONFIG_WHOAMI=y
+CONFIG_WHO=y
+CONFIG_W=y
+CONFIG_USERS=y
+CONFIG_YES=y
+
+#
+# Common options
+#
+CONFIG_FEATURE_VERBOSE=y
+
+#
+# Common options for cp and mv
+#
+CONFIG_FEATURE_PRESERVE_HARDLINKS=y
+
+#
+# Common options for df, du, ls
+#
+CONFIG_FEATURE_HUMAN_READABLE=y
+
+#
+# Console Utilities
+#
+# CONFIG_CHVT is not set
+CONFIG_CLEAR=y
+# CONFIG_DEALLOCVT is not set
+# CONFIG_DUMPKMAP is not set
+# CONFIG_FGCONSOLE is not set
+# CONFIG_KBD_MODE is not set
+# CONFIG_LOADFONT is not set
+# CONFIG_SETFONT is not set
+# CONFIG_FEATURE_SETFONT_TEXTUAL_MAP is not set
+CONFIG_DEFAULT_SETFONT_DIR=""
+# CONFIG_FEATURE_LOADFONT_PSF2 is not set
+# CONFIG_FEATURE_LOADFONT_RAW is not set
+# CONFIG_LOADKMAP is not set
+# CONFIG_OPENVT is not set
+# CONFIG_RESET is not set
+# CONFIG_RESIZE is not set
+# CONFIG_FEATURE_RESIZE_PRINT is not set
+# CONFIG_SETCONSOLE is not set
+# CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS is not set
+# CONFIG_SETKEYCODES is not set
+# CONFIG_SETLOGCONS is not set
+# CONFIG_SHOWKEY is not set
+
+#
+# Debian Utilities
+#
+# CONFIG_PIPE_PROGRESS is not set
+# CONFIG_RUN_PARTS is not set
+# CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS is not set
+# CONFIG_FEATURE_RUN_PARTS_FANCY is not set
+# CONFIG_START_STOP_DAEMON is not set
+# CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS is not set
+# CONFIG_FEATURE_START_STOP_DAEMON_FANCY is not set
+# CONFIG_WHICH is not set
+
+#
+# klibc-utils
+#
+# CONFIG_MINIPS is not set
+# CONFIG_NUKE is not set
+# CONFIG_RESUME is not set
+# CONFIG_RUN_INIT is not set
+
+#
+# Editors
+#
+# CONFIG_AWK is not set
+# CONFIG_FEATURE_AWK_LIBM is not set
+# CONFIG_FEATURE_AWK_GNU_EXTENSIONS is not set
+# CONFIG_CMP is not set
+# CONFIG_DIFF is not set
+# CONFIG_FEATURE_DIFF_LONG_OPTIONS is not set
+# CONFIG_FEATURE_DIFF_DIR is not set
+# CONFIG_ED is not set
+# CONFIG_PATCH is not set
+# CONFIG_SED is not set
+CONFIG_VI=y
+CONFIG_FEATURE_VI_MAX_LEN=4096
+# CONFIG_FEATURE_VI_8BIT is not set
+CONFIG_FEATURE_VI_COLON=y
+CONFIG_FEATURE_VI_YANKMARK=y
+CONFIG_FEATURE_VI_SEARCH=y
+# CONFIG_FEATURE_VI_REGEX_SEARCH is not set
+CONFIG_FEATURE_VI_USE_SIGNALS=y
+CONFIG_FEATURE_VI_DOT_CMD=y
+CONFIG_FEATURE_VI_READONLY=y
+CONFIG_FEATURE_VI_SETOPTS=y
+CONFIG_FEATURE_VI_SET=y
+CONFIG_FEATURE_VI_WIN_RESIZE=y
+CONFIG_FEATURE_VI_ASK_TERMINAL=y
+CONFIG_FEATURE_VI_UNDO=y
+CONFIG_FEATURE_VI_UNDO_QUEUE=y
+CONFIG_FEATURE_VI_UNDO_QUEUE_MAX=256
+CONFIG_FEATURE_ALLOW_EXEC=y
+
+#
+# Finding Utilities
+#
+CONFIG_FIND=y
+CONFIG_FEATURE_FIND_PRINT0=y
+CONFIG_FEATURE_FIND_MTIME=y
+CONFIG_FEATURE_FIND_MMIN=y
+CONFIG_FEATURE_FIND_PERM=y
+CONFIG_FEATURE_FIND_TYPE=y
+CONFIG_FEATURE_FIND_EXECUTABLE=y
+CONFIG_FEATURE_FIND_XDEV=y
+CONFIG_FEATURE_FIND_MAXDEPTH=y
+CONFIG_FEATURE_FIND_NEWER=y
+CONFIG_FEATURE_FIND_INUM=y
+CONFIG_FEATURE_FIND_EXEC=y
+CONFIG_FEATURE_FIND_EXEC_PLUS=y
+CONFIG_FEATURE_FIND_USER=y
+CONFIG_FEATURE_FIND_GROUP=y
+CONFIG_FEATURE_FIND_NOT=y
+CONFIG_FEATURE_FIND_DEPTH=y
+CONFIG_FEATURE_FIND_PAREN=y
+CONFIG_FEATURE_FIND_SIZE=y
+CONFIG_FEATURE_FIND_PRUNE=y
+CONFIG_FEATURE_FIND_QUIT=y
+CONFIG_FEATURE_FIND_DELETE=y
+CONFIG_FEATURE_FIND_EMPTY=y
+CONFIG_FEATURE_FIND_PATH=y
+CONFIG_FEATURE_FIND_REGEX=y
+# CONFIG_FEATURE_FIND_CONTEXT is not set
+CONFIG_FEATURE_FIND_LINKS=y
+CONFIG_GREP=y
+# CONFIG_EGREP is not set
+# CONFIG_FGREP is not set
+CONFIG_FEATURE_GREP_CONTEXT=y
+# CONFIG_XARGS is not set
+# CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION is not set
+# CONFIG_FEATURE_XARGS_SUPPORT_QUOTES is not set
+# CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT is not set
+# CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM is not set
+# CONFIG_FEATURE_XARGS_SUPPORT_REPL_STR is not set
+# CONFIG_FEATURE_XARGS_SUPPORT_PARALLEL is not set
+# CONFIG_FEATURE_XARGS_SUPPORT_ARGS_FILE is not set
+
+#
+# Init Utilities
+#
+# CONFIG_BOOTCHARTD is not set
+# CONFIG_FEATURE_BOOTCHARTD_BLOATED_HEADER is not set
+# CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE is not set
+# CONFIG_HALT is not set
+# CONFIG_POWEROFF is not set
+CONFIG_REBOOT=y
+# CONFIG_FEATURE_WAIT_FOR_INIT is not set
+# CONFIG_FEATURE_CALL_TELINIT is not set
+CONFIG_TELINIT_PATH=""
+# CONFIG_INIT is not set
+# CONFIG_LINUXRC is not set
+# CONFIG_FEATURE_USE_INITTAB is not set
+# CONFIG_FEATURE_KILL_REMOVED is not set
+CONFIG_FEATURE_KILL_DELAY=0
+# CONFIG_FEATURE_INIT_SCTTY is not set
+# CONFIG_FEATURE_INIT_SYSLOG is not set
+# CONFIG_FEATURE_INIT_QUIET is not set
+# CONFIG_FEATURE_INIT_COREDUMPS is not set
+CONFIG_INIT_TERMINAL_TYPE=""
+# CONFIG_FEATURE_INIT_MODIFY_CMDLINE is not set
+
+#
+# Login/Password Management Utilities
+#
+# CONFIG_FEATURE_SHADOWPASSWDS is not set
+# CONFIG_USE_BB_PWD_GRP is not set
+# CONFIG_USE_BB_SHADOW is not set
+# CONFIG_USE_BB_CRYPT is not set
+# CONFIG_USE_BB_CRYPT_SHA is not set
+# CONFIG_ADDGROUP is not set
+# CONFIG_FEATURE_ADDUSER_TO_GROUP is not set
+# CONFIG_ADD_SHELL is not set
+# CONFIG_REMOVE_SHELL is not set
+# CONFIG_ADDUSER is not set
+# CONFIG_FEATURE_CHECK_NAMES is not set
+CONFIG_LAST_ID=0
+CONFIG_FIRST_SYSTEM_ID=0
+CONFIG_LAST_SYSTEM_ID=0
+# CONFIG_CHPASSWD is not set
+CONFIG_FEATURE_DEFAULT_PASSWD_ALGO=""
+# CONFIG_CRYPTPW is not set
+# CONFIG_MKPASSWD is not set
+# CONFIG_DELUSER is not set
+# CONFIG_DELGROUP is not set
+# CONFIG_FEATURE_DEL_USER_FROM_GROUP is not set
+# CONFIG_GETTY is not set
+# CONFIG_LOGIN is not set
+# CONFIG_LOGIN_SESSION_AS_CHILD is not set
+# CONFIG_LOGIN_SCRIPTS is not set
+# CONFIG_FEATURE_NOLOGIN is not set
+# CONFIG_FEATURE_SECURETTY is not set
+# CONFIG_PASSWD is not set
+# CONFIG_FEATURE_PASSWD_WEAK_CHECK is not set
+# CONFIG_SU is not set
+# CONFIG_FEATURE_SU_SYSLOG is not set
+# CONFIG_FEATURE_SU_CHECKS_SHELLS is not set
+# CONFIG_FEATURE_SU_BLANK_PW_NEEDS_SECURE_TTY is not set
+# CONFIG_SULOGIN is not set
+# CONFIG_VLOCK is not set
+
+#
+# Linux Ext2 FS Progs
+#
+# CONFIG_CHATTR is not set
+# CONFIG_FSCK is not set
+# CONFIG_LSATTR is not set
+# CONFIG_TUNE2FS is not set
+
+#
+# Linux Module Utilities
+#
+# CONFIG_MODPROBE_SMALL is not set
+# CONFIG_DEPMOD is not set
+# CONFIG_INSMOD is not set
+# CONFIG_LSMOD is not set
+# CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT is not set
+# CONFIG_MODINFO is not set
+# CONFIG_MODPROBE is not set
+# CONFIG_FEATURE_MODPROBE_BLACKLIST is not set
+# CONFIG_RMMOD is not set
+
+#
+# Options common to multiple modutils
+#
+# CONFIG_FEATURE_CMDLINE_MODULE_OPTIONS is not set
+# CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED is not set
+# CONFIG_FEATURE_2_4_MODULES is not set
+# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set
+# CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set
+# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set
+# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set
+# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set
+# CONFIG_FEATURE_CHECK_TAINTED_MODULE is not set
+# CONFIG_FEATURE_INSMOD_TRY_MMAP is not set
+# CONFIG_FEATURE_MODUTILS_ALIAS is not set
+# CONFIG_FEATURE_MODUTILS_SYMBOLS is not set
+CONFIG_DEFAULT_MODULES_DIR=""
+CONFIG_DEFAULT_DEPMOD_FILE=""
+
+#
+# Linux System Utilities
+#
+# CONFIG_ACPID is not set
+# CONFIG_FEATURE_ACPID_COMPAT is not set
+# CONFIG_BLKDISCARD is not set
+# CONFIG_BLKID is not set
+# CONFIG_FEATURE_BLKID_TYPE is not set
+# CONFIG_BLOCKDEV is not set
+# CONFIG_CAL is not set
+# CONFIG_CHRT is not set
+CONFIG_DMESG=y
+# CONFIG_FEATURE_DMESG_PRETTY is not set
+# CONFIG_EJECT is not set
+# CONFIG_FEATURE_EJECT_SCSI is not set
+# CONFIG_FALLOCATE is not set
+# CONFIG_FATATTR is not set
+# CONFIG_FBSET is not set
+# CONFIG_FEATURE_FBSET_FANCY is not set
+# CONFIG_FEATURE_FBSET_READMODE is not set
+# CONFIG_FDFORMAT is not set
+# CONFIG_FDISK is not set
+# CONFIG_FDISK_SUPPORT_LARGE_DISKS is not set
+# CONFIG_FEATURE_FDISK_WRITABLE is not set
+# CONFIG_FEATURE_AIX_LABEL is not set
+# CONFIG_FEATURE_SGI_LABEL is not set
+# CONFIG_FEATURE_SUN_LABEL is not set
+# CONFIG_FEATURE_OSF_LABEL is not set
+# CONFIG_FEATURE_GPT_LABEL is not set
+# CONFIG_FEATURE_FDISK_ADVANCED is not set
+# CONFIG_FINDFS is not set
+# CONFIG_FLOCK is not set
+# CONFIG_FDFLUSH is not set
+# CONFIG_FREERAMDISK is not set
+# CONFIG_FSCK_MINIX is not set
+# CONFIG_FSFREEZE is not set
+# CONFIG_FSTRIM is not set
+# CONFIG_GETOPT is not set
+# CONFIG_FEATURE_GETOPT_LONG is not set
+# CONFIG_HEXDUMP is not set
+# CONFIG_HD is not set
+# CONFIG_XXD is not set
+# CONFIG_HWCLOCK is not set
+# CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS is not set
+# CONFIG_IONICE is not set
+# CONFIG_IPCRM is not set
+# CONFIG_IPCS is not set
+# CONFIG_LAST is not set
+# CONFIG_FEATURE_LAST_FANCY is not set
+# CONFIG_LOSETUP is not set
+# CONFIG_LSPCI is not set
+# CONFIG_LSUSB is not set
+# CONFIG_MDEV is not set
+# CONFIG_FEATURE_MDEV_CONF is not set
+# CONFIG_FEATURE_MDEV_RENAME is not set
+# CONFIG_FEATURE_MDEV_RENAME_REGEXP is not set
+# CONFIG_FEATURE_MDEV_EXEC is not set
+# CONFIG_FEATURE_MDEV_LOAD_FIRMWARE is not set
+# CONFIG_FEATURE_MDEV_DAEMON is not set
+# CONFIG_MESG is not set
+# CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP is not set
+# CONFIG_MKE2FS is not set
+# CONFIG_MKFS_EXT2 is not set
+# CONFIG_MKFS_MINIX is not set
+# CONFIG_FEATURE_MINIX2 is not set
+# CONFIG_MKFS_REISER is not set
+# CONFIG_MKDOSFS is not set
+# CONFIG_MKFS_VFAT is not set
+# CONFIG_MKSWAP is not set
+# CONFIG_FEATURE_MKSWAP_UUID is not set
+CONFIG_MORE=y
+CONFIG_MOUNT=y
+# CONFIG_FEATURE_MOUNT_FAKE is not set
+# CONFIG_FEATURE_MOUNT_VERBOSE is not set
+# CONFIG_FEATURE_MOUNT_HELPERS is not set
+# CONFIG_FEATURE_MOUNT_LABEL is not set
+# CONFIG_FEATURE_MOUNT_NFS is not set
+# CONFIG_FEATURE_MOUNT_CIFS is not set
+# CONFIG_FEATURE_MOUNT_FLAGS is not set
+# CONFIG_FEATURE_MOUNT_FSTAB is not set
+# CONFIG_FEATURE_MOUNT_OTHERTAB is not set
+# CONFIG_MOUNTPOINT is not set
+# CONFIG_NOLOGIN is not set
+# CONFIG_NOLOGIN_DEPENDENCIES is not set
+# CONFIG_NSENTER is not set
+# CONFIG_PIVOT_ROOT is not set
+# CONFIG_RDATE is not set
+# CONFIG_RDEV is not set
+# CONFIG_READPROFILE is not set
+# CONFIG_RENICE is not set
+# CONFIG_REV is not set
+# CONFIG_RTCWAKE is not set
+# CONFIG_SCRIPT is not set
+# CONFIG_SCRIPTREPLAY is not set
+# CONFIG_SETARCH is not set
+# CONFIG_LINUX32 is not set
+# CONFIG_LINUX64 is not set
+# CONFIG_SETPRIV is not set
+# CONFIG_FEATURE_SETPRIV_DUMP is not set
+# CONFIG_FEATURE_SETPRIV_CAPABILITIES is not set
+# CONFIG_FEATURE_SETPRIV_CAPABILITY_NAMES is not set
+# CONFIG_SETSID is not set
+# CONFIG_SWAPON is not set
+# CONFIG_FEATURE_SWAPON_DISCARD is not set
+# CONFIG_FEATURE_SWAPON_PRI is not set
+# CONFIG_SWAPOFF is not set
+# CONFIG_FEATURE_SWAPONOFF_LABEL is not set
+# CONFIG_SWITCH_ROOT is not set
+# CONFIG_TASKSET is not set
+# CONFIG_FEATURE_TASKSET_FANCY is not set
+# CONFIG_FEATURE_TASKSET_CPULIST is not set
+# CONFIG_UEVENT is not set
+CONFIG_UMOUNT=y
+CONFIG_FEATURE_UMOUNT_ALL=y
+# CONFIG_UNSHARE is not set
+# CONFIG_WALL is not set
+
+#
+# Common options for mount/umount
+#
+# CONFIG_FEATURE_MOUNT_LOOP is not set
+# CONFIG_FEATURE_MOUNT_LOOP_CREATE is not set
+# CONFIG_FEATURE_MTAB_SUPPORT is not set
+# CONFIG_VOLUMEID is not set
+# CONFIG_FEATURE_VOLUMEID_BCACHE is not set
+# CONFIG_FEATURE_VOLUMEID_BTRFS is not set
+# CONFIG_FEATURE_VOLUMEID_CRAMFS is not set
+# CONFIG_FEATURE_VOLUMEID_EROFS is not set
+# CONFIG_FEATURE_VOLUMEID_EXFAT is not set
+# CONFIG_FEATURE_VOLUMEID_EXT is not set
+# CONFIG_FEATURE_VOLUMEID_F2FS is not set
+# CONFIG_FEATURE_VOLUMEID_FAT is not set
+# CONFIG_FEATURE_VOLUMEID_HFS is not set
+# CONFIG_FEATURE_VOLUMEID_ISO9660 is not set
+# CONFIG_FEATURE_VOLUMEID_JFS is not set
+# CONFIG_FEATURE_VOLUMEID_LFS is not set
+# CONFIG_FEATURE_VOLUMEID_LINUXRAID is not set
+# CONFIG_FEATURE_VOLUMEID_LINUXSWAP is not set
+# CONFIG_FEATURE_VOLUMEID_LUKS is not set
+# CONFIG_FEATURE_VOLUMEID_MINIX is not set
+# CONFIG_FEATURE_VOLUMEID_NILFS is not set
+# CONFIG_FEATURE_VOLUMEID_NTFS is not set
+# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set
+# CONFIG_FEATURE_VOLUMEID_REISERFS is not set
+# CONFIG_FEATURE_VOLUMEID_ROMFS is not set
+# CONFIG_FEATURE_VOLUMEID_SQUASHFS is not set
+# CONFIG_FEATURE_VOLUMEID_SYSV is not set
+# CONFIG_FEATURE_VOLUMEID_UBIFS is not set
+# CONFIG_FEATURE_VOLUMEID_UDF is not set
+# CONFIG_FEATURE_VOLUMEID_XFS is not set
+
+#
+# Miscellaneous Utilities
+#
+# CONFIG_ADJTIMEX is not set
+# CONFIG_BBCONFIG is not set
+# CONFIG_FEATURE_COMPRESS_BBCONFIG is not set
+# CONFIG_BC is not set
+# CONFIG_DC is not set
+# CONFIG_FEATURE_DC_BIG is not set
+# CONFIG_FEATURE_DC_LIBM is not set
+# CONFIG_FEATURE_BC_INTERACTIVE is not set
+# CONFIG_FEATURE_BC_LONG_OPTIONS is not set
+# CONFIG_BEEP is not set
+CONFIG_FEATURE_BEEP_FREQ=0
+CONFIG_FEATURE_BEEP_LENGTH_MS=0
+# CONFIG_CHAT is not set
+# CONFIG_FEATURE_CHAT_NOFAIL is not set
+# CONFIG_FEATURE_CHAT_TTY_HIFI is not set
+# CONFIG_FEATURE_CHAT_IMPLICIT_CR is not set
+# CONFIG_FEATURE_CHAT_SWALLOW_OPTS is not set
+# CONFIG_FEATURE_CHAT_SEND_ESCAPES is not set
+# CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set
+# CONFIG_FEATURE_CHAT_CLR_ABORT is not set
+# CONFIG_CONSPY is not set
+# CONFIG_CROND is not set
+# CONFIG_FEATURE_CROND_D is not set
+# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set
+# CONFIG_FEATURE_CROND_SPECIAL_TIMES is not set
+CONFIG_FEATURE_CROND_DIR=""
+# CONFIG_CRONTAB is not set
+# CONFIG_DEVFSD is not set
+# CONFIG_DEVFSD_MODLOAD is not set
+# CONFIG_DEVFSD_FG_NP is not set
+# CONFIG_DEVFSD_VERBOSE is not set
+# CONFIG_FEATURE_DEVFS is not set
+# CONFIG_DEVMEM is not set
+# CONFIG_FBSPLASH is not set
+# CONFIG_FLASHCP is not set
+# CONFIG_FLASH_ERASEALL is not set
+# CONFIG_FLASH_LOCK is not set
+# CONFIG_FLASH_UNLOCK is not set
+# CONFIG_HDPARM is not set
+# CONFIG_FEATURE_HDPARM_GET_IDENTITY is not set
+# CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set
+# CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF is not set
+# CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set
+# CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set
+# CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA is not set
+# CONFIG_HEXEDIT is not set
+# CONFIG_I2CGET is not set
+# CONFIG_I2CSET is not set
+# CONFIG_I2CDUMP is not set
+# CONFIG_I2CDETECT is not set
+# CONFIG_I2CTRANSFER is not set
+# CONFIG_INOTIFYD is not set
+# CONFIG_LESS is not set
+CONFIG_FEATURE_LESS_MAXLINES=0
+# CONFIG_FEATURE_LESS_BRACKETS is not set
+# CONFIG_FEATURE_LESS_FLAGS is not set
+# CONFIG_FEATURE_LESS_TRUNCATE is not set
+# CONFIG_FEATURE_LESS_MARKS is not set
+# CONFIG_FEATURE_LESS_REGEXP is not set
+# CONFIG_FEATURE_LESS_WINCH is not set
+# CONFIG_FEATURE_LESS_ASK_TERMINAL is not set
+# CONFIG_FEATURE_LESS_DASHCMD is not set
+# CONFIG_FEATURE_LESS_LINENUMS is not set
+# CONFIG_FEATURE_LESS_RAW is not set
+# CONFIG_FEATURE_LESS_ENV is not set
+# CONFIG_LSSCSI is not set
+# CONFIG_MAKEDEVS is not set
+# CONFIG_FEATURE_MAKEDEVS_LEAF is not set
+# CONFIG_FEATURE_MAKEDEVS_TABLE is not set
+# CONFIG_MAN is not set
+# CONFIG_MICROCOM is not set
+# CONFIG_MIM is not set
+# CONFIG_MT is not set
+# CONFIG_NANDWRITE is not set
+# CONFIG_NANDDUMP is not set
+# CONFIG_PARTPROBE is not set
+# CONFIG_RAIDAUTORUN is not set
+# CONFIG_READAHEAD is not set
+# CONFIG_RFKILL is not set
+# CONFIG_RUNLEVEL is not set
+# CONFIG_RX is not set
+# CONFIG_SETFATTR is not set
+# CONFIG_SETSERIAL is not set
+# CONFIG_STRINGS is not set
+# CONFIG_TIME is not set
+# CONFIG_TS is not set
+# CONFIG_TTYSIZE is not set
+# CONFIG_UBIRENAME is not set
+# CONFIG_UBIATTACH is not set
+# CONFIG_UBIDETACH is not set
+# CONFIG_UBIMKVOL is not set
+# CONFIG_UBIRMVOL is not set
+# CONFIG_UBIRSVOL is not set
+# CONFIG_UBIUPDATEVOL is not set
+# CONFIG_VOLNAME is not set
+# CONFIG_WATCHDOG is not set
+
+#
+# Networking Utilities
+#
+# CONFIG_FEATURE_IPV6 is not set
+# CONFIG_FEATURE_UNIX_LOCAL is not set
+# CONFIG_FEATURE_PREFER_IPV4_ADDRESS is not set
+# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set
+# CONFIG_FEATURE_TLS_SHA1 is not set
+# CONFIG_ARP is not set
+# CONFIG_ARPING is not set
+# CONFIG_BRCTL is not set
+# CONFIG_FEATURE_BRCTL_FANCY is not set
+# CONFIG_FEATURE_BRCTL_SHOW is not set
+# CONFIG_DNSD is not set
+# CONFIG_ETHER_WAKE is not set
+# CONFIG_FTPD is not set
+# CONFIG_FEATURE_FTPD_WRITE is not set
+# CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST is not set
+# CONFIG_FEATURE_FTPD_AUTHENTICATION is not set
+# CONFIG_FTPGET is not set
+# CONFIG_FTPPUT is not set
+# CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set
+# CONFIG_HOSTNAME is not set
+# CONFIG_DNSDOMAINNAME is not set
+# CONFIG_HTTPD is not set
+# CONFIG_FEATURE_HTTPD_RANGES is not set
+# CONFIG_FEATURE_HTTPD_SETUID is not set
+# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set
+# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set
+# CONFIG_FEATURE_HTTPD_CGI is not set
+# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set
+# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set
+# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set
+# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set
+# CONFIG_FEATURE_HTTPD_PROXY is not set
+# CONFIG_FEATURE_HTTPD_GZIP is not set
+# CONFIG_FEATURE_HTTPD_ETAG is not set
+# CONFIG_FEATURE_HTTPD_LAST_MODIFIED is not set
+# CONFIG_FEATURE_HTTPD_DATE is not set
+# CONFIG_FEATURE_HTTPD_ACL_IP is not set
+# CONFIG_IFCONFIG is not set
+# CONFIG_FEATURE_IFCONFIG_STATUS is not set
+# CONFIG_FEATURE_IFCONFIG_SLIP is not set
+# CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ is not set
+# CONFIG_FEATURE_IFCONFIG_HW is not set
+# CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS is not set
+# CONFIG_IFENSLAVE is not set
+# CONFIG_IFPLUGD is not set
+# CONFIG_IFUP is not set
+# CONFIG_IFDOWN is not set
+CONFIG_IFUPDOWN_IFSTATE_PATH=""
+# CONFIG_FEATURE_IFUPDOWN_IP is not set
+# CONFIG_FEATURE_IFUPDOWN_IPV4 is not set
+# CONFIG_FEATURE_IFUPDOWN_IPV6 is not set
+# CONFIG_FEATURE_IFUPDOWN_MAPPING is not set
+# CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP is not set
+# CONFIG_INETD is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set
+# CONFIG_FEATURE_INETD_RPC is not set
+# CONFIG_IP is not set
+# CONFIG_IPADDR is not set
+# CONFIG_IPLINK is not set
+# CONFIG_IPROUTE is not set
+# CONFIG_IPTUNNEL is not set
+# CONFIG_IPRULE is not set
+# CONFIG_IPNEIGH is not set
+# CONFIG_FEATURE_IP_ADDRESS is not set
+# CONFIG_FEATURE_IP_LINK is not set
+# CONFIG_FEATURE_IP_ROUTE is not set
+CONFIG_FEATURE_IP_ROUTE_DIR=""
+# CONFIG_FEATURE_IP_TUNNEL is not set
+# CONFIG_FEATURE_IP_RULE is not set
+# CONFIG_FEATURE_IP_NEIGH is not set
+# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set
+# CONFIG_IPCALC is not set
+# CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set
+# CONFIG_FEATURE_IPCALC_FANCY is not set
+# CONFIG_FAKEIDENTD is not set
+# CONFIG_NAMEIF is not set
+# CONFIG_FEATURE_NAMEIF_EXTENDED is not set
+# CONFIG_NBDCLIENT is not set
+# CONFIG_NC is not set
+# CONFIG_NETCAT is not set
+# CONFIG_NC_SERVER is not set
+# CONFIG_NC_EXTRA is not set
+# CONFIG_NC_110_COMPAT is not set
+# CONFIG_NETSTAT is not set
+# CONFIG_FEATURE_NETSTAT_WIDE is not set
+# CONFIG_FEATURE_NETSTAT_PRG is not set
+# CONFIG_NSLOOKUP is not set
+# CONFIG_FEATURE_NSLOOKUP_BIG is not set
+# CONFIG_FEATURE_NSLOOKUP_LONG_OPTIONS is not set
+# CONFIG_NTPD is not set
+# CONFIG_FEATURE_NTPD_SERVER is not set
+# CONFIG_FEATURE_NTPD_CONF is not set
+# CONFIG_FEATURE_NTP_AUTH is not set
+# CONFIG_PING is not set
+# CONFIG_PING6 is not set
+# CONFIG_FEATURE_FANCY_PING is not set
+# CONFIG_PSCAN is not set
+# CONFIG_ROUTE is not set
+# CONFIG_SLATTACH is not set
+# CONFIG_SSL_CLIENT is not set
+# CONFIG_TC is not set
+# CONFIG_FEATURE_TC_INGRESS is not set
+# CONFIG_TCPSVD is not set
+# CONFIG_UDPSVD is not set
+# CONFIG_TELNET is not set
+# CONFIG_FEATURE_TELNET_TTYPE is not set
+# CONFIG_FEATURE_TELNET_AUTOLOGIN is not set
+# CONFIG_FEATURE_TELNET_WIDTH is not set
+# CONFIG_TELNETD is not set
+# CONFIG_FEATURE_TELNETD_STANDALONE is not set
+# CONFIG_FEATURE_TELNETD_INETD_WAIT is not set
+# CONFIG_TFTP is not set
+# CONFIG_FEATURE_TFTP_PROGRESS_BAR is not set
+# CONFIG_FEATURE_TFTP_HPA_COMPAT is not set
+# CONFIG_TFTPD is not set
+# CONFIG_FEATURE_TFTP_GET is not set
+# CONFIG_FEATURE_TFTP_PUT is not set
+# CONFIG_FEATURE_TFTP_BLOCKSIZE is not set
+# CONFIG_TFTP_DEBUG is not set
+# CONFIG_TLS is not set
+# CONFIG_TRACEROUTE is not set
+# CONFIG_TRACEROUTE6 is not set
+# CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set
+# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set
+# CONFIG_TUNCTL is not set
+# CONFIG_FEATURE_TUNCTL_UG is not set
+# CONFIG_VCONFIG is not set
+# CONFIG_WGET is not set
+# CONFIG_FEATURE_WGET_LONG_OPTIONS is not set
+# CONFIG_FEATURE_WGET_STATUSBAR is not set
+# CONFIG_FEATURE_WGET_AUTHENTICATION is not set
+# CONFIG_FEATURE_WGET_TIMEOUT is not set
+# CONFIG_FEATURE_WGET_HTTPS is not set
+# CONFIG_FEATURE_WGET_OPENSSL is not set
+# CONFIG_WHOIS is not set
+# CONFIG_ZCIP is not set
+# CONFIG_UDHCPD is not set
+# CONFIG_FEATURE_UDHCPD_BASE_IP_ON_MAC is not set
+# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set
+CONFIG_DHCPD_LEASES_FILE=""
+# CONFIG_DUMPLEASES is not set
+# CONFIG_DHCPRELAY is not set
+# CONFIG_UDHCPC is not set
+# CONFIG_FEATURE_UDHCPC_ARPING is not set
+# CONFIG_FEATURE_UDHCPC_SANITIZEOPT is not set
+CONFIG_UDHCPC_DEFAULT_SCRIPT=""
+# CONFIG_UDHCPC6 is not set
+# CONFIG_FEATURE_UDHCPC6_RFC3646 is not set
+# CONFIG_FEATURE_UDHCPC6_RFC4704 is not set
+# CONFIG_FEATURE_UDHCPC6_RFC4833 is not set
+# CONFIG_FEATURE_UDHCPC6_RFC5970 is not set
+# CONFIG_FEATURE_UDHCP_PORT is not set
+CONFIG_UDHCP_DEBUG=0
+CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=0
+# CONFIG_FEATURE_UDHCP_RFC3397 is not set
+# CONFIG_FEATURE_UDHCP_8021Q is not set
+CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS=""
+
+#
+# Print Utilities
+#
+# CONFIG_LPD is not set
+# CONFIG_LPR is not set
+# CONFIG_LPQ is not set
+
+#
+# Mail Utilities
+#
+# CONFIG_MAKEMIME is not set
+# CONFIG_POPMAILDIR is not set
+# CONFIG_FEATURE_POPMAILDIR_DELIVERY is not set
+# CONFIG_REFORMIME is not set
+# CONFIG_FEATURE_REFORMIME_COMPAT is not set
+# CONFIG_SENDMAIL is not set
+CONFIG_FEATURE_MIME_CHARSET=""
+
+#
+# Process Utilities
+#
+# CONFIG_FREE is not set
+# CONFIG_FUSER is not set
+# CONFIG_IOSTAT is not set
+CONFIG_KILL=y
+# CONFIG_KILLALL is not set
+# CONFIG_KILLALL5 is not set
+# CONFIG_LSOF is not set
+# CONFIG_MPSTAT is not set
+# CONFIG_NMETER is not set
+# CONFIG_PGREP is not set
+# CONFIG_PKILL is not set
+# CONFIG_PIDOF is not set
+# CONFIG_FEATURE_PIDOF_SINGLE is not set
+# CONFIG_FEATURE_PIDOF_OMIT is not set
+# CONFIG_PMAP is not set
+# CONFIG_POWERTOP is not set
+# CONFIG_FEATURE_POWERTOP_INTERACTIVE is not set
+CONFIG_PS=y
+CONFIG_FEATURE_PS_WIDE=y
+CONFIG_FEATURE_PS_LONG=y
+# CONFIG_FEATURE_PS_TIME is not set
+# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set
+# CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS is not set
+# CONFIG_PSTREE is not set
+# CONFIG_PWDX is not set
+# CONFIG_SMEMCAP is not set
+# CONFIG_BB_SYSCTL is not set
+# CONFIG_TOP is not set
+# CONFIG_FEATURE_TOP_INTERACTIVE is not set
+# CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE is not set
+# CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS is not set
+# CONFIG_FEATURE_TOP_SMP_CPU is not set
+# CONFIG_FEATURE_TOP_DECIMALS is not set
+# CONFIG_FEATURE_TOP_SMP_PROCESS is not set
+# CONFIG_FEATURE_TOPMEM is not set
+# CONFIG_UPTIME is not set
+# CONFIG_FEATURE_UPTIME_UTMP_SUPPORT is not set
+# CONFIG_WATCH is not set
+# CONFIG_FEATURE_SHOW_THREADS is not set
+
+#
+# Runit Utilities
+#
+# CONFIG_CHPST is not set
+# CONFIG_SETUIDGID is not set
+# CONFIG_ENVUIDGID is not set
+# CONFIG_ENVDIR is not set
+# CONFIG_SOFTLIMIT is not set
+# CONFIG_RUNSV is not set
+# CONFIG_RUNSVDIR is not set
+# CONFIG_FEATURE_RUNSVDIR_LOG is not set
+# CONFIG_SV is not set
+CONFIG_SV_DEFAULT_SERVICE_DIR=""
+# CONFIG_SVC is not set
+# CONFIG_SVOK is not set
+# CONFIG_SVLOGD is not set
+# CONFIG_CHCON is not set
+# CONFIG_GETENFORCE is not set
+# CONFIG_GETSEBOOL is not set
+# CONFIG_LOAD_POLICY is not set
+# CONFIG_MATCHPATHCON is not set
+# CONFIG_RUNCON is not set
+# CONFIG_SELINUXENABLED is not set
+# CONFIG_SESTATUS is not set
+# CONFIG_SETENFORCE is not set
+# CONFIG_SETFILES is not set
+# CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set
+# CONFIG_RESTORECON is not set
+# CONFIG_SETSEBOOL is not set
+
+#
+# Shells
+#
+# CONFIG_SH_IS_ASH is not set
+CONFIG_SH_IS_HUSH=y
+# CONFIG_SH_IS_NONE is not set
+# CONFIG_BASH_IS_ASH is not set
+CONFIG_BASH_IS_HUSH=y
+# CONFIG_BASH_IS_NONE is not set
+# CONFIG_SHELL_ASH is not set
+# CONFIG_ASH is not set
+# CONFIG_ASH_OPTIMIZE_FOR_SIZE is not set
+# CONFIG_ASH_INTERNAL_GLOB is not set
+# CONFIG_ASH_BASH_COMPAT is not set
+# CONFIG_ASH_BASH_SOURCE_CURDIR is not set
+# CONFIG_ASH_BASH_NOT_FOUND_HOOK is not set
+# CONFIG_ASH_JOB_CONTROL is not set
+# CONFIG_ASH_ALIAS is not set
+# CONFIG_ASH_RANDOM_SUPPORT is not set
+# CONFIG_ASH_EXPAND_PRMT is not set
+# CONFIG_ASH_IDLE_TIMEOUT is not set
+# CONFIG_ASH_MAIL is not set
+# CONFIG_ASH_ECHO is not set
+# CONFIG_ASH_PRINTF is not set
+# CONFIG_ASH_TEST is not set
+# CONFIG_ASH_HELP is not set
+# CONFIG_ASH_GETOPTS is not set
+# CONFIG_ASH_CMDCMD is not set
+# CONFIG_CTTYHACK is not set
+CONFIG_HUSH=y
+CONFIG_SHELL_HUSH=y
+CONFIG_HUSH_BASH_COMPAT=y
+CONFIG_HUSH_BRACE_EXPANSION=y
+CONFIG_HUSH_LINENO_VAR=y
+# CONFIG_HUSH_BASH_SOURCE_CURDIR is not set
+CONFIG_HUSH_INTERACTIVE=y
+# CONFIG_HUSH_SAVEHISTORY is not set
+CONFIG_HUSH_JOB=y
+CONFIG_HUSH_TICK=y
+CONFIG_HUSH_IF=y
+CONFIG_HUSH_LOOPS=y
+CONFIG_HUSH_CASE=y
+CONFIG_HUSH_FUNCTIONS=y
+CONFIG_HUSH_LOCAL=y
+CONFIG_HUSH_RANDOM_SUPPORT=y
+CONFIG_HUSH_MODE_X=y
+CONFIG_HUSH_ECHO=y
+CONFIG_HUSH_PRINTF=y
+CONFIG_HUSH_TEST=y
+CONFIG_HUSH_HELP=y
+CONFIG_HUSH_EXPORT=y
+CONFIG_HUSH_EXPORT_N=y
+CONFIG_HUSH_READONLY=y
+CONFIG_HUSH_KILL=y
+CONFIG_HUSH_WAIT=y
+CONFIG_HUSH_COMMAND=y
+CONFIG_HUSH_TRAP=y
+CONFIG_HUSH_TYPE=y
+CONFIG_HUSH_TIMES=y
+CONFIG_HUSH_READ=y
+CONFIG_HUSH_SET=y
+CONFIG_HUSH_UNSET=y
+CONFIG_HUSH_ULIMIT=y
+CONFIG_HUSH_UMASK=y
+CONFIG_HUSH_GETOPTS=y
+# CONFIG_HUSH_MEMLEAK is not set
+
+#
+# Options common to all shells
+#
+CONFIG_FEATURE_SH_MATH=y
+CONFIG_FEATURE_SH_MATH_64=y
+CONFIG_FEATURE_SH_MATH_BASE=y
+# CONFIG_FEATURE_SH_EXTRA_QUIET is not set
+# CONFIG_FEATURE_SH_STANDALONE is not set
+# CONFIG_FEATURE_SH_NOFORK is not set
+# CONFIG_FEATURE_SH_READ_FRAC is not set
+# CONFIG_FEATURE_SH_HISTFILESIZE is not set
+# CONFIG_FEATURE_SH_EMBEDDED_SCRIPTS is not set
+
+#
+# System Logging Utilities
+#
+# CONFIG_KLOGD is not set
+# CONFIG_FEATURE_KLOGD_KLOGCTL is not set
+# CONFIG_LOGGER is not set
+# CONFIG_LOGREAD is not set
+# CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING is not set
+# CONFIG_SYSLOGD is not set
+# CONFIG_FEATURE_ROTATE_LOGFILE is not set
+# CONFIG_FEATURE_REMOTE_LOG is not set
+# CONFIG_FEATURE_SYSLOGD_DUP is not set
+# CONFIG_FEATURE_SYSLOGD_CFG is not set
+# CONFIG_FEATURE_SYSLOGD_PRECISE_TIMESTAMPS is not set
+CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=0
+# CONFIG_FEATURE_IPC_SYSLOG is not set
+CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=0
+# CONFIG_FEATURE_KMSG_SYSLOG is not set
diff --git a/board/canaan/k210-common/rootfs_overlay/usr/sbin/init b/board/canaan/k210-common/rootfs_overlay/usr/sbin/init
new file mode 100755
index 0000000000..286346ddc3
--- /dev/null
+++ b/board/canaan/k210-common/rootfs_overlay/usr/sbin/init
@@ -0,0 +1,26 @@
+#!/bin/sh
+
+# Mount sysfs and procfs
+/bin/mount -t sysfs sysfs /sys
+/bin/mount -t proc proc /proc
+
+# Use the /dev/console device node from devtmpfs if possible to not
+# confuse glibc's ttyname_r().
+# This may fail (E.G. booted with console=), and errors from exec will
+# terminate the shell, so use a subshell for the test
+if (exec 0</dev/console) 2>/dev/null; then
+    exec 0</dev/console
+    exec 1>/dev/console
+    exec 2>/dev/console
+fi
+
+# Print a fun logo :)
+echo "          __  _"
+echo "         / / (_) ____   _   _ __  __"
+echo "        / /  | ||  _ \\ | | | |\\ \\/ /"
+echo "       / /___| || | | || |_| | >  < "
+echo "      /_____/|_||_| |_| \\____|/_/\\_\\"
+echo "        RISC-V Kendryte K210 NOMMU"
+
+# Start interactive shell
+exec /bin/sh
diff --git a/board/sipeed/maix-bit/linux-dtb.config b/board/sipeed/maix-bit/linux-dtb.config
new file mode 100644
index 0000000000..de2f8fd074
--- /dev/null
+++ b/board/sipeed/maix-bit/linux-dtb.config
@@ -0,0 +1,2 @@
+CONFIG_SOC_CANAAN_K210_DTB_BUILTIN=y
+CONFIG_SOC_CANAAN_K210_DTB_SOURCE="sipeed_maix_bit"
diff --git a/configs/sipeed_maix_bit_defconfig b/configs/sipeed_maix_bit_defconfig
new file mode 100644
index 0000000000..94920c5c84
--- /dev/null
+++ b/configs/sipeed_maix_bit_defconfig
@@ -0,0 +1,23 @@
+BR2_riscv=y
+# BR2_COMPILER_PARANOID_UNSAFE_PATH is not set
+BR2_KERNEL_HEADERS_5_13=y
+# BR2_UCLIBC_INSTALL_UTILS is not set
+BR2_GCC_VERSION_11_X=y
+BR2_GCC_ENABLE_LTO=y
+BR2_PACKAGE_HOST_ELF2FLT=y
+# BR2_USE_MMU is not set
+BR2_TARGET_GENERIC_HOSTNAME=""
+BR2_INIT_NONE=y
+BR2_ROOTFS_MERGED_USR=y
+BR2_SYSTEM_DEFAULT_PATH="/bin:/sbin:/usr/bin:/usr/sbin"
+BR2_ROOTFS_OVERLAY="board/canaan/k210-common/rootfs_overlay"
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_DEFCONFIG="nommu_k210"
+BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/sipeed/maix-bit/linux-dtb.config"
+BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y
+BR2_LINUX_KERNEL_IMAGE_NAME="loader.bin"
+BR2_PACKAGE_BUSYBOX_CONFIG="board/canaan/k210-common/busybox-tiny-initramfs.config"
+BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
+# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set
+BR2_TARGET_ROOTFS_INITRAMFS=y
+# BR2_TARGET_ROOTFS_TAR is not set
diff --git a/configs/sipeed_maix_bit_sdcard_defconfig b/configs/sipeed_maix_bit_sdcard_defconfig
new file mode 100644
index 0000000000..eba06bcbc6
--- /dev/null
+++ b/configs/sipeed_maix_bit_sdcard_defconfig
@@ -0,0 +1,23 @@
+BR2_riscv=y
+# BR2_COMPILER_PARANOID_UNSAFE_PATH is not set
+BR2_KERNEL_HEADERS_5_13=y
+# BR2_UCLIBC_INSTALL_UTILS is not set
+BR2_GCC_VERSION_11_X=y
+BR2_GCC_ENABLE_LTO=y
+BR2_PACKAGE_HOST_ELF2FLT=y
+# BR2_USE_MMU is not set
+BR2_TARGET_GENERIC_HOSTNAME=""
+BR2_INIT_NONE=y
+BR2_ROOTFS_MERGED_USR=y
+BR2_SYSTEM_DEFAULT_PATH="/bin:/sbin:/usr/bin:/usr/sbin"
+BR2_ROOTFS_OVERLAY="board/canaan/k210-common/rootfs_overlay"
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_DEFCONFIG="nommu_k210_sdcard"
+BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/sipeed/maix-bit/linux-dtb.config"
+BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y
+BR2_LINUX_KERNEL_IMAGE_NAME="loader.bin"
+BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox-minimal.config"
+BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
+# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set
+BR2_TARGET_ROOTFS_EXT2=y
+# BR2_TARGET_ROOTFS_TAR is not set
-- 
2.31.1

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [Buildroot] [PATCH v2 5/9] board: Add Sipeed MAIX-Go support
  2021-07-15  0:48 [Buildroot] [PATCH v2 0/9] Add RISC-V NOMMU and Canaan K210 SoC support Damien Le Moal
                   ` (3 preceding siblings ...)
  2021-07-15  0:48 ` [Buildroot] [PATCH v2 4/9] board: Add Sipeed MAIX-bit support Damien Le Moal
@ 2021-07-15  0:48 ` Damien Le Moal
  2021-07-15  0:48 ` [Buildroot] [PATCH v2 6/9] board: Add Sipeed MAIXDUINO support Damien Le Moal
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 23+ messages in thread
From: Damien Le Moal @ 2021-07-15  0:48 UTC (permalink / raw)
  To: buildroot

Add two configuration files to support the RISC-V Canaan K210 SoC based
Sipeed MAIX-Go board. These configurations are similar to the Sipeed
MAIX-bit board configurations, differing only by the built-in device
tree used.

Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
---
 board/sipeed/maix-go/linux-dtb.config   |  2 ++
 configs/sipeed_maix_go_defconfig        | 23 +++++++++++++++++++++++
 configs/sipeed_maix_go_sdcard_defconfig | 23 +++++++++++++++++++++++
 3 files changed, 48 insertions(+)
 create mode 100644 board/sipeed/maix-go/linux-dtb.config
 create mode 100644 configs/sipeed_maix_go_defconfig
 create mode 100644 configs/sipeed_maix_go_sdcard_defconfig

diff --git a/board/sipeed/maix-go/linux-dtb.config b/board/sipeed/maix-go/linux-dtb.config
new file mode 100644
index 0000000000..ea8c30e266
--- /dev/null
+++ b/board/sipeed/maix-go/linux-dtb.config
@@ -0,0 +1,2 @@
+CONFIG_SOC_CANAAN_K210_DTB_BUILTIN=y
+CONFIG_SOC_CANAAN_K210_DTB_SOURCE="sipeed_maix_go"
diff --git a/configs/sipeed_maix_go_defconfig b/configs/sipeed_maix_go_defconfig
new file mode 100644
index 0000000000..c5df26340f
--- /dev/null
+++ b/configs/sipeed_maix_go_defconfig
@@ -0,0 +1,23 @@
+BR2_riscv=y
+# BR2_COMPILER_PARANOID_UNSAFE_PATH is not set
+BR2_KERNEL_HEADERS_5_13=y
+# BR2_UCLIBC_INSTALL_UTILS is not set
+BR2_GCC_VERSION_11_X=y
+BR2_GCC_ENABLE_LTO=y
+BR2_PACKAGE_HOST_ELF2FLT=y
+# BR2_USE_MMU is not set
+BR2_TARGET_GENERIC_HOSTNAME=""
+BR2_INIT_NONE=y
+BR2_ROOTFS_MERGED_USR=y
+BR2_SYSTEM_DEFAULT_PATH="/bin:/sbin:/usr/bin:/usr/sbin"
+BR2_ROOTFS_OVERLAY="board/canaan/k210-common/rootfs_overlay"
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_DEFCONFIG="nommu_k210"
+BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/sipeed/maix-go/linux-dtb.config"
+BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y
+BR2_LINUX_KERNEL_IMAGE_NAME="loader.bin"
+BR2_PACKAGE_BUSYBOX_CONFIG="board/canaan/k210-common/busybox-tiny-initramfs.config"
+BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
+# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set
+BR2_TARGET_ROOTFS_INITRAMFS=y
+# BR2_TARGET_ROOTFS_TAR is not set
diff --git a/configs/sipeed_maix_go_sdcard_defconfig b/configs/sipeed_maix_go_sdcard_defconfig
new file mode 100644
index 0000000000..dcea0a6044
--- /dev/null
+++ b/configs/sipeed_maix_go_sdcard_defconfig
@@ -0,0 +1,23 @@
+BR2_riscv=y
+# BR2_COMPILER_PARANOID_UNSAFE_PATH is not set
+BR2_KERNEL_HEADERS_5_13=y
+# BR2_UCLIBC_INSTALL_UTILS is not set
+BR2_GCC_VERSION_11_X=y
+BR2_GCC_ENABLE_LTO=y
+BR2_PACKAGE_HOST_ELF2FLT=y
+# BR2_USE_MMU is not set
+BR2_TARGET_GENERIC_HOSTNAME=""
+BR2_INIT_NONE=y
+BR2_ROOTFS_MERGED_USR=y
+BR2_SYSTEM_DEFAULT_PATH="/bin:/sbin:/usr/bin:/usr/sbin"
+BR2_ROOTFS_OVERLAY="board/canaan/k210-common/rootfs_overlay"
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_DEFCONFIG="nommu_k210_sdcard"
+BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/sipeed/maix-go/linux-dtb.config"
+BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y
+BR2_LINUX_KERNEL_IMAGE_NAME="loader.bin"
+BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox-minimal.config"
+BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
+# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set
+BR2_TARGET_ROOTFS_EXT2=y
+# BR2_TARGET_ROOTFS_TAR is not set
-- 
2.31.1

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [Buildroot] [PATCH v2 6/9] board: Add Sipeed MAIXDUINO support
  2021-07-15  0:48 [Buildroot] [PATCH v2 0/9] Add RISC-V NOMMU and Canaan K210 SoC support Damien Le Moal
                   ` (4 preceding siblings ...)
  2021-07-15  0:48 ` [Buildroot] [PATCH v2 5/9] board: Add Sipeed MAIX-Go support Damien Le Moal
@ 2021-07-15  0:48 ` Damien Le Moal
  2021-07-15  0:48 ` [Buildroot] [PATCH v2 7/9] board: Add Sipeed MAIX-Dock support Damien Le Moal
                   ` (3 subsequent siblings)
  9 siblings, 0 replies; 23+ messages in thread
From: Damien Le Moal @ 2021-07-15  0:48 UTC (permalink / raw)
  To: buildroot

Add two configuration files to support the RISC-V Canaan K210 SoC based
Sipeed MAIXDUINO board. These configurations are similar to the Sipeed
MAIX-bit board configurations, differing only by the built-in device
tree used.

Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
---
 board/sipeed/maixduino/linux-dtb.config   |  2 ++
 configs/sipeed_maixduino_defconfig        | 23 +++++++++++++++++++++++
 configs/sipeed_maixduino_sdcard_defconfig | 23 +++++++++++++++++++++++
 3 files changed, 48 insertions(+)
 create mode 100644 board/sipeed/maixduino/linux-dtb.config
 create mode 100644 configs/sipeed_maixduino_defconfig
 create mode 100644 configs/sipeed_maixduino_sdcard_defconfig

diff --git a/board/sipeed/maixduino/linux-dtb.config b/board/sipeed/maixduino/linux-dtb.config
new file mode 100644
index 0000000000..049a2550c5
--- /dev/null
+++ b/board/sipeed/maixduino/linux-dtb.config
@@ -0,0 +1,2 @@
+CONFIG_SOC_CANAAN_K210_DTB_BUILTIN=y
+CONFIG_SOC_CANAAN_K210_DTB_SOURCE="sipeed_maixduino"
diff --git a/configs/sipeed_maixduino_defconfig b/configs/sipeed_maixduino_defconfig
new file mode 100644
index 0000000000..b95cbfc5ba
--- /dev/null
+++ b/configs/sipeed_maixduino_defconfig
@@ -0,0 +1,23 @@
+BR2_riscv=y
+# BR2_COMPILER_PARANOID_UNSAFE_PATH is not set
+BR2_KERNEL_HEADERS_5_13=y
+# BR2_UCLIBC_INSTALL_UTILS is not set
+BR2_GCC_VERSION_11_X=y
+BR2_GCC_ENABLE_LTO=y
+BR2_PACKAGE_HOST_ELF2FLT=y
+# BR2_USE_MMU is not set
+BR2_TARGET_GENERIC_HOSTNAME=""
+BR2_INIT_NONE=y
+BR2_ROOTFS_MERGED_USR=y
+BR2_SYSTEM_DEFAULT_PATH="/bin:/sbin:/usr/bin:/usr/sbin"
+BR2_ROOTFS_OVERLAY="board/canaan/k210-common/rootfs_overlay"
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_DEFCONFIG="nommu_k210"
+BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/sipeed/maixduino/linux-dtb.config"
+BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y
+BR2_LINUX_KERNEL_IMAGE_NAME="loader.bin"
+BR2_PACKAGE_BUSYBOX_CONFIG="board/canaan/k210-common/busybox-tiny-initramfs.config"
+BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
+# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set
+BR2_TARGET_ROOTFS_INITRAMFS=y
+# BR2_TARGET_ROOTFS_TAR is not set
diff --git a/configs/sipeed_maixduino_sdcard_defconfig b/configs/sipeed_maixduino_sdcard_defconfig
new file mode 100644
index 0000000000..c8a1d98d28
--- /dev/null
+++ b/configs/sipeed_maixduino_sdcard_defconfig
@@ -0,0 +1,23 @@
+BR2_riscv=y
+# BR2_COMPILER_PARANOID_UNSAFE_PATH is not set
+BR2_KERNEL_HEADERS_5_13=y
+# BR2_UCLIBC_INSTALL_UTILS is not set
+BR2_GCC_VERSION_11_X=y
+BR2_GCC_ENABLE_LTO=y
+BR2_PACKAGE_HOST_ELF2FLT=y
+# BR2_USE_MMU is not set
+BR2_TARGET_GENERIC_HOSTNAME=""
+BR2_INIT_NONE=y
+BR2_ROOTFS_MERGED_USR=y
+BR2_SYSTEM_DEFAULT_PATH="/bin:/sbin:/usr/bin:/usr/sbin"
+BR2_ROOTFS_OVERLAY="board/canaan/k210-common/rootfs_overlay"
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_DEFCONFIG="nommu_k210_sdcard"
+BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/sipeed/maixduino/linux-dtb.config"
+BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y
+BR2_LINUX_KERNEL_IMAGE_NAME="loader.bin"
+BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox-minimal.config"
+BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
+# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set
+BR2_TARGET_ROOTFS_EXT2=y
+# BR2_TARGET_ROOTFS_TAR is not set
-- 
2.31.1

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [Buildroot] [PATCH v2 7/9] board: Add Sipeed MAIX-Dock support
  2021-07-15  0:48 [Buildroot] [PATCH v2 0/9] Add RISC-V NOMMU and Canaan K210 SoC support Damien Le Moal
                   ` (5 preceding siblings ...)
  2021-07-15  0:48 ` [Buildroot] [PATCH v2 6/9] board: Add Sipeed MAIXDUINO support Damien Le Moal
@ 2021-07-15  0:48 ` Damien Le Moal
  2021-07-15  0:48 ` [Buildroot] [PATCH v2 8/9] board: Add Canaan KD233 support Damien Le Moal
                   ` (2 subsequent siblings)
  9 siblings, 0 replies; 23+ messages in thread
From: Damien Le Moal @ 2021-07-15  0:48 UTC (permalink / raw)
  To: buildroot

Add two configuration files to support the RISC-V Canaan K210 SoC based
Sipeed MAIX-Dock board. These configurations are similar to the Sipeed
MAIX-bit board configurations, differing only by the built-in device
tree used.

Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
---
 board/sipeed/maix-dock/linux-dtb.config   |  2 ++
 configs/sipeed_maix_dock_defconfig        | 23 +++++++++++++++++++++++
 configs/sipeed_maix_dock_sdcard_defconfig | 23 +++++++++++++++++++++++
 3 files changed, 48 insertions(+)
 create mode 100644 board/sipeed/maix-dock/linux-dtb.config
 create mode 100644 configs/sipeed_maix_dock_defconfig
 create mode 100644 configs/sipeed_maix_dock_sdcard_defconfig

diff --git a/board/sipeed/maix-dock/linux-dtb.config b/board/sipeed/maix-dock/linux-dtb.config
new file mode 100644
index 0000000000..b1ca3166f8
--- /dev/null
+++ b/board/sipeed/maix-dock/linux-dtb.config
@@ -0,0 +1,2 @@
+CONFIG_SOC_CANAAN_K210_DTB_BUILTIN=y
+CONFIG_SOC_CANAAN_K210_DTB_SOURCE="sipeed_maix_dock"
diff --git a/configs/sipeed_maix_dock_defconfig b/configs/sipeed_maix_dock_defconfig
new file mode 100644
index 0000000000..b91a991e40
--- /dev/null
+++ b/configs/sipeed_maix_dock_defconfig
@@ -0,0 +1,23 @@
+BR2_riscv=y
+# BR2_COMPILER_PARANOID_UNSAFE_PATH is not set
+BR2_KERNEL_HEADERS_5_13=y
+# BR2_UCLIBC_INSTALL_UTILS is not set
+BR2_GCC_VERSION_11_X=y
+BR2_GCC_ENABLE_LTO=y
+BR2_PACKAGE_HOST_ELF2FLT=y
+# BR2_USE_MMU is not set
+BR2_TARGET_GENERIC_HOSTNAME=""
+BR2_INIT_NONE=y
+BR2_ROOTFS_MERGED_USR=y
+BR2_SYSTEM_DEFAULT_PATH="/bin:/sbin:/usr/bin:/usr/sbin"
+BR2_ROOTFS_OVERLAY="board/canaan/k210-common/rootfs_overlay"
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_DEFCONFIG="nommu_k210"
+BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/sipeed/maix-dock/linux-dtb.config"
+BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y
+BR2_LINUX_KERNEL_IMAGE_NAME="loader.bin"
+BR2_PACKAGE_BUSYBOX_CONFIG="board/canaan/k210-common/busybox-tiny-initramfs.config"
+BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
+# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set
+BR2_TARGET_ROOTFS_INITRAMFS=y
+# BR2_TARGET_ROOTFS_TAR is not set
diff --git a/configs/sipeed_maix_dock_sdcard_defconfig b/configs/sipeed_maix_dock_sdcard_defconfig
new file mode 100644
index 0000000000..1ce96b81f0
--- /dev/null
+++ b/configs/sipeed_maix_dock_sdcard_defconfig
@@ -0,0 +1,23 @@
+BR2_riscv=y
+# BR2_COMPILER_PARANOID_UNSAFE_PATH is not set
+BR2_KERNEL_HEADERS_5_13=y
+# BR2_UCLIBC_INSTALL_UTILS is not set
+BR2_GCC_VERSION_11_X=y
+BR2_GCC_ENABLE_LTO=y
+BR2_PACKAGE_HOST_ELF2FLT=y
+# BR2_USE_MMU is not set
+BR2_TARGET_GENERIC_HOSTNAME=""
+BR2_INIT_NONE=y
+BR2_ROOTFS_MERGED_USR=y
+BR2_SYSTEM_DEFAULT_PATH="/bin:/sbin:/usr/bin:/usr/sbin"
+BR2_ROOTFS_OVERLAY="board/canaan/k210-common/rootfs_overlay"
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_DEFCONFIG="nommu_k210_sdcard"
+BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/sipeed/maix-dock/linux-dtb.config"
+BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y
+BR2_LINUX_KERNEL_IMAGE_NAME="loader.bin"
+BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox-minimal.config"
+BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
+# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set
+BR2_TARGET_ROOTFS_EXT2=y
+# BR2_TARGET_ROOTFS_TAR is not set
-- 
2.31.1

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [Buildroot] [PATCH v2 8/9] board: Add Canaan KD233 support
  2021-07-15  0:48 [Buildroot] [PATCH v2 0/9] Add RISC-V NOMMU and Canaan K210 SoC support Damien Le Moal
                   ` (6 preceding siblings ...)
  2021-07-15  0:48 ` [Buildroot] [PATCH v2 7/9] board: Add Sipeed MAIX-Dock support Damien Le Moal
@ 2021-07-15  0:48 ` Damien Le Moal
  2021-07-15  0:48 ` [Buildroot] [PATCH v2 9/9] board: Document Canaan K210 based boards support Damien Le Moal
  2021-07-23 22:25 ` [Buildroot] [PATCH v2 0/9] Add RISC-V NOMMU and Canaan K210 SoC support Arnout Vandecappelle
  9 siblings, 0 replies; 23+ messages in thread
From: Damien Le Moal @ 2021-07-15  0:48 UTC (permalink / raw)
  To: buildroot

Add two configuration files to support the RISC-V Canaan K210 SoC based
KD233 development board. These configurations are similar to the
configurations defined for the Sipeed boards, differing only by the
built-in device tree used.

Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
---
 board/canaan/kd233/linux-dtb.config   |  2 ++
 configs/canaan_kd233_defconfig        | 23 +++++++++++++++++++++++
 configs/canaan_kd233_sdcard_defconfig | 23 +++++++++++++++++++++++
 3 files changed, 48 insertions(+)
 create mode 100644 board/canaan/kd233/linux-dtb.config
 create mode 100644 configs/canaan_kd233_defconfig
 create mode 100644 configs/canaan_kd233_sdcard_defconfig

diff --git a/board/canaan/kd233/linux-dtb.config b/board/canaan/kd233/linux-dtb.config
new file mode 100644
index 0000000000..d5b107124a
--- /dev/null
+++ b/board/canaan/kd233/linux-dtb.config
@@ -0,0 +1,2 @@
+CONFIG_SOC_CANAAN_K210_DTB_BUILTIN=y
+CONFIG_SOC_CANAAN_K210_DTB_SOURCE="canaan_kd233"
diff --git a/configs/canaan_kd233_defconfig b/configs/canaan_kd233_defconfig
new file mode 100644
index 0000000000..d1f6dcdc9b
--- /dev/null
+++ b/configs/canaan_kd233_defconfig
@@ -0,0 +1,23 @@
+BR2_riscv=y
+# BR2_COMPILER_PARANOID_UNSAFE_PATH is not set
+BR2_KERNEL_HEADERS_5_13=y
+# BR2_UCLIBC_INSTALL_UTILS is not set
+BR2_GCC_VERSION_11_X=y
+BR2_GCC_ENABLE_LTO=y
+BR2_PACKAGE_HOST_ELF2FLT=y
+# BR2_USE_MMU is not set
+BR2_TARGET_GENERIC_HOSTNAME=""
+BR2_INIT_NONE=y
+BR2_ROOTFS_MERGED_USR=y
+BR2_SYSTEM_DEFAULT_PATH="/bin:/sbin:/usr/bin:/usr/sbin"
+BR2_ROOTFS_OVERLAY="board/canaan/k210-common/rootfs_overlay"
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_DEFCONFIG="nommu_k210"
+BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/canaan/kd233/linux-dtb.config"
+BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y
+BR2_LINUX_KERNEL_IMAGE_NAME="loader.bin"
+BR2_PACKAGE_BUSYBOX_CONFIG="board/canaan/k210-common/busybox-tiny-initramfs.config"
+BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
+# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set
+BR2_TARGET_ROOTFS_INITRAMFS=y
+# BR2_TARGET_ROOTFS_TAR is not set
diff --git a/configs/canaan_kd233_sdcard_defconfig b/configs/canaan_kd233_sdcard_defconfig
new file mode 100644
index 0000000000..754a996d63
--- /dev/null
+++ b/configs/canaan_kd233_sdcard_defconfig
@@ -0,0 +1,23 @@
+BR2_riscv=y
+# BR2_COMPILER_PARANOID_UNSAFE_PATH is not set
+BR2_KERNEL_HEADERS_5_13=y
+# BR2_UCLIBC_INSTALL_UTILS is not set
+BR2_GCC_VERSION_11_X=y
+BR2_GCC_ENABLE_LTO=y
+BR2_PACKAGE_HOST_ELF2FLT=y
+# BR2_USE_MMU is not set
+BR2_TARGET_GENERIC_HOSTNAME=""
+BR2_INIT_NONE=y
+BR2_ROOTFS_MERGED_USR=y
+BR2_SYSTEM_DEFAULT_PATH="/bin:/sbin:/usr/bin:/usr/sbin"
+BR2_ROOTFS_OVERLAY="board/canaan/k210-common/rootfs_overlay"
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_DEFCONFIG="nommu_k210_sdcard"
+BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/canaan/kd233/linux-dtb.config"
+BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y
+BR2_LINUX_KERNEL_IMAGE_NAME="loader.bin"
+BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox-minimal.config"
+BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
+# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set
+BR2_TARGET_ROOTFS_EXT2=y
+# BR2_TARGET_ROOTFS_TAR is not set
-- 
2.31.1

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [Buildroot] [PATCH v2 9/9] board: Document Canaan K210 based boards support
  2021-07-15  0:48 [Buildroot] [PATCH v2 0/9] Add RISC-V NOMMU and Canaan K210 SoC support Damien Le Moal
                   ` (7 preceding siblings ...)
  2021-07-15  0:48 ` [Buildroot] [PATCH v2 8/9] board: Add Canaan KD233 support Damien Le Moal
@ 2021-07-15  0:48 ` Damien Le Moal
  2021-07-23 22:25 ` [Buildroot] [PATCH v2 0/9] Add RISC-V NOMMU and Canaan K210 SoC support Arnout Vandecappelle
  9 siblings, 0 replies; 23+ messages in thread
From: Damien Le Moal @ 2021-07-15  0:48 UTC (permalink / raw)
  To: buildroot

Add a generic board/canaan/k210-common/README.md file documenting how to
generate and install buildroot images for the Canaan K210 SoC based
boards. A simple README.md file pointing to this generic documentation
is also added under each K210 SoC board directory.

Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
---
 board/canaan/k210-common/README.md | 318 +++++++++++++++++++++++++++++
 board/canaan/kd233/README.md       |   4 +
 board/sipeed/maix-bit/README.md    |   4 +
 board/sipeed/maix-dock/README.md   |   4 +
 board/sipeed/maix-go/README.md     |   4 +
 board/sipeed/maixduino/README.md   |   4 +
 6 files changed, 338 insertions(+)
 create mode 100644 board/canaan/k210-common/README.md
 create mode 100644 board/canaan/kd233/README.md
 create mode 100644 board/sipeed/maix-bit/README.md
 create mode 100644 board/sipeed/maix-dock/README.md
 create mode 100644 board/sipeed/maix-go/README.md
 create mode 100644 board/sipeed/maixduino/README.md

diff --git a/board/canaan/k210-common/README.md b/board/canaan/k210-common/README.md
new file mode 100644
index 0000000000..b9a4eca3b0
--- /dev/null
+++ b/board/canaan/k210-common/README.md
@@ -0,0 +1,318 @@
+# Canaan Kendryte K210 SoC Based Board Support
+
+Buildroot provides support for Canaan RISC-V Kendryte K210 SoC based boards.
+Configurations for different K210 Soc board variants are available. The boards
+supported are as follows.
+
+* From Sipeed: MAIX Bit, MAIX Dock (Dan Dock), MAIX Go and MAIXDUINO boards.
+
+* From Canaan: KD233 development board.
+
+For each board, two configurations are provided:
+
+* Configuration to build a bootable kernel image with built-in initramfs root
+file system (SD card is not used)
+
+* Configuration to build a bootable kernel image with the root file system
+on the board SD card.
+
+In all cases, the build process generates a bootable kernel image that can be
+directly flashed to the board boot flash. A boot loader (e.g. U-Boot) and
+OpenSBI are not necessary.
+
+## Bootable Kernel Image With A Built-In Initramfs Root File System
+
+The following table lists the default configuration provided for each board
+supported.
+
+| Board vendor and model | configuration name          |
+| ---------------------- | --------------------------- |
+| Canaan KD233           | canaan_kd233_defconfig      |
+| Sipeed MAIX bit        | sipeed_maix_bit_defconfig   |
+| Sipeed MAIX Go         | sipeed_maix_go_defconfig    |
+| Sipeed MAIX dock       | sipeed_maix_dock_defconfig  |
+| Sipeed MAIXDUINO       | sipeed_maixduino_defconfig  |
+
+The build procedure is similar for all boards. The steps to create the kernel
+bootable image are as follows:
+
+```
+$ make <config name>
+$ make
+```
+
+The build process will generate the bootable binary image file
+*output/images/loader.bin*. This image file must be written to the board boot
+flash using the
+[Sipeed kflash python utility](https://github.com/sipeed/kflash.py).
+
+```
+$ sudo python3 kflash.py -p /dev/ttyUSB0 -b 1500000 -t output/images/loader.bin
+```
+
+The above command will open a terminal console and reboot the board once the
+image is written. The output will be similar to the following (example obtained
+with the Sipeed MAIX Bit board).
+
+```
+[INFO] COM Port Selected Manually:  /dev/ttyUSB0
+[INFO] Default baudrate is 115200 , later it may be changed to the value you set.
+[INFO] Trying to Enter the ISP Mode...
+._
+[INFO] Automatically detected goE/kd233
+
+[INFO] Greeting Message Detected, Start Downloading ISP
+Downloading ISP: |=================================================================| 100.0% 10kiB/s
+[INFO] Booting From 0x80000000
+[INFO] Wait For 0.1 second for ISP to Boot
+[INFO] Boot to Flashmode Successfully
+[INFO] Selected Baudrate:  1500000
+[INFO] Baudrate changed, greeting with ISP again ...
+[INFO] Boot to Flashmode Successfully
+[INFO] Selected Flash:  On-Board
+[INFO] Initialization flash Successfully
+Programming BIN: |=================================================================| 100.0% 50kiB/s
+[INFO] Rebooting...
+--- forcing DTR inactive
+--- forcing RTS inactive
+--- Miniterm on /dev/ttyUSB0  115200,8,N,1 ---
+--- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
+[    0.000000] Linux version 5.13.0 (xxx at yyy.com) (riscv64-buildroot-linux-uclibc-gcc.br_real (Buildroot 2021.05-rc3-447-g26fab79296-dirty) 11.1.0, GNU ld (GNU Binutils) 2.32) #2 SMP Fri Jul 9 10:59:05 JST 2021
+[    0.000000] Machine model: SiPeed MAIX BiT
+[    0.000000] earlycon: sifive0 at MMIO 0x0000000038000000 (options '115200n8')
+[    0.000000] printk: bootconsole [sifive0] enabled
+[    0.000000] Zone ranges:
+[    0.000000]   DMA32    [mem 0x0000000080000000-0x00000000807fffff]
+[    0.000000]   Normal   empty
+[    0.000000] Movable zone start for each node
+[    0.000000] Early memory node ranges
+[    0.000000]   node   0: [mem 0x0000000080000000-0x00000000807fffff]
+[    0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x00000000807fffff]
+[    0.000000] riscv: ISA extensions acdfim
+[    0.000000] riscv: ELF capabilities acdfim
+[    0.000000] percpu: max_distance=0x18000 too large for vmalloc space 0x0
+[    0.000000] percpu: Embedded 12 pages/cpu s19360 r0 d29792 u49152
+[    0.000000] Built 1 zonelists, mobility grouping off.  Total pages: 2020
+[    0.000000] Kernel command line: earlycon console=ttySIF0
+[    0.000000] Dentry cache hash table entries: 1024 (order: 1, 8192 bytes, linear)
+[    0.000000] Inode-cache hash table entries: 512 (order: 0, 4096 bytes, linear)
+[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
+[    0.000000] Memory: 6052K/8192K available (950K kernel code, 140K rwdata, 200K rodata, 480K init, 66K bss, 2140K reserved, 0K cma-reserved)
+[    0.000000] rcu: Hierarchical RCU implementation.
+[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
+[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
+[    0.000000] riscv-intc: 64 local interrupts mapped
+[    0.000000] plic: interrupt-controller at c000000: mapped 65 interrupts with 2 handlers for 2 contexts.
+[    0.000000] k210-clk: clock-controller: CPU running at 390 MHz
+[    0.000000] clint: timer at 2000000: timer running at 7800000 Hz
+[    0.000000] clocksource: clint_clocksource: mask: 0xffffffffffffffff max_cycles: 0x3990be68b, max_idle_ns: 881590404272 ns
+[    0.000002] sched_clock: 64 bits at 7MHz, resolution 128ns, wraps every 4398046511054ns
+[    0.008183] Calibrating delay loop (skipped), value calculated using timer frequency.. 15.60 BogoMIPS (lpj=31200)
+[    0.018250] pid_max: default: 4096 minimum: 301
+[    0.022865] Mount-cache hash table entries: 512 (order: 0, 4096 bytes, linear)
+[    0.029971] Mountpoint-cache hash table entries: 512 (order: 0, 4096 bytes, linear)
+[    0.040316] rcu: Hierarchical SRCU implementation.
+[    0.045151] smp: Bringing up secondary CPUs ...
+[    0.050271] smp: Brought up 1 node, 2 CPUs
+[    0.054355] devtmpfs: initialized
+[    0.071852] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
+[    0.080926] pinctrl core: initialized pinctrl subsystem
+[    0.117980] clocksource: Switched to clocksource clint_clocksource
+[    0.130392] workingset: timestamp_bits=62 max_order=11 bucket_order=0
+[    0.162498] k210-fpioa 502b0000.pinmux: K210 FPIOA pin controller
+[    0.175231] k210-sysctl 50440000.syscon: K210 system controller
+[    0.182048] k210-rst 50440000.syscon:reset-controller: K210 reset controller
+[    0.189335] 38000000.serial: ttySIF0 at MMIO 0x38000000 (irq = 1, base_baud = 115200) is a SiFive UART v0
+[    0.198258] printk: console [ttySIF0] enabled
+[    0.198258] printk: console [ttySIF0] enabled
+[    0.206899] printk: bootconsole [sifive0] disabled
+[    0.206899] printk: bootconsole [sifive0] disabled
+[    0.218821] cacheinfo: Unable to detect cache hierarchy for CPU 0
+[    0.236193] i2c /dev entries driver
+[    0.240804] random: get_random_bytes called from 0x000000008000586e with crng_init=0
+[    0.253005] Freeing unused kernel memory: 476K
+[    0.256754] This architecture does not have kernel memory protection.
+[    0.263177] Run /init as init process
+          __  _
+         / / (_) ____   _   _ __  __
+        / /  | ||  _ \ | | | |\ \/ /
+       / /___| || | | || |_| | >  <
+      /_____/|_||_| |_| \____|/_/\_\
+        RISC-V Kendryte K210 NOMMU
+
+
+BusyBox v1.33.1 (2021-07-09 10:58:24 JST) hush - the humble shell
+Enter 'help' for a list of built-in commands.
+
+/ #
+```
+
+To open a console without re-flashing the board, *miniterm.py* can be used.
+```
+sudo miniterm.py --raw --eol=LF /dev/ttyUSB0 115200
+```
+
+The options *--raw --eol=LF* are added here to avoid a double carriage return
+each time a command is entered.
+
+## Bootable Kernel Image With the Root File System On SD Card
+
+The following table lists the default configurations provided for the supported
+boards.
+
+| Board vendor and model | configuration name                 |
+| ---------------------- | ---------------------------------- |
+| Canaan KD233           | canaan_kd233_sdcard_defconfig      |
+| Sipeed MAIX bit        | sipeed_maix_bit_sdcard_defconfig   |
+| Sipeed MAIX Go         | sipeed_maix_go_sdcard_defconfig    |
+| Sipeed MAIX dock       | sipeed_maix_dock_sdcard_defconfig  |
+| Sipeed MAIXDUINO       | sipeed_maixduino_sdcard_defconfig  |
+
+The build procedure is similar to the built-in initramfs case.
+
+```
+$ make <config name>
+$ make
+```
+
+The build process will generate two files under the *output/images* directory.
+
+* *loader.bin*: This bootable kernel image file.
+
+* *rootfs.ext2*: ext2 (rev1) SD card image.
+
+Before flashing the kernel bootable image, the SD card must be prepared.
+
+```
+$ sudo dd if=output/images/rootfs.ext2 of=/dev/sdX1 bs=1M
+$ sync
+$ eject /dev/sdX
+```
+
+Where */dev/sdX* is the device file name of the SD card. The SD card must have
+at least one partition of at least 60 MB. Once completed, the SD card can be
+inserted into the board and the kernel bootable image file written to the board
+boot flash, using
+[Sipeed kflash python utility](https://github.com/sipeed/kflash.py).
+
+```
+$ sudo python3 kflash.py -p /dev/ttyUSB0 -b 1500000 -t output/image/loader.bin
+```
+
+The above command will open a terminal console and reboot the board once the
+image is written. The output will be similar to the following (example obtained
+with the Sipeed MAIX Bit board).
+
+```
+[INFO] COM Port Selected Manually:  /dev/ttyUSB0 
+[INFO] Default baudrate is 115200 , later it may be changed to the value you set. 
+[INFO] Trying to Enter the ISP Mode... 
+._
+[INFO] Automatically detected goE/kd233 
+
+[INFO] Greeting Message Detected, Start Downloading ISP 
+Downloading ISP: |=================================================================| 100.0% 10kiB/s
+[INFO] Booting From 0x80000000 
+[INFO] Wait For 0.1 second for ISP to Boot 
+[INFO] Boot to Flashmode Successfully 
+[INFO] Selected Baudrate:  1500000 
+[INFO] Baudrate changed, greeting with ISP again ...  
+[INFO] Boot to Flashmode Successfully 
+[INFO] Selected Flash:  On-Board 
+[INFO] Initialization flash Successfully 
+Programming BIN: |=================================================================| 100.0% 50kiB/s
+[INFO] Rebooting... 
+--- forcing DTR inactive
+--- forcing RTS inactive
+--- Miniterm on /dev/ttyUSB0  115200,8,N,1 ---
+--- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
+[    0.000000] Linux version 5.13.0 (damien at twashi.fujisawa.hgst.com) (riscv64-buildroot-linux-uclibc-gcc.br_real (Buildroot 2021.05-rc3-447-g26fab79296-dirty) 11.1.0, GNU ld (GNU Binutils) 2.32) #1 SMP Fri Jul 9 14:50:18 JST 2021
+[    0.000000] Machine model: SiPeed MAIX BiT
+[    0.000000] earlycon: sifive0 at MMIO 0x0000000038000000 (options '115200n8')
+[    0.000000] printk: bootconsole [sifive0] enabled
+[    0.000000] Zone ranges:
+[    0.000000]   DMA32    [mem 0x0000000080000000-0x00000000807fffff]
+[    0.000000]   Normal   empty
+[    0.000000] Movable zone start for each node
+[    0.000000] Early memory node ranges
+[    0.000000]   node   0: [mem 0x0000000080000000-0x00000000807fffff]
+[    0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x00000000807fffff]
+[    0.000000] riscv: ISA extensions acdfim
+[    0.000000] riscv: ELF capabilities acdfim
+[    0.000000] percpu: max_distance=0x18000 too large for vmalloc space 0x0
+[    0.000000] percpu: Embedded 12 pages/cpu s19488 r0 d29664 u49152
+[    0.000000] Built 1 zonelists, mobility grouping off.  Total pages: 2020
+[    0.000000] Kernel command line: earlycon console=ttySIF0 rootdelay=2 root=/dev/mmcblk0p1 ro
+[    0.000000] Dentry cache hash table entries: 1024 (order: 1, 8192 bytes, linear)
+[    0.000000] Inode-cache hash table entries: 512 (order: 0, 4096 bytes, linear)
+[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
+[    0.000000] Memory: 6184K/8192K available (1149K kernel code, 151K rwdata, 232K rodata, 105K init, 69K bss, 2008K reserved, 0K cma-reserved)
+[    0.000000] rcu: Hierarchical RCU implementation.
+[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
+[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
+[    0.000000] riscv-intc: 64 local interrupts mapped
+[    0.000000] plic: interrupt-controller at c000000: mapped 65 interrupts with 2 handlers for 2 contexts.
+[    0.000000] k210-clk: clock-controller: CPU running at 390 MHz
+[    0.000000] clint: timer at 2000000: timer running at 7800000 Hz
+[    0.000000] clocksource: clint_clocksource: mask: 0xffffffffffffffff max_cycles: 0x3990be68b, max_idle_ns: 881590404272 ns
+[    0.000001] sched_clock: 64 bits at 7MHz, resolution 128ns, wraps every 4398046511054ns
+[    0.008179] Calibrating delay loop (skipped), value calculated using timer frequency.. 15.60 BogoMIPS (lpj=31200)
+[    0.018252] pid_max: default: 4096 minimum: 301
+[    0.022859] Mount-cache hash table entries: 512 (order: 0, 4096 bytes, linear)
+[    0.029972] Mountpoint-cache hash table entries: 512 (order: 0, 4096 bytes, linear)
+[    0.040382] rcu: Hierarchical SRCU implementation.
+[    0.045234] smp: Bringing up secondary CPUs ...
+[    0.050345] smp: Brought up 1 node, 2 CPUs
+[    0.054419] devtmpfs: initialized
+[    0.071317] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
+[    0.080392] pinctrl core: initialized pinctrl subsystem
+[    0.119377] clocksource: Switched to clocksource clint_clocksource
+[    0.131238] workingset: timestamp_bits=62 max_order=11 bucket_order=0
+[    0.159389] k210-fpioa 502b0000.pinmux: K210 FPIOA pin controller
+[    0.171494] k210-sysctl 50440000.syscon: K210 system controller
+[    0.178193] k210-rst 50440000.syscon:reset-controller: K210 reset controller
+[    0.186800] 38000000.serial: ttySIF0 at MMIO 0x38000000 (irq = 1, base_baud = 115200) is a SiFive UART v0
+[    0.195764] printk: console [ttySIF0] enabled
+[    0.195764] printk: console [ttySIF0] enabled
+[    0.204377] printk: bootconsole [sifive0] disabled
+[    0.204377] printk: bootconsole [sifive0] disabled
+[    0.216056] cacheinfo: Unable to detect cache hierarchy for CPU 0
+[    0.232882] i2c /dev entries driver
+[    0.263551] mmc_spi spi2.0: SD/MMC host mmc0, no WP, no poweroff, cd polling
+[    0.271167] random: get_random_bytes called from 0x0000000080005d60 with crng_init=0
+[    0.289511] Waiting 2 sec before mounting root device...
+[    0.312217] mmc0: host does not support reading read-only switch, assuming write-enable
+[    0.319565] mmc0: new SDHC card on SPI
+[    0.326205] mmcblk0: mmc0:0000 SA16G 14.5 GiB 
+[    0.333339] random: fast init done
+[    0.337935]  mmcblk0: p1 p2
+[    2.311900] VFS: Mounted root (ext2 filesystem) readonly on device 179:1.
+[    2.321555] devtmpfs: mounted
+[    2.324099] Freeing unused kernel memory: 100K
+[    2.328227] This architecture does not have kernel memory protection.
+[    2.334652] Run /sbin/init as init process
+[    2.491565] random: crng init done
+          __  _
+         / / (_) ____   _   _ __  __
+        / /  | ||  _ \ | | | |\ \/ /
+       / /___| || | | || |_| | >  < 
+      /_____/|_||_| |_| \____|/_/\_\
+        RISC-V Kendryte K210 NOMMU
+
+
+BusyBox v1.33.1 (2021-07-09 10:58:24 JST) hush - the humble shell
+Enter 'help' for a list of built-in commands.
+
+/ # 
+```
+
+Of note is that the kernel command line arguments, specified in the kernel
+*nommu_k210_sdcard* default configuration, mount the SD card as read-only to
+avoid corruptions of the ext2 root file system. This is recommended as this
+board does not isupport clean shutdown or halt.
+
+Similarly to the initramfs build case, a console can be open without
+re-flashing the board using *miniterm.py*.
+```
+sudo miniterm.py --raw --eol=LF /dev/ttyUSB0 115200
+```
diff --git a/board/canaan/kd233/README.md b/board/canaan/kd233/README.md
new file mode 100644
index 0000000000..e622d121c2
--- /dev/null
+++ b/board/canaan/kd233/README.md
@@ -0,0 +1,4 @@
+# Canaan KD233 Board
+
+See the common documentation for
+[Canaan K210 SoC based boards](../k210-common/README.md).
diff --git a/board/sipeed/maix-bit/README.md b/board/sipeed/maix-bit/README.md
new file mode 100644
index 0000000000..c9132bcc76
--- /dev/null
+++ b/board/sipeed/maix-bit/README.md
@@ -0,0 +1,4 @@
+# Sipeed MAIX-Bit Board
+
+See the common documentation for
+[Canaan K210 SoC based boards](../../canaan/k210-common/README.md).
diff --git a/board/sipeed/maix-dock/README.md b/board/sipeed/maix-dock/README.md
new file mode 100644
index 0000000000..fec6fb9939
--- /dev/null
+++ b/board/sipeed/maix-dock/README.md
@@ -0,0 +1,4 @@
+# Sipeed MAIX-Dock Board
+
+See the common documentation for
+[Canaan K210 SoC based boards](../../canaan/k210-common/README.md).
diff --git a/board/sipeed/maix-go/README.md b/board/sipeed/maix-go/README.md
new file mode 100644
index 0000000000..1f14f65410
--- /dev/null
+++ b/board/sipeed/maix-go/README.md
@@ -0,0 +1,4 @@
+# Sipeed MAIX-Go Board
+
+See the common documentation for
+[Canaan K210 SoC based boards](../../canaan/k210-common/README.md).
diff --git a/board/sipeed/maixduino/README.md b/board/sipeed/maixduino/README.md
new file mode 100644
index 0000000000..daf0f763c9
--- /dev/null
+++ b/board/sipeed/maixduino/README.md
@@ -0,0 +1,4 @@
+# Sipeed MAIXDUINO Board
+
+See the common documentation for
+[Canaan K210 SoC based boards](../../canaan/k210-common/README.md).
-- 
2.31.1

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [Buildroot] [PATCH v2 3/9] package make: build RISC-V nommu builds as linux
  2021-07-15  0:48 ` [Buildroot] [PATCH v2 3/9] package make: build RISC-V nommu builds as linux Damien Le Moal
@ 2021-07-15  4:45   ` Alistair Francis
  0 siblings, 0 replies; 23+ messages in thread
From: Alistair Francis @ 2021-07-15  4:45 UTC (permalink / raw)
  To: buildroot

On Thu, Jul 15, 2021 at 10:51 AM Damien Le Moal <damien.lemoal@wdc.com> wrote:
>
> From: Christoph Hellwig <hch@lst.de>
>
> Using *-uclinux-* seems like an only partially followed convention.
> And at least for RISC-V gcc doesn't know about uclinux tuples, so
> switch back to the normal Linux one for now.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
>
> [Damien]
> * Make the change conditional on BR2_riscv arch being "y".
>
> Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>

Reviewed-by: Alistair Francis <alistair.francis@wdc.com>

Alistair

> ---
>  package/Makefile.in | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/package/Makefile.in b/package/Makefile.in
> index 86db62ba5b..6de673a085 100644
> --- a/package/Makefile.in
> +++ b/package/Makefile.in
> @@ -39,8 +39,9 @@ endif
>  # Compute GNU_TARGET_NAME
>  GNU_TARGET_NAME = $(ARCH)-$(TARGET_VENDOR)-$(TARGET_OS)-$(LIBC)$(ABI)
>
> -# FLAT binary format needs uclinux
> -ifeq ($(BR2_BINFMT_FLAT),y)
> +# FLAT binary format needs uclinux, except RISC-V which needs
> +# the regular linux name.
> +ifeq ($(BR2_BINFMT_FLAT):$(BR2_riscv),y:)
>  TARGET_OS = uclinux
>  else
>  TARGET_OS = linux
> --
> 2.31.1
>
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Buildroot] [PATCH v2 1/9] arch/config: Make RISC-V MMU optional
  2021-07-15  0:48 ` [Buildroot] [PATCH v2 1/9] arch/config: Make RISC-V MMU optional Damien Le Moal
@ 2021-07-17 15:46   ` Yann E. MORIN
  0 siblings, 0 replies; 23+ messages in thread
From: Yann E. MORIN @ 2021-07-17 15:46 UTC (permalink / raw)
  To: buildroot

Damien, All,

On 2021-07-15 09:48 +0900, Damien Le Moal spake thusly:
> Linux supports No-MMU RISC-V since kernel version 5.8. Make MMU optional
> to enable building for RISC-V boards that do not have one.
> 
> Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
> Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
> ---
>  arch/Config.in | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/Config.in b/arch/Config.in
> index 1853e26bb4..82d3b01980 100644
> --- a/arch/Config.in
> +++ b/arch/Config.in
> @@ -210,7 +210,7 @@ config BR2_powerpc64le
>  
>  config BR2_riscv
>  	bool "RISCV"
> -	select BR2_ARCH_HAS_MMU_MANDATORY
> +	select BR2_ARCH_HAS_MMU_OPTIONAL

I am a bit confused with this: the elf2flt patch only adds support for
riscv64 (excerpts):

    Makefile.in:
    +else ifeq ($(strip $(CPU)),riscv64)
and:
    elf2flt.c:
    +#elif defined(TARGET_riscv64)
    +#include <elf/riscv.h>
and:
    +#elif defined(TARGET_riscv64)
    +#define ARCH    "riscv64"

However, this change will make it possible to select noMMU for riscv32
too... Is this supposed to be supported?

If not, then I think the following patch would be a better starting
point to add noMMU support only for riscv64:

    diff --git a/arch/Config.in b/arch/Config.in
    index 1853e26bb4..2e95b6e76c 100644
    --- a/arch/Config.in
    +++ b/arch/Config.in
    @@ -210,7 +210,6 @@ config BR2_powerpc64le
     
     config BR2_riscv
     	bool "RISCV"
    -	select BR2_ARCH_HAS_MMU_MANDATORY
     	select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
     	help
     	  RISC-V is an open, free Instruction Set Architecture created
    diff --git a/arch/Config.in.riscv b/arch/Config.in.riscv
    index 1fc20e5de7..e6436d7c39 100644
    --- a/arch/Config.in.riscv
    +++ b/arch/Config.in.riscv
    @@ -71,10 +71,12 @@ choice
     
     config BR2_RISCV_32
     	bool "32-bit"
    +	select BR2_ARCH_HAS_MMU_MANDATORY
     
     config BR2_RISCV_64
     	bool "64-bit"
     	select BR2_ARCH_IS_64
    +	select BR2_ARCH_HAS_MMU_OPTIONAL
     
     endchoice
     

Also, the ordering is weird: first you allow a noMMU configuration, then
you add support for it in elf2flt. If only the first patch (this one) is
applied, and not the second (e.g. because there is an issue with it),
then the build is broken.

Ditto with the patch to fix TARGET_OS.

The series should be bisectable, i.e. we should be able to apply number
of the first patches without breaking the build.

So, instead, I would think it is better to:

 1. backport the elf2flt upstream support for riscv(64--only?)
 2. fix TARGET_OS for noMMU riscv(64-only?)
 3. allow selecting noMMU for riscv(64-only?)

And I think that patches 2 and 3 could even be squashed together. But I
am not opposed to having them separate either; do as you feel best.

Also, I wil be replying to the elft2flt patch separately...

Regards,
Yann E. MORIN.

>  	select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
>  	help
>  	  RISC-V is an open, free Instruction Set Architecture created
> -- 
> 2.31.1
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Buildroot] [PATCH v2 2/9] package/elf2flt: add RISC-V support
  2021-07-15  0:48 ` [Buildroot] [PATCH v2 2/9] package/elf2flt: add RISC-V support Damien Le Moal
@ 2021-07-17 15:54   ` Yann E. MORIN
  0 siblings, 0 replies; 23+ messages in thread
From: Yann E. MORIN @ 2021-07-17 15:54 UTC (permalink / raw)
  To: buildroot

Damien, All,

On 2021-07-15 09:48 +0900, Damien Le Moal spake thusly:
> From: Christoph Hellwig <hch@lst.de>
> 
> Enable selecting elf2flt for RISC-V no MMU builds and add support for
> it.
> 
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
> ---
>  .../0004-elf2flt-add-riscv-support.patch      | 293 ++++++++++++++++++
>  package/elf2flt/Config.in.host                |   2 +-
>  2 files changed, 294 insertions(+), 1 deletion(-)
>  create mode 100644 package/elf2flt/0004-elf2flt-add-riscv-support.patch
> 
> diff --git a/package/elf2flt/0004-elf2flt-add-riscv-support.patch b/package/elf2flt/0004-elf2flt-add-riscv-support.patch
> new file mode 100644
> index 0000000000..4a0bc6e4fa
> --- /dev/null
> +++ b/package/elf2flt/0004-elf2flt-add-riscv-support.patch
> @@ -0,0 +1,293 @@
> +From d096b496525e487b356ac180a7168c18703c1c43 Mon Sep 17 00:00:00 2001
> +From: Christoph Hellwig <hch@lst.de>
> +Date: Wed, 9 Sep 2020 17:31:33 +0900
> +Subject: [PATCH] elf2flt: add riscv support
> +
> +We need a new linker script - riscv has a global_pointer and is
> +very picky about some section ordering.
> +
> +Signed-off-by: Christoph Hellwig <hch@lst.de>
> +Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>

You should add a reference to the upstream PR:
    https://github.com/uclinux-dev/elf2flt/pull/19

> +---
> + Makefile.in        |   4 +-
> + elf2flt.c          |  22 +++++
> + riscv64-elf2flt.ld | 198 +++++++++++++++++++++++++++++++++++++++++++++
> + 3 files changed, 223 insertions(+), 1 deletion(-)
> + create mode 100644 riscv64-elf2flt.ld
> +
> +diff --git a/Makefile.in b/Makefile.in
> +index 0529c7f..121a2a7 100644
> +--- a/Makefile.in
> ++++ b/Makefile.in
> +@@ -44,7 +44,9 @@ endif
> + LDFILE= elf2flt.ld
> + ifeq ($(strip $(CPU)),e1)
> + SRC_LDFILE= $(srcdir)/$(CPU)-elf2flt.ld
> +-else 
> ++else ifeq ($(strip $(CPU)),riscv64)
> ++SRC_LDFILE= $(srcdir)/$(CPU)-elf2flt.ld

Here: this looks like it really is specific to riscv64 only, and would
not add support for riscv32...

> ++else
> + SRC_LDFILE= elf2flt.ld
> + endif
> + 
> +diff --git a/elf2flt.c b/elf2flt.c
> +index 3bcf4fe..0adba12 100644
> +--- a/elf2flt.c
> ++++ b/elf2flt.c
> +@@ -81,6 +81,8 @@ const char *elf2flt_progname;
> + #include <elf/v850.h>
> + #elif defined(TARGET_xtensa)
> + #include <elf/xtensa.h>
> ++#elif defined(TARGET_riscv64)
> ++#include <elf/riscv.h>

Ditto.

> + #endif
> + 
> + #if defined(__MINGW32__)
> +@@ -123,6 +125,8 @@ const char *elf2flt_progname;
> + #define ARCH	"nios2"
> + #elif defined(TARGET_xtensa)
> + #define ARCH	"xtensa"
> ++#elif defined(TARGET_riscv64)
> ++#define ARCH    "riscv64"

Ditto.

And: TAB between ARCH and its value. ;-)
(yes, I've read the review thread on github! ;-) )

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [Buildroot] [PATCH v2 4/9] board: Add Sipeed MAIX-bit support
  2021-07-15  0:48 ` [Buildroot] [PATCH v2 4/9] board: Add Sipeed MAIX-bit support Damien Le Moal
@ 2021-07-23 22:25   ` Arnout Vandecappelle
  2021-07-23 22:35     ` Thomas Petazzoni
  2021-07-23 22:40     ` Damien Le Moal
  0 siblings, 2 replies; 23+ messages in thread
From: Arnout Vandecappelle @ 2021-07-23 22:25 UTC (permalink / raw)
  To: Damien Le Moal, buildroot, Thomas Petazzoni, Mark Corbin; +Cc: Alistair Francis



On 15/07/2021 02:48, Damien Le Moal wrote:
> Add two configuration files to support the RISC-V Canaan K210 SoC based
> Sipeed MAIX-bit board.
> 
> The first configuration file, sipeed_maix_bit_defconfig, enables
> building a bootable kernel 5.13 image with the root file system
> initramfs linked with the kernel. This configuration uses the busybox
> busybox-tiny-initramfs.config configuration to reduce the size of the
> busybox executable (to save memory when executing shell commands).
> 
> The second configuration file (sipeed_maix_bit_sdcard_defconfig) builds
> a bootable kernel 5.13 image that uses the board SD card for the root
> file system. This configuration uses the default busybox minimal
> configuration.
> 
> Both configurations share the same device tree which is provided by and
> built-in the kernel. This configuration is set with the kernel
> configuration snippet provided by
> board/sipeed/maix-bit/linux-dtb.config.
> 
> Both configurations also share the same init script provided using the
> rootfs_overlay root file system overlay. This init script replaces the
> default init process which causes failures due to excessive memory
> usage.
> 
> busybox-tiny-initramfs.config and the init script overlay will be
> reused for all Canaan K210 SoC based boards. These 2 files are thus
> placed in the directory board/canaan/k210-common while the Sipeed
> MAIX-bit board specific kernel config snippet is added under the
> directory board/sipeed/maxi-bit.
> 
> Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
> Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
> ---
>  .../k210-common/busybox-tiny-initramfs.config | 1183 +++++++++++++++++
>  .../k210-common/rootfs_overlay/usr/sbin/init  |   26 +
>  board/sipeed/maix-bit/linux-dtb.config        |    2 +
>  configs/sipeed_maix_bit_defconfig             |   23 +
>  configs/sipeed_maix_bit_sdcard_defconfig      |   23 +
>  5 files changed, 1257 insertions(+)
>  create mode 100644 board/canaan/k210-common/busybox-tiny-initramfs.config
>  create mode 100755 board/canaan/k210-common/rootfs_overlay/usr/sbin/init
>  create mode 100644 board/sipeed/maix-bit/linux-dtb.config
>  create mode 100644 configs/sipeed_maix_bit_defconfig
>  create mode 100644 configs/sipeed_maix_bit_sdcard_defconfig
> 
> diff --git a/board/canaan/k210-common/busybox-tiny-initramfs.config b/board/canaan/k210-common/busybox-tiny-initramfs.config
> new file mode 100644
> index 0000000000..f0367e5460
> --- /dev/null
> +++ b/board/canaan/k210-common/busybox-tiny-initramfs.config

 Wouldn't it be better to start from busybox-minimal.config and just add a
fragment that removes the unnecessary options?

[snip]
> diff --git a/board/canaan/k210-common/rootfs_overlay/usr/sbin/init b/board/canaan/k210-common/rootfs_overlay/usr/sbin/init
> new file mode 100755
> index 0000000000..286346ddc3
> --- /dev/null
> +++ b/board/canaan/k210-common/rootfs_overlay/usr/sbin/init

 /sbin/init, not /usr/sbin/init. Doesn't matter because you have merged usr, but
it's better to follow the standards.

> @@ -0,0 +1,26 @@
> +#!/bin/sh
> +
> +# Mount sysfs and procfs
> +/bin/mount -t sysfs sysfs /sys
> +/bin/mount -t proc proc /proc
> +
> +# Use the /dev/console device node from devtmpfs if possible to not
> +# confuse glibc's ttyname_r().
> +# This may fail (E.G. booted with console=), and errors from exec will
> +# terminate the shell, so use a subshell for the test
> +if (exec 0</dev/console) 2>/dev/null; then
> +    exec 0</dev/console
> +    exec 1>/dev/console
> +    exec 2>/dev/console
> +fi
> +
> +# Print a fun logo :)
> +echo "          __  _"
> +echo "         / / (_) ____   _   _ __  __"
> +echo "        / /  | ||  _ \\ | | | |\\ \\/ /"
> +echo "       / /___| || | | || |_| | >  < "
> +echo "      /_____/|_||_| |_| \\____|/_/\\_\\"
> +echo "        RISC-V Kendryte K210 NOMMU"
> +
> +# Start interactive shell
> +exec /bin/sh
> diff --git a/board/sipeed/maix-bit/linux-dtb.config b/board/sipeed/maix-bit/linux-dtb.config
> new file mode 100644
> index 0000000000..de2f8fd074
> --- /dev/null
> +++ b/board/sipeed/maix-bit/linux-dtb.config
> @@ -0,0 +1,2 @@
> +CONFIG_SOC_CANAAN_K210_DTB_BUILTIN=y
> +CONFIG_SOC_CANAAN_K210_DTB_SOURCE="sipeed_maix_bit"
> diff --git a/configs/sipeed_maix_bit_defconfig b/configs/sipeed_maix_bit_defconfig
> new file mode 100644
> index 0000000000..94920c5c84
> --- /dev/null
> +++ b/configs/sipeed_maix_bit_defconfig
> @@ -0,0 +1,23 @@
> +BR2_riscv=y
> +# BR2_COMPILER_PARANOID_UNSAFE_PATH is not set
> +BR2_KERNEL_HEADERS_5_13=y
> +# BR2_UCLIBC_INSTALL_UTILS is not set
> +BR2_GCC_VERSION_11_X=y

 If GCC 11 is really needed instead of the default, please explain why in the
commit message.

> +BR2_GCC_ENABLE_LTO=y
> +BR2_PACKAGE_HOST_ELF2FLT=y
> +# BR2_USE_MMU is not set
> +BR2_TARGET_GENERIC_HOSTNAME=""
> +BR2_INIT_NONE=y
> +BR2_ROOTFS_MERGED_USR=y

 Why?

> +BR2_SYSTEM_DEFAULT_PATH="/bin:/sbin:/usr/bin:/usr/sbin"

 Why is this needed?

> +BR2_ROOTFS_OVERLAY="board/canaan/k210-common/rootfs_overlay"
> +BR2_LINUX_KERNEL=y
> +BR2_LINUX_KERNEL_DEFCONFIG="nommu_k210"
> +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/sipeed/maix-bit/linux-dtb.config"

 This doesn't seem to be part of this patch?

> +BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y
> +BR2_LINUX_KERNEL_IMAGE_NAME="loader.bin"
> +BR2_PACKAGE_BUSYBOX_CONFIG="board/canaan/k210-common/busybox-tiny-initramfs.config"
> +BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y

 Why do you set this? No others are selected, are they?

> +# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set
> +BR2_TARGET_ROOTFS_INITRAMFS=y

 This will install another /init script that ends up exec'ing /sbin/init. Maybe
it would be better to replace that /init script as well (just symlink /init ->
sbin/init).


 Regards,
 Arnout

> +# BR2_TARGET_ROOTFS_TAR is not set
> diff --git a/configs/sipeed_maix_bit_sdcard_defconfig b/configs/sipeed_maix_bit_sdcard_defconfig
> new file mode 100644
> index 0000000000..eba06bcbc6
> --- /dev/null
> +++ b/configs/sipeed_maix_bit_sdcard_defconfig
> @@ -0,0 +1,23 @@
> +BR2_riscv=y
> +# BR2_COMPILER_PARANOID_UNSAFE_PATH is not set
> +BR2_KERNEL_HEADERS_5_13=y
> +# BR2_UCLIBC_INSTALL_UTILS is not set
> +BR2_GCC_VERSION_11_X=y
> +BR2_GCC_ENABLE_LTO=y
> +BR2_PACKAGE_HOST_ELF2FLT=y
> +# BR2_USE_MMU is not set
> +BR2_TARGET_GENERIC_HOSTNAME=""
> +BR2_INIT_NONE=y
> +BR2_ROOTFS_MERGED_USR=y
> +BR2_SYSTEM_DEFAULT_PATH="/bin:/sbin:/usr/bin:/usr/sbin"
> +BR2_ROOTFS_OVERLAY="board/canaan/k210-common/rootfs_overlay"
> +BR2_LINUX_KERNEL=y
> +BR2_LINUX_KERNEL_DEFCONFIG="nommu_k210_sdcard"
> +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/sipeed/maix-bit/linux-dtb.config"
> +BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y
> +BR2_LINUX_KERNEL_IMAGE_NAME="loader.bin"
> +BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox-minimal.config"
> +BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
> +# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set
> +BR2_TARGET_ROOTFS_EXT2=y
> +# BR2_TARGET_ROOTFS_TAR is not set
> 
_______________________________________________
buildroot mailing list
buildroot@busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [Buildroot] [PATCH v2 0/9] Add RISC-V NOMMU and Canaan K210 SoC support
  2021-07-15  0:48 [Buildroot] [PATCH v2 0/9] Add RISC-V NOMMU and Canaan K210 SoC support Damien Le Moal
                   ` (8 preceding siblings ...)
  2021-07-15  0:48 ` [Buildroot] [PATCH v2 9/9] board: Document Canaan K210 based boards support Damien Le Moal
@ 2021-07-23 22:25 ` Arnout Vandecappelle
  2021-07-23 22:40   ` Damien Le Moal
  9 siblings, 1 reply; 23+ messages in thread
From: Arnout Vandecappelle @ 2021-07-23 22:25 UTC (permalink / raw)
  To: Damien Le Moal, buildroot, Thomas Petazzoni, Mark Corbin; +Cc: Alistair Francis



On 15/07/2021 02:48, Damien Le Moal wrote:
> This series adds support for building RISC-V NOMMU kernel bootable
> images for boards using the Cannan Kendryte K210 SoC.
> 
> The first patch makes MMU builds optional for RISC-V. The second patch
> enables RV64 support in elf2flt (patch sent to uclinux-dev). The third
> patch changes the base name of the toolchain to avoid build errors.
> 
> The following 5 patches add default build configuration files for
> various boards: MAIX-bit, MAIX-go, MAIX-dock (Dan Dock) and MAIXDUINO
> from Sipeed and the Canaan KD233 development board.
> 
> Finally, patch 9 documents how to build and install images for these
> boards.
> 
> Changes from v1:
> * Rebased on latest master
> * Simplified patch 3 as suggested by Baruch
> * Fixed typos in documentation (patch 9)
> * Added reviewed-by tags
> 
> Christoph Hellwig (2):
>   package/elf2flt: add RISC-V support
>   package make: build RISC-V nommu builds as linux
> 
> Damien Le Moal (7):
>   arch/config: Make RISC-V MMU optional
>   board: Add Sipeed MAIX-bit support
>   board: Add Sipeed MAIX-Go support
>   board: Add Sipeed MAIXDUINO support
>   board: Add Sipeed MAIX-Dock support
>   board: Add Canaan KD233 support
>   board: Document Canaan K210 based boards support

 Given the feedback from Yann and from me, I've marked the series as Changes
Requested in patchwork.

 Regards,
 Arnout

> 
>  arch/Config.in                                |    2 +-
>  board/canaan/k210-common/README.md            |  318 +++++
>  .../k210-common/busybox-tiny-initramfs.config | 1183 +++++++++++++++++
>  .../k210-common/rootfs_overlay/usr/sbin/init  |   26 +
>  board/canaan/kd233/README.md                  |    4 +
>  board/canaan/kd233/linux-dtb.config           |    2 +
>  board/sipeed/maix-bit/README.md               |    4 +
>  board/sipeed/maix-bit/linux-dtb.config        |    2 +
>  board/sipeed/maix-dock/README.md              |    4 +
>  board/sipeed/maix-dock/linux-dtb.config       |    2 +
>  board/sipeed/maix-go/README.md                |    4 +
>  board/sipeed/maix-go/linux-dtb.config         |    2 +
>  board/sipeed/maixduino/README.md              |    4 +
>  board/sipeed/maixduino/linux-dtb.config       |    2 +
>  configs/canaan_kd233_defconfig                |   23 +
>  configs/canaan_kd233_sdcard_defconfig         |   23 +
>  configs/sipeed_maix_bit_defconfig             |   23 +
>  configs/sipeed_maix_bit_sdcard_defconfig      |   23 +
>  configs/sipeed_maix_dock_defconfig            |   23 +
>  configs/sipeed_maix_dock_sdcard_defconfig     |   23 +
>  configs/sipeed_maix_go_defconfig              |   23 +
>  configs/sipeed_maix_go_sdcard_defconfig       |   23 +
>  configs/sipeed_maixduino_defconfig            |   23 +
>  configs/sipeed_maixduino_sdcard_defconfig     |   23 +
>  package/Makefile.in                           |    5 +-
>  .../0004-elf2flt-add-riscv-support.patch      |  293 ++++
>  package/elf2flt/Config.in.host                |    2 +-
>  27 files changed, 2085 insertions(+), 4 deletions(-)
>  create mode 100644 board/canaan/k210-common/README.md
>  create mode 100644 board/canaan/k210-common/busybox-tiny-initramfs.config
>  create mode 100755 board/canaan/k210-common/rootfs_overlay/usr/sbin/init
>  create mode 100644 board/canaan/kd233/README.md
>  create mode 100644 board/canaan/kd233/linux-dtb.config
>  create mode 100644 board/sipeed/maix-bit/README.md
>  create mode 100644 board/sipeed/maix-bit/linux-dtb.config
>  create mode 100644 board/sipeed/maix-dock/README.md
>  create mode 100644 board/sipeed/maix-dock/linux-dtb.config
>  create mode 100644 board/sipeed/maix-go/README.md
>  create mode 100644 board/sipeed/maix-go/linux-dtb.config
>  create mode 100644 board/sipeed/maixduino/README.md
>  create mode 100644 board/sipeed/maixduino/linux-dtb.config
>  create mode 100644 configs/canaan_kd233_defconfig
>  create mode 100644 configs/canaan_kd233_sdcard_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/0004-elf2flt-add-riscv-support.patch
> 
_______________________________________________
buildroot mailing list
buildroot@busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [Buildroot] [PATCH v2 4/9] board: Add Sipeed MAIX-bit support
  2021-07-23 22:25   ` Arnout Vandecappelle
@ 2021-07-23 22:35     ` Thomas Petazzoni
  2021-07-23 22:43       ` Damien Le Moal
  2021-07-23 22:40     ` Damien Le Moal
  1 sibling, 1 reply; 23+ messages in thread
From: Thomas Petazzoni @ 2021-07-23 22:35 UTC (permalink / raw)
  To: Arnout Vandecappelle
  Cc: Damien Le Moal, Alistair Francis, Mark Corbin, buildroot

Hello,

On Sat, 24 Jul 2021 00:25:27 +0200
Arnout Vandecappelle <arnout@mind.be> wrote:

> > +++ b/board/canaan/k210-common/busybox-tiny-initramfs.config  
> 
>  Wouldn't it be better to start from busybox-minimal.config and just add a
> fragment that removes the unnecessary options?

Also, we already have a package/busybox/busybox-minimal.config. I'm not
sure we want to add zillions of "minimal" Busybox configurations.

> > +++ b/configs/sipeed_maix_bit_defconfig
> > @@ -0,0 +1,23 @@
> > +BR2_riscv=y
> > +# BR2_COMPILER_PARANOID_UNSAFE_PATH is not set

This should remain the default.

> > +BR2_KERNEL_HEADERS_5_13=y
> > +# BR2_UCLIBC_INSTALL_UTILS is not set

This should remain the default as well.

Thomas
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [Buildroot] [PATCH v2 4/9] board: Add Sipeed MAIX-bit support
  2021-07-23 22:25   ` Arnout Vandecappelle
  2021-07-23 22:35     ` Thomas Petazzoni
@ 2021-07-23 22:40     ` Damien Le Moal
  2021-07-24 14:53       ` Arnout Vandecappelle
  1 sibling, 1 reply; 23+ messages in thread
From: Damien Le Moal @ 2021-07-23 22:40 UTC (permalink / raw)
  To: Arnout Vandecappelle, buildroot, Thomas Petazzoni, Mark Corbin
  Cc: Alistair Francis

On 2021/07/24 7:25, Arnout Vandecappelle wrote:
> 
> 
> On 15/07/2021 02:48, Damien Le Moal wrote:
>> Add two configuration files to support the RISC-V Canaan K210 SoC based
>> Sipeed MAIX-bit board.
>>
>> The first configuration file, sipeed_maix_bit_defconfig, enables
>> building a bootable kernel 5.13 image with the root file system
>> initramfs linked with the kernel. This configuration uses the busybox
>> busybox-tiny-initramfs.config configuration to reduce the size of the
>> busybox executable (to save memory when executing shell commands).
>>
>> The second configuration file (sipeed_maix_bit_sdcard_defconfig) builds
>> a bootable kernel 5.13 image that uses the board SD card for the root
>> file system. This configuration uses the default busybox minimal
>> configuration.
>>
>> Both configurations share the same device tree which is provided by and
>> built-in the kernel. This configuration is set with the kernel
>> configuration snippet provided by
>> board/sipeed/maix-bit/linux-dtb.config.
>>
>> Both configurations also share the same init script provided using the
>> rootfs_overlay root file system overlay. This init script replaces the
>> default init process which causes failures due to excessive memory
>> usage.
>>
>> busybox-tiny-initramfs.config and the init script overlay will be
>> reused for all Canaan K210 SoC based boards. These 2 files are thus
>> placed in the directory board/canaan/k210-common while the Sipeed
>> MAIX-bit board specific kernel config snippet is added under the
>> directory board/sipeed/maxi-bit.
>>
>> Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
>> Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
>> ---
>>  .../k210-common/busybox-tiny-initramfs.config | 1183 +++++++++++++++++
>>  .../k210-common/rootfs_overlay/usr/sbin/init  |   26 +
>>  board/sipeed/maix-bit/linux-dtb.config        |    2 +
>>  configs/sipeed_maix_bit_defconfig             |   23 +
>>  configs/sipeed_maix_bit_sdcard_defconfig      |   23 +
>>  5 files changed, 1257 insertions(+)
>>  create mode 100644 board/canaan/k210-common/busybox-tiny-initramfs.config
>>  create mode 100755 board/canaan/k210-common/rootfs_overlay/usr/sbin/init
>>  create mode 100644 board/sipeed/maix-bit/linux-dtb.config
>>  create mode 100644 configs/sipeed_maix_bit_defconfig
>>  create mode 100644 configs/sipeed_maix_bit_sdcard_defconfig
>>
>> diff --git a/board/canaan/k210-common/busybox-tiny-initramfs.config b/board/canaan/k210-common/busybox-tiny-initramfs.config
>> new file mode 100644
>> index 0000000000..f0367e5460
>> --- /dev/null
>> +++ b/board/canaan/k210-common/busybox-tiny-initramfs.config
> 
>  Wouldn't it be better to start from busybox-minimal.config and just add a
> fragment that removes the unnecessary options?

Yes, can do that too.

> 
> [snip]
>> diff --git a/board/canaan/k210-common/rootfs_overlay/usr/sbin/init b/board/canaan/k210-common/rootfs_overlay/usr/sbin/init
>> new file mode 100755
>> index 0000000000..286346ddc3
>> --- /dev/null
>> +++ b/board/canaan/k210-common/rootfs_overlay/usr/sbin/init
> 
>  /sbin/init, not /usr/sbin/init. Doesn't matter because you have merged usr, but
> it's better to follow the standards.

OK.

> 
>> @@ -0,0 +1,26 @@
>> +#!/bin/sh
>> +
>> +# Mount sysfs and procfs
>> +/bin/mount -t sysfs sysfs /sys
>> +/bin/mount -t proc proc /proc
>> +
>> +# Use the /dev/console device node from devtmpfs if possible to not
>> +# confuse glibc's ttyname_r().
>> +# This may fail (E.G. booted with console=), and errors from exec will
>> +# terminate the shell, so use a subshell for the test
>> +if (exec 0</dev/console) 2>/dev/null; then
>> +    exec 0</dev/console
>> +    exec 1>/dev/console
>> +    exec 2>/dev/console
>> +fi
>> +
>> +# Print a fun logo :)
>> +echo "          __  _"
>> +echo "         / / (_) ____   _   _ __  __"
>> +echo "        / /  | ||  _ \\ | | | |\\ \\/ /"
>> +echo "       / /___| || | | || |_| | >  < "
>> +echo "      /_____/|_||_| |_| \\____|/_/\\_\\"
>> +echo "        RISC-V Kendryte K210 NOMMU"
>> +
>> +# Start interactive shell
>> +exec /bin/sh
>> diff --git a/board/sipeed/maix-bit/linux-dtb.config b/board/sipeed/maix-bit/linux-dtb.config
>> new file mode 100644
>> index 0000000000..de2f8fd074
>> --- /dev/null
>> +++ b/board/sipeed/maix-bit/linux-dtb.config
>> @@ -0,0 +1,2 @@
>> +CONFIG_SOC_CANAAN_K210_DTB_BUILTIN=y
>> +CONFIG_SOC_CANAAN_K210_DTB_SOURCE="sipeed_maix_bit"
>> diff --git a/configs/sipeed_maix_bit_defconfig b/configs/sipeed_maix_bit_defconfig
>> new file mode 100644
>> index 0000000000..94920c5c84
>> --- /dev/null
>> +++ b/configs/sipeed_maix_bit_defconfig
>> @@ -0,0 +1,23 @@
>> +BR2_riscv=y
>> +# BR2_COMPILER_PARANOID_UNSAFE_PATH is not set
>> +BR2_KERNEL_HEADERS_5_13=y
>> +# BR2_UCLIBC_INSTALL_UTILS is not set
>> +BR2_GCC_VERSION_11_X=y
> 
>  If GCC 11 is really needed instead of the default, please explain why in the
> commit message.

Not really needed. Just used the latest. Will switch to keep the default.

> 
>> +BR2_GCC_ENABLE_LTO=y
>> +BR2_PACKAGE_HOST_ELF2FLT=y
>> +# BR2_USE_MMU is not set
>> +BR2_TARGET_GENERIC_HOSTNAME=""
>> +BR2_INIT_NONE=y
>> +BR2_ROOTFS_MERGED_USR=y
> 
>  Why?

Without this, the SD card config does not result in the system starting the init
shell. Not entirely sure why. Will have another look at this.

> 
>> +BR2_SYSTEM_DEFAULT_PATH="/bin:/sbin:/usr/bin:/usr/sbin"
> 
>  Why is this needed?

Not needed. Will remove.

> 
>> +BR2_ROOTFS_OVERLAY="board/canaan/k210-common/rootfs_overlay"
>> +BR2_LINUX_KERNEL=y
>> +BR2_LINUX_KERNEL_DEFCONFIG="nommu_k210"
>> +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/sipeed/maix-bit/linux-dtb.config"
> 
>  This doesn't seem to be part of this patch?

Yes it is. This is kernel fragment config that specifies the board buil-in DTS.
Without it, no buil-in DTS and boot failures. There are no buildroot level
options to specify this since there is no standard way of specifying a builtin
DTS in the kernel. Different ARCH use different options.

> 
>> +BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y
>> +BR2_LINUX_KERNEL_IMAGE_NAME="loader.bin"
>> +BR2_PACKAGE_BUSYBOX_CONFIG="board/canaan/k210-common/busybox-tiny-initramfs.config"
>> +BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
> 
>  Why do you set this? No others are selected, are they?

Indeed. Will remove.

> 
>> +# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set
>> +BR2_TARGET_ROOTFS_INITRAMFS=y
> 
>  This will install another /init script that ends up exec'ing /sbin/init. Maybe
> it would be better to replace that /init script as well (just symlink /init ->
> sbin/init).

Hmm... All the default init stuff is disabled in busybox so I do not get that
init script/process. Will check again.

Thanks for the review.

> 
> 
>  Regards,
>  Arnout
> 
>> +# BR2_TARGET_ROOTFS_TAR is not set
>> diff --git a/configs/sipeed_maix_bit_sdcard_defconfig b/configs/sipeed_maix_bit_sdcard_defconfig
>> new file mode 100644
>> index 0000000000..eba06bcbc6
>> --- /dev/null
>> +++ b/configs/sipeed_maix_bit_sdcard_defconfig
>> @@ -0,0 +1,23 @@
>> +BR2_riscv=y
>> +# BR2_COMPILER_PARANOID_UNSAFE_PATH is not set
>> +BR2_KERNEL_HEADERS_5_13=y
>> +# BR2_UCLIBC_INSTALL_UTILS is not set
>> +BR2_GCC_VERSION_11_X=y
>> +BR2_GCC_ENABLE_LTO=y
>> +BR2_PACKAGE_HOST_ELF2FLT=y
>> +# BR2_USE_MMU is not set
>> +BR2_TARGET_GENERIC_HOSTNAME=""
>> +BR2_INIT_NONE=y
>> +BR2_ROOTFS_MERGED_USR=y
>> +BR2_SYSTEM_DEFAULT_PATH="/bin:/sbin:/usr/bin:/usr/sbin"
>> +BR2_ROOTFS_OVERLAY="board/canaan/k210-common/rootfs_overlay"
>> +BR2_LINUX_KERNEL=y
>> +BR2_LINUX_KERNEL_DEFCONFIG="nommu_k210_sdcard"
>> +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/sipeed/maix-bit/linux-dtb.config"
>> +BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y
>> +BR2_LINUX_KERNEL_IMAGE_NAME="loader.bin"
>> +BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox-minimal.config"
>> +BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
>> +# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set
>> +BR2_TARGET_ROOTFS_EXT2=y
>> +# BR2_TARGET_ROOTFS_TAR is not set
>>
> 


-- 
Damien Le Moal
Western Digital Research
_______________________________________________
buildroot mailing list
buildroot@busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [Buildroot] [PATCH v2 0/9] Add RISC-V NOMMU and Canaan K210 SoC support
  2021-07-23 22:25 ` [Buildroot] [PATCH v2 0/9] Add RISC-V NOMMU and Canaan K210 SoC support Arnout Vandecappelle
@ 2021-07-23 22:40   ` Damien Le Moal
  2021-08-28 13:48     ` Thomas Petazzoni
  0 siblings, 1 reply; 23+ messages in thread
From: Damien Le Moal @ 2021-07-23 22:40 UTC (permalink / raw)
  To: Arnout Vandecappelle, buildroot, Thomas Petazzoni, Mark Corbin
  Cc: Alistair Francis

On 2021/07/24 7:26, Arnout Vandecappelle wrote:
> 
> 
> On 15/07/2021 02:48, Damien Le Moal wrote:
>> This series adds support for building RISC-V NOMMU kernel bootable
>> images for boards using the Cannan Kendryte K210 SoC.
>>
>> The first patch makes MMU builds optional for RISC-V. The second patch
>> enables RV64 support in elf2flt (patch sent to uclinux-dev). The third
>> patch changes the base name of the toolchain to avoid build errors.
>>
>> The following 5 patches add default build configuration files for
>> various boards: MAIX-bit, MAIX-go, MAIX-dock (Dan Dock) and MAIXDUINO
>> from Sipeed and the Canaan KD233 development board.
>>
>> Finally, patch 9 documents how to build and install images for these
>> boards.
>>
>> Changes from v1:
>> * Rebased on latest master
>> * Simplified patch 3 as suggested by Baruch
>> * Fixed typos in documentation (patch 9)
>> * Added reviewed-by tags
>>
>> Christoph Hellwig (2):
>>   package/elf2flt: add RISC-V support
>>   package make: build RISC-V nommu builds as linux
>>
>> Damien Le Moal (7):
>>   arch/config: Make RISC-V MMU optional
>>   board: Add Sipeed MAIX-bit support
>>   board: Add Sipeed MAIX-Go support
>>   board: Add Sipeed MAIXDUINO support
>>   board: Add Sipeed MAIX-Dock support
>>   board: Add Canaan KD233 support
>>   board: Document Canaan K210 based boards support
> 
>  Given the feedback from Yann and from me, I've marked the series as Changes
> Requested in patchwork.

Thanks. Cooking v3 :)

> 
>  Regards,
>  Arnout
> 
>>
>>  arch/Config.in                                |    2 +-
>>  board/canaan/k210-common/README.md            |  318 +++++
>>  .../k210-common/busybox-tiny-initramfs.config | 1183 +++++++++++++++++
>>  .../k210-common/rootfs_overlay/usr/sbin/init  |   26 +
>>  board/canaan/kd233/README.md                  |    4 +
>>  board/canaan/kd233/linux-dtb.config           |    2 +
>>  board/sipeed/maix-bit/README.md               |    4 +
>>  board/sipeed/maix-bit/linux-dtb.config        |    2 +
>>  board/sipeed/maix-dock/README.md              |    4 +
>>  board/sipeed/maix-dock/linux-dtb.config       |    2 +
>>  board/sipeed/maix-go/README.md                |    4 +
>>  board/sipeed/maix-go/linux-dtb.config         |    2 +
>>  board/sipeed/maixduino/README.md              |    4 +
>>  board/sipeed/maixduino/linux-dtb.config       |    2 +
>>  configs/canaan_kd233_defconfig                |   23 +
>>  configs/canaan_kd233_sdcard_defconfig         |   23 +
>>  configs/sipeed_maix_bit_defconfig             |   23 +
>>  configs/sipeed_maix_bit_sdcard_defconfig      |   23 +
>>  configs/sipeed_maix_dock_defconfig            |   23 +
>>  configs/sipeed_maix_dock_sdcard_defconfig     |   23 +
>>  configs/sipeed_maix_go_defconfig              |   23 +
>>  configs/sipeed_maix_go_sdcard_defconfig       |   23 +
>>  configs/sipeed_maixduino_defconfig            |   23 +
>>  configs/sipeed_maixduino_sdcard_defconfig     |   23 +
>>  package/Makefile.in                           |    5 +-
>>  .../0004-elf2flt-add-riscv-support.patch      |  293 ++++
>>  package/elf2flt/Config.in.host                |    2 +-
>>  27 files changed, 2085 insertions(+), 4 deletions(-)
>>  create mode 100644 board/canaan/k210-common/README.md
>>  create mode 100644 board/canaan/k210-common/busybox-tiny-initramfs.config
>>  create mode 100755 board/canaan/k210-common/rootfs_overlay/usr/sbin/init
>>  create mode 100644 board/canaan/kd233/README.md
>>  create mode 100644 board/canaan/kd233/linux-dtb.config
>>  create mode 100644 board/sipeed/maix-bit/README.md
>>  create mode 100644 board/sipeed/maix-bit/linux-dtb.config
>>  create mode 100644 board/sipeed/maix-dock/README.md
>>  create mode 100644 board/sipeed/maix-dock/linux-dtb.config
>>  create mode 100644 board/sipeed/maix-go/README.md
>>  create mode 100644 board/sipeed/maix-go/linux-dtb.config
>>  create mode 100644 board/sipeed/maixduino/README.md
>>  create mode 100644 board/sipeed/maixduino/linux-dtb.config
>>  create mode 100644 configs/canaan_kd233_defconfig
>>  create mode 100644 configs/canaan_kd233_sdcard_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/0004-elf2flt-add-riscv-support.patch
>>
> 


-- 
Damien Le Moal
Western Digital Research
_______________________________________________
buildroot mailing list
buildroot@busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [Buildroot] [PATCH v2 4/9] board: Add Sipeed MAIX-bit support
  2021-07-23 22:35     ` Thomas Petazzoni
@ 2021-07-23 22:43       ` Damien Le Moal
  2021-07-24 14:56         ` Arnout Vandecappelle
  0 siblings, 1 reply; 23+ messages in thread
From: Damien Le Moal @ 2021-07-23 22:43 UTC (permalink / raw)
  To: Thomas Petazzoni, Arnout Vandecappelle
  Cc: Alistair Francis, Mark Corbin, buildroot

On 2021/07/24 7:35, Thomas Petazzoni wrote:
> Hello,
> 
> On Sat, 24 Jul 2021 00:25:27 +0200
> Arnout Vandecappelle <arnout@mind.be> wrote:
> 
>>> +++ b/board/canaan/k210-common/busybox-tiny-initramfs.config  
>>
>>  Wouldn't it be better to start from busybox-minimal.config and just add a
>> fragment that removes the unnecessary options?
> 
> Also, we already have a package/busybox/busybox-minimal.config. I'm not
> sure we want to add zillions of "minimal" Busybox configurations.

OK. In this case, this is all about saving memory and getting that busybox
process as small as possible, given the super low amount of free memory
available after boot.

The toolchain do not allow to compile "shared library" for NOMMU (shared text
segment). This is not supported for RV64. Once that is done, someday, we can use
the default minimal config as forking shells will be cheaper in memory.

> 
>>> +++ b/configs/sipeed_maix_bit_defconfig
>>> @@ -0,0 +1,23 @@
>>> +BR2_riscv=y
>>> +# BR2_COMPILER_PARANOID_UNSAFE_PATH is not set
> 
> This should remain the default.

OK.

> 
>>> +BR2_KERNEL_HEADERS_5_13=y
>>> +# BR2_UCLIBC_INSTALL_UTILS is not set
> 
> This should remain the default as well.

OK.

> 
> Thomas
> 


-- 
Damien Le Moal
Western Digital Research
_______________________________________________
buildroot mailing list
buildroot@busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [Buildroot] [PATCH v2 4/9] board: Add Sipeed MAIX-bit support
  2021-07-23 22:40     ` Damien Le Moal
@ 2021-07-24 14:53       ` Arnout Vandecappelle
  0 siblings, 0 replies; 23+ messages in thread
From: Arnout Vandecappelle @ 2021-07-24 14:53 UTC (permalink / raw)
  To: Damien Le Moal, buildroot, Thomas Petazzoni, Mark Corbin; +Cc: Alistair Francis



On 24/07/2021 00:40, Damien Le Moal wrote:
> On 2021/07/24 7:25, Arnout Vandecappelle wrote:
>>
>>
>> On 15/07/2021 02:48, Damien Le Moal wrote:

[snip]
>>> diff --git a/board/canaan/k210-common/rootfs_overlay/usr/sbin/init b/board/canaan/k210-common/rootfs_overlay/usr/sbin/init
>>> new file mode 100755
>>> index 0000000000..286346ddc3
>>> --- /dev/null
>>> +++ b/board/canaan/k210-common/rootfs_overlay/usr/sbin/init
>>
>>  /sbin/init, not /usr/sbin/init. Doesn't matter because you have merged usr, but
>> it's better to follow the standards.
> 
> OK.
> 

[snip]
>>> +BR2_ROOTFS_MERGED_USR=y
>>
>>  Why?
> 
> Without this, the SD card config does not result in the system starting the init
> shell. Not entirely sure why. Will have another look at this.

 Maybe because you put the script in /usr/bin/init instead of /bin/init? :-)

[snip]
>>> +BR2_TARGET_ROOTFS_INITRAMFS=y
>>
>>  This will install another /init script that ends up exec'ing /sbin/init. Maybe
>> it would be better to replace that /init script as well (just symlink /init ->
>> sbin/init).
> 
> Hmm... All the default init stuff is disabled in busybox so I do not get that
> init script/process. Will check again.

 It's not added by busybox, it's added by fs/cpio/cpio.mk
(BR2_TARGET_ROOTFS_CPIO gets selected by _INITRAMFS).

 IIRC the script is not put in output/target/init, only in the temporary
directory from which the cpio is created. On the booted system or in
output/images/rootfs.cpio, you should be able to see it as /init.


 Regards,
 Arnout


_______________________________________________
buildroot mailing list
buildroot@busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [Buildroot] [PATCH v2 4/9] board: Add Sipeed MAIX-bit support
  2021-07-23 22:43       ` Damien Le Moal
@ 2021-07-24 14:56         ` Arnout Vandecappelle
  0 siblings, 0 replies; 23+ messages in thread
From: Arnout Vandecappelle @ 2021-07-24 14:56 UTC (permalink / raw)
  To: Damien Le Moal, Thomas Petazzoni; +Cc: Alistair Francis, Mark Corbin, buildroot



On 24/07/2021 00:43, Damien Le Moal wrote:
> On 2021/07/24 7:35, Thomas Petazzoni wrote:
>> Hello,
>>
>> On Sat, 24 Jul 2021 00:25:27 +0200
>> Arnout Vandecappelle <arnout@mind.be> wrote:
>>
>>>> +++ b/board/canaan/k210-common/busybox-tiny-initramfs.config  
>>>
>>>  Wouldn't it be better to start from busybox-minimal.config and just add a
>>> fragment that removes the unnecessary options?
>>
>> Also, we already have a package/busybox/busybox-minimal.config. I'm not
>> sure we want to add zillions of "minimal" Busybox configurations.
> 
> OK. In this case, this is all about saving memory and getting that busybox
> process as small as possible, given the super low amount of free memory
> available after boot.

 Yes indeed - in this case it's even more about RAM than about flash space, right?

 So that's why I proposed to make a config fragment that disables some things
from busybox-minimal.config. Note that you can use utils/diffconfig to generate
that fragment.

 Note to Thomas: the other configs do use busybox-minimal.config, so Damien was
aware of its existence.

 Regards,
 Arnout

_______________________________________________
buildroot mailing list
buildroot@busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [Buildroot] [PATCH v2 0/9] Add RISC-V NOMMU and Canaan K210 SoC support
  2021-07-23 22:40   ` Damien Le Moal
@ 2021-08-28 13:48     ` Thomas Petazzoni
  2021-08-29 22:44       ` Damien Le Moal
  0 siblings, 1 reply; 23+ messages in thread
From: Thomas Petazzoni @ 2021-08-28 13:48 UTC (permalink / raw)
  To: Damien Le Moal; +Cc: Mark Corbin, Alistair Francis, buildroot

Hello Damien,

On Fri, 23 Jul 2021 22:40:40 +0000
Damien Le Moal <Damien.LeMoal@wdc.com> wrote:

> Thanks. Cooking v3 :)

Did you ever sent the v3 ?

Thanks!

Thomas
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [Buildroot] [PATCH v2 0/9] Add RISC-V NOMMU and Canaan K210 SoC support
  2021-08-28 13:48     ` Thomas Petazzoni
@ 2021-08-29 22:44       ` Damien Le Moal
  0 siblings, 0 replies; 23+ messages in thread
From: Damien Le Moal @ 2021-08-29 22:44 UTC (permalink / raw)
  To: Thomas Petazzoni; +Cc: Mark Corbin, Alistair Francis, buildroot

On 2021/08/28 22:48, Thomas Petazzoni wrote:
> Hello Damien,
> 
> On Fri, 23 Jul 2021 22:40:40 +0000
> Damien Le Moal <Damien.LeMoal@wdc.com> wrote:
> 
>> Thanks. Cooking v3 :)
> 
> Did you ever sent the v3 ?

Yes I did, on July 24th.
I can send a rebased version on the latest tree if needed.

> 
> Thanks!
> 
> Thomas
> 


-- 
Damien Le Moal
Western Digital Research
_______________________________________________
buildroot mailing list
buildroot@busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2021-08-29 22:44 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-15  0:48 [Buildroot] [PATCH v2 0/9] Add RISC-V NOMMU and Canaan K210 SoC support Damien Le Moal
2021-07-15  0:48 ` [Buildroot] [PATCH v2 1/9] arch/config: Make RISC-V MMU optional Damien Le Moal
2021-07-17 15:46   ` Yann E. MORIN
2021-07-15  0:48 ` [Buildroot] [PATCH v2 2/9] package/elf2flt: add RISC-V support Damien Le Moal
2021-07-17 15:54   ` Yann E. MORIN
2021-07-15  0:48 ` [Buildroot] [PATCH v2 3/9] package make: build RISC-V nommu builds as linux Damien Le Moal
2021-07-15  4:45   ` Alistair Francis
2021-07-15  0:48 ` [Buildroot] [PATCH v2 4/9] board: Add Sipeed MAIX-bit support Damien Le Moal
2021-07-23 22:25   ` Arnout Vandecappelle
2021-07-23 22:35     ` Thomas Petazzoni
2021-07-23 22:43       ` Damien Le Moal
2021-07-24 14:56         ` Arnout Vandecappelle
2021-07-23 22:40     ` Damien Le Moal
2021-07-24 14:53       ` Arnout Vandecappelle
2021-07-15  0:48 ` [Buildroot] [PATCH v2 5/9] board: Add Sipeed MAIX-Go support Damien Le Moal
2021-07-15  0:48 ` [Buildroot] [PATCH v2 6/9] board: Add Sipeed MAIXDUINO support Damien Le Moal
2021-07-15  0:48 ` [Buildroot] [PATCH v2 7/9] board: Add Sipeed MAIX-Dock support Damien Le Moal
2021-07-15  0:48 ` [Buildroot] [PATCH v2 8/9] board: Add Canaan KD233 support Damien Le Moal
2021-07-15  0:48 ` [Buildroot] [PATCH v2 9/9] board: Document Canaan K210 based boards support Damien Le Moal
2021-07-23 22:25 ` [Buildroot] [PATCH v2 0/9] Add RISC-V NOMMU and Canaan K210 SoC support Arnout Vandecappelle
2021-07-23 22:40   ` Damien Le Moal
2021-08-28 13:48     ` Thomas Petazzoni
2021-08-29 22:44       ` Damien Le Moal

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.