Browse Source

Init first freedom-u-sdk for starlight

yiming.li 3 years ago
parent
commit
870c9cb7de

+ 12 - 0
.gitmodules

@@ -0,0 +1,12 @@
+[submodule "buildroot"]
+	path = buildroot
+	url = http://192.168.110.45/sdk/sft-riscvpi-buildroot.git
+[submodule "HiFive_U-Boot"]
+	path = HiFive_U-Boot
+	url = http://192.168.110.45/sdk/sft-riscvpi-uboot.git
+[submodule "linux"]
+	path = linux
+	url = http://192.168.110.45/sdk/sft-riscvpi-linux-5.10.git
+[submodule "opensbi"]
+	path = opensbi
+	url = http://192.168.110.45/sdk/sft-riscvpi-opensbi.git

+ 1 - 0
HiFive_U-Boot

@@ -0,0 +1 @@
+Subproject commit 7dac1a6eaa1b20775b96aa8c6f45e356cd0a604d

+ 506 - 0
Makefile

@@ -0,0 +1,506 @@
+ISA ?= rv64imafdc
+ABI ?= lp64d
+TARGET_BOARD := U74
+BOARD_FLAGS	:=
+
+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
+linux_defconfig := $(confdir)/sdk_210209_defconfig
+
+vmlinux := $(linux_wrkdir)/vmlinux
+vmlinux_stripped := $(linux_wrkdir)/vmlinux-stripped
+vmlinux_bin := $(wrkdir)/vmlinux.bin
+
+ifeq ($(TARGET_BOARD),U74)
+export TARGET_BOARD
+	BOARD_FLAGS += -DTARGET_BOARD_U74
+	bbl_link_addr :=0x80700000
+	its_file=$(confdir)/u74_nvdla-uboot-fit-image.its
+else
+	bbl_link_addr :=0x80000000
+	its_file=$(confdir)/nvdla-uboot-fit-image.its
+endif
+
+flash_image := $(wrkdir)/hifive-unleashed-a00-YYYY-MM-DD.gpt
+vfat_image := $(wrkdir)/hifive-unleashed-vfat.part
+#ext_image := $(wrkdir)  # TODO
+
+initramfs := $(wrkdir)/initramfs.cpio.gz
+
+sbi_srcdir := $(srcdir)/opensbi
+sbi_wrkdir := $(wrkdir)/opensbi
+sbi_bin := $(wrkdir)/opensbi/platform/starfive/vic7100/firmware/fw_payload.bin
+fit := $(wrkdir)/image.fit
+
+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)/HiFive_U-Boot
+uboot_wrkdir := $(wrkdir)/HiFive_U-Boot
+uboot_dtb_file := $(wrkdir)/HiFive_U-Boot/arch/riscv/dts/starfive_vic7100_evb.dtb
+uboot := $(uboot_wrkdir)/u-boot.bin
+uboot_config := HiFive-U540_regression_defconfig
+
+ifeq ($(TARGET_BOARD),U74)
+	uboot_config := starfive_vic7100_evb_smode_defconfig
+else
+	uboot_config := HiFive-U540_nvdla_iofpga_defconfig
+endif
+
+uboot_defconfig := $(uboot_srcdir)/configs/$(uboot_config)
+rootfs := $(wrkdir)/rootfs.bin
+
+target_gcc := $(CROSS_COMPILE)gcc
+
+.PHONY: all nvdla-demo
+nvdla-demo: $(fit) $(vfat_image)
+	@echo "To completely erase, reformat, and program a disk sdX, run:"
+	@echo "  make DISK=/dev/sdX format-nvdla-disk"
+	@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
+
+all: $(fit) $(flash_image)
+	@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
+
+# 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
+
+$(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 conf/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)
+	$(MAKE) -C $< RISCV=$(RISCV) PATH=$(RVPATH) O=$(buildroot_rootfs_wrkdir)
+
+.PHONY: buildroot_rootfs
+buildroot_rootfs: $(buildroot_rootfs_ext)
+	cp $< $@
+
+.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) ARCH=riscv olddefconfig
+ifeq (,$(filter rv%c,$(ISA)))
+	sed 's/^.*CONFIG_RISCV_ISA_C.*$$/CONFIG_RISCV_ISA_C=n/' -i $@
+	$(MAKE) -C $(linux_srcdir) O=$(linux_wrkdir) ARCH=riscv olddefconfig
+endif
+ifeq ($(ISA),$(filter rv32%,$(ISA)))
+	sed 's/^.*CONFIG_ARCH_RV32I.*$$/CONFIG_ARCH_RV32I=y/' -i $@
+	sed 's/^.*CONFIG_ARCH_RV64I.*$$/CONFIG_ARCH_RV64I=n/' -i $@
+	$(MAKE) -C $(linux_srcdir) O=$(linux_wrkdir) ARCH=riscv olddefconfig
+endif
+
+$(uboot_wrkdir)/.config: $(uboot_defconfig)
+	mkdir -p $(dir $@)
+	cp -p $< $@
+
+$(vmlinux): $(linux_srcdir) $(linux_wrkdir)/.config $(target_gcc)
+	$(MAKE) -C $< O=$(linux_wrkdir) \
+		ARCH=riscv \
+		CROSS_COMPILE=$(CROSS_COMPILE) \
+		PATH=$(RVPATH) \
+		vmlinux		\
+		all \
+		modules
+
+.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)
+	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 menuconfig
+	$(MAKE) -C $(linux_srcdir) O=$(dir $<) ARCH=riscv savedefconfig
+	cp $(dir $<)defconfig $(linux_defconfig)
+
+sbi: $(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=starfive/vic7100 FW_PAYLOAD_PATH=$(uboot) FW_PAYLOAD_FDT_PATH=$(uboot_dtb_file)
+
+
+$(fit): sbi $(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 $<) ARCH=riscv menuconfig
+	cp $(uboot_wrkdir)/.config $(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)
+
+$(rootfs): $(buildroot_rootfs_ext)
+	cp $< $@
+
+$(buildroot_initramfs_sysroot): $(buildroot_initramfs_sysroot_stamp)
+
+.PHONY: buildroot_initramfs_sysroot vmlinux bbl fit
+buildroot_initramfs_sysroot: $(buildroot_initramfs_sysroot)
+vmlinux: $(vmlinux)
+fit: $(fit)
+
+.PHONY: clean
+clean:
+	rm -rf work/HiFive_U-Boot
+	rm -rf work/opensbi
+	rm work/vmlinux.bin
+	rm work/hifive-unleashed-vfat.part
+	rm work/image.fit
+	rm work/initramfs.cpio.gz
+	rm work/linux/vmlinux
+
+.PHONY: distclean
+distclean:
+	rm -rf -- $(wrkdir) $(toolchain_dest)
+
+.PHONY: sim
+sim: $(spike) $(bbl_payload)
+	$(spike) --isa=$(ISA) -p4 $(bbl_payload)
+
+.PHONY: qemu
+qemu: $(qemu) $(sbi) $(vmlinux) $(initramfs)
+	$(qemu) -nographic -machine virt -bios $(bbl) -kernel $(vmlinux) -initrd $(initramfs) \
+		-netdev user,id=net0 -device virtio-net-device,netdev=net0
+
+.PHONY: qemu-rootfs
+qemu-rootfs: $(qemu) $(bbl) $(vmlinux) $(initramfs) $(rootfs)
+	$(qemu) -nographic -machine virt -bios $(bbl) -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
+BBL		= 2E54B353-1271-4842-806F-E436D6AF6985
+VFAT            = EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
+LINUX		= 0FC63DAF-8483-4772-8E79-3D69D8477DE4
+#FSBL		= 5B193300-FC78-40CD-8002-E86C45580B47
+UBOOT		= 5B193300-FC78-40CD-8002-E86C45580B47
+UBOOTENV	= a09354ac-cd63-11e8-9aff-70b3d592f0fa
+UBOOTDTB	= 070dd1a8-cd64-11e8-aa3d-70b3d592f0fa
+UBOOTFIT	= 04ffcafa-cd65-11e8-b974-70b3d592f0fa
+
+flash.gpt: $(flash_image)
+
+ifeq ($(TARGET_BOARD),U74)
+VFAT_START=4096
+VFAT_END=269502
+VFAT_SIZE=263454
+UBOOT_START=2048
+UBOOT_END=4048
+UBOOT_SIZE=2000
+UENV_START=1024
+UENV_END=1099
+$(vfat_image): $(fit) $(confdir)/u74_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"; \
+		rm $(flash_image); 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) ::hifiveu.fit
+	PATH=$(RVPATH) MTOOLS_SKIP_CHECK=1 mcopy -i $(vfat_image) $(confdir)/u74_uEnv.txt ::u74_uEnv.txt
+else
+
+VFAT_START=4096
+VFAT_END=269502
+VFAT_SIZE=263454
+UBOOT_START=2048
+UBOOT_END=4048
+UBOOT_SIZE=2000
+UENV_START=1024
+UENV_END=1099
+
+$(vfat_image): $(fit) $(confdir)/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"; \
+		rm $(flash_image); 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) ::hifiveu.fit
+	PATH=$(RVPATH) MTOOLS_SKIP_CHECK=1 mcopy -i $(vfat_image) $(confdir)/uEnv.txt ::uEnv.txt
+endif
+$(flash_image): $(uboot) $(fit) $(vfat_image)
+	dd if=/dev/zero of=$(flash_image) bs=1M count=32
+	/sbin/sgdisk --clear  \
+		--new=1:$(VFAT_START):$(VFAT_END)  --change-name=1:"Vfat Boot"	--typecode=1:$(VFAT)   \
+		--new=2:$(UBOOT_START):$(UBOOT_END)   --change-name=2:uboot	--typecode=2:$(UBOOT) \
+		--new=3:$(UENV_START):$(UENV_END)   --change-name=3:uboot-env	--typecode=3:$(UBOOTENV) \
+		$(flash_image)
+	dd conv=notrunc if=$(vfat_image) of=$(flash_image) bs=512 seek=$(VFAT_START)
+	dd conv=notrunc if=$(uboot) of=$(flash_image) bs=512 seek=$(UBOOT_START) count=$(UBOOT_SIZE)
+
+DEMO_END=11718750
+
+#$(demo_image): $(uboot) $(fit) $(vfat_image) $(ext_image)
+#	dd if=/dev/zero of=$(flash_image) bs=512 count=$(DEMO_END)
+#	/sbin/sgdisk --clear  \
+#		--new=1:$(VFAT_START):$(VFAT_END)  --change-name=1:"Vfat Boot"	--typecode=1:$(VFAT)   \
+#		--new=3:$(UBOOT_START):$(UBOOT_END)   --change-name=3:uboot	--typecode=3:$(UBOOT) \
+#		--new=2:264192:$(DEMO_END) --change-name=2:root	--typecode=2:$(LINUX) \
+#		--new=4:1024:1247   --change-name=4:uboot-env	--typecode=4:$(UBOOTENV) \
+#		$(flash_image)
+#	dd conv=notrunc if=$(vfat_image) of=$(flash_image) bs=512 seek=$(VFAT_START)
+#	dd conv=notrunc if=$(uboot) of=$(flash_image) bs=512 seek=$(UBOOT_START) count=$(UBOOT_SIZE)
+
+.PHONY: format-boot-loader
+format-boot-loader: $(bbl_bin) $(uboot) $(fit) $(vfat_image)
+	@test -b $(DISK) || (echo "$(DISK): is not a block device"; exit 1)
+	/sbin/sgdisk --clear  \
+		--new=1:$(VFAT_START):$(VFAT_END)  --change-name=1:"Vfat Boot"	--typecode=1:$(VFAT)   \
+		--new=2:$(UBOOT_START):$(UBOOT_END)   --change-name=2:uboot	--typecode=2:$(UBOOT) \
+		--new=3:$(UENV_START):$(UENV_END)  --change-name=3:uboot-env	--typecode=3:$(UBOOTENV) \
+		--new=4:264192: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
+	dd if=$(uboot) of=$(PART2) bs=4096
+	dd if=$(vfat_image) of=$(PART1) bs=4096
+
+DEMO_IMAGE	:= sifive-debian-demo-mar7.tar.xz
+DEMO_URL	:= https://github.com/tmagik/freedom-u-sdk/releases/download/hifiveu-2.0-alpha.1/
+
+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
+
+ROOT_BEGIN=264192
+# default size: 20GB
+ROOT_CLUSTER_NUM=$(shell echo $$((20*1024*1024*1024/512)))
+ROOT_END=$(shell echo $$(($(ROOT_BEGIN)+$(ROOT_CLUSTER_NUM))))
+
+format-nvdla-disk: $(bbl_bin) $(uboot) $(fit) $(vfat_image)
+	@test -b $(DISK) || (echo "$(DISK): is not a block device"; exit 1)
+	/sbin/sgdisk --clear  \
+		--new=1:$(VFAT_START):$(VFAT_END)  --change-name=1:"Vfat Boot"  --typecode=1:$(VFAT)   \
+		--new=2:$(UBOOT_START):$(UBOOT_END)   --change-name=2:uboot --typecode=2:$(UBOOT) \
+		--new=3:$(ROOT_BEGIN):0 --change-name=3:root  --typecode=3:$(LINUX) \
+		$(DISK)
+	-/sbin/partprobe
+	@sleep 1
+ifeq ($(DISK)p1,$(wildcard $(DISK)p1))
+	@$(eval PART1 := $(DISK)p1)
+	@$(eval PART2 := $(DISK)p2)
+	@$(eval PART3 := $(DISK)p3)
+else ifeq ($(DISK)s1,$(wildcard $(DISK)s1))
+	@$(eval PART1 := $(DISK)s1)
+	@$(eval PART2 := $(DISK)s2)
+	@$(eval PART3 := $(DISK)s3)
+else ifeq ($(DISK)1,$(wildcard $(DISK)1))
+	@$(eval PART1 := $(DISK)1)
+	@$(eval PART2 := $(DISK)2)
+	@$(eval PART3 := $(DISK)3)
+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
+
+#usb config
+
+format-usb-disk: sbi $(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)
+#	@$(eval PART3 := $(DISK)p3)
+else ifeq ($(DISK)s1,$(wildcard $(DISK)s1))
+	@$(eval PART1 := $(DISK)s1)
+	@$(eval PART2 := $(DISK)s2)
+#	@$(eval PART3 := $(DISK)s3)
+else ifeq ($(DISK)1,$(wildcard $(DISK)1))
+	@$(eval PART1 := $(DISK)1)
+	@$(eval PART2 := $(DISK)2)
+#	@$(eval PART3 := $(DISK)3)
+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
+
+format-nvdla-root: format-nvdla-disk
+	@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 $(PART3)
+	-mkdir -p tmp-mnt
+	-mount $(PART3) tmp-mnt && \
+		echo "please wait until checkpoint reaches 489k" && \
+		tar Jxf $(wrkdir)/$(DEB_IMAGE) -C tmp-mnt --checkpoint=1000
+	umount tmp-mnt
+
+-include $(initramfs).d

+ 0 - 2
README.md

@@ -1,2 +0,0 @@
-# sft-riscvpi-freedom-u-sdk
-

+ 24 - 0
bsp/env/freedom-u500-unleashed/openocd.cfg

@@ -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

+ 1 - 0
buildroot

@@ -0,0 +1 @@
+Subproject commit d237af5be0f8a1c2a5a3577bcf91055531e69a6d

+ 91 - 0
conf/buildroot_initramfs_config

@@ -0,0 +1,91 @@
+BR2_riscv=y
+BR2_TOOLCHAIN_BUILDROOT_GLIBC=y
+BR2_KERNEL_HEADERS_CUSTOM_GIT=y
+BR2_KERNEL_HEADERS_CUSTOM_REPO_URL="http://192.168.110.45/sdk/sft-riscvpi-linux-5.10.git"
+BR2_KERNEL_HEADERS_CUSTOM_REPO_VERSION="vic_starlight"
+BR2_PACKAGE_GLIBC_UTILS=y
+BR2_GCC_VERSION_10_X=y
+BR2_TOOLCHAIN_BUILDROOT_CXX=y
+BR2_TOOLCHAIN_BUILDROOT_FORTRAN=y
+BR2_GCC_ENABLE_LTO=y
+BR2_GCC_ENABLE_OPENMP=y
+BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y
+BR2_TARGET_GENERIC_ROOT_PASSWD="sifive"
+BR2_SYSTEM_DHCP="eth0"
+BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
+BR2_PACKAGE_DHRYSTONE=y
+BR2_PACKAGE_GDB=y
+BR2_PACKAGE_GDB_VERSION_9_2=y
+BR2_PACKAGE_IOZONE=y
+BR2_PACKAGE_LMBENCH=y
+BR2_PACKAGE_STRACE=y
+BR2_PACKAGE_E2FSPROGS=y
+BR2_PACKAGE_EXFAT=y
+BR2_PACKAGE_EXFAT_UTILS=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_NTFS_3G=y
+BR2_PACKAGE_GPTFDISK=y
+BR2_PACKAGE_GPTFDISK_GDISK=y
+BR2_PACKAGE_GPTFDISK_SGDISK=y
+BR2_PACKAGE_I2C_TOOLS=y
+BR2_PACKAGE_MEMTESTER=y
+BR2_PACKAGE_PCIUTILS=y
+BR2_PACKAGE_SYSSTAT=y
+BR2_PACKAGE_PYTHON3=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_JPEG=y
+BR2_PACKAGE_DTC=y
+BR2_PACKAGE_DTC_PROGRAMS=y
+BR2_PACKAGE_LIBTIRPC=y
+BR2_PACKAGE_BLUEZ5_UTILS=y
+BR2_PACKAGE_BLUEZ5_UTILS_OBEX=y
+BR2_PACKAGE_BLUEZ5_UTILS_CLIENT=y
+BR2_PACKAGE_BRCM_PATCHRAM_PLUS=y
+BR2_PACKAGE_DHCP=y
+BR2_PACKAGE_DHCP_SERVER=y
+BR2_PACKAGE_DHCP_SERVER_DELAYED_ACK=y
+BR2_PACKAGE_DROPBEAR=y
+BR2_PACKAGE_HOSTAPD=y
+BR2_PACKAGE_HOSTAPD_EAP=y
+BR2_PACKAGE_HOSTAPD_WPS=y
+BR2_PACKAGE_HOSTAPD_WPA3=y
+BR2_PACKAGE_IPERF=y
+BR2_PACKAGE_IPERF3=y
+BR2_PACKAGE_IPTABLES=y
+BR2_PACKAGE_IPTABLES_NFTABLES=y
+BR2_PACKAGE_IW=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_SCREEN=y
+BR2_PACKAGE_HTOP=y
+BR2_PACKAGE_UTIL_LINUX_MOUNT=y
+BR2_TARGET_OPENSBI=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

+ 83 - 0
conf/buildroot_rootfs_config

@@ -0,0 +1,83 @@
+BR2_riscv=y
+BR2_RISCV_ABI_LP64D=y
+BR2_TOOLCHAIN_EXTERNAL=y
+BR2_TOOLCHAIN_EXTERNAL_PATH="$(RISCV)"
+BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="$(ARCH)-buildroot-linux-gnu"
+BR2_TOOLCHAIN_EXTERNAL_GCC_8=y
+BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_19=y
+BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y
+BR2_TOOLCHAIN_EXTERNAL_CXX=y
+BR2_INIT_SYSV=y
+BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y
+BR2_TARGET_GENERIC_ROOT_PASSWD="sifive"
+BR2_SYSTEM_DHCP="eth0"
+BR2_PACKAGE_BONNIE=y
+BR2_PACKAGE_CACHE_CALIBRATOR=y
+BR2_PACKAGE_DHRYSTONE=y
+BR2_PACKAGE_LMBENCH=y
+BR2_PACKAGE_RAMSMP=y
+BR2_PACKAGE_RAMSPEED=y
+BR2_PACKAGE_STRACE=y
+BR2_PACKAGE_STRESS_NG=y
+BR2_PACKAGE_WHETSTONE=y
+BR2_PACKAGE_PCIUTILS=y
+BR2_PACKAGE_OPENSSL=y
+BR2_PACKAGE_LIBTIRPC=y
+BR2_PACKAGE_MSMTP=y
+BR2_PACKAGE_MUTT=y
+BR2_PACKAGE_MUTT_IMAP=y
+BR2_PACKAGE_MUTT_POP3=y
+BR2_PACKAGE_DROPBEAR=y
+BR2_PACKAGE_IPUTILS=y
+BR2_PACKAGE_WGET=y
+BR2_PACKAGE_BASH=y
+BR2_PACKAGE_WHICH=y
+BR2_PACKAGE_COREUTILS=y
+BR2_PACKAGE_UTIL_LINUX=y
+BR2_PACKAGE_UTIL_LINUX_BINARIES=y
+BR2_PACKAGE_UTIL_LINUX_AGETTY=y
+BR2_PACKAGE_UTIL_LINUX_BFS=y
+BR2_PACKAGE_UTIL_LINUX_CHFN_CHSH=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_LOGIN=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_RAW=y
+BR2_PACKAGE_UTIL_LINUX_RENAME=y
+BR2_PACKAGE_UTIL_LINUX_RUNUSER=y
+BR2_PACKAGE_UTIL_LINUX_SCHEDUTILS=y
+BR2_PACKAGE_UTIL_LINUX_SETPRIV=y
+BR2_PACKAGE_UTIL_LINUX_SETTERM=y
+BR2_PACKAGE_UTIL_LINUX_SU=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_TARGET_ROOTFS_EXT2=y
+BR2_TARGET_ROOTFS_EXT2_4=y
+# BR2_TARGET_ROOTFS_TAR is not set

+ 3 - 0
conf/initramfs.txt

@@ -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

+ 127 - 0
conf/linux_415_nvdla_defconfig

@@ -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 - 0
conf/linux_419_defconfig

@@ -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 - 0
conf/linux_59_defconfig

@@ -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 - 0
conf/linux_defconfig

@@ -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

+ 90 - 0
conf/linux_distro_defconfig

@@ -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

+ 111 - 0
conf/linux_framebuffer_distro_defconfig

@@ -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 - 0
conf/linux_framebuffer_smp

@@ -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"

+ 101 - 0
conf/linux_microsemi_defconfig

@@ -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

+ 115 - 0
conf/linux_microsemi_distro_defconfig

@@ -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

+ 58 - 0
conf/nvdla-uboot-fit-image.its

@@ -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/HiFive_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 - 0
conf/rvboot-fit.txt

@@ -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 - 0
conf/rvboot.txt

@@ -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
+

+ 227 - 0
conf/sdk_210209_defconfig

@@ -0,0 +1,227 @@
+CONFIG_DEFAULT_HOSTNAME="StarFive"
+CONFIG_SYSVIPC=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_USELIB=y
+CONFIG_NO_HZ_IDLE=y
+CONFIG_HIGH_RES_TIMERS=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_EXPERT=y
+CONFIG_BPF_SYSCALL=y
+CONFIG_SOC_STARFIVE_VIC7100=y
+CONFIG_SMP=y
+CONFIG_NR_CPUS=2
+CONFIG_HZ_100=y
+# CONFIG_SECCOMP is not set
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_PAGE_REPORTING=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_IPV6 is not set
+CONFIG_NETFILTER=y
+CONFIG_NETFILTER_NETLINK_ACCT=y
+CONFIG_NETFILTER_NETLINK_QUEUE=y
+CONFIG_NF_CONNTRACK=y
+CONFIG_NF_TABLES=y
+CONFIG_NFT_CT=y
+CONFIG_NFT_COMPAT=y
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y
+CONFIG_NETFILTER_XT_MATCH_IPCOMP=y
+CONFIG_NETFILTER_XT_MATCH_IPRANGE=y
+CONFIG_NETFILTER_XT_MATCH_MAC=y
+CONFIG_NETFILTER_XT_MATCH_MARK=y
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=y
+CONFIG_NETFILTER_XT_MATCH_SOCKET=y
+CONFIG_NETFILTER_XT_MATCH_STATE=y
+CONFIG_NETFILTER_XT_MATCH_STRING=y
+CONFIG_NETFILTER_XT_MATCH_U32=y
+CONFIG_NF_TABLES_IPV4=y
+CONFIG_NFT_DUP_IPV4=y
+CONFIG_NFT_FIB_IPV4=y
+CONFIG_IP_NF_IPTABLES=y
+CONFIG_IP_NF_FILTER=y
+CONFIG_IP_NF_TARGET_REJECT=y
+CONFIG_IP_NF_NAT=y
+CONFIG_IP_NF_TARGET_MASQUERADE=y
+CONFIG_IP_NF_TARGET_NETMAP=y
+CONFIG_IP_NF_TARGET_REDIRECT=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_NET_9P=y
+CONFIG_NET_9P_VIRTIO=y
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_VIRTIO_BLK=y
+CONFIG_SCSI=y
+CONFIG_BLK_DEV_SD=y
+CONFIG_BLK_DEV_SR=y
+CONFIG_SCSI_VIRTIO=y
+CONFIG_NETDEVICES=y
+CONFIG_VIRTIO_NET=y
+# CONFIG_NET_VENDOR_ALACRITECH is not set
+# CONFIG_NET_VENDOR_AMAZON is not set
+# CONFIG_NET_VENDOR_AQUANTIA is not set
+# CONFIG_NET_VENDOR_ARC is not set
+# CONFIG_NET_VENDOR_AURORA is not set
+# CONFIG_NET_VENDOR_BROADCOM is not set
+# CONFIG_NET_VENDOR_CADENCE is not set
+# CONFIG_NET_VENDOR_CAVIUM is not set
+# CONFIG_NET_VENDOR_CORTINA is not set
+# CONFIG_NET_VENDOR_EZCHIP is not set
+# CONFIG_NET_VENDOR_GOOGLE is not set
+# CONFIG_NET_VENDOR_HUAWEI is not set
+# CONFIG_NET_VENDOR_INTEL is not set
+# CONFIG_NET_VENDOR_MARVELL is not set
+# CONFIG_NET_VENDOR_MELLANOX is not set
+# CONFIG_NET_VENDOR_MICREL is not set
+# CONFIG_NET_VENDOR_MICROCHIP is not set
+# CONFIG_NET_VENDOR_MICROSEMI is not set
+# CONFIG_NET_VENDOR_NATSEMI is not set
+# CONFIG_NET_VENDOR_NETRONOME is not set
+# CONFIG_NET_VENDOR_NI is not set
+# CONFIG_NET_VENDOR_PENSANDO is not set
+# CONFIG_NET_VENDOR_QUALCOMM is not set
+# CONFIG_NET_VENDOR_RENESAS is not set
+# CONFIG_NET_VENDOR_ROCKER is not set
+# CONFIG_NET_VENDOR_SAMSUNG is not set
+# CONFIG_NET_VENDOR_SEEQ is not set
+# CONFIG_NET_VENDOR_SOLARFLARE is not set
+# CONFIG_NET_VENDOR_SOCIONEXT is not set
+CONFIG_STMMAC_ETH=y
+CONFIG_STMMAC_SELFTESTS=y
+CONFIG_DWMAC_DWC_QOS_ETH=y
+# CONFIG_NET_VENDOR_SYNOPSYS is not set
+# CONFIG_NET_VENDOR_VIA is not set
+# CONFIG_NET_VENDOR_WIZNET is not set
+# CONFIG_NET_VENDOR_XILINX is not set
+CONFIG_MARVELL_PHY=y
+CONFIG_MICREL_PHY=y
+CONFIG_BCMDHD=y
+CONFIG_BCMDHD_FW_PATH="/etc/firmware/fw_bcm43436b0.bin"
+CONFIG_BCMDHD_NVRAM_PATH="/etc/firmware/nvram_ap6236.txt"
+CONFIG_BCMDHD_SDIO_IRQ=y
+# CONFIG_INPUT_KEYBOARD is not set
+# CONFIG_INPUT_MOUSE is not set
+CONFIG_SERIO_LIBPS2=y
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_EXTENDED=y
+CONFIG_SERIAL_8250_MANY_PORTS=y
+CONFIG_SERIAL_8250_DW=y
+CONFIG_SERIAL_OF_PLATFORM=y
+CONFIG_SERIAL_EARLYCON_RISCV_SBI=y
+CONFIG_HVC_RISCV_SBI=y
+CONFIG_TTY_PRINTK=y
+CONFIG_VIRTIO_CONSOLE=y
+CONFIG_HW_RANDOM=y
+CONFIG_HW_RANDOM_VIRTIO=y
+CONFIG_I2C=y
+CONFIG_I2C_DESIGNWARE_PLATFORM=y
+CONFIG_SPI=y
+CONFIG_SPI_SIFIVE=y
+# CONFIG_PTP_1588_CLOCK is not set
+CONFIG_GPIOLIB=y
+CONFIG_POWER_RESET=y
+CONFIG_POWER_RESET_SYSCON=y
+CONFIG_POWER_RESET_SYSCON_POWEROFF=y
+# CONFIG_HWMON is not set
+CONFIG_FB=y
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
+CONFIG_USB=y
+CONFIG_USB_STORAGE=y
+CONFIG_USB_CDNS3=y
+CONFIG_USB_CDNS3_HOST=y
+CONFIG_MMC=y
+CONFIG_MMC_DEBUG=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_PLTFM=y
+CONFIG_MMC_SDHCI_OF_DWCMSHC=y
+CONFIG_MMC_SPI=y
+CONFIG_MMC_DW=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_DRV_GOLDFISH=y
+CONFIG_DMADEVICES=y
+CONFIG_DW_AXI_DMAC=y
+CONFIG_SYNC_FILE=y
+# CONFIG_VIRTIO_MENU is not set
+# CONFIG_VHOST_MENU is not set
+CONFIG_GOLDFISH=y
+# CONFIG_IOMMU_SUPPORT is not set
+CONFIG_RPMSG_CHAR=y
+CONFIG_RPMSG_VIRTIO=y
+CONFIG_EXT4_FS=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_AUTOFS4_FS=y
+CONFIG_FUSE_FS=y
+CONFIG_CUSE=y
+CONFIG_VIRTIO_FS=y
+CONFIG_MSDOS_FS=y
+CONFIG_VFAT_FS=y
+CONFIG_FAT_DEFAULT_UTF8=y
+CONFIG_EXFAT_FS=y
+CONFIG_NTFS_FS=y
+CONFIG_NTFS_RW=y
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_HUGETLBFS=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V4=y
+CONFIG_NFS_V4_1=y
+CONFIG_NFS_V4_2=y
+CONFIG_ROOT_NFS=y
+CONFIG_CRYPTO_USER=y
+CONFIG_CRYPTO_SHA512=y
+# CONFIG_CRYPTO_AES is not set
+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_DEV_SIFIVE_VIC_ENCRYPT is not set
+CONFIG_CRYPTO_DEV_VIRTIO=y
+CONFIG_PRINTK_TIME=y
+CONFIG_DEBUG_FS=y
+CONFIG_SOFTLOCKUP_DETECTOR=y
+CONFIG_WQ_WATCHDOG=y
+CONFIG_DEBUG_TIMEKEEPING=y
+CONFIG_DEBUG_RT_MUTEXES=y
+CONFIG_DEBUG_SPINLOCK=y
+CONFIG_DEBUG_RWSEMS=y
+CONFIG_DEBUG_ATOMIC_SLEEP=y
+CONFIG_STACKTRACE=y
+CONFIG_DEBUG_LIST=y
+CONFIG_DEBUG_PLIST=y
+CONFIG_DEBUG_SG=y
+# CONFIG_RCU_TRACE is not set
+CONFIG_RCU_EQS_DEBUG=y
+CONFIG_DEBUG_BLOCK_EXT_DEVT=y
+# CONFIG_FTRACE is not set
+# CONFIG_RUNTIME_TESTING_MENU is not set
+CONFIG_MEMTEST=y

+ 26 - 0
conf/sifive_logo.txt

@@ -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 - 0
conf/starfive_logo.txt

@@ -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
+			  

+ 55 - 0
conf/u74_nvdla-uboot-fit-image.its

@@ -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/HiFive_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 - 0
conf/u74_uEnv.txt

@@ -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 - 0
conf/uEnv.txt

@@ -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 - 0
conf/uboot-fit-image.its

@@ -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/HiFive_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";
+                };
+        };
+};
+

+ 28 - 0
fsz.sh

@@ -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 "$@"

+ 1 - 0
linux

@@ -0,0 +1 @@
+Subproject commit 59b8119bb76eb0d2564af0a3975565761f6f2762

+ 1 - 0
opensbi

@@ -0,0 +1 @@
+Subproject commit b4f8f7ca312804fd99bc3ebfa0644ea4b369c307