[PATCH v4 09/13] test: add labgrid-style configs for some emulated targets

Ahmad Fatoum a.fatoum at pengutronix.de
Fri Jun 4 01:31:05 PDT 2021


There are various ways barebox can run under emulation, some of them are
described in the documentation and some more in the git history.

Make running the emulators more convenient to use by collecting some
known-good emulator invocations in a machine readable format.

These files can be processed by a test/emulate.pl script added in a
follow-up commit. They contain enough information to configure, build
and run barebox inside an emulator. Those YAML files utilizing QEMUDriver
can also be directly parsed by labgrid for running tests.

Utilizing labgrid for this will allow using the same test suite for
physical targets as well in future.

Signed-off-by: Ahmad Fatoum <a.fatoum at pengutronix.de>
---
 test/arm/a15 at vexpress_defconfig.yaml     | 20 +++++++++++++++
 test/arm/a9 at vexpress_defconfig.yaml      | 20 +++++++++++++++
 test/arm/qemu_virt64_defconfig.yaml      | 24 ++++++++++++++++++
 test/arm/vexpress_defconfig.yaml         |  1 +
 test/arm/virt at vexpress_defconfig.yaml    | 22 ++++++++++++++++
 test/kconfig/virtio-pci.cfg              |  6 +++++
 test/mips/be at qemu-malta_defconfig.yaml   | 22 ++++++++++++++++
 test/mips/le at qemu-malta_defconfig.yaml   | 25 ++++++++++++++++++
 test/mips/qemu-malta_defconfig.yaml      |  1 +
 test/openrisc/generic_defconfig.yaml     | 20 +++++++++++++++
 test/riscv/qemu at virt32_defconfig.yaml    | 27 ++++++++++++++++++++
 test/riscv/qemu at virt64_defconfig.yaml    | 27 ++++++++++++++++++++
 test/riscv/sifive_defconfig.yaml         | 25 ++++++++++++++++++
 test/riscv/tinyemu at virt32_defconfig.yaml | 22 ++++++++++++++++
 test/riscv/tinyemu at virt64_defconfig.yaml | 22 ++++++++++++++++
 test/riscv/virt32_defconfig.yaml         |  1 +
 test/riscv/virt64_defconfig.yaml         |  1 +
 test/sandbox/sandbox_defconfig.yaml      | 12 +++++++++
 test/x86/efi_defconfig.yaml              |  1 +
 test/x86/pc at efi_defconfig.yaml           | 31 +++++++++++++++++++++++
 test/x86/q35 at efi_defconfig.yaml          | 31 +++++++++++++++++++++++
 test/x86/virtio at efi_defconfig.yaml       | 32 ++++++++++++++++++++++++
 22 files changed, 393 insertions(+)
 create mode 100644 test/arm/a15 at vexpress_defconfig.yaml
 create mode 100644 test/arm/a9 at vexpress_defconfig.yaml
 create mode 100644 test/arm/qemu_virt64_defconfig.yaml
 create mode 120000 test/arm/vexpress_defconfig.yaml
 create mode 100644 test/arm/virt at vexpress_defconfig.yaml
 create mode 100644 test/kconfig/virtio-pci.cfg
 create mode 100644 test/mips/be at qemu-malta_defconfig.yaml
 create mode 100644 test/mips/le at qemu-malta_defconfig.yaml
 create mode 120000 test/mips/qemu-malta_defconfig.yaml
 create mode 100644 test/openrisc/generic_defconfig.yaml
 create mode 100644 test/riscv/qemu at virt32_defconfig.yaml
 create mode 100644 test/riscv/qemu at virt64_defconfig.yaml
 create mode 100644 test/riscv/sifive_defconfig.yaml
 create mode 100644 test/riscv/tinyemu at virt32_defconfig.yaml
 create mode 100644 test/riscv/tinyemu at virt64_defconfig.yaml
 create mode 120000 test/riscv/virt32_defconfig.yaml
 create mode 120000 test/riscv/virt64_defconfig.yaml
 create mode 100644 test/sandbox/sandbox_defconfig.yaml
 create mode 120000 test/x86/efi_defconfig.yaml
 create mode 100644 test/x86/pc at efi_defconfig.yaml
 create mode 100644 test/x86/q35 at efi_defconfig.yaml
 create mode 100644 test/x86/virtio at efi_defconfig.yaml

diff --git a/test/arm/a15 at vexpress_defconfig.yaml b/test/arm/a15 at vexpress_defconfig.yaml
new file mode 100644
index 000000000000..941e914ab2d6
--- /dev/null
+++ b/test/arm/a15 at vexpress_defconfig.yaml
@@ -0,0 +1,20 @@
+targets:
+  main:
+    drivers:
+      QEMUDriver:
+        qemu_bin: qemu
+        machine: vexpress-a15
+        cpu: cortex-a15
+        memory: 1024M
+        bios: barebox-vexpress-ca15.img
+        extra_args: ''
+      BareboxDriver:
+        prompt: 'barebox@[^:]+:[^ ]+ '
+        bootstring: 'commandline:'
+      BareboxTestStrategy: {}
+images:
+  barebox-vexpress-ca15.img: !template "$LG_BUILDDIR/images/barebox-vexpress-ca15.img"
+tools:
+  qemu: /usr/bin/qemu-system-arm
+imports:
+  -  ../strategy.py
diff --git a/test/arm/a9 at vexpress_defconfig.yaml b/test/arm/a9 at vexpress_defconfig.yaml
new file mode 100644
index 000000000000..fefee153cf91
--- /dev/null
+++ b/test/arm/a9 at vexpress_defconfig.yaml
@@ -0,0 +1,20 @@
+targets:
+  main:
+    drivers:
+      QEMUDriver:
+        qemu_bin: qemu
+        machine: vexpress-a9
+        cpu: cortex-a9
+        memory: 1024M
+        bios: barebox-vexpress-ca9.img
+        extra_args: ''
+      BareboxDriver:
+        prompt: 'barebox@[^:]+:[^ ]+ '
+        bootstring: 'commandline:'
+      BareboxTestStrategy: {}
+images:
+  barebox-vexpress-ca9.img: !template "$LG_BUILDDIR/images/barebox-vexpress-ca9.img"
+tools:
+  qemu: /usr/bin/qemu-system-arm
+imports:
+  -  ../strategy.py
diff --git a/test/arm/qemu_virt64_defconfig.yaml b/test/arm/qemu_virt64_defconfig.yaml
new file mode 100644
index 000000000000..ed308591da53
--- /dev/null
+++ b/test/arm/qemu_virt64_defconfig.yaml
@@ -0,0 +1,24 @@
+targets:
+  main:
+    drivers:
+      QEMUDriver:
+        qemu_bin: qemu
+        machine: virt
+        cpu: cortex-a57
+        memory: 1024M
+        kernel: barebox-dt-2nd.img
+        extra_args: ''
+      BareboxDriver:
+        prompt: 'barebox@[^:]+:[^ ]+ '
+        bootstring: 'commandline:'
+      BareboxTestStrategy: {}
+    features:
+      - virtio-mmio
+    runner:
+      tuxmake_arch: arm64
+images:
+  barebox-dt-2nd.img: !template "$LG_BUILDDIR/images/barebox-dt-2nd.img"
+tools:
+  qemu: /usr/bin/qemu-system-aarch64
+imports:
+  -  ../strategy.py
diff --git a/test/arm/vexpress_defconfig.yaml b/test/arm/vexpress_defconfig.yaml
new file mode 120000
index 000000000000..732f51b19dc9
--- /dev/null
+++ b/test/arm/vexpress_defconfig.yaml
@@ -0,0 +1 @@
+a9 at vexpress_defconfig.yaml
\ No newline at end of file
diff --git a/test/arm/virt at vexpress_defconfig.yaml b/test/arm/virt at vexpress_defconfig.yaml
new file mode 100644
index 000000000000..66ecf20690d1
--- /dev/null
+++ b/test/arm/virt at vexpress_defconfig.yaml
@@ -0,0 +1,22 @@
+targets:
+  main:
+    drivers:
+      QEMUDriver:
+        qemu_bin: qemu
+        machine: virt
+        cpu: cortex-a7
+        memory: 1024M
+        kernel: barebox-dt-2nd.img
+        extra_args: ''
+      BareboxDriver:
+        prompt: 'barebox@[^:]+:[^ ]+ '
+        bootstring: 'commandline:'
+      BareboxTestStrategy: {}
+    features:
+      - virtio-mmio
+images:
+  barebox-dt-2nd.img: !template "$LG_BUILDDIR/images/barebox-dt-2nd.img"
+tools:
+  qemu: /usr/bin/qemu-system-arm
+imports:
+  -  ../strategy.py
diff --git a/test/kconfig/virtio-pci.cfg b/test/kconfig/virtio-pci.cfg
new file mode 100644
index 000000000000..78237b8fca26
--- /dev/null
+++ b/test/kconfig/virtio-pci.cfg
@@ -0,0 +1,6 @@
+CONFIG_VIRTIO_MENU=y
+CONFIG_VIRTIO_PCI=y
+CONFIG_VIRTIO_CONSOLE=y
+CONFIG_VIRTIO_BLK=y
+CONFIG_HWRNG=y
+CONFIG_HW_RANDOM_VIRTIO=y
diff --git a/test/mips/be at qemu-malta_defconfig.yaml b/test/mips/be at qemu-malta_defconfig.yaml
new file mode 100644
index 000000000000..774023cd8451
--- /dev/null
+++ b/test/mips/be at qemu-malta_defconfig.yaml
@@ -0,0 +1,22 @@
+targets:
+  main:
+    drivers:
+      QEMUDriver:
+        qemu_bin: qemu
+        machine: malta
+        cpu: M14Kc
+        memory: 256M
+        bios: barebox-qemu-malta.img
+        extra_args: ''
+      BareboxDriver:
+        prompt: 'barebox@[^:]+:[^ ]+ '
+        bootstring: 'commandline:'
+      BareboxTestStrategy: {}
+    features:
+      - virtio-pci
+images:
+  barebox-qemu-malta.img: !template "$LG_BUILDDIR/images/barebox-qemu-malta.img"
+tools:
+  qemu: /usr/bin/qemu-system-mips
+imports:
+  -  ../strategy.py
diff --git a/test/mips/le at qemu-malta_defconfig.yaml b/test/mips/le at qemu-malta_defconfig.yaml
new file mode 100644
index 000000000000..8fc8c4dae925
--- /dev/null
+++ b/test/mips/le at qemu-malta_defconfig.yaml
@@ -0,0 +1,25 @@
+targets:
+  main:
+    drivers:
+      QEMUDriver:
+        qemu_bin: qemu
+        machine: malta
+        cpu: M14Kc
+        memory: 256M
+        bios: barebox-qemu-malta.img.swapped
+        extra_args: ''
+      BareboxDriver:
+        prompt: 'barebox@[^:]+:[^ ]+ '
+        bootstring: 'commandline:'
+      BareboxTestStrategy: {}
+    features:
+      - virtio-pci
+    runner:
+      kconfig_add:
+        - CONFIG_CPU_LITTLE_ENDIAN=y
+images:
+  barebox-qemu-malta.img.swapped: !template "$LG_BUILDDIR/images/barebox-qemu-malta.img.swapped"
+tools:
+  qemu: /usr/bin/qemu-system-mipsel
+imports:
+  -  ../strategy.py
diff --git a/test/mips/qemu-malta_defconfig.yaml b/test/mips/qemu-malta_defconfig.yaml
new file mode 120000
index 000000000000..481b6e547782
--- /dev/null
+++ b/test/mips/qemu-malta_defconfig.yaml
@@ -0,0 +1 @@
+be at qemu-malta_defconfig.yaml
\ No newline at end of file
diff --git a/test/openrisc/generic_defconfig.yaml b/test/openrisc/generic_defconfig.yaml
new file mode 100644
index 000000000000..0a2d4a7a18a0
--- /dev/null
+++ b/test/openrisc/generic_defconfig.yaml
@@ -0,0 +1,20 @@
+targets:
+  main:
+    drivers:
+      QEMUDriver:
+        qemu_bin: qemu
+        machine: or1k-sim
+        cpu: or1200
+        memory: 256M
+        kernel: barebox
+        extra_args: ''
+      BareboxDriver:
+        prompt: 'barebox@[^:]+:[^ ]+ '
+        bootstring: 'commandline:'
+      BareboxTestStrategy: {}
+images:
+  barebox: !template "$LG_BUILDDIR/barebox"
+tools:
+  qemu: /usr/bin/qemu-system-or1k
+imports:
+  -  ../strategy.py
diff --git a/test/riscv/qemu at virt32_defconfig.yaml b/test/riscv/qemu at virt32_defconfig.yaml
new file mode 100644
index 000000000000..5c602635d4c5
--- /dev/null
+++ b/test/riscv/qemu at virt32_defconfig.yaml
@@ -0,0 +1,27 @@
+targets:
+  main:
+    drivers:
+      QEMUDriver:
+        qemu_bin: qemu
+        machine: virt
+        cpu: rv32
+        memory: 256M
+        kernel: barebox-dt-2nd.img
+        bios: opensbi-riscv32-generic-fw_dynamic.bin
+        extra_args: ''
+      BareboxDriver:
+        prompt: 'barebox@[^:]+:[^ ]+ '
+        bootstring: 'commandline:'
+      BareboxTestStrategy: {}
+    features:
+      - virtio-mmio
+    runner:
+      download:
+        opensbi-riscv32-generic-fw_dynamic.bin: https://github.com/qemu/qemu/blob/v5.2.0/pc-bios/opensbi-riscv32-generic-fw_dynamic.bin?raw=true
+images:
+  barebox-dt-2nd.img: !template "$LG_BUILDDIR/images/barebox-dt-2nd.img"
+  opensbi-riscv32-generic-fw_dynamic.bin: !template "$LG_BUILDDIR/opensbi-riscv32-generic-fw_dynamic.bin"
+tools:
+  qemu: /usr/bin/qemu-system-riscv32
+imports:
+  -  ../strategy.py
diff --git a/test/riscv/qemu at virt64_defconfig.yaml b/test/riscv/qemu at virt64_defconfig.yaml
new file mode 100644
index 000000000000..fefbd20e5c99
--- /dev/null
+++ b/test/riscv/qemu at virt64_defconfig.yaml
@@ -0,0 +1,27 @@
+targets:
+  main:
+    drivers:
+      QEMUDriver:
+        qemu_bin: qemu
+        machine: virt
+        cpu: rv64
+        memory: 256M
+        kernel: barebox-dt-2nd.img
+        bios: opensbi-riscv64-generic-fw_dynamic.bin
+        extra_args: ''
+      BareboxDriver:
+        prompt: 'barebox@[^:]+:[^ ]+ '
+        bootstring: 'commandline:'
+      BareboxTestStrategy: {}
+    features:
+      - virtio-mmio
+    runner:
+      download:
+        opensbi-riscv64-generic-fw_dynamic.bin: https://github.com/qemu/qemu/blob/v5.2.0/pc-bios/opensbi-riscv64-generic-fw_dynamic.bin?raw=true
+images:
+  barebox-dt-2nd.img: !template "$LG_BUILDDIR/images/barebox-dt-2nd.img"
+  opensbi-riscv64-generic-fw_dynamic.bin: !template "$LG_BUILDDIR/opensbi-riscv64-generic-fw_dynamic.bin"
+tools:
+  qemu: /usr/bin/qemu-system-riscv64
+imports:
+  -  ../strategy.py
diff --git a/test/riscv/sifive_defconfig.yaml b/test/riscv/sifive_defconfig.yaml
new file mode 100644
index 000000000000..f7299453a499
--- /dev/null
+++ b/test/riscv/sifive_defconfig.yaml
@@ -0,0 +1,25 @@
+targets:
+  main:
+    drivers:
+      QEMUDriver:
+        qemu_bin: qemu
+        machine: sifive_u
+        cpu: sifive-u54
+        memory: 256M
+        kernel: barebox-hifive-unleashed.img
+        bios: opensbi-riscv64-generic-fw_dynamic.bin
+        extra_args: ''
+      BareboxDriver:
+        prompt: 'barebox@[^:]+:[^ ]+ '
+        bootstring: 'commandline:'
+      BareboxTestStrategy: {}
+    runner:
+      download:
+        opensbi-riscv64-generic-fw_dynamic.bin: https://github.com/qemu/qemu/blob/v5.2.0/pc-bios/opensbi-riscv64-generic-fw_dynamic.bin?raw=true
+images:
+  barebox-hifive-unleashed.img: !template "$LG_BUILDDIR/images/barebox-hifive-unleashed.img"
+  opensbi-riscv64-generic-fw_dynamic.bin: !template "$LG_BUILDDIR/opensbi-riscv64-generic-fw_dynamic.bin"
+tools:
+  qemu: /usr/bin/qemu-system-riscv64
+imports:
+  -  ../strategy.py
diff --git a/test/riscv/tinyemu at virt32_defconfig.yaml b/test/riscv/tinyemu at virt32_defconfig.yaml
new file mode 100644
index 000000000000..1102f36aca2b
--- /dev/null
+++ b/test/riscv/tinyemu at virt32_defconfig.yaml
@@ -0,0 +1,22 @@
+targets:
+  main:
+    drivers:
+      TinyEMUDriver: # not yet supported by labgrid, only for interactive use
+        temu_bin: temu
+        config: ./Documentation/boards/riscv/barebox-virt32.cfg
+        image: barebox-dt-2nd.img
+      BareboxDriver:
+        prompt: 'barebox@[^:]+:[^ ]+ '
+        bootstring: 'commandline:'
+      BareboxTestStrategy: {}
+    features:
+      - virtio-mmio
+    runner:
+      download:
+        bbl32.bin: https://barebox.org/jsbarebox/bbl32.bin
+images:
+  barebox-dt-2nd.img: !template "$LG_BUILDDIR/images/barebox-dt-2nd.img"
+tools:
+  temu: /usr/local/bin/temu
+imports:
+  -  ../strategy.py
diff --git a/test/riscv/tinyemu at virt64_defconfig.yaml b/test/riscv/tinyemu at virt64_defconfig.yaml
new file mode 100644
index 000000000000..e9624160ef0a
--- /dev/null
+++ b/test/riscv/tinyemu at virt64_defconfig.yaml
@@ -0,0 +1,22 @@
+targets:
+  main:
+    drivers:
+      TinyEMUDriver: # not yet supported by labgrid, only for interactive use
+        temu_bin: temu
+        config: ./Documentation/boards/riscv/barebox-virt64.cfg
+        image: barebox-dt-2nd.img
+      BareboxDriver:
+        prompt: 'barebox@[^:]+:[^ ]+ '
+        bootstring: 'commandline:'
+      BareboxTestStrategy: {}
+    features:
+      - virtio-mmio
+    runner:
+      download:
+        bbl64.bin: https://barebox.org/jsbarebox/bbl64.bin
+images:
+  barebox-dt-2nd.img: !template "$LG_BUILDDIR/images/barebox-dt-2nd.img"
+tools:
+  temu: /usr/local/bin/temu
+imports:
+  -  ../strategy.py
diff --git a/test/riscv/virt32_defconfig.yaml b/test/riscv/virt32_defconfig.yaml
new file mode 120000
index 000000000000..e9d7237f5339
--- /dev/null
+++ b/test/riscv/virt32_defconfig.yaml
@@ -0,0 +1 @@
+qemu at virt32_defconfig.yaml
\ No newline at end of file
diff --git a/test/riscv/virt64_defconfig.yaml b/test/riscv/virt64_defconfig.yaml
new file mode 120000
index 000000000000..ab419d5e7fb4
--- /dev/null
+++ b/test/riscv/virt64_defconfig.yaml
@@ -0,0 +1 @@
+qemu at virt64_defconfig.yaml
\ No newline at end of file
diff --git a/test/sandbox/sandbox_defconfig.yaml b/test/sandbox/sandbox_defconfig.yaml
new file mode 100644
index 000000000000..784f49146605
--- /dev/null
+++ b/test/sandbox/sandbox_defconfig.yaml
@@ -0,0 +1,12 @@
+targets:
+  main:
+    drivers:
+      NativeExecutableDriver: # not yet supported by labgrid, only for interactive use
+        command: ./barebox
+        image: barebox
+    runner:
+      tuxmake_arch: um
+images:
+  barebox: !template "$LG_BUILDDIR/barebox"
+tools:
+  qemu: /usr/local/bin/temu
diff --git a/test/x86/efi_defconfig.yaml b/test/x86/efi_defconfig.yaml
new file mode 120000
index 000000000000..942dc259d56b
--- /dev/null
+++ b/test/x86/efi_defconfig.yaml
@@ -0,0 +1 @@
+pc at efi_defconfig.yaml
\ No newline at end of file
diff --git a/test/x86/pc at efi_defconfig.yaml b/test/x86/pc at efi_defconfig.yaml
new file mode 100644
index 000000000000..280f5dcee9a6
--- /dev/null
+++ b/test/x86/pc at efi_defconfig.yaml
@@ -0,0 +1,31 @@
+targets:
+  main:
+    drivers:
+      QEMUDriver:
+        qemu_bin: qemu
+        machine: pc
+        cpu: Nehalem
+        memory: 1024M
+        kernel: barebox.efi
+        bios: OVMF.fd
+        extra_args: ''
+      BareboxDriver:
+        prompt: 'barebox@[^:]+:[^ ]+ '
+        bootstring: 'commandline:'
+      BareboxTestStrategy: {}
+    features:
+      - pci
+    runner:
+      tuxmake_arch: x86_64
+      kconfig_add:
+        - CONFIG_DRIVER_SERIAL_NS16550=y
+        - CONFIG_CONSOLE_ACTIVATE_FIRST=y # avoid duplicate output
+      download:
+        OVMF.fd: /usr/share/qemu/OVMF.fd
+images:
+  barebox.efi: !template "$LG_BUILDDIR/barebox.efi"
+  OVMF.fd: !template "$LG_BUILDDIR/OVMF.fd"
+tools:
+  qemu: /usr/bin/qemu-system-x86_64
+imports:
+  -  ../strategy.py
diff --git a/test/x86/q35 at efi_defconfig.yaml b/test/x86/q35 at efi_defconfig.yaml
new file mode 100644
index 000000000000..dcb3f604c0ac
--- /dev/null
+++ b/test/x86/q35 at efi_defconfig.yaml
@@ -0,0 +1,31 @@
+targets:
+  main:
+    drivers:
+      QEMUDriver:
+        qemu_bin: qemu
+        machine: q35
+        cpu: Nehalem
+        memory: 1024M
+        kernel: barebox.efi
+        bios: OVMF.fd
+        extra_args: -global ICH9-LPC.noreboot=false
+      BareboxDriver:
+        prompt: 'barebox@[^:]+:[^ ]+ '
+        bootstring: 'commandline:'
+      BareboxTestStrategy: {}
+    features:
+      - pci
+    runner:
+      tuxmake_arch: x86_64
+      kconfig_add:
+        - CONFIG_DRIVER_SERIAL_NS16550=y
+        - CONFIG_CONSOLE_ACTIVATE_FIRST=y # avoid duplicate output
+      download:
+        OVMF.fd: /usr/share/qemu/OVMF.fd
+images:
+  barebox.efi: !template "$LG_BUILDDIR/barebox.efi"
+  OVMF.fd: !template "$LG_BUILDDIR/OVMF.fd"
+tools:
+  qemu: /usr/bin/qemu-system-x86_64
+imports:
+  -  ../strategy.py
diff --git a/test/x86/virtio at efi_defconfig.yaml b/test/x86/virtio at efi_defconfig.yaml
new file mode 100644
index 000000000000..326fcbc68999
--- /dev/null
+++ b/test/x86/virtio at efi_defconfig.yaml
@@ -0,0 +1,32 @@
+targets:
+  main:
+    drivers:
+      QEMUDriver:
+        qemu_bin: qemu
+        machine: pc
+        cpu: Nehalem
+        memory: 1024M
+        kernel: barebox.efi
+        bios: OVMF.fd
+        extra_args: ''
+      BareboxDriver:
+        prompt: 'barebox@[^:]+:[^ ]+ '
+        bootstring: 'commandline:'
+      BareboxTestStrategy: {}
+    features:
+      - virtio-pci
+    runner:
+      tuxmake_arch: x86_64
+      kconfig_add:
+        - test/kconfig/virtio-pci.cfg
+        - CONFIG_DRIVER_SERIAL_NS16550=y
+        - CONFIG_CONSOLE_ACTIVATE_FIRST=y # avoid duplicate output
+      download:
+        OVMF.fd: /usr/share/qemu/OVMF.fd
+images:
+  barebox.efi: !template "$LG_BUILDDIR/barebox.efi"
+  OVMF.fd: !template "$LG_BUILDDIR/OVMF.fd"
+tools:
+  qemu: /usr/bin/qemu-system-x86_64
+imports:
+  -  ../strategy.py
-- 
2.29.2




More information about the barebox mailing list