littlekernel / lk

LK embedded kernel
MIT License
3.11k stars 611 forks source link

compiling VisionFive2 failed #410

Closed ILoveStartFive closed 1 week ago

ILoveStartFive commented 2 weeks ago

make[1]: Entering directory '/home/good/share/lk-master_new' make[2]: Entering directory '/home/good/share/lk-master_new' RISCV: Supervisor Mode RISCV: MMU sv39 RISCV_EXTENSION_LIST = zba zbb MISA_SPEC = supported LIBGCC = /home/good/share/riscv64-elf-12.1.0-Linux-x86_64/bin/../lib/gcc/riscv64-elf/12.1.0/libgcc.a ARCH_COMPILEFLAGS = -march=rv64imafdc_zba_zbb -mabi=lp64d -mcmodel=medany -misa-spec=2.2 LINKER_TYPE=bfd COMPILER_TYPE=gcc Checking if -Wnonnull-compare is supported: yes PROJECT = visionfive2-test PLATFORM = jh7110 TARGET = visionfive2 ARCH = riscv TOOLCHAIN_PREFIX = riscv64-elf- DEBUG = 2 including app app/shell app/stringtests app/tests arch arch/test dev dev/bus/pci dev/bus/pci/drivers dev/interrupt/riscv_plic kernel lib/aes lib/aes/test lib/cbuf lib/cksum lib/debugcommands lib/fdt lib/fdtwalk lib/libcpp lib/unittest lib/version platform target including dev/net/e1000 kernel/vm lib/console lib/debug lib/heap lib/libc including lib/heap/dlmalloc lib/io lib/libc/test lib/minip including lib/iovec lib/pool LIBGCC = /home/good/share/riscv64-elf-12.1.0-Linux-x86_64/bin/../lib/gcc/riscv64-elf/12.1.0/libgcc.a GLOBAL_COMPILEFLAGS = -g -include ./build-visionfive2-test/config.h -Wextra -Wall -Werror=return-type -Wshadow -Wdouble-promotion -Wno-multichar -Wno-unused-parameter -Wno-unused-function -Wno-unused-label -fno-common -ffreestanding -Wno-nonnull-compare GLOBAL_OPTFLAGS = -O2 ARCH_COMPILEFLAGS = -march=rv64imafdc_zba_zbb -mabi=lp64d -mcmodel=medany -misa-spec=2.2 ARCH_COMPILEFLAGS_FLOAT = ARCH_COMPILEFLAGS_NOFLOAT = generating build-visionfive2-test/platform/jh7110/module_config.h generating build-visionfive2-test/config.h build-visionfive2-test/config.h.tmp build-visionfive2-test/config.h differ: byte 3062, line 71 compiling platform/jh7110/platform.c compiling platform/jh7110/uart.c linking build-visionfive2-test/platform/jh7110.mod.o generating build-visionfive2-test/arch/riscv/module_config.h compiling arch/riscv/arch.c compiling arch/riscv/exceptions.c compiling arch/riscv/feature.c compiling arch/riscv/mp.c compiling arch/riscv/sbi.c compiling arch/riscv/spinlock.c compiling arch/riscv/thread.c compiling arch/riscv/time.c arch/riscv/time.c: Assembler messages: arch/riscv/time.c:46: Error: unknown CSR `stimecmp' make/compile.mk:70: recipe for target 'build-visionfive2-test/arch/riscv/time.c.o' failed make[2]: [build-visionfive2-test/arch/riscv/time.c.o] Error 1 make[2]: Leaving directory '/home/good/share/lk-master_new' engine.mk:34: recipe for target 'make-make' failed make[1]: [make-make] Error 2 make[1]: Leaving directory '/home/good/share/lk-master_new' makefile:34: recipe for target '_top' failed make: *** [_top] Error 2

travisg commented 2 weeks ago

You'll need to have a riscv64-elf toolchain in your path. Depending on what host OS you're using you can grab a precompiled one from https://newos.org/toolchains/, such as https://newos.org/toolchains/riscv64-elf-14.1.0-Linux-x86_64.tar.xz.

What host OS are you compiling on?

On Fri, Jun 14, 2024 at 11:08 PM ILoveStartFive @.***> wrote:

make[1]: Entering directory '/home/good/share/lk-master_new' make[2]: Entering directory '/home/good/share/lk-master_new' RISCV: Supervisor Mode RISCV: MMU sv39 RISCV_EXTENSION_LIST = zba zbb MISA_SPEC = make[2]: riscv64-elf-gcc: Command not found LIBGCC = ARCH_COMPILEFLAGS = -march=rv64imafdc_zba_zbb -mabi=lp64d -mcmodel=medany LINKER_TYPE=bfd COMPILER_TYPE=gcc Checking if -Wnonnull-compare is supported: no PROJECT = visionfive2-test PLATFORM = jh7110 TARGET = visionfive2 ARCH = riscv TOOLCHAIN_PREFIX = riscv64-elf- DEBUG = 2 including app app/shell app/stringtests app/tests arch arch/test dev dev/bus/pci dev/bus/pci/drivers dev/interrupt/riscv_plic kernel lib/aes lib/aes/test lib/cbuf lib/cksum lib/debugcommands lib/fdt lib/fdtwalk lib/libcpp lib/unittest lib/version platform target including dev/net/e1000 kernel/vm lib/console lib/debug lib/heap lib/libc including lib/heap/dlmalloc lib/io lib/libc/test lib/minip including lib/iovec lib/pool LIBGCC = GLOBAL_COMPILEFLAGS = -g -include ./build-visionfive2-test/config.h -Wextra -Wall -Werror=return-type -Wshadow -Wdouble-promotion -Wno-multichar -Wno-unused-parameter -Wno-unused-function -Wno-unused-label -fno-common -ffreestanding GLOBAL_OPTFLAGS = -O2 ARCH_COMPILEFLAGS = -march=rv64imafdc_zba_zbb -mabi=lp64d -mcmodel=medany ARCH_COMPILEFLAGS_FLOAT = ARCH_COMPILEFLAGS_NOFLOAT = generating build-visionfive2-test/platform/jh7110/module_config.h generating build-visionfive2-test/config.h build-visionfive2-test/config.h.tmp build-visionfive2-test/config.h differ: byte 3062, line 71 compiling platform/jh7110/platform.c make[2]: riscv64-elf-gcc: Command not found make/compile.mk:70: recipe for target 'build-visionfive2-test/platform/jh7110/platform.c.o' failed make[2]: [build-visionfive2-test/platform/jh7110/platform.c.o] Error 127 make[2]: Leaving directory '/home/good/share/lk-master_new' engine.mk:34: recipe for target 'make-make' failed make[1]: [make-make] Error 2 make[1]: Leaving directory '/home/good/share/lk-master_new' makefile:34: recipe for target '_top' failed make: *** [_top] Error 2

— Reply to this email directly, view it on GitHub https://github.com/littlekernel/lk/issues/410, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAX3LCDAUTN4PRGZR525K3ZHPK45AVCNFSM6AAAAABJLNNSPOVHI2DSMVQWIX3LMV43ASLTON2WKOZSGM2TINJXHAYTOMY . You are receiving this because you are subscribed to this thread.Message ID: @.***>

travisg commented 2 weeks ago

Ah interesting, the comment in the email and what was pasted here is not the same. In this case it's compiling but the slightly older (gcc 12.1) compiler isn't recognizing the stimecmp instruction. Hmmm, I can have it use the hex version of the CSR, or I'd recommend getting a newer toolchain.