diff options
Diffstat (limited to 'meta-xilinx-bsp/conf/machine')
22 files changed, 743 insertions, 0 deletions
diff --git a/meta-xilinx-bsp/conf/machine/include/machine-xilinx-board.inc b/meta-xilinx-bsp/conf/machine/include/machine-xilinx-board.inc new file mode 100644 index 00000000..ba9a36be --- /dev/null +++ b/meta-xilinx-bsp/conf/machine/include/machine-xilinx-board.inc @@ -0,0 +1,6 @@ +# Default Xilinx Board settings + +EXTRA_IMAGEDEPENDS += "virtual/bootloader" + +IMAGE_BOOT_FILES ?= "${KERNEL_IMAGETYPE} ${UBOOT_BINARY}" + diff --git a/meta-xilinx-bsp/conf/machine/include/machine-xilinx-default.inc b/meta-xilinx-bsp/conf/machine/include/machine-xilinx-default.inc new file mode 100644 index 00000000..522e0081 --- /dev/null +++ b/meta-xilinx-bsp/conf/machine/include/machine-xilinx-default.inc @@ -0,0 +1,41 @@ +# Default Xilinx BSP Machine settings + +MACHINE_FEATURES_BACKFILL_CONSIDERED += "rtc" + +# MicroBlaze cannot handle the execution of qemu-linux-user for gobject-introspection-data +MACHINE_FEATURES_BACKFILL_CONSIDERED_append_microblaze = " qemu-usermode" + +# File System Configuration +IMAGE_FSTYPES ?= "tar.gz cpio cpio.gz.u-boot" + +# Kernel Configuration +XILINX_DEFAULT_KERNEL := "linux-xlnx" +XILINX_DEFAULT_KERNEL_microblaze := "linux-yocto" +XILINX_DEFAULT_KERNEL_zynqmp := "linux-yocto" +PREFERRED_PROVIDER_virtual/kernel ??= "${XILINX_DEFAULT_KERNEL}" + +# U-Boot Configuration +XILINX_DEFAULT_UBOOT := "u-boot-xlnx" +XILINX_DEFAULT_UBOOT_zynqmp := "u-boot" +PREFERRED_PROVIDER_virtual/bootloader ??= "${XILINX_DEFAULT_UBOOT}" +PREFERRED_PROVIDER_virtual/boot-bin ??= "${PREFERRED_PROVIDER_virtual/bootloader}" + +UBOOT_SUFFIX ?= "img" +UBOOT_SUFFIX_zynqmp ?= "bin" +UBOOT_SUFFIX_microblaze ?= "bin" + +UBOOT_BINARY ?= "u-boot.${UBOOT_SUFFIX}" +UBOOT_ELF ?= "u-boot" +UBOOT_ELF_aarch64 ?= "u-boot.elf" + +XSERVER ?= " \ + xserver-xorg \ + xf86-input-evdev \ + xf86-input-mouse \ + xf86-input-keyboard \ + xf86-video-fbdev \ + ${XSERVER_EXT} \ + " + +XSERVER_EXT ?= "" +XSERVER_EXT_zynqmp ?= "xf86-video-armsoc" diff --git a/meta-xilinx-bsp/conf/machine/include/machine-xilinx-qemu.inc b/meta-xilinx-bsp/conf/machine/include/machine-xilinx-qemu.inc new file mode 100644 index 00000000..dd275f3b --- /dev/null +++ b/meta-xilinx-bsp/conf/machine/include/machine-xilinx-qemu.inc @@ -0,0 +1,49 @@ +# This include is used to setup default QEMU and qemuboot config for meta-xilinx +# machines. + +# depend on qemu-helper-native, which will depend on QEMU +EXTRA_IMAGEDEPENDS += "qemu-helper-native" + +def qemu_default_dtb(d): + if d.getVar("IMAGE_BOOT_FILES", True): + dtbs = d.getVar("IMAGE_BOOT_FILES", True).split(" ") + # IMAGE_BOOT_FILES has extra renaming info in the format '<source>;<target>' + dtbs = [f.split(";")[0] for f in dtbs] + dtbs = [f for f in dtbs if f.endswith(".dtb")] + if len(dtbs) != 0: + return dtbs[0] + if d.getVar("KERNEL_DEVICETREE", True): + dtbs = d.getVar("KERNEL_DEVICETREE", True).split(" ") + dtbs = [os.path.basename(d) for d in dtbs] + if len(dtbs) != 0: + return d.getVar("KERNEL_IMAGETYPE", True) + "-" + dtbs[0] + return "" + +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 "" + +def qemu_target_binary(d): + ta = d.getVar("TARGET_ARCH", True) + if ta == "microblazeeb": + ta = "microblaze" + elif ta == "arm": + ta = "aarch64" + return "qemu-system-%s" % ta + +def qemu_zynqmp_unhalt(d, multiarch): + if multiarch: + return "-global xlnx,zynqmp-boot.cpu-num=0 -global xlnx,zynqmp-boot.use-pmufw=true" + return "-device loader,addr=0xfd1a0104,data=0x8000000e,data-len=4 -device loader,addr=0xfd1a0104,data=0x8000000e,data-len=4" + +# For qemuboot, default setup across all machines in meta-xilinx +QB_SYSTEM_NAME ?= "${@qemu_target_binary(d)}" +QB_DEFAULT_FSTYPE ?= "cpio" +QB_DTB ?= "${@qemu_default_dtb(d)}" +QB_KERNEL_CMDLINE_APPEND ?= "${@qemu_default_serial(d)}" + diff --git a/meta-xilinx-bsp/conf/machine/include/microblaze/arch-microblaze.inc b/meta-xilinx-bsp/conf/machine/include/microblaze/arch-microblaze.inc new file mode 100644 index 00000000..d79269cc --- /dev/null +++ b/meta-xilinx-bsp/conf/machine/include/microblaze/arch-microblaze.inc @@ -0,0 +1,53 @@ +# MicroBlaze architecture tune feature configuration + +# Architecture feature and override +TUNEVALID[microblaze] = "MicroBlaze" +MACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES", "microblaze", "microblaze:", "" ,d)}" + +# Endian +TUNEVALID[bigendian] = "Use Microblaze Big Endian" +TUNECONFLICTS[bigendian] += "v10.0" + +MBPKGARCH_ENDIAN = "${@bb.utils.contains("TUNE_FEATURES", "bigendian", "eb", "el" ,d)}" + +TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "bigendian", "-mbig-endian", "-mlittle-endian" ,d)}" + +# General features +TUNEVALID[barrel-shift] = "Enable Hardware Barrel Shifter" +TUNEVALID[pattern-compare] = "Enable Pattern Compare Instructions" +TUNEVALID[reorder] = "Enable Reorder Instructions" +TUNECONFLICTS[reorder] += "v8.00 v8.10 v8.20" + +# Core configuration tune optimizations +TUNEVALID[frequency-optimized] = "Enabling tuning for frequency optimized core (AREA_OPTIMIZED_2)" +TUNECONFLICTS[frequency-optimized] += "v8.00 v8.10 v8.20 v8.30 v8.40 v8.50 v9.0 v9.1 v9.2 v9.3 v9.4 v9.5 v9.6" + +# Feature compiler args +TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "barrel-shift", "-mxl-barrel-shift", "-mno-xl-barrel-shift" ,d)}" +TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "pattern-compare", "-mxl-pattern-compare", "-mno-xl-pattern-compare" ,d)}" +TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "frequency-optimized", "-mxl-frequency", "", d)}" + +# Disable reorder for v8.30 if pattern-compare is not enabled +TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "reorder", \ + bb.utils.contains("TUNE_FEATURES", "v8.30", \ + bb.utils.contains("TUNE_FEATURES", "pattern-compare", \ + "-mxl-reorder", "-mno-xl-reorder", d), \ + "-mxl-reorder", d), "-mno-xl-reorder", d)}" + +# Feature package architecture formatting +MBPKGARCH_TUNE = "" +MBPKGARCH_TUNE .= "${@bb.utils.contains("TUNE_FEATURES", "barrel-shift", "-bs", "" ,d)}" +MBPKGARCH_TUNE .= "${@bb.utils.contains("TUNE_FEATURES", "pattern-compare", "-cmp", "" ,d)}" +MBPKGARCH_TUNE .= "${@bb.utils.contains("TUNE_FEATURES", "reorder", "-re", "" ,d)}" +MBPKGARCH_TUNE .= "${@bb.utils.contains("TUNE_FEATURES", "frequency-optimized", "-fo", "" ,d)}" + +# Additional features +require conf/machine/include/microblaze/feature-microblaze-versions.inc +require conf/machine/include/microblaze/feature-microblaze-math.inc + +# Architecture name, either 'microblazeeb' or 'microblazeel' depending on endianess +TUNE_ARCH = "microblaze${@bb.utils.contains("TUNE_FEATURES", "bigendian", "eb", "el" ,d)}" + +# Package Architecture formatting +TUNE_PKGARCH = "microblaze${MBPKGARCH_ENDIAN}${MBPKGARCH_VERSION}${MBPKGARCH_TUNE}${MBPKGARCH_MATH}" + diff --git a/meta-xilinx-bsp/conf/machine/include/microblaze/feature-microblaze-math.inc b/meta-xilinx-bsp/conf/machine/include/microblaze/feature-microblaze-math.inc new file mode 100644 index 00000000..b2c7f071 --- /dev/null +++ b/meta-xilinx-bsp/conf/machine/include/microblaze/feature-microblaze-math.inc @@ -0,0 +1,33 @@ +# This include describes the math features (integer and floating point) that +# are available for the MicroBlaze ISA + +TUNEVALID[multiply-low] = "Hardware multipler with 32 bit result" +TUNEVALID[multiply-high] = "Hardware multipler with 64 bit result" +TUNEVALID[divide-hard] = "Hardware divider" +TUNEVALID[fpu-soft] = "Software FPU" +TUNEVALID[fpu-hard] = "Hardware FPU in basic mode" +TUNEVALID[fpu-hard-extended] = "Hardware FPU in extended mode (conversion and square root instructions)" + +TUNECONFLICTS[fpu-soft] = "fpu-hard fpu-hard-extended" +TUNECONFLICTS[fpu-hard] = "fpu-soft" +TUNECONFLICTS[fpu-hard-extended] = "fpu-soft" + +# Compiler args +TUNE_CCARGS += "${@bb.utils.contains_any('TUNE_FEATURES', ['multiply-low', 'multiply-high'], '-mno-xl-soft-mul', '-mxl-soft-mul', d)}" +TUNE_CCARGS += "${@bb.utils.contains('TUNE_FEATURES', 'multiply-high', '-mxl-multiply-high', '', d)}" + +TUNE_CCARGS += "${@bb.utils.contains('TUNE_FEATURES', 'divide-hard', '-mno-xl-soft-div', '-mxl-soft-div' ,d)}" + +TUNE_CCARGS += "${@bb.utils.contains('TUNE_FEATURES', 'fpu-soft', '', '', d)}" +TUNE_CCARGS += "${@bb.utils.contains_any('TUNE_FEATURES', ['fpu-hard', 'fpu-hard-extended'], '-mhard-float', '', d)}" +TUNE_CCARGS += "${@bb.utils.contains('TUNE_FEATURES', 'fpu-hard-extended', '-mxl-float-convert -mxl-float-sqrt', '', d)}" + +# Set target fpu (bitbake known target) to soft or hard (basic or extended) +TARGET_FPU = "${@bb.utils.contains_any('TUNE_FEATURES', 'fpu-hard fpu-hard-extended', 'fpu-hard', 'fpu-soft', d)}" + +# Package Architecture formatting +MBPKGARCH_MATH = "" +MBPKGARCH_MATH .= "${@bb.utils.contains('TUNE_FEATURES', 'multiply-high', '-mh', bb.utils.contains('TUNE_FEATURES', 'multiply-low', '-ml', '', d), d)}" +MBPKGARCH_MATH .= "${@bb.utils.contains('TUNE_FEATURES', 'divide-hard', '-div', '' ,d)}" +MBPKGARCH_MATH .= "${@bb.utils.contains('TUNE_FEATURES', 'fpu-hard-extended', '-fe', bb.utils.contains('TUNE_FEATURES', 'fpu-hard', '-fb', '', d), d)}" + diff --git a/meta-xilinx-bsp/conf/machine/include/microblaze/feature-microblaze-versions.inc b/meta-xilinx-bsp/conf/machine/include/microblaze/feature-microblaze-versions.inc new file mode 100644 index 00000000..955674ff --- /dev/null +++ b/meta-xilinx-bsp/conf/machine/include/microblaze/feature-microblaze-versions.inc @@ -0,0 +1,67 @@ +# MicroBlaze versions are defined as features, the features are setup to +# conflict with other versions as well as unavailable features for particular +# versions. +# +# Versions before v9.0 of MicroBlaze use a versioning scheme of "vX.YY.Z" +# (where Z = [abc]). For v8.* versions of MicroBlaze the revision (Z) changes +# did not affect ABI and are ignored by this tune configuration. Though this +# format is expected by GCC including the revision, but this is defaulted to +# ".a". +# +# Since v9.0 of MicroBlaze the revision (Z) part of versions was entirely +# dropped and the version scheme was changed to "vX.Y". + +def microblaze_current_version(d, gcc = False): + import re + # find the current version, and convert it to major/minor integers + version = None + for t in (d.getVar("TUNE_FEATURES") or "").split(): + m = re.search("^v(\d+)\.(\d+)", t) + if m: + version = int(m.group(1)), int(m.group(2)) + break + + # format the version string in generic or GCC specific formats + if version: + if version[0] <= 8: + return ("v%d.%02d" % version[0:2]) + (".a" if gcc else "") + else: + return "v%d.%d" % version[0:2] + return "" + +# MicroBlaze versions +TUNEVALID[v8.00] = "MicroBlaze version 8.00" +TUNEVALID[v8.10] = "MicroBlaze version 8.10" +TUNEVALID[v8.20] = "MicroBlaze version 8.20" +TUNEVALID[v8.30] = "MicroBlaze version 8.30" +TUNEVALID[v8.40] = "MicroBlaze version 8.40" +TUNEVALID[v8.50] = "MicroBlaze version 8.50" +TUNEVALID[v9.0] = "MicroBlaze version 9.0" +TUNEVALID[v9.1] = "MicroBlaze version 9.1" +TUNEVALID[v9.2] = "MicroBlaze version 9.2" +TUNEVALID[v9.3] = "MicroBlaze version 9.3" +TUNEVALID[v9.4] = "MicroBlaze version 9.4" +TUNEVALID[v9.5] = "MicroBlaze version 9.5" +TUNEVALID[v9.6] = "MicroBlaze version 9.6" +TUNEVALID[v10.0] = "MicroBlaze version 10.0" + +# Version conflict matrix +TUNECONFLICTS[v8.00] = "" +TUNECONFLICTS[v8.10] = "v8.00" +TUNECONFLICTS[v8.20] = "v8.00 v8.10" +TUNECONFLICTS[v8.30] = "v8.00 v8.10 v8.20" +TUNECONFLICTS[v8.40] = "v8.00 v8.10 v8.20 v8.30" +TUNECONFLICTS[v8.50] = "v8.00 v8.10 v8.20 v8.30 v8.40" +TUNECONFLICTS[v9.0] = "v8.00 v8.10 v8.20 v8.30 v8.40 v8.50" +TUNECONFLICTS[v9.1] = "v8.00 v8.10 v8.20 v8.30 v8.40 v8.50 v9.0" +TUNECONFLICTS[v9.2] = "v8.00 v8.10 v8.20 v8.30 v8.40 v8.50 v9.0 v9.1" +TUNECONFLICTS[v9.3] = "v8.00 v8.10 v8.20 v8.30 v8.40 v8.50 v9.0 v9.1 v9.2" +TUNECONFLICTS[v9.4] = "v8.00 v8.10 v8.20 v8.30 v8.40 v8.50 v9.0 v9.1 v9.2 v9.3" +TUNECONFLICTS[v9.5] = "v8.00 v8.10 v8.20 v8.30 v8.40 v8.50 v9.0 v9.1 v9.2 v9.3 v9.4" +TUNECONFLICTS[v9.6] = "v8.00 v8.10 v8.20 v8.30 v8.40 v8.50 v9.0 v9.1 v9.2 v9.3 v9.4 v9.5" +TUNECONFLICTS[v10.0] = "v8.00 v8.10 v8.20 v8.30 v8.40 v8.50 v9.0 v9.1 v9.2 v9.3 v9.4 v9.5 v9.6" + +# Version flags +TUNE_CCARGS += "-mcpu=${@microblaze_current_version(d, True)}" +MBPKGARCH_VERSION = "-${@microblaze_current_version(d)}" + diff --git a/meta-xilinx-bsp/conf/machine/include/tune-microblaze.inc b/meta-xilinx-bsp/conf/machine/include/tune-microblaze.inc new file mode 100644 index 00000000..835de41b --- /dev/null +++ b/meta-xilinx-bsp/conf/machine/include/tune-microblaze.inc @@ -0,0 +1,19 @@ +DEFAULTTUNE ?= "microblaze" + +require conf/machine/include/microblaze/arch-microblaze.inc + +AVAILTUNES += "microblaze" +TUNE_FEATURES_tune-microblaze = "microblaze" +PACKAGE_EXTRA_ARCHS_tune-microblaze = "${TUNE_PKGARCH}" + +# Linux Configuration +KERNEL_IMAGETYPE ?= "linux.bin.ub" + +# U-Boot Configuration +UBOOT_MACHINE ?= "microblaze-generic_config" + +# default to use the gdb 7.7.1 +PREFERRED_VERSION_gdb ?= "7.7.1" +PREFERRED_VERSION_gdb-cross ?= "7.7.1" +PREFERRED_VERSION_gdb-cross-canadian ?= "7.7.1" + diff --git a/meta-xilinx-bsp/conf/machine/include/tune-zynq.inc b/meta-xilinx-bsp/conf/machine/include/tune-zynq.inc new file mode 100644 index 00000000..19e73412 --- /dev/null +++ b/meta-xilinx-bsp/conf/machine/include/tune-zynq.inc @@ -0,0 +1,12 @@ +DEFAULTTUNE ?= "cortexa9thf-neon" +SOC_FAMILY ?= "zynq" + +require conf/machine/include/tune-cortexa9.inc +require conf/machine/include/soc-family.inc + +# Linux Configuration +KERNEL_IMAGETYPE ?= "uImage" + +# Set default load address. +# Override with KERNEL_EXTRA_ARGS_<board> += "..." in machine file if required +KERNEL_EXTRA_ARGS_zynq += "UIMAGE_LOADADDR=0x8000" diff --git a/meta-xilinx-bsp/conf/machine/include/tune-zynqmp.inc b/meta-xilinx-bsp/conf/machine/include/tune-zynqmp.inc new file mode 100644 index 00000000..8d1f9537 --- /dev/null +++ b/meta-xilinx-bsp/conf/machine/include/tune-zynqmp.inc @@ -0,0 +1,11 @@ +DEFAULTTUNE ?= "aarch64" +SOC_FAMILY ?= "zynqmp" + +require conf/machine/include/arm/arch-armv8.inc +require conf/machine/include/soc-family.inc + +# Linux Configuration +KERNEL_IMAGETYPE ?= "Image" + +# Support multilib on zynqmp +DEFAULTTUNE_virtclass-multilib-lib32 ?= "armv7vethf-neon-vfpv4" diff --git a/meta-xilinx-bsp/conf/machine/include/zynqmp-pmu-config.inc b/meta-xilinx-bsp/conf/machine/include/zynqmp-pmu-config.inc new file mode 100644 index 00000000..fd9e9809 --- /dev/null +++ b/meta-xilinx-bsp/conf/machine/include/zynqmp-pmu-config.inc @@ -0,0 +1,20 @@ + +# Enable the use of zynqmp-pmu for specific recipes only +def zynqmp_pmu_enable_for_bpns(d): + bpn = d.getVar("BPN") + crossbpns = ["binutils", "gcc"] + targetbpns = ["libgcc", "newlib", "libgloss"] + if bpn in targetbpns: + return True + if bpn in crossbpns and bb.data.inherits_class('cross', d): + return True + return False + +BBCLASSEXTEND_append = "${@' zynqmp-pmu' if zynqmp_pmu_enable_for_bpns(d) else ''}" + +# Add the pkgarch to the extra list, this is done to avoid warnings about +# missing manifests due to implicit dependency chains on populate_sysroot when +# a recipe/task depends on a IMAGE_EXTRADEPENDS/do_deploy task which is +# provided by a zynqmp-pmu-* target. +PACKAGE_EXTRA_ARCHS_append = " microblazeel-v9.2-bs-cmp" + diff --git a/meta-xilinx-bsp/conf/machine/kc705-microblazeel.conf b/meta-xilinx-bsp/conf/machine/kc705-microblazeel.conf new file mode 100644 index 00000000..658b75be --- /dev/null +++ b/meta-xilinx-bsp/conf/machine/kc705-microblazeel.conf @@ -0,0 +1,20 @@ +#@TYPE: Machine +#@NAME: kc705-microblazeel +#@DESCRIPTION: Machine support for Xilinx KC705 Embedded Kit. +# + +require conf/machine/include/tune-microblaze.inc +require conf/machine/include/machine-xilinx-default.inc +require conf/machine/include/machine-xilinx-board.inc + +TUNE_FEATURES_tune-microblaze += "v10.0 barrel-shift reorder pattern-compare multiply-high divide-hard" + +MACHINE_FEATURES = "" + +USE_VT = "" +SERIAL_CONSOLE = "115200 ttyS0" + +MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "device-tree" + +EXTRA_IMAGEDEPENDS += "virtual/bitstream" + diff --git a/meta-xilinx-bsp/conf/machine/microzed-zynq7.conf b/meta-xilinx-bsp/conf/machine/microzed-zynq7.conf new file mode 100644 index 00000000..815bf474 --- /dev/null +++ b/meta-xilinx-bsp/conf/machine/microzed-zynq7.conf @@ -0,0 +1,30 @@ +#@TYPE: Machine +#@NAME: microzed-zynq7 +#@DESCRIPTION: Machine support for microZed. (http://www.microzed.org/) + +require conf/machine/include/tune-zynq.inc +require conf/machine/include/machine-xilinx-default.inc +require conf/machine/include/machine-xilinx-board.inc + +MACHINE_FEATURES = "ext2 vfat usbhost" + +# u-boot configuration +PREFERRED_PROVIDER_virtual/bootloader = "u-boot" +UBOOT_MACHINE = "zynq_microzed_config" +SPL_BINARY = "spl/boot.bin" + +EXTRA_IMAGEDEPENDS += " \ + u-boot-zynq-uenv \ + virtual/boot-bin \ + " + +SERIAL_CONSOLE = "115200 ttyPS0" + +MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "device-tree" + +IMAGE_BOOT_FILES += " \ + boot.bin \ + ${MACHINE}.dtb \ + uEnv.txt \ + " + diff --git a/meta-xilinx-bsp/conf/machine/ml605-qemu-microblazeel.conf b/meta-xilinx-bsp/conf/machine/ml605-qemu-microblazeel.conf new file mode 100644 index 00000000..2092801e --- /dev/null +++ b/meta-xilinx-bsp/conf/machine/ml605-qemu-microblazeel.conf @@ -0,0 +1,25 @@ +#@TYPE: Machine +#@NAME: ml605-qemu-microblazeel +#@DESCRIPTION: MicroBlaze QEMU machine support ('petalogix-ml605' model) + +require conf/machine/include/tune-microblaze.inc +require conf/machine/include/machine-xilinx-default.inc +require conf/machine/include/machine-xilinx-qemu.inc + +TUNE_FEATURES_tune-microblaze += "v8.50 barrel-shift reorder pattern-compare divide-hard multiply-high fpu-hard" + +MACHINE_FEATURES = "" + +USE_VT = "" +SERIAL_CONSOLE = "115200 ttyS0" + +# Use the networking setup from qemuarm +FILESOVERRIDES_append_pn-init-ifupdown = ":qemuarm" + +# This machine is a targeting a QEMU model, runqemu setup: +IMAGE_CLASSES += "qemuboot" +QB_MEM = "-m 256" +QB_MACHINE = "-machine petalogix-ml605" +QB_OPT_APPEND = "-nographic -serial mon:stdio" +QB_NETWORK_DEVICE = "-net nic,netdev=net0,macaddr=@MAC@" + diff --git a/meta-xilinx-bsp/conf/machine/picozed-zynq7.conf b/meta-xilinx-bsp/conf/machine/picozed-zynq7.conf new file mode 100644 index 00000000..59b4a6cb --- /dev/null +++ b/meta-xilinx-bsp/conf/machine/picozed-zynq7.conf @@ -0,0 +1,34 @@ +#@TYPE: Machine +#@NAME: picozed-zynq7 +#@DESCRIPTION: Machine support for picoZed. (http://www.picozed.org/) +# +# Note: This machine configuration is intended as a generic config for +# the picozed SOM. It also covers the multiple SKUs for the picoZed +# including 7010, 7020, 7015 and 7030. + +require conf/machine/include/tune-zynq.inc +require conf/machine/include/machine-xilinx-default.inc +require conf/machine/include/machine-xilinx-board.inc + +MACHINE_FEATURES = "ext2 vfat usbhost usbgadget" + +# u-boot configuration +PREFERRED_PROVIDER_virtual/bootloader = "u-boot" +UBOOT_MACHINE = "zynq_picozed_config" +SPL_BINARY = "spl/boot.bin" + +EXTRA_IMAGEDEPENDS += " \ + u-boot-zynq-uenv \ + virtual/boot-bin \ + " + +SERIAL_CONSOLE = "115200 ttyPS0" + +MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "device-tree" + +IMAGE_BOOT_FILES += " \ + boot.bin \ + ${MACHINE}.dtb \ + uEnv.txt \ + " + diff --git a/meta-xilinx-bsp/conf/machine/qemu-zynq7.conf b/meta-xilinx-bsp/conf/machine/qemu-zynq7.conf new file mode 100644 index 00000000..0fe99e27 --- /dev/null +++ b/meta-xilinx-bsp/conf/machine/qemu-zynq7.conf @@ -0,0 +1,25 @@ +#@TYPE: Machine +#@NAME: qemu-zynq7 +#@DESCRIPTION: Zynq QEMU machine support ('xilinx-zynq-a9' model) + +require conf/machine/include/tune-zynq.inc +require conf/machine/include/machine-xilinx-default.inc +require conf/machine/include/machine-xilinx-qemu.inc + +MACHINE_FEATURES = "ext2 vfat" + +SERIAL_CONSOLE = "115200 ttyPS0" + +MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "device-tree" +IMAGE_BOOT_FILES += "${MACHINE}.dtb" + +# Use the networking setup from qemuarm +FILESOVERRIDES_append_pn-init-ifupdown = ":qemuarm" + +# This machine is a targeting a QEMU model, runqemu setup: +IMAGE_CLASSES += "qemuboot" +QB_MEM = "-m 1024" +QB_MACHINE = "-machine xilinx-zynq-a9" +QB_OPT_APPEND = "-nographic -serial null -serial mon:stdio" +QB_NETWORK_DEVICE = "-net nic,netdev=net0,macaddr=@MAC@" + diff --git a/meta-xilinx-bsp/conf/machine/s3adsp1800-qemu-microblazeeb.conf b/meta-xilinx-bsp/conf/machine/s3adsp1800-qemu-microblazeeb.conf new file mode 100644 index 00000000..6bd75417 --- /dev/null +++ b/meta-xilinx-bsp/conf/machine/s3adsp1800-qemu-microblazeeb.conf @@ -0,0 +1,24 @@ +#@TYPE: Machine +#@NAME: s3adsp1800-qemu-microblazeeb +#@DESCRIPTION: MicroBlaze QEMU machine support ('petalogix-s3adsp1800' model) + +require conf/machine/include/tune-microblaze.inc +require conf/machine/include/machine-xilinx-default.inc +require conf/machine/include/machine-xilinx-qemu.inc + +TUNE_FEATURES_tune-microblaze += "v8.00 bigendian barrel-shift pattern-compare multiply-low" + +MACHINE_FEATURES = "" + +USE_VT = "" +SERIAL_CONSOLE = "115200 ttyUL0" + +MACHINE_ESSENTIAL_EXTRA_RDEPENDS_remove = "device-tree" + +# This machine is a targeting a QEMU model, runqemu setup: +IMAGE_CLASSES += "qemuboot" +QB_MEM = "-m 256" +QB_MACHINE = "-machine petalogix-s3adsp1800" +QB_OPT_APPEND = "-nographic -serial mon:stdio" +QB_NETWORK_DEVICE = "-net nic,netdev=net0,macaddr=@MAC@" + diff --git a/meta-xilinx-bsp/conf/machine/zc702-zynq7.conf b/meta-xilinx-bsp/conf/machine/zc702-zynq7.conf new file mode 100644 index 00000000..57877bfa --- /dev/null +++ b/meta-xilinx-bsp/conf/machine/zc702-zynq7.conf @@ -0,0 +1,45 @@ +#@TYPE: Machine +#@NAME: zc702-zynq7 +#@DESCRIPTION: Machine support for ZC702 Evaluation Board. +# +# For details on the Evaluation board: +# http://www.xilinx.com/products/boards-and-kits/EK-Z7-ZC702-G.htm +# For documentation and design files for the ZC702: +# http://www.xilinx.com/support/index.html/content/xilinx/en/supportNav/boards_and_kits/zynq-7000_soc_boards_and_kits/zynq-7000_soc_zc702_evaluation_kit.html +# For the FSBL 'zynq_fsbl_0.elf' refer to UG873 and the associated design files. +# + +require conf/machine/include/tune-zynq.inc +require conf/machine/include/machine-xilinx-default.inc +require conf/machine/include/machine-xilinx-board.inc +require conf/machine/include/machine-xilinx-qemu.inc + +MACHINE_FEATURES = "rtc ext2 ext3 vfat usbhost" + +# u-boot configuration +UBOOT_MACHINE = "zynq_zc702_config" +SPL_BINARY = "spl/boot.bin" + +EXTRA_IMAGEDEPENDS += " \ + u-boot-zynq-uenv \ + virtual/boot-bin \ + " + +SERIAL_CONSOLE = "115200 ttyPS0" + +KERNEL_DEVICETREE = "zynq-zc702.dtb" + +IMAGE_BOOT_FILES += "boot.bin uEnv.txt ${KERNEL_IMAGETYPE}-zynq-zc702.dtb" + +# Although not fully supported you can run this machine on the mainline QEMU 'xilinx-zynq-a9' machine +IMAGE_CLASSES += "qemuboot" +QB_MEM = "-m 1024" +QB_MACHINE = "-machine xilinx-zynq-a9" +QB_OPT_APPEND = "-nographic -serial null -serial mon:stdio" +QB_NETWORK_DEVICE = "-net nic,netdev=net0,macaddr=@MAC@" + +# Xilinx's fork of QEMU has much better results, so let's default to that +# Use qemu-xilinx instead of mainline +PREFERRED_PROVIDER_qemu-helper-native = "qemu-xilinx-helper-native" + +IMAGE_CLASSES += "qemuboot-xilinx" diff --git a/meta-xilinx-bsp/conf/machine/zc706-zynq7.conf b/meta-xilinx-bsp/conf/machine/zc706-zynq7.conf new file mode 100644 index 00000000..d2fbf1b1 --- /dev/null +++ b/meta-xilinx-bsp/conf/machine/zc706-zynq7.conf @@ -0,0 +1,49 @@ +#@TYPE: Machine +#@NAME: zc706-zynq7 +#@DESCRIPTION: Machine support for ZC706 Evaluation Board. +# +# For details on the Evaluation board: +# http://www.xilinx.com/products/boards-and-kits/EK-Z7-ZC706-G.htm +# For documentation and design files for the ZC702: +# http://www.xilinx.com/support/index.html/content/xilinx/en/supportNav/boards_and_kits/zynq-7000_soc_boards_and_kits/zynq-7000_soc_zc706_evaluation_kit.html +# For the FSBL 'zynq_fsbl_0.elf' refer to UG873 and the associated design files. +# + +require conf/machine/include/tune-zynq.inc +require conf/machine/include/machine-xilinx-default.inc +require conf/machine/include/machine-xilinx-board.inc +require conf/machine/include/machine-xilinx-qemu.inc + +MACHINE_FEATURES = "rtc ext2 ext3 vfat usbhost usbgadget" + +# u-boot configuration +UBOOT_MACHINE = "zynq_zc706_config" +SPL_BINARY = "spl/boot.bin" + +EXTRA_IMAGEDEPENDS += " \ + u-boot-zynq-uenv \ + virtual/boot-bin \ + " + +SERIAL_CONSOLE = "115200 ttyPS0" + +KERNEL_DEVICETREE = "zynq-zc706.dtb" + +IMAGE_BOOT_FILES += " \ + boot.bin \ + ${KERNEL_IMAGETYPE}-zynq-zc706.dtb \ + uEnv.txt \ + " + +# Although not fully supported you can run this machine on the mainline QEMU 'xilinx-zynq-a9' machine +IMAGE_CLASSES += "qemuboot" +QB_MEM = "-m 1024" +QB_MACHINE = "-machine xilinx-zynq-a9" +QB_OPT_APPEND = "-nographic -serial null -serial mon:stdio" +QB_NETWORK_DEVICE = "-net nic,netdev=net0,macaddr=@MAC@" + +# Xilinx's fork of QEMU has much better results, so let's default to that +# Use qemu-xilinx instead of mainline +PREFERRED_PROVIDER_qemu-helper-native = "qemu-xilinx-helper-native" + +IMAGE_CLASSES += "qemuboot-xilinx" diff --git a/meta-xilinx-bsp/conf/machine/zcu102-zynqmp.conf b/meta-xilinx-bsp/conf/machine/zcu102-zynqmp.conf new file mode 100644 index 00000000..fe411483 --- /dev/null +++ b/meta-xilinx-bsp/conf/machine/zcu102-zynqmp.conf @@ -0,0 +1,77 @@ +#@TYPE: Machine +#@NAME: zcu102-zynqmp +#@DESCRIPTION: Machine support for ZCU102 Evaluation Board. + +require conf/machine/include/tune-zynqmp.inc +require conf/machine/include/machine-xilinx-default.inc +require conf/machine/include/machine-xilinx-board.inc +require conf/machine/include/machine-xilinx-qemu.inc +include conf/machine/include/zynqmp-pmu-config.inc + +MACHINE_FEATURES = "rtc ext2 ext3 vfat usbhost" + +UBOOT_MACHINE = "xilinx_zynqmp_zcu102_rev1_0_defconfig" +SPL_BINARY = "spl/boot.bin" + +# Default SD image build onfiguration, use qemu-sd to pad +IMAGE_CLASSES += "image-types-xilinx-qemu" +IMAGE_FSTYPES += "wic.qemu-sd" +WKS_FILES ?= "sdimage-bootpart.wks" + +SERIAL_CONSOLE = "115200 ttyPS0" +SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}" + +KERNEL_DEVICETREE = "xilinx/zynqmp-zcu102-rev1.0.dtb" + +PREFERRED_PROVIDER_virtual/kernel ?= "linux-xlnx" +PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot-xlnx" +PREFERRED_PROVIDER_virtual/pmu-firmware ?= "zynqmp-pmu-pmu-firmware" + +EXTRA_IMAGEDEPENDS += " \ + u-boot-zynq-uenv \ + arm-trusted-firmware \ + qemu-devicetrees \ + virtual/pmu-firmware \ + virtual/boot-bin \ + " + +IMAGE_BOOT_FILES += "uEnv.txt atf-uboot.ub ${KERNEL_IMAGETYPE}-zynqmp-zcu102-rev1.0.dtb" + +# This machine has a QEMU model, runqemu setup: +IMAGE_CLASSES += "qemuboot-xilinx" +QB_MACHINE = "-machine xlnx-zcu102" +QB_MEM = "-m 4096" +QB_OPT_APPEND = "-nographic -serial mon:stdio -serial null" +QB_NETWORK_DEVICE = "-net nic -net nic -net nic -net nic,netdev=net0,macaddr=@MAC@" + +# Use qemu-xilinx instead of mainline +PREFERRED_PROVIDER_qemu-helper-native = "qemu-xilinx-helper-native" + +# Use the multiarch script instead of launching QEMU directly +QB_SYSTEM_NAME_append = "-multiarch" + +# Replicate BootROM like behaviour, having loaded SPL and PMU(ROM+FW) +QB_OPT_APPEND_append_qemuboot-xilinx = " \ + -hw-dtb ${DEPLOY_DIR_IMAGE}/qemu-hw-devicetrees/multiarch/zcu102-arm.dtb \ + ${@qemu_zynqmp_unhalt(d, True)} \ + -device loader,addr=0xfffc0000,file=${DEPLOY_DIR_IMAGE}/u-boot-spl.bin,cpu-num=0 \ + " + +# Attach the rootfs disk image to the second SD interface of QEMU (which is SD0) +QB_DEFAULT_FSTYPE_qemuboot-xilinx = "wic.qemu-sd" +QB_OPT_APPEND_append_qemuboot-xilinx = " -boot mode=3" +QB_ROOTFS_OPT_qemuboot-xilinx = " -drive if=sd,index=1,file=@ROOTFS@,format=raw" + +# PMU instance args +PMU_ROM ?= "${DEPLOY_DIR_IMAGE}/pmu-rom.elf" +QB_PMU_OPT = " \ + -M microblaze-fdt \ + -display none \ + -hw-dtb ${DEPLOY_DIR_IMAGE}/qemu-hw-devicetrees/multiarch/zynqmp-pmu.dtb \ + -kernel ${PMU_ROM} \ + -device loader,file=${DEPLOY_DIR_IMAGE}/pmu-${MACHINE}.elf \ + -device loader,addr=0xfd1a0074,data=0x1011003,data-len=4 \ + -device loader,addr=0xfd1a007C,data=0x1010f03,data-len=4 \ + " +QB_OPT_APPEND_append_qemuboot-xilinx = " -pmu-args '${QB_PMU_OPT}'" + diff --git a/meta-xilinx-bsp/conf/machine/zedboard-zynq7.conf b/meta-xilinx-bsp/conf/machine/zedboard-zynq7.conf new file mode 100644 index 00000000..114927de --- /dev/null +++ b/meta-xilinx-bsp/conf/machine/zedboard-zynq7.conf @@ -0,0 +1,29 @@ +#@TYPE: Machine +#@NAME: zedboard-zynq7 +#@DESCRIPTION: Machine support for ZedBoard. (http://www.zedboard.org/) +# +# For details on the Evaluation board: +# http://www.zedboard.org/content/overview +# For design files (including 'zynq_fsbl_0.elf') for the ZedBoard: +# http://www.zedboard.org/reference-designs-categories/zynq-concepts-tools-and-techniques-zedboard +# + +require conf/machine/include/tune-zynq.inc +require conf/machine/include/machine-xilinx-default.inc +require conf/machine/include/machine-xilinx-board.inc + +# u-boot configuration +UBOOT_MACHINE = "zynq_zed_config" +SPL_BINARY = "spl/boot.bin" + +EXTRA_IMAGEDEPENDS += " \ + u-boot-zynq-uenv \ + virtual/boot-bin \ + " + +SERIAL_CONSOLE = "115200 ttyPS0" + +KERNEL_DEVICETREE = "zynq-zed.dtb" + +IMAGE_BOOT_FILES += "boot.bin uEnv.txt ${KERNEL_IMAGETYPE}-zynq-zed.dtb" + diff --git a/meta-xilinx-bsp/conf/machine/zybo-linux-bd-zynq7.conf b/meta-xilinx-bsp/conf/machine/zybo-linux-bd-zynq7.conf new file mode 100644 index 00000000..b916a209 --- /dev/null +++ b/meta-xilinx-bsp/conf/machine/zybo-linux-bd-zynq7.conf @@ -0,0 +1,40 @@ +#@TYPE: Machine +#@NAME: zybo-linux-bd-zynq7 +#@DESCRIPTION: Machine support for zybo-linux-bd project. +# +# generated base on ZYBO linux-bd project +# + +require conf/machine/include/tune-zynq.inc +require conf/machine/include/machine-xilinx-default.inc +require conf/machine/include/machine-xilinx-board.inc + +PREFERRED_PROVIDER_virtual/kernel ?= "linux-xlnx" +PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot" + +MACHINE_FEATURES = "ext2 vfat usbhost usbgadget keyboard screen alsa sdio" +SERIAL_CONSOLE = "115200 ttyPS0" + +MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "device-tree" + +UBOOT_MACHINE = "zynq_zybo_config" +SPL_BINARY = "spl/boot.bin" +FORCE_PLATFORM_INIT = "1" + +EXTRA_IMAGEDEPENDS += " \ + u-boot-zynq-uenv \ + virtual/boot-bin \ + virtual/bitstream \ + " + +IMAGE_BOOT_FILES += " \ + boot.bin \ + ${MACHINE}.dtb \ + bitstream \ + uEnv.txt \ + " + +KERNEL_FEATURES += " \ + bsp/zybo-linux-bd-zynq7/zybo-linux-bd-zynq7.scc \ + features/v4l2/v4l2-xilinx.scc \ + " diff --git a/meta-xilinx-bsp/conf/machine/zybo-zynq7.conf b/meta-xilinx-bsp/conf/machine/zybo-zynq7.conf new file mode 100644 index 00000000..e94ad6b9 --- /dev/null +++ b/meta-xilinx-bsp/conf/machine/zybo-zynq7.conf @@ -0,0 +1,34 @@ +#@TYPE: Machine +#@NAME: zybo-zynq7 +#@DESCRIPTION: Machine support for ZYBO. +# +# For details on the ZYBO board: +# https://www.digilentinc.com/Products/Detail.cfm?Prod=ZYBO +# + +require conf/machine/include/tune-zynq.inc +require conf/machine/include/machine-xilinx-default.inc +require conf/machine/include/machine-xilinx-board.inc + +MACHINE_FEATURES = "ext2 vfat usbhost usbgadget" + +# u-boot configuration +PREFERRED_PROVIDER_virtual/bootloader = "u-boot" +UBOOT_MACHINE = "zynq_zybo_config" +SPL_BINARY = "spl/boot.bin" + +EXTRA_IMAGEDEPENDS += " \ + u-boot-zynq-uenv \ + virtual/boot-bin \ + " + +SERIAL_CONSOLE = "115200 ttyPS0" + +KERNEL_DEVICETREE = "zynq-zybo.dtb" + +IMAGE_BOOT_FILES += " \ + boot.bin \ + ${KERNEL_IMAGETYPE}-zynq-zybo.dtb \ + uEnv.txt \ + " + |