litex-hub / linux-on-litex-vexriscv

Linux on LiteX-VexRiscv
BSD 2-Clause "Simplified" License
553 stars 174 forks source link

ULX3S builds for multicores and with fpu does not work #267

Closed goran-mahovlic closed 2 years ago

goran-mahovlic commented 2 years ago

I have tried only one core with FPU --with-fpu Multple cores --cpu-count 2 with and wihout FPU and none of that options is working

No output on serial at all

jaycbhsn commented 2 years ago

@Dolu1990

# Target options
BR2_riscv=y
BR2_RISCV_32=y

# Instruction Set Extensions
BR2_riscv_custom=y
BR2_RISCV_ISA_CUSTOM_RVM=y
BR2_RISCV_ISA_CUSTOM_RVA=y
BR2_RISCV_ISA_CUSTOM_RVC=n
#BR2_RISCV_ISA_CUSTOM_RVF=y  # Uncomment to enable FPU
#BR2_RISCV_ISA_CUSTOM_RVD=y  # Uncomment to enable FPU
BR2_RISCV_ABI_ILP32=y

# Patches
BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_LITEX_VEXRISCV_PATH)/patches"

# GCC
BR2_GCC_VERSION_10_X=y

# System
BR2_TARGET_GENERIC_GETTY=y
BR2_TARGET_GENERIC_GETTY_PORT="console"

# Filesystem
BR2_TARGET_ROOTFS_CPIO=y

# Kernel (litex-rebase branch)
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_GIT=y
BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/litex-hub/linux.git"
BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="680e9975fbd8c2662d5fdeca3d5eca427b175ef2"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_LITEX_VEXRISCV_PATH)/board/litex_vexriscv/linux.config"
BR2_LINUX_KERNEL_IMAGE=y

# Rootfs customisation
BR2_ROOTFS_OVERLAY="$(BR2_EXTERNAL_LITEX_VEXRISCV_PATH)/board/litex_vexriscv/rootfs_overlay"
BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_LITEX_VEXRISCV_PATH)/patches"

BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_18=y

# Extra packages
#BR2_PACKAGE_DHRYSTONE_OPT=y
#BR2_PACKAGE_MICROPYTHON=y
#BR2_PACKAGE_SPIDEV_TEST=y
#BR2_PACKAGE_MTD=y
#BR2_PACKAGE_MTD_JFFS_UTILS=y

# Crypto
#BR2_PACKAGE_LIBATOMIC_OPS_ARCH_SUPPORTS=y
#BR2_PACKAGE_LIBATOMIC_OPS=y
#BR2_PACKAGE_OPENSSL=y
#BR2_PACKAGE_LIBRESSL=y
#BR2_PACKAGE_LIBRESSL_BIN=y
#BR2_PACKAGE_HAVEGED=y
#BR2_PACKAGE_VEXRISCV_AES=y # Uncomment to enable hardware AES

BR2_PER_PACKAGE_DIRECTORIES=y

BR2_TOOLCHAIN_BUILDROOT_CXX=y
BR2_PACKAGE_DIRECTFB=y
BR2_PACKAGE_SDL2_DIRECTFB=y
BR2_PACKAGE_SDL2_X11=y
BR2_PACKAGE_XORG7=y
BR2_PACKAGE_XSERVER_XORG_SERVER=y
BR2_PACKAGE_XAPP_SETXKBMAP=y
BR2_PACKAGE_XAPP_TWM=y
BR2_PACKAGE_XAPP_XCALC=y
BR2_PACKAGE_XAPP_XCLOCK=y
BR2_PACKAGE_XAPP_XDPYINFO=y
BR2_PACKAGE_XAPP_XEYES=y
BR2_PACKAGE_XAPP_XINIT=y
BR2_PACKAGE_XAPP_XINPUT=y
BR2_PACKAGE_XAPP_XMODMAP=y
BR2_PACKAGE_XAPP_XREFRESH=y
BR2_PACKAGE_XAPP_XWININFO=y
BR2_PACKAGE_XDRIVER_XF86_INPUT_KEYBOARD=y
BR2_PACKAGE_XDRIVER_XF86_INPUT_MOUSE=y
BR2_PACKAGE_XDRIVER_XF86_VIDEO_FBDEV=y
BR2_PACKAGE_XDOTOOL=y
BR2_PACKAGE_XTERM=y
BR2_PACKAGE_CHOCOLATE_DOOM=y
BR2_PACKAGE_DOOM_WAD=y
jaycbhsn commented 2 years ago

I am currently building this over serial, but when I check the usr directory on the system, I cannot find the /lib directory or any of the files that would be placed there.

Dolu1990 commented 2 years ago

Do you transfer the rootfs.cpio via serial into the board memory ? Or another way ? Do you decompress the cpio ? It may happen that file are missing because of rights.

jaycbhsn commented 2 years ago

I do transfer the rootfs.cpio via serial (I know this because it takes the longest out of the other files to transfer). I have not decompiled the cpio, I might give that a try

Dolu1990 commented 2 years ago

i can check tomorrow the content of my image

Dolu1990 commented 2 years ago

there should be /lib stuff, did you managed this : ? https://github.com/litex-hub/linux-on-litex-vexriscv/issues/267#issuecomment-1083388551

jaycbhsn commented 2 years ago

Alright, I see the file, I extended it to 0x41C00000, so we will see if that is enough.

Dolu1990 commented 2 years ago

Don't edit the message (i will not be notified), just write a new message ^^

jaycbhsn commented 2 years ago

I don't see any change after increasing the size. Just so I'm not mistaken, this is something I edit in build/board.dts, then load to the device right? I'll try increasing the size again and reloading it for now

Dolu1990 commented 2 years ago

You need to edit the build/board.dts and then manualy generate the dtb from it, then load that dtb.

jaycbhsn commented 2 years ago

I have tried to edit dts, but after saving the file and recreating dtb they are reset to their previous size after loading the device on the board. Almost like they were set to read only

jaycbhsn commented 2 years ago

I figured out a workaround. I just changed the default value for the rom size. https://github.com/enjoy-digital/litex/blob/4c0a9439966211cdb2463a16c8c52f153495957c/litex/tools/litex_json2dts_linux.py#L44

I noticed there was a parser for the file which allowed you to specify the size, is that accessible through the build command line?

jaycbhsn commented 2 years ago

Thanks for the help!

Dolu1990 commented 2 years ago

is that accessible through the build command line?

I don't think it is, but i'm not realy sure