On 12/17/20 4:36 AM, Jiaxun Yang wrote: > 在 2020/12/17 上午2:17, Philippe Mathieu-Daudé 写道: >> Test the PMON firmware. As the firmware is not redistributable, >> it has to be downloaded manually first. Then it can be used by >> providing its path via the PMON_PATH environment variable: > > We have a PMON port for loongson3-virt machine[1] and it's redistributable. > > You can also fetch prebuilt binary from GitHub action artifacts, I can > also make > a release on GitHub to make it easier.
It would be easier indeed, because I can not fetch a job artifact without using credential. Maybe we can, but I already exhausted the time I had to test Huacai series, so for now I'll start with offline testing. > > Thanks. > > [1] https://github.com/loongson-community/pmon > > - Jiaxun >> >> $ AVOCADO_ALLOW_UNTRUSTED_CODE=1 \ >> PMON_PATH=/images/pmon \ >> avocado --show=app,console \ >> run -t machine:loongson3-virt tests/acceptance >> JOB ID : 363e66a2d20b1c0e3f515653f9137483b83b2984 >> JOB LOG : >> /home/phil/avocado/job-results/job-2020-12-16T19.02-363e66a/job.log >> (1/2) >> tests/acceptance/machine_mips_fuloong3.py:MipsFuloong3.test_pmon_BLD_serial_console: >> >> console: PMON2000 MIPS Initializing. Standby... >> console: 00000000 >> console: Shut down other cores >> console: 0xbfe00190 : 0000000000000000 >> console: CPU CLK SEL : 00000000 >> console: MEM CLK SEL : 00000000 >> console: Change the driver >> console: Soft CLK SEL adjust begin >> console: HT :00000000 >> console: DDR_DIV:00000002 >> console: BBGEN start : >> console: BBGEN config value :00000000 >> console: MC RESET >> console: Fix L1xbar illegal access at NODE 0 >> console: Fix L2xbar in NODE 0 >> console: 32 bit PCI space translate to 64 bit HT space >> console: Waiting HyperTransport bus to be up. >> PASS (0.10 s) >> (2/2) >> tests/acceptance/machine_mips_fuloong3.py:MipsFuloong3.test_pmon_A1101_serial_console: >> >> console: PMON2000 MIPS Initializing. Standby... >> console: 0xbfe00190 : 0000000000000000 >> console: CPU CLK SEL : 00000000 >> console: CPU clk frequency = SYSCLK x 0x0000001e / 1 >> console: MEM CLK SEL : 00000000 >> console: DDR clk frequency = MEMCLK x 0x0000001e / 3 >> console: Fix L1xbar illegal access >> console: Fix L2xbar illegal access >> console: Init tlb... >> console: godson2 caches found >> PASS (0.12 s) >> RESULTS : PASS 2 | ERROR 0 | FAIL 0 | SKIP 0 | WARN 0 | >> INTERRUPT 0 | CANCEL 0 >> JOB TIME : 0.58 s >> >> Signed-off-by: Philippe Mathieu-Daudé <f4...@amsat.org> >> --- >> Based-on: <20201215125716.477023-1-chenhua...@kernel.org> >> --- >> MAINTAINERS | 1 + >> tests/acceptance/machine_mips_loongson3v.py | 66 +++++++++++++++++++++ >> 2 files changed, 67 insertions(+) >> create mode 100644 tests/acceptance/machine_mips_loongson3v.py >> >> diff --git a/MAINTAINERS b/MAINTAINERS >> index f75fa2a7142..9a02d44f997 100644 >> --- a/MAINTAINERS >> +++ b/MAINTAINERS >> @@ -1166,6 +1166,7 @@ M: Huacai Chen <chenhua...@kernel.org> >> R: Jiaxun Yang <jiaxun.y...@flygoat.com> >> S: Maintained >> F: hw/intc/loongson_liointc.c >> +F: tests/acceptance/machine_mips_loongson3v.py >> Boston >> M: Paul Burton <paulbur...@kernel.org> >> diff --git a/tests/acceptance/machine_mips_loongson3v.py >> b/tests/acceptance/machine_mips_loongson3v.py >> new file mode 100644 >> index 00000000000..8e698bbc99b >> --- /dev/null >> +++ b/tests/acceptance/machine_mips_loongson3v.py >> @@ -0,0 +1,66 @@ >> +# Functional tests for the Generic Loongson-3 Platform. >> +# >> +# Copyright (c) 2020 Philippe Mathieu-Daudé <f4...@amsat.org> >> +# >> +# This work is licensed under the terms of the GNU GPL, version 2 or >> later. >> +# See the COPYING file in the top-level directory. >> +# >> +# SPDX-License-Identifier: GPL-2.0-or-later >> + >> +import os >> +import time >> + >> +from avocado import skipUnless >> +from avocado_qemu import Test >> +from avocado_qemu import wait_for_console_pattern >> + >> +class MipsFuloong3(Test): >> + >> + timeout = 60 >> + >> + @skipUnless(os.getenv('PMON_PATH'), 'PMON_PATH not available') >> + @skipUnless(os.getenv('AVOCADO_ALLOW_UNTRUSTED_CODE'), 'untrusted >> code') >> + def test_pmon_BLD_serial_console(self): >> + """ >> + :avocado: tags=arch:mips64el >> + :avocado: tags=endian:little >> + :avocado: tags=machine:loongson3-virt >> + :avocado: tags=cpu:Loongson-3A1000 >> + :avocado: tags=device:liointc >> + :avocado: tags=device:goldfish_rtc >> + """ >> + pmon_name = 'pmon_BLD-3A3000-780EMATX-1w-V1.10.bin' >> + pmon_hash = '38916ee03ed09a86997b40c687c83e92' >> + pmon_path = self.fetch_asset('file://' + os.path.join( >> + os.getenv('PMON_PATH'), >> pmon_name), >> + asset_hash=pmon_hash, >> algorithm='md5') >> + >> + self.vm.set_console() >> + self.vm.add_args('-bios', pmon_path) >> + self.vm.launch() >> + wait_for_console_pattern(self, 'PMON2000 MIPS Initializing. >> Standby...') >> + wait_for_console_pattern(self, 'Shut down other cores') >> + wait_for_console_pattern(self, 'Waiting HyperTransport bus to >> be up.') >> + >> + @skipUnless(os.getenv('PMON_PATH'), 'PMON_PATH not available') >> + @skipUnless(os.getenv('AVOCADO_ALLOW_UNTRUSTED_CODE'), 'untrusted >> code') >> + def test_pmon_A1101_serial_console(self): >> + """ >> + :avocado: tags=arch:mips64el >> + :avocado: tags=endian:little >> + :avocado: tags=machine:loongson3-virt >> + :avocado: tags=cpu:Loongson-3A1000 >> + :avocado: tags=device:liointc >> + :avocado: tags=device:goldfish_rtc >> + """ >> + pmon_name = 'pmon-A1101-2.0.8.bin' >> + pmon_hash = 'cc40276213cfa20922720f183b92ab61' >> + pmon_path = self.fetch_asset('file://' + os.path.join( >> + os.getenv('PMON_PATH'), >> pmon_name), >> + asset_hash=pmon_hash, >> algorithm='md5') >> + >> + self.vm.set_console() >> + self.vm.add_args('-bios', pmon_path) >> + self.vm.launch() >> + wait_for_console_pattern(self, 'PMON2000 MIPS Initializing. >> Standby...') >> + wait_for_console_pattern(self, 'godson2 caches found') >