[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] tests/acceptance: Test PMON with Loongson-3A1000 CPU
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [PATCH] tests/acceptance: Test PMON with Loongson-3A1000 CPU |
Date: |
Fri, 18 Dec 2020 16:21:37 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.5.0 |
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')
>