riscv: Add Sipeed Maix support
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 <seanga2@gmail.com>
2020-06-24 10:41:25 +00:00
|
|
|
/* SPDX-License-Identifier: GPL-2.0+ */
|
|
|
|
/*
|
|
|
|
* Copyright (C) 2019-20 Sean Anderson <seanga2@gmail.com>
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef CONFIGS_SIPEED_MAIX_H
|
|
|
|
#define CONFIGS_SIPEED_MAIX_H
|
|
|
|
|
|
|
|
#include <linux/sizes.h>
|
|
|
|
|
|
|
|
#define CONFIG_SYS_LOAD_ADDR 0x80000000
|
|
|
|
/* Start just below the second bank so we don't clobber it during reloc */
|
|
|
|
#define CONFIG_SYS_INIT_SP_ADDR 0x803FFFFF
|
|
|
|
#define CONFIG_SYS_MALLOC_LEN SZ_128K
|
|
|
|
#define CONFIG_SYS_CACHELINE_SIZE 64
|
|
|
|
|
|
|
|
#define CONFIG_SYS_SDRAM_BASE 0x80000000
|
|
|
|
/* Don't relocate into AI ram since it isn't set up yet */
|
|
|
|
#define CONFIG_SYS_SDRAM_SIZE (SZ_4M + SZ_2M)
|
|
|
|
|
|
|
|
/* For early init */
|
|
|
|
#define K210_SYSCTL_BASE 0x50440000
|
|
|
|
|
2020-07-29 10:49:24 +00:00
|
|
|
#ifndef CONFIG_EXTRA_ENV_SETTINGS
|
|
|
|
#define CONFIG_EXTRA_ENV_SETTINGS \
|
|
|
|
"loadaddr=0x80060000\0" \
|
2020-12-22 23:57:18 +00:00
|
|
|
"fdt_addr_r=0x80400000\0" \
|
2020-07-29 10:49:24 +00:00
|
|
|
"scriptaddr=0x80020000\0" \
|
|
|
|
"kernel_addr_r=0x80060000\0" \
|
2020-12-22 23:57:18 +00:00
|
|
|
"fdtfile=kendryte/" CONFIG_DEFAULT_DEVICE_TREE ".dtb\0" \
|
|
|
|
"k210_bootcmd=load mmc 0:1 $loadaddr /uImage && " \
|
|
|
|
"load mmc 0:1 $fdt_addr_r /k210.dtb && " \
|
|
|
|
"bootm $loadaddr - $fdt_addr_r\0"
|
2020-07-29 10:49:24 +00:00
|
|
|
#endif
|
|
|
|
|
riscv: Add Sipeed Maix support
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 <seanga2@gmail.com>
2020-06-24 10:41:25 +00:00
|
|
|
#endif /* CONFIGS_SIPEED_MAIX_H */
|