blob: fd8ba8d022c87e3d33d83327bd8f9003fa4eb698 [file] [log] [blame]
#!/bin/bash
set -eu
set -x
# AST2400
PALMETTO_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'
PALMETTO_MTD="$(basename "$PALMETTO_MTD_URL")"
# AST2500
WITHERSPOON_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'
WITHERSPOON_MTD="$(basename "$WITHERSPOON_MTD_URL")"
# AST2600
TACOMA_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'
TACOMA_WIC_XZ="$(basename "$TACOMA_WIC_XZ_URL")"
TACOMA_MMC="$(basename "$TACOMA_WIC_XZ_URL" .xz)"
TACOMA_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'
TACOMA_FITIMAGE="$(basename "$TACOMA_FITIMAGE_URL")"
TACOMA_KERNEL=$(mktemp --suffix .kernel)
TACOMA_DTB=$(mktemp --suffix .dtb)
TACOMA_INITRD=$(mktemp --suffix .initrd)
cleanup() {
rm -f "$PALMETTO_MTD"
rm -f "$WITHERSPOON_MTD"
rm -f "$TACOMA_WIC_XZ" "$TACOMA_MMC"
rm -f "$TACOMA_FITIMAGE"
rm -f "$TACOMA_KERNEL" "$TACOMA_DTB $TACOMA_INITRD"
}
trap cleanup EXIT 2
# AST2400
wget "$PALMETTO_MTD_URL"
# shellcheck disable=SC2016 # 'expect' strings
expect \
-c "spawn qemu-system-arm \
-M palmetto-bmc \
-drive file=${PALMETTO_MTD},if=mtd,format=raw \
-nographic \
-net nic \
-net user,hostfwd=:127.0.0.1:2222-:22,hostfwd=:127.0.0.1:2443-:443,hostname=qemu" \
-c 'set timeout 120' \
-c 'expect timeout { exit 1 } "login:"' \
-c 'spawn sshpass -p 0penBmc ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p2222 root@localhost journalctl -b' \
-c 'expect -i $spawn_id eof'
# AST2500
wget "$WITHERSPOON_MTD_URL"
# shellcheck disable=SC2016 # 'expect' strings
expect \
-c "spawn qemu-system-arm \
-M witherspoon-bmc \
-drive file=${WITHERSPOON_MTD},if=mtd,format=raw \
-nographic \
-net nic \
-net user,hostfwd=:127.0.0.1:2222-:22,hostfwd=:127.0.0.1:2443-:443,hostname=qemu" \
-c 'set timeout 120' \
-c 'expect timeout { exit 1 } "login:"' \
-c 'spawn sshpass -p 0penBmc ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p2222 root@localhost journalctl -b' \
-c 'expect -i $spawn_id eof'
# AST2600
wget "$TACOMA_WIC_XZ_URL"
unxz "$TACOMA_WIC_XZ"
truncate -s 16G "$TACOMA_MMC"
wget "$TACOMA_FITIMAGE_URL"
dumpimage -T flat_dt -p 0 -o "$TACOMA_KERNEL" "$TACOMA_FITIMAGE"
dumpimage -T flat_dt -p 1 -o "$TACOMA_DTB" "$TACOMA_FITIMAGE"
dumpimage -T flat_dt -p 2 -o "$TACOMA_INITRD" "$TACOMA_FITIMAGE"
# shellcheck disable=SC2016 # 'expect' strings
expect \
-c "spawn qemu-system-arm -M tacoma-bmc \
-kernel $TACOMA_KERNEL \
-dtb $TACOMA_DTB \
-initrd $TACOMA_INITRD \
-drive file=${TACOMA_MMC},if=sd,format=raw,index=2 \
-net nic \
-net user,hostfwd=:127.0.0.1:2222-:22,hostfwd=:127.0.0.1:2443-:443,hostname=qemu \
-nographic \
-append \"console=ttyS4,115200n8 rootwait root=PARTLABEL=rofs-a\"" \
-c 'set timeout 120' \
-c 'expect timeout { exit 1 } "login:"' \
-c 'spawn sshpass -p 0penBmc ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p2222 root@localhost journalctl -b' \
-c 'expect -i $spawn_id eof'