This test is used to do a quick sanity check to ensure that we're able
to run the existing QEMU FW image.
'sifive_u', 'spike' and 'virt' riscv64 machines, and 'sifive_u' and
'virt' 32 bit machines are able to run the default RISCV64_BIOS_BIN |
RISCV32_BIOS_BIN firmware with minimal options.
The riscv32 'spike' machine isn't bootable at this moment, requiring an
OpenSBI fix [1] and QEMU side changes [2]. We could just leave at that
or add a 'skip' test to remind us about it. To work as a reminder that
we have a riscv32 'spike' test that should be enabled as soon as OpenSBI
QEMU rom receives the fix, we're adding a 'skip' test:
(06/18) tests/avocado/riscv_opensbi.py:RiscvOpenSBI.test_riscv32_spike:
        SKIP: requires OpenSBI fix to work
[1] https://patchwork.ozlabs.org/project/opensbi/patch/20221226033603.1860569-1-bmeng@tinylab.org/
[2] https://patchwork.ozlabs.org/project/qemu-devel/list/?series=334159
Cc: Cleber Rosa <crosa@redhat.com>
Cc: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Bin Meng <bmeng@tinylab.org>
Tested-by: Bin Meng <bmeng@tinylab.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
Acked-by: Alistair Francis <alistair.francis@wdc.com>
Message-Id: <20230102115241.25733-2-dbarboza@ventanamicro.com>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
		
	
			
		
			
				
	
	
		
			66 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
# OpenSBI boot test for RISC-V machines
 | 
						|
#
 | 
						|
# Copyright (c) 2022, Ventana Micro
 | 
						|
#
 | 
						|
# This work is licensed under the terms of the GNU GPL, version 2 or
 | 
						|
# later.  See the COPYING file in the top-level directory.
 | 
						|
 | 
						|
from avocado_qemu import QemuSystemTest
 | 
						|
from avocado import skip
 | 
						|
from avocado_qemu import wait_for_console_pattern
 | 
						|
 | 
						|
class RiscvOpenSBI(QemuSystemTest):
 | 
						|
    """
 | 
						|
    :avocado: tags=accel:tcg
 | 
						|
    """
 | 
						|
    timeout = 5
 | 
						|
 | 
						|
    def boot_opensbi(self):
 | 
						|
        self.vm.set_console()
 | 
						|
        self.vm.launch()
 | 
						|
        wait_for_console_pattern(self, 'Platform Name')
 | 
						|
        wait_for_console_pattern(self, 'Boot HART MEDELEG')
 | 
						|
 | 
						|
    @skip("requires OpenSBI fix to work")
 | 
						|
    def test_riscv32_spike(self):
 | 
						|
        """
 | 
						|
        :avocado: tags=arch:riscv32
 | 
						|
        :avocado: tags=machine:spike
 | 
						|
        """
 | 
						|
        self.boot_opensbi()
 | 
						|
 | 
						|
    def test_riscv64_spike(self):
 | 
						|
        """
 | 
						|
        :avocado: tags=arch:riscv64
 | 
						|
        :avocado: tags=machine:spike
 | 
						|
        """
 | 
						|
        self.boot_opensbi()
 | 
						|
 | 
						|
    def test_riscv32_sifive_u(self):
 | 
						|
        """
 | 
						|
        :avocado: tags=arch:riscv32
 | 
						|
        :avocado: tags=machine:sifive_u
 | 
						|
        """
 | 
						|
        self.boot_opensbi()
 | 
						|
 | 
						|
    def test_riscv64_sifive_u(self):
 | 
						|
        """
 | 
						|
        :avocado: tags=arch:riscv64
 | 
						|
        :avocado: tags=machine:sifive_u
 | 
						|
        """
 | 
						|
        self.boot_opensbi()
 | 
						|
 | 
						|
    def test_riscv32_virt(self):
 | 
						|
        """
 | 
						|
        :avocado: tags=arch:riscv32
 | 
						|
        :avocado: tags=machine:virt
 | 
						|
        """
 | 
						|
        self.boot_opensbi()
 | 
						|
 | 
						|
    def test_riscv64_virt(self):
 | 
						|
        """
 | 
						|
        :avocado: tags=arch:riscv64
 | 
						|
        :avocado: tags=machine:virt
 | 
						|
        """
 | 
						|
        self.boot_opensbi()
 |