xref: /openbmc/openbmc-build-scripts/scripts/test-qemu (revision 0eb7ce02db84db872ab9d4592fd2cc7f0a743e76)
1*0eb7ce02SAndrew Jeffery#!/bin/sh
2*0eb7ce02SAndrew Jeffery
3*0eb7ce02SAndrew Jefferyset -eu
4*0eb7ce02SAndrew Jefferyset -x
5*0eb7ce02SAndrew Jeffery
6*0eb7ce02SAndrew Jeffery# AST2400
7*0eb7ce02SAndrew JefferyPALMETTO_MTD_URL='https://jenkins.openbmc.org/job/ci-openbmc/distro=ubuntu,label=docker-builder,target=palmetto/lastStableBuild/artifact/openbmc/build/tmp/deploy/images/palmetto/obmc-phosphor-image-palmetto.static.mtd'
8*0eb7ce02SAndrew JefferyPALMETTO_MTD="$(basename "$PALMETTO_MTD_URL")"
9*0eb7ce02SAndrew Jeffery
10*0eb7ce02SAndrew Jeffery# AST2500
11*0eb7ce02SAndrew JefferyWITHERSPOON_MTD_URL='https://jenkins.openbmc.org/job/ci-openbmc/distro=ubuntu,label=docker-builder,target=witherspoon/lastStableBuild/artifact/openbmc/build/tmp/deploy/images/witherspoon/obmc-phosphor-image-witherspoon.ubi.mtd'
12*0eb7ce02SAndrew JefferyWITHERSPOON_MTD="$(basename "$WITHERSPOON_MTD_URL")"
13*0eb7ce02SAndrew Jeffery
14*0eb7ce02SAndrew Jeffery# AST2600
15*0eb7ce02SAndrew JefferyTACOMA_WIC_XZ_URL='https://jenkins.openbmc.org/job/ci-openbmc/distro=ubuntu,label=docker-builder,target=witherspoon-tacoma/lastStableBuild/artifact/openbmc/build/tmp/deploy/images/witherspoon-tacoma/obmc-phosphor-image-witherspoon-tacoma.wic.xz'
16*0eb7ce02SAndrew JefferyTACOMA_WIC_XZ="$(basename "$TACOMA_WIC_XZ_URL")"
17*0eb7ce02SAndrew JefferyTACOMA_MMC="$(basename "$TACOMA_WIC_XZ_URL" .xz)"
18*0eb7ce02SAndrew Jeffery
19*0eb7ce02SAndrew JefferyTACOMA_FITIMAGE_URL='https://jenkins.openbmc.org/job/ci-openbmc/distro=ubuntu,label=docker-builder,target=witherspoon-tacoma/lastStableBuild/artifact/openbmc/build/tmp/deploy/images/witherspoon-tacoma/fitImage-obmc-phosphor-initramfs-witherspoon-tacoma-witherspoon-tacoma'
20*0eb7ce02SAndrew JefferyTACOMA_FITIMAGE="$(basename "$TACOMA_FITIMAGE_URL")"
21*0eb7ce02SAndrew Jeffery
22*0eb7ce02SAndrew JefferyTACOMA_KERNEL=$(mktemp --suffix .kernel)
23*0eb7ce02SAndrew JefferyTACOMA_DTB=$(mktemp --suffix .dtb)
24*0eb7ce02SAndrew JefferyTACOMA_INITRD=$(mktemp --suffix .initrd)
25*0eb7ce02SAndrew Jeffery
26*0eb7ce02SAndrew Jefferycleanup() {
27*0eb7ce02SAndrew Jeffery    rm -f $PALMETTO_MTD
28*0eb7ce02SAndrew Jeffery    rm -f $WITHERSPOON_MTD
29*0eb7ce02SAndrew Jeffery    rm -f $TACOMA_WIC_XZ $TACOMA_MMC
30*0eb7ce02SAndrew Jeffery    rm -f $TACOMA_FITIMAGE
31*0eb7ce02SAndrew Jeffery    rm -f $TACOMA_KERNEL $TACOMA_DTB $TACOMA_INITRD
32*0eb7ce02SAndrew Jeffery}
33*0eb7ce02SAndrew Jeffery
34*0eb7ce02SAndrew Jefferytrap cleanup EXIT 2
35*0eb7ce02SAndrew Jeffery
36*0eb7ce02SAndrew Jeffery# AST2400
37*0eb7ce02SAndrew Jefferywget "$PALMETTO_MTD_URL"
38*0eb7ce02SAndrew Jefferyexpect \
39*0eb7ce02SAndrew Jeffery    -c "spawn qemu-system-arm \
40*0eb7ce02SAndrew Jeffery            -M palmetto-bmc \
41*0eb7ce02SAndrew Jeffery            -drive file=${PALMETTO_MTD},if=mtd,format=raw \
42*0eb7ce02SAndrew Jeffery            -nographic \
43*0eb7ce02SAndrew Jeffery            -net nic \
44*0eb7ce02SAndrew Jeffery            -net user,hostfwd=:127.0.0.1:2222-:22,hostfwd=:127.0.0.1:2443-:443,hostname=qemu" \
45*0eb7ce02SAndrew Jeffery    -c 'set timeout 120' \
46*0eb7ce02SAndrew Jeffery    -c 'expect timeout { exit 1 } "login:"' \
47*0eb7ce02SAndrew Jeffery    -c 'spawn sshpass -p 0penBmc \
48*0eb7ce02SAndrew Jeffery            ssh -o UserKnownHostsFile=/dev/null \
49*0eb7ce02SAndrew Jeffery                -o StrictHostKeyChecking=no \
50*0eb7ce02SAndrew Jeffery                -p2222 \
51*0eb7ce02SAndrew Jeffery                root@localhost \
52*0eb7ce02SAndrew Jeffery                journalctl -b' \
53*0eb7ce02SAndrew Jeffery    -c 'expect -i $spawn_id eof'
54*0eb7ce02SAndrew Jeffery
55*0eb7ce02SAndrew Jeffery# AST2500
56*0eb7ce02SAndrew Jefferywget "$WITHERSPOON_MTD_URL"
57*0eb7ce02SAndrew Jefferyexpect \
58*0eb7ce02SAndrew Jeffery    -c "spawn qemu-system-arm \
59*0eb7ce02SAndrew Jeffery            -M witherspoon-bmc \
60*0eb7ce02SAndrew Jeffery            -drive file=${WITHERSPOON_MTD},if=mtd,format=raw \
61*0eb7ce02SAndrew Jeffery            -nographic \
62*0eb7ce02SAndrew Jeffery            -net nic \
63*0eb7ce02SAndrew Jeffery            -net user,hostfwd=:127.0.0.1:2222-:22,hostfwd=:127.0.0.1:2443-:443,hostname=qemu" \
64*0eb7ce02SAndrew Jeffery    -c 'set timeout 120' \
65*0eb7ce02SAndrew Jeffery    -c 'expect timeout { exit 1 } "login:"' \
66*0eb7ce02SAndrew Jeffery    -c 'spawn sshpass -p 0penBmc \
67*0eb7ce02SAndrew Jeffery            ssh -o UserKnownHostsFile=/dev/null \
68*0eb7ce02SAndrew Jeffery                -o StrictHostKeyChecking=no \
69*0eb7ce02SAndrew Jeffery                -p2222 \
70*0eb7ce02SAndrew Jeffery                root@localhost \
71*0eb7ce02SAndrew Jeffery                journalctl -b' \
72*0eb7ce02SAndrew Jeffery    -c 'expect -i $spawn_id eof'
73*0eb7ce02SAndrew Jeffery
74*0eb7ce02SAndrew Jeffery# AST2600
75*0eb7ce02SAndrew Jefferywget "$TACOMA_WIC_XZ_URL"
76*0eb7ce02SAndrew Jefferyunxz $TACOMA_WIC_XZ
77*0eb7ce02SAndrew Jefferytruncate -s 16G $TACOMA_MMC
78*0eb7ce02SAndrew Jeffery
79*0eb7ce02SAndrew Jefferywget $TACOMA_FITIMAGE_URL
80*0eb7ce02SAndrew Jefferydumpimage -T flat_dt -p 0 -o $TACOMA_KERNEL $TACOMA_FITIMAGE
81*0eb7ce02SAndrew Jefferydumpimage -T flat_dt -p 1 -o $TACOMA_DTB $TACOMA_FITIMAGE
82*0eb7ce02SAndrew Jefferydumpimage -T flat_dt -p 2 -o $TACOMA_INITRD $TACOMA_FITIMAGE
83*0eb7ce02SAndrew Jeffery
84*0eb7ce02SAndrew Jefferyexpect \
85*0eb7ce02SAndrew Jeffery    -c "spawn qemu-system-arm -M tacoma-bmc \
86*0eb7ce02SAndrew Jeffery            -kernel $TACOMA_KERNEL \
87*0eb7ce02SAndrew Jeffery            -dtb $TACOMA_DTB \
88*0eb7ce02SAndrew Jeffery            -initrd $TACOMA_INITRD \
89*0eb7ce02SAndrew Jeffery            -drive file=${TACOMA_MMC},if=sd,format=raw,index=2 \
90*0eb7ce02SAndrew Jeffery            -net nic \
91*0eb7ce02SAndrew Jeffery            -net user,hostfwd=:127.0.0.1:2222-:22,hostfwd=:127.0.0.1:2443-:443,hostname=qemu \
92*0eb7ce02SAndrew Jeffery            -nographic \
93*0eb7ce02SAndrew Jeffery            -append \"console=ttyS4,115200n8 rootwait root=PARTLABEL=rofs-a\"" \
94*0eb7ce02SAndrew Jeffery    -c 'set timeout 120' \
95*0eb7ce02SAndrew Jeffery    -c 'expect timeout { exit 1 } "login:"' \
96*0eb7ce02SAndrew Jeffery    -c 'spawn sshpass -p 0penBmc \
97*0eb7ce02SAndrew Jeffery            ssh -o UserKnownHostsFile=/dev/null \
98*0eb7ce02SAndrew Jeffery                -o StrictHostKeyChecking=no \
99*0eb7ce02SAndrew Jeffery                -p2222 \
100*0eb7ce02SAndrew Jeffery                root@localhost \
101*0eb7ce02SAndrew Jeffery                journalctl -b' \
102*0eb7ce02SAndrew Jeffery    -c 'expect -i $spawn_id eof'
103