[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
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://github.com/qemu/qemu/raw/v5.2.0/pc-bios/efi-virtio.rom > ./qemu-system-arm \ > @@ -36,31 +34,31 @@ curl -fsSLO > https://github.com/qemu/qemu/raw/v5.2.0/pc-bios/efi-virtio.rom > -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 > +NUM_DOMUS=0 > + > +LOAD_CMD="tftpb" > +BOOT_CMD="bootm" "bootm" because "booti" is not available on arm32, right? > +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://gitlab.com/ViryaOS/imagebuilder > +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 >
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |