Hi Sean, On Tue, Feb 4, 2020 at 10:26 PM Sean Anderson <sean...@gmail.com> wrote: > > On 2/4/20 6:38 AM, Bin Meng wrote: > > Hi Sean, > > > > On Mon, Feb 3, 2020 at 4:11 AM Sean Anderson <sean...@gmail.com> wrote: > >> > >> The Sipeed Maix series is a collection of boards built around the RISC-V > >> Kendryte K210 processor. This processor contains several peripherals to > >> accelerate neural network processing and other "ai" tasks. This includes a > >> "KPU" > >> neural network processor, an audio processor supporting beamforming > >> reception, > >> and a digital video port supporting capture and output at VGA resolution. > >> Other > >> peripherals include 8M of sram (accessible with and without caching); > >> remappable pins, including 40 GPIOs; AES, FFT, and SHA256 accelerators; a > >> DMA > >> controller; and I2C, I2S, and SPI controllers. Maix peripherals vary, but > >> include spi flash; on-board usb-serial bridges; ports for cameras, > >> displays, and > >> sd cards; and ESP32 chips. Currently, only the Sipeed Maix Bit V2.0 (bitm) > >> is > >> supported, but the boards are fairly similar. > >> > >> Documentation for Maix boards is located at > >> <http://dl.sipeed.com/MAIX/HDK/>. > >> Documentation for the Kendryte K210 is located at > >> <https://kendryte.com/downloads/>. However, hardware details are rather > >> lacking, > >> so most technical reference has been taken from the standalone sdk located > >> at > >> <https://github.com/kendryte/kendryte-standalone-sdk>. > >> > >> Signed-off-by: Sean Anderson <sean...@gmail.com> > >> --- > >> Changes for v3: > >> - Reorder to be last in the patch series > >> - Add documentation for the board > >> - Generate defconfig with "make savedefconfig" > >> - Update Kconfig to imply most features we need > >> - Update MAINTAINERS > >> Changes for v2: > >> - Select CONFIG_SYS_RISCV_NOCOUNTER > >> - Imply CONFIG_CLK_K210 > >> - Remove spurious references to CONFIG_ARCH_K210 > >> - Remove many configs from defconfig where the defaults were fine > >> - Add a few "not set" lines to suppress unneeded defaults > >> - Reduce pre-reloc malloc space, now that clocks initialization happens > >> later > >> > >> arch/riscv/Kconfig | 4 +++ > >> board/sipeed/maix/Kconfig | 51 ++++++++++++++++++++++++++++++ > >> board/sipeed/maix/MAINTAINERS | 10 ++++++ > >> board/sipeed/maix/Makefile | 5 +++ > >> board/sipeed/maix/maix.c | 9 ++++++ > >> configs/sipeed_maix_bitm_defconfig | 10 ++++++ > >> doc/board/index.rst | 1 + > >> doc/board/kendryte/index.rst | 9 ++++++ > >> doc/board/kendryte/k210.rst | 46 +++++++++++++++++++++++++++ > >> include/configs/sipeed-maix.h | 19 +++++++++++ > >> 10 files changed, 164 insertions(+) > >> create mode 100644 board/sipeed/maix/Kconfig > >> create mode 100644 board/sipeed/maix/MAINTAINERS > >> create mode 100644 board/sipeed/maix/Makefile > >> create mode 100644 board/sipeed/maix/maix.c > >> create mode 100644 configs/sipeed_maix_bitm_defconfig > >> create mode 100644 doc/board/kendryte/index.rst > >> create mode 100644 doc/board/kendryte/k210.rst > >> create mode 100644 include/configs/sipeed-maix.h > >> > >> diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig > >> index 87c40f6c4c..81ab35dd2d 100644 > >> --- a/arch/riscv/Kconfig > >> +++ b/arch/riscv/Kconfig > >> @@ -20,6 +20,9 @@ config TARGET_QEMU_VIRT > >> config TARGET_SIFIVE_FU540 > >> bool "Support SiFive FU540 Board" > >> > >> +config TARGET_SIPEED_MAIX > >> + bool "Support Sipeed Maix Board" > >> + > >> endchoice > >> > >> config SYS_ICACHE_OFF > >> @@ -53,6 +56,7 @@ source "board/AndesTech/ax25-ae350/Kconfig" > >> source "board/emulation/qemu-riscv/Kconfig" > >> source "board/microchip/mpfs_icicle/Kconfig" > >> source "board/sifive/fu540/Kconfig" > >> +source "board/sipeed/maix/Kconfig" > >> > >> # platform-specific options below > >> source "arch/riscv/cpu/ax25/Kconfig" > >> diff --git a/board/sipeed/maix/Kconfig b/board/sipeed/maix/Kconfig > >> new file mode 100644 > >> index 0000000000..b23d2448d9 > >> --- /dev/null > >> +++ b/board/sipeed/maix/Kconfig > >> @@ -0,0 +1,51 @@ > >> +# SPDX-License-Identifier: GPL-2.0+ > >> +# Copyright (C) 2019 Sean Anderson <sean...@gmail.com> > >> + > >> +if TARGET_SIPEED_MAIX > >> + > >> +config SYS_BOARD > >> + default "maix" > >> + > >> +config SYS_VENDOR > >> + default "sipeed" > >> + > >> +config SYS_CPU > >> + default "generic" > >> + > >> +config SYS_CONFIG_NAME > >> + default "sipeed-maix" > >> + > >> +config SYS_TEXT_BASE > >> + default 0x80000000 > >> + > >> +config DEFAULT_DEVICE_TREE > >> + default "k210-maix-bit" > >> + > >> +config NR_CPUS > >> + default 2 > >> + > >> +config NR_DRAM_BANKS > >> + default 2 > >> + > >> +config BOARD_SPECIFIC_OPTIONS > >> + def_bool y > >> + select GENERIC_RISCV > >> + select RISCV_PRIV_1_9_1 > >> + imply DM_SERIAL > >> + imply SIFIVE_SERIAL > >> + imply SIFIVE_CLINT > >> + imply CLK_CCF > >> + imply CLK_COMPOSITE_CCF > >> + imply CLK_K210 > >> + imply DM_RESET > >> + imply RESET_SYSCON > >> + imply SYSRESET > >> + imply SYSRESET_SYSCON > >> + imply SPI > >> + imply DESIGNWARE_SPI > >> + imply SPI_FLASH_GIGADEVICE > >> + imply MMC > >> + imply MMC_SPI > >> + imply MMC_BROKEN_CD > >> + imply CMD_MMC > >> +endif > >> diff --git a/board/sipeed/maix/MAINTAINERS b/board/sipeed/maix/MAINTAINERS > >> new file mode 100644 > >> index 0000000000..43cf61fb64 > >> --- /dev/null > >> +++ b/board/sipeed/maix/MAINTAINERS > >> @@ -0,0 +1,10 @@ > >> +Sipeed Maix BOARD > >> +M: Sean Anderson <sean...@gmail.com> > >> +S: Maintained > >> +F: arch/riscv/dts/k210.dtsi > >> +F: arch/riscv/dts/k210-maix-bit.dts > >> +F: board/sipeed/maix/ > >> +F: configs/sipeed_maix_defconfig > >> +F: drivers/clk/kendryte/ > >> +F: include/configs/sipeed-maix.h > >> +F: include/dt-bindings/*/k210-sysctl.h > >> diff --git a/board/sipeed/maix/Makefile b/board/sipeed/maix/Makefile > >> new file mode 100644 > >> index 0000000000..4acff5b31e > >> --- /dev/null > >> +++ b/board/sipeed/maix/Makefile > >> @@ -0,0 +1,5 @@ > >> +# SPDX-License-Identifier: GPL-2.0+ > >> +# > >> +# Copyright (c) 2019 Western Digital Corporation or its affiliates. > >> + > >> +obj-y += maix.o > >> diff --git a/board/sipeed/maix/maix.c b/board/sipeed/maix/maix.c > >> new file mode 100644 > >> index 0000000000..f8e773acf7 > >> --- /dev/null > >> +++ b/board/sipeed/maix/maix.c > >> @@ -0,0 +1,9 @@ > >> +// SPDX-License-Identifier: GPL-2.0+ > >> +/* > >> + * Copyright (C) 2019 Sean Anderson <sean...@gmail.com> > >> + */ > >> + > >> +int board_init(void) > >> +{ > >> + return 0; > >> +} > >> diff --git a/configs/sipeed_maix_bitm_defconfig > >> b/configs/sipeed_maix_bitm_defconfig > >> new file mode 100644 > >> index 0000000000..22d814ec7f > >> --- /dev/null > >> +++ b/configs/sipeed_maix_bitm_defconfig > >> @@ -0,0 +1,10 @@ > >> +CONFIG_RISCV=y > >> +CONFIG_TARGET_SIPEED_MAIX=y > >> +CONFIG_ARCH_RV64I=y > >> +# CONFIG_LEGACY_IMAGE_FORMAT is not set > >> +# CONFIG_AUTOBOOT is not set > >> +# CONFIG_NET is not set > >> +# CONFIG_INPUT is not set > >> +# CONFIG_MTD is not set > >> +# CONFIG_DM_ETH is not set > >> +# CONFIG_EFI_LOADER is not set > >> diff --git a/doc/board/index.rst b/doc/board/index.rst > >> index 00e72f57cd..2bd740589b 100644 > >> --- a/doc/board/index.rst > >> +++ b/doc/board/index.rst > >> @@ -13,6 +13,7 @@ Board-specific doc > >> freescale/index > >> google/index > >> intel/index > >> + kendryte/index > > > > We should use the board vendor name: sipeed/index> > > That's what I thought, but everything else in this directory is > organized by CPU manufacturer. For example, it is
No it's organized by the board manufacturer. It's just the same vendor that happens to the the CPU manufacturer. > doc/board/sifive/fu450.rst, not hifive.rst. Hence the naming scheme I would vote for changing it to hifive_unleashed. > below. > > >> renesas/index > >> sifive/index > >> xilinx/index [snip] Regards, Bin