* Add support to boot the 'qemuzynq' machine in qemu-system-arm
* Use the specific machine model for Zynq 'xilinx-zynq-a9'
* Use the DTB generated from the kernel build as the DTB for boot
* Force use of initrd rootfs (either in ext or cpio formats)
Signed-off-by: Nathan Rossi <nathan.rossi@xilinx.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
while true; do
arg=${1}
case "$arg" in
- "qemux86" | "qemux86-64" | "qemuarm" | "qemumips" | "qemumipsel" | "qemumips64" | "qemush4" | "qemuppc")
+ "qemux86" | "qemux86-64" | "qemuarm" | "qemumips" | "qemumipsel" | \
+ "qemumips64" | "qemush4" | "qemuppc" | "qemuzynq")
[ -z "$MACHINE" ] && MACHINE=$arg || \
error "conflicting MACHINE types [$MACHINE] and [$arg]"
;;
QEMUPPC_DEFAULT_KERNEL=vmlinux-qemuppc.bin
QEMUPPC_DEFAULT_FSTYPE=ext3
+QEMUZYNQ_DEFAULT_KERNEL=uImage
+QEMUZYNQ_DEFAULT_FSTYPE=cpio
+
AKITA_DEFAULT_KERNEL=zImage-akita.bin
AKITA_DEFAULT_FSTYPE=jffs2
"qemush4")
mem_size=1024
;;
+ "qemuzynq")
+ mem_size=1024
+ ;;
*)
mem_size=64
;;
"qemuarmv7") ;;
"qemux86") ;;
"qemux86-64") ;;
+ "qemuzynq") ;;
"akita") ;;
"spitz") ;;
*)
fi
fi
+if [ "$MACHINE" = "qemuzynq" ]; then
+ QEMU=qemu-system-arm
+ QEMU_SYSTEM_OPTIONS="-M xilinx-zynq-a9 -serial null -serial mon:stdio -dtb $KERNEL-$MACHINE.dtb"
+ # zynq serial ports are named 'ttyPS0' and 'ttyPS1', fixup the default values
+ SCRIPT_KERNEL_OPT=$(echo "$SCRIPT_KERNEL_OPT" | sed 's/console=ttyS/console=ttyPS/g')
+ if [ "${FSTYPE:0:3}" = "ext" -o "${FSTYPE:0:4}" = "cpio" ]; then
+ KERNCMDLINE="earlyprintk root=/dev/ram rw"
+ QEMUOPTIONS="$QEMU_SYSTEM_OPTIONS -initrd $ROOTFS"
+ fi
+fi
+
if [ "x$RAMFS" = "xtrue" ]; then
QEMUOPTIONS="-initrd $ROOTFS -nographic"
KERNCMDLINE="root=/dev/ram0 debugshell"