Initial commit

This commit is contained in:
Administrator
2021-03-17 20:00:17 +08:00
committed by Andy Hu
commit c47c340fa2
48 changed files with 4029 additions and 0 deletions

21
.gitignore vendored Normal file
View File

@@ -0,0 +1,21 @@
# Top-level project build directories
/work*
# Top-level generic files
/*.log
# Merge conflict files
*.orig
*.swp
*.code-workspace
# ctags files
tags
TAGS
ctags
etags
# cscope files
cscope.*
ncscope.*

20
.gitmodules vendored Normal file
View File

@@ -0,0 +1,20 @@
[submodule "buildroot"]
path = buildroot
url = git@192.168.110.45:sdk/buildroot.git
branch = jh7110-master
[submodule "u-boot"]
path = u-boot
url = git@192.168.110.45:sdk/u-boot.git
branch = jh7110-master
[submodule "linux"]
path = linux
url = git@192.168.110.45:sbc/linux.git
branch = vf2-6.1.y-devel
[submodule "opensbi"]
path = opensbi
url = git@192.168.110.45:sdk/opensbi.git
branch = master
[submodule "soft_3rdpart"]
path = soft_3rdpart
url = git@192.168.110.45:sdk/soft_3rdpart.git
branch = jh7110-devel

548
Makefile Normal file
View File

@@ -0,0 +1,548 @@
ISA ?= rv64imafdc_zicsr_zifencei_zba_zbb
ABI ?= lp64d
#TARGET_BOARD is JH7110 or NULL
SOC := JH7110
BOARD_FLAGS :=
HWBOARD ?= visionfive2
HWBOARD_FLAG ?= HWBOARD_VISIONFIVE2
srcdir := $(dir $(realpath $(lastword $(MAKEFILE_LIST))))
srcdir := $(srcdir:/=)
confdir := $(srcdir)/conf
wrkdir := $(CURDIR)/work
buildroot_srcdir := $(srcdir)/buildroot
buildroot_initramfs_wrkdir := $(wrkdir)/buildroot_initramfs
# TODO: make RISCV be able to be set to alternate toolchain path
RISCV ?= $(buildroot_initramfs_wrkdir)/host
RVPATH := $(RISCV)/bin:$(PATH)
target := riscv64-buildroot-linux-gnu
CROSS_COMPILE := $(RISCV)/bin/$(target)-
buildroot_initramfs_tar := $(buildroot_initramfs_wrkdir)/images/rootfs.tar
buildroot_initramfs_config := $(confdir)/buildroot_initramfs_config
buildroot_initramfs_sysroot_stamp := $(wrkdir)/.buildroot_initramfs_sysroot
buildroot_initramfs_sysroot := $(wrkdir)/buildroot_initramfs_sysroot
buildroot_rootfs_wrkdir := $(wrkdir)/buildroot_rootfs
buildroot_rootfs_ext := $(buildroot_rootfs_wrkdir)/images/rootfs.ext4
buildroot_rootfs_config := $(confdir)/buildroot_rootfs_config
linux_srcdir := $(srcdir)/linux
linux_wrkdir := $(wrkdir)/linux
ifeq ($(HWBOARD), evb)
linux_defconfig := $(linux_srcdir)/arch/riscv/configs/starfive_jh7110_defconfig
else
linux_defconfig := $(linux_srcdir)/arch/riscv/configs/starfive_visionfive2_defconfig
endif
vmlinux := $(linux_wrkdir)/vmlinux
vmlinux_stripped := $(linux_wrkdir)/vmlinux-stripped
vmlinux_bin := $(wrkdir)/vmlinux.bin
module_install_path:=$(wrkdir)/module_install_path
perf_tool_srcdir := $(linux_srcdir)/tools/perf
perf_tool_wrkdir := $(linux_wrkdir)/tools/perf
its_file=$(confdir)/$(HWBOARD)-fit-image.its
uboot_its_file=$(confdir)/$(HWBOARD)-uboot-fit-image.its
vfat_image := $(wrkdir)/starfive-$(HWBOARD)-vfat.part
#ext_image := $(wrkdir) # TODO
initramfs := $(wrkdir)/initramfs.cpio.gz
sbi_srcdir := $(srcdir)/opensbi
sbi_wrkdir := $(wrkdir)/opensbi
sbi_bin := $(wrkdir)/opensbi/platform/generic/firmware/fw_payload.bin
fit := $(wrkdir)/image.fit
uboot_fit := $(wrkdir)/$(HWBOARD)_fw_payload.img
fesvr_srcdir := $(srcdir)/riscv-fesvr
fesvr_wrkdir := $(wrkdir)/riscv-fesvr
libfesvr := $(fesvr_wrkdir)/prefix/lib/libfesvr.so
spike_srcdir := $(srcdir)/riscv-isa-sim
spike_wrkdir := $(wrkdir)/riscv-isa-sim
spike := $(spike_wrkdir)/prefix/bin/spike
qemu_srcdir := $(srcdir)/riscv-qemu
qemu_wrkdir := $(wrkdir)/riscv-qemu
qemu := $(qemu_wrkdir)/prefix/bin/qemu-system-riscv64
uboot_srcdir := $(srcdir)/u-boot
uboot_wrkdir := $(wrkdir)/u-boot
uboot_dtb_file := $(wrkdir)/u-boot/arch/riscv/dts/starfive_$(HWBOARD).dtb
uboot := $(uboot_wrkdir)/u-boot.bin
spl_tool_srcdir := $(srcdir)/soft_3rdpart/spl_tool
spl_tool_wrkdir := $(wrkdir)/spl_tool
spl_bin_normal_out := u-boot-spl.bin.normal.out
uboot_config := starfive_$(HWBOARD)_defconfig
uboot_defconfig := $(uboot_srcdir)/configs/$(uboot_config)
rootfs := $(wrkdir)/rootfs.bin
target_gcc := $(CROSS_COMPILE)gcc
version := $(wrkdir)/version
.PHONY: all check_arg
all: check_arg $(fit) $(vfat_image) $(uboot_fit) $(spl_bin_normal_out)
@echo
@echo "This image has been generated for an ISA of $(ISA) and an ABI of $(ABI)"
@echo "Find the image in work/image.fit, which should be copied to an MSDOS boot partition 1"
@echo
@echo "To completely erase, reformat, and program a disk sdX, run:"
@echo " make DISK=/dev/sdX format-boot-loader"
@echo " ... you will need gdisk and e2fsprogs installed"
@echo " Please note this will not currently format the SDcard ext4 partition"
@echo " This can be done manually if needed"
@echo
check_arg:
ifeq ( , $(filter $(HWBOARD), visionfive2 evb fpga))
$(error board $(HWBOARD) is not supported, BOARD=[visionfive2 | evb | fpga(deflault)])
endif
# TODO: depracated for now
#ifneq ($(RISCV),$(buildroot_initramfs_wrkdir)/host)
#$(target_gcc):
# $(error The RISCV environment variable was set, but is not pointing at a toolchain install tree)
#else
#$(target_gcc): $(buildroot_initramfs_tar)
#endif
.PHONY: visionfive2 evb fpga
visionfive2: HWBOARD := visionfive2
visionfive2: HWBOARD_FLAG := HWBOARD_VISIONFIVE2
visionfive2: uboot_config := starfive_$(HWBOARD)_defconfig
visionfive2: uboot_dtb_file := $(wrkdir)/u-boot/arch/riscv/dts/starfive_$(HWBOARD).dtb
visionfive2: linux_defconfig := $(linux_srcdir)/arch/riscv/configs/starfive_visionfive2_defconfig
visionfive2: uboot_fit := $(wrkdir)/$(HWBOARD)_fw_payload.img
visionfive2: vfat_image := $(wrkdir)/starfive-$(HWBOARD)-vfat.part
visionfive2: its_file=$(confdir)/$(HWBOARD)-fit-image.its
visionfive2: uboot_its_file=$(confdir)/$(HWBOARD)-uboot-fit-image.its
visionfive2: all
evb: HWBOARD := evb
evb: HWBOARD_FLAG := HWBOARD_EVB
evb: uboot_config := starfive_$(HWBOARD)_defconfig
evb: uboot_dtb_file := $(wrkdir)/u-boot/arch/riscv/dts/starfive_$(HWBOARD).dtb
evb: linux_defconfig := $(linux_srcdir)/arch/riscv/configs/starfive_jh7110_defconfig
evb: uboot_fit := $(wrkdir)/$(HWBOARD)_fw_payload.img
evb: vfat_image := $(wrkdir)/starfive-$(HWBOARD)-vfat.part
evb: its_file=$(confdir)/$(HWBOARD)-fit-image.its
evb: uboot_its_file=$(confdir)/$(HWBOARD)-uboot-fit-image.its
evb: all
fpga: HWBOARD := fpga
fpga: all
fpga: HWBOARD_FLAG := HWBOARD_FPGA
$(version):
cd $(linux_srcdir) && \
sh $(confdir)/version > $(version)
chmod 777 $(version)
$(buildroot_initramfs_wrkdir)/.config: $(buildroot_srcdir)
# rm -rf $(dir $@)
mkdir -p $(dir $@)
cp $(buildroot_initramfs_config) $@
$(MAKE) -C $< RISCV=$(RISCV) O=$(buildroot_initramfs_wrkdir) olddefconfig
# buildroot_initramfs provides gcc
$(buildroot_initramfs_tar): $(buildroot_srcdir) $(buildroot_initramfs_wrkdir)/.config $(buildroot_initramfs_config)
$(MAKE) -C $< RISCV=$(RISCV) O=$(buildroot_initramfs_wrkdir)
.PHONY: buildroot_initramfs-menuconfig
buildroot_initramfs-menuconfig: $(buildroot_initramfs_wrkdir)/.config $(buildroot_srcdir)
$(MAKE) -C $(dir $<) O=$(buildroot_initramfs_wrkdir) menuconfig
$(MAKE) -C $(dir $<) O=$(buildroot_initramfs_wrkdir) savedefconfig
cp $(dir $<)defconfig $(buildroot_initramfs_config)
# use buildroot_initramfs toolchain
# TODO: fix path and conf/buildroot_rootfs_config
$(buildroot_rootfs_wrkdir)/.config: $(buildroot_srcdir) $(buildroot_initramfs_tar)
# rm -rf $(dir $@)
mkdir -p $(dir $@)
cp $(buildroot_rootfs_config) $@
$(MAKE) -C $< RISCV=$(RISCV) PATH=$(RVPATH) O=$(buildroot_rootfs_wrkdir) olddefconfig
$(buildroot_rootfs_ext): $(buildroot_srcdir) $(buildroot_rootfs_wrkdir)/.config $(target_gcc) $(buildroot_rootfs_config) $(version)
mkdir -p $(buildroot_rootfs_wrkdir)/target/lib
cp -r $(module_install_path)/lib/modules $(buildroot_rootfs_wrkdir)/target/lib/
mkdir -p $(buildroot_rootfs_wrkdir)/target/usr/bin
cp $(perf_tool_wrkdir)/perf $(buildroot_rootfs_wrkdir)/target/usr/bin/
cp $(version) $(buildroot_rootfs_wrkdir)/target/usr/bin/version
$(MAKE) -C $< RISCV=$(RISCV) PATH=$(RVPATH) O=$(buildroot_rootfs_wrkdir)
.PHONY: buildroot_rootfs
buildroot_rootfs: $(buildroot_rootfs_ext)
.PHONY: buildroot_rootfs-menuconfig
buildroot_rootfs-menuconfig: $(buildroot_rootfs_wrkdir)/.config $(buildroot_srcdir)
$(MAKE) -C $(dir $<) O=$(buildroot_rootfs_wrkdir) menuconfig
$(MAKE) -C $(dir $<) O=$(buildroot_rootfs_wrkdir) savedefconfig
cp $(dir $<)defconfig conf/buildroot_rootfs_config
$(buildroot_initramfs_sysroot_stamp): $(buildroot_initramfs_tar)
mkdir -p $(buildroot_initramfs_sysroot)
tar -xpf $< -C $(buildroot_initramfs_sysroot) --exclude ./dev --exclude ./usr/share/locale
touch $@
$(linux_wrkdir)/.config: $(linux_defconfig) $(linux_srcdir)
mkdir -p $(dir $@)
cp -p $< $@
$(MAKE) -C $(linux_srcdir) O=$(linux_wrkdir) CROSS_COMPILE=$(CROSS_COMPILE) ARCH=riscv olddefconfig
$(uboot_wrkdir)/.config: $(uboot_defconfig)
mkdir -p $(dir $@)
cp -p $< $@
$(MAKE) -C $(uboot_srcdir) O=$(uboot_wrkdir) CROSS_COMPILE=$(CROSS_COMPILE) ARCH=riscv olddefconfig
$(vmlinux): $(linux_srcdir) $(linux_wrkdir)/.config $(target_gcc)
$(MAKE) -C $< O=$(linux_wrkdir) \
ARCH=riscv \
CROSS_COMPILE=$(CROSS_COMPILE) \
PATH=$(RVPATH) \
vmlinux \
all \
modules
$(MAKE) -C $< O=$(linux_wrkdir) \
ARCH=riscv \
CROSS_COMPILE=$(CROSS_COMPILE) \
PATH=$(RVPATH) \
INSTALL_MOD_PATH=$(module_install_path) \
modules_install
vpudriver-build: $(vmlinux)
$(MAKE) -C $(buildroot_initramfs_wrkdir) O=$(buildroot_initramfs_wrkdir) \
INSTALL_MOD_PATH=$(module_install_path) wave511driver
$(MAKE) -C $(buildroot_initramfs_wrkdir) O=$(buildroot_initramfs_wrkdir) \
INSTALL_MOD_PATH=$(module_install_path) wave420ldriver
$(MAKE) -C $(buildroot_initramfs_wrkdir) O=$(buildroot_initramfs_wrkdir) \
INSTALL_MOD_PATH=$(module_install_path) codaj12driver
$(perf_tool_wrkdir)/perf: $(linux_srcdir) $(vmlinux)
mkdir -p $(perf_tool_wrkdir)
$(MAKE) -C $(perf_tool_srcdir) O=$(perf_tool_wrkdir)/ \
ARCH=riscv \
CROSS_COMPILE=$(CROSS_COMPILE) \
WERROR=0 NO_GTK2=1 NO_LIBPERL=1 \
NO_LIBBIONIC=1
.PHONY: perf
perf: $(perf_tool_wrkdir)/perf
.PHONY: initrd
initrd: $(initramfs)
$(initramfs).d: $(buildroot_initramfs_sysroot)
$(linux_srcdir)/usr/gen_initramfs_list.sh -l $(confdir)/initramfs.txt $(buildroot_initramfs_sysroot) > $@
$(initramfs): $(buildroot_initramfs_sysroot) $(vmlinux) vpudriver-build $(version) $(perf_tool_wrkdir)/perf
cp -r $(module_install_path)/lib/modules $(buildroot_initramfs_sysroot)/lib/
cp $(perf_tool_wrkdir)/perf $(buildroot_initramfs_sysroot)/usr/bin/
cp $(version) $(buildroot_initramfs_sysroot)/usr/bin/version && \
cd $(linux_wrkdir) && \
$(linux_srcdir)/usr/gen_initramfs_list.sh \
-o $@ -u $(shell id -u) -g $(shell id -g) \
$(confdir)/initramfs.txt \
$(buildroot_initramfs_sysroot)
$(vmlinux_stripped): $(vmlinux)
PATH=$(RVPATH) $(target)-strip -o $@ $<
$(vmlinux_bin): $(vmlinux)
PATH=$(RVPATH) $(target)-objcopy -O binary $< $@
.PHONY: linux-menuconfig
linux-menuconfig: $(linux_wrkdir)/.config
$(MAKE) -C $(linux_srcdir) O=$(dir $<) ARCH=riscv CROSS_COMPILE=$(CROSS_COMPILE) menuconfig
$(MAKE) -C $(linux_srcdir) O=$(dir $<) ARCH=riscv CROSS_COMPILE=$(CROSS_COMPILE) savedefconfig
cp $(dir $<)defconfig $(linux_defconfig)
# Note: opensbi generic platform default FW_TEXT_START is 0x80000000
# For JH7110, need to specify the FW_TEXT_START to 0x40000000
# Otherwise, the fw_payload.bin downloading via jtag will not run.
# not affect the evb_fw_payload.img for its file has FW_TEXT_START
$(sbi_bin): $(uboot) $(vmlinux)
rm -rf $(sbi_wrkdir)
mkdir -p $(sbi_wrkdir)
cd $(sbi_wrkdir) && O=$(sbi_wrkdir) CFLAGS="-mabi=$(ABI) -march=$(ISA)" ${MAKE} -C $(sbi_srcdir) CROSS_COMPILE=$(CROSS_COMPILE) \
PLATFORM=generic FW_PAYLOAD_PATH=$(uboot) FW_FDT_PATH=$(uboot_dtb_file) FW_TEXT_START=0x40000000
$(fit): $(sbi_bin) $(vmlinux_bin) $(uboot) $(its_file) ${initramfs}
$(uboot_wrkdir)/tools/mkimage -f $(its_file) -A riscv -O linux -T flat_dt $@
@if [ -f fsz.sh ]; then ./fsz.sh $(sbi_bin); fi
$(libfesvr): $(fesvr_srcdir)
rm -rf $(fesvr_wrkdir)
mkdir -p $(fesvr_wrkdir)
mkdir -p $(dir $@)
cd $(fesvr_wrkdir) && $</configure \
--prefix=$(dir $(abspath $(dir $@)))
$(MAKE) -C $(fesvr_wrkdir)
$(MAKE) -C $(fesvr_wrkdir) install
touch -c $@
$(spike): $(spike_srcdir) $(libfesvr)
rm -rf $(spike_wrkdir)
mkdir -p $(spike_wrkdir)
mkdir -p $(dir $@)
cd $(spike_wrkdir) && PATH=$(RVPATH) $</configure \
--prefix=$(dir $(abspath $(dir $@))) \
--with-fesvr=$(dir $(abspath $(dir $(libfesvr))))
$(MAKE) PATH=$(RVPATH) -C $(spike_wrkdir)
$(MAKE) -C $(spike_wrkdir) install
touch -c $@
$(qemu): $(qemu_srcdir)
rm -rf $(qemu_wrkdir)
mkdir -p $(qemu_wrkdir)
mkdir -p $(dir $@)
which pkg-config
# pkg-config from buildroot blows up qemu configure
cd $(qemu_wrkdir) && $</configure \
--prefix=$(dir $(abspath $(dir $@))) \
--target-list=riscv64-softmmu
$(MAKE) -C $(qemu_wrkdir)
$(MAKE) -C $(qemu_wrkdir) install
touch -c $@
.PHONY: uboot-menuconfig
uboot-menuconfig: $(uboot_wrkdir)/.config
$(MAKE) -C $(uboot_srcdir) O=$(dir $<) CROSS_COMPILE=$(CROSS_COMPILE) ARCH=riscv menuconfig
$(MAKE) -C $(uboot_srcdir) O=$(dir $<) CROSS_COMPILE=$(CROSS_COMPILE) ARCH=riscv savedefconfig
cp $(dir $<)defconfig $(uboot_defconfig)
$(uboot): $(uboot_srcdir) $(target_gcc)
rm -rf $(uboot_wrkdir)
mkdir -p $(uboot_wrkdir)
mkdir -p $(dir $@)
$(MAKE) -C $(uboot_srcdir) O=$(uboot_wrkdir) $(uboot_config)
$(MAKE) -C $(uboot_srcdir) O=$(uboot_wrkdir) CROSS_COMPILE=$(CROSS_COMPILE)
$(spl_tool_wrkdir)/spl_tool: $(spl_tool_srcdir)
rm -rf $(spl_tool_wrkdir)
cp -ar $< $(spl_tool_wrkdir)
$(MAKE) -C $(spl_tool_wrkdir)
.PHONY: spl_tool
spl_tool: $(spl_tool_wrkdir)/spl_tool
$(spl_bin_normal_out): $(uboot) $(spl_tool_wrkdir)/spl_tool
$(spl_tool_wrkdir)/spl_tool -c -f $(uboot_wrkdir)/spl/u-boot-spl.bin
cp $(uboot_wrkdir)/spl/$(spl_bin_normal_out) $(wrkdir)
$(uboot_fit): $(sbi_bin) $(uboot_its_file) $(uboot)
$(uboot_wrkdir)/tools/mkimage -f $(uboot_its_file) -A riscv -O u-boot -T firmware $(uboot_fit)
$(rootfs): $(buildroot_rootfs_ext)
cp $< $@
$(buildroot_initramfs_sysroot): $(buildroot_initramfs_sysroot_stamp)
.PHONY: buildroot_initramfs_sysroot vmlinux fit uboot_fit
buildroot_initramfs_sysroot: $(buildroot_initramfs_sysroot)
vmlinux: $(vmlinux)
fit: $(fit)
uboot_fit: $(uboot_fit)
.PHONY: clean
clean:
rm -rf work/u-boot
rm -rf work/opensbi
rm -f work/*-vfat.part
rm -f work/image.fit
rm -f work/*_fw_payload.img
rm -f work/initramfs.cpio.gz
rm -f work/linux/vmlinux*
rm -f work/u-boot-spl.bin.normal.out
rm -f work/version
rm -rf $(spl_tool_wrkdir)
rm -rf $(perf_tool_wrkdir)
.PHONY: distclean
distclean:
rm -rf -- $(wrkdir) $(toolchain_dest)
.PHONY: sim
sim: $(spike) $(sbi_bin)
$(spike) --isa=$(ISA) -p4 $(sbi_bin)
.PHONY: qemu
qemu: $(qemu) $(sbi_bin) $(vmlinux) $(initramfs)
$(qemu) -nographic -machine virt -bios $(sbi_bin) -kernel $(vmlinux) -initrd $(initramfs) \
-netdev user,id=net0 -device virtio-net-device,netdev=net0
.PHONY: qemu-rootfs
qemu-rootfs: $(qemu) $(sbi_bin) $(vmlinux) $(initramfs) $(rootfs)
$(qemu) -nographic -machine virt -bios $(sbi_bin) -kernel $(vmlinux) -initrd $(initramfs) \
-drive file=$(rootfs),format=raw,id=hd0 -device virtio-blk-device,drive=hd0 \
-netdev user,id=net0 -device virtio-net-device,netdev=net0
.PHONY: uboot
uboot: $(uboot)
# Relevant partition type codes with GUID
SPL = 2E54B353-1271-4842-806F-E436D6AF6985
VFAT = EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
LINUX = 0FC63DAF-8483-4772-8E79-3D69D8477DE4
UBOOT = 5B193300-FC78-40CD-8002-E86C45580B47
UBOOTENV = a09354ac-cd63-11e8-9aff-70b3d592f0fa
UBOOTDTB = 070dd1a8-cd64-11e8-aa3d-70b3d592f0fa
UBOOTFIT = 04ffcafa-cd65-11e8-b974-70b3d592f0fa
# Note: The following are the sector number used to partition
# The default sector size is 512 Bytes
# The partition start should be align on 2048-sector boundaries
# expand the vfat size to 300+M for the vpu/jpu or other debug
SPL_START = 4096
SPL_END = 8191
UBOOT_START = 8192
UBOOT_END = 16383
UBOOT_SIZE = $(shell expr $(UBOOT_END) - $(UBOOT_START) + 1)
VFAT_START = 16384
VFAT_END = 614399
VFAT_SIZE = $(shell expr $(VFAT_END) - $(VFAT_START) + 1)
ROOT_START = 614400
$(vfat_image): $(fit) $(confdir)/jh7110_uEnv.txt $(confdir)/vf2_uEnv.txt $(confdir)/vf2_nvme_uEnv.txt
@if [ `du --apparent-size --block-size=512 $(uboot) | cut -f 1` -ge $(UBOOT_SIZE) ]; then \
echo "Uboot is too large for partition!!\nReduce uboot or increase partition size"; \
exit 1; fi
dd if=/dev/zero of=$(vfat_image) bs=512 count=$(VFAT_SIZE)
/sbin/mkfs.vfat $(vfat_image)
PATH=$(RVPATH) MTOOLS_SKIP_CHECK=1 mcopy -i $(vfat_image) $(fit) ::starfiveu.fit
PATH=$(RVPATH) MTOOLS_SKIP_CHECK=1 mcopy -i $(vfat_image) $(confdir)/jh7110_uEnv.txt ::jh7110_uEnv.txt
PATH=$(RVPATH) MTOOLS_SKIP_CHECK=1 mcopy -i $(vfat_image) $(confdir)/vf2_uEnv.txt ::vf2_uEnv.txt
PATH=$(RVPATH) MTOOLS_SKIP_CHECK=1 mcopy -i $(vfat_image) $(confdir)/vf2_nvme_uEnv.txt ::vf2_nvme_uEnv.txt
.PHONY: format-boot-loader
format-boot-loader: $(sbi_bin) $(uboot) $(fit) $(vfat_image) $(spl_bin_normal_out)
@test -b $(DISK) || (echo "$(DISK): is not a block device"; exit 1)
sudo /sbin/sgdisk --clear \
--new=1:$(SPL_START):$(SPL_END) --change-name=1:"spl" --typecode=1:$(SPL) \
--new=2:$(UBOOT_START):$(UBOOT_END) --change-name=2:"uboot" --typecode=2:$(UBOOT) \
--new=3:$(VFAT_START):$(VFAT_END) --change-name=3:"image" --typecode=3:$(VFAT) \
--new=4:$(ROOT_START):0 --change-name=4:"root" --typecode=4:$(LINUX) \
$(DISK)
-/sbin/partprobe
@sleep 1
ifeq ($(DISK)p1,$(wildcard $(DISK)p1))
@$(eval PART1 := $(DISK)p1)
@$(eval PART2 := $(DISK)p2)
@$(eval PART3 := $(DISK)p3)
@$(eval PART4 := $(DISK)p4)
else ifeq ($(DISK)s1,$(wildcard $(DISK)s1))
@$(eval PART1 := $(DISK)s1)
@$(eval PART2 := $(DISK)s2)
@$(eval PART3 := $(DISK)s3)
@$(eval PART4 := $(DISK)s4)
else ifeq ($(DISK)1,$(wildcard $(DISK)1))
@$(eval PART1 := $(DISK)1)
@$(eval PART2 := $(DISK)2)
@$(eval PART3 := $(DISK)3)
@$(eval PART4 := $(DISK)4)
else
@echo Error: Could not find bootloader partition for $(DISK)
@exit 1
endif
sudo dd if=$(spl_bin_normal_out) of=$(PART1) bs=4096
sudo dd if=$(uboot_fit) of=$(PART2) bs=4096
sudo dd if=$(vfat_image) of=$(PART3) bs=4096
sync; sleep 1;
#starfive image
format-rootfs-image: format-boot-loader
@echo "Done setting up basic initramfs boot. We will now try to install"
@echo "a Debian snapshot to the Linux partition, which requires sudo"
@echo "you can safely cancel here"
sudo /sbin/mke2fs -t ext4 $(PART4)
-mkdir -p tmp-mnt
-mkdir -p tmp-rootfs
-sudo mount $(PART4) tmp-mnt && \
sudo mount -o loop $(buildroot_rootfs_ext) tmp-rootfs&& \
sudo cp -fr tmp-rootfs/* tmp-mnt/
sync; sleep 1;
sudo umount tmp-mnt
sudo umount tmp-rootfs
rmdir tmp-mnt
rmdir tmp-rootfs
.PHONY: sdimg img
sdimg: $(buildroot_rootfs_ext)
@./genimage.sh
img: sdimg $(spl_tool_wrkdir)/spl_tool
$(spl_tool_wrkdir)/spl_tool -i -f $(wrkdir)/sdcard.img
#usb config
format-usb-disk: $(sbi_bin) $(uboot) $(fit) $(vfat_image)
@test -b $(DISK) || (echo "$(DISK): is not a block device"; exit 1)
/sbin/sgdisk --clear \
--new=1:0:+256M --change-name=1:"Vfat Boot" --typecode=1:$(VFAT) \
--new=2:0:+1G --change-name=2:uboot --typecode=2:$(UBOOT) -g\
$(DISK)
-/sbin/partprobe
@sleep 1
ifeq ($(DISK)p1,$(wildcard $(DISK)p1))
@$(eval PART1 := $(DISK)p1)
@$(eval PART2 := $(DISK)p2)
else ifeq ($(DISK)s1,$(wildcard $(DISK)s1))
@$(eval PART1 := $(DISK)s1)
@$(eval PART2 := $(DISK)s2)
else ifeq ($(DISK)1,$(wildcard $(DISK)1))
@$(eval PART1 := $(DISK)1)
@$(eval PART2 := $(DISK)2)
else
@echo Error: Could not find bootloader partition for $(DISK)
@exit 1
endif
dd if=$(uboot) of=$(PART2) bs=4096
dd if=$(vfat_image) of=$(PART1) bs=4096
DEB_IMAGE := debian_nvdla_20190506.tar.xz
DEB_URL := https://github.com/sifive/freedom-u-sdk/releases/download/nvdla-demo-0.1
DEMO_IMAGE := sifive-debian-demo-mar7.tar.xz
DEMO_URL := https://github.com/tmagik/freedom-u-sdk/releases/download/hifiveu-2.0-alpha.1/
#nvdla image
format-nvdla-image: format-boot-loader
@echo "Done setting up basic initramfs boot. We will now try to install"
@echo "a Debian snapshot to the Linux partition, which requires sudo"
@echo "you can safely cancel here"
@test -e $(wrkdir)/$(DEB_IMAGE) || (wget -P $(wrkdir) $(DEB_URL)/$(DEB_IMAGE))
/sbin/mke2fs -t ext4 $(PART4)
-mkdir -p tmp-mnt
-mount $(PART4) tmp-mnt && \
echo "please wait until checkpoint reaches 489k" && \
tar Jxf $(wrkdir)/$(DEB_IMAGE) -C tmp-mnt --checkpoint=1000
umount tmp-mnt
#demo image
format-demo-image: format-boot-loader
@echo "Done setting up basic initramfs boot. We will now try to install"
@echo "a Debian snapshot to the Linux partition, which requires sudo"
@echo "you can safely cancel here"
/sbin/mke2fs -t ext4 $(PART4)
-mkdir tmp-mnt
-sudo mount $(PART4) tmp-mnt && cd tmp-mnt && \
sudo wget $(DEMO_URL)$(DEMO_IMAGE) && \
sudo tar -Jxvf $(DEMO_IMAGE)
sudo umount tmp-mnt
-include $(initramfs).d

420
README.md Executable file
View File

@@ -0,0 +1,420 @@
# StarFiveTech VisionFive2 SDK
This builds a complete RISC-V cross-compile toolchain for the `StarFiveTech` `JH7110` SoC. It also builds U-boot SPL, U-boot and a flattened image tree (FIT) image with a Opensbi binary, linux kernel, device tree, ramdisk image and rootfs image for the `JH7110 VisionFive2` board. Note this SDK is built with the linux kernel version `6.1`.
## Prerequisites
Recommend OS: Ubuntu 16.04/18.04/20.04/22.04 x86_64
Install required additional packages:
```
$ sudo apt update
$ sudo apt-get install build-essential automake libtool texinfo bison flex gawk
g++ git xxd curl wget gdisk gperf cpio bc screen texinfo unzip libgmp-dev
libmpfr-dev libmpc-dev libssl-dev libncurses-dev libglib2.0-dev libpixman-1-dev
libyaml-dev patchutils python3-pip zlib1g-dev device-tree-compiler dosfstools
mtools kpartx rsync
```
Additional packages for Git LFS support:
```
$ curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
$ sudo apt-get install git-lfs
```
## Fetch Code Instructions ##
Checkout this repository (e.g.: branch `vf2-6.1.y-devel`). Then checkout all of the linked submodules using:
$ git clone git@192.168.110.45:sbc/visionfive.git
$ cd visionfive
$ git checkout --track origin/vf2-6.1.y-devel
$ git submodule update --init --recursive
In case someone run `git clone git@gitlab.starfivetech.com:sbc/visionfive.git`, recommend to add the below at the tail of the /etc/hosts to fix the network domain issue:
```
192.168.110.45 gitlab.starfivetech.com
```
This will take some time and require around 9GB of disk space. Some modules may fail because certain dependencies don't have the best git hosting. The only solution is to wait and try again later (or ask someone for a copy of that source repository).
For user who build the release tag version, the above command is enough. For developer, need to switch the 5 submodules `buildroot`, `u-boot`, `linux`, `opensbi`, `soft_3rdpart` to correct branch manually, or refer to `.gitmodule`
```
$ cd buildroot && git checkout --track origin/jh7110-master && cd ..
$ cd u-boot && git checkout --track origin/jh7110-master && cd ..
$ cd linux && git checkout --track origin/vf2-6.1.y-devel && cd ..
$ cd opensbi && git checkout master && cd ..
$ cd soft_3rdpart && git checkout jh7110-devel && cd ..
```
## Quick Build Instructions
Below are the quick building for the initramfs image `image.fit` which could be translated to board through tftp and run on board. The completed toolchain, `u-boot-spl.bin.normal.out`, `visionfive2_fw_payload.img`, `image.fit` will be generated under `work/` directory. The completed build tree will consume about 18G of disk space.
$ make -j$(nproc)
Then the below target files will be generated, copy files to tftp server workspace path:
```
work/
├── visionfive2_fw_payload.img
├── image.fit
├── initramfs.cpio.gz
├── u-boot-spl.bin.normal.out
├── linux/arch/riscv/boot
├── dts
│ └── starfive
│ ├── jh7110-visionfive-v2-A10.dtb
│ ├── jh7110-visionfive-v2-A11.dtb
│ ├── jh7110-visionfive-v2-ac108.dtb
│ ├── jh7110-visionfive-v2.dtb
│ ├── jh7110-visionfive-v2-wm8960.dtb
│ ├── vf2-overlay
│ │ └── vf2-overlay-uart3-i2c.dtbo
└── Image.gz
```
Additional command to config buildroot, uboot, linux, busybox:
```
$ make buildroot_initramfs-menuconfig # buildroot initramfs menuconfig
$ make buildroot_rootfs-menuconfig # buildroot rootfs menuconfig
$ make uboot-menuconfig # uboot menuconfig
$ make linux-menuconfig # Kernel menuconfig
$ make -C ./work/buildroot_initramfs/ O=./work/buildroot_initramfs busybox-menuconfig # for initramfs busybox menuconfig
$ make -C ./work/buildroot_rootfs/ O=./work/buildroot_rootfs busybox-menuconfig # for rootfs busybox menuconfig
```
Additional command to build single package or module:
```
$ make vmlinux # build linux kernel
$ make uboot # build u-boot
$ make -C ./work/buildroot_rootfs/ O=./work/buildroot_rootfs busybox-rebuild # build busybox package
$ make -C ./work/buildroot_rootfs/ O=./work/buildroot_rootfs ffmpeg-rebuild # build ffmpeg package
```
## Running on JH7110 VisionFive2 Board via Network
After the JH7110 VisionFive2 Board is properly connected to the serial port cable, network cable and power cord, turn on the power from the wall power socket to power and you will see the startup information as follows:
```
U-Boot SPL 2021.10 (Oct 31 2022 - 12:11:37 +0800)
DDR version: dc2e84f0.
Trying to boot from SPI
OpenSBI v1.0
____ _____ ____ _____
/ __ \ / ____| _ \_ _|
| | | |_ __ ___ _ __ | (___ | |_) || |
| | | | '_ \ / _ \ '_ \ \___ \| _ < | |
| |__| | |_) | __/ | | |____) | |_) || |_
\____/| .__/ \___|_| |_|_____/|____/_____|
| |
|_|
Platform Name : StarFive VisionFive V2
Platform Features : medeleg
Platform HART Count : 5
Platform IPI Device : aclint-mswi
Platform Timer Device : aclint-mtimer @ 4000000Hz
Platform Console Device : uart8250
Platform HSM Device : ---
Platform Reboot Device : ---
Platform Shutdown Device : ---
Firmware Base : 0x40000000
Firmware Size : 360 KB
Runtime SBI Version : 0.3
Domain0 Name : root
Domain0 Boot HART : 3
Domain0 HARTs : 0*,1*,2*,3*,4*
Domain0 Region00 : 0x0000000002000000-0x000000000200ffff (I)
Domain0 Region01 : 0x0000000040000000-0x000000004007ffff ()
Domain0 Region02 : 0x0000000000000000-0xffffffffffffffff (R,W,X)
Domain0 Next Address : 0x0000000040200000
Domain0 Next Arg1 : 0x0000000042200000
Domain0 Next Mode : S-mode
Domain0 SysReset : yes
Boot HART ID : 3
Boot HART Domain : root
Boot HART Priv Version : v1.11
Boot HART Base ISA : rv64imafdcbx
Boot HART ISA Extensions : none
Boot HART PMP Count : 8
Boot HART PMP Granularity : 4096
Boot HART PMP Address Bits: 34
Boot HART MHPM Count : 2
Boot HART MIDELEG : 0x0000000000000222
Boot HART MEDELEG : 0x000000000000b109
U-Boot 2021.10 (Oct 31 2022 - 12:11:37 +0800), Build: jenkins-VF2_515_Branch_SDK_Release-10
CPU: rv64imacu
Model: StarFive VisionFive V2
DRAM: 8 GiB
MMC: sdio0@16010000: 0, sdio1@16020000: 1
Loading Environment from SPIFlash... SF: Detected gd25lq128 with page size 256 Bytes, erase size 4 KiB, total 16 MiB
*** Warning - bad CRC, using default environment
StarFive EEPROM format v2
--------EEPROM INFO--------
Vendor : StarFive Technology Co., Ltd.
Product full SN: VF7110A1-2243-D008E000-00000001
data version: 0x2
PCB revision: 0xa1
BOM revision: A
Ethernet MAC0 address: 6c:cf:39:00:14:5b
Ethernet MAC1 address: 6c:cf:39:00:14:5c
--------EEPROM INFO--------
In: serial@10000000
Out: serial@10000000
Err: serial@10000000
Model: StarFive VisionFive V2
Net: eth0: ethernet@16030000, eth1: ethernet@16040000
switch to partitions #0, OK
mmc1 is current device
found device 1
bootmode flash device 1
Failed to load 'uEnv.txt'
Can't set block device
Hit any key to stop autoboot: 0
StarFive #
```
Then press any key to stop and enter uboot terminal, there are two way to boot the board
#### 1. Running image.fit with the default dtb `jh7110-visionfive-v2.dtb`
transfer image.fit through TFTP:
Step1: set environment parameters:
```
setenv ipaddr 192.168.xxx.xxx; setenv serverip 192.168.xxx.xxx;
```
Step2: upload image file to ddr:
```
tftpboot ${loadaddr} image.fit;
```
Step3: load and execute:
```
bootm start ${loadaddr};bootm loados ${loadaddr};run chipa_set_linux;run cpu_vol_set; booti ${kernel_addr_r} ${ramdisk_addr_r}:${filesize} ${fdt_addr_r};
```
When you see the `buildroot login:` message, then congratulations, the launch was successful
```
buildroot login:root
Password: starfive
```
#### 2. Running the other dtb with the Image.gz and initramfs.cpio.gz
If we want to load the other dtb, e.g. `jh7110-visionfive-v2-wm8960.dtb`, follow the below
Step1: set environment parameters:
```
setenv ipaddr 192.168.xxx.xxx; setenv serverip 192.168.xxx.xxx;
```
Step2: upload files to ddr:
```
tftpboot ${fdt_addr_r} jh7110-visionfive-v2-wm8960.dtb;
tftpboot ${kernel_addr_r} Image.gz;
tftpboot ${ramdisk_addr_r} initramfs.cpio.gz;
run chipa_set_linux;run cpu_vol_set;
```
Step3: load and execute:
```
booti ${kernel_addr_r} ${ramdisk_addr_r}:${filesize} ${fdt_addr_r}
```
When you see the `buildroot login:` message, then congratulations, the launch was successful
```
buildroot login:root
Password: starfive
```
## APPENDIX I: Generate Booting SD Card
If you don't already use a local tftp server, then you probably want to make the TF card target; the default size is 16 GBs. **NOTE THIS WILL DESTROY ALL EXISTING DATA** on the target TF card; The `GPT` Partition Table for the TF card is recommended.
#### Generate SD Card Image File
We could generate a sdcard image file by the below command. The sdcard image file could be copied to sd card or tf card through `dd` command, or `rpi-imager` or `balenaEtcher` tool
```
$ make -j$(nproc)
$ make buildroot_rootfs -j$(nproc)
$ make img
```
The output file `work/sdcard.img` will be generated.
#### Copy Image File to SD Card
The `sdcard.img` can be copied to a tf card. e.g. through `dd` command as below
```
$ sudo dd if=work/sdcard.img of=/dev/sdX bs=4096
$ sync
```
Then extend the tf card rootfs partition if needed. There are two ways to implement it.
The first way could be done on Ubuntu host, need to install the below package:
```
$ sudo apt install cloud-guest-utils e2fsprogs
```
Then insert the tf card to Ubuntu host, run the below, note `/dev/sdX` is the tf card device.
```
$ sudo growpart /dev/sdX 4 # extend partition 4
$ sudo e2fsck -f /dev/sdX4
$ sudo resize2fs /dev/sdX4 # extend filesystem
$ sudo fsck.ext4 /dev/sdX4
```
The second way could be done on VisionFive2 board, use fdisk and resize2fs command
```
# fdisk /dev/mmcblk1
Welcome to fdisk (util-linux 2.37.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
This disk is currently in use - repartitioning is probably a bad idea.
It's recommended to umount all file systems, and swapoff all swap
partitions on this disk.
Command (m for help): d
Partition number (1-4, default 4): 4
Partition 4 has been deleted.
Command (m for help): n
Partition number (4-128, default 4): 4
First sector (614400-62333918, default 614400):
): t sector, +/-sectors or +/-size{K,M,G,T,P} (614400-62333918, default 62333918)
Created a new partition 4 of type 'Linux filesystem' and of size 29.4 GiB.
Partition #4 contains a ext4 signature.
Do you want to remove the signature? [Y]es/[N]o: N
Command (m for help): w
The partition table has been altered.
Syncing disks.
# resize2fs /dev/mmcblk1p4
resize2fs 1.46.4 (18-Aug-2021)
Filesystem at /d[
111.756178] EXT4-fs (mmcblk1p4): resizing filesystem from 512000
to 30859756 blocks
ev/mmcblk1p4 is [
111.765203] EXT4-fs (mmcblk1p4): resizing filesystem from 512000
to 30859265 blocks
mounted on /; on-line resizing required
old_desc_blocks = 2, new_desc_blocks = 118
[ 112.141953] random: crng init done
[ 112.145369] random: 7 urandom warning(s) missed due to ratelimiting
[ 115.474184] EXT4-fs (mmcblk1p4): resized filesystem to 30859265
The filesystem on /dev/mmcblk1p4 is now 30859756 (1k) blocks long.
```
If you need to add a new partition, such as a swap partition (here we do set the rest of disk space to swap partition,
but normally swap partition size should be the same as DDR size or double of DDR size),
you can use the following shell script afer the image running on board:
```bash
#!bin/sh
sgdisk -e /dev/mmcblk0
disk=/dev/mmcblk0
gdisk $disk << EOF
p
n
5
8200
p
c
5
hibernation
w
y
EOF
mkswap /dev/mmcblk0p5
swapoff -a
swapon /dev/mmcblk0p5
```
## APPENDIX II: Using DTB Overlay Dynamically
The system support loading dtb overlay dynamically when the board is running. Run below on board:
```
# mount -t configfs none /sys/kernel/config
# mkdir -p /sys/kernel/config/device-tree/overlays/dtoverlay
# cd <the dtoverlay.dtbo path>
# cat vf2-overlay-uart3-i2c.dtbo > /sys/kernel/config/device-tree/overlays/dtoverlay/dtbo
```
Additional, you could remove the dtbo feature:
```
# rmdir /sys/kernel/config/device-tree/overlays/dtoverlay
```
## APPENDIX III: Updating SPL and U-Boot binaries Under U-boot
Prepare the tftp sever. e.g. `sudo apt install tftpd-hpa` for Ubuntu host.
1. Power on the VisionFive2 board and wait until enters the u-boot command line
2. Configure the environment variables by executing:
```
StarFive # setenv ipaddr 192.168.120.222;setenv serverip 192.168.120.99
```
3. Check the connectivity by pinging the host PC from evaluation board;
4. Initialize SPI flash:
```
StarFive # sf probe
```
5. Update SPL binary
```
StarFive # tftpboot ${loadaddr} u-boot-spl.bin.normal.out
StarFive # sf update ${loadaddr} 0x0 $filesize
```
6. Update U-Boot binary
```
StarFive # tftpboot ${loadaddr} visionfive2_fw_payload.img
StarFive # sf update ${loadaddr} 0x100000 $filesize
```
## APPENDIX IV: Recovering Bootloader
The SPL and U-Boot are stored inside the SPI flash on board. There may be situations where you accidentally emptied the flash or if the flash is damaged on your board. In these situations, it's better to recover the bootloader.
Please jump to https://github.com/starfive-tech/Tools for more details

View File

@@ -0,0 +1,24 @@
adapter_khz 10000
interface ftdi
ftdi_device_desc "Dual RS232-HS"
ftdi_vid_pid 0x0403 0x6010
ftdi_layout_init 0x0008 0x001b
ftdi_layout_signal nSRST -oe 0x0020 -data 0x0020
set _CHIPNAME riscv
jtag newtap $_CHIPNAME cpu -irlen 5
set _TARGETNAME $_CHIPNAME.cpu
target create $_TARGETNAME riscv -chain-position $_TARGETNAME -rtos riscv
$_TARGETNAME configure -work-area-phys 0x80000000 -work-area-size 10000 -work-area-backup 1
flash bank onboard_spi_flash fespi 0x20000000 0 0 0 $_TARGETNAME 0x10040000
init
halt
# Uncomment this if you want to be able to clobber your SPI Flash, which
# probably you don't since you can do it through Linux
# flash protect 0 0 last off

101
build.sh Executable file
View File

@@ -0,0 +1,101 @@
#!/bin/bash
##################################################################
## ##
## SPDX-License-Identifier: GPL-2.0-or-later ##
## ##
## Copyright (C) 2018-2022 Starfive Technology ##
## ##
## Author: jason zhou <jason.zhou@starfivetech.com> ##
## ##
##################################################################
COLOR_NORMAL="\033[0m"
COLOR_GREEN="\033[1;32m"
COLOR_YELLOW="\033[1;33m"
COLOR_RED="\033[1;31m"
COLOR_GREY="\033[1;30m"
printf ${COLOR_GREEN}
printf "JH7110 Build Script"
echo $0 $1
#default
cpu_numb_input="1"
#real cpu number
num=`cat /proc/cpuinfo | grep "processor" | wc -l`
if [ $1 ]
then
#cmdline para input cpu processor number
echo $1
cpu_numb_input=$1
else
printf "please input the cpu number to perform concurrent build, choose 1 ~ $num:\n"
read cpu_numb_input
fi
if (( $cpu_numb_input > $num ))
then
echo "input > $num error, exit"
exit 1
fi
if (( $cpu_numb_input < 1 ))
then
echo "input < 1 error, exit"
exit 1
fi
printf ${COLOR_NORMAL}
# clean all including rootfs
#rm -rf work/
# clean kernel built
#make clean
tag=`git describe`
echo "make -j$cpu_numb_input > build.$tag.log"
make -j$cpu_numb_input | tee build.$tag.log
if (( $? > 0 ))
then
echo "build failed! exit!"
exit 1
fi
echo "./build_soft_3rdpart.sh >> build.$tag.log"
./build_soft_3rdpart.sh | tee -a build.$tag.log
if (( $? > 0 ))
then
echo "build 3rd part software failed! exit!"
exit 1
fi
echo "rm initramfs, than rebuild"
rm -rf work/initramfs.cpio.gz | tee -a build.$tag.log
echo "make -j$cpu_numb_input >> build.$tag.log"
make -j$cpu_numb_input | tee -a build.$tag.log
if (( $? > 0 ))
then
echo "build failed! exit!"
exit 1
else
echo "build images success!!!"
fi
echo ""
echo "Rootfs & Kernel version string:" | tee -a build.$tag.log
strings work/image.fit | grep "JH7110_51" | tee -a build.$tag.log
echo ""
echo "u-boot version string:" | tee -a build.$tag.log
strings work/u-boot/u-boot.bin | grep "JH7110_51" | tee -a build.$tag.log

88
build_soft_3rdpart.sh Executable file
View File

@@ -0,0 +1,88 @@
#!/bin/bash
TOP_DIR=$(pwd)
# parse the args to install to initramfs or rootfs target path
if [ $# -eq 0 ]; then
Target_DIR="$TOP_DIR/work/buildroot_initramfs_sysroot/root/"
else
if [ "$1" = "initramfs" ]; then
Target_DIR="$TOP_DIR/work/buildroot_initramfs_sysroot/root/"
elif [ "$1" = "rootfs" ]; then
Target_DIR="$TOP_DIR/work/buildroot_rootfs/target/root/"
else
echo "Usage: $0 [initramfs|rootfs]"
echo "If not specify args, the default is initramfs"
echo "For example:"
echo " $0";
echo " $0 initramfs";
echo " $0 rootfs";
exit 1
fi
fi
echo "$Target_DIR"
if [ ! -d $Target_DIR ]; then
echo "Warning: need building the usdk firstly: $1"
exit 1
fi
################################################################
# 1. jpu drvier and test script
JPU_SRC_DIR="./soft_3rdpart/codaj12/"
if [ -d $Target_DIR/jpu_driver ]; then
rm -rf $Target_DIR/jpu_driver
fi
cd $JPU_SRC_DIR && ./build_for_riscv.sh && cp -ar jpu_driver/ $Target_DIR/
cd $TOP_DIR
echo "install jpu ok"
################################################################
# 2. vpu dec drvier and test script
VDEC_SRC_DIR="./soft_3rdpart/wave511/code/"
if [ -d $Target_DIR/vdec_driver ]; then
rm -rf $Target_DIR/vdec_driver
fi
cd $VDEC_SRC_DIR && ./build_for_vdec.sh && cp -ar vdec_driver/ $Target_DIR/
cd $TOP_DIR
echo "install vdec ok"
################################################################
# 3. vpu enc drvier and test script
VENC_SRC_DIR="./soft_3rdpart/wave420l/code/"
if [ -d $Target_DIR/venc_driver ]; then
rm -rf $Target_DIR/venc_driver
fi
cd $VENC_SRC_DIR && ./build.sh && cp -ar venc_driver/ $Target_DIR/
cd $TOP_DIR
echo "install venc ok"
################################################################
# 4. mailbox driver and test demo
# How to test: refer to soft_3rdpart/mailbox/mailbox_test.docx
if [ -d $Target_DIR/mailbox ]; then
rm -rf $Target_DIR/mailbox
fi
mkdir -p $Target_DIR/mailbox
cp work/linux/drivers/mailbox/starfive_mailbox.ko \
work/linux/drivers/mailbox/starfive_mailbox-test.ko \
soft_3rdpart/mailbox/read_test $Target_DIR/mailbox
chmod +x $Target_DIR/mailbox/read_test
echo "install mailbox ok"
################################################################
# 5. e24 driver and test demo
# How to test: refer to soft_3rdpart/e24/e24_test.docx
if [ -d $Target_DIR/e24 ]; then
rm -rf $Target_DIR/e24
fi
mkdir -p $Target_DIR/e24
# install e24 firmware
cp soft_3rdpart/e24/e24_elf $Target_DIR/../lib/firmware/
# install e24 driver and test demo
cp work/linux/drivers/e24/e24.ko \
soft_3rdpart/e24/e24_share_mem $Target_DIR/e24
echo "install e24 ok"
################################################################
# 6. xrp driver
cp work/linux/drivers/xrp/xrp.ko $Target_DIR/

1
buildroot Submodule

Submodule buildroot added at e9498352a8

274
conf/buildroot_initramfs_config Executable file
View File

@@ -0,0 +1,274 @@
BR2_riscv=y
BR2_riscv_custom=y
BR2_RISCV_ISA_CUSTOM_RVM=y
BR2_RISCV_ISA_CUSTOM_RVF=y
BR2_RISCV_ISA_CUSTOM_RVD=y
BR2_RISCV_ISA_CUSTOM_RVC=y
BR2_STRIP_EXCLUDE_FILES="ipa_starfive.so* libcamera-base.so* libcamera.so* libgstlibcamera.so v4l2-compat.so starfive_ipa_proxy"
BR2_KERNEL_HEADERS_CUSTOM_GIT=y
BR2_KERNEL_HEADERS_CUSTOM_REPO_URL="git@192.168.110.45:sbc/linux.git"
BR2_KERNEL_HEADERS_CUSTOM_REPO_VERSION="vf2-6.1.y-devel"
BR2_PACKAGE_GLIBC_UTILS=y
BR2_BINUTILS_VERSION_2_39_X=y
BR2_GCC_VERSION_12_X=y
BR2_TOOLCHAIN_BUILDROOT_CXX=y
BR2_TOOLCHAIN_BUILDROOT_FORTRAN=y
BR2_GCC_ENABLE_LTO=y
BR2_GCC_ENABLE_OPENMP=y
BR2_PACKAGE_HOST_GDB=y
BR2_PACKAGE_HOST_GDB_TUI=y
BR2_PACKAGE_HOST_GDB_PYTHON3=y
BR2_PACKAGE_HOST_GDB_SIM=y
BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_COPY=y
BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
BR2_TARGET_GENERIC_ROOT_PASSWD="starfive"
BR2_SYSTEM_DHCP="eth0"
BR2_SYSTEM_DHCP_DUAL="eth1"
BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
BR2_PACKAGE_ALSA_UTILS=y
BR2_PACKAGE_ALSA_UTILS_ALSACONF=y
BR2_PACKAGE_ALSA_UTILS_ALSALOOP=y
BR2_PACKAGE_ALSA_UTILS_AMIXER=y
BR2_PACKAGE_ALSA_UTILS_APLAY=y
BR2_PACKAGE_ALSA_UTILS_ASEQDUMP=y
BR2_PACKAGE_ALSA_UTILS_SPEAKER_TEST=y
BR2_PACKAGE_BLUEZ_ALSA=y
BR2_PACKAGE_BLUEZ_ALSA_HCITOP=y
BR2_PACKAGE_BLUEZ_ALSA_RFCOMM=y
BR2_PACKAGE_FFMPEG_GPL=y
BR2_PACKAGE_FFMPEG_FFPROBE=y
BR2_PACKAGE_FFMPEG_AVRESAMPLE=y
BR2_PACKAGE_FFMPEG_POSTPROC=y
BR2_PACKAGE_GSTREAMER1=y
BR2_PACKAGE_GST1_PLUGINS_BASE_INSTALL_TOOLS=y
BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_AUDIORATE=y
BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_AUDIOTESTSRC=y
BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_ENCODING=y
BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_RAWPARSE=y
BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VIDEORATE=y
BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_ALSA=y
BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_OGG=y
BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_OPUS=y
BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VORBIS=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_JPEG=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PNG=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_AUDIOPARSERS=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_AUTODETECT=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_DEBUGUTILS=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_DEINTERLACE=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_FLV=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_ID3DEMUX=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_INTERLEAVE=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_LAW=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_LEVEL=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_MATROSKA=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_MULTIFILE=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_MULTIPART=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_RTSP=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_VIDEOCROP=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_VIDEOFILTER=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_VIDEOMIXER=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_WAVENC=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_LAME=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_V4L2=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_V4L2_PROBE=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_FLAC=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_PULSE=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_VPX=y
BR2_PACKAGE_GST1_PLUGINS_BAD=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_AUTOCONVERT=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_BAYER=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_DEBUGUTILS=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_ID3TAG=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_JPEGFORMAT=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MPEGDEMUX=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MPEGTSDEMUX=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_RAWPARSE=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SPEED=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VIDEOFILTERS=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VIDEOFRAME_AUDIOLEVEL=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VIDEOPARSERS=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_FBDEV=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_HLS=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_KMS=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_OPUS=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SNDFILE=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_X265=y
BR2_PACKAGE_GST1_PLUGINS_UGLY=y
BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_ASFDEMUX=y
BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_MPEG2DEC=y
BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_X264=y
BR2_PACKAGE_GST1_DEVTOOLS=y
BR2_PACKAGE_GST1_INTERPIPE=y
BR2_PACKAGE_GST1_LIBAV=y
BR2_PACKAGE_GST1_RTSP_SERVER=y
BR2_PACKAGE_GST1_SHARK=y
BR2_PACKAGE_GSTD=y
BR2_PACKAGE_GSTREAMER1_EDITING_SERVICES=y
BR2_PACKAGE_CACHE_CALIBRATOR=y
BR2_PACKAGE_DHRYSTONE=y
BR2_PACKAGE_FIO=y
BR2_PACKAGE_GDB=y
BR2_PACKAGE_IOZONE=y
BR2_PACKAGE_LMBENCH=y
BR2_PACKAGE_RAMSMP=y
BR2_PACKAGE_RAMSPEED=y
BR2_PACKAGE_RT_TESTS=y
BR2_PACKAGE_STRACE=y
BR2_PACKAGE_STRESS_NG=y
BR2_PACKAGE_WHETSTONE=y
BR2_PACKAGE_FLEX=y
BR2_PACKAGE_TREE=y
BR2_PACKAGE_DOSFSTOOLS=y
BR2_PACKAGE_DOSFSTOOLS_FATLABEL=y
BR2_PACKAGE_DOSFSTOOLS_FSCK_FAT=y
BR2_PACKAGE_DOSFSTOOLS_MKFS_FAT=y
BR2_PACKAGE_E2FSPROGS=y
BR2_PACKAGE_E2FSPROGS_RESIZE2FS=y
BR2_PACKAGE_EXFAT=y
BR2_PACKAGE_EXFAT_UTILS=y
BR2_PACKAGE_EXFATPROGS=y
BR2_PACKAGE_MTD=y
# BR2_PACKAGE_MTD_NANDDUMP is not set
# BR2_PACKAGE_MTD_NANDTEST is not set
# BR2_PACKAGE_MTD_NANDWRITE is not set
# BR2_PACKAGE_MTD_UBIATTACH is not set
# BR2_PACKAGE_MTD_UBICRC32 is not set
# BR2_PACKAGE_MTD_UBIDETACH is not set
# BR2_PACKAGE_MTD_UBIFORMAT is not set
# BR2_PACKAGE_MTD_UBIMKVOL is not set
# BR2_PACKAGE_MTD_UBINFO is not set
# BR2_PACKAGE_MTD_UBINIZE is not set
# BR2_PACKAGE_MTD_UBIRENAME is not set
# BR2_PACKAGE_MTD_UBIRMVOL is not set
# BR2_PACKAGE_MTD_UBIRSVOL is not set
# BR2_PACKAGE_MTD_UBIUPDATEVOL is not set
# BR2_PACKAGE_MTD_UBIBLOCK is not set
BR2_PACKAGE_NFS_UTILS=y
BR2_PACKAGE_NTFS_3G=y
BR2_PACKAGE_DEJAVU=y
BR2_PACKAGE_GLMARK2=y
BR2_PACKAGE_WESTON=y
BR2_PACKAGE_WESTON_DEMO_CLIENTS=y
BR2_PACKAGE_LINUX_FIRMWARE=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_AX210=y
BR2_PACKAGE_LINUX_FIRMWARE_RTL_8169=y
# BR2_PACKAGE_EUDEV_ENABLE_HWDB is not set
BR2_PACKAGE_EVTEST=y
BR2_PACKAGE_GPTFDISK=y
BR2_PACKAGE_GPTFDISK_GDISK=y
BR2_PACKAGE_GPTFDISK_SGDISK=y
BR2_PACKAGE_I2C_TOOLS=y
BR2_PACKAGE_LM_SENSORS=y
BR2_PACKAGE_MEMTESTER=y
BR2_PACKAGE_OFONO=y
BR2_PACKAGE_PARTED=y
BR2_PACKAGE_PCIUTILS=y
BR2_PACKAGE_RNG_TOOLS=y
BR2_PACKAGE_SYSSTAT=y
BR2_PACKAGE_PYTHON3=y
BR2_PACKAGE_CA_CERTIFICATES=y
BR2_PACKAGE_GNUTLS_OPENSSL=y
BR2_PACKAGE_LIBKCAPI=y
BR2_PACKAGE_LIBKCAPI_ENCAPP=y
BR2_PACKAGE_LIBKCAPI_RNGAPP=y
BR2_PACKAGE_LIBKCAPI_SPEED=y
BR2_PACKAGE_LIBKCAPI_TEST=y
BR2_PACKAGE_LIBOPENSSL_BIN=y
BR2_PACKAGE_LIBOPENSSL_ENGINES=y
BR2_PACKAGE_LIBDRM_INSTALL_TESTS=y
BR2_PACKAGE_WAYLAND_UTILS=y
BR2_PACKAGE_DTC=y
BR2_PACKAGE_DTC_PROGRAMS=y
BR2_PACKAGE_LIBGPIOD=y
BR2_PACKAGE_LIBGPIOD_TOOLS=y
BR2_PACKAGE_LIBV4L_UTILS=y
BR2_PACKAGE_LIBCAMERA=y
BR2_PACKAGE_LIBCAMERA_V4L2=y
BR2_PACKAGE_LIBCAMERA_PIPELINE_UVCVIDEO=y
BR2_PACKAGE_LIBCAMERA_PIPELINE_STARFIVE=y
BR2_PACKAGE_LIBCURL=y
BR2_PACKAGE_LIBCURL_CURL=y
BR2_PACKAGE_LIBCURL_VERBOSE=y
BR2_PACKAGE_LIBCAP=y
BR2_PACKAGE_LIBCAP_TOOLS=y
BR2_PACKAGE_BLUEZ_TOOLS=y
BR2_PACKAGE_BLUEZ5_UTILS_OBEX=y
BR2_PACKAGE_BLUEZ5_UTILS_CLIENT=y
BR2_PACKAGE_BLUEZ5_UTILS_DEPRECATED=y
BR2_PACKAGE_BLUEZ5_UTILS_EXPERIMENTAL=y
BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_HEALTH=y
BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_MESH=y
BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_MIDI=y
BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_NFC=y
BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_SAP=y
BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_SIXAXIS=y
BR2_PACKAGE_BLUEZ5_UTILS_TEST=y
BR2_PACKAGE_BLUEZ5_UTILS_TOOLS_HID2HCI=y
BR2_PACKAGE_BRCM_PATCHRAM_PLUS=y
BR2_PACKAGE_CAN_UTILS=y
BR2_PACKAGE_DHCP=y
BR2_PACKAGE_DHCP_SERVER=y
BR2_PACKAGE_DHCP_SERVER_DELAYED_ACK=y
BR2_PACKAGE_DROPBEAR=y
BR2_PACKAGE_ETHTOOL=y
BR2_PACKAGE_HOSTAPD=y
BR2_PACKAGE_HOSTAPD_EAP=y
BR2_PACKAGE_HOSTAPD_WPS=y
BR2_PACKAGE_HOSTAPD_WPA3=y
BR2_PACKAGE_IFPLUGD=y
BR2_PACKAGE_IPERF=y
BR2_PACKAGE_IPERF3=y
BR2_PACKAGE_IPROUTE2=y
BR2_PACKAGE_IPTABLES=y
BR2_PACKAGE_IPTABLES_NFTABLES=y
BR2_PACKAGE_IW=y
BR2_PACKAGE_NTP=y
BR2_PACKAGE_NTP_NTPDATE=y
BR2_PACKAGE_NTP_NTPTIME=y
BR2_PACKAGE_PHYTOOL=y
BR2_PACKAGE_SSHPASS=y
BR2_PACKAGE_TCPDUMP=y
BR2_PACKAGE_WIRELESS_TOOLS=y
BR2_PACKAGE_WPA_SUPPLICANT=y
BR2_PACKAGE_WPA_SUPPLICANT_AP_SUPPORT=y
BR2_PACKAGE_WPA_SUPPLICANT_WPS=y
BR2_PACKAGE_WPA_SUPPLICANT_WPA3=y
BR2_PACKAGE_WPA_SUPPLICANT_CLI=y
BR2_PACKAGE_WPA_SUPPLICANT_WPA_CLIENT_SO=y
BR2_PACKAGE_WPA_SUPPLICANT_PASSPHRASE=y
BR2_PACKAGE_BASH=y
BR2_PACKAGE_SCREEN=y
BR2_PACKAGE_ANDROID_TOOLS=y
BR2_PACKAGE_HTOP=y
BR2_PACKAGE_KMOD_TOOLS=y
BR2_PACKAGE_MULTIPATH_TOOLS=y
BR2_PACKAGE_PROCPS_NG=y
BR2_PACKAGE_UTIL_LINUX_MOUNT=y
BR2_PACKAGE_WAVE511=y
BR2_PACKAGE_WAVE420L=y
BR2_PACKAGE_CODAJ12=y
BR2_PACKAGE_SF_OMX_IL=y
BR2_PACKAGE_SF_OMX_IL_TEST=y
BR2_PACKAGE_V4L2_TEST=y
BR2_PACKAGE_LIBCAMERA_APPS=y
BR2_PACKAGE_SF_GST_OMX=y
BR2_PACKAGE_ISPSDK=y
BR2_PACKAGE_MAILBOX_TEST=y
BR2_PACKAGE_E24_TEST=y
BR2_PACKAGE_IMG_GPU_POWERVR=y
BR2_PACKAGE_IMG_GPU_POWERVR_OUTPUT_WL=y
BR2_PACKAGE_IMG_GPU_POWERVR_EXAMPLES=y
BR2_PACKAGE_IMG_GPU_POWERVR_GMEM_INFO=y
BR2_PACKAGE_DRM_TEST=y
BR2_PACKAGE_PM=y
BR2_PACKAGE_V4L2_DEC_TEST=y
BR2_PACKAGE_STARFIVE_FIRMWARE=y
BR2_PACKAGE_STARFIVE_FIRMWARE_ECR6600U_USB_WIFI=y
BR2_PACKAGE_STARFIVE_FIRMWARE_AIC8800_USB_WIFI=y
BR2_PACKAGE_HOST_GENEXT2FS=y
BR2_PACKAGE_HOST_GENIMAGE=y
BR2_PACKAGE_HOST_GPTFDISK=y
BR2_PACKAGE_HOST_MTOOLS=y
BR2_PACKAGE_HOST_SQUASHFS=y
BR2_PACKAGE_HOST_STFISP_SETFILE=y

View File

@@ -0,0 +1,304 @@
BR2_riscv=y
BR2_riscv_custom=y
BR2_RISCV_ISA_CUSTOM_RVM=y
BR2_RISCV_ISA_CUSTOM_RVF=y
BR2_RISCV_ISA_CUSTOM_RVD=y
BR2_RISCV_ISA_CUSTOM_RVC=y
BR2_STRIP_EXCLUDE_FILES="ipa_starfive.so* libcamera-base.so* libcamera.so* libgstlibcamera.so v4l2-compat.so starfive_ipa_proxy"
BR2_KERNEL_HEADERS_CUSTOM_GIT=y
BR2_KERNEL_HEADERS_CUSTOM_REPO_URL="git@192.168.110.45:sbc/linux.git"
BR2_KERNEL_HEADERS_CUSTOM_REPO_VERSION="vf2-6.1.y-devel"
BR2_PACKAGE_GLIBC_UTILS=y
BR2_BINUTILS_VERSION_2_39_X=y
BR2_GCC_VERSION_12_X=y
BR2_TOOLCHAIN_BUILDROOT_CXX=y
BR2_TOOLCHAIN_BUILDROOT_FORTRAN=y
BR2_GCC_ENABLE_LTO=y
BR2_GCC_ENABLE_OPENMP=y
BR2_PACKAGE_HOST_GDB=y
BR2_PACKAGE_HOST_GDB_TUI=y
BR2_PACKAGE_HOST_GDB_PYTHON3=y
BR2_PACKAGE_HOST_GDB_SIM=y
BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_COPY=y
BR2_INIT_SYSV=y
BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
BR2_TARGET_GENERIC_ROOT_PASSWD="starfive"
BR2_SYSTEM_DHCP="eth0"
BR2_SYSTEM_DHCP_DUAL="eth1"
BR2_PACKAGE_ALSA_UTILS=y
BR2_PACKAGE_ALSA_UTILS_ALSACONF=y
BR2_PACKAGE_ALSA_UTILS_ALSALOOP=y
BR2_PACKAGE_ALSA_UTILS_AMIXER=y
BR2_PACKAGE_ALSA_UTILS_APLAY=y
BR2_PACKAGE_ALSA_UTILS_ASEQDUMP=y
BR2_PACKAGE_ALSA_UTILS_SPEAKER_TEST=y
BR2_PACKAGE_BLUEZ_ALSA=y
BR2_PACKAGE_BLUEZ_ALSA_HCITOP=y
BR2_PACKAGE_BLUEZ_ALSA_RFCOMM=y
BR2_PACKAGE_FFMPEG_GPL=y
BR2_PACKAGE_FFMPEG_FFPROBE=y
BR2_PACKAGE_FFMPEG_AVRESAMPLE=y
BR2_PACKAGE_FFMPEG_POSTPROC=y
BR2_PACKAGE_GSTREAMER1=y
BR2_PACKAGE_GST1_PLUGINS_BASE_INSTALL_TOOLS=y
BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_AUDIORATE=y
BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_AUDIOTESTSRC=y
BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_ENCODING=y
BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_RAWPARSE=y
BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VIDEORATE=y
BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_ALSA=y
BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_OGG=y
BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_OPUS=y
BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VORBIS=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_JPEG=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PNG=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_AUDIOPARSERS=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_AUTODETECT=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_DEBUGUTILS=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_DEINTERLACE=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_FLV=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_ID3DEMUX=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_INTERLEAVE=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_LAW=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_LEVEL=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_MATROSKA=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_MULTIFILE=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_MULTIPART=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_RTSP=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_VIDEOCROP=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_VIDEOFILTER=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_VIDEOMIXER=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_WAVENC=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_LAME=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_V4L2=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_V4L2_PROBE=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_FLAC=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_PULSE=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_VPX=y
BR2_PACKAGE_GST1_PLUGINS_BAD=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_AUTOCONVERT=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_BAYER=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_DEBUGUTILS=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_ID3TAG=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_JPEGFORMAT=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MPEGDEMUX=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MPEGTSDEMUX=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_RAWPARSE=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SPEED=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VIDEOFILTERS=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VIDEOFRAME_AUDIOLEVEL=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VIDEOPARSERS=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_FBDEV=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_HLS=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_KMS=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_OPUS=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SNDFILE=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_X265=y
BR2_PACKAGE_GST1_PLUGINS_UGLY=y
BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_ASFDEMUX=y
BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_MPEG2DEC=y
BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_X264=y
BR2_PACKAGE_GST1_DEVTOOLS=y
BR2_PACKAGE_GST1_INTERPIPE=y
BR2_PACKAGE_GST1_LIBAV=y
BR2_PACKAGE_GST1_RTSP_SERVER=y
BR2_PACKAGE_GST1_SHARK=y
BR2_PACKAGE_GSTD=y
BR2_PACKAGE_GSTREAMER1_EDITING_SERVICES=y
BR2_PACKAGE_CACHE_CALIBRATOR=y
BR2_PACKAGE_DHRYSTONE=y
BR2_PACKAGE_FIO=y
BR2_PACKAGE_GDB=y
BR2_PACKAGE_IOZONE=y
BR2_PACKAGE_LMBENCH=y
BR2_PACKAGE_RAMSMP=y
BR2_PACKAGE_RAMSPEED=y
BR2_PACKAGE_RT_TESTS=y
BR2_PACKAGE_STRACE=y
BR2_PACKAGE_STRESS_NG=y
BR2_PACKAGE_WHETSTONE=y
BR2_PACKAGE_FLEX=y
BR2_PACKAGE_TREE=y
BR2_PACKAGE_DOSFSTOOLS=y
BR2_PACKAGE_DOSFSTOOLS_FATLABEL=y
BR2_PACKAGE_DOSFSTOOLS_FSCK_FAT=y
BR2_PACKAGE_DOSFSTOOLS_MKFS_FAT=y
BR2_PACKAGE_E2FSPROGS=y
BR2_PACKAGE_E2FSPROGS_RESIZE2FS=y
BR2_PACKAGE_EXFAT=y
BR2_PACKAGE_EXFAT_UTILS=y
BR2_PACKAGE_EXFATPROGS=y
BR2_PACKAGE_MTD=y
BR2_PACKAGE_NFS_UTILS=y
BR2_PACKAGE_NTFS_3G=y
BR2_PACKAGE_DEJAVU=y
BR2_PACKAGE_GLMARK2=y
BR2_PACKAGE_WESTON=y
BR2_PACKAGE_WESTON_DEMO_CLIENTS=y
BR2_PACKAGE_LINUX_FIRMWARE=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_AX210=y
BR2_PACKAGE_LINUX_FIRMWARE_RTL_8169=y
# BR2_PACKAGE_EUDEV_ENABLE_HWDB is not set
BR2_PACKAGE_EVTEST=y
BR2_PACKAGE_GPTFDISK=y
BR2_PACKAGE_GPTFDISK_GDISK=y
BR2_PACKAGE_GPTFDISK_SGDISK=y
BR2_PACKAGE_I2C_TOOLS=y
BR2_PACKAGE_LM_SENSORS=y
BR2_PACKAGE_MEMTESTER=y
BR2_PACKAGE_OFONO=y
BR2_PACKAGE_PARTED=y
BR2_PACKAGE_PCIUTILS=y
BR2_PACKAGE_RNG_TOOLS=y
BR2_PACKAGE_SYSSTAT=y
BR2_PACKAGE_PERL=y
BR2_PACKAGE_PYTHON3=y
BR2_PACKAGE_CA_CERTIFICATES=y
BR2_PACKAGE_GNUTLS_OPENSSL=y
BR2_PACKAGE_LIBKCAPI=y
BR2_PACKAGE_LIBKCAPI_ENCAPP=y
BR2_PACKAGE_LIBKCAPI_RNGAPP=y
BR2_PACKAGE_LIBKCAPI_SPEED=y
BR2_PACKAGE_LIBKCAPI_TEST=y
BR2_PACKAGE_LIBOPENSSL_BIN=y
BR2_PACKAGE_LIBOPENSSL_ENGINES=y
BR2_PACKAGE_LIBDRM_INSTALL_TESTS=y
BR2_PACKAGE_WAYLAND_UTILS=y
BR2_PACKAGE_DTC=y
BR2_PACKAGE_DTC_PROGRAMS=y
BR2_PACKAGE_LIBGPIOD=y
BR2_PACKAGE_LIBGPIOD_TOOLS=y
BR2_PACKAGE_LIBV4L_UTILS=y
BR2_PACKAGE_LIBCAMERA=y
BR2_PACKAGE_LIBCAMERA_V4L2=y
BR2_PACKAGE_LIBCAMERA_PIPELINE_UVCVIDEO=y
BR2_PACKAGE_LIBCAMERA_PIPELINE_STARFIVE=y
BR2_PACKAGE_LIBCURL=y
BR2_PACKAGE_LIBCURL_CURL=y
BR2_PACKAGE_LIBCURL_VERBOSE=y
BR2_PACKAGE_LIBCAP=y
BR2_PACKAGE_LIBCAP_TOOLS=y
BR2_PACKAGE_MSMTP=y
BR2_PACKAGE_BLUEZ_TOOLS=y
BR2_PACKAGE_BLUEZ5_UTILS_OBEX=y
BR2_PACKAGE_BLUEZ5_UTILS_CLIENT=y
BR2_PACKAGE_BLUEZ5_UTILS_DEPRECATED=y
BR2_PACKAGE_BLUEZ5_UTILS_EXPERIMENTAL=y
BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_HEALTH=y
BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_MESH=y
BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_MIDI=y
BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_NFC=y
BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_SAP=y
BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_SIXAXIS=y
BR2_PACKAGE_BLUEZ5_UTILS_TEST=y
BR2_PACKAGE_BLUEZ5_UTILS_TOOLS_HID2HCI=y
BR2_PACKAGE_BRCM_PATCHRAM_PLUS=y
BR2_PACKAGE_CAN_UTILS=y
BR2_PACKAGE_DHCP=y
BR2_PACKAGE_DHCP_SERVER=y
BR2_PACKAGE_DHCP_SERVER_DELAYED_ACK=y
BR2_PACKAGE_DROPBEAR=y
BR2_PACKAGE_ETHTOOL=y
BR2_PACKAGE_HOSTAPD=y
BR2_PACKAGE_HOSTAPD_EAP=y
BR2_PACKAGE_HOSTAPD_WPS=y
BR2_PACKAGE_HOSTAPD_WPA3=y
BR2_PACKAGE_IFPLUGD=y
BR2_PACKAGE_IPERF=y
BR2_PACKAGE_IPERF3=y
BR2_PACKAGE_IPROUTE2=y
BR2_PACKAGE_IPTABLES=y
BR2_PACKAGE_IPTABLES_NFTABLES=y
BR2_PACKAGE_IPUTILS=y
BR2_PACKAGE_IW=y
BR2_PACKAGE_NTP=y
BR2_PACKAGE_NTP_NTPDATE=y
BR2_PACKAGE_NTP_NTPTIME=y
BR2_PACKAGE_PHYTOOL=y
BR2_PACKAGE_SSHPASS=y
BR2_PACKAGE_TCPDUMP=y
BR2_PACKAGE_WIRELESS_TOOLS=y
BR2_PACKAGE_WPA_SUPPLICANT=y
BR2_PACKAGE_WPA_SUPPLICANT_AP_SUPPORT=y
BR2_PACKAGE_WPA_SUPPLICANT_WPS=y
BR2_PACKAGE_WPA_SUPPLICANT_WPA3=y
BR2_PACKAGE_WPA_SUPPLICANT_CLI=y
BR2_PACKAGE_WPA_SUPPLICANT_WPA_CLIENT_SO=y
BR2_PACKAGE_WPA_SUPPLICANT_PASSPHRASE=y
BR2_PACKAGE_BASH=y
BR2_PACKAGE_SCREEN=y
BR2_PACKAGE_ANDROID_TOOLS=y
BR2_PACKAGE_HTOP=y
BR2_PACKAGE_KMOD_TOOLS=y
BR2_PACKAGE_MULTIPATH_TOOLS=y
BR2_PACKAGE_PROCPS_NG=y
BR2_PACKAGE_UTIL_LINUX_BINARIES=y
BR2_PACKAGE_UTIL_LINUX_AGETTY=y
BR2_PACKAGE_UTIL_LINUX_BFS=y
BR2_PACKAGE_UTIL_LINUX_CRAMFS=y
BR2_PACKAGE_UTIL_LINUX_EJECT=y
BR2_PACKAGE_UTIL_LINUX_FALLOCATE=y
BR2_PACKAGE_UTIL_LINUX_FDFORMAT=y
BR2_PACKAGE_UTIL_LINUX_FSCK=y
BR2_PACKAGE_UTIL_LINUX_HWCLOCK=y
BR2_PACKAGE_UTIL_LINUX_KILL=y
BR2_PACKAGE_UTIL_LINUX_LAST=y
BR2_PACKAGE_UTIL_LINUX_LINE=y
BR2_PACKAGE_UTIL_LINUX_LOSETUP=y
BR2_PACKAGE_UTIL_LINUX_MESG=y
BR2_PACKAGE_UTIL_LINUX_MINIX=y
BR2_PACKAGE_UTIL_LINUX_MORE=y
BR2_PACKAGE_UTIL_LINUX_MOUNT=y
BR2_PACKAGE_UTIL_LINUX_MOUNTPOINT=y
BR2_PACKAGE_UTIL_LINUX_NEWGRP=y
BR2_PACKAGE_UTIL_LINUX_NOLOGIN=y
BR2_PACKAGE_UTIL_LINUX_NSENTER=y
BR2_PACKAGE_UTIL_LINUX_PARTX=y
BR2_PACKAGE_UTIL_LINUX_PIVOT_ROOT=y
BR2_PACKAGE_UTIL_LINUX_RENAME=y
BR2_PACKAGE_UTIL_LINUX_SCHEDUTILS=y
BR2_PACKAGE_UTIL_LINUX_SETPRIV=y
BR2_PACKAGE_UTIL_LINUX_SETTERM=y
BR2_PACKAGE_UTIL_LINUX_SULOGIN=y
BR2_PACKAGE_UTIL_LINUX_SWITCH_ROOT=y
BR2_PACKAGE_UTIL_LINUX_TUNELP=y
BR2_PACKAGE_UTIL_LINUX_UL=y
BR2_PACKAGE_UTIL_LINUX_UNSHARE=y
BR2_PACKAGE_UTIL_LINUX_UTMPDUMP=y
BR2_PACKAGE_UTIL_LINUX_UUIDD=y
BR2_PACKAGE_UTIL_LINUX_VIPW=y
BR2_PACKAGE_UTIL_LINUX_WALL=y
BR2_PACKAGE_UTIL_LINUX_WDCTL=y
BR2_PACKAGE_UTIL_LINUX_WRITE=y
BR2_PACKAGE_UTIL_LINUX_ZRAMCTL=y
BR2_PACKAGE_WAVE511=y
BR2_PACKAGE_WAVE420L=y
BR2_PACKAGE_CODAJ12=y
BR2_PACKAGE_SF_OMX_IL=y
BR2_PACKAGE_SF_OMX_IL_TEST=y
BR2_PACKAGE_V4L2_TEST=y
BR2_PACKAGE_LIBCAMERA_APPS=y
BR2_PACKAGE_SF_GST_OMX=y
BR2_PACKAGE_ISPSDK=y
BR2_PACKAGE_MAILBOX_TEST=y
BR2_PACKAGE_E24_TEST=y
BR2_PACKAGE_IMG_GPU_POWERVR=y
BR2_PACKAGE_IMG_GPU_POWERVR_OUTPUT_WL=y
BR2_PACKAGE_IMG_GPU_POWERVR_EXAMPLES=y
BR2_PACKAGE_IMG_GPU_POWERVR_GMEM_INFO=y
BR2_PACKAGE_DRM_TEST=y
BR2_PACKAGE_PM=y
BR2_PACKAGE_V4L2_DEC_TEST=y
BR2_PACKAGE_STARFIVE_FIRMWARE=y
BR2_PACKAGE_STARFIVE_FIRMWARE_ECR6600U_USB_WIFI=y
BR2_PACKAGE_STARFIVE_FIRMWARE_AIC8800_USB_WIFI=y
BR2_PACKAGE_HIFI4_SOF=y
BR2_TARGET_ROOTFS_EXT2=y
BR2_TARGET_ROOTFS_EXT2_4=y
BR2_TARGET_ROOTFS_EXT2_SIZE="500M"
# BR2_TARGET_ROOTFS_TAR is not set
BR2_PACKAGE_HOST_GENEXT2FS=y
BR2_PACKAGE_HOST_GENIMAGE=y
BR2_PACKAGE_HOST_GPTFDISK=y
BR2_PACKAGE_HOST_MTOOLS=y
BR2_PACKAGE_HOST_STFISP_SETFILE=y

55
conf/evb-fit-image.its Normal file
View File

@@ -0,0 +1,55 @@
/dts-v1/;
/ {
description = "U-boot FIT image for jh7110-evb";
#address-cells = <2>;
images {
vmlinux {
description = "vmlinux";
data = /incbin/("../work/linux/arch/riscv/boot/Image");
type = "kernel";
arch = "riscv";
os = "linux";
load = <0x0 0x40200000>;
entry = <0x0 0x40200000>;
compression = "none";
};
ramdisk {
description = "buildroot initramfs";
data = /incbin/("../work/initramfs.cpio.gz");
type = "ramdisk";
arch = "riscv";
os = "linux";
load = <0x0 0x46100000>;
compression = "none";
hash-1 {
algo = "sha256";
};
};
fdt {
data = /incbin/("../work/linux/arch/riscv/boot/dts/starfive/jh7110-evb.dtb");
type = "flat_dt";
arch = "riscv";
load = <0x0 0x46000000>;
compression = "none";
hash-1 {
algo = "sha256";
};
};
};
configurations {
default = "config-1";
config-1 {
description = "jh7110-evb with opensbi";
kernel = "vmlinux";
fdt = "fdt";
loadables = "ramdisk";
};
};
};

View File

@@ -0,0 +1,29 @@
/dts-v1/;
/ {
description = "U-boot-spl FIT image for JH7110 EVB";
#address-cells = <2>;
images {
firmware {
description = "u-boot";
data = /incbin/("../work/opensbi/platform/generic/firmware/fw_payload.bin");
type = "firmware";
arch = "riscv";
os = "u-boot";
load = <0x0 0x40000000>;
entry = <0x0 0x40000000>;
compression = "none";
};
};
configurations {
default = "config-1";
config-1 {
description = "U-boot-spl FIT config for JH7110 EVB";
firmware = "firmware";
};
};
};

55
conf/fpga-fit-image.its Normal file
View File

@@ -0,0 +1,55 @@
/dts-v1/;
/ {
description = "U-boot FIT image for jh7110-fpga";
#address-cells = <2>;
images {
vmlinux {
description = "vmlinux";
data = /incbin/("../work/linux/arch/riscv/boot/Image");
type = "kernel";
arch = "riscv";
os = "linux";
load = <0x0 0x40200000>;
entry = <0x0 0x40200000>;
compression = "none";
};
ramdisk {
description = "buildroot initramfs";
data = /incbin/("../work/initramfs.cpio.gz");
type = "ramdisk";
arch = "riscv";
os = "linux";
load = <0x0 0x46100000>;
compression = "none";
hash-1 {
algo = "sha256";
};
};
fdt {
data = /incbin/("../work/linux/arch/riscv/boot/dts/starfive/jh7110-fpga.dtb");
type = "flat_dt";
arch = "riscv";
load = <0x0 0x46000000>;
compression = "none";
hash-1 {
algo = "sha256";
};
};
};
configurations {
default = "config-1";
config-1 {
description = "jh7110-fpga with opensbi";
kernel = "vmlinux";
fdt = "fdt";
loadables = "ramdisk";
};
};
};

35
conf/genimage-vf2.cfg Normal file
View File

@@ -0,0 +1,35 @@
image sdcard.img {
hdimage {
gpt = true
}
partition spl {
image = "work/u-boot-spl.bin.normal.out"
partition-type-uuid = 2E54B353-1271-4842-806F-E436D6AF6985
offset = 2M
size = 2M
}
partition uboot {
image = "work/visionfive2_fw_payload.img"
partition-type-uuid = 5B193300-FC78-40CD-8002-E86C45580B47
offset = 4M
size = 4M
}
partition image {
# partition-type = 0xC
partition-type-uuid = EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
image = "work/starfive-visionfive2-vfat.part"
offset = 8M
size = 292M
}
partition root {
# partition-type = 0x83
partition-type-uuid = 0FC63DAF-8483-4772-8E79-3D69D8477DE4
image = "work/buildroot_rootfs/images/rootfs.ext4"
offset = 300M
bootable = true
}
}

35
conf/genimage.cfg Normal file
View File

@@ -0,0 +1,35 @@
image sdcard.img {
hdimage {
gpt = true
}
partition spl {
image = "work/u-boot-spl.bin.normal.out"
partition-type-uuid = 2E54B353-1271-4842-806F-E436D6AF6985
offset = 2M
size = 2M
}
partition uboot {
image = "work/evb_fw_payload.img"
partition-type-uuid = 5B193300-FC78-40CD-8002-E86C45580B47
offset = 4M
size = 4M
}
partition image {
# partition-type = 0xC
partition-type-uuid = EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
image = "work/starfive-evb-vfat.part"
offset = 8M
size = 292M
}
partition root {
# partition-type = 0x83
partition-type-uuid = 0FC63DAF-8483-4772-8E79-3D69D8477DE4
image = "work/buildroot_rootfs/images/rootfs.ext4"
offset = 300M
bootable = true
}
}

3
conf/initramfs.txt Normal file
View File

@@ -0,0 +1,3 @@
dir /dev 755 0 0
nod /dev/console 644 0 0 c 5 1
nod /dev/null 644 0 0 c 1 3

32
conf/jh7110_uEnv.txt Normal file
View File

@@ -0,0 +1,32 @@
# This is the sample jh7110_uEnv.txt file for starfive visionfive U-boot
# The current convention (SUBJECT TO CHANGE) is that this file
# will be loaded from the third partition on the
# MMC card.
devnum=0
partnum=3
# The FIT file to boot from
fitfile=starfiveu.fit
# for debugging boot
bootargs=earlyprintk console=tty1 console=ttyS0,115200 debug rootwait earlycon=sbi root=/dev/mmcblk0p4
# for addr info
fileaddr=0xa0000000
fdtaddr=0x46000000
# boot Linux flat or compressed 'Image' stored at 'kernel_addr_r'
kernel_addr_r=0x40200000
irdaddr=0x46100000
irdsize=0x5f00000
# Use the FDT in the FIT image..
setupfdt1=fdt addr ${fdtaddr}
setupird=setexpr irdend ${irdaddr} + ${irdsize}; fdt set /chosen linux,initrd-start <0x0 0x${irdaddr}>; fdt set /chosen linux,initrd-end <0x0 0x${irdend}>
setupfdt2=fdt print /chosen; fdt set /chosen bootargs "${bootargs}"; fdt print /chosen
bootwait=setenv _delay ${bootdelay}; echo ${_delay}; while test ${_delay} > 0; do sleep 1; setexpr _delay ${_delay} - 1; echo ${_delay}; done
boot2=fatload mmc ${devnum}:${partnum} ${fileaddr} ${fitfile}; bootm start ${fileaddr}; run setupfdt1;run setupird;run setupfdt2; bootm loados ${fileaddr}; run chipa_set_linux; run cpu_vol_set; echo "Booting kernel in"; booti ${kernel_addr_r} ${irdaddr}:${filesize} ${fdtaddr}

127
conf/linux_415_nvdla_defconfig Executable file
View File

@@ -0,0 +1,127 @@
CONFIG_SMP=y
# CONFIG_COMPACTION is not set
CONFIG_HZ_100=y
CONFIG_PCI=y
CONFIG_PCI_DEBUG=y
CONFIG_PCIE_XILINX=y
CONFIG_PCIE_XDMA_PL=y
CONFIG_PCIE_MICROSEMI=y
CONFIG_CROSS_COMPILE="riscv64-unknown-linux-gnu-"
CONFIG_DEFAULT_HOSTNAME="ucbvax"
CONFIG_SYSVIPC=y
# CONFIG_CROSS_MEMORY_ATTACH is not set
CONFIG_CGROUPS=y
CONFIG_CGROUP_SCHED=y
CONFIG_CFS_BANDWIDTH=y
CONFIG_NAMESPACES=y
CONFIG_CHECKPOINT_RESTORE=y
CONFIG_EMBEDDED=y
CONFIG_PARTITION_ADVANCED=y
# CONFIG_IOSCHED_DEADLINE is not set
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_UNIX=y
CONFIG_INET=y
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
# CONFIG_INET_XFRM_MODE_BEET is not set
# CONFIG_INET_DIAG is not set
CONFIG_BRIDGE=y
CONFIG_NET_SCHED=y
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
# CONFIG_FIRMWARE_IN_KERNEL is not set
CONFIG_EXTRA_FIRMWARE="radeon/BTC_rlc.bin radeon/CAICOS_mc.bin radeon/CAICOS_me.bin radeon/CAICOS_pfp.bin radeon/CAICOS_smc.bin radeon/SUMO_uvd.bin"
CONFIG_MTD=y
CONFIG_MTD_BLOCK_RO=y
CONFIG_MTD_M25P80=y
CONFIG_MTD_SPI_NOR=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_VIRTIO_BLK=y
CONFIG_EEPROM_AT24=y
CONFIG_BLK_DEV_SD=y
CONFIG_ATA=y
CONFIG_SATA_AHCI=y
CONFIG_SATA_SIL24=y
CONFIG_SATA_MV=y
CONFIG_NETDEVICES=y
CONFIG_VIRTIO_NET=y
CONFIG_MACB=y
CONFIG_MICROSEMI_PHY=y
CONFIG_INPUT_MOUSEDEV=y
# CONFIG_INPUT_MOUSE is not set
CONFIG_SERIAL_SIFIVE=y
CONFIG_SERIAL_SIFIVE_CONSOLE=y
# CONFIG_HVC_RISCV_SBI is not set
CONFIG_VIRTIO_CONSOLE=y
# CONFIG_HW_RANDOM is not set
CONFIG_I2C_OCORES=y
CONFIG_SPI=y
CONFIG_SPI_SIFIVE=y
CONFIG_GPIOLIB=y
CONFIG_GPIO_SYSFS=y
CONFIG_GPIO_SIFIVE=y
CONFIG_POWER_RESET=y
CONFIG_POWER_RESET_GPIO_RESTART=y
# CONFIG_VGA_ARB is not set
CONFIG_DRM=y
CONFIG_DRM_RADEON=y
# CONFIG_VGA_CONSOLE is not set
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_LOGO=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_STORAGE=y
CONFIG_MMC=y
CONFIG_MMC_SPI=y
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=y
CONFIG_LEDS_PWM=y
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_MTD=y
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
CONFIG_LEDS_TRIGGER_PANIC=y
CONFIG_VIRTIO_MMIO=y
CONFIG_CLK_U54_PRCI=y
CONFIG_CLK_GEMGXL_MGMT=y
# CONFIG_IOMMU_SUPPORT is not set
CONFIG_PWM=y
CONFIG_PWM_SIFIVE=y
CONFIG_NVMEM_SIFIVE_U500_OTP=y
CONFIG_EXT2_FS=y
CONFIG_EXT4_FS=y
CONFIG_XFS_FS=y
CONFIG_XFS_QUOTA=y
CONFIG_XFS_POSIX_ACL=y
# CONFIG_DNOTIFY is not set
CONFIG_AUTOFS4_FS=y
CONFIG_VFAT_FS=y
CONFIG_FAT_DEFAULT_UTF8=y
# CONFIG_PROC_PAGE_MONITOR is not set
CONFIG_PROC_PAGE_MONITOR=y
CONFIG_TMPFS=y
CONFIG_TMPFS_POSIX_ACL=y
# CONFIG_MISC_FILESYSTEMS is not set
# CONFIG_NETWORK_FILESYSTEMS is not set
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_UTF8=y
CONFIG_CMDLINE_BOOL=y
CONFIG_CMDLINE="earlyprintk video=640x480 root=/dev/sda1"
CONFIG_PRINTK_TIME=y
CONFIG_STRIP_ASM_SYMS=y
CONFIG_DEBUG_SECTION_MISMATCH=y
CONFIG_STACKTRACE=y
# CONFIG_CRYPTO_HW is not set
# CONFIG_BLK_DEV_INITRD is not set
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_MEDIA_SUPPORT=y
CONFIG_MEDIA_CAMERA_SUPPORT=y
CONFIG_MEDIA_USB_SUPPORT=y
CONFIG_USB_VIDEO_CLASS=y
CONFIG_HVC_DRIVER=y
CONFIG_HVC_IRQ=y
CONFIG_HVC_CONSOLE=y
CONFIG_HVC_RISCV_SBI=y

246
conf/linux_419_defconfig Executable file
View File

@@ -0,0 +1,246 @@
CONFIG_LOCALVERSION="-sifive-1"
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_DEFAULT_HOSTNAME="riscv"
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_CGROUPS=y
CONFIG_CGROUP_SCHED=y
CONFIG_CFS_BANDWIDTH=y
CONFIG_CGROUP_BPF=y
CONFIG_NAMESPACES=y
CONFIG_USER_NS=y
CONFIG_CHECKPOINT_RESTORE=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_BPF_SYSCALL=y
CONFIG_EMBEDDED=y
CONFIG_STARFIVE_VIC_SOC=y
CONFIG_FPGA_GMAC_SPEED_AUTO=y
CONFIG_SMP=y
CONFIG_HZ_100=y
CONFIG_CMDLINE_BOOL=y
CONFIG_CMDLINE="earlyprintk console=tty1 console=ttyS0,115200 debug rootwait stmmaceth=chain_mode:1"
CONFIG_CMDLINE_FORCE=y
CONFIG_PCI=y
CONFIG_PCIEPORTBUS=y
CONFIG_HOTPLUG_PCI_PCIE=y
CONFIG_PCIE_ECRC=y
CONFIG_PCIE_DPC=y
CONFIG_PCIE_PTM=y
CONFIG_PCI_DEBUG=y
CONFIG_PCI_REALLOC_ENABLE_AUTO=y
CONFIG_PCI_IOV=y
CONFIG_PCI_PRI=y
CONFIG_PCI_PASID=y
CONFIG_HOTPLUG_PCI=y
CONFIG_HOTPLUG_PCI_CPCI=y
CONFIG_HOTPLUG_PCI_SHPC=y
CONFIG_PCIE_XILINX=y
CONFIG_PCIE_MICROSEMI=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_BLK_DEV_ZONED=y
CONFIG_PARTITION_ADVANCED=y
CONFIG_CMA=y
CONFIG_CMA_DEBUGFS=y
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y
CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
CONFIG_IP_PNP_BOOTP=y
CONFIG_IP_PNP_RARP=y
CONFIG_DNS_RESOLVER=y
CONFIG_NETLINK_DIAG=y
CONFIG_RXKAD=y
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
CONFIG_EXTRA_FIRMWARE="radeon/BTC_rlc.bin radeon/CAICOS_mc.bin radeon/CAICOS_me.bin radeon/CAICOS_pfp.bin radeon/CAICOS_smc.bin radeon/SUMO_uvd.bin"
CONFIG_DMA_CMA=y
CONFIG_MTD=y
CONFIG_MTD_BLOCK_RO=y
CONFIG_MTD_M25P80=y
CONFIG_MTD_SPI_NOR=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_VIRTIO_BLK=y
CONFIG_BLK_DEV_NVME=y
CONFIG_NVME_FC=y
CONFIG_NVME_TARGET=m
CONFIG_EEPROM_AT24=y
CONFIG_BLK_DEV_SD=y
CONFIG_SCSI_VIRTIO=y
CONFIG_ATA=y
CONFIG_SATA_AHCI=y
CONFIG_SATA_AHCI_PLATFORM=y
CONFIG_SATA_SIL24=y
CONFIG_NETDEVICES=y
CONFIG_VIRTIO_NET=y
CONFIG_MACB=y
CONFIG_E1000E=y
CONFIG_R8169=y
CONFIG_STMMAC_ETH=y
CONFIG_MARVELL_PHY=y
CONFIG_MICROSEMI_PHY=y
CONFIG_USB_RTL8150=y
CONFIG_USB_RTL8152=y
CONFIG_USB_USBNET=y
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_JOYDEV=m
CONFIG_INPUT_EVDEV=y
CONFIG_INPUT_EVBUG=m
CONFIG_MOUSE_PS2=m
CONFIG_MOUSE_APPLETOUCH=m
CONFIG_MOUSE_BCM5974=m
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_DW=y
CONFIG_SERIAL_OF_PLATFORM=y
CONFIG_VIRTIO_CONSOLE=y
CONFIG_HW_RANDOM=y
CONFIG_I2C_DESIGNWARE_PLATFORM=y
CONFIG_I2C_DESIGNWARE_SLAVE=y
CONFIG_I2C_STUB=m
CONFIG_SPI=y
CONFIG_SPI_DESIGNWARE=y
CONFIG_SPI_DW_MMIO=y
CONFIG_SPI_SIFIVE=y
CONFIG_SPI_SPIDEV=y
CONFIG_SPI_LOOPBACK_TEST=m
CONFIG_GPIOLIB=y
CONFIG_GPIO_SYSFS=y
CONFIG_GPIO_VIC=y
CONFIG_POWER_RESET=y
CONFIG_POWER_RESET_GPIO_RESTART=y
CONFIG_PMBUS=y
CONFIG_SENSORS_SFCTMP=y
CONFIG_DRM=y
CONFIG_DRM_RADEON=y
CONFIG_DRM_AMDGPU=y
CONFIG_DRM_AMD_ACP=y
CONFIG_FB_RADEON=y
CONFIG_LCD_CLASS_DEVICE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
CONFIG_FB_STARFIVE=y
CONFIG_FB_STARFIVE_HDMI_ADV7513=y
CONFIG_LOGO=y
CONFIG_SOUND=y
CONFIG_SND=y
CONFIG_SND_USB_AUDIO=y
CONFIG_HID_PID=y
CONFIG_USB_HIDDEV=y
CONFIG_USB=y
# CONFIG_USB_PCI is not set
CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
CONFIG_USB_XHCI_HCD=y
CONFIG_USB_XHCI_DBGCAP=y
CONFIG_USB_HCD_TEST_MODE=y
CONFIG_USB_ACM=y
CONFIG_USB_STORAGE=y
CONFIG_USB_UAS=y
CONFIG_USB_CDNS3=y
CONFIG_USB_CDNS3_GADGET=y
CONFIG_USB_CDNS3_HOST=y
CONFIG_USB_CDNS3_HOST_FLUSH_DMA=y
CONFIG_USB_SERIAL=m
CONFIG_USB_SERIAL_SIMPLE=m
CONFIG_USB_SERIAL_FTDI_SIO=m
CONFIG_USB_GADGET=y
CONFIG_USB_GADGET_DEBUG_FILES=y
CONFIG_USB_GADGET_DEBUG_FS=y
CONFIG_USB_GADGET_XILINX=m
CONFIG_USB_CONFIGFS=m
CONFIG_USB_CONFIGFS_SERIAL=y
CONFIG_USB_CONFIGFS_ACM=y
CONFIG_USB_CONFIGFS_NCM=y
CONFIG_USB_CONFIGFS_ECM=y
CONFIG_USB_CONFIGFS_ECM_SUBSET=y
CONFIG_USB_CONFIGFS_RNDIS=y
CONFIG_USB_CONFIGFS_EEM=y
CONFIG_USB_CONFIGFS_MASS_STORAGE=y
CONFIG_USB_CONFIGFS_F_FS=y
CONFIG_USB_CONFIGFS_F_UAC1=y
CONFIG_USB_CONFIGFS_F_UAC1_LEGACY=y
CONFIG_USB_CONFIGFS_F_UAC2=y
CONFIG_USB_CONFIGFS_F_MIDI=y
CONFIG_USB_CONFIGFS_F_HID=y
CONFIG_USB_CONFIGFS_F_PRINTER=y
CONFIG_USB_GADGETFS=m
CONFIG_USB_MASS_STORAGE=m
CONFIG_USB_ULPI_BUS=y
CONFIG_MMC=y
CONFIG_MMC_SPI=y
CONFIG_MMC_DW=y
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=y
CONFIG_LEDS_PWM=y
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
CONFIG_LEDS_TRIGGER_PANIC=y
CONFIG_DMADEVICES=y
CONFIG_DW_AXI_DMAC=y
CONFIG_VIRTIO_MMIO=y
CONFIG_CLK_U54_PRCI=y
CONFIG_CLK_GEMGXL_MGMT=y
CONFIG_PWM=y
CONFIG_PWM_SIFIVE=y
CONFIG_PWM_SIFIVE_PTC=y
CONFIG_SIFIVE_PLIC=y
CONFIG_GENERIC_PHY=y
CONFIG_EXT3_FS=y
CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_XFS_FS=m
CONFIG_AUTOFS4_FS=m
CONFIG_FUSE_FS=m
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
CONFIG_NTFS_FS=m
CONFIG_TMPFS=y
CONFIG_TMPFS_POSIX_ACL=y
CONFIG_NFS_FS=y
CONFIG_NFS_V3_ACL=y
CONFIG_ROOT_NFS=y
CONFIG_NFSD=y
CONFIG_NFSD_V3_ACL=y
CONFIG_NFSD_V4=y
CONFIG_NFSD_BLOCKLAYOUT=y
CONFIG_NFSD_SCSILAYOUT=y
CONFIG_NFSD_FLEXFILELAYOUT=y
CONFIG_AFS_FS=m
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_UTF8=y
CONFIG_CRYPTO_ECHAINIV=y
CONFIG_CRYPTO_CRC32=y
CONFIG_CRYPTO_MD5=y
CONFIG_CRYPTO_SHA1=y
CONFIG_CRYPTO_SHA512=y
CONFIG_CRYPTO_DES=y
CONFIG_CRYPTO_LZO=y
CONFIG_CRYPTO_LZ4=y
CONFIG_CRYPTO_USER_API_HASH=y
CONFIG_CRYPTO_USER_API_SKCIPHER=y
CONFIG_CRYPTO_USER_API_RNG=y
CONFIG_CRYPTO_USER_API_AEAD=y
CONFIG_CRYPTO_USER_API_AKCIPHER=y
CONFIG_CRYPTO_USER_API_KPP=y
CONFIG_CRYPTO_DEV_SIFIVE_VIC_ENCRYPT=y
CONFIG_PRINTK_TIME=y
CONFIG_CONSOLE_LOGLEVEL_DEFAULT=15
CONFIG_MESSAGE_LOGLEVEL_DEFAULT=7
CONFIG_DEBUG_INFO=y
CONFIG_DEBUG_INFO_SPLIT=y
CONFIG_DEBUG_INFO_DWARF4=y
CONFIG_STRIP_ASM_SYMS=y
CONFIG_DEBUG_FS=y
CONFIG_DEBUG_SECTION_MISMATCH=y
CONFIG_STACKTRACE=y
CONFIG_MEDIA_SUPPORT=y
CONFIG_MEDIA_CAMERA_SUPPORT=y
CONFIG_V4L_PLATFORM_DRIVERS=y
CONFIG_VIN_SENSOR_OV5640=y
CONFIG_VIDEO_STF_VIN=y

222
conf/linux_59_defconfig Executable file
View File

@@ -0,0 +1,222 @@
CONFIG_LOCALVERSION="-sifive-1"
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_DEFAULT_HOSTNAME="riscv"
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
CONFIG_USELIB=y
CONFIG_PREEMPT_VOLUNTARY=y
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_CFS_BANDWIDTH=y
CONFIG_NAMESPACES=y
CONFIG_USER_NS=y
CONFIG_CHECKPOINT_RESTORE=y
CONFIG_SCHED_AUTOGROUP=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_EMBEDDED=y
CONFIG_SOC_STARFIVE_VIC7100=y
CONFIG_SMP=y
CONFIG_CMDLINE="earlyprintk earlycon=sbi console=ttyS0,115200 debug rootwait init=/sbin/init"
CONFIG_CMDLINE_FORCE=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_BLK_DEV_ZONED=y
CONFIG_PARTITION_ADVANCED=y
CONFIG_CMA=y
CONFIG_CMA_DEBUGFS=y
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y
CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
CONFIG_IP_PNP_BOOTP=y
CONFIG_IP_PNP_RARP=y
CONFIG_DNS_RESOLVER=y
CONFIG_NETLINK_DIAG=y
CONFIG_BT=y
CONFIG_BT_RFCOMM=y
CONFIG_BT_RFCOMM_TTY=y
CONFIG_BT_BNEP=y
CONFIG_BT_BNEP_MC_FILTER=y
CONFIG_BT_BNEP_PROTO_FILTER=y
CONFIG_BT_HCIUART=y
CONFIG_BT_HCIUART_H4=y
CONFIG_CFG80211=y
CONFIG_CFG80211_WEXT=y
CONFIG_MAC80211=y
CONFIG_FAILOVER=y
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
CONFIG_EXTRA_FIRMWARE="radeon/BTC_rlc.bin radeon/CAICOS_mc.bin radeon/CAICOS_me.bin radeon/CAICOS_pfp.bin radeon/CAICOS_smc.bin radeon/SUMO_uvd.bin"
CONFIG_MTD=y
CONFIG_MTD_BLOCK_RO=y
CONFIG_MTD_SPI_NOR=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_VIRTIO_BLK=y
CONFIG_NVME_FC=y
CONFIG_NVME_TARGET=m
CONFIG_EEPROM_AT24=y
CONFIG_BLK_DEV_SD=y
CONFIG_SCSI_VIRTIO=y
CONFIG_ATA=y
CONFIG_SATA_AHCI_PLATFORM=y
CONFIG_NETDEVICES=y
CONFIG_STMMAC_ETH=y
CONFIG_DWMAC_DWC_QOS_ETH=y
CONFIG_DWC_XLGMAC=y
CONFIG_B43=y
CONFIG_B43_BUSES_BCMA=y
CONFIG_BRCMFMAC=y
CONFIG_BRCM_TRACING=y
CONFIG_BRCMDBG=y
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_JOYDEV=m
CONFIG_INPUT_EVDEV=y
CONFIG_INPUT_EVBUG=m
CONFIG_MOUSE_PS2=m
CONFIG_MOUSE_APPLETOUCH=m
CONFIG_MOUSE_BCM5974=m
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_DW=y
CONFIG_SERIAL_OF_PLATFORM=y
CONFIG_SERIAL_EARLYCON_RISCV_SBI=y
CONFIG_HVC_RISCV_SBI=y
CONFIG_VIRTIO_CONSOLE=y
CONFIG_HW_RANDOM=y
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_DESIGNWARE_SLAVE=y
CONFIG_I2C_DESIGNWARE_PLATFORM=y
CONFIG_I2C_STUB=m
CONFIG_SPI=y
CONFIG_SPI_DESIGNWARE=y
CONFIG_SPI_DW_MMIO=y
CONFIG_SPI_SIFIVE=y
CONFIG_SPI_SPIDEV=y
CONFIG_SPI_LOOPBACK_TEST=m
CONFIG_GPIOLIB=y
CONFIG_GPIO_SYSFS=y
CONFIG_POWER_RESET=y
CONFIG_POWER_RESET_GPIO_RESTART=y
CONFIG_POWER_SUPPLY=y
CONFIG_PMBUS=y
CONFIG_MEDIA_SUPPORT=y
CONFIG_V4L_PLATFORM_DRIVERS=y
CONFIG_DRM=y
CONFIG_FB_MODE_HELPERS=y
CONFIG_LCD_CLASS_DEVICE=y
CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_LOGO=y
CONFIG_SOUND=y
CONFIG_SND=y
CONFIG_SND_USB_AUDIO=y
CONFIG_HID_PID=y
CONFIG_USB_HIDDEV=y
CONFIG_USB_ULPI_BUS=y
CONFIG_USB=y
CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
CONFIG_USB_XHCI_HCD=y
CONFIG_USB_XHCI_DBGCAP=y
CONFIG_USB_HCD_TEST_MODE=y
CONFIG_USB_ACM=y
CONFIG_USB_STORAGE=y
CONFIG_USB_CDNS3=y
CONFIG_USB_CDNS3_GADGET=y
CONFIG_USB_CDNS3_HOST=y
CONFIG_USB_SERIAL=m
CONFIG_USB_SERIAL_SIMPLE=m
CONFIG_USB_SERIAL_FTDI_SIO=m
CONFIG_USB_GADGET=y
CONFIG_USB_GADGET_DEBUG_FILES=y
CONFIG_USB_GADGET_DEBUG_FS=y
CONFIG_USB_GADGET_XILINX=m
CONFIG_USB_CONFIGFS=m
CONFIG_USB_CONFIGFS_SERIAL=y
CONFIG_USB_CONFIGFS_ACM=y
CONFIG_USB_CONFIGFS_NCM=y
CONFIG_USB_CONFIGFS_ECM=y
CONFIG_USB_CONFIGFS_ECM_SUBSET=y
CONFIG_USB_CONFIGFS_RNDIS=y
CONFIG_USB_CONFIGFS_EEM=y
CONFIG_USB_CONFIGFS_MASS_STORAGE=y
CONFIG_USB_CONFIGFS_F_FS=y
CONFIG_USB_CONFIGFS_F_UAC1=y
CONFIG_USB_CONFIGFS_F_UAC1_LEGACY=y
CONFIG_USB_CONFIGFS_F_UAC2=y
CONFIG_USB_CONFIGFS_F_MIDI=y
CONFIG_USB_CONFIGFS_F_HID=y
CONFIG_USB_CONFIGFS_F_PRINTER=y
CONFIG_USB_GADGETFS=m
CONFIG_USB_MASS_STORAGE=m
CONFIG_MMC=y
CONFIG_MMC_SPI=y
CONFIG_MMC_DW=y
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=y
CONFIG_LEDS_PWM=y
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
CONFIG_LEDS_TRIGGER_PANIC=y
CONFIG_RTC_CLASS=y
CONFIG_DMADEVICES=y
CONFIG_DW_AXI_DMAC=y
CONFIG_VIRTIO_MMIO=y
CONFIG_PWM=y
CONFIG_PWM_SIFIVE=y
CONFIG_PWM_SIFIVE_PTC=y
CONFIG_GENERIC_PHY=y
CONFIG_EXT3_FS=y
CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_XFS_FS=m
CONFIG_AUTOFS4_FS=m
CONFIG_FUSE_FS=m
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
CONFIG_NTFS_FS=m
CONFIG_TMPFS=y
CONFIG_TMPFS_POSIX_ACL=y
CONFIG_NFS_FS=y
CONFIG_NFS_V3_ACL=y
CONFIG_ROOT_NFS=y
CONFIG_NFSD=y
CONFIG_NFSD_V3_ACL=y
CONFIG_NFSD_V4=y
CONFIG_NFSD_BLOCKLAYOUT=y
CONFIG_NFSD_SCSILAYOUT=y
CONFIG_NFSD_FLEXFILELAYOUT=y
CONFIG_AFS_FS=m
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_UTF8=y
CONFIG_CRYPTO_ECHAINIV=y
CONFIG_CRYPTO_CBC=m
CONFIG_CRYPTO_CFB=m
CONFIG_CRYPTO_CTS=m
CONFIG_CRYPTO_PCBC=m
CONFIG_CRYPTO_CRC32=y
CONFIG_CRYPTO_SHA1=y
CONFIG_CRYPTO_SHA512=y
CONFIG_CRYPTO_DES=y
CONFIG_CRYPTO_FCRYPT=m
CONFIG_CRYPTO_LZO=y
CONFIG_CRYPTO_LZ4=y
CONFIG_CRYPTO_USER_API_HASH=y
CONFIG_CRYPTO_USER_API_SKCIPHER=y
CONFIG_CRYPTO_USER_API_RNG=y
CONFIG_CRYPTO_USER_API_AEAD=y
CONFIG_DMA_CMA=y
CONFIG_PRINTK_TIME=y
CONFIG_CONSOLE_LOGLEVEL_DEFAULT=15
CONFIG_MESSAGE_LOGLEVEL_DEFAULT=7
CONFIG_DYNAMIC_DEBUG=y
CONFIG_DEBUG_INFO=y
CONFIG_DEBUG_INFO_SPLIT=y
CONFIG_DEBUG_INFO_DWARF4=y
CONFIG_STRIP_ASM_SYMS=y
CONFIG_DEBUG_SECTION_MISMATCH=y
CONFIG_DEBUG_FS=y
CONFIG_STACKTRACE=y

118
conf/linux_defconfig Normal file
View File

@@ -0,0 +1,118 @@
CONFIG_SMP=y
# CONFIG_COMPACTION is not set
CONFIG_HZ_100=y
CONFIG_PCI=y
CONFIG_PCI_DEBUG=y
CONFIG_PCIE_XILINX=y
CONFIG_PCIE_XDMA_PL=y
CONFIG_PCIE_MICROSEMI=y
CONFIG_CROSS_COMPILE="riscv64-unknown-linux-gnu-"
CONFIG_DEFAULT_HOSTNAME="ucbvax"
CONFIG_SYSVIPC=y
# CONFIG_CROSS_MEMORY_ATTACH is not set
CONFIG_CGROUPS=y
CONFIG_CGROUP_SCHED=y
CONFIG_CFS_BANDWIDTH=y
CONFIG_NAMESPACES=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_CHECKPOINT_RESTORE=y
CONFIG_EMBEDDED=y
CONFIG_PARTITION_ADVANCED=y
# CONFIG_IOSCHED_DEADLINE is not set
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_UNIX=y
CONFIG_INET=y
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
# CONFIG_INET_XFRM_MODE_BEET is not set
# CONFIG_INET_DIAG is not set
CONFIG_BRIDGE=y
CONFIG_NET_SCHED=y
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
# CONFIG_FIRMWARE_IN_KERNEL is not set
CONFIG_EXTRA_FIRMWARE="radeon/BTC_rlc.bin radeon/CAICOS_mc.bin radeon/CAICOS_me.bin radeon/CAICOS_pfp.bin radeon/CAICOS_smc.bin radeon/SUMO_uvd.bin"
CONFIG_MTD=y
CONFIG_MTD_BLOCK_RO=y
CONFIG_MTD_M25P80=y
CONFIG_MTD_SPI_NOR=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_VIRTIO_BLK=y
CONFIG_EEPROM_AT24=y
CONFIG_BLK_DEV_SD=y
CONFIG_ATA=y
CONFIG_SATA_AHCI=y
CONFIG_SATA_SIL24=y
CONFIG_SATA_MV=y
CONFIG_NETDEVICES=y
CONFIG_VIRTIO_NET=y
CONFIG_MACB=y
CONFIG_MICROSEMI_PHY=y
CONFIG_INPUT_MOUSEDEV=y
# CONFIG_INPUT_MOUSE is not set
CONFIG_SERIAL_SIFIVE=y
CONFIG_SERIAL_SIFIVE_CONSOLE=y
CONFIG_VIRTIO_CONSOLE=y
# CONFIG_HW_RANDOM is not set
CONFIG_I2C_OCORES=y
CONFIG_SPI=y
CONFIG_SPI_SIFIVE=y
CONFIG_GPIOLIB=y
CONFIG_GPIO_SYSFS=y
CONFIG_GPIO_SIFIVE=y
CONFIG_POWER_RESET=y
CONFIG_POWER_RESET_GPIO_RESTART=y
CONFIG_MEDIA_SUPPORT=y
CONFIG_MEDIA_CAMERA_SUPPORT=y
CONFIG_MEDIA_USB_SUPPORT=y
CONFIG_USB_VIDEO_CLASS=y
# CONFIG_VGA_ARB is not set
CONFIG_DRM=y
CONFIG_DRM_RADEON=y
# CONFIG_VGA_CONSOLE is not set
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_LOGO=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_STORAGE=y
CONFIG_MMC=y
CONFIG_MMC_SPI=y
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=y
CONFIG_LEDS_PWM=y
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_MTD=y
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
CONFIG_LEDS_TRIGGER_PANIC=y
CONFIG_VIRTIO_MMIO=y
CONFIG_CLK_U54_PRCI=y
CONFIG_CLK_GEMGXL_MGMT=y
# CONFIG_IOMMU_SUPPORT is not set
CONFIG_PWM=y
CONFIG_PWM_SIFIVE=y
CONFIG_NVMEM_SIFIVE_U500_OTP=y
CONFIG_EXT2_FS=y
CONFIG_EXT4_FS=y
CONFIG_XFS_FS=y
CONFIG_XFS_QUOTA=y
CONFIG_XFS_POSIX_ACL=y
# CONFIG_DNOTIFY is not set
CONFIG_AUTOFS4_FS=y
CONFIG_VFAT_FS=y
CONFIG_FAT_DEFAULT_UTF8=y
CONFIG_TMPFS=y
CONFIG_TMPFS_POSIX_ACL=y
# CONFIG_MISC_FILESYSTEMS is not set
# CONFIG_NETWORK_FILESYSTEMS is not set
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_UTF8=y
CONFIG_CMDLINE_BOOL=y
CONFIG_CMDLINE="earlyprintk video=640x480 root=/dev/sda1"
CONFIG_PRINTK_TIME=y
CONFIG_STRIP_ASM_SYMS=y
CONFIG_DEBUG_SECTION_MISMATCH=y
CONFIG_STACKTRACE=y
# CONFIG_CRYPTO_HW is not set

View File

@@ -0,0 +1,90 @@
CONFIG_SMP=y
# CONFIG_COMPACTION is not set
CONFIG_HZ_100=y
CONFIG_CROSS_COMPILE="riscv64-unknown-linux-gnu-"
CONFIG_DEFAULT_HOSTNAME="ucbvax"
CONFIG_SYSVIPC=y
# CONFIG_CROSS_MEMORY_ATTACH is not set
CONFIG_CGROUPS=y
CONFIG_CGROUP_SCHED=y
CONFIG_CFS_BANDWIDTH=y
CONFIG_NAMESPACES=y
CONFIG_CHECKPOINT_RESTORE=y
CONFIG_EMBEDDED=y
CONFIG_PARTITION_ADVANCED=y
# CONFIG_IOSCHED_DEADLINE is not set
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_UNIX=y
CONFIG_INET=y
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
# CONFIG_INET_XFRM_MODE_BEET is not set
# CONFIG_INET_DIAG is not set
CONFIG_BRIDGE=y
CONFIG_NET_SCHED=y
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
# CONFIG_FIRMWARE_IN_KERNEL is not set
CONFIG_MTD=y
CONFIG_MTD_BLOCK_RO=y
CONFIG_MTD_M25P80=y
CONFIG_MTD_SPI_NOR=y
CONFIG_VIRTIO_BLK=y
CONFIG_EEPROM_AT24=y
CONFIG_BLK_DEV_SD=y
CONFIG_ATA=y
CONFIG_NETDEVICES=y
CONFIG_VIRTIO_NET=y
CONFIG_MACB=y
CONFIG_MICROSEMI_PHY=y
# CONFIG_VT is not set
CONFIG_SERIAL_SIFIVE=y
CONFIG_SERIAL_SIFIVE_CONSOLE=y
# CONFIG_HVC_RISCV_SBI is not set
CONFIG_VIRTIO_CONSOLE=y
# CONFIG_HW_RANDOM is not set
CONFIG_I2C=y
CONFIG_I2C_OCORES=y
CONFIG_SPI=y
CONFIG_SPI_SIFIVE=y
CONFIG_GPIOLIB=y
CONFIG_GPIO_SYSFS=y
CONFIG_GPIO_SIFIVE=y
CONFIG_POWER_RESET=y
CONFIG_POWER_RESET_GPIO_RESTART=y
CONFIG_MMC=y
CONFIG_MMC_SPI=y
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=y
CONFIG_LEDS_PWM=y
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_MTD=y
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
CONFIG_LEDS_TRIGGER_PANIC=y
CONFIG_VIRTIO_MMIO=y
CONFIG_CLK_U54_PRCI=y
CONFIG_CLK_GEMGXL_MGMT=y
# CONFIG_IOMMU_SUPPORT is not set
CONFIG_PWM=y
CONFIG_PWM_SIFIVE=y
CONFIG_NVMEM_SIFIVE_U500_OTP=y
CONFIG_EXT3_FS=y
CONFIG_EXT4_FS_SECURITY=y
CONFIG_XFS_FS=y
CONFIG_XFS_QUOTA=y
CONFIG_XFS_POSIX_ACL=y
# CONFIG_DNOTIFY is not set
CONFIG_AUTOFS4_FS=y
# CONFIG_PROC_PAGE_MONITOR is not set
CONFIG_TMPFS=y
CONFIG_TMPFS_POSIX_ACL=y
# CONFIG_MISC_FILESYSTEMS is not set
# CONFIG_NETWORK_FILESYSTEMS is not set
CONFIG_CMDLINE_BOOL=y
CONFIG_CMDLINE="earlyprintk root=/dev/mmcblk0p2 rootwait"
CONFIG_PRINTK_TIME=y
CONFIG_STRIP_ASM_SYMS=y
CONFIG_DEBUG_SECTION_MISMATCH=y
CONFIG_STACKTRACE=y
# CONFIG_CRYPTO_HW is not set

View File

@@ -0,0 +1,111 @@
CONFIG_SMP=y
# CONFIG_COMPACTION is not set
CONFIG_HZ_100=y
CONFIG_PCI=y
CONFIG_PCI_DEBUG=y
CONFIG_PCIE_XILINX=y
CONFIG_CROSS_COMPILE="riscv64-unknown-linux-gnu-"
CONFIG_DEFAULT_HOSTNAME="ucbvax"
CONFIG_SYSVIPC=y
# CONFIG_CROSS_MEMORY_ATTACH is not set
CONFIG_CGROUPS=y
CONFIG_CGROUP_SCHED=y
CONFIG_CFS_BANDWIDTH=y
CONFIG_NAMESPACES=y
CONFIG_CHECKPOINT_RESTORE=y
CONFIG_EMBEDDED=y
CONFIG_PARTITION_ADVANCED=y
# CONFIG_IOSCHED_DEADLINE is not set
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_UNIX=y
CONFIG_INET=y
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
# CONFIG_INET_XFRM_MODE_BEET is not set
# CONFIG_INET_DIAG is not set
CONFIG_BRIDGE=y
CONFIG_NET_SCHED=y
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
# CONFIG_FIRMWARE_IN_KERNEL is not set
CONFIG_EXTRA_FIRMWARE="radeon/BTC_rlc.bin radeon/CAICOS_mc.bin radeon/CAICOS_me.bin radeon/CAICOS_pfp.bin radeon/CAICOS_smc.bin radeon/SUMO_uvd.bin"
CONFIG_MTD=y
CONFIG_MTD_BLOCK_RO=y
CONFIG_MTD_M25P80=y
CONFIG_MTD_SPI_NOR=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_VIRTIO_BLK=y
CONFIG_EEPROM_AT24=y
CONFIG_BLK_DEV_SD=y
CONFIG_SCSI_VIRTIO=y
CONFIG_ATA=y
CONFIG_SATA_AHCI=y
CONFIG_SATA_SIL24=y
CONFIG_NETDEVICES=y
CONFIG_VIRTIO_NET=y
CONFIG_MACB=y
CONFIG_E1000E=y
CONFIG_R8169=y
CONFIG_MICROSEMI_PHY=y
CONFIG_INPUT_MOUSEDEV=y
# CONFIG_INPUT_KEYBOARD is not set
# CONFIG_INPUT_MOUSE is not set
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_OF_PLATFORM=y
CONFIG_VIRTIO_CONSOLE=y
# CONFIG_HW_RANDOM is not set
CONFIG_I2C_OCORES=y
CONFIG_SPI=y
CONFIG_SPI_SIFIVE=y
CONFIG_GPIOLIB=y
CONFIG_GPIO_SYSFS=y
CONFIG_GPIO_SIFIVE=y
CONFIG_POWER_RESET=y
CONFIG_POWER_RESET_GPIO_RESTART=y
CONFIG_PMBUS=y
CONFIG_DRM=y
CONFIG_DRM_RADEON=y
# CONFIG_VGA_CONSOLE is not set
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_LOGO=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_STORAGE=y
CONFIG_MMC=y
CONFIG_MMC_SPI=y
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=y
CONFIG_LEDS_PWM=y
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_MTD=y
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
CONFIG_LEDS_TRIGGER_PANIC=y
CONFIG_VIRTIO_MMIO=y
CONFIG_CLK_U54_PRCI=y
CONFIG_CLK_GEMGXL_MGMT=y
# CONFIG_IOMMU_SUPPORT is not set
CONFIG_PWM=y
CONFIG_PWM_SIFIVE=y
CONFIG_NVMEM_SIFIVE_U500_OTP=y
CONFIG_EXT3_FS=y
CONFIG_EXT4_FS_SECURITY=y
CONFIG_XFS_FS=y
CONFIG_XFS_QUOTA=y
CONFIG_XFS_POSIX_ACL=y
# CONFIG_DNOTIFY is not set
CONFIG_AUTOFS4_FS=y
# CONFIG_PROC_PAGE_MONITOR is not set
CONFIG_TMPFS=y
CONFIG_TMPFS_POSIX_ACL=y
# CONFIG_MISC_FILESYSTEMS is not set
# CONFIG_NETWORK_FILESYSTEMS is not set
CONFIG_CMDLINE_BOOL=y
CONFIG_CMDLINE="earlyprintk video=640x480 root=/dev/mmcblk0p2 rootwait"
CONFIG_PRINTK_TIME=y
CONFIG_STRIP_ASM_SYMS=y
CONFIG_DEBUG_SECTION_MISMATCH=y
CONFIG_STACKTRACE=y
# CONFIG_CRYPTO_HW is not set

135
conf/linux_framebuffer_smp Normal file
View File

@@ -0,0 +1,135 @@
CONFIG_SMP=y
# CONFIG_COMPACTION is not set
CONFIG_HZ_100=y
CONFIG_CROSS_COMPILE="riscv64-unknown-linux-gnu-"
CONFIG_DEFAULT_HOSTNAME="ucbvax"
# CONFIG_CROSS_MEMORY_ATTACH is not set
CONFIG_NAMESPACES=y
CONFIG_BLK_DEV_INITRD=y
# CONFIG_RD_BZIP2 is not set
# CONFIG_RD_LZMA is not set
# CONFIG_RD_XZ is not set
# CONFIG_RD_LZO is not set
# CONFIG_RD_LZ4 is not set
CONFIG_EMBEDDED=y
# CONFIG_BLK_DEV_BSG is not set
CONFIG_PARTITION_ADVANCED=y
# CONFIG_EFI_PARTITION is not set
# CONFIG_IOSCHED_DEADLINE is not set
CONFIG_NET=y
CONFIG_UNIX=y
CONFIG_INET=y
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
# CONFIG_INET_XFRM_MODE_BEET is not set
# CONFIG_INET_LRO is not set
# CONFIG_INET_DIAG is not set
# CONFIG_IPV6 is not set
# CONFIG_WIRELESS is not set
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
# CONFIG_FIRMWARE_IN_KERNEL is not set
# CONFIG_BLK_DEV is not set
# CONFIG_INPUT_MOUSEDEV is not set
# CONFIG_INPUT_KEYBOARD is not set
# CONFIG_INPUT_MOUSE is not set
# CONFIG_VT is not set
# CONFIG_HW_RANDOM is not set
# CONFIG_HWMON is not set
# CONFIG_USB_SUPPORT is not set
# CONFIG_IOMMU_SUPPORT is not set
CONFIG_EXT3_FS=y
# CONFIG_FILE_LOCKING is not set
# CONFIG_DNOTIFY is not set
# CONFIG_INOTIFY_USER is not set
# CONFIG_PROC_PAGE_MONITOR is not set
CONFIG_TMPFS=y
# CONFIG_MISC_FILESYSTEMS is not set
# CONFIG_NETWORK_FILESYSTEMS is not set
CONFIG_EARLY_PRINTK=y
CONFIG_PRINTK_TIME=y
CONFIG_STRIP_ASM_SYMS=y
CONFIG_DEBUG_SECTION_MISMATCH=y
CONFIG_CMDLINE_BOOL=y
CONFIG_CMDLINE="earlyprintk video=640x480"
CONFIG_FRAME_POINTER=y
CONFIG_STACKTRACE=y
# CONFIG_CRYPTO_ANSI_CPRNG is not set
# CONFIG_CRYPTO_HW is not set
CONFIG_PCI=y
CONFIG_PCI_DEBUG=y
CONFIG_USB_HID=y
CONFIG_USB_SUPPORT=y
CONFIG_USB_COMMON=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
CONFIG_USB_XHCI_PCI=y
CONFIG_USB_EHCI_HCD=y
CONFIG_INPUT_MOUSEDEV=y
CONFIG_PACKET=y
CONFIG_NETDEVICES=y
CONFIG_NET_CORE=y
CONFIG_ETHERNET=y
CONFIG_NET_VENDOR_INTEL=y
CONFIG_E1000E=y
CONFIG_PCIE_XILINX=y
CONFIG_PCI_DMA_32=y
CONFIG_R8169=y
CONFIG_SCSI=y
CONFIG_SCSI_DMA=y
CONFIG_SCSI_PROC_FS=y
CONFIG_USB_STORAGE=y
CONFIG_BLK_DEV=y
CONFIG_BLK_DEV_SD=y
CONFIG_EFI_PARTITION=y
CONFIG_ATA=y
CONFIG_SATA_AHCI=y
CONFIG_SATA_SIL24=y
# Freedom-Unleash devices:
CONFIG_NET_CADENCE=y
CONFIG_MACB=y
CONFIG_CLK_GEMGXL_MGMT=y
CONFIG_CLK_U54_PRCI=y
CONFIG_MICROSEMI_PHY=y
CONFIG_I2C=y
CONFIG_I2C_OCORES=y
CONFIG_HWMON=y
CONFIG_PMBUS=y
CONFIG_EEPROM_AT24=y
CONFIG_SPI=y
CONFIG_SPI_SIFIVE=y
CONFIG_GPIO_SYSFS=y
CONFIG_MMC=y
CONFIG_MMC_SPI=y
CONFIG_MTD=y
CONFIG_MTD_SPI_NOR=y
CONFIG_MTD_M25P80=y
CONFIG_MTD_BLOCK_RO=y
CONFIG_GPIOLIB=y
CONFIG_GPIO_SIFIVE=y
CONFIG_POWER_RESET=y
CONFIG_POWER_RESET_GPIO_RESTART=y
CONFIG_PWM=y
CONFIG_PWM_SIFIVE=y
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=y
CONFIG_LEDS_PWM=y
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
CONFIG_LEDS_TRIGGER_MTD=y
CONFIG_LEDS_TRIGGER_NETDEV=y
CONFIG_LEDS_TRIGGER_PANIC=y
CONFIG_NVMEM=y
CONFIG_NVMEM_SIFIVE_U500_OTP=y
CONFIG_VT=y
CONFIG_DRM=y
CONFIG_DRM_RADEON=y
CONFIG_VGA_CONSOLE=n
CONFIG_LOGO=y
CONFIG_LOGO_LINUX_CLUT224=y
CONFIG_FB=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
CONFIG_EXTRA_FIRMWARE="radeon/BTC_rlc.bin radeon/CAICOS_mc.bin radeon/CAICOS_me.bin radeon/CAICOS_pfp.bin radeon/CAICOS_smc.bin radeon/SUMO_uvd.bin"

View File

@@ -0,0 +1,101 @@
CONFIG_SMP=y
# CONFIG_COMPACTION is not set
CONFIG_HZ_100=y
CONFIG_PCI=y
CONFIG_PCI_DMA_32=y
CONFIG_PCI_DEBUG=y
CONFIG_PCIE_MICROSEMI=y
CONFIG_CROSS_COMPILE="riscv64-unknown-linux-gnu-"
CONFIG_DEFAULT_HOSTNAME="ucbvax"
# CONFIG_CROSS_MEMORY_ATTACH is not set
CONFIG_NAMESPACES=y
CONFIG_BLK_DEV_INITRD=y
# CONFIG_RD_BZIP2 is not set
# CONFIG_RD_LZMA is not set
# CONFIG_RD_XZ is not set
# CONFIG_RD_LZO is not set
# CONFIG_RD_LZ4 is not set
CONFIG_EMBEDDED=y
# CONFIG_BLK_DEV_BSG is not set
CONFIG_PARTITION_ADVANCED=y
# CONFIG_IOSCHED_DEADLINE is not set
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_UNIX=y
CONFIG_INET=y
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
# CONFIG_INET_XFRM_MODE_BEET is not set
# CONFIG_INET_DIAG is not set
# CONFIG_IPV6 is not set
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
# CONFIG_FIRMWARE_IN_KERNEL is not set
CONFIG_EXTRA_FIRMWARE="radeon/BTC_rlc.bin radeon/CAICOS_mc.bin radeon/CAICOS_me.bin radeon/CAICOS_pfp.bin radeon/CAICOS_smc.bin radeon/SUMO_uvd.bin"
CONFIG_MTD=y
CONFIG_MTD_BLOCK_RO=y
CONFIG_MTD_M25P80=y
CONFIG_MTD_SPI_NOR=y
CONFIG_EEPROM_AT24=y
CONFIG_BLK_DEV_SD=y
CONFIG_ATA=y
CONFIG_SATA_AHCI=y
CONFIG_SATA_SIL24=y
CONFIG_SATA_MV=y
CONFIG_NETDEVICES=y
CONFIG_MACB=y
CONFIG_E1000E=y
CONFIG_R8169=y
CONFIG_MICROSEMI_PHY=y
CONFIG_INPUT_MOUSEDEV=y
# CONFIG_INPUT_KEYBOARD is not set
# CONFIG_INPUT_MOUSE is not set
# CONFIG_HW_RANDOM is not set
CONFIG_I2C_OCORES=y
CONFIG_SPI=y
CONFIG_SPI_SIFIVE=y
CONFIG_GPIOLIB=y
CONFIG_GPIO_SYSFS=y
CONFIG_GPIO_SIFIVE=y
CONFIG_POWER_RESET=y
CONFIG_POWER_RESET_GPIO_RESTART=y
CONFIG_PMBUS=y
CONFIG_DRM=y
CONFIG_DRM_RADEON=y
# CONFIG_VGA_CONSOLE is not set
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_LOGO=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_STORAGE=y
CONFIG_MMC=y
CONFIG_MMC_SPI=y
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=y
CONFIG_LEDS_PWM=y
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_MTD=y
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
CONFIG_LEDS_TRIGGER_PANIC=y
CONFIG_CLK_U54_PRCI=y
CONFIG_CLK_GEMGXL_MGMT=y
# CONFIG_IOMMU_SUPPORT is not set
CONFIG_PWM=y
CONFIG_PWM_SIFIVE=y
CONFIG_NVMEM_SIFIVE_U500_OTP=y
CONFIG_EXT3_FS=y
# CONFIG_FILE_LOCKING is not set
# CONFIG_DNOTIFY is not set
# CONFIG_INOTIFY_USER is not set
# CONFIG_PROC_PAGE_MONITOR is not set
CONFIG_TMPFS=y
# CONFIG_MISC_FILESYSTEMS is not set
# CONFIG_NETWORK_FILESYSTEMS is not set
CONFIG_CMDLINE_BOOL=y
CONFIG_CMDLINE="earlyprintk video=640x480"
CONFIG_PRINTK_TIME=y
CONFIG_STRIP_ASM_SYMS=y
CONFIG_DEBUG_SECTION_MISMATCH=y
CONFIG_STACKTRACE=y
# CONFIG_CRYPTO_HW is not set

View File

@@ -0,0 +1,115 @@
CONFIG_SMP=y
# CONFIG_COMPACTION is not set
CONFIG_HZ_100=y
CONFIG_PCI=y
CONFIG_PCI_DMA_32=y
CONFIG_PCI_DEBUG=y
CONFIG_PCIE_MICROSEMI=y
CONFIG_CROSS_COMPILE="riscv64-unknown-linux-gnu-"
CONFIG_DEFAULT_HOSTNAME="ucbvax"
CONFIG_SYSVIPC=y
# CONFIG_CROSS_MEMORY_ATTACH is not set
CONFIG_CGROUPS=y
CONFIG_CGROUP_SCHED=y
CONFIG_CFS_BANDWIDTH=y
CONFIG_NAMESPACES=y
CONFIG_CHECKPOINT_RESTORE=y
CONFIG_EMBEDDED=y
CONFIG_PARTITION_ADVANCED=y
# CONFIG_IOSCHED_DEADLINE is not set
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_UNIX=y
CONFIG_INET=y
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
# CONFIG_INET_XFRM_MODE_BEET is not set
# CONFIG_INET_DIAG is not set
CONFIG_BRIDGE=y
CONFIG_NET_SCHED=y
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
# CONFIG_FIRMWARE_IN_KERNEL is not set
CONFIG_EXTRA_FIRMWARE="radeon/BTC_rlc.bin radeon/CAICOS_mc.bin radeon/CAICOS_me.bin radeon/CAICOS_pfp.bin radeon/CAICOS_smc.bin radeon/SUMO_uvd.bin"
CONFIG_MTD=y
CONFIG_MTD_BLOCK_RO=y
CONFIG_MTD_M25P80=y
CONFIG_MTD_SPI_NOR=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_VIRTIO_BLK=y
CONFIG_EEPROM_AT24=y
CONFIG_BLK_DEV_SD=y
CONFIG_SCSI_VIRTIO=y
CONFIG_ATA=y
CONFIG_SATA_AHCI=y
CONFIG_SATA_SIL24=y
CONFIG_SATA_MV=y
CONFIG_NETDEVICES=y
CONFIG_VIRTIO_NET=y
CONFIG_MACB=y
CONFIG_E1000E=y
CONFIG_R8169=y
CONFIG_MICROSEMI_PHY=y
CONFIG_INPUT_MOUSEDEV=y
# CONFIG_INPUT_KEYBOARD is not set
# CONFIG_INPUT_MOUSE is not set
# CONFIG_HW_RANDOM is not set
CONFIG_I2C_OCORES=y
CONFIG_SPI=y
CONFIG_SPI_SIFIVE=y
CONFIG_GPIOLIB=y
CONFIG_GPIO_SYSFS=y
CONFIG_GPIO_SIFIVE=y
CONFIG_POWER_RESET=y
CONFIG_POWER_RESET_GPIO_RESTART=y
CONFIG_PMBUS=y
CONFIG_MEDIA_SUPPORT=y
CONFIG_MEDIA_CAMERA_SUPPORT=y
CONFIG_MEDIA_USB_SUPPORT=y
CONFIG_USB_VIDEO_CLASS=y
# CONFIG_USB_GSPCA is not set
CONFIG_DRM=y
CONFIG_DRM_RADEON=y
# CONFIG_VGA_CONSOLE is not set
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_LOGO=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_STORAGE=y
CONFIG_MMC=y
CONFIG_MMC_SPI=y
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=y
CONFIG_LEDS_PWM=y
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_MTD=y
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
CONFIG_LEDS_TRIGGER_PANIC=y
CONFIG_VIRTIO_MMIO=y
CONFIG_CLK_U54_PRCI=y
CONFIG_CLK_GEMGXL_MGMT=y
# CONFIG_IOMMU_SUPPORT is not set
CONFIG_PWM=y
CONFIG_PWM_SIFIVE=y
CONFIG_NVMEM_SIFIVE_U500_OTP=y
CONFIG_EXT3_FS=y
CONFIG_EXT4_FS_SECURITY=y
CONFIG_XFS_FS=y
CONFIG_XFS_QUOTA=y
CONFIG_XFS_POSIX_ACL=y
# CONFIG_DNOTIFY is not set
CONFIG_AUTOFS4_FS=y
# CONFIG_PROC_PAGE_MONITOR is not set
CONFIG_TMPFS=y
CONFIG_TMPFS_POSIX_ACL=y
# CONFIG_MISC_FILESYSTEMS is not set
# CONFIG_NETWORK_FILESYSTEMS is not set
CONFIG_CMDLINE_BOOL=y
CONFIG_CMDLINE="earlyprintk video=640x480 root=/dev/mmcblk0p2 rootwait"
CONFIG_SECCOMP=y
CONFIG_PRINTK_TIME=y
CONFIG_STRIP_ASM_SYMS=y
CONFIG_DEBUG_SECTION_MISMATCH=y
CONFIG_STACKTRACE=y
# CONFIG_CRYPTO_HW is not set

View File

@@ -0,0 +1,58 @@
/dts-v1/;
/ {
description = "U-boot FIT image for HiFive Unleashed";
#address-cells = <2>;
images {
bbl {
description = "BBL/SBI/riscv-pk";
data = /incbin/("../work/bbl.bin");
type = "kernel";
arch = "riscv";
os = "linux";
load = <0x80000000>;
entry = <0x80000000>;
compression = "none";
hash-1 {
algo = "sha256";
};
};
ramdisk {
description = "buildroot initramfs";
data = /incbin/("../work/initramfs.cpio.gz");
type = "ramdisk";
arch = "riscv";
os = "linux";
load = <0x82000000>;
compression = "gzip";
hash-1 {
algo = "sha256";
};
};
fdt {
data = /incbin/("../work/u-boot/arch/riscv/dts/hifive_u540_nvdla_iofpga.dtb");
type = "flat_dt";
arch = "riscv";
load = <0x81f00000>;
compression = "none";
hash-1 {
algo = "sha256";
};
};
};
configurations {
default = "config-1";
config-1 {
description = "HiFive Unleashed with BBL";
kernel = "bbl";
fdt = "fdt";
loadables = "ramdisk";
};
};
};

18
conf/rvboot-fit.txt Normal file
View File

@@ -0,0 +1,18 @@
fitfile=image.fit
# below much match what's in FIT (ugha)
bbladdr=80000000
fdtaddr=81f00000
vmladdr=80200000
irdaddr=82000000
# oh the hack.. use a large size.. ugh
irdsize=01000000
vmlsize=00800000
newfdt=f0000000
setup1=fdt addr ${fdtaddr}; fdt resize; fdt set /chosen linux,initrd-start <0x0 0x${irdaddr}>; fdt set /chosen riscv,kernel-start <0x0 0x${vmladdr}>; fdt move ${fdtaddr} ${newfdt}
setup2=setexpr vmlend ${vmladdr} + ${vmlsize}; setexpr irdend ${irdaddr} + ${irdsize}
setup3=fdt set /chosen linux,initrd-end <0x0 0x${irdend}>; fdt set /chosen riscv,kernel-end <0x0 0x${vmlend}>
#setup4=fdt set /chosen bootargs ${bootargs}; fdt print /chosen
setup4=fdt print /chosen; fdt set /firmware uboot,ver ${ver}
boot2=dhcp ${fitfile}; bootm start; run setup1; run setup2; run setup3; run setup4; bootm loados; echo sleep 2; sleep 2; go 80000000
#boot2=run loadbbl; run loadfdt; run setup1; run setup3; run setup4; go 80000000

24
conf/rvboot.txt Normal file
View File

@@ -0,0 +1,24 @@
bblfile=bbl.bin
vmlfile=vmlinux.bin
irdfile=initramfs.cpio.gz
#fdtfile=hifive-unleashed-a00-fu540.dtb
#fdtfile=ux00_fsbl.dtb
fdtfile=hifive_u540.dtb
bbladdr=80000000
fdtaddr=81f00000
vmladdr=80200000
irdaddr=82000000
loadbbl=dhcp ${bbladdr} ${bblfile}; setenv bblsize ${filesize}
loadvml=dhcp ${vmladdr} ${vmlfile}; setenv vmlsize ${filesize}
loadird=dhcp ${irdaddr} ${irdfile}; setenv irdsize ${filesize}
loadfdt=dhcp ${fdtaddr} ${fdtfile}; setenv fdtsize ${filesize}
newfdt=f0000000
bootargs=console=ttySIF0,921600 debug
setup1=fdt addr ${fdtaddr}; fdt resize; fdt set /chosen linux,initrd-start <0x0 0x${irdaddr}>; fdt set /chosen riscv,kernel-start <0x0 0x${vmladdr}>; fdt move ${fdtaddr} ${newfdt}
setup2=setexpr vmlend ${vmladdr} + ${vmlsize}; setexpr irdend ${irdaddr} + ${irdsize}
setup3=fdt set /chosen linux,initrd-end <0x0 0x${irdend}>; fdt set /chosen riscv,kernel-end <0x0 0x${vmlend}>
#setup4=fdt set /chosen bootargs ${bootargs}; fdt print /chosen
setup4=fdt print /chosen
boot2=run loadbbl; run loadvml; run loadird; run loadfdt; run setup1; run setup2; run setup3; run setup4; go 80000000
#boot2=run loadbbl; run loadfdt; run setup1; run setup3; run setup4; go 80000000

26
conf/sifive_logo.txt Normal file
View File

@@ -0,0 +1,26 @@
SIFIVE, INC.
5555555555555555555555555
5555 5555
5555 5555
5555 5555
5555 5555555555555555555555
5555 555555555555555555555555
5555 5555
5555 5555
5555 5555
5555555555555555555555555555 55555
55555 555555555 55555
55555 55555 55555
55555 5 55555
55555 55555
55555 55555
55555 55555
55555 55555
55555 55555
555555555
55555
5
SiFive RISC-V Core IP

31
conf/starfive_logo.txt Executable file
View File

@@ -0,0 +1,31 @@
SSS
SSSSSSSSSS
SSSSSSSSSSSSSSSS
SSSSSSSSS SSSSSSSSSSS
SSSSSSSSS SSSSSSSS
SSSSSSSSS SS SSSS
SSSSSSSSS SSSSS SS
SSSSSSSS SSSSSSSSS
SSSSSS SS SSSSSSSSSS
SSSSSS SSSSS SSSSSSSSS
SSSSSSS SSSSSSSS SSSSSS
SSSSSSSS SSSSSSSSSS SSS
SSSSSSSSES SSSSSSSSSS
SSSSSSSSSSS SSSSSSSSSS
SSSSSSSSSS SSSSSSSSSS
SSSS SSSSSSSSSSS SSSSSSS
SSSSSSS SSSSSSS SSSSSS
SSSSSSSSSS SSS SSSSSS
SSSSSSSSSSS SSSSSSS
SSSSSSS SSSSSSSS
SSS SSSS SSSSSSSSS
SSSSSS SS SSSSSSSSSS
SSSSSSSSES SSSSSSSSS
SSSSSSSSSSS SSSSSSSSS
SSSSSSSSSSSSSSS
SSSSSSSS
SS
StarFive RISC-V Core IP

View File

@@ -0,0 +1,55 @@
/dts-v1/;
/ {
description = "U-boot FIT image for HiFive Nvdla";
#address-cells = <2>;
images {
vmlinux {
description = "vmlinux";
data = /incbin/("../work/linux/arch/riscv/boot/Image");
type = "kernel";
arch = "riscv";
os = "linux";
load = <0x0 0x80200000>;
entry = <0x0 0x80200000>;
compression = "none";
};
ramdisk {
description = "buildroot initramfs";
data = /incbin/("../work/initramfs.cpio.gz");
type = "ramdisk";
arch = "riscv";
os = "linux";
load = <0x0 0x86100000>;
compression = "none";
hash-1 {
algo = "sha256";
};
};
fdt {
data = /incbin/("../work/u-boot/arch/riscv/dts/starfive_vic7100_evb.dtb");
type = "flat_dt";
arch = "riscv";
load = <0x0 0x86000000>;
compression = "none";
hash-1 {
algo = "sha256";
};
};
};
configurations {
default = "config-1";
config-1 {
description = "HiFive Nvdla with opensbi";
kernel = "vmlinux";
fdt = "fdt";
loadables = "ramdisk";
};
};
};

44
conf/u74_uEnv.txt Executable file
View File

@@ -0,0 +1,44 @@
# This is the sample uEnv.txt file for HiFive Unleashed U-boot
# The current convention (SUBJECT TO CHANGE) is that this file
# will be loaded from the first MSDOS(fat) GPT partition on the
# MMC card.
# for debugging boot
#bootargs=video=640x480 console=ttySI0 root=/dev/mmcblk0p2 rootwait
bootargs=earlyprintk console=ttyS0,115200 debug rootwait stmmaceth=chain_mode:1 root=/dev/mmcblk0p3
# The FIT file to boot from
fitfile=hifiveu.fit
# The rest of this is mostly of interest to u-boot developers
# below much match what's in FIT (ugha)
bbladdr=80700000
fdtaddr=86000000
irdaddr=86100000
irdsize=06400000
# Use the FDT in the FIT image..
#setupfdt1=fdt addr ${fdtaddr}; fdt resize; fdt chosen; fdt move ${fdtaddr} ${newfdt}
#use FDT that came with uboot
#setupfdt1=fdt addr ${newfdt}; fdt resize; fdt chosen; fdt move ${fdtaddr} ${newfdt}
#Use fit image, but don't call fdt move (TODO: understand later)
#setupfdt1=fdt addr ${newfdt}; fdt resize; fdt chosen
setupfdt1=fdt addr ${fdtaddr}
setupird=setexpr irdend ${irdaddr} + ${irdsize}; fdt set /chosen linux,initrd-start <0x0 0x${irdaddr}>; fdt set /chosen linux,initrd-end <0x0 0x${irdend}>
#setupfdt2=fdt set /chosen bootargs ${bootargs}; fdt print /chosen
#setupfdt2=fdt print /chosen; fdt set /chosen bootargs "${bootargs}"; fdt set /firmware uboot,ver ${ver}; fdt print /chosen
setupfdt2=fdt print /chosen; fdt set /chosen bootargs "${bootargs}"; fdt print /chosen
bootwait=setenv _delay ${bootdelay}; echo ${_delay}; while test ${_delay} > 0; do sleep 1; setexpr _delay ${_delay} - 1; echo ${_delay}; done
# this assumes ${fileaddr} is already set!!
#boot2=fatload mmc 0:1 ${fileaddr} ${fitfile}; bootm start ${fileaddr}; run setupfdt1; run setupchosen; run setupfdt2; bootm loados ${fileaddr}; echo "Booting kernel in"; run bootwait; go 80000000
boot2=fatload mmc 0:1 ${fileaddr} ${fitfile}; bootm start ${fileaddr}; run setupfdt1;run setupird;run setupfdt2; bootm loados ${fileaddr}; echo "Booting kernel in"; go ${bbladdr} ${fdtaddr}
# if you want to network boot, for testing, uncomment the following:
#boot2=dhcp; env import -t ${fileaddr} ${filesize}; run boot2

58
conf/uEnv.txt Executable file
View File

@@ -0,0 +1,58 @@
# This is the sample uEnv.txt file for HiFive Unleashed U-boot
# The current convention (SUBJECT TO CHANGE) is that this file
# will be loaded from the first MSDOS(fat) GPT partition on the
# MMC card.
# for debugging boot
bootargs=video=640x480 console=ttySI0 root=/dev/mmcblk0p2 rootwait
# for normal boot
#bootargs=video=640x480 root=/dev/mmcblk0p2 rootwait
# To boot from partition 2 of an NVME drive (with a PCI iofpga,
# such as the MicroSemi expansion board, uncomment below:
#bootargs=debug console=tty0 console=ttySIF0 root=/dev/nvme0n1p2
# to boot an initramfs (buildroot or debian/etc) use this
#setupchosen=run setupvml; run setupird
# to boot with straight to the root= parition, uncomment below
# so we do not set the ramdisk pointers
#setupchosen=run setupvml
setupchosen=run setupird
# The FIT file to boot from
fitfile=hifiveu.fit
# The rest of this is mostly of interest to u-boot developers
# below much match what's in FIT (ugha)
bbladdr=80000000
fdtaddr=81f00000
vmladdr=80200000
irdaddr=82000000
# oh the hack.. use a large size.. ugh
irdsize=01000000
vmlsize=00800000
newfdt=f0000000
# Use the FDT in the FIT image..
#setupfdt1=fdt addr ${fdtaddr}; fdt resize; fdt chosen; fdt move ${fdtaddr} ${newfdt}
#use FDT that came with uboot
#setupfdt1=fdt addr ${newfdt}; fdt resize; fdt chosen; fdt move ${fdtaddr} ${newfdt}
#Use fit image, but don't call fdt move (TODO: understand later)
setupfdt1=fdt addr ${newfdt}; fdt resize; fdt chosen
setupird=setexpr irdend ${irdaddr} + ${irdsize}; fdt set /chosen linux,initrd-start <0x0 0x${irdaddr}>; fdt set /chosen linux,initrd-end <0x0 0x${irdend}>
setupvml=setexpr vmlend ${vmladdr} + ${vmlsize}; fdt set /chosen riscv,kernel-start <0x0 0x${vmladdr}>; fdt set /chosen riscv,kernel-end <0x0 0x${vmlend}>
#setupfdt2=fdt set /chosen bootargs ${bootargs}; fdt print /chosen
setupfdt2=fdt print /chosen; fdt set /chosen bootargs "${bootargs}"; fdt set /firmware uboot,ver ${ver}; fdt print /chosen
bootwait=setenv _delay ${bootdelay}; echo ${_delay}; while test ${_delay} > 0; do sleep 1; setexpr _delay ${_delay} - 1; echo ${_delay}; done
# this assumes ${fileaddr} is already set!!
boot2=fatload mmc 0:1 ${fileaddr} ${fitfile}; bootm start ${fileaddr}; run setupfdt1; run setupchosen; run setupfdt2; bootm loados ${fileaddr}; echo "Booting kernel in"; run bootwait; go 80000000
# if you want to network boot, for testing, uncomment the following:
#boot2=dhcp; env import -t ${fileaddr} ${filesize}; run boot2

71
conf/uboot-fit-image.its Normal file
View File

@@ -0,0 +1,71 @@
/dts-v1/;
/ {
description = "U-boot FIT image for HiFive Unleashed";
#address-cells = <2>;
images {
bbl {
description = "BBL/SBI/riscv-pk";
data = /incbin/("../work/bbl.bin");
type = "kernel";
arch = "riscv";
os = "linux";
load = <0x80000000>;
entry = <0x80000000>;
compression = "none";
hash-1 {
algo = "sha256";
};
};
kernel {
description = "Linux kernel";
data = /incbin/("../work/vmlinux.bin");
type = "kernel";
arch = "riscv";
os = "linux";
load = <0x80200000>;
compression = "none";
hash-1 {
algo = "sha256";
};
};
ramdisk {
description = "buildroot initramfs";
data = /incbin/("../work/initramfs.cpio.gz");
type = "ramdisk";
arch = "riscv";
os = "linux";
load = <0x82000000>;
compression = "gzip";
hash-1 {
algo = "sha256";
};
};
fdt {
data = /incbin/("../work/u-boot/arch/riscv/dts/hifive_u540.dtb");
type = "flat_dt";
arch = "riscv";
load = <0x81f00000>;
compression = "none";
hash-1 {
algo = "sha256";
};
};
};
configurations {
default = "config-1";
config-1 {
description = "HiFive Unleashed with BBL";
kernel = "bbl";
fdt = "fdt";
loadables = "kernel", "ramdisk";
};
};
};

39
conf/version Executable file
View File

@@ -0,0 +1,39 @@
#! /bin/sh
usage() {
echo "Usage: $0 [srctree]" >&2
exit 1
}
cd "${1:-.}" || usage
echo "#! /bin/sh"
echo ""
echo "cat /proc/version"
if head=`git rev-parse --verify --short HEAD 2>/dev/null`; then
atag="`git describe 2>/dev/null`"
# Show -g<commit> if we have no tag, or just the tag
# otherwise.
if [ -z "${atag}" ] ; then
atag=$atag"-g"${head}
fi
# Check for uncommitted changes
if git diff-index --name-only HEAD | grep -v "^scripts/package" \
| read dummy; then
atag=$atag"-dirty"
fi
echo "echo \"$atag\""
fi
jh7110_flag=JH7110
for atag in $(git tag --merge HEAD --sort=-taggerdate | grep "${jh7110_flag}")
do
echo "echo \"$atag\""
exit
done

28
conf/vf2_nvme_uEnv.txt Executable file
View File

@@ -0,0 +1,28 @@
# This is the sample jh7110_uEnv.txt file for starfive visionfive U-boot
# The current convention (SUBJECT TO CHANGE) is that this file
# will be loaded from the third partition on the
# NVME ssd.
#devnvm=0
partnum=3
# The FIT file to boot from
fitfile=starfiveu.fit
# for debugging boot
bootargs_ext=if test ${devnvme} = 0; then setenv bootargs "earlyprintk console=tty1 console=ttyS0,115200 debug rootwait earlycon=sbi root=/dev/nvme0n1p4"; else setenv bootargs "earlyprintk console=tty1 console=ttyS0,115200 debug rootwait earlycon=sbi root=/dev/nvme1n1p4"; fi;
#bootargs=earlyprintk console=ttyS0,115200 debug rootwait earlycon=sbi root=/dev/nvme0n1p4
# for addr info
# boot Linux flat or compressed 'Image' stored at 'kernel_addr_r'
irdsize=5f00000
# Use the FDT in the FIT image..
setupfdt1=fdt addr ${fdtaddr}; fdt resize;
setupird=setexpr irdend ${ramdisk_addr_r} + ${irdsize}; fdt set /chosen linux,initrd-start <0x0 ${ramdisk_addr_r}>; fdt set /chosen linux,initrd-end <0x0 0x${irdend}>
setupfdt2=fdt set /chosen bootargs "${bootargs}";
bootwait=setenv _delay ${bootdelay}; echo ${_delay}; while test ${_delay} > 0; do sleep 1; setexpr _delay ${_delay} - 1; echo ${_delay}; done
boot2=run bootargs_ext; nvme dev ${devnvme}; fatload nvme ${devnvme}:${partnum} ${loadaddr} ${fitfile}; bootm start ${loadaddr}; run setupfdt1;run setupird;run setupfdt2; bootm loados ${loadaddr}; run chipa_set_linux; run cpu_vol_set; echo "Booting kernel in"; booti ${kernel_addr_r} ${ramdisk_addr_r}:${filesize} ${fdtaddr}

25
conf/vf2_uEnv.txt Executable file
View File

@@ -0,0 +1,25 @@
# This is the sample jh7110_uEnv.txt file for starfive visionfive U-boot
# The current convention (SUBJECT TO CHANGE) is that this file
# will be loaded from the third partition on the
# MMC card.
# The FIT file to boot from
fitfile=starfiveu.fit
# for debugging boot
bootargs_ext=setenv bootargs "console=tty1 console=ttyS0,115200 debug rootwait earlycon=sbi root=/dev/${sdev_blk}";
# for addr info
# boot Linux flat or compressed 'Image' stored at 'kernel_addr_r'
irdsize=5f00000
# Use the FDT in the FIT image..
setupfdt1=fdt addr ${fdtaddr}; fdt resize;
setupird=setexpr irdend ${ramdisk_addr_r} + ${irdsize}; fdt set /chosen linux,initrd-start <0x0 ${ramdisk_addr_r}>; fdt set /chosen linux,initrd-end <0x0 0x${irdend}>
setupfdt2=fdt set /chosen bootargs "${bootargs}";
bootwait=setenv _delay ${bootdelay}; echo ${_delay}; while test ${_delay} > 0; do sleep 1; setexpr _delay ${_delay} - 1; echo ${_delay}; done
boot2=run bootargs_ext; fatload ${bootdev} ${devnum}:${bootpart} ${loadaddr} ${fitfile}; bootm start ${loadaddr}; run setupfdt1;run setupird;run setupfdt2; bootm loados ${loadaddr}; run chipa_set_linux; run cpu_vol_set; echo "Booting kernel in"; booti ${kernel_addr_r} ${ramdisk_addr_r}:${filesize} ${fdtaddr}

View File

@@ -0,0 +1,55 @@
/dts-v1/;
/ {
description = "U-boot FIT image for visionfive2";
#address-cells = <2>;
images {
vmlinux {
description = "vmlinux";
data = /incbin/("../work/linux/arch/riscv/boot/Image");
type = "kernel";
arch = "riscv";
os = "linux";
load = <0x0 0x40200000>;
entry = <0x0 0x40200000>;
compression = "none";
};
ramdisk {
description = "buildroot initramfs";
data = /incbin/("../work/initramfs.cpio.gz");
type = "ramdisk";
arch = "riscv";
os = "linux";
load = <0x0 0x46100000>;
compression = "none";
hash-1 {
algo = "sha256";
};
};
fdt {
data = /incbin/("../work/linux/arch/riscv/boot/dts/starfive/jh7110-visionfive-v2.dtb");
type = "flat_dt";
arch = "riscv";
load = <0x0 0x46000000>;
compression = "none";
hash-1 {
algo = "sha256";
};
};
};
configurations {
default = "config-1";
config-1 {
description = "visionfive2 with opensbi";
kernel = "vmlinux";
fdt = "fdt";
loadables = "ramdisk";
};
};
};

View File

@@ -0,0 +1,29 @@
/dts-v1/;
/ {
description = "U-boot-spl FIT image for JH7110 VisionFive2";
#address-cells = <2>;
images {
firmware {
description = "u-boot";
data = /incbin/("../work/opensbi/platform/generic/firmware/fw_payload.bin");
type = "firmware";
arch = "riscv";
os = "u-boot";
load = <0x0 0x40000000>;
entry = <0x0 0x40000000>;
compression = "none";
};
};
configurations {
default = "config-1";
config-1 {
description = "U-boot-spl FIT config for JH7110 VisionFive2";
firmware = "firmware";
};
};
};

28
fsz.sh Executable file
View File

@@ -0,0 +1,28 @@
#!/bin/bash
function handle_file {
inFile=$1
echo inFile: $inFile
outFile=$inFile.out
inSize=`stat -c "%s" $inFile`
inSize32HexBe=`printf "%08x\n" $inSize`
inSize32HexLe=${inSize32HexBe:6:2}${inSize32HexBe:4:2}${inSize32HexBe:2:2}${inSize32HexBe:0:2}
echo "inSize: $inSize (0x$inSize32HexBe, LE:0x$inSize32HexLe)"
echo $inSize32HexLe | xxd -r -ps > $outFile
cat $inFile >> $outFile
echo outFile: $outFile
outSize=`stat -c "%s" $outFile`
outSize32HexBe=`printf "%08x\n" $outSize`
echo "outSize: $outSize (0x$outSize32HexBe)"
}
if [ "$1" = "" -o "$1" = "--help" ]; then
echo "Add file size(32bits, Little Endian) before the content."
echo "Usage: ./fsz.sh <file>"
exit 1
fi
handle_file "$@"

58
genimage.sh Executable file
View File

@@ -0,0 +1,58 @@
#!/bin/bash
##################################################################
## ##
## SPDX-License-Identifier: GPL-2.0-or-later ##
## ##
## Copyright (C) 2018-2022 Starfive Technology ##
## ##
## Author: Andy Hu <andy.hu@starfivetech.com> ##
## Date: 2022-07-27 ##
## Description: This script used to generate img file ##
## which could be burned to tf card through dd or ##
## rpi-imager or balenaEtcher tool. ##
## Run it after the usdk initramfs and rootfs had been built ##
## ##
##################################################################
COLOR_NORMAL="\033[0m"
COLOR_GREEN="\033[1;32m"
COLOR_YELLOW="\033[1;33m"
COLOR_RED="\033[1;31m"
COLOR_GREY="\033[1;30m"
HWBOARD=visionfive2
TOPDIR=`dirname $0`
BUILD_DIR=$TOPDIR/work
INPUT_DIR=$TOPDIR
OUTPUT_DIR=$TOPDIR/work
if [ $HWBOARD == "visionfive2" ]; then
GENIMAGE_CFG=$TOPDIR/conf/genimage-vf2.cfg
else
GENIMAGE_CFG=$TOPDIR/conf/genimage.cfg
fi
GENIMAGE=$TOPDIR/work/buildroot_initramfs/host/bin/genimage
if [ ! -f $GENIMAGE ]; then
printf $COLOR_RED
echo "Error: $GENIMAGE not found. need building the usdk first"
printf $COLOR_NORMAL
exit 1
fi
GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
# Pass an empty rootpath. genimage makes a full copy of the given rootpath to
# ${GENIMAGE_TMP}/root so passing TARGET_DIR would be a waste of time and disk
# space. We don't rely on genimage to build the rootfs image, just to insert a
# pre-built one in the disk image.
trap 'rm -rf "${ROOTPATH_TMP}"' EXIT
ROOTPATH_TMP="$(mktemp -d)"
rm -rf "${GENIMAGE_TMP}"
$GENIMAGE \
--rootpath "${ROOTPATH_TMP}" \
--tmppath "${GENIMAGE_TMP}" \
--inputpath "${INPUT_DIR}" \
--outputpath "${OUTPUT_DIR}" \
--config "${GENIMAGE_CFG}"

1
linux Submodule

Submodule linux added at 1be1d44b94

1
opensbi Submodule

Submodule opensbi added at c6a092cd80

34
post-build.sh Executable file
View File

@@ -0,0 +1,34 @@
#!/bin/bash
##################################################################
## ##
## SPDX-License-Identifier: GPL-2.0-or-later ##
## ##
## Copyright (C) 2018-2022 Starfive Technology ##
## ##
## Author: jason zhou <jason.zhou@starfivetech.com> ##
## ##
##################################################################
COLOR_NORMAL="\033[0m"
COLOR_GREEN="\033[1;32m"
COLOR_YELLOW="\033[1;33m"
COLOR_RED="\033[1;31m"
COLOR_GREY="\033[1;30m"
printf ${COLOR_GREEN}
echo ""
echo "post build copy images to release folder!"
folder=~/release/`git describe`-`date -I`
echo "create folder:$folder"
printf ${COLOR_NORMAL}
mkdir -p $folder
cp work/image.fit $folder/
cp work/evb_fw_payload.img $folder/
cp work/u-boot-spl.bin.normal.out $folder/
cp work/initramfs.cpio.gz $folder/
cp work/linux/arch/riscv/boot/Image.gz $folder/
cp -rf work/linux/arch/riscv/boot/dts/starfive $folder/
tree $folder
echo ""

34
pre-build.sh Executable file
View File

@@ -0,0 +1,34 @@
#!/bin/bash
##################################################################
## ##
## SPDX-License-Identifier: GPL-2.0-or-later ##
## ##
## Copyright (C) 2018-2022 Starfive Technology ##
## ##
## Author: jason zhou <jason.zhou@starfivetech.com> ##
## ##
##################################################################
COLOR_NORMAL="\033[0m"
COLOR_GREEN="\033[1;32m"
COLOR_YELLOW="\033[1;33m"
COLOR_RED="\033[1;31m"
COLOR_GREY="\033[1;30m"
printf ${COLOR_GREEN}
echo ""
echo "prepare for release build, make sure repo synced, working tree was clean"
echo "please checking if proper tagged for release!"
echo ""
printf ${COLOR_NORMAL}
git submodule sync --recursive
git pull
git submodule foreach "git pull"
git branch && git status
git submodule foreach "git branch && git status"
printf $COLOR_GREEN
git tag | grep JH7110_51
git submodule foreach "git tag | grep JH7110_51"
printf $COLOR_NORMAL

1
soft_3rdpart Submodule

Submodule soft_3rdpart added at 5eca20d2ce

1
u-boot Submodule

Submodule u-boot added at 223ac8b1e9