This test runs U-Boot on the Raspberry Pi 2.
It is very simple and fast:
$ avocado --show=app,console run -t raspi2 -t u-boot tests/acceptance/
JOB LOG : avocado/job-results/job-2020-01-20T23.40-2424777/job.log
(1/1) tests/acceptance/boot_linux_console.py:BootLinuxConsole.test_arm_raspi2_uboot:
console: MMC: sdhci@7e300000: 0
console: Loading Environment from FAT... Card did not respond to voltage select!
console: In: serial
console: Out: vidconsole
console: Err: vidconsole
console: Net: No ethernet found.
console: starting USB...
console: USB0: Port not available.
console: Hit any key to stop autoboot: 0
console: U-Boot>
console: U-Boot> bdinfo
console: arch_number = 0x00000000
console: boot_params = 0x00000100
console: DRAM bank = 0x00000000
console: -> start = 0x00000000
console: -> size = 0x3c000000
console: baudrate = 115200 bps
console: TLB addr = 0x3bff0000
console: relocaddr = 0x3bf64000
console: reloc off = 0x3bf5c000
console: irq_sp = 0x3bb5fec0
console: sp start = 0x3bb5feb0
console: Early malloc usage: 2a4 / 400
console: fdt_blob = 0x3bfbdfb0
console: U-Boot> version
console: U-Boot 2019.01+dfsg-7 (May 14 2019 - 02:07:44 +0000)
console: gcc (Debian 8.3.0-7) 8.3.0
console: GNU ld (GNU Binutils for Debian) 2.31.1
console: U-Boot> reset
console: resetting ...
PASS (0.46 s)
U-Boot is built by the Debian project, see:
https://wiki.debian.org/InstallingDebianOn/Allwinner#Creating_a_bootable_SD_Card_with_u-boot
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
tests/acceptance/boot_linux_console.py | 28 ++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
diff --git a/tests/acceptance/boot_linux_console.py b/tests/acceptance/boot_linux_console.py
index 3d442b6cd1..3b1952b2df 100644
--- a/tests/acceptance/boot_linux_console.py
+++ b/tests/acceptance/boot_linux_console.py
@@ -16,6 +16,7 @@
from avocado import skipUnless
from avocado_qemu import Test
from avocado_qemu import exec_command_and_wait_for_pattern
+from avocado_qemu import interrupt_interactive_console_until_pattern
from avocado_qemu import wait_for_console_pattern
from avocado.utils import process
from avocado.utils import archive
@@ -575,6 +576,33 @@ def test_arm_cubieboard_sata(self):
exec_command_and_wait_for_pattern(self, 'reboot',
'reboot: Restarting system')
+ def test_arm_raspi2_uboot(self):
+ """
+ :avocado: tags=arch:arm
+ :avocado: tags=machine:raspi2
+ :avocado: tags=u-boot
+ """
+ deb_url = ('https://snapshot.debian.org/archive/debian/'
+ '20190514T084354Z/pool/main/u/u-boot/'
+ 'u-boot-rpi_2019.01%2Bdfsg-7_armhf.deb')
+ deb_hash = 'ad858cf3afe623b6c3fa2e20dcdd1768fcb9ae83'
+ deb_path = self.fetch_asset(deb_url, asset_hash=deb_hash)
+ uboot_path = '/usr/lib/u-boot/rpi_2/uboot.elf'
+ uboot_path = self.extract_from_deb(deb_path, uboot_path)
+
+ self.vm.set_console()
+ self.vm.add_args('-kernel', uboot_path,
+ # VideoCore starts CPU with only 1 core enabled
+ '-global', 'bcm2836.enabled-cpus=1',
+ '-no-reboot')
+ self.vm.launch()
+ interrupt_interactive_console_until_pattern(self,
+ 'Hit any key to stop autoboot:',
+ 'Config file not found')
+ exec_command_and_wait_for_pattern(self, 'bdinfo', 'U-Boot')
+ exec_command_and_wait_for_pattern(self, 'version', 'U-Boot')
+ exec_command_and_wait_for_pattern(self, 'reset', 'resetting ...')
+
def test_s390x_s390_ccw_virtio(self):
"""
:avocado: tags=arch:s390x
--
2.21.1
On 2/15/20 8:22 PM, Philippe Mathieu-Daudé wrote:
> This test runs U-Boot on the Raspberry Pi 2.
> It is very simple and fast:
>
> $ avocado --show=app,console run -t raspi2 -t u-boot tests/acceptance/
> JOB LOG : avocado/job-results/job-2020-01-20T23.40-2424777/job.log
> (1/1) tests/acceptance/boot_linux_console.py:BootLinuxConsole.test_arm_raspi2_uboot:
> console: MMC: sdhci@7e300000: 0
> console: Loading Environment from FAT... Card did not respond to voltage select!
> console: In: serial
> console: Out: vidconsole
> console: Err: vidconsole
> console: Net: No ethernet found.
> console: starting USB...
> console: USB0: Port not available.
> console: Hit any key to stop autoboot: 0
> console: U-Boot>
> console: U-Boot> bdinfo
> console: arch_number = 0x00000000
> console: boot_params = 0x00000100
> console: DRAM bank = 0x00000000
> console: -> start = 0x00000000
> console: -> size = 0x3c000000
> console: baudrate = 115200 bps
> console: TLB addr = 0x3bff0000
> console: relocaddr = 0x3bf64000
> console: reloc off = 0x3bf5c000
> console: irq_sp = 0x3bb5fec0
> console: sp start = 0x3bb5feb0
> console: Early malloc usage: 2a4 / 400
> console: fdt_blob = 0x3bfbdfb0
> console: U-Boot> version
> console: U-Boot 2019.01+dfsg-7 (May 14 2019 - 02:07:44 +0000)
> console: gcc (Debian 8.3.0-7) 8.3.0
> console: GNU ld (GNU Binutils for Debian) 2.31.1
> console: U-Boot> reset
> console: resetting ...
> PASS (0.46 s)
>
> U-Boot is built by the Debian project, see:
> https://wiki.debian.org/InstallingDebianOn/Allwinner#Creating_a_bootable_SD_Card_with_u-boot
>
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Luc Michel <luc.michel@greensocs.com>
> ---
> tests/acceptance/boot_linux_console.py | 28 ++++++++++++++++++++++++++
> 1 file changed, 28 insertions(+)
>
> diff --git a/tests/acceptance/boot_linux_console.py b/tests/acceptance/boot_linux_console.py
> index 3d442b6cd1..3b1952b2df 100644
> --- a/tests/acceptance/boot_linux_console.py
> +++ b/tests/acceptance/boot_linux_console.py
> @@ -16,6 +16,7 @@
> from avocado import skipUnless
> from avocado_qemu import Test
> from avocado_qemu import exec_command_and_wait_for_pattern
> +from avocado_qemu import interrupt_interactive_console_until_pattern
> from avocado_qemu import wait_for_console_pattern
> from avocado.utils import process
> from avocado.utils import archive
> @@ -575,6 +576,33 @@ def test_arm_cubieboard_sata(self):
> exec_command_and_wait_for_pattern(self, 'reboot',
> 'reboot: Restarting system')
>
> + def test_arm_raspi2_uboot(self):
> + """
> + :avocado: tags=arch:arm
> + :avocado: tags=machine:raspi2
> + :avocado: tags=u-boot
> + """
> + deb_url = ('https://snapshot.debian.org/archive/debian/'
> + '20190514T084354Z/pool/main/u/u-boot/'
> + 'u-boot-rpi_2019.01%2Bdfsg-7_armhf.deb')
> + deb_hash = 'ad858cf3afe623b6c3fa2e20dcdd1768fcb9ae83'
> + deb_path = self.fetch_asset(deb_url, asset_hash=deb_hash)
> + uboot_path = '/usr/lib/u-boot/rpi_2/uboot.elf'
> + uboot_path = self.extract_from_deb(deb_path, uboot_path)
> +
> + self.vm.set_console()
> + self.vm.add_args('-kernel', uboot_path,
> + # VideoCore starts CPU with only 1 core enabled
> + '-global', 'bcm2836.enabled-cpus=1',
> + '-no-reboot')
> + self.vm.launch()
> + interrupt_interactive_console_until_pattern(self,
> + 'Hit any key to stop autoboot:',
> + 'Config file not found')
> + exec_command_and_wait_for_pattern(self, 'bdinfo', 'U-Boot')
> + exec_command_and_wait_for_pattern(self, 'version', 'U-Boot')
> + exec_command_and_wait_for_pattern(self, 'reset', 'resetting ...')
> +
> def test_s390x_s390_ccw_virtio(self):
> """
> :avocado: tags=arch:s390x
>
© 2016 - 2025 Red Hat, Inc.