From 7b6384bfd43a5cd5af959e65424704a4b92ceff1 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Sun, 12 May 2024 12:07:15 +0200 Subject: [PATCH] configs/qemu_riscv32_nommu_virt: new defconfig Add new defconfig for Qemu RISCV32 w/o MMU. Signed-off-by: Waldemar Brodkorb Signed-off-by: Thomas Petazzoni --- DEVELOPERS | 2 ++ board/qemu/riscv32-virt/linux-nommu.config | 21 ++++++++++++ .../patches/linux-headers/linux-headers.hash | 2 ++ .../riscv32-virt/patches/linux/linux.hash | 2 ++ board/qemu/riscv32-virt/readme.txt | 2 ++ configs/qemu_riscv32_nommu_virt_defconfig | 34 +++++++++++++++++++ 6 files changed, 63 insertions(+) create mode 100644 board/qemu/riscv32-virt/linux-nommu.config create mode 100644 board/qemu/riscv32-virt/patches/linux-headers/linux-headers.hash create mode 100644 board/qemu/riscv32-virt/patches/linux/linux.hash create mode 100644 configs/qemu_riscv32_nommu_virt_defconfig diff --git a/DEVELOPERS b/DEVELOPERS index 5a52550c27..d653648718 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -3201,6 +3201,8 @@ N: Wade Berrier F: package/ngrep/ N: Waldemar Brodkorb +F: board/qemu/riscv32-virt/ +F: configs/qemu_riscv32_nommu_virt_defconfig F: package/asterisk/ F: package/libjwt/ F: package/mksh/ diff --git a/board/qemu/riscv32-virt/linux-nommu.config b/board/qemu/riscv32-virt/linux-nommu.config new file mode 100644 index 0000000000..784b12f18a --- /dev/null +++ b/board/qemu/riscv32-virt/linux-nommu.config @@ -0,0 +1,21 @@ +CONFIG_BLK_DEV_INITRD=y +# CONFIG_MMU is not set +CONFIG_SOC_VIRT=y +CONFIG_NONPORTABLE=y +CONFIG_ARCH_RV32I=y +CONFIG_BINFMT_FLAT=y +CONFIG_SLOB=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_NETDEVICES=y +CONFIG_VIRTIO_BLK=y +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_VIRTIO_MMIO=y +CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y +CONFIG_VIRTIO_NET=y +CONFIG_EXT2_FS=y +CONFIG_PRINTK_TIME=y diff --git a/board/qemu/riscv32-virt/patches/linux-headers/linux-headers.hash b/board/qemu/riscv32-virt/patches/linux-headers/linux-headers.hash new file mode 100644 index 0000000000..a6c777192c --- /dev/null +++ b/board/qemu/riscv32-virt/patches/linux-headers/linux-headers.hash @@ -0,0 +1,2 @@ +# From https://cdn.kernel.org/pub/linux/kernel/v6.x/sha256sums.asc +sha256 4e43d8c5fba14f7c82597838011648056487b7550fd83276ad534559e8499b1d linux-6.6.18.tar.xz diff --git a/board/qemu/riscv32-virt/patches/linux/linux.hash b/board/qemu/riscv32-virt/patches/linux/linux.hash new file mode 100644 index 0000000000..a6c777192c --- /dev/null +++ b/board/qemu/riscv32-virt/patches/linux/linux.hash @@ -0,0 +1,2 @@ +# From https://cdn.kernel.org/pub/linux/kernel/v6.x/sha256sums.asc +sha256 4e43d8c5fba14f7c82597838011648056487b7550fd83276ad534559e8499b1d linux-6.6.18.tar.xz diff --git a/board/qemu/riscv32-virt/readme.txt b/board/qemu/riscv32-virt/readme.txt index 32b4333512..555924f949 100644 --- a/board/qemu/riscv32-virt/readme.txt +++ b/board/qemu/riscv32-virt/readme.txt @@ -2,4 +2,6 @@ Run Linux in emulation with: qemu-system-riscv32 -M virt -bios output/images/fw_jump.elf -kernel output/images/Image -append "rootwait root=/dev/vda ro" -drive file=output/images/rootfs.ext2,format=raw,id=hd0 -device virtio-blk-device,drive=hd0 -netdev user,id=net0 -device virtio-net-device,netdev=net0 -nographic # qemu_riscv32_virt_defconfig + qemu-system-riscv32 -M virt -bios none -kernel output/images/Image -append "rootwait root=/dev/vda ro" -drive file=output/images/rootfs.ext2,format=raw,id=hd0 -device virtio-blk-device,drive=hd0 -nographic -cpu rv32,mmu=off -netdev user,id=eth0 -device virtio-net-device,netdev=eth0 # qemu_riscv32_nommu_virt_defconfig + The login prompt will appear in the terminal that started Qemu. diff --git a/configs/qemu_riscv32_nommu_virt_defconfig b/configs/qemu_riscv32_nommu_virt_defconfig new file mode 100644 index 0000000000..3634260899 --- /dev/null +++ b/configs/qemu_riscv32_nommu_virt_defconfig @@ -0,0 +1,34 @@ +# Architecture +BR2_riscv=y +BR2_RISCV_32=y +# BR2_RISCV_USE_MMU is not set + +# Hashes +BR2_GLOBAL_PATCH_DIR="board/qemu/riscv32-virt/patches" +BR2_DOWNLOAD_FORCE_CHECK_HASHES=y + +# Linux headers same as kernel +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_6=y + +# System +BR2_SYSTEM_DHCP="eth0" +BR2_TARGET_GENERIC_GETTY=y + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y + +# Image +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.18" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/riscv32-virt/linux-nommu.config" +BR2_LINUX_KERNEL_IMAGE=y + +# host-qemu for gitlab testing +BR2_PACKAGE_HOST_QEMU=y +BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y