[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH 5/9] automation: qemu-smoke-arm32.sh: Modify script to use ImageBuilder
Hi Stefano, On 23/09/2022 00:13, Stefano Stabellini wrote: > > > On Thu, 22 Sep 2022, Michal Orzel wrote: >> Take an example from arm64 qemu test scripts and use ImageBuilder >> to generate u-boot script automatically. Calculating the addresses >> manually is quite error prone and also we will be able to benefit >> from using ImageBuilder when adding domUs to this test in the future. >> >> Install and use u-boot from the debian package. >> Modify the script so that binaries are loaded from u-boot via tftp. > > Great patch! It makes the test a lot better! > > >> Signed-off-by: Michal Orzel <michal.orzel@xxxxxxx> >> --- >> automation/scripts/qemu-smoke-arm32.sh | 57 ++++++++++++-------------- >> 1 file changed, 27 insertions(+), 30 deletions(-) >> >> diff --git a/automation/scripts/qemu-smoke-arm32.sh >> b/automation/scripts/qemu-smoke-arm32.sh >> index 530f3892fdd3..765facbe4d66 100755 >> --- a/automation/scripts/qemu-smoke-arm32.sh >> +++ b/automation/scripts/qemu-smoke-arm32.sh >> @@ -4,7 +4,9 @@ set -ex >> >> export DEBIAN_FRONTENT=noninteractive >> apt-get -qy update >> -apt-get -qy install --no-install-recommends device-tree-compiler \ >> +apt-get -qy install --no-install-recommends u-boot-qemu \ >> + u-boot-tools \ >> + device-tree-compiler \ >> curl \ >> cpio >> >> @@ -20,10 +22,6 @@ tar xvzf ../initrd.tar.gz >> find . | cpio -H newc -o | gzip > ../initrd.gz >> cd .. >> >> -kernel=`stat -L --printf="%s" vmlinuz` >> -initrd=`stat -L --printf="%s" initrd.gz` >> - >> -# For Xen, we need a couple of more node. Dump the DT from QEMU and add them >> # XXX QEMU looks for "efi-virtio.rom" even if it is unneeded >> curl -fsSLO >> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fqemu%2Fqemu%2Fraw%2Fv5.2.0%2Fpc-bios%2Fefi-virtio.rom&data=05%7C01%7Cmichal.orzel%40amd.com%7Cd33d5c4c08934fac0cc208da9ce7a3fb%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637994815957091528%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=JuEapfYVLj5P3S5yY%2BAa47Nk4zgbdymjjsiUTmoTmyk%3D&reserved=0 >> ./qemu-system-arm \ >> @@ -36,31 +34,31 @@ curl -fsSLO >> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fqemu%2Fqemu%2Fraw%2Fv5.2.0%2Fpc-bios%2Fefi-virtio.rom&data=05%7C01%7Cmichal.orzel%40amd.com%7Cd33d5c4c08934fac0cc208da9ce7a3fb%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637994815957091528%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=JuEapfYVLj5P3S5yY%2BAa47Nk4zgbdymjjsiUTmoTmyk%3D&reserved=0 >> -display none \ >> -machine dumpdtb=virt.dtb >> >> -dtc -I dtb -O dts virt.dtb > virt.dts >> +# ImageBuilder >> +echo 'MEMORY_START="0x40000000" >> +MEMORY_END="0x80000000" >> + >> +DEVICE_TREE="virt.dtb" >> +XEN="xen" >> +DOM0_KERNEL="vmlinuz" >> +DOM0_RAMDISK="initrd.gz" >> +DOM0_CMD="console=hvc0 earlyprintk clk_ignore_unused root=/dev/ram0 >> rdinit=/bin/sh" >> +XEN_CMD="console=dtuart dom0_mem=512M bootscrub=0" > > This is missing dtuart=/pl011@9000000 compared to the original Actually this is not needed because we always have stdout-path defined in chosen to point to /pl011@... but I can add this. > > >> +NUM_DOMUS=0 >> + >> +LOAD_CMD="tftpb" >> +BOOT_CMD="bootm" > > "bootm" because "booti" is not available on arm32, right? Exactly. > > >> +UBOOT_SOURCE="boot.source" >> +UBOOT_SCRIPT="boot.scr"' > config >> >> -cat >> virt.dts << EOF >> -/ { >> - chosen { >> - #address-cells = <0x2>; >> - #size-cells = <0x2>; >> - stdout-path = "/pl011@9000000"; >> - xen,xen-bootargs = "console=dtuart dtuart=/pl011@9000000 >> dom0_mem=512M bootscrub=0"; >> - xen,dom0-bootargs = "console=tty0 console=hvc0 earlyprintk >> clk_ignore_unused root=/dev/ram0 rdinit=/bin/sh"; >> - dom0 { >> - compatible = "xen,linux-zimage", >> "xen,multiboot-module"; >> - reg = <0x0 0x1000000 0x0 $kernel>; >> - }; >> - dom0-ramdisk { >> - compatible = "xen,linux-initrd", >> "xen,multiboot-module"; >> - reg = <0x0 0x3200000 0x0 $initrd>; >> - }; >> - }; >> -}; >> -EOF >> -dtc -I dts -O dtb virt.dts > virt.dtb >> +rm -rf imagebuilder >> +git clone >> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgitlab.com%2FViryaOS%2Fimagebuilder&data=05%7C01%7Cmichal.orzel%40amd.com%7Cd33d5c4c08934fac0cc208da9ce7a3fb%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637994815957091528%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=i5N8DXMjn%2F80mdXtc%2FwDGJw6ImUrUAjOg0SJp9CkRdQ%3D&reserved=0 >> +bash imagebuilder/scripts/uboot-script-gen -t tftp -d . -c config >> >> rm -f smoke.serial >> set +e >> +echo " virtio scan; dhcp; tftpb 0x40000000 boot.scr; source 0x40000000"| \ >> timeout -k 1 240 \ >> ./qemu-system-arm \ >> -machine virt \ >> @@ -70,11 +68,10 @@ timeout -k 1 240 \ >> -serial stdio \ >> -monitor none \ >> -display none \ >> - -dtb virt.dtb \ >> -no-reboot \ >> - -kernel ./xen \ >> - -device loader,file=./vmlinuz,addr=0x1000000 \ >> - -device loader,file=./initrd.gz,addr=0x3200000 |& tee smoke.serial >> + -device virtio-net-pci,netdev=n0 \ >> + -netdev user,id=n0,tftp=./ \ >> + -bios /usr/lib/u-boot/qemu_arm/u-boot.bin |& tee smoke.serial >> >> set -e >> (grep -q "^/ #" smoke.serial) || exit 1 >> -- >> 2.25.1 >> ~Michal
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |