Re: [PATCH xenomai-images v2 1/4] ci: Build and test the evl risc-v port on qemu

Jan Kiszka <[email protected]>
Newsgroups dev.linux.lists.xenomai
Message-ID <[email protected]>
On 05.05.26 11:06, Tobias Schaffner wrote:
> Build evl for quemu-riscv64 and run the evl tests in lava. Skip the
> ptrace-sync test for now as it fails because of an open issue in EVL.
> 
> Added sections in the end of the riscv64 defconfig for nfs and
> debugging specific configs to allow easy factoring out as snippets
> later.
> 
> Only run the tests on the qemu05 runner (tag: SIEMENS_ERL_QEMU) as long
> as qemu01 runs on the outdated qemu 7.2.2 which hangs up with riscv
> workloads from time to time.
> 
> Signed-off-by: Tobias Schaffner <[email protected]>
> ---
>  ci/lib/gitlab-ci-base.yml                    |  38 ++-
>  ci/lib/kernel/head.yml                       |  13 +
>  conf/machine/qemu-riscv64.conf               |   1 -
>  recipes-kernel/linux/files/common_nodbg.cfg  |   2 +
>  recipes-kernel/linux/files/riscv64_defconfig | 335 +++++++++++++++++++
>  tests/jobs/xenomai-qemu-riscv64.yml          |  95 ++++++
>  6 files changed, 477 insertions(+), 7 deletions(-)
>  create mode 100644 recipes-kernel/linux/files/riscv64_defconfig
>  create mode 100644 tests/jobs/xenomai-qemu-riscv64.yml
> 
> diff --git a/ci/lib/gitlab-ci-base.yml b/ci/lib/gitlab-ci-base.yml
> index d815474..aaeb778 100644
> --- a/ci/lib/gitlab-ci-base.yml
> +++ b/ci/lib/gitlab-ci-base.yml
> @@ -85,11 +85,14 @@ default:
>        paths:
>          - build/downloads
>  
> +.build-qemu-rules: &build-qemu-rules
> +  - if: '$KERNEL_VERSION == $KERNEL_VERSION_WITH_QEMU'
> +  - if: '$ALL_QEMU_JOBS == "true"'
> +
>  .build-qemu:
>    extends: .build
>    rules:
> -    - if: '$KERNEL_VERSION == $KERNEL_VERSION_WITH_QEMU'
> -    - if: '$ALL_QEMU_JOBS == "true"'
> +    - *build-qemu-rules
>  
>  .test:
>    stage: test
> @@ -109,6 +112,12 @@ default:
>    rules:
>      - if: '$LAVA_TESTS_ENABLED == "true"'
>  
> +.test-qemu-rules: &test-qemu-rules
> +  - if: '$LAVA_TESTS_ENABLED != "true"'
> +    when: never
> +  - if: '$KERNEL_VERSION == $KERNEL_VERSION_WITH_QEMU'
> +  - if: '$ALL_QEMU_JOBS == "true"'
> +
>  .test-qemu:
>    extends: .test
>    variables:
> @@ -116,10 +125,7 @@ default:
>      ADDITIONAL_TEST_TIMEOUT_MINUTES: 25
>      EVL_TESTS_SKIP_PATTERN: "sched-quota-accuracy|sched-tp-accuracy|sched-tp-overrun|monitor-event-untrack"
>    rules:
> -    - if: '$LAVA_TESTS_ENABLED != "true"'
> -      when: never
> -    - if: '$KERNEL_VERSION == $KERNEL_VERSION_WITH_QEMU'
> -    - if: '$ALL_QEMU_JOBS == "true"'
> +    - *test-qemu-rules
>  
>  .build:qemu-amd64:
>    extends: .build-qemu
> @@ -154,6 +160,26 @@ default:
>    variables:
>      TARGET: qemu-arm64
>  
> +.build:qemu-riscv64:
> +  extends: .build-qemu
> +  variables:
> +    TARGET: qemu-riscv64
> +    CACHE_ARCH: riscv64
> +  rules:
> +    - if: '$XENOMAI_VERSION != "4-next"'
> +      when: never
> +    - *build-qemu-rules
> +
> +.lava-test:qemu-riscv64:
> +  extends: .test-qemu
> +  variables:
> +    TARGET: qemu-riscv64
> +    EVL_TESTS_SKIP_PATTERN: "ptrace-sync|sched-quota-accuracy|sched-tp-accuracy|sched-tp-overrun|monitor-event-untrack"
> +  rules:
> +    - if: '$XENOMAI_VERSION != "4-next"'
> +      when: never
> +    - *test-qemu-rules
> +
>  .build:hikey:
>    extends: .build
>    variables:
> diff --git a/ci/lib/kernel/head.yml b/ci/lib/kernel/head.yml
> index 376a002..e2884c2 100644
> --- a/ci/lib/kernel/head.yml
> +++ b/ci/lib/kernel/head.yml
> @@ -48,6 +48,19 @@ lava-test-head:qemu-arm64:
>    variables:
>      KERNEL_VERSION: "head"
>  
> +build-head:qemu-riscv64:
> +  extends: .build:qemu-riscv64
> +  variables:
> +    LINUX_BUILD_OPTION: ":kas/opt/linux-head.yaml"
> +    KERNEL_VERSION: "head"
> +    CACHE_KERNEL: evl
> +
> +lava-test-head:qemu-riscv64:
> +  needs: [ "build-head:qemu-riscv64" ]
> +  extends: .lava-test:qemu-riscv64
> +  variables:
> +    KERNEL_VERSION: "head"
> +
>  build-head:rpi4:
>    extends: .build:rpi4
>    variables:
> diff --git a/conf/machine/qemu-riscv64.conf b/conf/machine/qemu-riscv64.conf
> index 8dfcda4..4fb66c4 100644
> --- a/conf/machine/qemu-riscv64.conf
> +++ b/conf/machine/qemu-riscv64.conf
> @@ -12,4 +12,3 @@
>  require qemu-machine.inc
>  
>  DISTRO_ARCH = "riscv64"
> -KERNEL_DEFCONFIG = ""
> diff --git a/recipes-kernel/linux/files/common_nodbg.cfg b/recipes-kernel/linux/files/common_nodbg.cfg
> index a57463b..6637d16 100644
> --- a/recipes-kernel/linux/files/common_nodbg.cfg
> +++ b/recipes-kernel/linux/files/common_nodbg.cfg
> @@ -1,5 +1,7 @@
>  # CONFIG_IPIPE_DEBUG is not set
>  # CONFIG_XENO_OPT_DEBUG is not set
> +# CONFIG_EVL_DEBUG is not set
> +# CONFIG_EVL_DEBUG_CORE is not set
>  # CONFIG_DEBUG_VM is not set
>  # CONFIG_DEBUG_LIST is not set
>  # CONFIG_BUG_ON_DATA_CORRUPTION is not set
> diff --git a/recipes-kernel/linux/files/riscv64_defconfig b/recipes-kernel/linux/files/riscv64_defconfig
> new file mode 100644
> index 0000000..a4ffa7f
> --- /dev/null
> +++ b/recipes-kernel/linux/files/riscv64_defconfig
> @@ -0,0 +1,335 @@
> +CONFIG_SYSVIPC=y
> +CONFIG_POSIX_MQUEUE=y
> +CONFIG_NO_HZ_IDLE=y
> +CONFIG_HIGH_RES_TIMERS=y
> +CONFIG_BPF_SYSCALL=y
> +CONFIG_IKCONFIG=y
> +CONFIG_IKCONFIG_PROC=y
> +CONFIG_CGROUPS=y
> +CONFIG_MEMCG=y
> +CONFIG_BLK_CGROUP=y
> +CONFIG_CGROUP_SCHED=y
> +CONFIG_CFS_BANDWIDTH=y
> +CONFIG_CGROUP_PIDS=y
> +CONFIG_CGROUP_FREEZER=y
> +CONFIG_CGROUP_HUGETLB=y
> +CONFIG_CPUSETS=y
> +CONFIG_CGROUP_DEVICE=y
> +CONFIG_CGROUP_CPUACCT=y
> +CONFIG_CGROUP_PERF=y
> +CONFIG_CGROUP_BPF=y
> +CONFIG_USER_NS=y
> +CONFIG_CHECKPOINT_RESTORE=y
> +CONFIG_BLK_DEV_INITRD=y
> +CONFIG_PROFILING=y
> +CONFIG_ARCH_ANDES=y
> +CONFIG_ARCH_ANLOGIC=y
> +CONFIG_ARCH_MICROCHIP=y
> +CONFIG_ARCH_SIFIVE=y
> +CONFIG_ARCH_SOPHGO=y
> +CONFIG_ARCH_SPACEMIT=y
> +CONFIG_SOC_STARFIVE=y
> +CONFIG_ARCH_SUNXI=y
> +CONFIG_ARCH_TENSTORRENT=y
> +CONFIG_ARCH_THEAD=y
> +CONFIG_ARCH_VIRT=y
> +CONFIG_ARCH_CANAAN=y
> +CONFIG_SMP=y
> +CONFIG_CPU_FREQ=y
> +CONFIG_CPU_FREQ_STAT=y
> +CONFIG_CPU_FREQ_GOV_POWERSAVE=m
> +CONFIG_CPU_FREQ_GOV_USERSPACE=y
> +CONFIG_CPU_FREQ_GOV_ONDEMAND=y
> +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
> +CONFIG_CPUFREQ_DT=y
> +CONFIG_ACPI_CPPC_CPUFREQ=m
> +CONFIG_VIRTUALIZATION=y
> +CONFIG_KVM=m
> +CONFIG_ACPI=y
> +CONFIG_JUMP_LABEL=y
> +CONFIG_MODULES=y
> +CONFIG_MODULE_UNLOAD=y
> +CONFIG_BLK_DEV_THROTTLING=y
> +CONFIG_SPARSEMEM_MANUAL=y
> +CONFIG_NET=y
> +CONFIG_PACKET=y
> +CONFIG_XFRM_USER=m
> +CONFIG_IP_MULTICAST=y
> +CONFIG_IP_ADVANCED_ROUTER=y
> +CONFIG_IP_PNP=y
> +CONFIG_IP_PNP_DHCP=y
> +CONFIG_IP_PNP_BOOTP=y
> +CONFIG_IP_PNP_RARP=y
> +CONFIG_INET_ESP=m
> +CONFIG_NETFILTER=y
> +CONFIG_BRIDGE_NETFILTER=m
> +CONFIG_NF_CONNTRACK=m
> +CONFIG_NF_CONNTRACK_FTP=m
> +CONFIG_NF_CONNTRACK_TFTP=m
> +CONFIG_NETFILTER_XT_MARK=m
> +CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
> +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
> +CONFIG_NETFILTER_XT_MATCH_IPVS=m
> +CONFIG_IP_VS=m
> +CONFIG_IP_VS_PROTO_TCP=y
> +CONFIG_IP_VS_PROTO_UDP=y
> +CONFIG_IP_VS_RR=m
> +CONFIG_IP_VS_NFCT=y
> +CONFIG_NF_LOG_ARP=m
> +CONFIG_NF_LOG_IPV4=m
> +CONFIG_IP_NF_IPTABLES=m
> +CONFIG_IP_NF_FILTER=m
> +CONFIG_IP_NF_TARGET_REJECT=m
> +CONFIG_IP_NF_NAT=m
> +CONFIG_IP_NF_TARGET_MASQUERADE=m
> +CONFIG_IP_NF_TARGET_REDIRECT=m
> +CONFIG_IP_NF_MANGLE=m
> +CONFIG_NF_LOG_IPV6=m
> +CONFIG_IP6_NF_IPTABLES=m
> +CONFIG_IP6_NF_MATCH_IPV6HEADER=m
> +CONFIG_IP6_NF_FILTER=m
> +CONFIG_IP6_NF_TARGET_REJECT=m
> +CONFIG_IP6_NF_MANGLE=m
> +CONFIG_BRIDGE=m
> +CONFIG_BRIDGE_VLAN_FILTERING=y
> +CONFIG_VLAN_8021Q=m
> +CONFIG_NET_SCHED=y
> +CONFIG_NET_CLS_CGROUP=m
> +CONFIG_NETLINK_DIAG=y
> +CONFIG_CGROUP_NET_PRIO=y
> +CONFIG_CAN=m
> +CONFIG_NET_9P=y
> +CONFIG_NET_9P_VIRTIO=y
> +CONFIG_PCI=y
> +CONFIG_PCIEPORTBUS=y
> +CONFIG_PCI_HOST_GENERIC=y
> +CONFIG_PCIE_XILINX=y
> +CONFIG_PCIE_FU740=y
> +CONFIG_PCIE_STARFIVE_HOST=m
> +CONFIG_DEVTMPFS=y
> +CONFIG_DEVTMPFS_MOUNT=y
> +CONFIG_SIFIVE_CCACHE=y
> +CONFIG_MTD=y
> +CONFIG_MTD_BLOCK=y
> +CONFIG_MTD_CFI=y
> +CONFIG_MTD_CFI_ADV_OPTIONS=y
> +CONFIG_MTD_SPI_NOR=y
> +CONFIG_BLK_DEV_LOOP=y
> +CONFIG_VIRTIO_BLK=y
> +CONFIG_BLK_DEV_NVME=m
> +CONFIG_BLK_DEV_SD=y
> +CONFIG_BLK_DEV_SR=y
> +CONFIG_SCSI_VIRTIO=y
> +CONFIG_ATA=y
> +CONFIG_SATA_AHCI=y
> +CONFIG_SATA_AHCI_PLATFORM=y
> +CONFIG_MD=y
> +CONFIG_BLK_DEV_DM=m
> +CONFIG_DM_THIN_PROVISIONING=m
> +CONFIG_NETDEVICES=y
> +CONFIG_DUMMY=m
> +CONFIG_MACVLAN=m
> +CONFIG_IPVLAN=m
> +CONFIG_VXLAN=m
> +CONFIG_VETH=m
> +CONFIG_VIRTIO_NET=y
> +CONFIG_MACB=y
> +CONFIG_E1000E=y
> +CONFIG_R8169=y
> +CONFIG_STMMAC_ETH=y
> +CONFIG_STMMAC_PLATFORM=y
> +CONFIG_DWMAC_STARFIVE=y
> +CONFIG_DWMAC_THEAD=m
> +CONFIG_MICREL_PHY=y
> +CONFIG_MICROSEMI_PHY=y
> +CONFIG_MOTORCOMM_PHY=y
> +CONFIG_INPUT_MOUSEDEV=y
> +CONFIG_INPUT_EVDEV=y
> +CONFIG_KEYBOARD_GPIO=y
> +CONFIG_KEYBOARD_SUN4I_LRADC=m
> +CONFIG_SERIAL_8250=y
> +CONFIG_SERIAL_8250_CONSOLE=y
> +CONFIG_SERIAL_8250_DW=y
> +CONFIG_SERIAL_OF_PLATFORM=y
> +CONFIG_SERIAL_EARLYCON_RISCV_SBI=y
> +CONFIG_VIRTIO_CONSOLE=y
> +CONFIG_HW_RANDOM=y
> +CONFIG_HW_RANDOM_VIRTIO=y
> +CONFIG_HW_RANDOM_JH7110=m
> +CONFIG_I2C=y
> +CONFIG_I2C_CHARDEV=m
> +CONFIG_I2C_DESIGNWARE_CORE=y
> +CONFIG_I2C_MV64XXX=m
> +CONFIG_SPI=y
> +CONFIG_SPI_CADENCE_QUADSPI=m
> +CONFIG_SPI_FSL_QUADSPI=m
> +CONFIG_SPI_PL022=m
> +CONFIG_SPI_SIFIVE=y
> +CONFIG_SPI_SUN6I=y
> +# CONFIG_PTP_1588_CLOCK is not set
> +CONFIG_PINCTRL_TH1520=y
> +CONFIG_PINCTRL_SOPHGO_CV1800B=y
> +CONFIG_PINCTRL_SOPHGO_CV1812H=y
> +CONFIG_PINCTRL_SOPHGO_SG2000=y
> +CONFIG_PINCTRL_SOPHGO_SG2002=y
> +CONFIG_GPIO_DWAPB=y
> +CONFIG_GPIO_SIFIVE=y
> +CONFIG_GPIO_SPACEMIT_K1=y
> +CONFIG_POWER_RESET_GPIO_RESTART=y
> +CONFIG_SENSORS_SFCTEMP=m
> +CONFIG_CPU_THERMAL=y
> +CONFIG_DEVFREQ_THERMAL=y
> +CONFIG_WATCHDOG=y
> +CONFIG_SUNXI_WATCHDOG=y
> +CONFIG_MFD_AXP20X_I2C=y
> +CONFIG_REGULATOR=y
> +CONFIG_REGULATOR_FIXED_VOLTAGE=y
> +CONFIG_REGULATOR_AXP20X=y
> +CONFIG_REGULATOR_GPIO=y
> +CONFIG_MEDIA_SUPPORT=m
> +CONFIG_MEDIA_PLATFORM_SUPPORT=y
> +CONFIG_VIDEO_CADENCE_CSI2RX=m
> +CONFIG_DRM=m
> +CONFIG_DRM_RADEON=m
> +CONFIG_DRM_NOUVEAU=m
> +CONFIG_DRM_SUN4I=m
> +CONFIG_DRM_VIRTIO_GPU=m
> +CONFIG_FB=y
> +CONFIG_SOUND=y
> +CONFIG_SND=y
> +CONFIG_SND_SOC=y
> +CONFIG_SND_DESIGNWARE_I2S=m
> +CONFIG_SND_SOC_JH7110_PWMDAC=m
> +CONFIG_SND_SOC_JH7110_TDM=m
> +CONFIG_SND_SOC_WM8978=m
> +CONFIG_SND_SIMPLE_CARD=m
> +CONFIG_USB=y
> +CONFIG_USB_OTG=y
> +CONFIG_USB_XHCI_HCD=y
> +CONFIG_USB_XHCI_PLATFORM=y
> +CONFIG_USB_EHCI_HCD=y
> +CONFIG_USB_EHCI_HCD_PLATFORM=y
> +CONFIG_USB_OHCI_HCD=y
> +CONFIG_USB_OHCI_HCD_PLATFORM=y
> +CONFIG_USB_STORAGE=y
> +CONFIG_USB_UAS=y
> +CONFIG_USB_CDNS_SUPPORT=m
> +CONFIG_USB_CDNS3=m
> +CONFIG_USB_CDNS3_GADGET=y
> +CONFIG_USB_CDNS3_HOST=y
> +CONFIG_USB_CDNS3_STARFIVE=m
> +CONFIG_USB_MUSB_HDRC=m
> +CONFIG_USB_MUSB_SUNXI=m
> +CONFIG_NOP_USB_XCEIV=m
> +CONFIG_USB_GADGET=y
> +CONFIG_USB_CONFIGFS=m
> +CONFIG_USB_CONFIGFS_SERIAL=y
> +CONFIG_USB_CONFIGFS_ACM=y
> +CONFIG_USB_CONFIGFS_OBEX=y
> +CONFIG_USB_CONFIGFS_NCM=y
> +CONFIG_USB_CONFIGFS_ECM=y
> +CONFIG_USB_CONFIGFS_ECM_SUBSET=y
> +CONFIG_USB_CONFIGFS_RNDIS=y
> +CONFIG_USB_CONFIGFS_EEM=y
> +CONFIG_USB_CONFIGFS_MASS_STORAGE=y
> +CONFIG_USB_CONFIGFS_F_FS=y
> +CONFIG_MMC=y
> +CONFIG_MMC_SDHCI=y
> +CONFIG_MMC_SDHCI_PLTFM=y
> +CONFIG_MMC_SDHCI_OF_DWCMSHC=y
> +CONFIG_MMC_SDHCI_OF_K1=y
> +CONFIG_MMC_SDHCI_CADENCE=y
> +CONFIG_MMC_SPI=y
> +CONFIG_MMC_DW=y
> +CONFIG_MMC_DW_STARFIVE=y
> +CONFIG_MMC_SUNXI=y
> +CONFIG_RTC_CLASS=y
> +CONFIG_RTC_DRV_SUN6I=y
> +CONFIG_DMADEVICES=y
> +CONFIG_DMA_SUN6I=m
> +CONFIG_DW_AXI_DMAC=y
> +CONFIG_MMP_PDMA=m
> +CONFIG_VIRTIO_PCI=y
> +CONFIG_VIRTIO_BALLOON=y
> +CONFIG_VIRTIO_INPUT=y
> +CONFIG_VIRTIO_MMIO=y
> +CONFIG_CLK_SOPHGO_CV1800=y
> +CONFIG_CLK_SOPHGO_SG2042_PLL=y
> +CONFIG_CLK_SOPHGO_SG2042_CLKGEN=y
> +CONFIG_CLK_SOPHGO_SG2042_RPGATE=y
> +CONFIG_SPACEMIT_K1_CCU=y
> +CONFIG_SPACEMIT_K3_CCU=y
> +CONFIG_SUN8I_DE2_CCU=m
> +CONFIG_SUN50I_IOMMU=y
> +CONFIG_RPMSG_CHAR=y
> +CONFIG_RPMSG_CTRL=y
> +CONFIG_RPMSG_VIRTIO=y
> +CONFIG_PM_DEVFREQ=y
> +CONFIG_IIO=y
> +CONFIG_PWM=y
> +CONFIG_PWM_PXA=m
> +CONFIG_THEAD_C900_ACLINT_SSWI=y
> +CONFIG_PHY_SUN4I_USB=m
> +CONFIG_PHY_STARFIVE_JH7110_DPHY_RX=m
> +CONFIG_PHY_STARFIVE_JH7110_PCIE=m
> +CONFIG_PHY_STARFIVE_JH7110_USB=m
> +CONFIG_CLK_STARFIVE_JH7110_AON=y
> +CONFIG_CLK_STARFIVE_JH7110_STG=y
> +CONFIG_LIBNVDIMM=y
> +CONFIG_NVMEM_SUNXI_SID=y
> +CONFIG_EXT4_FS=y
> +CONFIG_EXT4_FS_POSIX_ACL=y
> +CONFIG_EXT4_FS_SECURITY=y
> +CONFIG_BTRFS_FS=m
> +CONFIG_BTRFS_FS_POSIX_ACL=y
> +CONFIG_AUTOFS_FS=y
> +CONFIG_OVERLAY_FS=m
> +CONFIG_ISO9660_FS=y
> +CONFIG_JOLIET=y
> +CONFIG_ZISOFS=y
> +CONFIG_MSDOS_FS=y
> +CONFIG_VFAT_FS=y
> +CONFIG_TMPFS=y
> +CONFIG_TMPFS_POSIX_ACL=y
> +CONFIG_HUGETLBFS=y
> +CONFIG_NFS_FS=y
> +CONFIG_NFS_V4=y
> +CONFIG_NFS_V4_1=y
> +CONFIG_NFS_V4_2=y
> +CONFIG_ROOT_NFS=y
> +CONFIG_9P_FS=y
> +CONFIG_NLS_CODEPAGE_437=y
> +CONFIG_NLS_ISO8859_1=y
> +CONFIG_SECURITY=y
> +CONFIG_SECURITY_SELINUX=y
> +CONFIG_SECURITY_APPARMOR=y
> +CONFIG_DEFAULT_SECURITY_DAC=y
> +CONFIG_CRYPTO_USER_API_HASH=y
> +CONFIG_CRYPTO_DEV_VIRTIO=y
> +CONFIG_PRINTK_TIME=y
> +CONFIG_DEBUG_KERNEL=y
> +CONFIG_DEBUG_FS=y
> +# CONFIG_RUNTIME_TESTING_MENU is not set
> +CONFIG_MEMTEST=y
> +
> +# lava lab nfs enablement
> +CONFIG_NFS_FS=y
> +CONFIG_NFS_V3=y
> +CONFIG_NFS_V4=y
> +CONFIG_ROOT_NFS=y
> +CONFIG_IP_PNP=y
> +CONFIG_IP_PNP_DHCP=y
> +
> +# debug additions
> +CONFIG_BUG_ON_DATA_CORRUPTION=y
> +CONFIG_DEBUG_ATOMIC_SLEEP=y
> +CONFIG_DEBUG_LIST=y
> +CONFIG_DEBUG_LOCK_ALLOC=y
> +CONFIG_DEBUG_VM=y
> +CONFIG_DYNAMIC_FTRACE=y
> +CONFIG_EVL_DEBUG=y
> +CONFIG_EVL_DEBUG_CORE=y
> +CONFIG_FTRACE=y
> +CONFIG_FUNCTION_TRACER=y
> +CONFIG_PROVE_LOCKING=y
> +CONFIG_STACKTRACE=y
> diff --git a/tests/jobs/xenomai-qemu-riscv64.yml b/tests/jobs/xenomai-qemu-riscv64.yml
> new file mode 100644
> index 0000000..d1f0217
> --- /dev/null
> +++ b/tests/jobs/xenomai-qemu-riscv64.yml
> @@ -0,0 +1,95 @@
> +#
> +# Xenomai Real-Time System
> +#
> +# Copyright (c) Siemens AG, 2025
> +#
> +# Authors:
> +#  Tobias Schaffner <[email protected]>
> +#
> +# SPDX-License-Identifier: MIT
> +#
> +device_type: qemu
> +job_name: QEMU pipeline, xenomai-images-qemu-riscv64
> +tags:
> +  - SIEMENS_ERL_QEMU
> +
> +timeouts:
> +  job:
> +    minutes: 90
> +  action:
> +    minutes: 65
> +  connection:
> +    minutes: 5
> +priority: medium
> +visibility: public
> +
> +# context allows specific values to be overridden or included
> +context:
> +  # tell the qemu template which architecture is being tested
> +  # the template uses that to ensure that qemu-system-riscv64 is executed.
> +  arch: riscv64
> +  cpu: rv64
> +  machine: virt
> +  no_kvm: True
> +  extra_options:
> +  - -smp 2
> +  - -m 2048
> +  - -device virtio-serial-device
> +  - -device virtconsole,chardev=con
> +  - -chardev vc,id=con
> +  - -device virtio-blk-device,drive=disk
> +  - -device virtio-net-pci,netdev=net
> +  - -netdev user,id=net
> +  guestfs_interface: virtio
> +metadata:
> +  # please change these fields when modifying this job for your own tests.
> +  docs-source: xenomai-qemu-riscv64
> +  docs-filename: qemu-pipeline-xenomai-riscv64
> +
> +# ACTION_BLOCK
> +actions:
> +- deploy:
> +    timeout:
> +      minutes: 15
> +    to: tmpfs
> +    images:
> +      kernel:
> +        image_arg: -kernel {kernel} -append "root=/dev/vda rw"
> +        url: ${DEPLOY_URL}/${ISAR_IMAGE}-${ISAR_DISTRIBUTION}-${TARGET}-vmlinux
> +      initrd:
> +        image_arg: -initrd {initrd}
> +        url: ${DEPLOY_URL}/${ISAR_IMAGE}-${ISAR_DISTRIBUTION}-${TARGET}-initrd.img
> +      rootfs:
> +        image_arg: -drive file={rootfs},discard=unmap,if=none,id=disk,format=raw
> +        url: ${DEPLOY_URL}/${ISAR_IMAGE}-${ISAR_DISTRIBUTION}-${TARGET}.ext4.gz
> +        compression: gz
> +# BOOT_BLOCK
> +- boot:
> +    timeout:
> +      minutes: 15
> +    method: qemu
> +    media: tmpfs
> +    prompts: ["root@demo:"]
> +    auto_login:
> +      login_prompt: 'demo login:'
> +      username: root
> +      password_prompt: 'Password:'
> +      password: root
> +
> +- test:
> +    timeout:
> +      minutes: ${TEST_TIMEOUT_MINUTES}
> +    definitions:
> +    - repository:
> +        metadata:
> +          format: Lava-Test Test Definition 1.0
> +          name: xenomai-test-suite
> +          description: "runs the xenomai smokey test suite"
> +          maintainer:
> +            - [email protected]
> +        run:
> +          steps:
> +            - ${TEST_COMMAND} || lava-test-raise "xenomai-test failed!"
> +      from: inline
> +      path: inline/xenomai-test-suite.yaml
> +      name: xenomai-test-suite

This looks good, so I'm taking it to next already.

Thanks,
Jan

-- 
Siemens AG, Foundational Technologies
Linux Expert Center
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.