MAINTAINERS | 1 + tests/acceptance/machine_mips_loongson3v.py | 66 +++++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 tests/acceptance/machine_mips_loongson3v.py
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: 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é <f4bug@amsat.org>
---
Based-on: <20201215125716.477023-1-chenhuacai@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 <chenhuacai@kernel.org>
R: Jiaxun Yang <jiaxun.yang@flygoat.com>
S: Maintained
F: hw/intc/loongson_liointc.c
+F: tests/acceptance/machine_mips_loongson3v.py
Boston
M: Paul Burton <paulburton@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é <f4bug@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')
--
2.26.2
于 2020年12月17日 GMT+08:00 上午2:17:59, "Philippe Mathieu-Daudé" <f4bug@amsat.org> 写到:
>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: 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é <f4bug@amsat.org>
>---
>Based-on: <20201215125716.477023-1-chenhuacai@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 <chenhuacai@kernel.org>
> R: Jiaxun Yang <jiaxun.yang@flygoat.com>
> S: Maintained
> F: hw/intc/loongson_liointc.c
>+F: tests/acceptance/machine_mips_loongson3v.py
>
> Boston
> M: Paul Burton <paulburton@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é <f4bug@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')
在 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: 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é <f4bug@amsat.org>
> ---
> Based-on: <20201215125716.477023-1-chenhuacai@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 <chenhuacai@kernel.org>
> R: Jiaxun Yang <jiaxun.yang@flygoat.com>
> S: Maintained
> F: hw/intc/loongson_liointc.c
> +F: tests/acceptance/machine_mips_loongson3v.py
>
> Boston
> M: Paul Burton <paulburton@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é <f4bug@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')
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é <f4bug@amsat.org>
>> ---
>> Based-on: <20201215125716.477023-1-chenhuacai@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 <chenhuacai@kernel.org>
>> R: Jiaxun Yang <jiaxun.yang@flygoat.com>
>> S: Maintained
>> F: hw/intc/loongson_liointc.c
>> +F: tests/acceptance/machine_mips_loongson3v.py
>> Boston
>> M: Paul Burton <paulburton@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é <f4bug@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')
>
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: 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é <f4bug@amsat.org>
> ---
> Based-on: <20201215125716.477023-1-chenhuacai@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 <chenhuacai@kernel.org>
> R: Jiaxun Yang <jiaxun.yang@flygoat.com>
> S: Maintained
> F: hw/intc/loongson_liointc.c
> +F: tests/acceptance/machine_mips_loongson3v.py
>
> Boston
> M: Paul Burton <paulburton@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é <f4bug@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'
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:liointc
> + :avocado: tags=device:goldfish_rtc
> + """
> + pmon_name = 'pmon-A1101-2.0.8.bin'
Same comment here about the pointer to the binary.
> + 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')
>
Inspite of a small comment,
Reviewed-by: Willian Rampazzo <willianr@redhat.com>
Hi, Philippe,
On Sat, Dec 19, 2020 at 4:51 AM Willian Rampazzo <wrampazz@redhat.com> 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: 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é <f4bug@amsat.org>
> > ---
> > Based-on: <20201215125716.477023-1-chenhuacai@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 <chenhuacai@kernel.org>
> > R: Jiaxun Yang <jiaxun.yang@flygoat.com>
> > S: Maintained
> > F: hw/intc/loongson_liointc.c
> > +F: tests/acceptance/machine_mips_loongson3v.py
> >
> > Boston
> > M: Paul Burton <paulburton@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é <f4bug@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'
>
> 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:liointc
> > + :avocado: tags=device:goldfish_rtc
> > + """
> > + pmon_name = 'pmon-A1101-2.0.8.bin'
>
> Same comment here about the pointer to the binary.
>
> > + 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')
> >
>
> Inspite of a small comment,
>
> Reviewed-by: Willian Rampazzo <willianr@redhat.com>
>
On 12/21/20 1:51 PM, Huacai Chen wrote: > Hi, Philippe, > > On Sat, Dec 19, 2020 at 4:51 AM Willian Rampazzo <wrampazz@redhat.com> 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.
在 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 <wrampazz@redhat.com> 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. >
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: 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é <f4bug@amsat.org>
> ---
> Based-on: <20201215125716.477023-1-chenhuacai@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 <wainersm@redhat.com>
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index f75fa2a7142..9a02d44f997 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -1166,6 +1166,7 @@ M: Huacai Chen <chenhuacai@kernel.org>
> R: Jiaxun Yang <jiaxun.yang@flygoat.com>
> S: Maintained
> F: hw/intc/loongson_liointc.c
> +F: tests/acceptance/machine_mips_loongson3v.py
>
> Boston
> M: Paul Burton <paulburton@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é <f4bug@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')
© 2016 - 2025 Red Hat, Inc.