diff mbox series

[2/2] configs/qemu_riscv32_nommu_virt: new defconfig

Message ID ZkCU03+ru07pxr5d@waldemar-brodkorb.de
State Accepted
Headers show
Series [1/2] arch: allow riscv32 noMMU configuration | expand

Commit Message

Waldemar Brodkorb May 12, 2024, 10:07 a.m. UTC
Add new defconfig for Qemu RISCV32 w/o MMU.

Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
---
 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

Comments

Thomas Petazzoni May 12, 2024, 10:20 a.m. UTC | #1
On Sun, 12 May 2024 12:07:15 +0200
Waldemar Brodkorb <wbx@openadk.org> wrote:

> Add new defconfig for Qemu RISCV32 w/o MMU.
> 
> Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
> ---
>  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

Applied to master, thanks.

Thomas
diff mbox series

Patch

diff --git a/DEVELOPERS b/DEVELOPERS
index 67ce43e9cc..2991c51455 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -3198,6 +3198,8 @@  N:	Wade Berrier <wberrier@gmail.com>
 F:	package/ngrep/
 
 N:	Waldemar Brodkorb <wbx@openadk.org>
+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