diff mbox series

[1/6] tests/boot_linux_console: Add initrd test for the CubieBoard

Message ID 20191230110953.25496-2-f4bug@amsat.org
State New
Headers show
Series hw/arm/cubieboard: Few cleanups, add acceptance tests | expand

Commit Message

Philippe Mathieu-Daudé Dec. 30, 2019, 11:09 a.m. UTC
This test boots a Linux kernel on a CubieBoard and verify
the serial output is working.

The kernel image and DeviceTree blob are built by the Armbian
project (based on Debian):
https://docs.armbian.com/Developer-Guide_Build-Preparation/

The cpio image used comes from the linux-build-test project:
https://github.com/groeck/linux-build-test

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:

  $ avocado --show=console run -t machine:cubieboard tests/acceptance/boot_linux_console.py
  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 [410fc080] revision 0 (ARMv7), cr=50c5387d
  console: CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
  console: OF: fdt: Machine model: Cubietech Cubieboard
  [...]
  console: Boot successful.
  console: cat /proc/cpuinfo
  console: / # cat /proc/cpuinfo
  console: processor      : 0
  console: model name     : ARMv7 Processor rev 0 (v7l)
  console: BogoMIPS       : 832.51
  [...]
  console: Hardware       : Allwinner sun4i/sun5i Families
  console: Revision       : 0000
  console: Serial         : 0000000000000000
  console: cat /proc/iomem
  console: / # cat /proc/iomem
  console: 01c00000-01c0002f : system-control@1c00000
  console: 01c02000-01c02fff : dma-controller@1c02000
  console: 01c05000-01c05fff : spi@1c05000
  console: 01c0b080-01c0b093 : mdio@1c0b080
  console: 01c0c000-01c0cfff : lcd-controller@1c0c000
  console: 01c0d000-01c0dfff : lcd-controller@1c0d000
  console: 01c0f000-01c0ffff : mmc@1c0f000
  [...]
  PASS (54.35 s)

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 tests/acceptance/boot_linux_console.py | 41 ++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

Comments

Wainer dos Santos Moschetta Dec. 30, 2019, 8:52 p.m. UTC | #1
On 12/30/19 9:09 AM, Philippe Mathieu-Daudé wrote:
> This test boots a Linux kernel on a CubieBoard and verify
> the serial output is working.
>
> The kernel image and DeviceTree blob are built by the Armbian
> project (based on Debian):
> https://docs.armbian.com/Developer-Guide_Build-Preparation/
>
> The cpio image used comes from the linux-build-test project:
> https://github.com/groeck/linux-build-test
>
> 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:
>
>    $ avocado --show=console run -t machine:cubieboard tests/acceptance/boot_linux_console.py
>    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 [410fc080] revision 0 (ARMv7), cr=50c5387d
>    console: CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
>    console: OF: fdt: Machine model: Cubietech Cubieboard
>    [...]
>    console: Boot successful.
>    console: cat /proc/cpuinfo
>    console: / # cat /proc/cpuinfo
>    console: processor      : 0
>    console: model name     : ARMv7 Processor rev 0 (v7l)
>    console: BogoMIPS       : 832.51
>    [...]
>    console: Hardware       : Allwinner sun4i/sun5i Families
>    console: Revision       : 0000
>    console: Serial         : 0000000000000000
>    console: cat /proc/iomem
>    console: / # cat /proc/iomem
>    console: 01c00000-01c0002f : system-control@1c00000
>    console: 01c02000-01c02fff : dma-controller@1c02000
>    console: 01c05000-01c05fff : spi@1c05000
>    console: 01c0b080-01c0b093 : mdio@1c0b080
>    console: 01c0c000-01c0cfff : lcd-controller@1c0c000
>    console: 01c0d000-01c0dfff : lcd-controller@1c0d000
>    console: 01c0f000-01c0ffff : mmc@1c0f000
>    [...]
>    PASS (54.35 s)
>
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
>   tests/acceptance/boot_linux_console.py | 41 ++++++++++++++++++++++++++
>   1 file changed, 41 insertions(+)
>
> diff --git a/tests/acceptance/boot_linux_console.py b/tests/acceptance/boot_linux_console.py
> index 9c6aa2040a..4643f60e37 100644
> --- a/tests/acceptance/boot_linux_console.py
> +++ b/tests/acceptance/boot_linux_console.py
> @@ -400,6 +400,47 @@ class BootLinuxConsole(Test):
>           self.wait_for_console_pattern('Boot successful.')
>           # TODO user command, for now the uart is stuck
>   
> +    def test_arm_cubieboard_initrd(self):

Unless you have two tests, one with and without initrd (not the case 
though) the suffix '_initrd' is useless. So I suggest to remove it.

> +        """
> +        :avocado: tags=arch:arm
> +        :avocado: tags=machine:cubieboard
> +        """
> +        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/sun4i-a10-cubieboard.dtb'
> +        dtb_path = self.extract_from_deb(deb_path, dtb_path)
> +        initrd_url = ('https://github.com/groeck/linux-build-test/raw/'
> +                      '2eb0a73b5d5a28df3170c546ddaaa9757e1e0848/rootfs/'
> +                      'arm/rootfs-armv5.cpio.gz')
> +        initrd_hash = '2b50f1873e113523967806f4da2afe385462ff9b'
> +        initrd_path_gz = self.fetch_asset(initrd_url, asset_hash=initrd_hash)
> +        initrd_path = os.path.join(self.workdir, 'rootfs.cpio')
> +        archive.gzip_uncompress(initrd_path_gz, initrd_path)
> +
> +        self.vm.set_console()
> +        kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE +
> +                               'console=ttyS0,115200 '
> +                               'usbcore.nousb '
> +                               'panic=-1 noreboot')
> +        self.vm.add_args('-kernel', kernel_path,
> +                         '-dtb', dtb_path,
> +                         '-initrd', initrd_path,
> +                         '-append', kernel_command_line,
> +                         '-no-reboot')
> +        self.vm.launch()
> +        self.wait_for_console_pattern('Boot successful.')
> +
> +        exec_command_and_wait_for_pattern(self, 'cat /proc/cpuinfo',
> +                                                'Allwinner sun4i/sun5i')
> +        exec_command_and_wait_for_pattern(self, 'cat /proc/iomem',
> +                                                'system-control@1c00000')
> +        exec_command_and_wait_for_pattern(self, 'reboot',
> +                                                'reboot: Restarting system')


I ran this test case with success, so:

Tested-by: Wainer dos Santos Moschetta <wainersm@redhat.com>

With the comment regarding the _initrd suffix:

Reviewed-by: Wainer dos Santos Moschetta <wainersm@redhat.com>


> +
>       def test_s390x_s390_ccw_virtio(self):
>           """
>           :avocado: tags=arch:s390x
Philippe Mathieu-Daudé Dec. 31, 2019, 11:41 a.m. UTC | #2
On 12/30/19 9:52 PM, Wainer dos Santos Moschetta wrote:
> On 12/30/19 9:09 AM, Philippe Mathieu-Daudé wrote:
>> This test boots a Linux kernel on a CubieBoard and verify
>> the serial output is working.
>>
>> The kernel image and DeviceTree blob are built by the Armbian
>> project (based on Debian):
>> https://docs.armbian.com/Developer-Guide_Build-Preparation/
>>
>> The cpio image used comes from the linux-build-test project:
>> https://github.com/groeck/linux-build-test
>>
>> 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:
>>
>>    $ avocado --show=console run -t machine:cubieboard 
>> tests/acceptance/boot_linux_console.py
>>    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 [410fc080] revision 0 (ARMv7), 
>> cr=50c5387d
>>    console: CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing 
>> instruction cache
>>    console: OF: fdt: Machine model: Cubietech Cubieboard
>>    [...]
>>    console: Boot successful.
>>    console: cat /proc/cpuinfo
>>    console: / # cat /proc/cpuinfo
>>    console: processor      : 0
>>    console: model name     : ARMv7 Processor rev 0 (v7l)
>>    console: BogoMIPS       : 832.51
>>    [...]
>>    console: Hardware       : Allwinner sun4i/sun5i Families
>>    console: Revision       : 0000
>>    console: Serial         : 0000000000000000
>>    console: cat /proc/iomem
>>    console: / # cat /proc/iomem
>>    console: 01c00000-01c0002f : system-control@1c00000
>>    console: 01c02000-01c02fff : dma-controller@1c02000
>>    console: 01c05000-01c05fff : spi@1c05000
>>    console: 01c0b080-01c0b093 : mdio@1c0b080
>>    console: 01c0c000-01c0cfff : lcd-controller@1c0c000
>>    console: 01c0d000-01c0dfff : lcd-controller@1c0d000
>>    console: 01c0f000-01c0ffff : mmc@1c0f000
>>    [...]
>>    PASS (54.35 s)
>>
>> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
>> ---
>>   tests/acceptance/boot_linux_console.py | 41 ++++++++++++++++++++++++++
>>   1 file changed, 41 insertions(+)
>>
>> diff --git a/tests/acceptance/boot_linux_console.py 
>> b/tests/acceptance/boot_linux_console.py
>> index 9c6aa2040a..4643f60e37 100644
>> --- a/tests/acceptance/boot_linux_console.py
>> +++ b/tests/acceptance/boot_linux_console.py
>> @@ -400,6 +400,47 @@ class BootLinuxConsole(Test):
>>           self.wait_for_console_pattern('Boot successful.')
>>           # TODO user command, for now the uart is stuck
>> +    def test_arm_cubieboard_initrd(self):
> 
> Unless you have two tests, one with and without initrd (not the case 
> though) the suffix '_initrd' is useless. So I suggest to remove it.

The next patch adds a SD card test:
https://www.mail-archive.com/qemu-devel@nongnu.org/msg667628.html

If one developer has other tests in progress, but one done, I think it 
might sense to add the full test name when the first patch is merged, so 
next tests don't have to modify the first test name.

>> +        """
>> +        :avocado: tags=arch:arm
>> +        :avocado: tags=machine:cubieboard
>> +        """
>> +        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/sun4i-a10-cubieboard.dtb'
>> +        dtb_path = self.extract_from_deb(deb_path, dtb_path)
>> +        initrd_url = ('https://github.com/groeck/linux-build-test/raw/'
>> +                      '2eb0a73b5d5a28df3170c546ddaaa9757e1e0848/rootfs/'
>> +                      'arm/rootfs-armv5.cpio.gz')
>> +        initrd_hash = '2b50f1873e113523967806f4da2afe385462ff9b'
>> +        initrd_path_gz = self.fetch_asset(initrd_url, 
>> asset_hash=initrd_hash)
>> +        initrd_path = os.path.join(self.workdir, 'rootfs.cpio')
>> +        archive.gzip_uncompress(initrd_path_gz, initrd_path)
>> +
>> +        self.vm.set_console()
>> +        kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE +
>> +                               'console=ttyS0,115200 '
>> +                               'usbcore.nousb '
>> +                               'panic=-1 noreboot')
>> +        self.vm.add_args('-kernel', kernel_path,
>> +                         '-dtb', dtb_path,
>> +                         '-initrd', initrd_path,
>> +                         '-append', kernel_command_line,
>> +                         '-no-reboot')
>> +        self.vm.launch()
>> +        self.wait_for_console_pattern('Boot successful.')
>> +
>> +        exec_command_and_wait_for_pattern(self, 'cat /proc/cpuinfo',
>> +                                                'Allwinner sun4i/sun5i')
>> +        exec_command_and_wait_for_pattern(self, 'cat /proc/iomem',
>> +                                                
>> 'system-control@1c00000')
>> +        exec_command_and_wait_for_pattern(self, 'reboot',
>> +                                                'reboot: Restarting 
>> system')
> 
> 
> I ran this test case with success, so:
> 
> Tested-by: Wainer dos Santos Moschetta <wainersm@redhat.com>

Thanks Wainer!

> 
> With the comment regarding the _initrd suffix:
> 
> Reviewed-by: Wainer dos Santos Moschetta <wainersm@redhat.com>
> 
> 
>> +
>>       def test_s390x_s390_ccw_virtio(self):
>>           """
>>           :avocado: tags=arch:s390x
> 
>
Wainer dos Santos Moschetta Jan. 3, 2020, 1:31 p.m. UTC | #3
On 12/31/19 9:41 AM, Philippe Mathieu-Daudé wrote:
> On 12/30/19 9:52 PM, Wainer dos Santos Moschetta wrote:
>> On 12/30/19 9:09 AM, Philippe Mathieu-Daudé wrote:
>>> This test boots a Linux kernel on a CubieBoard and verify
>>> the serial output is working.
>>>
>>> The kernel image and DeviceTree blob are built by the Armbian
>>> project (based on Debian):
>>> https://docs.armbian.com/Developer-Guide_Build-Preparation/
>>>
>>> The cpio image used comes from the linux-build-test project:
>>> https://github.com/groeck/linux-build-test
>>>
>>> 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:
>>>
>>>    $ avocado --show=console run -t machine:cubieboard 
>>> tests/acceptance/boot_linux_console.py
>>>    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 [410fc080] revision 0 (ARMv7), 
>>> cr=50c5387d
>>>    console: CPU: PIPT / VIPT nonaliasing data cache, VIPT 
>>> nonaliasing instruction cache
>>>    console: OF: fdt: Machine model: Cubietech Cubieboard
>>>    [...]
>>>    console: Boot successful.
>>>    console: cat /proc/cpuinfo
>>>    console: / # cat /proc/cpuinfo
>>>    console: processor      : 0
>>>    console: model name     : ARMv7 Processor rev 0 (v7l)
>>>    console: BogoMIPS       : 832.51
>>>    [...]
>>>    console: Hardware       : Allwinner sun4i/sun5i Families
>>>    console: Revision       : 0000
>>>    console: Serial         : 0000000000000000
>>>    console: cat /proc/iomem
>>>    console: / # cat /proc/iomem
>>>    console: 01c00000-01c0002f : system-control@1c00000
>>>    console: 01c02000-01c02fff : dma-controller@1c02000
>>>    console: 01c05000-01c05fff : spi@1c05000
>>>    console: 01c0b080-01c0b093 : mdio@1c0b080
>>>    console: 01c0c000-01c0cfff : lcd-controller@1c0c000
>>>    console: 01c0d000-01c0dfff : lcd-controller@1c0d000
>>>    console: 01c0f000-01c0ffff : mmc@1c0f000
>>>    [...]
>>>    PASS (54.35 s)
>>>
>>> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
>>> ---
>>>   tests/acceptance/boot_linux_console.py | 41 
>>> ++++++++++++++++++++++++++
>>>   1 file changed, 41 insertions(+)
>>>
>>> diff --git a/tests/acceptance/boot_linux_console.py 
>>> b/tests/acceptance/boot_linux_console.py
>>> index 9c6aa2040a..4643f60e37 100644
>>> --- a/tests/acceptance/boot_linux_console.py
>>> +++ b/tests/acceptance/boot_linux_console.py
>>> @@ -400,6 +400,47 @@ class BootLinuxConsole(Test):
>>>           self.wait_for_console_pattern('Boot successful.')
>>>           # TODO user command, for now the uart is stuck
>>> +    def test_arm_cubieboard_initrd(self):
>>
>> Unless you have two tests, one with and without initrd (not the case 
>> though) the suffix '_initrd' is useless. So I suggest to remove it.
>
> The next patch adds a SD card test:
> https://www.mail-archive.com/qemu-devel@nongnu.org/msg667628.html
>
> If one developer has other tests in progress, but one done, I think it 
> might sense to add the full test name when the first patch is merged, 
> so next tests don't have to modify the first test name.


That's right. Disregard my comment.

- Wainer


>
>>> +        """
>>> +        :avocado: tags=arch:arm
>>> +        :avocado: tags=machine:cubieboard
>>> +        """
>>> +        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/sun4i-a10-cubieboard.dtb'
>>> +        dtb_path = self.extract_from_deb(deb_path, dtb_path)
>>> +        initrd_url = 
>>> ('https://github.com/groeck/linux-build-test/raw/'
>>> + '2eb0a73b5d5a28df3170c546ddaaa9757e1e0848/rootfs/'
>>> +                      'arm/rootfs-armv5.cpio.gz')
>>> +        initrd_hash = '2b50f1873e113523967806f4da2afe385462ff9b'
>>> +        initrd_path_gz = self.fetch_asset(initrd_url, 
>>> asset_hash=initrd_hash)
>>> +        initrd_path = os.path.join(self.workdir, 'rootfs.cpio')
>>> +        archive.gzip_uncompress(initrd_path_gz, initrd_path)
>>> +
>>> +        self.vm.set_console()
>>> +        kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE +
>>> +                               'console=ttyS0,115200 '
>>> +                               'usbcore.nousb '
>>> +                               'panic=-1 noreboot')
>>> +        self.vm.add_args('-kernel', kernel_path,
>>> +                         '-dtb', dtb_path,
>>> +                         '-initrd', initrd_path,
>>> +                         '-append', kernel_command_line,
>>> +                         '-no-reboot')
>>> +        self.vm.launch()
>>> +        self.wait_for_console_pattern('Boot successful.')
>>> +
>>> +        exec_command_and_wait_for_pattern(self, 'cat /proc/cpuinfo',
>>> +                                                'Allwinner 
>>> sun4i/sun5i')
>>> +        exec_command_and_wait_for_pattern(self, 'cat /proc/iomem',
>>> + 'system-control@1c00000')
>>> +        exec_command_and_wait_for_pattern(self, 'reboot',
>>> +                                                'reboot: Restarting 
>>> system')
>>
>>
>> I ran this test case with success, so:
>>
>> Tested-by: Wainer dos Santos Moschetta <wainersm@redhat.com>
>
> Thanks Wainer!
>
>>
>> With the comment regarding the _initrd suffix:
>>
>> Reviewed-by: Wainer dos Santos Moschetta <wainersm@redhat.com>
>>
>>
>>> +
>>>       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..4643f60e37 100644
--- a/tests/acceptance/boot_linux_console.py
+++ b/tests/acceptance/boot_linux_console.py
@@ -400,6 +400,47 @@  class BootLinuxConsole(Test):
         self.wait_for_console_pattern('Boot successful.')
         # TODO user command, for now the uart is stuck
 
+    def test_arm_cubieboard_initrd(self):
+        """
+        :avocado: tags=arch:arm
+        :avocado: tags=machine:cubieboard
+        """
+        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/sun4i-a10-cubieboard.dtb'
+        dtb_path = self.extract_from_deb(deb_path, dtb_path)
+        initrd_url = ('https://github.com/groeck/linux-build-test/raw/'
+                      '2eb0a73b5d5a28df3170c546ddaaa9757e1e0848/rootfs/'
+                      'arm/rootfs-armv5.cpio.gz')
+        initrd_hash = '2b50f1873e113523967806f4da2afe385462ff9b'
+        initrd_path_gz = self.fetch_asset(initrd_url, asset_hash=initrd_hash)
+        initrd_path = os.path.join(self.workdir, 'rootfs.cpio')
+        archive.gzip_uncompress(initrd_path_gz, initrd_path)
+
+        self.vm.set_console()
+        kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE +
+                               'console=ttyS0,115200 '
+                               'usbcore.nousb '
+                               'panic=-1 noreboot')
+        self.vm.add_args('-kernel', kernel_path,
+                         '-dtb', dtb_path,
+                         '-initrd', initrd_path,
+                         '-append', kernel_command_line,
+                         '-no-reboot')
+        self.vm.launch()
+        self.wait_for_console_pattern('Boot successful.')
+
+        exec_command_and_wait_for_pattern(self, 'cat /proc/cpuinfo',
+                                                'Allwinner sun4i/sun5i')
+        exec_command_and_wait_for_pattern(self, 'cat /proc/iomem',
+                                                'system-control@1c00000')
+        exec_command_and_wait_for_pattern(self, 'reboot',
+                                                'reboot: Restarting system')
+
     def test_s390x_s390_ccw_virtio(self):
         """
         :avocado: tags=arch:s390x