On 14 January 2017 at 10:32, Alistair Francis
<alistair.fran...@xilinx.com> wrote:
> This patch adds support to the general include file to boot Xilinx's
> QEMU machines.
>
> Signed-off-by: Alistair Francis <alistair.fran...@xilinx.com>
> Signed-off-by: Nathan Rossi <nat...@nathanrossi.com>
> ---
>  conf/machine/include/machine-xilinx-qemu.inc | 35 
> +++++++++++++++++++++++++++-
>  1 file changed, 34 insertions(+), 1 deletion(-)
>
> diff --git a/conf/machine/include/machine-xilinx-qemu.inc 
> b/conf/machine/include/machine-xilinx-qemu.inc
> index 25bf7de..e159f59 100644
> --- a/conf/machine/include/machine-xilinx-qemu.inc
> +++ b/conf/machine/include/machine-xilinx-qemu.inc
> @@ -15,6 +15,9 @@ def qemu_default_dtb(d):
>  def qemu_default_serial(d):
>      if d.getVar("SERIAL_CONSOLE", True):
>          speed, console = d.getVar("SERIAL_CONSOLE", True).split(" ", 1)
> +        # zynqmp uses earlycon and stdout (in dtb)
> +        if "zynqmp" in d.getVar("MACHINEOVERRIDES", True).split(":"):
> +            return ""
>          return "console=%s,%s earlyprintk" % (console, speed)
>      return ""
>
> @@ -24,12 +27,42 @@ def qemu_target_binary(d):
>          ta = "microblaze"
>      elif ta == "arm":
>          ta = "aarch64"
> +    if qemuboot_xilinx_enabled(d):
> +        return "qemu-xilinx/qemu-system-%s" % ta
>      return "qemu-system-%s" % ta
>
> +def qemuboot_xilinx_enabled(d):
> +    if bb.utils.contains("MACHINE_FEATURES", "qemu-system-xilinx", True, 
> False, d):
> +        if d.getVar("XILINX_QEMUBOOT", True) == "1":
> +            return True
> +    return False
> +
>  # For runqemu, default setup across all machines in meta-xilinx
>  IMAGE_CLASSES += "qemuboot"
>  QB_SYSTEM_NAME ?= "${@qemu_target_binary(d)}"
> -QB_DEFAULT_FSTYPE ?= "cpio"
> +
> +XILINX_QEMUBOOT[doc] = "Set this variable to '1' to enable the generation of 
> qemuboot.conf which uses the Xilinx QEMU."
> +XILINX_QEMUBOOT ?= ""
> +
> +# Dependencies for native Xilinx QEMU
> +XILINX_QEMU_DEPENDS ?= "qemu-xilinx-native"
> +# If the machine supports the Xilinx QEMU, add the dependencies
> +EXTRA_IMAGEDEPENDS += "${@bb.utils.contains('MACHINE_FEATURES', 
> 'qemu-system-xilinx', '${XILINX_QEMU_DEPENDS}', '', d)}"
> +
> +# Add an override for when booting with the Xilinx QEMU
> +MACHINEOVERRIDES .= "${@':qemuboot-xilinx' if qemuboot_xilinx_enabled(d) 
> else ''}"
> +
> +# This is ignored if using Xilinx's QEMU fork
>  QB_DTB ?= "${@qemu_default_dtb(d)}"

Should this also be overridden so that for qemuboot-xilinx QB_DTB =
"". I remember it being mentioned that passing -dtb when using -hw-dtb
causes issues? or does that only matter when directly booting into
Linux?

> +
> +# ZynqMP machines need special "-hw-dtb" device trees for the Xilinx QEMU
> +XILINX_QEMU_DEPENDS_append_zynqmp = " qemu-devicetrees"
> +
> +QB_DEFAULT_FSTYPE ?= "${@'none' if qemuboot_xilinx_enabled(d) else 'cpio'}"
> +QB_DEFAULT_KERNEL ?= "${@'none' if qemuboot_xilinx_enabled(d) else ''}"

Should these instead be:

QB_DEFAULT_FSTYPE_qemuboot-xilinx = "none"
QB_DEFAULT_KERNEL_qemuboot-xilinx = "none"

So that for the kernel one, it allows the default qemuboot case to still be

QB_DEFAULT_KERNEL ?= "${KERNEL_IMAGETYPE}"

from qemuboot.bbclass.

Regards,
Nathan

>  QB_KERNEL_CMDLINE_APPEND ?= "${@qemu_default_serial(d)}"
>
> +# Default machine targets for Xilinx QEMU (FDT Generic)
> +QB_MACHINE_qemuboot-xilinx_aarch64 = "-machine arm-generic-fdt"
> +QB_MACHINE_qemuboot-xilinx_arm = "-machine arm-generic-fdt-plnx"
> +QB_MACHINE_qemuboot-xilinx_microblaze = "-machine microblaze-generic-fdt"
> --
> 2.7.4
>
-- 
_______________________________________________
meta-xilinx mailing list
meta-xilinx@yoctoproject.org
https://lists.yoctoproject.org/listinfo/meta-xilinx

Reply via email to