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é <f4...@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 e40b84651b..682b801b4f 100644 --- a/tests/acceptance/boot_linux_console.py +++ b/tests/acceptance/boot_linux_console.py @@ -16,6 +16,7 @@ import shutil 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 @@ -485,6 +486,33 @@ class BootLinuxConsole(Test): 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