diff mbox series

[v3,13/17] tests/boot_linux_console: Add a quick test for the OrangePi PC board

Message ID 20200108200020.4745-14-nieklinnenbank@gmail.com
State New
Headers show
Series Add Allwinner H3 SoC and Orange Pi PC Machine | expand

Commit Message

Niek Linnenbank Jan. 8, 2020, 8 p.m. UTC
From: Philippe Mathieu-Daudé <f4bug@amsat.org>

This test boots a Linux kernel on a OrangePi PC board and verify
the serial output is working.

The kernel image and DeviceTree blob are built by the Armbian
project (based on Debian):
https://www.armbian.com/orange-pi-pc/

If ARM is a target being built, "make check-acceptance" will
automatically include this test by the use of the "arch:arm" tags.

Alternatively, this test can be run using:

  $ make check-venv
  $ ./tests/venv/bin/avocado --show=console,app run -t machine:orangepi-pc tests/acceptance/boot_linux_console.py
  JOB ID     : 2e4d15eceb13c33672af406f08171e6e9de1414a
  JOB LOG    : ~/job-results/job-2019-12-17T05.46-2e4d15e/job.log
  (1/1) tests/acceptance/boot_linux_console.py:BootLinuxConsole.test_arm_orangepi:
  console: Uncompressing Linux... done, booting the kernel.
  console: Booting Linux on physical CPU 0x0
  console: Linux version 4.20.7-sunxi (root@armbian.com) (gcc version 7.2.1 20171011 (Linaro GCC 7.2-2017.11)) #5.75 SMP Fri Feb 8 09:02:10 CET 2019
  console: CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=50c5387d
  console: CPU: div instructions available: patching division code
  console: CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
  console: OF: fdt: Machine model: Xunlong Orange Pi PC
  console: Memory policy: Data cache writealloc
  console: OF: reserved mem: failed to allocate memory for node 'cma@4a000000'
  console: cma: Failed to reserve 128 MiB
  console: psci: probing for conduit method from DT.
  console: psci: PSCIv0.2 detected in firmware.
  console: psci: Using standard PSCI v0.2 function IDs
  console: psci: Trusted OS migration not required
  console: random: get_random_bytes called from start_kernel+0x8d/0x3c2 with crng_init=0
  console: percpu: Embedded 18 pages/cpu @(ptrval) s41228 r8192 d24308 u73728
  console: Built 1 zonelists, mobility grouping on.  Total pages: 32480
  console: Kernel command line: printk.time=0 console=ttyS0,115200
  PASS (8.59 s)
  JOB TIME   : 8.81 s

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
[NL: rename in commit message Raspbian to Armbian]
Signed-off-by: Niek Linnenbank <nieklinnenbank@gmail.com>
---
 tests/acceptance/boot_linux_console.py | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

Comments

Philippe Mathieu-Daudé Jan. 18, 2020, 11:22 a.m. UTC | #1
On 1/8/20 9:00 PM, Niek Linnenbank wrote:
> From: Philippe Mathieu-Daudé <f4bug@amsat.org>
> 
> This test boots a Linux kernel on a OrangePi PC board and verify
> the serial output is working.
> 
> The kernel image and DeviceTree blob are built by the Armbian
> project (based on Debian):
> https://www.armbian.com/orange-pi-pc/
> 
> If ARM is a target being built, "make check-acceptance" will
> automatically include this test by the use of the "arch:arm" tags.
> 
> Alternatively, this test can be run using:
> 
>    $ make check-venv
>    $ ./tests/venv/bin/avocado --show=console,app run -t machine:orangepi-pc tests/acceptance/boot_linux_console.py
>    JOB ID     : 2e4d15eceb13c33672af406f08171e6e9de1414a
>    JOB LOG    : ~/job-results/job-2019-12-17T05.46-2e4d15e/job.log
>    (1/1) tests/acceptance/boot_linux_console.py:BootLinuxConsole.test_arm_orangepi:
>    console: Uncompressing Linux... done, booting the kernel.
>    console: Booting Linux on physical CPU 0x0
>    console: Linux version 4.20.7-sunxi (root@armbian.com) (gcc version 7.2.1 20171011 (Linaro GCC 7.2-2017.11)) #5.75 SMP Fri Feb 8 09:02:10 CET 2019
>    console: CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=50c5387d
>    console: CPU: div instructions available: patching division code
>    console: CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
>    console: OF: fdt: Machine model: Xunlong Orange Pi PC
>    console: Memory policy: Data cache writealloc
>    console: OF: reserved mem: failed to allocate memory for node 'cma@4a000000'
>    console: cma: Failed to reserve 128 MiB
>    console: psci: probing for conduit method from DT.
>    console: psci: PSCIv0.2 detected in firmware.
>    console: psci: Using standard PSCI v0.2 function IDs
>    console: psci: Trusted OS migration not required
>    console: random: get_random_bytes called from start_kernel+0x8d/0x3c2 with crng_init=0
>    console: percpu: Embedded 18 pages/cpu @(ptrval) s41228 r8192 d24308 u73728
>    console: Built 1 zonelists, mobility grouping on.  Total pages: 32480
>    console: Kernel command line: printk.time=0 console=ttyS0,115200
>    PASS (8.59 s)
>    JOB TIME   : 8.81 s
> 
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> [NL: rename in commit message Raspbian to Armbian]
> Signed-off-by: Niek Linnenbank <nieklinnenbank@gmail.com>
> ---
>   tests/acceptance/boot_linux_console.py | 26 ++++++++++++++++++++++++++
>   1 file changed, 26 insertions(+)
> 
> diff --git a/tests/acceptance/boot_linux_console.py b/tests/acceptance/boot_linux_console.py
> index 9c6aa2040a..b58308d724 100644
> --- a/tests/acceptance/boot_linux_console.py
> +++ b/tests/acceptance/boot_linux_console.py
> @@ -400,6 +400,32 @@ class BootLinuxConsole(Test):
>           self.wait_for_console_pattern('Boot successful.')
>           # TODO user command, for now the uart is stuck
>   
> +    def test_arm_orangepi(self):
> +        """
> +        :avocado: tags=arch:arm
> +        :avocado: tags=machine:orangepi-pc
> +        """
> +        deb_url = ('https://apt.armbian.com/pool/main/l/'
> +                   'linux-4.20.7-sunxi/linux-image-dev-sunxi_5.75_armhf.deb')
> +        deb_hash = '1334c29c44d984ffa05ed10de8c3361f33d78315'
> +        deb_path = self.fetch_asset(deb_url, asset_hash=deb_hash)
> +        kernel_path = self.extract_from_deb(deb_path,
> +                                            '/boot/vmlinuz-4.20.7-sunxi')
> +        dtb_path = '/usr/lib/linux-image-dev-sunxi/sun8i-h3-orangepi-pc.dtb'
> +        dtb_path = self.extract_from_deb(deb_path, dtb_path)
> +
> +        self.vm.set_machine('orangepi-pc')

Please remove the vm.set_machine() calls.

> +        self.vm.set_console()
> +        kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE +
> +                               'console=ttyS0,115200n8 '
> +                               'earlycon=uart,mmio32,0x1c28000')
> +        self.vm.add_args('-kernel', kernel_path,
> +                         '-dtb', dtb_path,
> +                         '-append', kernel_command_line)
> +        self.vm.launch()
> +        console_pattern = 'Kernel command line: %s' % kernel_command_line
> +        self.wait_for_console_pattern(console_pattern)
> +
>       def test_s390x_s390_ccw_virtio(self):
>           """
>           :avocado: tags=arch:s390x
>
Niek Linnenbank Jan. 18, 2020, 11:04 p.m. UTC | #2
On Sat, Jan 18, 2020 at 12:22 PM Philippe Mathieu-Daudé <philmd@redhat.com>
wrote:

> On 1/8/20 9:00 PM, Niek Linnenbank wrote:
> > From: Philippe Mathieu-Daudé <f4bug@amsat.org>
> >
> > This test boots a Linux kernel on a OrangePi PC board and verify
> > the serial output is working.
> >
> > The kernel image and DeviceTree blob are built by the Armbian
> > project (based on Debian):
> > https://www.armbian.com/orange-pi-pc/
> >
> > If ARM is a target being built, "make check-acceptance" will
> > automatically include this test by the use of the "arch:arm" tags.
> >
> > Alternatively, this test can be run using:
> >
> >    $ make check-venv
> >    $ ./tests/venv/bin/avocado --show=console,app run -t
> machine:orangepi-pc tests/acceptance/boot_linux_console.py
> >    JOB ID     : 2e4d15eceb13c33672af406f08171e6e9de1414a
> >    JOB LOG    : ~/job-results/job-2019-12-17T05.46-2e4d15e/job.log
> >    (1/1)
> tests/acceptance/boot_linux_console.py:BootLinuxConsole.test_arm_orangepi:
> >    console: Uncompressing Linux... done, booting the kernel.
> >    console: Booting Linux on physical CPU 0x0
> >    console: Linux version 4.20.7-sunxi (root@armbian.com) (gcc version
> 7.2.1 20171011 (Linaro GCC 7.2-2017.11)) #5.75 SMP Fri Feb 8 09:02:10 CET
> 2019
> >    console: CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7),
> cr=50c5387d
> >    console: CPU: div instructions available: patching division code
> >    console: CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing
> instruction cache
> >    console: OF: fdt: Machine model: Xunlong Orange Pi PC
> >    console: Memory policy: Data cache writealloc
> >    console: OF: reserved mem: failed to allocate memory for node
> 'cma@4a000000'
> >    console: cma: Failed to reserve 128 MiB
> >    console: psci: probing for conduit method from DT.
> >    console: psci: PSCIv0.2 detected in firmware.
> >    console: psci: Using standard PSCI v0.2 function IDs
> >    console: psci: Trusted OS migration not required
> >    console: random: get_random_bytes called from start_kernel+0x8d/0x3c2
> with crng_init=0
> >    console: percpu: Embedded 18 pages/cpu @(ptrval) s41228 r8192 d24308
> u73728
> >    console: Built 1 zonelists, mobility grouping on.  Total pages: 32480
> >    console: Kernel command line: printk.time=0 console=ttyS0,115200
> >    PASS (8.59 s)
> >    JOB TIME   : 8.81 s
> >
> > Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> > [NL: rename in commit message Raspbian to Armbian]
> > Signed-off-by: Niek Linnenbank <nieklinnenbank@gmail.com>
> > ---
> >   tests/acceptance/boot_linux_console.py | 26 ++++++++++++++++++++++++++
> >   1 file changed, 26 insertions(+)
> >
> > diff --git a/tests/acceptance/boot_linux_console.py
> b/tests/acceptance/boot_linux_console.py
> > index 9c6aa2040a..b58308d724 100644
> > --- a/tests/acceptance/boot_linux_console.py
> > +++ b/tests/acceptance/boot_linux_console.py
> > @@ -400,6 +400,32 @@ class BootLinuxConsole(Test):
> >           self.wait_for_console_pattern('Boot successful.')
> >           # TODO user command, for now the uart is stuck
> >
> > +    def test_arm_orangepi(self):
> > +        """
> > +        :avocado: tags=arch:arm
> > +        :avocado: tags=machine:orangepi-pc
> > +        """
> > +        deb_url = ('https://apt.armbian.com/pool/main/l/'
> > +
>  'linux-4.20.7-sunxi/linux-image-dev-sunxi_5.75_armhf.deb')
> > +        deb_hash = '1334c29c44d984ffa05ed10de8c3361f33d78315'
> > +        deb_path = self.fetch_asset(deb_url, asset_hash=deb_hash)
> > +        kernel_path = self.extract_from_deb(deb_path,
> > +
> '/boot/vmlinuz-4.20.7-sunxi')
> > +        dtb_path =
> '/usr/lib/linux-image-dev-sunxi/sun8i-h3-orangepi-pc.dtb'
> > +        dtb_path = self.extract_from_deb(deb_path, dtb_path)
> > +
> > +        self.vm.set_machine('orangepi-pc')
>
> Please remove the vm.set_machine() calls.
>

OK, I'll also remove them vm.set_machine() calls in the other 3 patches.


>
> > +        self.vm.set_console()
> > +        kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE +
> > +                               'console=ttyS0,115200n8 '
> > +                               'earlycon=uart,mmio32,0x1c28000')
> > +        self.vm.add_args('-kernel', kernel_path,
> > +                         '-dtb', dtb_path,
> > +                         '-append', kernel_command_line)
> > +        self.vm.launch()
> > +        console_pattern = 'Kernel command line: %s' %
> kernel_command_line
> > +        self.wait_for_console_pattern(console_pattern)
> > +
> >       def test_s390x_s390_ccw_virtio(self):
> >           """
> >           :avocado: tags=arch:s390x
> >
>
>
diff mbox series

Patch

diff --git a/tests/acceptance/boot_linux_console.py b/tests/acceptance/boot_linux_console.py
index 9c6aa2040a..b58308d724 100644
--- a/tests/acceptance/boot_linux_console.py
+++ b/tests/acceptance/boot_linux_console.py
@@ -400,6 +400,32 @@  class BootLinuxConsole(Test):
         self.wait_for_console_pattern('Boot successful.')
         # TODO user command, for now the uart is stuck
 
+    def test_arm_orangepi(self):
+        """
+        :avocado: tags=arch:arm
+        :avocado: tags=machine:orangepi-pc
+        """
+        deb_url = ('https://apt.armbian.com/pool/main/l/'
+                   'linux-4.20.7-sunxi/linux-image-dev-sunxi_5.75_armhf.deb')
+        deb_hash = '1334c29c44d984ffa05ed10de8c3361f33d78315'
+        deb_path = self.fetch_asset(deb_url, asset_hash=deb_hash)
+        kernel_path = self.extract_from_deb(deb_path,
+                                            '/boot/vmlinuz-4.20.7-sunxi')
+        dtb_path = '/usr/lib/linux-image-dev-sunxi/sun8i-h3-orangepi-pc.dtb'
+        dtb_path = self.extract_from_deb(deb_path, dtb_path)
+
+        self.vm.set_machine('orangepi-pc')
+        self.vm.set_console()
+        kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE +
+                               'console=ttyS0,115200n8 '
+                               'earlycon=uart,mmio32,0x1c28000')
+        self.vm.add_args('-kernel', kernel_path,
+                         '-dtb', dtb_path,
+                         '-append', kernel_command_line)
+        self.vm.launch()
+        console_pattern = 'Kernel command line: %s' % kernel_command_line
+        self.wait_for_console_pattern(console_pattern)
+
     def test_s390x_s390_ccw_virtio(self):
         """
         :avocado: tags=arch:s390x