Re: [PATCH] tests/acceptance: Test PMON with Loongson-3A1000 CPU
On 1/19/21 7:59 AM, Jiaxun Yang wrote: > On Tue, Jan 19, 2021, at 1:57 PM, Philippe Mathieu-Daudé wrote: >> On 1/18/21 5:54 PM, Alex Bennée wrote: >>> Philippe Mathieu-Daudé writes: On 1/12/21 3:07 AM, Jiaxun Yang wrote: > Test booting of PMON bootloader on loongson3-virt platform. > > $ (venv) AVOCADO_ALLOW_UNTRUSTED_CODE=1 \ > avocado --show=app,console \ > run -t machine:loongson3-virt tests/acceptance > Fetching asset from > tests/acceptance/machine_mips_loongson3v.py:MipsLoongson3v.test_pmon_serial_console > JOB ID : 8e202b3727847c9104d0d3d6546ed225d35f6706 > JOB LOG: > /home/flygoat/avocado/job-results/job-2021-01-12T10.02-8e202b3/job.log ... > console: This software may be redistributed under the BSD copyright. > console: Copyright 2000-2002, Opsycon AB, Sweden. > console: Copyright 2005, ICT CAS. > console: CPU GODSON3 BogoMIPS: 1327 > PASS (3.89 s) > RESULTS: PASS 1 | ERROR 0 | FAIL 0 | SKIP 0 | WARN 0 | INTERRUPT 0 | > CANCEL 0 > JOB TIME : 4.38 s > > Signed-off-by: Jiaxun Yang > --- > MAINTAINERS | 1 + > tests/acceptance/machine_mips_loongson3v.py | 39 + > 2 files changed, 40 insertions(+) > create mode 100644 tests/acceptance/machine_mips_loongson3v.py > > diff --git a/MAINTAINERS b/MAINTAINERS > index 4be087b88e..f38882f997 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -1164,6 +1164,7 @@ F: hw/intc/loongson_liointc.c > F: hw/mips/loongson3_bootp.c > F: hw/mips/loongson3_bootp.h > F: hw/mips/loongson3_virt.c > +F: tests/acceptance/machine_mips_loongson3v.py > > Boston > M: Paul Burton > diff --git a/tests/acceptance/machine_mips_loongson3v.py > b/tests/acceptance/machine_mips_loongson3v.py > new file mode 100644 > index 00..17a85de69f > --- /dev/null > +++ b/tests/acceptance/machine_mips_loongson3v.py > @@ -0,0 +1,39 @@ > +# Functional tests for the Generic Loongson-3 Platform. > +# > +# Copyright (c) 2020 Philippe Mathieu-Daudé 2021 Jiaxun Yang ? :D >> >> Jiaxun, if you agree I can update that line and queue your patch. > > Please do. Thanks! So: Tested-by: Philippe Mathieu-Daudé Reviewed-by: Philippe Mathieu-Daudé and applied (not removing AVOCADO_ALLOW_UNTRUSTED_CODE, fixing copyright line) to mips-next. Thanks, Phil.
Re: [PATCH] tests/acceptance: Test PMON with Loongson-3A1000 CPU
On Tue, Jan 19, 2021, at 1:57 PM, Philippe Mathieu-Daudé wrote: > On 1/18/21 5:54 PM, Alex Bennée wrote: > > Philippe Mathieu-Daudé writes: > >> On 1/12/21 3:07 AM, Jiaxun Yang wrote: > >>> Test booting of PMON bootloader on loongson3-virt platform. > >>> > >>> $ (venv) AVOCADO_ALLOW_UNTRUSTED_CODE=1 \ > >>> avocado --show=app,console \ > >>> run -t machine:loongson3-virt tests/acceptance > >>> Fetching asset from > >>> tests/acceptance/machine_mips_loongson3v.py:MipsLoongson3v.test_pmon_serial_console > >>> JOB ID : 8e202b3727847c9104d0d3d6546ed225d35f6706 > >>> JOB LOG: > >>> /home/flygoat/avocado/job-results/job-2021-01-12T10.02-8e202b3/job.log > >> ... > >>> console: This software may be redistributed under the BSD copyright. > >>> console: Copyright 2000-2002, Opsycon AB, Sweden. > >>> console: Copyright 2005, ICT CAS. > >>> console: CPU GODSON3 BogoMIPS: 1327 > >>> PASS (3.89 s) > >>> RESULTS: PASS 1 | ERROR 0 | FAIL 0 | SKIP 0 | WARN 0 | INTERRUPT 0 | > >>> CANCEL 0 > >>> JOB TIME : 4.38 s > >>> > >>> Signed-off-by: Jiaxun Yang > >>> --- > >>> MAINTAINERS | 1 + > >>> tests/acceptance/machine_mips_loongson3v.py | 39 + > >>> 2 files changed, 40 insertions(+) > >>> create mode 100644 tests/acceptance/machine_mips_loongson3v.py > >>> > >>> diff --git a/MAINTAINERS b/MAINTAINERS > >>> index 4be087b88e..f38882f997 100644 > >>> --- a/MAINTAINERS > >>> +++ b/MAINTAINERS > >>> @@ -1164,6 +1164,7 @@ F: hw/intc/loongson_liointc.c > >>> F: hw/mips/loongson3_bootp.c > >>> F: hw/mips/loongson3_bootp.h > >>> F: hw/mips/loongson3_virt.c > >>> +F: tests/acceptance/machine_mips_loongson3v.py > >>> > >>> Boston > >>> M: Paul Burton > >>> diff --git a/tests/acceptance/machine_mips_loongson3v.py > >>> b/tests/acceptance/machine_mips_loongson3v.py > >>> new file mode 100644 > >>> index 00..17a85de69f > >>> --- /dev/null > >>> +++ b/tests/acceptance/machine_mips_loongson3v.py > >>> @@ -0,0 +1,39 @@ > >>> +# Functional tests for the Generic Loongson-3 Platform. > >>> +# > >>> +# Copyright (c) 2020 Philippe Mathieu-Daudé > >> > >> 2021 Jiaxun Yang ? :D > > Jiaxun, if you agree I can update that line and queue your patch. Please do. Thanks! - Jiaxun > > >> > >>> +# > >>> +# 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 MipsLoongson3v(Test): > >>> +@skipUnless(os.getenv('AVOCADO_ALLOW_UNTRUSTED_CODE'), 'untrusted > >>> code') > >> > >> The source code is published [1], you provided reproducible > >> workflow [2] and a tag [3] with a public build artifacts [4], > >> so my understanding is this is "trustable" binary. > >> > >> Alex, would it be OK to add this test without the UNTRUSTED tag > >> (amending the links in the commit description)? > > > > It's a subjective call. Having open source code is a minimum step to > > being "trusted" but really the trust is in the community that hosts the > > code. The upstream distros (e.g. Debian/Fedora) are trusted because > > people install their software on their desktops and basically give the > > software publisher root on their machines. There has to be a level of > > trust that the distros won't abuse that to steal information from their > > users. > > > > I personally have no idea about the loongson community because it's not > > one I interact with so I have no idea what sort of place it is. Is it a > > code dump for semi-proprietary non-upstreamed kernels or is it a place > > that has a good development culture with a sane security process that is > > responsive to problems and moderately conservative with what they merge? > > > > If you would trust your keys to a machine running this communities > > software then by all means treated it as a trusted source. > > Subjective call understood :) > > Thanks for your clear explanation, > > Phil. > > -- - Jiaxun
Re: [PATCH] tests/acceptance: Test PMON with Loongson-3A1000 CPU
On 1/18/21 5:54 PM, Alex Bennée wrote: > Philippe Mathieu-Daudé writes: >> On 1/12/21 3:07 AM, Jiaxun Yang wrote: >>> Test booting of PMON bootloader on loongson3-virt platform. >>> >>> $ (venv) AVOCADO_ALLOW_UNTRUSTED_CODE=1 \ >>> avocado --show=app,console \ >>> run -t machine:loongson3-virt tests/acceptance >>> Fetching asset from >>> tests/acceptance/machine_mips_loongson3v.py:MipsLoongson3v.test_pmon_serial_console >>> JOB ID : 8e202b3727847c9104d0d3d6546ed225d35f6706 >>> JOB LOG: >>> /home/flygoat/avocado/job-results/job-2021-01-12T10.02-8e202b3/job.log >> ... >>> console: This software may be redistributed under the BSD copyright. >>> console: Copyright 2000-2002, Opsycon AB, Sweden. >>> console: Copyright 2005, ICT CAS. >>> console: CPU GODSON3 BogoMIPS: 1327 >>> PASS (3.89 s) >>> RESULTS: PASS 1 | ERROR 0 | FAIL 0 | SKIP 0 | WARN 0 | INTERRUPT 0 | >>> CANCEL 0 >>> JOB TIME : 4.38 s >>> >>> Signed-off-by: Jiaxun Yang >>> --- >>> MAINTAINERS | 1 + >>> tests/acceptance/machine_mips_loongson3v.py | 39 + >>> 2 files changed, 40 insertions(+) >>> create mode 100644 tests/acceptance/machine_mips_loongson3v.py >>> >>> diff --git a/MAINTAINERS b/MAINTAINERS >>> index 4be087b88e..f38882f997 100644 >>> --- a/MAINTAINERS >>> +++ b/MAINTAINERS >>> @@ -1164,6 +1164,7 @@ F: hw/intc/loongson_liointc.c >>> F: hw/mips/loongson3_bootp.c >>> F: hw/mips/loongson3_bootp.h >>> F: hw/mips/loongson3_virt.c >>> +F: tests/acceptance/machine_mips_loongson3v.py >>> >>> Boston >>> M: Paul Burton >>> diff --git a/tests/acceptance/machine_mips_loongson3v.py >>> b/tests/acceptance/machine_mips_loongson3v.py >>> new file mode 100644 >>> index 00..17a85de69f >>> --- /dev/null >>> +++ b/tests/acceptance/machine_mips_loongson3v.py >>> @@ -0,0 +1,39 @@ >>> +# Functional tests for the Generic Loongson-3 Platform. >>> +# >>> +# Copyright (c) 2020 Philippe Mathieu-Daudé >> >> 2021 Jiaxun Yang ? :D Jiaxun, if you agree I can update that line and queue your patch. >> >>> +# >>> +# 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 MipsLoongson3v(Test): >>> +@skipUnless(os.getenv('AVOCADO_ALLOW_UNTRUSTED_CODE'), 'untrusted >>> code') >> >> The source code is published [1], you provided reproducible >> workflow [2] and a tag [3] with a public build artifacts [4], >> so my understanding is this is "trustable" binary. >> >> Alex, would it be OK to add this test without the UNTRUSTED tag >> (amending the links in the commit description)? > > It's a subjective call. Having open source code is a minimum step to > being "trusted" but really the trust is in the community that hosts the > code. The upstream distros (e.g. Debian/Fedora) are trusted because > people install their software on their desktops and basically give the > software publisher root on their machines. There has to be a level of > trust that the distros won't abuse that to steal information from their > users. > > I personally have no idea about the loongson community because it's not > one I interact with so I have no idea what sort of place it is. Is it a > code dump for semi-proprietary non-upstreamed kernels or is it a place > that has a good development culture with a sane security process that is > responsive to problems and moderately conservative with what they merge? > > If you would trust your keys to a machine running this communities > software then by all means treated it as a trusted source. Subjective call understood :) Thanks for your clear explanation, Phil.
Re: [PATCH] tests/acceptance: Test PMON with Loongson-3A1000 CPU
Philippe Mathieu-Daudé writes: > Hi Jiaxun, Alex, > > On 1/12/21 3:07 AM, Jiaxun Yang wrote: >> Test booting of PMON bootloader on loongson3-virt platform. >> >> $ (venv) AVOCADO_ALLOW_UNTRUSTED_CODE=1 \ >> avocado --show=app,console \ >> run -t machine:loongson3-virt tests/acceptance >> Fetching asset from >> tests/acceptance/machine_mips_loongson3v.py:MipsLoongson3v.test_pmon_serial_console >> JOB ID : 8e202b3727847c9104d0d3d6546ed225d35f6706 >> JOB LOG: >> /home/flygoat/avocado/job-results/job-2021-01-12T10.02-8e202b3/job.log > ... >> console: This software may be redistributed under the BSD copyright. >> console: Copyright 2000-2002, Opsycon AB, Sweden. >> console: Copyright 2005, ICT CAS. >> console: CPU GODSON3 BogoMIPS: 1327 >> PASS (3.89 s) >> RESULTS: PASS 1 | ERROR 0 | FAIL 0 | SKIP 0 | WARN 0 | INTERRUPT 0 | >> CANCEL 0 >> JOB TIME : 4.38 s >> >> Signed-off-by: Jiaxun Yang >> --- >> MAINTAINERS | 1 + >> tests/acceptance/machine_mips_loongson3v.py | 39 + >> 2 files changed, 40 insertions(+) >> create mode 100644 tests/acceptance/machine_mips_loongson3v.py >> >> diff --git a/MAINTAINERS b/MAINTAINERS >> index 4be087b88e..f38882f997 100644 >> --- a/MAINTAINERS >> +++ b/MAINTAINERS >> @@ -1164,6 +1164,7 @@ F: hw/intc/loongson_liointc.c >> F: hw/mips/loongson3_bootp.c >> F: hw/mips/loongson3_bootp.h >> F: hw/mips/loongson3_virt.c >> +F: tests/acceptance/machine_mips_loongson3v.py >> >> Boston >> M: Paul Burton >> diff --git a/tests/acceptance/machine_mips_loongson3v.py >> b/tests/acceptance/machine_mips_loongson3v.py >> new file mode 100644 >> index 00..17a85de69f >> --- /dev/null >> +++ b/tests/acceptance/machine_mips_loongson3v.py >> @@ -0,0 +1,39 @@ >> +# Functional tests for the Generic Loongson-3 Platform. >> +# >> +# Copyright (c) 2020 Philippe Mathieu-Daudé > > 2021 Jiaxun Yang ? :D > >> +# >> +# 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 MipsLoongson3v(Test): >> +@skipUnless(os.getenv('AVOCADO_ALLOW_UNTRUSTED_CODE'), 'untrusted code') > > The source code is published [1], you provided reproducible > workflow [2] and a tag [3] with a public build artifacts [4], > so my understanding is this is "trustable" binary. > > Alex, would it be OK to add this test without the UNTRUSTED tag > (amending the links in the commit description)? It's a subjective call. Having open source code is a minimum step to being "trusted" but really the trust is in the community that hosts the code. The upstream distros (e.g. Debian/Fedora) are trusted because people install their software on their desktops and basically give the software publisher root on their machines. There has to be a level of trust that the distros won't abuse that to steal information from their users. I personally have no idea about the loongson community because it's not one I interact with so I have no idea what sort of place it is. Is it a code dump for semi-proprietary non-upstreamed kernels or is it a place that has a good development culture with a sane security process that is responsive to problems and moderately conservative with what they merge? If you would trust your keys to a machine running this communities software then by all means treated it as a trusted source. > > [1] https://github.com/loongson-community/pmon/ > [2] > https://github.com/loongson-community/pmon/blob/master/.github/workflows/compile.yml > [3] https://github.com/loongson-community/pmon/releases/tag/20210112 > [4] https://github.com/loongson-community/pmon/actions/runs/479132723 > >> +def test_pmon_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_hash = '7c8b45dd81ccfc55ff28f5aa267a41c3' >> +pmon_path = >> self.fetch_asset('https://github.com/loongson-community/pmon/' >> + >> 'releases/download/20210112/pmon-3avirt.bin', >> + 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, 'Copy PMON to execute location >> done.') >> +wait_for_console_pattern(self, 'CPU GODSON3 BogoMIPS:') >> -- Alex Bennée
Re: [PATCH] tests/acceptance: Test PMON with Loongson-3A1000 CPU
On 1/12/21 3:05 PM, Wainer dos Santos Moschetta wrote: > Hi, > > On 1/11/21 11:07 PM, Jiaxun Yang wrote: >> Test booting of PMON bootloader on loongson3-virt platform. >> >> $ (venv) AVOCADO_ALLOW_UNTRUSTED_CODE=1 \ >> avocado --show=app,console \ >> run -t machine:loongson3-virt tests/acceptance >> Fetching asset from >> tests/acceptance/machine_mips_loongson3v.py:MipsLoongson3v.test_pmon_serial_console >> >> JOB ID : 8e202b3727847c9104d0d3d6546ed225d35f6706 >> JOB LOG : >> /home/flygoat/avocado/job-results/job-2021-01-12T10.02-8e202b3/job.log >> (1/1) >> tests/acceptance/machine_mips_loongson3v.py:MipsLoongson3v.test_pmon_serial_console: >> >> console: PMON2000 MIPS Initializing. Standby... >> console: Jump to 9fc > >> Signed-off-by: Jiaxun Yang >> --- >> MAINTAINERS | 1 + >> tests/acceptance/machine_mips_loongson3v.py | 39 + >> 2 files changed, 40 insertions(+) >> create mode 100644 tests/acceptance/machine_mips_loongson3v.py > > Allow me to use this new test as an example to start a discussion about > the organization of the acceptance files. > > The mips64le tests currently are: > > $ ./venv/bin/avocado list -t arch:mips64el acceptance/ > > INSTRUMENTED > acceptance/boot_linux_console.py:BootLinuxConsole.test_mips64el_malta > INSTRUMENTED > acceptance/boot_linux_console.py:BootLinuxConsole.test_mips64el_fuloong2e > INSTRUMENTED > acceptance/boot_linux_console.py:BootLinuxConsole.test_mips64el_malta_5KEc_cpio > > INSTRUMENTED > acceptance/linux_ssh_mips_malta.py:LinuxSSH.test_mips_malta64el_kernel3_2_0 > INSTRUMENTED > acceptance/machine_mips_loongson3v.py:MipsLoongson3v.test_pmon_serial_console > > INSTRUMENTED > acceptance/machine_mips_malta.py:MaltaMachineFramebuffer.test_mips_malta_i6400_framebuffer_logo_1core > > INSTRUMENTED > acceptance/machine_mips_malta.py:MaltaMachineFramebuffer.test_mips_malta_i6400_framebuffer_logo_7cores > > INSTRUMENTED > acceptance/machine_mips_malta.py:MaltaMachineFramebuffer.test_mips_malta_i6400_framebuffer_logo_8cores > > INSTRUMENTED > acceptance/replay_kernel.py:ReplayKernelNormal.test_mips64el_malta > INSTRUMENTED > acceptance/replay_kernel.py:ReplayKernelSlow.test_mips64el_malta_5KEc_cpio > > Most of them are simple "boot linux (or firmware) and check the console" > tests. The replay_kernel.py contain tests for a given feature and happen > to be testing on mips64el as well. So on tests/acceptance directory > we've got boot tests spread across files and mixed with "generic" > feature tests. > > I think we should find a home for those boot tests. Maybe throw them all > in a sub-directory called "boot_tests", or in arch-oriented directories > (boot_tests/mips64el, boot_tests/x86_64, ...) which would make easier to > reference them in the MAINTAINERS file. > > Any thought? [thread hijack...] A tests might be multi-arch. If you think it is easier to have the tests sorted in subfolders, go ahead :) Where is a test is not a problem. The problem we have to solve is how to relate a test with its maintainers / developers interested in it. We once said what really matters are Avocado tags. This might be an underused feature of Avocado. Maybe what we need is a script to relate test tags with MAINTAINERS? Let's say we use the 'A' tag for that: -- >8 -- diff --git a/MAINTAINERS b/MAINTAINERS index cb0656aec3d..a484d429d78 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -646,6 +646,7 @@ M: Anup Patel M: Alistair Francis L: qemu-ri...@nongnu.org S: Maintained +A: device:goldfish_rtc F: hw/rtc/goldfish_rtc.c F: include/hw/rtc/goldfish_rtc.h @@ -1160,6 +1161,11 @@ Loongson-3 virtual platforms M: Huacai Chen R: Jiaxun Yang S: Maintained +A: machine:loongson3-virt +A: cpu:Loongson-3A1000 +A: device:liointc +A: device:goldfish_rtc F: hw/intc/loongson_liointc.c F: hw/mips/loongson3_bootp.c F: hw/mips/loongson3_bootp.h --- If this test fails, it should list the maintainers of the loongson3-virt machine and the goldfish RTC. Maintainers add their tags of interest, and can Ack when a developer add a tag to their MAINTAINERS entry. Thought? :)
Re: [PATCH] tests/acceptance: Test PMON with Loongson-3A1000 CPU
Hi, On 1/11/21 11:07 PM, Jiaxun Yang wrote: Test booting of PMON bootloader on loongson3-virt platform. $ (venv) AVOCADO_ALLOW_UNTRUSTED_CODE=1 \ avocado --show=app,console \ run -t machine:loongson3-virt tests/acceptance Fetching asset from tests/acceptance/machine_mips_loongson3v.py:MipsLoongson3v.test_pmon_serial_console JOB ID : 8e202b3727847c9104d0d3d6546ed225d35f6706 JOB LOG: /home/flygoat/avocado/job-results/job-2021-01-12T10.02-8e202b3/job.log (1/1) tests/acceptance/machine_mips_loongson3v.py:MipsLoongson3v.test_pmon_serial_console: console: PMON2000 MIPS Initializing. Standby... console: Jump to 9fc Signed-off-by: Jiaxun Yang --- MAINTAINERS | 1 + tests/acceptance/machine_mips_loongson3v.py | 39 + 2 files changed, 40 insertions(+) create mode 100644 tests/acceptance/machine_mips_loongson3v.py Allow me to use this new test as an example to start a discussion about the organization of the acceptance files. The mips64le tests currently are: $ ./venv/bin/avocado list -t arch:mips64el acceptance/ INSTRUMENTED acceptance/boot_linux_console.py:BootLinuxConsole.test_mips64el_malta INSTRUMENTED acceptance/boot_linux_console.py:BootLinuxConsole.test_mips64el_fuloong2e INSTRUMENTED acceptance/boot_linux_console.py:BootLinuxConsole.test_mips64el_malta_5KEc_cpio INSTRUMENTED acceptance/linux_ssh_mips_malta.py:LinuxSSH.test_mips_malta64el_kernel3_2_0 INSTRUMENTED acceptance/machine_mips_loongson3v.py:MipsLoongson3v.test_pmon_serial_console INSTRUMENTED acceptance/machine_mips_malta.py:MaltaMachineFramebuffer.test_mips_malta_i6400_framebuffer_logo_1core INSTRUMENTED acceptance/machine_mips_malta.py:MaltaMachineFramebuffer.test_mips_malta_i6400_framebuffer_logo_7cores INSTRUMENTED acceptance/machine_mips_malta.py:MaltaMachineFramebuffer.test_mips_malta_i6400_framebuffer_logo_8cores INSTRUMENTED acceptance/replay_kernel.py:ReplayKernelNormal.test_mips64el_malta INSTRUMENTED acceptance/replay_kernel.py:ReplayKernelSlow.test_mips64el_malta_5KEc_cpio Most of them are simple "boot linux (or firmware) and check the console" tests. The replay_kernel.py contain tests for a given feature and happen to be testing on mips64el as well. So on tests/acceptance directory we've got boot tests spread across files and mixed with "generic" feature tests. I think we should find a home for those boot tests. Maybe throw them all in a sub-directory called "boot_tests", or in arch-oriented directories (boot_tests/mips64el, boot_tests/x86_64, ...) which would make easier to reference them in the MAINTAINERS file. Any thought? diff --git a/MAINTAINERS b/MAINTAINERS index 4be087b88e..f38882f997 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1164,6 +1164,7 @@ F: hw/intc/loongson_liointc.c F: hw/mips/loongson3_bootp.c F: hw/mips/loongson3_bootp.h F: hw/mips/loongson3_virt.c +F: tests/acceptance/machine_mips_loongson3v.py Boston M: Paul Burton diff --git a/tests/acceptance/machine_mips_loongson3v.py b/tests/acceptance/machine_mips_loongson3v.py new file mode 100644 index 00..17a85de69f --- /dev/null +++ b/tests/acceptance/machine_mips_loongson3v.py @@ -0,0 +1,39 @@ +# Functional tests for the Generic Loongson-3 Platform. +# +# Copyright (c) 2020 Philippe Mathieu-Daudé +# +# 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 Unused time import Thanks! - Wainer + +from avocado import skipUnless +from avocado_qemu import Test +from avocado_qemu import wait_for_console_pattern + +class MipsLoongson3v(Test): +@skipUnless(os.getenv('AVOCADO_ALLOW_UNTRUSTED_CODE'), 'untrusted code') +def test_pmon_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_hash = '7c8b45dd81ccfc55ff28f5aa267a41c3' +pmon_path = self.fetch_asset('https://github.com/loongson-community/pmon/' + 'releases/download/20210112/pmon-3avirt.bin', + 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, 'Copy PMON to execute location done.') +wait_for_console_pattern(self, 'CPU GODSON3 BogoMIPS:')
Re: [PATCH] tests/acceptance: Test PMON with Loongson-3A1000 CPU
Hi Jiaxun, Alex, On 1/12/21 3:07 AM, Jiaxun Yang wrote: > Test booting of PMON bootloader on loongson3-virt platform. > > $ (venv) AVOCADO_ALLOW_UNTRUSTED_CODE=1 \ > avocado --show=app,console \ > run -t machine:loongson3-virt tests/acceptance > Fetching asset from > tests/acceptance/machine_mips_loongson3v.py:MipsLoongson3v.test_pmon_serial_console > JOB ID : 8e202b3727847c9104d0d3d6546ed225d35f6706 > JOB LOG: > /home/flygoat/avocado/job-results/job-2021-01-12T10.02-8e202b3/job.log ... > console: This software may be redistributed under the BSD copyright. > console: Copyright 2000-2002, Opsycon AB, Sweden. > console: Copyright 2005, ICT CAS. > console: CPU GODSON3 BogoMIPS: 1327 > PASS (3.89 s) > RESULTS: PASS 1 | ERROR 0 | FAIL 0 | SKIP 0 | WARN 0 | INTERRUPT 0 | > CANCEL 0 > JOB TIME : 4.38 s > > Signed-off-by: Jiaxun Yang > --- > MAINTAINERS | 1 + > tests/acceptance/machine_mips_loongson3v.py | 39 + > 2 files changed, 40 insertions(+) > create mode 100644 tests/acceptance/machine_mips_loongson3v.py > > diff --git a/MAINTAINERS b/MAINTAINERS > index 4be087b88e..f38882f997 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -1164,6 +1164,7 @@ F: hw/intc/loongson_liointc.c > F: hw/mips/loongson3_bootp.c > F: hw/mips/loongson3_bootp.h > F: hw/mips/loongson3_virt.c > +F: tests/acceptance/machine_mips_loongson3v.py > > Boston > M: Paul Burton > diff --git a/tests/acceptance/machine_mips_loongson3v.py > b/tests/acceptance/machine_mips_loongson3v.py > new file mode 100644 > index 00..17a85de69f > --- /dev/null > +++ b/tests/acceptance/machine_mips_loongson3v.py > @@ -0,0 +1,39 @@ > +# Functional tests for the Generic Loongson-3 Platform. > +# > +# Copyright (c) 2020 Philippe Mathieu-Daudé 2021 Jiaxun Yang ? :D > +# > +# 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 MipsLoongson3v(Test): > +@skipUnless(os.getenv('AVOCADO_ALLOW_UNTRUSTED_CODE'), 'untrusted code') The source code is published [1], you provided reproducible workflow [2] and a tag [3] with a public build artifacts [4], so my understanding is this is "trustable" binary. Alex, would it be OK to add this test without the UNTRUSTED tag (amending the links in the commit description)? [1] https://github.com/loongson-community/pmon/ [2] https://github.com/loongson-community/pmon/blob/master/.github/workflows/compile.yml [3] https://github.com/loongson-community/pmon/releases/tag/20210112 [4] https://github.com/loongson-community/pmon/actions/runs/479132723 > +def test_pmon_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_hash = '7c8b45dd81ccfc55ff28f5aa267a41c3' > +pmon_path = > self.fetch_asset('https://github.com/loongson-community/pmon/' > + > 'releases/download/20210112/pmon-3avirt.bin', > + 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, 'Copy PMON to execute location done.') > +wait_for_console_pattern(self, 'CPU GODSON3 BogoMIPS:') >
[PATCH] tests/acceptance: Test PMON with Loongson-3A1000 CPU
Test booting of PMON bootloader on loongson3-virt platform. $ (venv) AVOCADO_ALLOW_UNTRUSTED_CODE=1 \ avocado --show=app,console \ run -t machine:loongson3-virt tests/acceptance Fetching asset from tests/acceptance/machine_mips_loongson3v.py:MipsLoongson3v.test_pmon_serial_console JOB ID : 8e202b3727847c9104d0d3d6546ed225d35f6706 JOB LOG: /home/flygoat/avocado/job-results/job-2021-01-12T10.02-8e202b3/job.log (1/1) tests/acceptance/machine_mips_loongson3v.py:MipsLoongson3v.test_pmon_serial_console: console: PMON2000 MIPS Initializing. Standby... console: Jump to 9fc console: Init Memory done. console: The uncache data is: console: : console: 0008: console: 0010: console: 0018: console: 0020: console: 0028: console: 0030: console: 0038: console: The cached data is: console: : console: 0008: console: 0010: console: 0018: console: 0020: console: 0028: console: 0030: console: 0038: console: Copy PMON to execute location... console: start = 0x8f90 console: s0 = 0x3030 console: _edata = 0x8f989010 console: _end = 0x8f98a028copy text section done. console: Copy PMON to execute location done. console: sp=8f8fc000 console: Uncompressing BiosOK,Booting Bios console: FREQ console: DONE console: DEVI console: ENVI console: MAPV console: NVRAM@8f7ff898 console: STDV console: 8010: memory between 8f7ff400-8f80 is already been allocated,heap is already above this point console: SBDD console: P12PCIH console: PCIH console: PCID console: setting up 1 bus console: PCI bus 0 slot 1: probe...completed console: PCI bus 0 slot 1/0: vendor/product: 0x106b/0x003f (serialbus, USB, interface: 0x10, revision: 0x00) console: PCI bus 0 slot 1/0: reg 0x10 = 0xff00 console: PCI bus 0 slot 2: probe...completed console: PCI bus 0 slot 2/0: vendor/product: 0x1af4/0x1000 (network, ethernet, interface: 0x00, revision: 0x00) console: PCI bus 0 slot 2/0: reg 0x10 = 0xffe1 console: PCI bus 0 slot 2/0: reg 0x14 = 0xf000 console: PCI bus 0 slot 2/0: reg 0x20 = 0xc00c console: PCI bus 0 slot 2/0: reg 0x30 = 0xfffc console: PCI bus 0 slot 3: probe...completed console: PCI bus 0 slot 4: probe...completed console: PCI bus 0 slot 5: probe...completed console: PCI bus 0 slot 6: probe...completed console: PCI bus 0 slot 7: probe...completed console: PCI bus 0 slot 8: probe...completed console: PCI bus 0 slot 9: probe...completed console: PCI bus 0 slot 10: probe...completed console: PCI bus 0 slot 11: probe...completed console: PCI bus 0 slot 12: probe...completed console: PCI bus 0 slot 13: probe...completed console: PCI bus 0 slot 14: probe...completed console: PCI bus 0 slot 15: probe...completed console: PCI bus 0 slot 16: probe...completed console: PCI bus 0 slot 17: probe...completed console: PCI bus 0 slot 18: probe...completed console: PCI bus 0 slot 19: probe...completed console: PCI bus 0 slot 20: probe...completed console: PCI bus 0 slot 21: probe...completed console: PCI bus 0 slot 22: probe...completed console: PCI bus 0 slot 23: probe...completed console: PCI bus 0 slot 24: probe...completed console: PCI bus 0 slot 25: probe...completed console: PCI bus 0 slot 26: probe...completed console: PCI bus 0 slot 27: probe...completed console: PCI bus 0 slot 28: probe...completed console: PCI bus 0 slot 29: probe...completed console: PCI bus 0 slot 30: probe...completed console: PCI bus 0 slot 31: probe...completed console: PCIS console: PCIR console: PCIW console: PCI bus 0 slot 2/0: mem @0x4000, reg 0x30 262144 bytes console: PCI bus 0 slot 2/0: mem @0x4004, reg 0x20 16384 bytes console: PCI bus 0 slot 2/0: mem @0x40044000, reg 0x14 4096 bytes console: PCI bus 0 slot 1/0: mem @0x40045000, reg 0x10 256 bytes console: PCI bus 0 slot 2/0: exp @0x4000, 262144 bytes console: PCI bus 0 slot 2/0: i/o @0x4000, reg 0x10 32 bytes console: NETI console: RTCL console: PCID console: VGAI console: memorysize=c00,base=8f6ff508,sysMem=8f6ef500 console: in setup_int_vect!done!VESA console: vga bios init failed, rc=-1 console: in configure console: mainbus0 (root) console: localbus0 at mainbus0 console: loopdev0 at mainbus0pcibr0 at mainbus0 console: pci0 at pcibr0 bus 0 console: ohci0 at pci0 dev 1 function 0 vendor/product: 0x106b/0x003f (serialbus, USB, interface: 0x10, revision: 0x00)usb base addr : 0xc0045000, bus_base is : 0xc000 console: OHCI revision: 0x0010 console: RH: a: 0x0203 b: 0x console: early period(0x0) console: OHCI 8c01ec00 initialized ok console: New Device 0 console: usb_get_descriptor console: bLe
Re: [PATCH] tests/acceptance: Test PMON with Loongson-3A1000 CPU
在 2020/12/21 下午11:34, Philippe Mathieu-Daudé 写道: On 12/21/20 1:51 PM, Huacai Chen wrote: Hi, Philippe, On Sat, Dec 19, 2020 at 4:51 AM Willian Rampazzo wrote: On 12/16/20 3:17 PM, Philippe Mathieu-Daudé wrote: 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: A1101 is a real machine type, and there is a UEFI-based bios designed for loongson3-virt machine (though it is also not redistributable), why not test that one? Well, if you already shared that information, I probably missed it. I'm trying to add test for your machine to be able to test it regularly to avoid regressions... I'd rather let you contribute the tests :) Hi Huacai and Philippe, I will contribute a test with our port of PMON. UEFI firmware lacks reasonable console output and interactive shell. Thanks - Jiaxun Phil.
Re: [PATCH] tests/acceptance: Test PMON with Loongson-3A1000 CPU
On 12/21/20 1:51 PM, Huacai Chen wrote: > Hi, Philippe, > > On Sat, Dec 19, 2020 at 4:51 AM Willian Rampazzo wrote: >> >> On 12/16/20 3:17 PM, Philippe Mathieu-Daudé wrote: >>> 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: > A1101 is a real machine type, and there is a UEFI-based bios designed > for loongson3-virt machine (though it is also not redistributable), > why not test that one? Well, if you already shared that information, I probably missed it. I'm trying to add test for your machine to be able to test it regularly to avoid regressions... I'd rather let you contribute the tests :) Phil.
Re: [PATCH] tests/acceptance: Test PMON with Loongson-3A1000 CPU
Hi, Philippe, On Sat, Dec 19, 2020 at 4:51 AM Willian Rampazzo wrote: > > On 12/16/20 3:17 PM, Philippe Mathieu-Daudé wrote: > > 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: A1101 is a real machine type, and there is a UEFI-based bios designed for loongson3-virt machine (though it is also not redistributable), why not test that one? Huacai > > > >$ 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: > >console: Shut down other cores > >console: 0xbfe00190 : > >console: CPU CLK SEL : > >console: MEM CLK SEL : > >console: Change the driver > >console: Soft CLK SEL adjust begin > >console: HT : > >console: DDR_DIV:0002 > >console: BBGEN start : > >console: BBGEN config value : > >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 : > >console: CPU CLK SEL : > >console: CPU clk frequency = SYSCLK x 0x001e / 1 > >console: MEM CLK SEL : > >console: DDR clk frequency = MEMCLK x 0x001e / 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é > > --- > > 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 > > R: Jiaxun Yang > > S: Maintained > > F: hw/intc/loongson_liointc.c > > +F: tests/acceptance/machine_mips_loongson3v.py > > > > Boston > > M: Paul Burton > > diff --git a/tests/acceptance/machine_mips_loongson3v.py > > b/tests/acceptance/machine_mips_loongson3v.py > > new file mode 100644 > > index 000..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é > > +# > > +# 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' > > In case you keep this approach of manually downloading the binary, it > would be good to have a pointer (url) to it to avoid download of an > incorrect binary that will not match the hash here. > > > +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() > > +
Re: [PATCH] tests/acceptance: Test PMON with Loongson-3A1000 CPU
On 12/16/20 3:17 PM, Philippe Mathieu-Daudé wrote: 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: $ 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: console: Shut down other cores console: 0xbfe00190 : console: CPU CLK SEL : console: MEM CLK SEL : console: Change the driver console: Soft CLK SEL adjust begin console: HT : console: DDR_DIV:0002 console: BBGEN start : console: BBGEN config value : 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 : console: CPU CLK SEL : console: CPU clk frequency = SYSCLK x 0x001e / 1 console: MEM CLK SEL : console: DDR clk frequency = MEMCLK x 0x001e / 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é --- 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 R: Jiaxun Yang S: Maintained F: hw/intc/loongson_liointc.c +F: tests/acceptance/machine_mips_loongson3v.py Boston M: Paul Burton diff --git a/tests/acceptance/machine_mips_loongson3v.py b/tests/acceptance/machine_mips_loongson3v.py new file mode 100644 index 000..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é +# +# 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' In case you keep this approach of manually downloading the binary, it would be good to have a pointer (url) to it to avoid download of an incorrect binary that will not match the hash here. +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:li
Re: [PATCH] tests/acceptance: Test PMON with Loongson-3A1000 CPU
Hi, On 12/16/20 3:17 PM, Philippe Mathieu-Daudé wrote: 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: $ 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: console: Shut down other cores console: 0xbfe00190 : console: CPU CLK SEL : console: MEM CLK SEL : console: Change the driver console: Soft CLK SEL adjust begin console: HT : console: DDR_DIV:0002 console: BBGEN start : console: BBGEN config value : 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 : console: CPU CLK SEL : console: CPU clk frequency = SYSCLK x 0x001e / 1 console: MEM CLK SEL : console: DDR clk frequency = MEMCLK x 0x001e / 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é --- 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 lgtm. Reviewed-by: Wainer dos Santos Moschetta diff --git a/MAINTAINERS b/MAINTAINERS index f75fa2a7142..9a02d44f997 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1166,6 +1166,7 @@ M: Huacai Chen R: Jiaxun Yang S: Maintained F: hw/intc/loongson_liointc.c +F: tests/acceptance/machine_mips_loongson3v.py Boston M: Paul Burton diff --git a/tests/acceptance/machine_mips_loongson3v.py b/tests/acceptance/machine_mips_loongson3v.py new file mode 100644 index 000..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é +# +# 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 = 'cc40276213
Re: [PATCH] tests/acceptance: Test PMON with Loongson-3A1000 CPU
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: >> console: Shut down other cores >> console: 0xbfe00190 : >> console: CPU CLK SEL : >> console: MEM CLK SEL : >> console: Change the driver >> console: Soft CLK SEL adjust begin >> console: HT : >> console: DDR_DIV:0002 >> console: BBGEN start : >> console: BBGEN config value : >> 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 : >> console: CPU CLK SEL : >> console: CPU clk frequency = SYSCLK x 0x001e / 1 >> console: MEM CLK SEL : >> console: DDR clk frequency = MEMCLK x 0x001e / 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é >> --- >> 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 >> R: Jiaxun Yang >> S: Maintained >> F: hw/intc/loongson_liointc.c >> +F: tests/acceptance/machine_mips_loongson3v.py >> Boston >> M: Paul Burton >> diff --git a/tests/acceptance/machine_mips_loongson3v.py >> b/tests/acceptance/machine_mips_loongson3v.py >> new file mode 100644 >> index 000..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é >> +# >> +# 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.v
Re: [PATCH] tests/acceptance: Test PMON with Loongson-3A1000 CPU
于 2020年12月17日 GMT+08:00 上午2:17:59, "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: Well I have a distribution of PMON customized for loongson3-virt. Will push it to GitHub later. Thanks. - 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: > console: Shut down other cores > console: 0xbfe00190 : > console: CPU CLK SEL : > console: MEM CLK SEL : > console: Change the driver > console: Soft CLK SEL adjust begin > console: HT : > console: DDR_DIV:0002 > console: BBGEN start : > console: BBGEN config value : > 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 : > console: CPU CLK SEL : > console: CPU clk frequency = SYSCLK x 0x001e / 1 > console: MEM CLK SEL : > console: DDR clk frequency = MEMCLK x 0x001e / 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é >--- >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 > R: Jiaxun Yang > S: Maintained > F: hw/intc/loongson_liointc.c >+F: tests/acceptance/machine_mips_loongson3v.py > > Boston > M: Paul Burton >diff --git a/tests/acceptance/machine_mips_loongson3v.py >b/tests/acceptance/machine_mips_loongson3v.py >new file mode 100644 >index 000..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é >+# >+# 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 >+
Re: [PATCH] tests/acceptance: Test PMON with Loongson-3A1000 CPU
在 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. 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: console: Shut down other cores console: 0xbfe00190 : console: CPU CLK SEL : console: MEM CLK SEL : console: Change the driver console: Soft CLK SEL adjust begin console: HT : console: DDR_DIV:0002 console: BBGEN start : console: BBGEN config value : 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 : console: CPU CLK SEL : console: CPU clk frequency = SYSCLK x 0x001e / 1 console: MEM CLK SEL : console: DDR clk frequency = MEMCLK x 0x001e / 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é --- 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 R: Jiaxun Yang S: Maintained F: hw/intc/loongson_liointc.c +F: tests/acceptance/machine_mips_loongson3v.py Boston M: Paul Burton diff --git a/tests/acceptance/machine_mips_loongson3v.py b/tests/acceptance/machine_mips_loongson3v.py new file mode 100644 index 000..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é +# +# 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 +
[PATCH] tests/acceptance: Test PMON with Loongson-3A1000 CPU
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: $ 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: console: Shut down other cores console: 0xbfe00190 : console: CPU CLK SEL : console: MEM CLK SEL : console: Change the driver console: Soft CLK SEL adjust begin console: HT : console: DDR_DIV:0002 console: BBGEN start : console: BBGEN config value : 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 : console: CPU CLK SEL : console: CPU clk frequency = SYSCLK x 0x001e / 1 console: MEM CLK SEL : console: DDR clk frequency = MEMCLK x 0x001e / 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é --- 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 R: Jiaxun Yang S: Maintained F: hw/intc/loongson_liointc.c +F: tests/acceptance/machine_mips_loongson3v.py Boston M: Paul Burton diff --git a/tests/acceptance/machine_mips_loongson3v.py b/tests/acceptance/machine_mips_loongson3v.py new file mode 100644 index 000..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é +# +# 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_nam