d1: add new target
This target adds support for the Allwinner D1 RISC-V based SoCs.
- RISC-V single-core T-Head C906 (RV64GCV)
- Tensilica HiFi4 DSP
- DDR2/DDR3 support
- 10/100/1000M ethernet
- usual peripherals like USB2, SPI, I2C, PWM, etc.
Four boards are supported:
- Dongshan Nezha STU
- 512Mb RAM
- ethernet
- LicheePi RV Dock
- 512Mb RAM
- wireless-only (RTL8723DS)
- MangoPi MQ-Pro
- 512Mb RAM
- there are pads available for an SPI flash
- wireless-only (RTL8723DS)
- Nezha D1
- 512Mb/1Gb/2Gb RAM
- 256Mb NAND flash
- ethernet, wireless
Installation:
Standard SD-card installation via dd-ing the generated image to
an SD-card of at least 256Mb.
Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
This commit is contained in:
5
target/linux/d1/image/Config.in
Normal file
5
target/linux/d1/image/Config.in
Normal file
@@ -0,0 +1,5 @@
|
||||
config D1_SD_BOOT_PARTSIZE
|
||||
int "Boot (SD Card) filesystem partition size (in MB)"
|
||||
depends on TARGET_d1
|
||||
default 32
|
||||
|
||||
94
target/linux/d1/image/Makefile
Normal file
94
target/linux/d1/image/Makefile
Normal file
@@ -0,0 +1,94 @@
|
||||
#
|
||||
# Copyright (C) 2023 OpenWrt.org
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
include $(TOPDIR)/rules.mk
|
||||
include $(INCLUDE_DIR)/image.mk
|
||||
|
||||
FAT32_BLOCK_SIZE=1024
|
||||
FAT32_BLOCKS=$(shell echo $$(($(CONFIG_D1_SD_BOOT_PARTSIZE)*1024*1024/$(FAT32_BLOCK_SIZE))))
|
||||
|
||||
KERNEL_LOADADDR:=0x40200000
|
||||
|
||||
define Build/riscv-sdcard
|
||||
rm -f $@.boot #$(KDIR_TMP)/$(IMG_PREFIX)-$(PROFILE)-boot.img
|
||||
mkfs.fat $@.boot -C $(FAT32_BLOCKS)
|
||||
|
||||
mcopy -i $@.boot $(STAGING_DIR_IMAGE)/$(DEVICE_NAME)-boot.scr ::boot.scr
|
||||
mcopy -i $@.boot $(DTS_DIR)/$(DEVICE_DTS).dtb ::dtb
|
||||
mcopy -i $@.boot $(IMAGE_KERNEL) ::Image
|
||||
|
||||
./gen_d1_sdcard_img.sh \
|
||||
$@ \
|
||||
$@.boot \
|
||||
$(IMAGE_ROOTFS) \
|
||||
$(CONFIG_D1_SD_BOOT_PARTSIZE) \
|
||||
$(CONFIG_TARGET_ROOTFS_PARTSIZE) \
|
||||
$(STAGING_DIR_IMAGE)/$(DEVICE_NAME)-u-boot-sunxi-with-spl.bin
|
||||
endef
|
||||
|
||||
define Device/Default
|
||||
PROFILES := Default
|
||||
KERNEL_NAME := Image
|
||||
KERNEL := kernel-bin
|
||||
IMAGES := sdcard.img.gz
|
||||
IMAGE/sdcard.img.gz := riscv-sdcard | append-metadata | gzip
|
||||
endef
|
||||
|
||||
define Device/FitImageGzip
|
||||
KERNEL_SUFFIX := -fit-uImage.itb
|
||||
KERNEL = kernel-bin | gzip | fit gzip $$(DTS_DIR)/$$(DEVICE_DTS).dtb
|
||||
KERNEL_NAME := Image
|
||||
endef
|
||||
|
||||
define Device/FitImage
|
||||
KERNEL_SUFFIX := -fit-uImage.itb
|
||||
KERNEL = kernel-bin | fit none $$(DTS_DIR)/$$(DEVICE_DTS).dtb
|
||||
KERNEL_NAME := Image
|
||||
endef
|
||||
|
||||
define Device/dongshan_nezha_stu
|
||||
$(call Device/Default)
|
||||
DEVICE_VENDOR := Dongshan
|
||||
DEVICE_MODEL := Nezha STU devkit
|
||||
DEVICE_DTS := allwinner/sun20i-d1-dongshan-nezha-stu
|
||||
UBOOT := dongshan_nezha_stu
|
||||
endef
|
||||
TARGET_DEVICES += dongshan_nezha_stu
|
||||
|
||||
define Device/lichee_rv_dock
|
||||
$(call Device/Default)
|
||||
DEVICE_VENDOR := Sipeed
|
||||
DEVICE_MODEL := LicheePi RV (dock)
|
||||
DEVICE_DTS := allwinner/sun20i-d1-lichee-rv-dock
|
||||
DEVICE_PACKAGES += kmod-rtl8723bs
|
||||
UBOOT := lichee_rv_dock
|
||||
endef
|
||||
TARGET_DEVICES += lichee_rv_dock
|
||||
|
||||
define Device/mangopi_mq_pro
|
||||
$(call Device/Default)
|
||||
DEVICE_VENDOR := MangoPi
|
||||
DEVICE_MODEL := MQ Pro
|
||||
DEVICE_DTS := allwinner/sun20i-d1-mangopi-mq-pro
|
||||
DEVICE_PACKAGES += kmod-rtl8723bs
|
||||
UBOOT := mangopi_mq_pro
|
||||
endef
|
||||
TARGET_DEVICES += mangopi_mq_pro
|
||||
|
||||
define Device/nezha
|
||||
$(call Device/Default)
|
||||
DEVICE_VENDOR := Nezha
|
||||
DEVICE_MODEL := D1
|
||||
DEVICE_DTS := allwinner/sun20i-d1-nezha
|
||||
UBOOT := nezha
|
||||
endef
|
||||
TARGET_DEVICES += nezha
|
||||
|
||||
define Image/Build
|
||||
$(call Image/Build/$(1),$(1))
|
||||
endef
|
||||
|
||||
$(eval $(call BuildImage))
|
||||
33
target/linux/d1/image/gen_d1_sdcard_img.sh
Executable file
33
target/linux/d1/image/gen_d1_sdcard_img.sh
Executable file
@@ -0,0 +1,33 @@
|
||||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
#
|
||||
# Copyright (C) 2013 OpenWrt.org
|
||||
|
||||
set -ex
|
||||
[ $# -eq 6 ] || {
|
||||
echo "SYNTAX: $0 <file> <bootfs image> <rootfs image> <bootfs size> <rootfs size> <u-boot image>"
|
||||
exit 1
|
||||
}
|
||||
|
||||
OUTPUT="$1"
|
||||
BOOTFS="$2"
|
||||
ROOTFS="$3"
|
||||
BOOTFSSIZE="$4"
|
||||
ROOTFSSIZE="$5"
|
||||
UBOOT="$6"
|
||||
|
||||
ROOTFSPTOFFSET=$(($BOOTFSSIZE + 20 + 1))
|
||||
|
||||
head=4
|
||||
sect=63
|
||||
|
||||
set $(ptgen -o $OUTPUT -h $head -s $sect -l 1024 -t c -p ${BOOTFSSIZE}M@20M -t 83 -p ${ROOTFSSIZE}M@${ROOTFSPTOFFSET}M)
|
||||
|
||||
BOOTOFFSET="$(($1 / 512))"
|
||||
BOOTSIZE="$(($2 / 512))"
|
||||
ROOTFSOFFSET="$(($3 / 512))"
|
||||
ROOTFSSIZE="$(($4 / 512))"
|
||||
|
||||
dd bs=512 if="$UBOOT" of="$OUTPUT" seek=256 conv=notrunc
|
||||
dd bs=512 if="$BOOTFS" of="$OUTPUT" seek="$BOOTOFFSET" conv=notrunc
|
||||
dd bs=512 if="$ROOTFS" of="$OUTPUT" seek="$ROOTFSOFFSET" conv=notrunc
|
||||
Reference in New Issue
Block a user