Skip to content

Commit b74ab02

Browse files
committed
configs, Makefile: add RVV support
1 parent 45c5e93 commit b74ab02

File tree

3 files changed

+141
-4
lines changed

3 files changed

+141
-4
lines changed

Makefile

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# Makefile for RISC-V toolchain; run 'make help' for usage. set XLEN here to 32 or 64.
22

33
XLEN := 64
4+
RVV ?= 0
45
ROOT := $(patsubst %/,%, $(dir $(abspath $(lastword $(MAKEFILE_LIST)))))
56
RISCV := $(ROOT)/install$(XLEN)
67
DEST := $(abspath $(RISCV))
@@ -21,7 +22,7 @@ sbi-mk = PLATFORM=$(PLATFORM) CROSS_COMPILE=$(TOOLCHAIN_PREFIX) $(if $(FW_FDT_PA
2122
ifeq ($(XLEN), 32)
2223
sbi-mk += PLATFORM_RISCV_ISA=rv32ima PLATFORM_RISCV_XLEN=32
2324
else
24-
sbi-mk += PLATFORM_RISCV_ISA=rv64imafdc PLATFORM_RISCV_XLEN=64
25+
sbi-mk += PLATFORM_RISCV_ISA=rv64imafdc_zifencei PLATFORM_RISCV_XLEN=64
2526
endif
2627

2728
# U-Boot options
@@ -49,14 +50,19 @@ tests-mk = -j$(NR_CORES)
4950
buildroot-mk = -j$(NR_CORES)
5051

5152
# linux image
52-
buildroot_defconfig = configs/buildroot$(XLEN)_defconfig
53-
linux_defconfig = configs/linux$(XLEN)_defconfig
53+
ifeq ($(RVV), 1)
54+
buildroot_defconfig = configs/buildroot$(XLEN)_V_defconfig
55+
linux_defconfig = configs/linux$(XLEN)_V_defconfig
56+
else
57+
buildroot_defconfig = configs/buildroot$(XLEN)_defconfig
58+
linux_defconfig = configs/linux$(XLEN)_defconfig
59+
endif
5460
busybox_defconfig = configs/busybox$(XLEN).config
5561

5662
install-dir:
5763
mkdir -p $(RISCV)
5864

59-
isa-sim: install-dir $(CC)
65+
isa-sim: install-dir $(CC)
6066
mkdir -p riscv-isa-sim/build
6167
cd riscv-isa-sim/build;\
6268
../configure $(isa-sim-co);\
@@ -85,9 +91,15 @@ rootfs/cachetest.elf: $(CC)
8591
cp ./cachetest/cachetest.elf $@
8692

8793
# cool command-line tetris
94+
ifneq ($(RVV), 1)
8895
rootfs/tetris: $(CC)
8996
cd ./vitetris/ && make clean && ./configure CC=$(CC) && make
9097
cp ./vitetris/tetris $@
98+
else
99+
rootfs/tetris: $(CC)
100+
touch rootfs/tetris
101+
endif
102+
91103

92104
$(RISCV)/vmlinux: $(buildroot_defconfig) $(linux_defconfig) $(busybox_defconfig) $(CC) rootfs/cachetest.elf rootfs/tetris
93105
mkdir -p $(RISCV)

configs/buildroot64_V_defconfig

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
BR2_riscv=y
2+
BR2_riscv_custom=y
3+
BR2_RISCV_64=y
4+
BR2_RISCV_ISA_CUSTOM_RVM=y
5+
BR2_RISCV_ISA_CUSTOM_RVF=y
6+
BR2_RISCV_ISA_CUSTOM_RVD=y
7+
BR2_RISCV_ISA_CUSTOM_RVC=y
8+
BR2_RISCV_ISA_CUSTOM_RVA=y
9+
BR2_RISCV_ISA_CUSTOM_RVV=y
10+
BR2_CCACHE=y
11+
BR2_TOOLCHAIN_BUILDROOT_GLIBC=y
12+
BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_4=y
13+
BR2_ROOTFS_OVERLAY="../rootfs"
14+
BR2_LINUX_KERNEL=y
15+
BR2_LINUX_KERNEL_CUSTOM_GIT=y
16+
BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
17+
BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="v6.5"
18+
#BR2_LINUX_KERNEL_PATCH="../linux_patch/"
19+
BR2_LINUX_KERNEL_VERSION="v6.5"
20+
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
21+
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="../configs/linux64_V_defconfig"
22+
BR2_LINUX_KERNEL_VMLINUX=y
23+
BR2_PACKAGE_BUSYBOX_CONFIG="../configs/busybox64.config"
24+
BR2_PACKAGE_ALSA_UTILS=y
25+
BR2_PACKAGE_ALSA_UTILS_APLAY=y
26+
BR2_PACKAGE_MPG123=y
27+
BR2_PACKAGE_DHRYSTONE=y
28+
BR2_PACKAGE_MEMSTAT=y
29+
BR2_PACKAGE_RAMSPEED=y
30+
BR2_PACKAGE_NFS_UTILS=y
31+
BR2_PACKAGE_LIBNFS=y
32+
BR2_PACKAGE_ETHTOOL=y
33+
# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set
34+
BR2_PACKAGE_IPERF3=y
35+
BR2_PACKAGE_IPROUTE2=y
36+
BR2_PACKAGE_TCPDUMP=y
37+
BR2_TARGET_ROOTFS_CPIO_GZIP=y
38+
BR2_TARGET_ROOTFS_INITRAMFS=y
39+
# BR2_TARGET_ROOTFS_TAR is not set
40+
BR2_GCC_VERSION_13_X=y
41+
BR2_GCC_VERSION="13.2.0"
42+
BR2_TOOLCHAIN_BUILDROOT_CXX=y

configs/linux64_V_defconfig

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
CONFIG_DEFAULT_HOSTNAME="cheshire-fpga"
2+
# CONFIG_CROSS_MEMORY_ATTACH is not set
3+
CONFIG_NAMESPACES=y
4+
CONFIG_BLK_DEV_INITRD=y
5+
CONFIG_INITRAMFS_SOURCE="${BR_BINARIES_DIR}/rootfs.cpio"
6+
CONFIG_EMBEDDED=y
7+
CONFIG_SMP=y
8+
CONFIG_HZ_100=y
9+
CONFIG_CMDLINE="earlyprintk debug loglevel=7"
10+
CONFIG_MODULES=y
11+
# CONFIG_BLK_DEV_BSG is not set
12+
CONFIG_PARTITION_ADVANCED=y
13+
# CONFIG_COMPACTION is not set
14+
CONFIG_NET=y
15+
CONFIG_PACKET=y
16+
CONFIG_INET=y
17+
#CONFIG_UEVENT_HELPER=y
18+
#CONFIG_UEVENT_HELPER_PATH="/sbin/mdev"
19+
CONFIG_DEVTMPFS=y
20+
CONFIG_DEVTMPFS_MOUNT=y
21+
CONFIG_VIRTIO_BLK=y
22+
CONFIG_EEPROM_AT24=y
23+
CONFIG_SCSI=m
24+
CONFIG_BLK_DEV_SD=m
25+
CONFIG_BLK_DEV_SR=m
26+
CONFIG_CHR_DEV_SG=m
27+
CONFIG_NETDEVICES=y
28+
# CONFIG_ETHERNET is not set
29+
CONFIG_USB_USBNET=m
30+
# CONFIG_USB_NET_AX88179_178A is not set
31+
CONFIG_INPUT_EVDEV=m
32+
# CONFIG_INPUT_MOUSE is not set
33+
CONFIG_SERIAL_8250=y
34+
CONFIG_SERIAL_8250_CONSOLE=y
35+
CONFIG_SERIAL_OF_PLATFORM=y
36+
CONFIG_SERIAL_UARTLITE=y
37+
CONFIG_HVC_RISCV_SBI=y
38+
CONFIG_VIRTIO_CONSOLE=y
39+
# CONFIG_HW_RANDOM is not set
40+
CONFIG_I2C=y
41+
CONFIG_I2C_OCORES=y
42+
CONFIG_SPI=y
43+
CONFIG_SPI_DEBUG=y
44+
CONFIG_POWER_RESET=y
45+
CONFIG_FB=y
46+
CONFIG_FB_SIMPLE=y
47+
CONFIG_FRAMEBUFFER_CONSOLE=y
48+
CONFIG_SOUND=y
49+
CONFIG_SND=y
50+
CONFIG_SND_USB_AUDIO=m
51+
CONFIG_HIDRAW=y
52+
CONFIG_UHID=m
53+
CONFIG_HID_ALPS=m
54+
CONFIG_USB=y
55+
CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
56+
CONFIG_USB_OHCI_HCD=y
57+
CONFIG_USB_OHCI_HCD_PLATFORM=y
58+
CONFIG_USB_STORAGE=m
59+
CONFIG_MMC=y
60+
CONFIG_MMC_DEBUG=y
61+
CONFIG_MMC_SPI=y
62+
CONFIG_VIRTIO_MMIO=y
63+
# CONFIG_IOMMU_SUPPORT is not set
64+
CONFIG_PWM=y
65+
CONFIG_SIFIVE_PLIC=y
66+
CONFIG_EXT3_FS=y
67+
CONFIG_EXT4_DEBUG=y
68+
CONFIG_MSDOS_FS=m
69+
CONFIG_VFAT_FS=m
70+
# CONFIG_PROC_PAGE_MONITOR is not set
71+
CONFIG_TMPFS=y
72+
# CONFIG_MISC_FILESYSTEMS is not set
73+
CONFIG_CRYPTO_ECHAINIV=y
74+
# CONFIG_CRYPTO_HW is not set
75+
CONFIG_PRINTK_TIME=y
76+
CONFIG_STRIP_ASM_SYMS=y
77+
CONFIG_DEBUG_SECTION_MISMATCH=y
78+
CONFIG_DEBUG_FS=y
79+
CONFIG_STACKTRACE=y
80+
# Enable/disable RVV
81+
CONFIG_RISCV_ISA_V=y
82+
# Enable userspace Vector by default
83+
RISCV_ISA_V_DEFAULT_ENABLE=y

0 commit comments

Comments
 (0)