[PATCH v2 09/13] test: add labgrid configs for some emulated targets
Ahmad Fatoum
a.fatoum at pengutronix.de
Wed Jun 2 04:34:14 PDT 2021
Hi,
On 02.06.21 13:27, Rouven Czerwinski wrote:
> On Mon, 2021-05-31 at 08:55 +0200, Ahmad Fatoum wrote:
>> 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 YAML files can be parsed by labgrid for running tests or executed
>> by a new test/emulate.pl runner script that will be added in a follow-up
>> commit.
>>
>> Using labgrid for this will allow using the same test suite for physical
>> targets as well in future.
>>
> All of these targets use a Shelldriver, but it is used only to satisfy
> the BareboxStrategy. Scrap the ShellDriver and write a short strategy
> or scrap the strategy as well or wholesale remove strategy usage
> alltogether. Since all thats done is activating the BareboxDriver, this
> should be doable without a strategy.
1) I get by with copy-pasting. Can you point me to an example of how that
strategy or lack thereof should look like?
2) I want to actually test boots later on, mainly barebox image booting
another, but I coud imagine loading a FIT and booting that as well.
In that case I would need the ShellDriver, so why do extra work to
remove it and add it again later?
Cheers,
Ahmad
>
>> + BareboxStrategy: {}
>> +images:
>> + barebox-vexpress-ca15.img: $LG_BUILDDIR/images/barebox-vexpress-ca15.img
>> +tools:
>> + qemu: /usr/bin/qemu-system-arm
>> diff --git a/test/arm/a9 at vexpress_defconfig.yaml b/test/arm/a9 at vexpress_defconfig.yaml
>> new file mode 100644
>> index 000000000000..88e09ca052e6
>> --- /dev/null
>> +++ b/test/arm/a9 at vexpress_defconfig.yaml
>> @@ -0,0 +1,23 @@
>> +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:'
>> + ShellDriver:
>> + prompt: 'root@\w+:[^ ]+ '
>> + login_prompt: ' login: '
>> + login_timeout: 90
>> + username: 'root'
>> + BareboxStrategy: {}
>> +images:
>> + barebox-vexpress-ca9.img: $LG_BUILDDIR/images/barebox-vexpress-ca9.img
>> +tools:
>> + qemu: /usr/bin/qemu-system-arm
>> diff --git a/test/arm/qemu_virt64_defconfig.yaml b/test/arm/qemu_virt64_defconfig.yaml
>> new file mode 100644
>> index 000000000000..2dfaaedef61a
>> --- /dev/null
>> +++ b/test/arm/qemu_virt64_defconfig.yaml
>> @@ -0,0 +1,27 @@
>> +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:'
>> + ShellDriver:
>> + prompt: 'root@\w+:[^ ]+ '
>> + login_prompt: ' login: '
>> + login_timeout: 90
>> + username: 'root'
>> + BareboxStrategy: {}
>> + features:
>> + - virtio-mmio
>> + runner:
>> + tuxmake_arch: arm64
>> +images:
>> + barebox-dt-2nd.img: $LG_BUILDDIR/images/barebox-dt-2nd.img
>> +tools:
>> + qemu: /usr/bin/qemu-system-aarch64
>> 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..9c2e727c9cb5
>> --- /dev/null
>> +++ b/test/arm/virt at vexpress_defconfig.yaml
>> @@ -0,0 +1,25 @@
>> +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:'
>> + ShellDriver:
>> + prompt: 'root@\w+:[^ ]+ '
>> + login_prompt: ' login: '
>> + login_timeout: 90
>> + username: 'root'
>> + BareboxStrategy: {}
>> + features:
>> + - virtio-mmio
>> +images:
>> + barebox-dt-2nd.img: $LG_BUILDDIR/images/barebox-dt-2nd.img
>> +tools:
>> + qemu: /usr/bin/qemu-system-arm
>> 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..5217a6ec2a13
>> --- /dev/null
>> +++ b/test/mips/be 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
>> + extra_args: ''
>> + BareboxDriver:
>> + prompt: 'barebox@[^:]+:[^ ]+ '
>> + bootstring: 'commandline:'
>> + ShellDriver:
>> + prompt: 'root@\w+:[^ ]+ '
>> + login_prompt: ' login: '
>> + login_timeout: 90
>> + username: 'root'
>> + BareboxStrategy: {}
>> + features:
>> + - virtio-pci
>> +images:
>> + barebox-qemu-malta.img: $LG_BUILDDIR/images/barebox-qemu-malta.img
>> +tools:
>> + qemu: /usr/bin/qemu-system-mips
>> 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..3b0f557dde5b
>> --- /dev/null
>> +++ b/test/mips/le at qemu-malta_defconfig.yaml
>> @@ -0,0 +1,28 @@
>> +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:'
>> + ShellDriver:
>> + prompt: 'root@\w+:[^ ]+ '
>> + login_prompt: ' login: '
>> + login_timeout: 90
>> + username: 'root'
>> + BareboxStrategy: {}
>> + features:
>> + - virtio-pci
>> + runner:
>> + kconfig_add:
>> + - CONFIG_CPU_LITTLE_ENDIAN=y
>> +images:
>> + barebox-qemu-malta.img.swapped: $LG_BUILDDIR/images/barebox-qemu-malta.img.swapped
>> +tools:
>> + qemu: /usr/bin/qemu-system-mipsel
>> 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..ece54da1c191
>> --- /dev/null
>> +++ b/test/openrisc/generic_defconfig.yaml
>> @@ -0,0 +1,23 @@
>> +targets:
>> + main:
>> + drivers:
>> + QEMUDriver:
>> + qemu_bin: qemu
>> + machine: or1k-sim
>> + cpu: or1200
>> + memory: 256M
>> + kernel: barebox
>> + extra_args: ''
>> + BareboxDriver:
>> + prompt: 'barebox@[^:]+:[^ ]+ '
>> + bootstring: 'commandline:'
>> + ShellDriver:
>> + prompt: 'root@\w+:[^ ]+ '
>> + login_prompt: ' login: '
>> + login_timeout: 90
>> + username: 'root'
>> + BareboxStrategy: {}
>> +images:
>> + barebox: $LG_BUILDDIR/barebox
>> +tools:
>> + qemu: /usr/bin/qemu-system-or1k
>> diff --git a/test/riscv/qemu at virt32_defconfig.yaml b/test/riscv/qemu at virt32_defconfig.yaml
>> new file mode 100644
>> index 000000000000..d879ac6880a7
>> --- /dev/null
>> +++ b/test/riscv/qemu at virt32_defconfig.yaml
>> @@ -0,0 +1,30 @@
>> +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:'
>> + ShellDriver:
>> + prompt: 'root@\w+:[^ ]+ '
>> + login_prompt: ' login: '
>> + login_timeout: 90
>> + username: 'root'
>> + BareboxStrategy: {}
>> + 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: $LG_BUILDDIR/images/barebox-dt-2nd.img
>> + opensbi-riscv32-generic-fw_dynamic.bin: $LG_BUILDDIR/opensbi-riscv32-generic-fw_dynamic.bin
>> +tools:
>> + qemu: /usr/bin/qemu-system-riscv32
>> diff --git a/test/riscv/qemu at virt64_defconfig.yaml b/test/riscv/qemu at virt64_defconfig.yaml
>> new file mode 100644
>> index 000000000000..5102f9067e1b
>> --- /dev/null
>> +++ b/test/riscv/qemu at virt64_defconfig.yaml
>> @@ -0,0 +1,30 @@
>> +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:'
>> + ShellDriver:
>> + prompt: 'root@\w+:[^ ]+ '
>> + login_prompt: ' login: '
>> + login_timeout: 90
>> + username: 'root'
>> + BareboxStrategy: {}
>> + 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: $LG_BUILDDIR/images/barebox-dt-2nd.img
>> + opensbi-riscv64-generic-fw_dynamic.bin: $LG_BUILDDIR/opensbi-riscv64-generic-fw_dynamic.bin
>> +tools:
>> + qemu: /usr/bin/qemu-system-riscv64
>> diff --git a/test/riscv/sifive_defconfig.yaml b/test/riscv/sifive_defconfig.yaml
>> new file mode 100644
>> index 000000000000..534d7b8b044a
>> --- /dev/null
>> +++ b/test/riscv/sifive_defconfig.yaml
>> @@ -0,0 +1,28 @@
>> +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:'
>> + ShellDriver:
>> + prompt: 'root@\w+:[^ ]+ '
>> + login_prompt: ' login: '
>> + login_timeout: 90
>> + username: 'root'
>> + BareboxStrategy: {}
>> + 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: $LG_BUILDDIR/images/barebox-hifive-unleashed.img
>> + opensbi-riscv64-generic-fw_dynamic.bin: $LG_BUILDDIR/opensbi-riscv64-generic-fw_dynamic.bin
>> +tools:
>> + qemu: /usr/bin/qemu-system-riscv64
>> diff --git a/test/riscv/tinyemu at virt32_defconfig.yaml b/test/riscv/tinyemu at virt32_defconfig.yaml
>> new file mode 100644
>> index 000000000000..807a8ce47145
>> --- /dev/null
>> +++ b/test/riscv/tinyemu at virt32_defconfig.yaml
>> @@ -0,0 +1,25 @@
>> +targets:
>> + main:
>> + drivers:
>> + TinyEMUDriver:
>> + temu_bin: temu
>> + config: ./Documentation/boards/riscv/barebox-virt32.cfg
>> + image: barebox-dt-2nd.img
>> + BareboxDriver:
>> + prompt: 'barebox@[^:]+:[^ ]+ '
>> + bootstring: 'commandline:'
>> + ShellDriver:
>> + prompt: 'root@\w+:[^ ]+ '
>> + login_prompt: ' login: '
>> + login_timeout: 90
>> + username: 'root'
>> + BareboxStrategy: {}
>> + features:
>> + - virtio-mmio
>> + runner:
>> + download:
>> + bbl32.bin: https://barebox.org/jsbarebox/bbl32.bin
>> +images:
>> + barebox-dt-2nd.img: $LG_BUILDDIR/images/barebox-dt-2nd.img
>> +tools:
>> + temu: /usr/local/bin/temu
>> diff --git a/test/riscv/tinyemu at virt64_defconfig.yaml b/test/riscv/tinyemu at virt64_defconfig.yaml
>> new file mode 100644
>> index 000000000000..58277d1ce0dc
>> --- /dev/null
>> +++ b/test/riscv/tinyemu at virt64_defconfig.yaml
>> @@ -0,0 +1,25 @@
>> +targets:
>> + main:
>> + drivers:
>> + TinyEMUDriver:
>> + temu_bin: temu
>> + config: ./Documentation/boards/riscv/barebox-virt64.cfg
>> + image: barebox-dt-2nd.img
>> + BareboxDriver:
>> + prompt: 'barebox@[^:]+:[^ ]+ '
>> + bootstring: 'commandline:'
>> + ShellDriver:
>> + prompt: 'root@\w+:[^ ]+ '
>> + login_prompt: ' login: '
>> + login_timeout: 90
>> + username: 'root'
>> + BareboxStrategy: {}
>> + features:
>> + - virtio-mmio
>> + runner:
>> + download:
>> + bbl64.bin: https://barebox.org/jsbarebox/bbl64.bin
>> +images:
>> + barebox-dt-2nd.img: $LG_BUILDDIR/images/barebox-dt-2nd.img
>> +tools:
>> + temu: /usr/local/bin/temu
>> 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..68826e8b5830
>> --- /dev/null
>> +++ b/test/sandbox/sandbox_defconfig.yaml
>> @@ -0,0 +1,12 @@
>> +targets:
>> + main:
>> + drivers:
>> + NativeExecutableDriver:
>> + command: ./barebox
>> + image: barebox
>> + runner:
>> + tuxmake_arch: um
>> +images:
>> + barebox: $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..923b0680fff2
>> --- /dev/null
>> +++ b/test/x86/pc at efi_defconfig.yaml
>> @@ -0,0 +1,34 @@
>> +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:'
>> + ShellDriver:
>> + prompt: 'root@\w+:[^ ]+ '
>> + login_prompt: ' login: '
>> + login_timeout: 90
>> + username: 'root'
>> + BareboxStrategy: {}
>> + 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: $LG_BUILDDIR/barebox.efi
>> + OVMF.fd: $LG_BUILDDIR/OVMF.fd
>> +tools:
>> + qemu: /usr/bin/qemu-system-x86_64
>> diff --git a/test/x86/q35 at efi_defconfig.yaml b/test/x86/q35 at efi_defconfig.yaml
>> new file mode 100644
>> index 000000000000..1cfbd9fd88e3
>> --- /dev/null
>> +++ b/test/x86/q35 at efi_defconfig.yaml
>> @@ -0,0 +1,34 @@
>> +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:'
>> + ShellDriver:
>> + prompt: 'root@\w+:[^ ]+ '
>> + login_prompt: ' login: '
>> + login_timeout: 90
>> + username: 'root'
>> + BareboxStrategy: {}
>> + 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: $LG_BUILDDIR/barebox.efi
>> + OVMF.fd: $LG_BUILDDIR/OVMF.fd
>> +tools:
>> + qemu: /usr/bin/qemu-system-x86_64
>> diff --git a/test/x86/virtio at efi_defconfig.yaml b/test/x86/virtio at efi_defconfig.yaml
>> new file mode 100644
>> index 000000000000..3c9a9ae51e23
>> --- /dev/null
>> +++ b/test/x86/virtio at efi_defconfig.yaml
>> @@ -0,0 +1,35 @@
>> +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:'
>> + ShellDriver:
>> + prompt: 'root@\w+:[^ ]+ '
>> + login_prompt: ' login: '
>> + login_timeout: 90
>> + username: 'root'
>> + BareboxStrategy: {}
>> + 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: $LG_BUILDDIR/barebox.efi
>> + OVMF.fd: $LG_BUILDDIR/OVMF.fd
>> +tools:
>> + qemu: /usr/bin/qemu-system-x86_64
>
>
>
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the barebox
mailing list