Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 22 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# Makefile for RISC-V toolchain; run 'make help' for usage. set XLEN here to 32 or 64.

XLEN := 64
RVV ?= 0
ROOT := $(patsubst %/,%, $(dir $(abspath $(lastword $(MAKEFILE_LIST)))))
RISCV := $(ROOT)/install$(XLEN)
DEST := $(abspath $(RISCV))
Expand All @@ -14,14 +15,21 @@ MKIMAGE := u-boot/tools/mkimage

NR_CORES := $(shell nproc)

ifeq ($(RVV), 1)
sbi-march=rv64imafdc_zifencei
else
sbi-march=rv64imafdc
endif


# SBI options
PLATFORM := fpga/cheshire
FW_FDT_PATH ?=
sbi-mk = PLATFORM=$(PLATFORM) CROSS_COMPILE=$(TOOLCHAIN_PREFIX) $(if $(FW_FDT_PATH),FW_FDT_PATH=$(FW_FDT_PATH),)
ifeq ($(XLEN), 32)
sbi-mk += PLATFORM_RISCV_ISA=rv32ima PLATFORM_RISCV_XLEN=32
else
sbi-mk += PLATFORM_RISCV_ISA=rv64imafdc PLATFORM_RISCV_XLEN=64
sbi-mk += PLATFORM_RISCV_ISA=$(sbi-march) PLATFORM_RISCV_XLEN=64
endif

# U-Boot options
Expand Down Expand Up @@ -49,8 +57,13 @@ tests-mk = -j$(NR_CORES)
buildroot-mk = -j$(NR_CORES)

# linux image
buildroot_defconfig = configs/buildroot$(XLEN)_defconfig
linux_defconfig = configs/linux$(XLEN)_defconfig
ifeq ($(RVV), 1)
buildroot_defconfig = configs/buildroot$(XLEN)_V_defconfig
linux_defconfig = configs/linux$(XLEN)_V_defconfig
else
buildroot_defconfig = configs/buildroot$(XLEN)_defconfig
linux_defconfig = configs/linux$(XLEN)_defconfig
endif
busybox_defconfig = configs/busybox$(XLEN).config

install-dir:
Expand Down Expand Up @@ -85,9 +98,15 @@ rootfs/cachetest.elf: $(CC)
cp ./cachetest/cachetest.elf $@

# cool command-line tetris
ifneq ($(RVV), 1)
rootfs/tetris: $(CC)
cd ./vitetris/ && make clean && ./configure CC=$(CC) && make
cp ./vitetris/tetris $@
else
rootfs/tetris: $(CC)
touch rootfs/tetris
endif


$(RISCV)/vmlinux: $(buildroot_defconfig) $(linux_defconfig) $(busybox_defconfig) $(CC) rootfs/cachetest.elf rootfs/tetris
mkdir -p $(RISCV)
Expand Down
2 changes: 1 addition & 1 deletion buildroot
Submodule buildroot updated from aa433d to 0473a9
47 changes: 47 additions & 0 deletions configs/buildroot64_V_defconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
BR2_riscv=y
BR2_riscv_custom=y
BR2_RISCV_64=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_RISCV_ISA_CUSTOM_RVA=y
BR2_RISCV_ISA_CUSTOM_RVV=y
BR2_CCACHE=y
BR2_TOOLCHAIN_BUILDROOT_GLIBC=y
BR2_ROOTFS_OVERLAY="../rootfs"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_GIT=y
BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"

# Select kernel version
BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_4=y
BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="v6.5"
BR2_LINUX_KERNEL_VERSION="v6.5"

#BR2_LINUX_KERNEL_PATCH="../linux_patch/"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="../configs/linux64_V_defconfig"
BR2_LINUX_KERNEL_VMLINUX=y
BR2_PACKAGE_BUSYBOX_CONFIG="../configs/busybox64.config"
BR2_PACKAGE_ALSA_UTILS=y
BR2_PACKAGE_ALSA_UTILS_APLAY=y
BR2_PACKAGE_MPG123=y
BR2_PACKAGE_DHRYSTONE=y
BR2_PACKAGE_MEMSTAT=y
BR2_PACKAGE_RAMSPEED=y
BR2_PACKAGE_NFS_UTILS=y
BR2_PACKAGE_LIBNFS=y
BR2_PACKAGE_ETHTOOL=y
# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set
BR2_PACKAGE_IPERF3=y
BR2_PACKAGE_IPROUTE2=y
BR2_PACKAGE_TCPDUMP=y
BR2_TARGET_ROOTFS_CPIO_GZIP=y
BR2_TARGET_ROOTFS_INITRAMFS=y
# BR2_TARGET_ROOTFS_TAR is not set

# Build GCC 13 for vector intrinsics (riscv_vector.h)
BR2_GCC_VERSION_13_X=y
BR2_GCC_VERSION="13.2.0"
BR2_TOOLCHAIN_BUILDROOT_CXX=y
85 changes: 85 additions & 0 deletions configs/linux64_V_defconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
CONFIG_DEFAULT_HOSTNAME="cheshire-fpga"
# CONFIG_CROSS_MEMORY_ATTACH is not set
CONFIG_NAMESPACES=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE="${BR_BINARIES_DIR}/rootfs.cpio"
CONFIG_EMBEDDED=y
CONFIG_SMP=y
# CONFIG_HZ_100=y
CONFIG_HZ_12=y
CONFIG_CMDLINE="earlyprintk debug loglevel=7"
CONFIG_MODULES=y
# CONFIG_BLK_DEV_BSG is not set
CONFIG_PARTITION_ADVANCED=y
# CONFIG_COMPACTION is not set
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_INET=y
#CONFIG_UEVENT_HELPER=y
#CONFIG_UEVENT_HELPER_PATH="/sbin/mdev"
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
CONFIG_VIRTIO_BLK=y
CONFIG_EEPROM_AT24=y
CONFIG_SCSI=m
CONFIG_BLK_DEV_SD=m
CONFIG_BLK_DEV_SR=m
CONFIG_CHR_DEV_SG=m
CONFIG_NETDEVICES=y
# CONFIG_ETHERNET is not set
CONFIG_USB_USBNET=m
# CONFIG_USB_NET_AX88179_178A is not set
CONFIG_INPUT_EVDEV=m
# CONFIG_INPUT_MOUSE is not set
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_OF_PLATFORM=y
CONFIG_SERIAL_UARTLITE=y
CONFIG_HVC_RISCV_SBI=y
CONFIG_VIRTIO_CONSOLE=y
# CONFIG_HW_RANDOM is not set
CONFIG_I2C=y
CONFIG_I2C_OCORES=y
CONFIG_SPI=y
CONFIG_SPI_DEBUG=y
CONFIG_POWER_RESET=y
CONFIG_FB=y
CONFIG_FB_SIMPLE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_SOUND=y
CONFIG_SND=y
CONFIG_SND_USB_AUDIO=m
CONFIG_HIDRAW=y
CONFIG_UHID=m
CONFIG_HID_ALPS=m
CONFIG_USB=y
CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_OHCI_HCD_PLATFORM=y
CONFIG_USB_STORAGE=m
CONFIG_MMC=y
CONFIG_MMC_DEBUG=y
CONFIG_MMC_SPI=y
CONFIG_VIRTIO_MMIO=y
# CONFIG_IOMMU_SUPPORT is not set
CONFIG_PWM=y
CONFIG_SIFIVE_PLIC=y
CONFIG_EXT3_FS=y
CONFIG_EXT4_DEBUG=y
CONFIG_MSDOS_FS=m
CONFIG_VFAT_FS=m
# CONFIG_PROC_PAGE_MONITOR is not set
CONFIG_TMPFS=y
# CONFIG_MISC_FILESYSTEMS is not set
CONFIG_CRYPTO_ECHAINIV=y
# CONFIG_CRYPTO_HW is not set
CONFIG_PRINTK_TIME=y
CONFIG_STRIP_ASM_SYMS=y
CONFIG_DEBUG_SECTION_MISMATCH=y
CONFIG_DEBUG_FS=y
CONFIG_STACKTRACE=y

# Enable/disable RVV
CONFIG_RISCV_ISA_V=y
# Enable userspace Vector by default
RISCV_ISA_V_DEFAULT_ENABLE=y
2 changes: 1 addition & 1 deletion configs/linux64_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -76,4 +76,4 @@ CONFIG_PRINTK_TIME=y
CONFIG_STRIP_ASM_SYMS=y
CONFIG_DEBUG_SECTION_MISMATCH=y
CONFIG_DEBUG_FS=y
CONFIG_STACKTRACE=y
CONFIG_STACKTRACE=y
2 changes: 1 addition & 1 deletion opensbi
2 changes: 1 addition & 1 deletion u-boot