aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefano Stabellini2019-07-15 16:07:57 -0700
committerStefano Stabellini2019-08-01 14:57:24 -0700
commit9ab1b1d15ff41829385e65555592cac08448d1e0 (patch)
tree0ee848bfe78d92d7563ddd581b713a2b2010477c
parent83334cb46f749091c66fa426b6e6c0b758ac208a (diff)
Call disk_image from imagebuilder_run, introduce imagebuilder_sd
Signed-off-by: Stefano Stabellini <stefanos@xilinx.com>
-rw-r--r--Dockerfile.image34
-rwxr-xr-xdocker-extras/disk_image (renamed from disk_image)57
-rw-r--r--docker-extras/imagebuilder_sd9
-rw-r--r--docker-extras/imagebuilder_tftp8
-rw-r--r--docker-extras/uboot-script-gen (renamed from docker-extras/imagebuilder_run)23
5 files changed, 80 insertions, 51 deletions
diff --git a/Dockerfile.image b/Dockerfile.image
index 489275b..32b7f61 100644
--- a/Dockerfile.image
+++ b/Dockerfile.image
@@ -1,9 +1,9 @@
-# FROM zynqmp-dt-config-package AS zynqmp-dt-config-package
-# FROM zynqmp-xen-package AS zynqmp-xen-package
-# FROM zynqmp-dom0-kernel-package AS zynqmp-dom0-kernel-package
-# FROM zynqmp-dom0-ramdisk-package AS zynqmp-dom0-ramdisk-package
-# FROM zynqmp-dom1-package AS zynqmp-dom1-package
-# FROM zynqmp-dom2-package AS zynqmp-dom2-package
+FROM zynqmp-dt-config-package AS zynqmp-dt-config-package
+FROM zynqmp-xen-package AS zynqmp-xen-package
+FROM zynqmp-dom0-kernel-package AS zynqmp-dom0-kernel-package
+FROM zynqmp-dom0-ramdisk-package AS zynqmp-dom0-ramdisk-package
+FROM zynqmp-dom1-package AS zynqmp-dom1-package
+FROM zynqmp-dom2-package AS zynqmp-dom2-package
FROM alpine:3.9
@@ -33,17 +33,23 @@ RUN \
uboot-tools && \
\
# Copy run file
- cp /tmp/docker-build/imagebuilder_run /imagebuilder_run && \
- chmod 755 /imagebuilder_run && \
+ cp /tmp/docker-build/imagebuilder_tftp /imagebuilder_tftp && \
+ cp /tmp/docker-build/imagebuilder_sd /imagebuilder_sd && \
+ cp /tmp/docker-build/uboot-script-gen /uboot-script-gen && \
+ cp /tmp/docker-build/disk_image /disk_image && \
+ chmod 755 /imagebuilder_tftp && \
+ chmod 755 /imagebuilder_sd && \
+ chmod 755 /uboot-script-gen && \
+ chmod 755 /disk_image && \
\
# cleanup
cd /root && \
rm -rf /tmp/* && \
rm -f /var/cache/apk/*
-# COPY --from=zynqmp-dom0-kernel-package /home/builder/output-zynqmp-dom0-kernel/ /home/builder/output
-# COPY --from=zynqmp-dom0-ramdisk-package /home/builder/output-zynqmp-dom0-ramdisk/ /home/builder/output
-# COPY --from=zynqmp-dt-config-package /home/builder/output-zynqmp-dt-config/ /home/builder/output/
-# COPY --from=zynqmp-xen-package /home/builder/output-zynqmp-xen/ /home/builder/output
-# COPY --from=zynqmp-dom1-package /home/builder/output-zynqmp-dom1/ /home/builder/output/zynqmp-dom1/
-# COPY --from=zynqmp-dom2-package /home/builder/output-zynqmp-dom2/ /home/builder/output/zynqmp-dom2/
+COPY --from=zynqmp-dom0-kernel-package /home/builder/output-zynqmp-dom0-kernel/ /home/builder/output
+COPY --from=zynqmp-dom0-ramdisk-package /home/builder/output-zynqmp-dom0-ramdisk/ /home/builder/output
+COPY --from=zynqmp-dt-config-package /home/builder/output-zynqmp-dt-config/ /home/builder/output/
+COPY --from=zynqmp-xen-package /home/builder/output-zynqmp-xen/ /home/builder/output
+COPY --from=zynqmp-dom1-package /home/builder/output-zynqmp-dom1/ /home/builder/output/zynqmp-dom1/
+COPY --from=zynqmp-dom2-package /home/builder/output-zynqmp-dom2/ /home/builder/output/zynqmp-dom2/
diff --git a/disk_image b/docker-extras/disk_image
index 3cb0394..2d70ad3 100755
--- a/disk_image
+++ b/docker-extras/disk_image
@@ -5,7 +5,7 @@ set -e -x
# Used to maintain intermediary state. (Not currently used)
DESTDIR="$(mktemp -d /tmp/imagebuilder-zynqmp.XXXXXX)"
-
+UBOOT_OUT="/tmp/output"
OUTDIR="/tmp/img"
mkdir ${OUTDIR}
@@ -73,34 +73,33 @@ mkfs.ext4 -L vos_a -F /dev/mapper/diskimage1
# format vos_b partition
mkfs.ext4 -L vos_b -F /dev/mapper/diskimage2
-#
-# ** TODO **
-#
-# # create mount point and mount vos_a
-# mkdir -p ${DESTDIR}/part/vos_a
-# mount -t ext4 /dev/mapper/diskimage2 $DESTDIR/part/vos_a
-#
-# # Extract rootfs cpio archive into `.../part/vos_a`
-# $(cd ${DESTDIR}/part/vos_a; cpio -idm < ${DESTDIR}/output-dom0-builder/rootfs.cpio)
-#
-# # copy over files needed in `/boot`
-# mkdir ${DESTDIR}/part/vos_a/boot
-# # linux
-# cp ${DESTDIR}/output-dom0-builder/initramfs-${_fullkver} ${DESTDIR}/part/vos_a/boot
-# cp ${DESTDIR}/output-dom0-builder/modloop-${_fullkver} ${DESTDIR}/part/vos_a/boot
-# cp ${DESTDIR}/output-dom0-builder/vmlinuz-${_fullkver} ${DESTDIR}/part/vos_a/boot
-# # xen
-# cp ${DESTDIR}/viryaos-xen/boot/xen-${_fullxenver} ${DESTDIR}/part/vos_a/boot
-# # dtb
-# cp ${DESTDIR}/viryaos.dtb ${DESTDIR}/part/vos_a/boot
-#
-# # unmount
-# sync
-#
-# # This fails for some reason. It could work now because we are not using qemu-user
-# # fstrim $DESTDIR/part/vos_a
-#
-# umount $DESTDIR/part/vos_a
+
+# create mount point and mount disk2
+mkdir -p ${DESTDIR}/part/disk2
+mount -t ext4 /dev/mapper/diskimage2 $DESTDIR/part/disk2
+
+# Extract rootfs cpio archive into `.../part/vos_a`
+cd ${DESTDIR}/part/disk2
+cat ${UBOOT_OUT}/dom0-ramdisk.cpio | gunzip | cpio -id
+mv ${UBOOT_OUT}/dom0-ramdisk.cpio* /tmp
+
+# umount
+sync
+cd /
+umount $DESTDIR/part/disk2
+
+# create mount point and mount disk1
+mkdir -p ${DESTDIR}/part/disk1
+mount -t ext4 /dev/mapper/diskimage1 $DESTDIR/part/disk1
+
+# copy over files needed
+cp -r $UBOOT_OUT/* ${DESTDIR}/part/disk1/
+
+# unmount
+sync
+# This fails for some reason. It could work now because we are not using qemu-user
+# fstrim $DESTDIR/part/disk1
+umount $DESTDIR/part/disk1
kpartx -d /dev/mapper/diskimage
dmsetup remove diskimage
diff --git a/docker-extras/imagebuilder_sd b/docker-extras/imagebuilder_sd
new file mode 100644
index 0000000..d3c98fb
--- /dev/null
+++ b/docker-extras/imagebuilder_sd
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+rm -rf /tmp/output
+mkdir /tmp/output
+cd /tmp/output
+cp -r /home/builder/output/* .
+export LOAD_CMD="load scsi 0:1"
+bash /uboot-script-gen
+bash /disk_image
diff --git a/docker-extras/imagebuilder_tftp b/docker-extras/imagebuilder_tftp
new file mode 100644
index 0000000..2bc12f2
--- /dev/null
+++ b/docker-extras/imagebuilder_tftp
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+rm -rf /tmp/output
+mkdir /tmp/output
+cd /tmp/output
+cp -r /home/builder/output/* .
+export LOAD_CMD="tftpb"
+bash /uboot-script-gen
diff --git a/docker-extras/imagebuilder_run b/docker-extras/uboot-script-gen
index ab0cbe4..ebb0f7a 100644
--- a/docker-extras/imagebuilder_run
+++ b/docker-extras/uboot-script-gen
@@ -1,5 +1,8 @@
#!/bin/bash
+# LOAD_CMD="tftpb"
+# LOAD_CMD="load scsi 0:1"
+
offset=$((2*1024*1024))
filesize=0
@@ -49,8 +52,12 @@ function device_tree_editing()
echo "fdt mknod /chosen dom0" >> $UBOOT_SOURCE
echo "fdt set /chosen/dom0 compatible \"xen,linux-zimage\" \"xen,multiboot-module\"" >> $UBOOT_SOURCE
echo "fdt set /chosen/dom0 reg <0x0 "$dom0_kernel_addr" 0x0 "$dom0_kernel_size">" >> $UBOOT_SOURCE
- echo "fdt set /chosen/dom0 bootargs \"console=hvc0 earlycon=xen earlyprintk=xen\"" >> $UBOOT_SOURCE
-
+ if test "$LOAD_CMD" = "tftpb"
+ then
+ echo "fdt set /chosen/dom0 bootargs \"console=hvc0 earlycon=xen earlyprintk=xen\"" >> $UBOOT_SOURCE
+ else
+ echo "fdt set /chosen/dom0 bootargs \"console=hvc0 earlycon=xen earlyprintk=xen root=/dev/mmcblk0p2\"" >> $UBOOT_SOURCE
+ fi
i=0
while test $i -lt $NUM_DOMUS
do
@@ -119,16 +126,17 @@ function check_compressed_file_type()
check_file_type $filename "$type"
}
-rm -rf /tmp/output
-mkdir /tmp/output
-cd /tmp/output
-cp -r /home/builder/output/* .
. config
rm -f $UBOOT_SOURCE $UBOOT_SCRIPT
memaddr=$(( $MEMORY_START + $offset ))
memaddr=`printf "0x%X\n" $memaddr`
+if [[ $LOAD_CMD = *scsi* ]]
+then
+ echo "scsi scan" >> $UBOOT_SOURCE
+fi
+
check_compressed_file_type $XEN "MS-DOS executable"
xen_addr=$memaddr
mkimage -A arm64 -T kernel -C none -a $xen_addr -e $xen_addr -d $XEN "$XEN".uboot &> /dev/null
@@ -139,7 +147,7 @@ dom0_kernel_addr=$memaddr
load_file $DOM0_KERNEL
dom0_kernel_size=$(( $memaddr - $dom0_kernel_addr ))
-if test "$DOM0_RAMDISK"
+if test "$DOM0_RAMDISK" && [[ $LOAD_CMD = "tftpb" ]]
then
check_compressed_file_type $DOM0_RAMDISK "cpio archive"
dom0_ramdisk_addr=$memaddr
@@ -191,5 +199,4 @@ memaddr=$(( $memaddr + $offset + $offset ))
memaddr=`printf "0x%X\n" $memaddr`
uboot_addr="$memaddr"
mkimage -A arm64 -T script -C none -a $uboot_addr -e $uboot_addr -d $UBOOT_SOURCE "$UBOOT_SCRIPT" &> /dev/null
-echo "Generated uboot script $UBOOT_SCRIPT, to be loaded at address $uboot_addr:"
echo "$LOAD_CMD $uboot_addr $UBOOT_SCRIPT; source $uboot_addr"