summaryrefslogtreecommitdiffstats
path: root/meta-xilinx
diff options
context:
space:
mode:
authorBrad Bishop <bradleyb@fuzziesquirrel.com>2018-12-16 17:11:34 -0800
committerBrad Bishop <bradleyb@fuzziesquirrel.com>2019-01-08 18:21:44 -0500
commit1a4b7ee28bf7413af6513fb45ad0d0736048f866 (patch)
tree79f6d8ea698cab8f2eaf4f54b793d2ca7a1451ce /meta-xilinx
parent5b9ede0403237c7dace972affa65cf64a1aadd0e (diff)
downloadtalos-openbmc-1a4b7ee28bf7413af6513fb45ad0d0736048f866.tar.gz
talos-openbmc-1a4b7ee28bf7413af6513fb45ad0d0736048f866.zip
reset upstream subtrees to yocto 2.6
Reset the following subtrees on thud HEAD: poky: 87e3a9739d meta-openembedded: 6094ae18c8 meta-security: 31dc4e7532 meta-raspberrypi: a48743dc36 meta-xilinx: c42016e2e6 Also re-apply backports that didn't make it into thud: poky: 17726d0 systemd-systemctl-native: handle Install wildcards meta-openembedded: 4321a5d libtinyxml2: update to 7.0.1 042f0a3 libcereal: Add native and nativesdk classes e23284f libcereal: Allow empty package 030e8d4 rsyslog: curl-less build with fmhttp PACKAGECONFIG 179a1b9 gtest: update to 1.8.1 Squashed OpenBMC subtree compatibility updates: meta-aspeed: Brad Bishop (1): aspeed: add yocto 2.6 compatibility meta-ibm: Brad Bishop (1): ibm: prepare for yocto 2.6 meta-ingrasys: Brad Bishop (1): ingrasys: set layer compatibility to yocto 2.6 meta-openpower: Brad Bishop (1): openpower: set layer compatibility to yocto 2.6 meta-phosphor: Brad Bishop (3): phosphor: set layer compatibility to thud phosphor: libgpg-error: drop patches phosphor: react to fitimage artifact rename Ed Tanous (4): Dropbear: upgrade options for latest upgrade yocto2.6: update openssl options busybox: remove upstream watchdog patch systemd: Rebase CONFIG_CGROUP_BPF patch Change-Id: I7b1fe71cca880d0372a82d94b5fd785323e3a9e7 Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
Diffstat (limited to 'meta-xilinx')
-rw-r--r--meta-xilinx/meta-xilinx-bsp/README.building.md35
-rw-r--r--meta-xilinx/meta-xilinx-bsp/classes/image-wic-utils.bbclass51
-rw-r--r--meta-xilinx/meta-xilinx-bsp/classes/kernel-simpleimage.bbclass22
-rw-r--r--meta-xilinx/meta-xilinx-bsp/classes/xilinx-testimage.bbclass9
-rw-r--r--meta-xilinx/meta-xilinx-bsp/classes/zynqmp-pmu.bbclass122
-rw-r--r--meta-xilinx/meta-xilinx-bsp/conf/layer.conf2
-rw-r--r--meta-xilinx/meta-xilinx-bsp/conf/machine/include/machine-xilinx-board.inc2
-rw-r--r--meta-xilinx/meta-xilinx-bsp/conf/machine/include/machine-xilinx-default.inc37
-rw-r--r--meta-xilinx/meta-xilinx-bsp/conf/machine/include/machine-xilinx-qemu.inc6
-rw-r--r--meta-xilinx/meta-xilinx-bsp/conf/machine/include/tune-versal.inc14
-rw-r--r--meta-xilinx/meta-xilinx-bsp/conf/machine/include/zynqmp-pmu-config.inc20
-rw-r--r--meta-xilinx/meta-xilinx-bsp/conf/machine/kc705-microblazeel.conf3
-rw-r--r--meta-xilinx/meta-xilinx-bsp/conf/machine/microzed-zynq7.conf7
-rw-r--r--meta-xilinx/meta-xilinx-bsp/conf/machine/picozed-zynq7.conf5
-rw-r--r--meta-xilinx/meta-xilinx-bsp/conf/machine/qemu-zynq7.conf1
-rw-r--r--meta-xilinx/meta-xilinx-bsp/conf/machine/zc702-zynq7.conf9
-rw-r--r--meta-xilinx/meta-xilinx-bsp/conf/machine/zc706-zynq7.conf5
-rw-r--r--meta-xilinx/meta-xilinx-bsp/conf/machine/zcu102-zynqmp.conf20
-rw-r--r--meta-xilinx/meta-xilinx-bsp/conf/machine/zcu104-zynqmp.conf15
-rw-r--r--meta-xilinx/meta-xilinx-bsp/conf/machine/zcu106-zynqmp.conf15
-rw-r--r--meta-xilinx/meta-xilinx-bsp/conf/machine/zedboard-zynq7.conf9
-rw-r--r--meta-xilinx/meta-xilinx-bsp/conf/machine/zybo-linux-bd-zynq7.conf5
-rw-r--r--meta-xilinx/meta-xilinx-bsp/conf/machine/zybo-zynq7.conf5
-rw-r--r--meta-xilinx/meta-xilinx-bsp/recipes-bsp/arm-trusted-firmware/arm-trusted-firmware.inc22
-rw-r--r--meta-xilinx/meta-xilinx-bsp/recipes-bsp/arm-trusted-firmware/arm-trusted-firmware_2018.1.bb7
-rw-r--r--meta-xilinx/meta-xilinx-bsp/recipes-bsp/arm-trusted-firmware/arm-trusted-firmware_2018.3.bb7
-rw-r--r--meta-xilinx/meta-xilinx-bsp/recipes-bsp/device-tree/device-tree.bb88
-rw-r--r--meta-xilinx/meta-xilinx-bsp/recipes-bsp/device-tree/device-tree.bbappend30
-rw-r--r--meta-xilinx/meta-xilinx-bsp/recipes-bsp/device-tree/files/microzed-zynq7.dts96
-rw-r--r--meta-xilinx/meta-xilinx-bsp/recipes-bsp/pmu-firmware/pmu-firmware_2018.1.bb99
-rw-r--r--meta-xilinx/meta-xilinx-bsp/recipes-bsp/reference-design/kc705-bitstream_2018.3.bb (renamed from meta-xilinx/meta-xilinx-bsp/recipes-bsp/reference-design/kc705-bitstream_2018.1.bb)4
-rw-r--r--meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-spl-zynq-init.inc4
-rw-r--r--meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-xlnx/v2018.3/microblaze-kc705-Convert-microblaze-generic-to-k.patch (renamed from meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-xlnx/v2018.1/microblaze-kc705-Convert-microblaze-generic-to-k.patch)0
-rw-r--r--meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-xlnx_2018.3.bb (renamed from meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-xlnx_2018.1.bb)9
-rw-r--r--meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-zynq-uenv.bb55
-rw-r--r--meta-xilinx/meta-xilinx-bsp/recipes-core/newlib/libgloss_3.0.0.bb27
-rw-r--r--meta-xilinx/meta-xilinx-bsp/recipes-core/newlib/newlib.inc58
-rw-r--r--meta-xilinx/meta-xilinx-bsp/recipes-core/newlib/newlib_3.0.0.bb19
-rw-r--r--meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/files/memfd.patch57
-rw-r--r--meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/files/qemu-system-aarch64-multiarch84
-rw-r--r--meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/qemu-devicetrees_2018.1.bb6
-rw-r--r--meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/qemu-devicetrees_2018.3.bb6
-rw-r--r--meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/qemu-xilinx.inc4
-rw-r--r--meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/qemu-xilinx_2018.1.bb6
-rw-r--r--meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/qemu-xilinx_2018.3.bb6
-rw-r--r--meta-xilinx/meta-xilinx-bsp/recipes-graphics/libgles/files/gbm.pc12
-rw-r--r--meta-xilinx/meta-xilinx-bsp/recipes-graphics/libgles/files/wayland-egl.pc12
-rw-r--r--meta-xilinx/meta-xilinx-bsp/recipes-graphics/libgles/libmali-xlnx.bb52
-rw-r--r--meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/linux-xlnx.inc7
-rw-r--r--meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/linux-xlnx_2018.1.bb7
-rw-r--r--meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/linux-xlnx_2018.3.bb7
-rw-r--r--meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/features/overlay/overlay.cfg3
-rw-r--r--meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/features/overlay/overlay.scc4
-rw-r--r--meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils%.bbappend2
-rw-r--r--meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0001-MicroBlaze-Add-wdc.ext.clear-and-wdc.ext.flush-insns.patch (renamed from meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.30/0001-MicroBlaze-Add-wdc.ext.clear-and-wdc.ext.flush-insns.patch)0
-rw-r--r--meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0002-MicroBlaze-add-mlittle-endian-and-mbig-endian-flags.patch (renamed from meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.30/0002-MicroBlaze-add-mlittle-endian-and-mbig-endian-flags.patch)0
-rw-r--r--meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0003-Disable-the-warning-message-for-eh_frame_hdr.patch (renamed from meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.30/0003-Disable-the-warning-message-for-eh_frame_hdr.patch)25
-rw-r--r--meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0004-Fix-relaxation-of-assembler-resolved-references.patch (renamed from meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.30/0004-Fix-relaxation-of-assembler-resolved-references.patch)0
-rw-r--r--meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0005-Fixup-MicroBlaze-debug_loc-sections-after-linker-rel.patch (renamed from meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.30/0005-Fixup-MicroBlaze-debug_loc-sections-after-linker-rel.patch)99
-rw-r--r--meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0006-Fix-bug-in-MicroBlaze-TLSTPREL-Relocation.patch (renamed from meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.30/0006-Fix-bug-in-MicroBlaze-TLSTPREL-Relocation.patch)10
-rw-r--r--meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0007-Add-MicroBlaze-address-extension-instructions.patch (renamed from meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.30/0007-Add-MicroBlaze-address-extension-instructions.patch)0
-rw-r--r--meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0008-Add-new-MicroBlaze-bit-field-instructions.patch (renamed from meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.30/0008-Add-new-MicroBlaze-bit-field-instructions.patch)0
-rw-r--r--meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0009-Fixing-MicroBlaze-IMM-bug.patch (renamed from meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.30/0009-Fixing-MicroBlaze-IMM-bug.patch)0
-rw-r--r--meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0010-Fixed-bug-in-GCC-so-that-it-will-support-.long-0U-an.patch (renamed from meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.30/0010-Fixed-bug-in-GCC-so-that-it-will-support-.long-0U-an.patch)0
-rw-r--r--meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0011-Fixing-MicroBlaze-constant-range-check-issue.patch (renamed from meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.30/0011-Fixing-MicroBlaze-constant-range-check-issue.patch)0
-rw-r--r--meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0012-MicroBlaze-fix-mask-for-barrel-shift-instructions.patch (renamed from meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.30/0012-MicroBlaze-fix-mask-for-barrel-shift-instructions.patch)0
-rw-r--r--meta-xilinx/meta-xilinx-bsp/recipes-multimedia/vcu/kernel-module-vcu.bb4
-rw-r--r--meta-xilinx/meta-xilinx-bsp/recipes-multimedia/vcu/libomxil-xlnx.bb8
-rw-r--r--meta-xilinx/meta-xilinx-bsp/recipes-multimedia/vcu/libvcu-xlnx.bb8
-rw-r--r--meta-xilinx/meta-xilinx-bsp/recipes-multimedia/vcu/vcu-firmware.bb4
-rw-r--r--meta-xilinx/meta-xilinx-contrib/conf/layer.conf2
-rw-r--r--meta-xilinx/meta-xilinx-contrib/conf/machine/minized-zynq7.conf6
-rw-r--r--meta-xilinx/meta-xilinx-contrib/recipes-bsp/u-boot/files/minized-u-boot.patch217
-rw-r--r--meta-xilinx/meta-xilinx-contrib/recipes-bsp/u-boot/u-boot_%.bbappend8
-rw-r--r--meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux-firmware/linux-firmware_%.bbappend14
-rw-r--r--meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx/v2018.3/0001-drm-xilinx-Add-encoder-for-Digilent-boards.patch (renamed from meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx/v2018.1/0001-drm-xilinx-Add-encoder-for-Digilent-boards.patch)0
-rw-r--r--meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx/v2018.3/0002-clk-Add-driver-for-axi_dynclk-IP-Core.patch (renamed from meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx/v2018.1/0002-clk-Add-driver-for-axi_dynclk-IP-Core.patch)0
-rw-r--r--meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx/v2018.3/0003-drm-xilinx-Fix-DPMS-transition-to-on.patch (renamed from meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx/v2018.1/0003-drm-xilinx-Fix-DPMS-transition-to-on.patch)0
-rw-r--r--meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx/v2018.3/0004-minized-wifi-bluetooth.cfg (renamed from meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx/v2018.1/0004-minized-wifi-bluetooth.cfg)0
-rw-r--r--meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx_2018.3.bbappend (renamed from meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx_2018.1.bbappend)0
-rw-r--r--meta-xilinx/meta-xilinx-standalone/README.md54
-rw-r--r--meta-xilinx/meta-xilinx-standalone/conf/distro/xilinx-standalone.conf13
-rw-r--r--meta-xilinx/meta-xilinx-standalone/conf/layer.conf14
-rw-r--r--meta-xilinx/meta-xilinx-standalone/conf/machine/zynqmp-pmu.conf11
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-standalone/gcc/gcc-cross_%.bbappend18
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-standalone/newlib/libgloss_3.0.0.bbappend10
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-standalone/newlib/newlib_3.0.0.bbappend4
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-standalone/pmu-firmware/pmu-firmware_2018.3.bb71
88 files changed, 728 insertions, 1091 deletions
diff --git a/meta-xilinx/meta-xilinx-bsp/README.building.md b/meta-xilinx/meta-xilinx-bsp/README.building.md
index e0e3f264d..54d61c3d4 100644
--- a/meta-xilinx/meta-xilinx-bsp/README.building.md
+++ b/meta-xilinx/meta-xilinx-bsp/README.building.md
@@ -11,9 +11,14 @@ configure `bblayers.conf` by adding the `meta-xilinx-bsp` and
BBLAYERS ?= " \
<path to layer>/oe-core/meta \
<path to layer>/meta-xilinx-bsp \
+ <path to layer>/meta-xilinx-standalone \
<path to layer>/meta-xilinx-contrib \
"
+meta-xilinx-standalone layer provides recipes which enable building baremetal
+toolchain for PMU firmware. This layer is required for ZU+ devices which
+depends on PMU firmware
+
meta-xilinx-contrib is a contribution layer and is optional.
To build a specific target BSP configure the associated machine in `local.conf`:
@@ -27,6 +32,36 @@ Build the target file system image using `bitbake`:
Once complete the images for the target machine will be available in the output
directory `tmp/deploy/images/<machine name>/`.
+Using multiconfig to build ZU+
+------------------------------
+
+multiconfig dependency has to be added in image file or local.conf.
+For example in core-image-minimal you will need
+do_image[mcdepends] = "multiconfig:zcu102:pmu:pmu-firmware:do_deploy"
+
+Add conf/multiconfig in the build directory and create pmu.conf and zcu102.conf
+
+Add the following in pmu.conf:
+ MACHINE="zynqmp-pmu"
+ DISTRO="xilinx-standalone"
+ GCCVERSION="7.%"
+ TMPDIR="${TOPDIR}/pmutmp"
+
+Add the following in zcu102.conf:
+ MACHINE="zcu102-zynqmp"
+ DISTRO="poky"
+
+In local.conf multiconfig is enabled by: BBMULTICONFIG ?= "zcu102 pmu"
+
+bitbake multiconfig:zcu102:core-image-minimal
+
+More information about multiconfig:
+https://www.yoctoproject.org/docs/current/mega-manual/mega-manual.html#dev-building-images-for-multiple-targets-using-multiple-configurations
+
+Workaround:
+There is additional workaround required in u-boot-xlnx recipe. Add the below dependency
+do_compile[mcdepends] = "multiconfig:zcu102:pmu:pmu-firmware:do_deploy"
+
Additional Information
----------------------
diff --git a/meta-xilinx/meta-xilinx-bsp/classes/image-wic-utils.bbclass b/meta-xilinx/meta-xilinx-bsp/classes/image-wic-utils.bbclass
new file mode 100644
index 000000000..6f66d553e
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/classes/image-wic-utils.bbclass
@@ -0,0 +1,51 @@
+# Helper/utility functions to work with the IMAGE_BOOT_FILES variable and its
+# expected behvaior with regards to the contents of the DEPLOY_DIR_IMAGE.
+#
+# The use of these functions assume that the deploy directory is populated with
+# any dependent files/etc. Such that the recipe using these functions depends
+# on the recipe that provides the files being used/queried.
+
+def boot_files_split_expand(d):
+ # IMAGE_BOOT_FILES has extra renaming info in the format '<source>;<target>'
+ for f in (d.getVar("IMAGE_BOOT_FILES") or "").split(" "):
+ parts = f.split(";", 1)
+ sources = [parts[0]]
+ if "*" in parts[0]:
+ # has glob part
+ import glob
+ deployroot = d.getVar("DEPLOY_DIR_IMAGE")
+ sources = []
+ for i in glob.glob(os.path.join(deployroot, parts[0])):
+ sources.append(os.path.basename(i))
+
+ # for all sources, yield an entry
+ for s in sources:
+ if len(parts) == 2:
+ yield s, parts[1]
+ yield s, s
+
+def boot_files_bitstream(d):
+ expectedfiles = [("bitstream", True)]
+ expectedexts = [(".bit", True), (".bin", False)]
+ # search for bitstream paths, use the renamed file. First matching is used
+ for source, target in boot_files_split_expand(d):
+ # skip boot.bin and u-boot.bin, it is not a bitstream
+ skip = ["boot.bin", "u-boot.bin"]
+ if source in skip or target in skip:
+ continue
+
+ for e, t in expectedfiles:
+ if source == e or target == e:
+ return target, t
+ for e, t in expectedexts:
+ if source.endswith(e) or target.endswith(e):
+ return target, t
+ return "", False
+
+def boot_files_dtb_filepath(d):
+ dtbs = (d.getVar("IMAGE_BOOT_FILES") or "").split(" ")
+ for source, target in boot_files_split_expand(d):
+ if target.endswith(".dtb"):
+ return target
+ return ""
+
diff --git a/meta-xilinx/meta-xilinx-bsp/classes/kernel-simpleimage.bbclass b/meta-xilinx/meta-xilinx-bsp/classes/kernel-simpleimage.bbclass
new file mode 100644
index 000000000..be70ffa38
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/classes/kernel-simpleimage.bbclass
@@ -0,0 +1,22 @@
+python __anonymous () {
+ kerneltypes = set((d.getVar("KERNEL_IMAGETYPE") or "").split())
+ kerneltypes |= set((d.getVar("KERNEL_IMAGETYPES") or "").split())
+ if any(t.startswith("simpleImage.") for t in kerneltypes):
+ # Enable building of simpleImage
+ bb.build.addtask('do_prep_simpleimage', 'do_compile', 'do_configure', d)
+ uarch = d.getVar("UBOOT_ARCH")
+ if uarch == "microblaze":
+ d.appendVarFlag('do_prep_simpleimage', 'depends', ' virtual/dtb:do_populate_sysroot')
+}
+
+do_prep_simpleimage[dirs] += "${B}"
+do_prep_simpleimage () {
+ install -d ${B}/arch/${ARCH}/boot/dts
+ for type in ${KERNEL_IMAGETYPES} ; do
+ if [[ "${type}" =~ "simpleImage" ]] && [ ${ARCH} = "microblaze" ]; then
+ ext="${type##*.}"
+ cp ${RECIPE_SYSROOT}/boot/devicetree/${ext}.dtb ${B}/arch/${ARCH}/boot/dts/
+ fi
+ done
+}
+
diff --git a/meta-xilinx/meta-xilinx-bsp/classes/xilinx-testimage.bbclass b/meta-xilinx/meta-xilinx-bsp/classes/xilinx-testimage.bbclass
new file mode 100644
index 000000000..d9086ec04
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/classes/xilinx-testimage.bbclass
@@ -0,0 +1,9 @@
+inherit testimage
+
+HOSTTOOLS += 'ip ping ps scp ssh stty'
+
+python do_testimage_prepend () {
+ from oeqa.core.target.qemu import supported_fstypes
+ supported_fstypes.append('wic.qemu-sd')
+}
+
diff --git a/meta-xilinx/meta-xilinx-bsp/classes/zynqmp-pmu.bbclass b/meta-xilinx/meta-xilinx-bsp/classes/zynqmp-pmu.bbclass
deleted file mode 100644
index 714eb96a7..000000000
--- a/meta-xilinx/meta-xilinx-bsp/classes/zynqmp-pmu.bbclass
+++ /dev/null
@@ -1,122 +0,0 @@
-#
-# This class handles configuring a recipe to build for the ZynqMP PMU
-# architecture. The reason for this class is due to limitations of multilib
-# with regards to multiple architectures (which do not work correctly).
-#
-# This class is specifically intended to extend the binutils-cross, gcc-cross,
-# newlib, libgloss and pmu-firmware recipes so that binaries can be emitted
-# which target the PMU architecture alongside building for the APU architecture
-# (ARM64). But the class can be applied globally via BBCLASSEXTEND in for
-# example a <machine>.conf.
-#
-# This class is almost the same as a multilib variant with custom TUNE_* setup
-# to allow for a switched TUNE_ARCH.
-#
-
-ORIG_TARGET_ARCH := "${TARGET_ARCH}"
-
-# zynqmp-pmu target arch (hardcoded based on pre-gen data from arch-microblaze.inc)
-DEFAULTTUNE = "microblaze"
-ABIEXTENSION = ""
-TUNE_ARCH = "microblazeel"
-#TUNE_FEATURES_tune-microblaze += "v9.2 barrel-shift pattern-compare"
-TUNE_CCARGS = "-mlittle-endian -mxl-barrel-shift -mxl-pattern-compare -mno-xl-reorder -mcpu=v9.2 -mxl-soft-mul -mxl-soft-div"
-TUNE_LDARGS = ""
-TUNE_ASARGS = ""
-TUNE_PKGARCH = "microblazeel-v9.2-bs-cmp"
-TARGET_OS = "elf"
-TARGET_FPU = "fpu-soft"
-
-# rebuild the MACHINE overrides
-MACHINEOVERRIDES = "${MACHINE}${@':${SOC_FAMILY}' if d.getVar('SOC_FAMILY') else ''}:microblaze"
-
-# override tune provided archs
-PACKAGE_EXTRA_ARCHS = "${TUNE_PKGARCH}"
-
-# baremetal equivalent config (note the tclibc is not included, this is purely
-# for recipes/etc that check for the value)
-TCLIBC = "baremetal"
-LIBCEXTENSION = ""
-LIBCOVERRIDE = ":libc-baremetal"
-USE_NLS = "no"
-IMAGE_LINGUAS = ""
-LIBC_DEPENDENCIES = ""
-
-# gcc-cross specific baremetal setup (due to the override order this is important)
-EXTRA_OECONF_pn-${MLPREFIX}gcc-cross-${TARGET_ARCH}_append = " --without-headers"
-
-EXTRA_OECONF_GCC_FLOAT = ""
-
-# Setup a multiarch like prefix.
-prefix = "/usr/${TARGET_SYS}"
-# Make sure GCC can search in the prefix dir (for libgcc)
-TOOLCHAIN_OPTIONS += "-B${RECIPE_SYSROOT}${includedir}/ -B${RECIPE_SYSROOT}${libdir}/"
-TOOLCHAIN_OPTIONS += "-I =${includedir} -L =${libdir}"
-
-python multitarget_zynqmp_pmu_virtclass_handler () {
- variant = "zynqmp-pmu"
- pn = d.getVar("PN")
- if not (pn.startswith(variant + "-") or pn.endswith("-" + variant)):
- return
-
- if bb.data.inherits_class('native', e.data) or bb.data.inherits_class('nativesdk', e.data) or bb.data.inherits_class('crosssdk', e.data):
- raise bb.parse.SkipPackage("Can't extend native/nativesdk/crosssdk recipes")
-
- initialpn = e.data.getVar("PN").replace("-" + variant, "").replace(variant + "-", "")
- e.data.setVar("MLPREFIX", variant + "-")
- e.data.setVar("OVERRIDES", e.data.getVar("OVERRIDES", False) + ":virtclass-" + variant)
-
- # hide multilib variants, this class is not one but this works around recipes thinking it is (due to MLPREFIX).
- e.data.setVar("MULTILIB_VARIANTS", "")
-
- # work around for -cross recipes that embed the TARGET_ARCH value
- if bb.data.inherits_class('cross', e.data):
- if initialpn.endswith("-" + d.getVar("ORIG_TARGET_ARCH")):
- initialpn = initialpn.replace("-" + d.getVar("ORIG_TARGET_ARCH"), "-" + d.getVar("TARGET_ARCH"))
-
- e.data.setVar("PN", variant + "-" + initialpn)
-}
-
-addhandler multitarget_zynqmp_pmu_virtclass_handler
-multitarget_zynqmp_pmu_virtclass_handler[eventmask] = "bb.event.RecipePreFinalise"
-
-python () {
- variant = "zynqmp-pmu"
- pn = d.getVar("PN")
- if not pn.startswith(variant + "-"):
- return
-
- if pn.endswith("gcc-cross-" + d.getVar("TARGET_ARCH")):
- # work around, DEPENDS _remove being immediate in gcc-cross
- d.setVar("DEPENDS_remove", "virtual/%slibc-for-gcc" % d.getVar("TARGET_PREFIX"))
-
- if pn.endswith("libgcc"):
- # work around, strip depends on libc via do_package* tasks (this class cannot set ASSUME_PROVIDED += libc)
- for i in ["do_package", "do_package_write_ipk", "do_package_write_deb", "do_package_write_rpm"]:
- sanitized = " ".join([dep for dep in d.getVarFlag(i, "depends").split() if not dep.startswith("virtual/%s-libc" % variant)])
- d.setVarFlag(i, "depends", sanitized)
-
- import oe.classextend
-
- clsextend = oe.classextend.ClassExtender(variant, d)
-
- clsextend.map_depends_variable("DEPENDS")
- clsextend.map_variable("PROVIDES")
-
- clsextend.rename_packages()
- clsextend.rename_package_variables((d.getVar("PACKAGEVARS") or "").split())
-
- clsextend.map_packagevars()
- clsextend.map_regexp_variable("PACKAGES_DYNAMIC")
- clsextend.map_variable("PACKAGE_INSTALL")
-}
-
-# microblaze elf insane definitions not currently in insane.bbclass
-PACKAGEQA_EXTRA_MACHDEFFUNCS += "package_qa_get_machine_dict_microblazeelf"
-def package_qa_get_machine_dict_microblazeelf(machdata, d):
- machdata["elf"] = {
- "microblaze": (189, 0, 0, False, 32),
- "microblazeeb":(189, 0, 0, False, 32),
- "microblazeel":(189, 0, 0, True, 32),
- }
- return machdata
diff --git a/meta-xilinx/meta-xilinx-bsp/conf/layer.conf b/meta-xilinx/meta-xilinx-bsp/conf/layer.conf
index 55f66802c..fc5116550 100644
--- a/meta-xilinx/meta-xilinx-bsp/conf/layer.conf
+++ b/meta-xilinx/meta-xilinx-bsp/conf/layer.conf
@@ -11,5 +11,5 @@ BBFILE_PRIORITY_xilinx = "5"
LAYERDEPENDS_xilinx = "core"
-LAYERSERIES_COMPAT_xilinx = "sumo"
+LAYERSERIES_COMPAT_xilinx = "sumo thud"
diff --git a/meta-xilinx/meta-xilinx-bsp/conf/machine/include/machine-xilinx-board.inc b/meta-xilinx/meta-xilinx-bsp/conf/machine/include/machine-xilinx-board.inc
index ba9a36be8..17041e41a 100644
--- a/meta-xilinx/meta-xilinx-bsp/conf/machine/include/machine-xilinx-board.inc
+++ b/meta-xilinx/meta-xilinx-bsp/conf/machine/include/machine-xilinx-board.inc
@@ -2,5 +2,3 @@
EXTRA_IMAGEDEPENDS += "virtual/bootloader"
-IMAGE_BOOT_FILES ?= "${KERNEL_IMAGETYPE} ${UBOOT_BINARY}"
-
diff --git a/meta-xilinx/meta-xilinx-bsp/conf/machine/include/machine-xilinx-default.inc b/meta-xilinx/meta-xilinx-bsp/conf/machine/include/machine-xilinx-default.inc
index 77fbec884..153a47fba 100644
--- a/meta-xilinx/meta-xilinx-bsp/conf/machine/include/machine-xilinx-default.inc
+++ b/meta-xilinx/meta-xilinx-bsp/conf/machine/include/machine-xilinx-default.inc
@@ -25,6 +25,14 @@ UBOOT_BINARY ?= "u-boot.${UBOOT_SUFFIX}"
UBOOT_ELF ?= "u-boot"
UBOOT_ELF_aarch64 ?= "u-boot.elf"
+#Hardware accelaration
+PREFERRED_PROVIDER_virtual/libgles1_mali400 = "libmali-xlnx"
+PREFERRED_PROVIDER_virtual/libgles2_mali400 = "libmali-xlnx"
+PREFERRED_PROVIDER_virtual/egl_mali400 = "libmali-xlnx"
+PREFERRED_PROVIDER_virtual/libgl_mali400 = "mesa-gl"
+PREFERRED_PROVIDER_virtual/mesa_mali400 = "mesa-gl"
+
+
XSERVER ?= " \
xserver-xorg \
xf86-input-evdev \
@@ -34,6 +42,35 @@ XSERVER ?= " \
${XSERVER_EXT} \
"
+IMAGE_BOOT_FILES ?= "${@get_default_image_boot_files(d)}"
+
+def get_default_image_boot_files(d):
+ files = []
+
+ # kernel images
+ kerneltypes = set((d.getVar("KERNEL_IMAGETYPE") or "").split())
+ kerneltypes |= set((d.getVar("KERNEL_IMAGETYPES") or "").split())
+ for i in kerneltypes:
+ files.append(i)
+
+ # u-boot image
+ if d.getVar("UBOOT_BINARY"):
+ files.append(d.getVar("UBOOT_BINARY"))
+
+ # device trees (device-tree only), these are first as they are likely desired over the kernel ones
+ if "device-tree" in (d.getVar("MACHINE_ESSENTIAL_EXTRA_RDEPENDS") or ""):
+ files.append("devicetree/*.dtb")
+
+
+ # device trees (kernel only)
+ if d.getVar("KERNEL_DEVICETREE"):
+ dtbs = d.getVar("KERNEL_DEVICETREE").split(" ")
+ dtbs = [os.path.basename(d) for d in dtbs]
+ for dtb in dtbs:
+ files.append(dtb)
+
+ return " ".join(files)
+
XSERVER_EXT ?= ""
XSERVER_EXT_zynqmp ?= "xf86-video-armsoc"
diff --git a/meta-xilinx/meta-xilinx-bsp/conf/machine/include/machine-xilinx-qemu.inc b/meta-xilinx/meta-xilinx-bsp/conf/machine/include/machine-xilinx-qemu.inc
index dd275f3b4..5eb4b5c47 100644
--- a/meta-xilinx/meta-xilinx-bsp/conf/machine/include/machine-xilinx-qemu.inc
+++ b/meta-xilinx/meta-xilinx-bsp/conf/machine/include/machine-xilinx-qemu.inc
@@ -8,15 +8,11 @@ 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>'
+ # Note: Wildcard sources work here only because runqemu expands them at run time
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):
diff --git a/meta-xilinx/meta-xilinx-bsp/conf/machine/include/tune-versal.inc b/meta-xilinx/meta-xilinx-bsp/conf/machine/include/tune-versal.inc
new file mode 100644
index 000000000..83acf6e08
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/conf/machine/include/tune-versal.inc
@@ -0,0 +1,14 @@
+DEFAULTTUNE ?= "aarch64"
+SOC_FAMILY ?= "versal"
+
+# Available SOC_VARIANT's for versal:
+# virt
+
+SOC_VARIANT ?= ""
+
+require conf/machine/include/arm/arch-armv8.inc
+require conf/machine/include/soc-family.inc
+
+# Linux Configuration
+KERNEL_IMAGETYPE ?= "Image"
+
diff --git a/meta-xilinx/meta-xilinx-bsp/conf/machine/include/zynqmp-pmu-config.inc b/meta-xilinx/meta-xilinx-bsp/conf/machine/include/zynqmp-pmu-config.inc
deleted file mode 100644
index fd9e98090..000000000
--- a/meta-xilinx/meta-xilinx-bsp/conf/machine/include/zynqmp-pmu-config.inc
+++ /dev/null
@@ -1,20 +0,0 @@
-
-# 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/meta-xilinx-bsp/conf/machine/kc705-microblazeel.conf b/meta-xilinx/meta-xilinx-bsp/conf/machine/kc705-microblazeel.conf
index b777c2496..73ff40fdd 100644
--- a/meta-xilinx/meta-xilinx-bsp/conf/machine/kc705-microblazeel.conf
+++ b/meta-xilinx/meta-xilinx-bsp/conf/machine/kc705-microblazeel.conf
@@ -5,7 +5,6 @@
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"
@@ -20,6 +19,6 @@ MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "device-tree"
PREFERRED_PROVIDER_virtual/kernel ?= "linux-xlnx"
PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot-xlnx"
-EXTRA_IMAGEDEPENDS += "virtual/bitstream"
+EXTRA_IMAGEDEPENDS += "virtual/bitstream virtual/bootloader"
UBOOT_MACHINE ?= "microblaze-generic_config"
diff --git a/meta-xilinx/meta-xilinx-bsp/conf/machine/microzed-zynq7.conf b/meta-xilinx/meta-xilinx-bsp/conf/machine/microzed-zynq7.conf
index 9cc97ec57..8869424dc 100644
--- a/meta-xilinx/meta-xilinx-bsp/conf/machine/microzed-zynq7.conf
+++ b/meta-xilinx/meta-xilinx-bsp/conf/machine/microzed-zynq7.conf
@@ -7,27 +7,26 @@ SOC_VARIANT ?= "7z"
require conf/machine/include/tune-zynq.inc
require conf/machine/include/machine-xilinx-overrides.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"
+SPL_BINARY ?= "spl/boot.bin"
EXTRA_IMAGEDEPENDS += " \
u-boot-zynq-uenv \
virtual/boot-bin \
+ virtual/bootloader \
"
SERIAL_CONSOLE = "115200 ttyPS0"
-MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "device-tree"
+KERNEL_DEVICETREE = "zynq-microzed.dtb"
IMAGE_BOOT_FILES += " \
boot.bin \
- ${MACHINE}.dtb \
uEnv.txt \
"
diff --git a/meta-xilinx/meta-xilinx-bsp/conf/machine/picozed-zynq7.conf b/meta-xilinx/meta-xilinx-bsp/conf/machine/picozed-zynq7.conf
index 8762832b6..911bf90ed 100644
--- a/meta-xilinx/meta-xilinx-bsp/conf/machine/picozed-zynq7.conf
+++ b/meta-xilinx/meta-xilinx-bsp/conf/machine/picozed-zynq7.conf
@@ -11,18 +11,18 @@ SOC_VARIANT ?= "7z"
require conf/machine/include/tune-zynq.inc
require conf/machine/include/machine-xilinx-overrides.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"
+SPL_BINARY ?= "spl/boot.bin"
EXTRA_IMAGEDEPENDS += " \
u-boot-zynq-uenv \
virtual/boot-bin \
+ virtual/bootloader \
"
SERIAL_CONSOLE = "115200 ttyPS0"
@@ -31,7 +31,6 @@ MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "device-tree"
IMAGE_BOOT_FILES += " \
boot.bin \
- ${MACHINE}.dtb \
uEnv.txt \
"
diff --git a/meta-xilinx/meta-xilinx-bsp/conf/machine/qemu-zynq7.conf b/meta-xilinx/meta-xilinx-bsp/conf/machine/qemu-zynq7.conf
index 2c86edb38..97251048f 100644
--- a/meta-xilinx/meta-xilinx-bsp/conf/machine/qemu-zynq7.conf
+++ b/meta-xilinx/meta-xilinx-bsp/conf/machine/qemu-zynq7.conf
@@ -14,7 +14,6 @@ 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"
diff --git a/meta-xilinx/meta-xilinx-bsp/conf/machine/zc702-zynq7.conf b/meta-xilinx/meta-xilinx-bsp/conf/machine/zc702-zynq7.conf
index 9b08d1be8..fbd58a6e8 100644
--- a/meta-xilinx/meta-xilinx-bsp/conf/machine/zc702-zynq7.conf
+++ b/meta-xilinx/meta-xilinx-bsp/conf/machine/zc702-zynq7.conf
@@ -13,25 +13,28 @@ SOC_VARIANT ?= "7z"
require conf/machine/include/tune-zynq.inc
require conf/machine/include/machine-xilinx-overrides.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"
+SPL_BINARY ?= "spl/boot.bin"
EXTRA_IMAGEDEPENDS += " \
u-boot-zynq-uenv \
virtual/boot-bin \
+ virtual/bootloader \
"
SERIAL_CONSOLE = "115200 ttyPS0"
KERNEL_DEVICETREE = "zynq-zc702.dtb"
-IMAGE_BOOT_FILES += "boot.bin uEnv.txt ${KERNEL_IMAGETYPE}-zynq-zc702.dtb"
+IMAGE_BOOT_FILES += " \
+ boot.bin \
+ uEnv.txt \
+ "
# Although not fully supported you can run this machine on the mainline QEMU 'xilinx-zynq-a9' machine
IMAGE_CLASSES += "qemuboot"
diff --git a/meta-xilinx/meta-xilinx-bsp/conf/machine/zc706-zynq7.conf b/meta-xilinx/meta-xilinx-bsp/conf/machine/zc706-zynq7.conf
index 628d4046a..741ef5de6 100644
--- a/meta-xilinx/meta-xilinx-bsp/conf/machine/zc706-zynq7.conf
+++ b/meta-xilinx/meta-xilinx-bsp/conf/machine/zc706-zynq7.conf
@@ -14,18 +14,18 @@ SOC_VARIANT ?= "7z"
require conf/machine/include/tune-zynq.inc
require conf/machine/include/machine-xilinx-overrides.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"
+SPL_BINARY ?= "spl/boot.bin"
EXTRA_IMAGEDEPENDS += " \
u-boot-zynq-uenv \
virtual/boot-bin \
+ virtual/bootloader \
"
SERIAL_CONSOLE = "115200 ttyPS0"
@@ -34,7 +34,6 @@ KERNEL_DEVICETREE = "zynq-zc706.dtb"
IMAGE_BOOT_FILES += " \
boot.bin \
- ${KERNEL_IMAGETYPE}-zynq-zc706.dtb \
uEnv.txt \
"
diff --git a/meta-xilinx/meta-xilinx-bsp/conf/machine/zcu102-zynqmp.conf b/meta-xilinx/meta-xilinx-bsp/conf/machine/zcu102-zynqmp.conf
index d7f19ca6f..fba55a3ee 100644
--- a/meta-xilinx/meta-xilinx-bsp/conf/machine/zcu102-zynqmp.conf
+++ b/meta-xilinx/meta-xilinx-bsp/conf/machine/zcu102-zynqmp.conf
@@ -7,14 +7,12 @@ SOC_VARIANT ?= "eg"
require conf/machine/include/tune-zynqmp.inc
require conf/machine/include/machine-xilinx-overrides.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"
+SPL_BINARY ?= "spl/boot.bin"
# Default SD image build onfiguration, use qemu-sd to pad
IMAGE_CLASSES += "image-types-xilinx-qemu"
@@ -28,23 +26,25 @@ 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 \
+ virtual/bootloader \
"
-IMAGE_BOOT_FILES += "uEnv.txt atf-uboot.ub ${KERNEL_IMAGETYPE}-zynqmp-zcu102-rev1.0.dtb"
+IMAGE_BOOT_FILES += " \
+ uEnv.txt \
+ atf-uboot.ub \
+ "
# 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_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
@@ -68,14 +68,18 @@ 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"
+PMU_FIRMWARE_DEPLOY_DIR ?= "${TOPDIR}/pmutmp/deploy/images/zynqmp-pmu"
+PMU_FIRMWARE_IMAGE_NAME ?= "pmu-firmware-zynqmp-pmu"
+
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-firmware-${MACHINE}.elf \
+ -device loader,file=${PMU_FIRMWARE_DEPLOY_DIR}/${PMU_FIRMWARE_IMAGE_NAME}.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}'"
+do_write_qemuboot_conf[depends] += "u-boot-zynq-uenv:do_deploy"
diff --git a/meta-xilinx/meta-xilinx-bsp/conf/machine/zcu104-zynqmp.conf b/meta-xilinx/meta-xilinx-bsp/conf/machine/zcu104-zynqmp.conf
index f5a2af976..c4b4a0329 100644
--- a/meta-xilinx/meta-xilinx-bsp/conf/machine/zcu104-zynqmp.conf
+++ b/meta-xilinx/meta-xilinx-bsp/conf/machine/zcu104-zynqmp.conf
@@ -8,13 +8,11 @@ SOC_VARIANT ?= "ev"
require conf/machine/include/tune-zynqmp.inc
require conf/machine/include/machine-xilinx-overrides.inc
require conf/machine/include/machine-xilinx-default.inc
-require conf/machine/include/machine-xilinx-board.inc
-include conf/machine/include/zynqmp-pmu-config.inc
MACHINE_FEATURES = "rtc ext2 ext3 vfat usbhost"
UBOOT_MACHINE = "xilinx_zynqmp_zcu104_revC_defconfig"
-SPL_BINARY = "spl/boot.bin"
+SPL_BINARY ?= "spl/boot.bin"
SERIAL_CONSOLE ?= "115200 ttyPS0"
@@ -24,15 +22,20 @@ KERNEL_DEVICETREE = "xilinx/zynqmp-zcu104-revC.dtb"
PREFERRED_PROVIDER_virtual/kernel ?= "linux-xlnx"
PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot-xlnx"
-PREFERRED_PROVIDER_virtual/pmu-firmware ?= "zynqmp-pmu-pmu-firmware"
+
+PMU_FIRMWARE_IMAGE_NAME ?= "pmu-firmware-zynqmp-pmu"
+PMU_FIRMWARE_DEPLOY_DIR ?= "${TOPDIR}/pmutmp/deploy/images/zynqmp-pmu"
EXTRA_IMAGEDEPENDS += " \
u-boot-zynq-uenv \
arm-trusted-firmware \
- virtual/pmu-firmware \
virtual/boot-bin \
+ virtual/bootloader \
+ "
+IMAGE_BOOT_FILES += " \
+ uEnv.txt \
+ atf-uboot.ub \
"
-IMAGE_BOOT_FILES += "uEnv.txt atf-uboot.ub ${KERNEL_IMAGETYPE}-zynqmp-zcu104-revC.dtb"
MACHINE_HWCODECS = "libomxil-xlnx"
diff --git a/meta-xilinx/meta-xilinx-bsp/conf/machine/zcu106-zynqmp.conf b/meta-xilinx/meta-xilinx-bsp/conf/machine/zcu106-zynqmp.conf
index 628ec6c1d..136efb903 100644
--- a/meta-xilinx/meta-xilinx-bsp/conf/machine/zcu106-zynqmp.conf
+++ b/meta-xilinx/meta-xilinx-bsp/conf/machine/zcu106-zynqmp.conf
@@ -7,13 +7,11 @@ SOC_VARIANT ?= "ev"
require conf/machine/include/tune-zynqmp.inc
require conf/machine/include/machine-xilinx-overrides.inc
require conf/machine/include/machine-xilinx-default.inc
-require conf/machine/include/machine-xilinx-board.inc
-include conf/machine/include/zynqmp-pmu-config.inc
MACHINE_FEATURES = "rtc ext2 ext3 vfat usbhost"
UBOOT_MACHINE = "xilinx_zynqmp_zcu106_revA_defconfig"
-SPL_BINARY = "spl/boot.bin"
+SPL_BINARY ?= "spl/boot.bin"
SERIAL_CONSOLE = "115200 ttyPS0"
SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
@@ -22,15 +20,20 @@ KERNEL_DEVICETREE = "xilinx/zynqmp-zcu106-revA.dtb"
PREFERRED_PROVIDER_virtual/kernel ?= "linux-xlnx"
PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot-xlnx"
-PREFERRED_PROVIDER_virtual/pmu-firmware ?= "zynqmp-pmu-pmu-firmware"
+
+PMU_FIRMWARE_IMAGE_NAME ?= "pmu-firmware-zynqmp-pmu"
+PMU_FIRMWARE_DEPLOY_DIR ?= "${TOPDIR}/pmutmp/deploy/images/zynqmp-pmu"
EXTRA_IMAGEDEPENDS += " \
u-boot-zynq-uenv \
arm-trusted-firmware \
- virtual/pmu-firmware \
virtual/boot-bin \
+ virtual/bootloader \
"
-IMAGE_BOOT_FILES += "uEnv.txt atf-uboot.ub ${KERNEL_IMAGETYPE}-zynqmp-zcu106-revA.dtb"
+IMAGE_BOOT_FILES += " \
+ uEnv.txt \
+ atf-uboot.ub \
+ "
MACHINE_HWCODECS = "libomxil-xlnx"
diff --git a/meta-xilinx/meta-xilinx-bsp/conf/machine/zedboard-zynq7.conf b/meta-xilinx/meta-xilinx-bsp/conf/machine/zedboard-zynq7.conf
index a329074e3..36c51b70b 100644
--- a/meta-xilinx/meta-xilinx-bsp/conf/machine/zedboard-zynq7.conf
+++ b/meta-xilinx/meta-xilinx-bsp/conf/machine/zedboard-zynq7.conf
@@ -13,20 +13,23 @@ SOC_VARIANT ?= "7z"
require conf/machine/include/tune-zynq.inc
require conf/machine/include/machine-xilinx-overrides.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"
+SPL_BINARY ?= "spl/boot.bin"
EXTRA_IMAGEDEPENDS += " \
u-boot-zynq-uenv \
virtual/boot-bin \
+ virtual/bootloader \
"
SERIAL_CONSOLE = "115200 ttyPS0"
KERNEL_DEVICETREE = "zynq-zed.dtb"
-IMAGE_BOOT_FILES += "boot.bin uEnv.txt ${KERNEL_IMAGETYPE}-zynq-zed.dtb"
+IMAGE_BOOT_FILES += " \
+ boot.bin \
+ uEnv.txt \
+ "
diff --git a/meta-xilinx/meta-xilinx-bsp/conf/machine/zybo-linux-bd-zynq7.conf b/meta-xilinx/meta-xilinx-bsp/conf/machine/zybo-linux-bd-zynq7.conf
index 27b6d072e..ba355d568 100644
--- a/meta-xilinx/meta-xilinx-bsp/conf/machine/zybo-linux-bd-zynq7.conf
+++ b/meta-xilinx/meta-xilinx-bsp/conf/machine/zybo-linux-bd-zynq7.conf
@@ -10,7 +10,6 @@ SOC_VARIANT ?= "7z"
require conf/machine/include/tune-zynq.inc
require conf/machine/include/machine-xilinx-overrides.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"
@@ -21,18 +20,18 @@ SERIAL_CONSOLE = "115200 ttyPS0"
MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "device-tree"
UBOOT_MACHINE = "zynq_zybo_config"
-SPL_BINARY = "spl/boot.bin"
+SPL_BINARY ?= "spl/boot.bin"
FORCE_PLATFORM_INIT = "1"
EXTRA_IMAGEDEPENDS += " \
u-boot-zynq-uenv \
virtual/boot-bin \
virtual/bitstream \
+ virtual/bootloader \
"
IMAGE_BOOT_FILES += " \
boot.bin \
- ${MACHINE}.dtb \
bitstream \
uEnv.txt \
"
diff --git a/meta-xilinx/meta-xilinx-bsp/conf/machine/zybo-zynq7.conf b/meta-xilinx/meta-xilinx-bsp/conf/machine/zybo-zynq7.conf
index 5b4056379..049add9cc 100644
--- a/meta-xilinx/meta-xilinx-bsp/conf/machine/zybo-zynq7.conf
+++ b/meta-xilinx/meta-xilinx-bsp/conf/machine/zybo-zynq7.conf
@@ -11,18 +11,18 @@ SOC_VARIANT ?= "7z"
require conf/machine/include/tune-zynq.inc
require conf/machine/include/machine-xilinx-overrides.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"
+SPL_BINARY ?= "spl/boot.bin"
EXTRA_IMAGEDEPENDS += " \
u-boot-zynq-uenv \
virtual/boot-bin \
+ virtual/bootloader \
"
SERIAL_CONSOLE = "115200 ttyPS0"
@@ -31,7 +31,6 @@ KERNEL_DEVICETREE = "zynq-zybo.dtb"
IMAGE_BOOT_FILES += " \
boot.bin \
- ${KERNEL_IMAGETYPE}-zynq-zybo.dtb \
uEnv.txt \
"
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-bsp/arm-trusted-firmware/arm-trusted-firmware.inc b/meta-xilinx/meta-xilinx-bsp/recipes-bsp/arm-trusted-firmware/arm-trusted-firmware.inc
index 02bbc7326..d64fad9cc 100644
--- a/meta-xilinx/meta-xilinx-bsp/recipes-bsp/arm-trusted-firmware/arm-trusted-firmware.inc
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-bsp/arm-trusted-firmware/arm-trusted-firmware.inc
@@ -1,7 +1,7 @@
DESCRIPTION = "ARM Trusted Firmware"
LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://license.rst;md5=33065335ea03d977d0569f270b39603e"
+LIC_FILES_CHKSUM = "file://license.rst;md5=e927e02bca647e14efd87e9e914b2443"
PROVIDES = "virtual/arm-trusted-firmware"
@@ -28,6 +28,7 @@ ATF_BASE_NAME[vardepsexclude] = "DATETIME"
COMPATIBLE_MACHINE = "zynqmp"
PLATFORM_zynqmp = "zynqmp"
+
# requires CROSS_COMPILE set by hand as there is no configure script
export CROSS_COMPILE="${TARGET_PREFIX}"
@@ -37,8 +38,23 @@ LDFLAGS[unexport] = "1"
AS[unexport] = "1"
LD[unexport] = "1"
+ATF_CONSOLE ?= ""
+ATF_CONSOLE_zynqmp = "cadence"
+
+DEBUG ?= ""
+EXTRA_OEMAKE_zynqmp_append = "${@' ZYNQMP_CONSOLE=${ATF_CONSOLE}' if d.getVar('ATF_CONSOLE', True) != '' else ''}"
+EXTRA_OEMAKE_append = " ${@bb.utils.contains('DEBUG', '1', ' DEBUG=${DEBUG}', '', d)}"
+
+OUTPUT_DIR = "${@bb.utils.contains('DEBUG', '1', '${B}/${PLATFORM}/debug', '${B}/${PLATFORM}/release', d)}"
+
+ATF_MEM_BASE ?= ""
+ATF_MEM_SIZE ?= ""
+
+EXTRA_OEMAKE_zynqmp_append = "${@' ZYNQMP_ATF_MEM_BASE=${ATF_MEM_BASE}' if d.getVar('ATF_MEM_BASE', True) != '' else ''}"
+EXTRA_OEMAKE_zynqmp_append = "${@' ZYNQMP_ATF_MEM_SIZE=${ATF_MEM_SIZE}' if d.getVar('ATF_MEM_SIZE', True) != '' else ''}"
+
do_configure() {
- :
+ oe_runmake clean -C ${S} BUILD_BASE=${B} PLAT=${PLATFORM}
}
do_compile() {
@@ -49,8 +65,6 @@ do_install() {
:
}
-OUTPUT_DIR = "${B}/${PLATFORM}/release"
-
do_deploy() {
install -d ${DEPLOYDIR}
install -m 0644 ${OUTPUT_DIR}/bl31/bl31.elf ${DEPLOYDIR}/${ATF_BASE_NAME}.elf
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-bsp/arm-trusted-firmware/arm-trusted-firmware_2018.1.bb b/meta-xilinx/meta-xilinx-bsp/recipes-bsp/arm-trusted-firmware/arm-trusted-firmware_2018.1.bb
deleted file mode 100644
index 6a9eea683..000000000
--- a/meta-xilinx/meta-xilinx-bsp/recipes-bsp/arm-trusted-firmware/arm-trusted-firmware_2018.1.bb
+++ /dev/null
@@ -1,7 +0,0 @@
-ATF_VERSION = "1.4"
-XILINX_RELEASE_VERSION = "v2018.1"
-BRANCH ?= "master"
-SRCREV ?= "df4a7e97d57494c7d79de51b1e0e450d982cea98"
-
-include arm-trusted-firmware.inc
-
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-bsp/arm-trusted-firmware/arm-trusted-firmware_2018.3.bb b/meta-xilinx/meta-xilinx-bsp/recipes-bsp/arm-trusted-firmware/arm-trusted-firmware_2018.3.bb
new file mode 100644
index 000000000..8c8a5d00c
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-bsp/arm-trusted-firmware/arm-trusted-firmware_2018.3.bb
@@ -0,0 +1,7 @@
+ATF_VERSION = "1.5"
+XILINX_RELEASE_VERSION = "v2018.3"
+BRANCH ?= "master"
+SRCREV ?= "08560c36ea5b6f48b962cb4bd9a79b35bb3d95ce"
+
+include arm-trusted-firmware.inc
+
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-bsp/device-tree/device-tree.bb b/meta-xilinx/meta-xilinx-bsp/recipes-bsp/device-tree/device-tree.bb
index dc49cbbff..81965c13c 100644
--- a/meta-xilinx/meta-xilinx-bsp/recipes-bsp/device-tree/device-tree.bb
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-bsp/device-tree/device-tree.bb
@@ -1,85 +1,39 @@
-SUMMARY = "Device Trees for BSPs"
-DESCRIPTION = "Device Tree generation and packaging for BSP Device Trees."
+SUMMARY = "Xilinx BSP device trees"
+DESCRIPTION = "Xilinx BSP device trees from within layer."
SECTION = "bsp"
+# the device trees from within the layer are licensed as MIT, kernel includes are GPL
LICENSE = "MIT & GPLv2"
LIC_FILES_CHKSUM = " \
file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302 \
file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6 \
"
-inherit deploy kernel-arch
+inherit devicetree
PROVIDES = "virtual/dtb"
-INHIBIT_DEFAULT_DEPS = "1"
-DEPENDS += "dtc-native"
+# common zynq include
+SRC_URI_append_zynq = " file://zynq-7000-qspi-dummy.dtsi"
-COMPATIBLE_MACHINE ?= "^$"
+# device tree sources for the various machines
+COMPATIBLE_MACHINE_picozed-zynq7 = ".*"
+SRC_URI_append_picozed-zynq7 = " file://picozed-zynq7.dts"
-PACKAGE_ARCH = "${MACHINE_ARCH}"
+COMPATIBLE_MACHINE_qemu-zynq7 = ".*"
+SRC_URI_append_qemu-zynq7 = " file://qemu-zynq7.dts"
-FILES_${PN} = "/boot/devicetree/*.dtb /boot/devicetree/*.dtbo"
-
-S = "${WORKDIR}"
-B = "${WORKDIR}/build"
-
-SYSROOT_DIRS += "/boot/devicetree"
-
-# By default provide the current kernel arch's boot/dts and boot/dts/include.
-KERNEL_DTS_INCLUDE ??= " \
- ${STAGING_KERNEL_DIR}/arch/${ARCH}/boot/dts \
- ${STAGING_KERNEL_DIR}/arch/${ARCH}/boot/dts/include \
+COMPATIBLE_MACHINE_zybo-linux-bd-zynq7 = ".*"
+SRC_URI_append_zybo-linux-bd-zynq7 = " \
+ file://zybo-linux-bd-zynq7.dts \
+ file://pcw.dtsi \
+ file://pl.dtsi \
"
-# For arm64/zynqmp the xilinx specific includes are subdired under a vendor directory.
-KERNEL_DTS_INCLUDE_append_zynqmp = " \
- ${STAGING_KERNEL_DIR}/arch/${ARCH}/boot/dts/xilinx \
- "
-
-DTS_FILES_PATH ?= "${S}"
-DTS_INCLUDE ?= "${DTS_FILES_PATH} ${KERNEL_DTS_INCLUDE}"
-DT_PADDING_SIZE ?= "0x3000"
-DEVICETREE_FLAGS ?= " \
- -R 8 -p ${DT_PADDING_SIZE} -b 0 \
- ${@' '.join(['-i %s' % i for i in d.getVar('DTS_INCLUDE', True).split()])} \
- "
-DEVICETREE_OFLAGS ?= "-@ -H epapr"
-DEVICETREE_PP_FLAGS ?= " \
- -nostdinc -Ulinux -x assembler-with-cpp \
- ${@' '.join(['-I%s' % i for i in d.getVar('DTS_INCLUDE', True).split()])} \
+COMPATIBLE_MACHINE_kc705-microblazeel = ".*"
+SRC_URI_append_kc705-microblazeel = " \
+ file://kc705-microblazeel.dts \
+ file://pl.dtsi \
+ file://system-conf.dtsi \
"
-python () {
- # auto add dependency on kernel tree
- if d.getVar("KERNEL_DTS_INCLUDE") != "":
- d.appendVarFlag("do_compile", "depends", " virtual/kernel:do_configure")
-}
-
-do_compile() {
- for DTS_FILE in ${DTS_FILES_PATH}/*.dts; do
- DTS_NAME=`basename -s .dts ${DTS_FILE}`
- ${BUILD_CPP} ${DEVICETREE_PP_FLAGS} -o `basename ${DTS_FILE}`.pp ${DTS_FILE}
-
- # for now use the existance of the '/plugin/' tag to detect overlays
- if grep -qse "/plugin/;" `basename ${DTS_FILE}`.pp; then
- dtc ${DEVICETREE_OFLAGS} -I dts -O dtb ${DEVICETREE_FLAGS} -o ${DTS_NAME}.dtbo `basename ${DTS_FILE}`.pp
- else
- dtc -I dts -O dtb ${DEVICETREE_FLAGS} -o ${DTS_NAME}.dtb `basename ${DTS_FILE}`.pp
- fi
- done
-}
-
-do_install() {
- for DTB_FILE in `ls *.dtb *.dtbo`; do
- install -Dm 0644 ${B}/${DTB_FILE} ${D}/boot/devicetree/${DTB_FILE}
- done
-}
-
-do_deploy() {
- for DTB_FILE in `ls *.dtb *.dtbo`; do
- install -Dm 0644 ${B}/${DTB_FILE} ${DEPLOYDIR}/${DTB_FILE}
- done
-}
-addtask deploy before do_build after do_install
-
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-bsp/device-tree/device-tree.bbappend b/meta-xilinx/meta-xilinx-bsp/recipes-bsp/device-tree/device-tree.bbappend
deleted file mode 100644
index e128e0e84..000000000
--- a/meta-xilinx/meta-xilinx-bsp/recipes-bsp/device-tree/device-tree.bbappend
+++ /dev/null
@@ -1,30 +0,0 @@
-
-FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
-
-# common zynq include
-SRC_URI_append_zynq = " file://zynq-7000-qspi-dummy.dtsi"
-
-# device tree sources for the various machines
-COMPATIBLE_MACHINE_picozed-zynq7 = ".*"
-SRC_URI_append_picozed-zynq7 = " file://picozed-zynq7.dts"
-
-COMPATIBLE_MACHINE_microzed-zynq7 = ".*"
-SRC_URI_append_microzed-zynq7 = " file://microzed-zynq7.dts"
-
-COMPATIBLE_MACHINE_qemu-zynq7 = ".*"
-SRC_URI_append_qemu-zynq7 = " file://qemu-zynq7.dts"
-
-COMPATIBLE_MACHINE_zybo-linux-bd-zynq7 = ".*"
-SRC_URI_append_zybo-linux-bd-zynq7 = " \
- file://zybo-linux-bd-zynq7.dts \
- file://pcw.dtsi \
- file://pl.dtsi \
- "
-
-COMPATIBLE_MACHINE_kc705-microblazeel = ".*"
-SRC_URI_append_kc705-microblazeel = " \
- file://kc705-microblazeel.dts \
- file://pl.dtsi \
- file://system-conf.dtsi \
- "
-
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-bsp/device-tree/files/microzed-zynq7.dts b/meta-xilinx/meta-xilinx-bsp/recipes-bsp/device-tree/files/microzed-zynq7.dts
deleted file mode 100644
index b9376a490..000000000
--- a/meta-xilinx/meta-xilinx-bsp/recipes-bsp/device-tree/files/microzed-zynq7.dts
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Copyright (C) 2011 - 2014 Xilinx
- * Copyright (C) 2016 Jagan Teki <jteki@openedev.com>
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- */
-/dts-v1/;
-/include/ "zynq-7000.dtsi"
-
-/ {
- model = "Zynq MicroZED Development Board";
- compatible = "xlnx,zynq-microzed", "xlnx,zynq-7000";
-
- aliases {
- ethernet0 = &gem0;
- serial0 = &uart1;
- };
-
- memory {
- device_type = "memory";
- reg = <0x0 0x40000000>;
- };
-
- chosen {
- bootargs = "earlycon";
- stdout-path = "serial0:115200n8";
- };
-
- usb_phy0: phy0 {
- compatible = "usb-nop-xceiv";
- #phy-cells = <0>;
- };
-};
-
-&clkc {
- ps-clk-frequency = <33333333>;
-};
-
-&gem0 {
- status = "okay";
- phy-mode = "rgmii-id";
- phy-handle = <&ethernet_phy>;
-
- ethernet_phy: ethernet-phy@0 {
- reg = <0>;
- };
-};
-
-&sdhci0 {
- status = "okay";
-};
-
-&uart1 {
- status = "okay";
-};
-
-&usb0 {
- status = "okay";
- dr_mode = "host";
- usb-phy = <&usb_phy0>;
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_usb0_default>;
-};
-
-&pinctrl0 {
- pinctrl_usb0_default: usb0-default {
- mux {
- groups = "usb0_0_grp";
- function = "usb0";
- };
-
- conf {
- groups = "usb0_0_grp";
- slew-rate = <0>;
- io-standard = <1>;
- };
-
- conf-rx {
- pins = "MIO29", "MIO31", "MIO36";
- bias-high-impedance;
- };
-
- conf-tx {
- pins = "MIO28", "MIO30", "MIO32", "MIO33", "MIO34",
- "MIO35", "MIO37", "MIO38", "MIO39";
- bias-disable;
- };
- };
-};
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-bsp/pmu-firmware/pmu-firmware_2018.1.bb b/meta-xilinx/meta-xilinx-bsp/recipes-bsp/pmu-firmware/pmu-firmware_2018.1.bb
deleted file mode 100644
index e54e10373..000000000
--- a/meta-xilinx/meta-xilinx-bsp/recipes-bsp/pmu-firmware/pmu-firmware_2018.1.bb
+++ /dev/null
@@ -1,99 +0,0 @@
-SUMMARY = "Firmware for the PMU on the ZynqMP Programmable Silicon"
-HOMEPAGE = "https://github.com/Xilinx/embeddedsw"
-SECTION = "bsp"
-
-INHIBIT_DEFAULT_DEPS = "1"
-DEPENDS = "virtual/${TARGET_PREFIX}gcc newlib libgloss libgcc"
-
-# force this recipe to provide a target virtual/pmu-firmware. this is applied
-# after any class extender mapping and results in this recipe always providing
-# 'virtual/pmu-firmware'.
-python append_target_provides () {
- d.appendVar("PROVIDES", " virtual/pmu-firmware")
-}
-addhandler append_target_provides
-append_target_provides[eventmask] = "bb.event.RecipeParsed"
-
-# This source links in a number of components with differing licenses, and some
-# licenses are not Open Source compatible. Additionally the pmu-firmware source
-# itself is licensed under a modified MIT license which restricts use to Xilinx
-# devices only.
-LICENSE = "Proprietary"
-LIC_FILES_CHKSUM = "file://../../../../license.txt;md5=04841c5ad8409b474da7180de5391926"
-
-inherit deploy
-
-XILINX_RELEASE_VERSION = "v2018.1"
-SRCREV = "aaa566bc3fa19255de4d434ebfa57ae3a9d261b2"
-PV = "${XILINX_RELEASE_VERSION}+git${SRCPV}"
-
-SRC_URI = "git://github.com/Xilinx/embeddedsw.git;protocol=https;nobranch=1"
-
-COMPATIBLE_HOST = "microblaze.*-elf"
-COMPATIBLE_MACHINE = "^$"
-COMPATIBLE_MACHINE_zynqmp = "zynqmp"
-
-PACKAGE_ARCH = "${MACHINE_ARCH}"
-
-S = "${WORKDIR}/git/lib/sw_apps/zynqmp_pmufw/src"
-
-# The makefile does not handle parallelization
-PARALLEL_MAKE = ""
-
-do_configure() {
- # manually do the copy_bsp step first, so as to be able to fix up use of
- # mb-* commands
- ${S}/../misc/copy_bsp.sh
-}
-
-COMPILER = "${CC}"
-COMPILER_FLAGS = "-O2 -c"
-EXTRA_COMPILER_FLAGS = "-g -Wall -Wextra -Os -flto -ffat-lto-objects"
-ARCHIVER = "${AR}"
-
-# HACK: fix the dirty bug where xilsecure wants to call this PSVersion
-# function, which is not implemented for microblaze. The symbols never make it
-# into the final elf as the xilsecure function that uses it is not called in
-# pmufw.
-EXTRA_COMPILER_FLAGS_append = " -DXGetPSVersion_Info=atexit"
-
-BSP_DIR ?= "${S}/../misc/zynqmp_pmufw_bsp"
-BSP_TARGETS_DIR ?= "${BSP_DIR}/psu_pmu_0/libsrc"
-
-def bsp_make_vars(d):
- s = ["COMPILER", "CC", "COMPILER_FLAGS", "EXTRA_COMPILER_FLAGS", "ARCHIVER", "AR", "AS"]
- return " ".join(["\"%s=%s\"" % (v, d.getVar(v)) for v in s])
-
-do_compile() {
- # the Makefile in ${S}/../misc/Makefile, does not handle CC, AR, AS, etc
- # properly. So do its job manually. Preparing the includes first, then libs.
- for i in $(ls ${BSP_TARGETS_DIR}/*/src/Makefile); do
- oe_runmake -C $(dirname $i) -s include ${@bsp_make_vars(d)}
- done
- for i in $(ls ${BSP_TARGETS_DIR}/*/src/Makefile); do
- oe_runmake -C $(dirname $i) -s libs ${@bsp_make_vars(d)}
- done
-
- # --build-id=none is required due to linker script not defining a location for it.
- oe_runmake CC="${CC}" CC_FLAGS="-MMD -MP -Wl,--build-id=none"
-}
-
-do_install() {
- :
-}
-
-PMU_FIRMWARE_BASE_NAME ?= "${BPN}-${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}"
-PMU_FIRMWARE_BASE_NAME[vardepsexclude] = "DATETIME"
-
-do_deploy() {
- install -Dm 0644 ${B}/executable.elf ${DEPLOYDIR}/${PMU_FIRMWARE_BASE_NAME}.elf
- ln -sf ${PMU_FIRMWARE_BASE_NAME}.elf ${DEPLOYDIR}/${BPN}-${MACHINE}.elf
- ln -sf ${BPN}-${MACHINE}.elf ${DEPLOYDIR}/pmu-${MACHINE}.elf
- ${OBJCOPY} -O binary ${B}/executable.elf ${B}/executable.bin
- install -m 0644 ${B}/executable.bin ${DEPLOYDIR}/${PMU_FIRMWARE_BASE_NAME}.bin
- ln -sf ${PMU_FIRMWARE_BASE_NAME}.bin ${DEPLOYDIR}/${BPN}-${MACHINE}.bin
- ln -sf ${BPN}-${MACHINE}.bin ${DEPLOYDIR}/pmu-${MACHINE}.bin
-}
-addtask deploy before do_build after do_install
-
-BBCLASSEXTEND = "zynqmp-pmu"
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-bsp/reference-design/kc705-bitstream_2018.1.bb b/meta-xilinx/meta-xilinx-bsp/recipes-bsp/reference-design/kc705-bitstream_2018.3.bb
index 0b6ca206b..6a2ca7cc4 100644
--- a/meta-xilinx/meta-xilinx-bsp/recipes-bsp/reference-design/kc705-bitstream_2018.1.bb
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-bsp/reference-design/kc705-bitstream_2018.3.bb
@@ -16,8 +16,8 @@ inherit xilinx-fetch-restricted
BSP_NAME = "xilinx-kc705"
BSP_FILE = "${BSP_NAME}-v${PV}-final.bsp"
SRC_URI = "https://www.xilinx.com/member/forms/download/xef.html?filename=${BSP_FILE};downloadfilename=${BSP_FILE}"
-SRC_URI[md5sum] = "53e5e0ad87d0388fe5b11fa5fc029288"
-SRC_URI[sha256sum] = "301f994bd836ad78ebfc92af6c16470b53253121ca31762dc1f770a9ff11dc18"
+SRC_URI[md5sum] = "5c0365a8a26cc27b4419aa1d7dd82351"
+SRC_URI[sha256sum] = "a909a91a37a9925ee2f972ccb10f986a26ff9785c1a71a483545a192783bf773"
PROVIDES = "virtual/bitstream"
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-spl-zynq-init.inc b/meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-spl-zynq-init.inc
index 9cf09ff68..cf8b9b7ca 100644
--- a/meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-spl-zynq-init.inc
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-spl-zynq-init.inc
@@ -64,10 +64,8 @@ python () {
d.setVar("SPL_BINARY", "")
if providesbin and d.getVar("SOC_FAMILY") in ["zynqmp"]:
- # depend on the pmu-firmware build
- d.appendVar("DEPENDS", " virtual/pmu-firmware")
# determine the path relative to the source tree
- relpath = os.path.relpath(d.expand("${DEPLOY_DIR_IMAGE}/pmu-${MACHINE}.bin"), d.getVar("S"))
+ relpath = os.path.relpath(d.expand("${PMU_FIRMWARE_DEPLOY_DIR}/${PMU_FIRMWARE_IMAGE_NAME}.bin"), d.getVar("S"))
# setup PMU Firmware path via MAKEFLAGS
d.appendVar("EXTRA_OEMAKE", " CONFIG_PMUFW_INIT_FILE=\"{0}\"".format(relpath))
}
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-xlnx/v2018.1/microblaze-kc705-Convert-microblaze-generic-to-k.patch b/meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-xlnx/v2018.3/microblaze-kc705-Convert-microblaze-generic-to-k.patch
index ce8771f82..ce8771f82 100644
--- a/meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-xlnx/v2018.1/microblaze-kc705-Convert-microblaze-generic-to-k.patch
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-xlnx/v2018.3/microblaze-kc705-Convert-microblaze-generic-to-k.patch
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-xlnx_2018.1.bb b/meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-xlnx_2018.3.bb
index fb2c618c3..c87672e9e 100644
--- a/meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-xlnx_2018.1.bb
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-xlnx_2018.3.bb
@@ -1,9 +1,9 @@
UBOOT_VERSION = "v2018.01"
-XILINX_RELEASE_VERSION = "v2018.1"
+XILINX_RELEASE_VERSION = "v2018.3"
UBRANCH ?= "master"
-SRCREV ?= "949e5cb9a736bac32ea8886e3953da55bdd30754"
+SRCREV ?= "d8fc4b3b70bccf1577dab69f6ddfd4ada9a93bac"
include u-boot-xlnx.inc
include u-boot-spl-zynq-init.inc
@@ -23,5 +23,10 @@ HAS_PLATFORM_INIT ?= " \
xilinx_zynqmp_zcu102_rev1_0_config \
xilinx_zynqmp_zcu106_revA_config \
xilinx_zynqmp_zcu104_revC_config \
+ xilinx_zynqmp_zcu100_revC_config \
+ xilinx_zynqmp_zcu111_revA_config \
+ xilinx_zynqmp_zc1275_revA_config \
+ xilinx_zynqmp_zc1275_revB_config \
+ xilinx_zynqmp_zc1254_revA_config \
"
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-zynq-uenv.bb b/meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-zynq-uenv.bb
index f6c2a00d4..952077d12 100644
--- a/meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-zynq-uenv.bb
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-zynq-uenv.bb
@@ -5,43 +5,28 @@ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda
INHIBIT_DEFAULT_DEPS = "1"
PACKAGE_ARCH = "${MACHINE_ARCH}"
+python () {
+ # The device trees must be populated in the deploy directory to correctly
+ # detect them and their names. This means that this recipe needs to depend
+ # on those deployables just like the image recipe does.
+ deploydeps = ["virtual/kernel"]
+ for i in (d.getVar("MACHINE_ESSENTIAL_EXTRA_RDEPENDS") or "").split():
+ if i != d.getVar("BPN"):
+ deploydeps.append(i)
+ for i in (d.getVar("EXTRA_IMAGEDEPENDS") or "").split():
+ if i != d.getVar("BPN"):
+ deploydeps.append(i)
+
+ # add as DEPENDS since the targets might not have do_deploy tasks
+ if len(deploydeps) != 0:
+ d.appendVar("DEPENDS", " " + " ".join(deploydeps))
+}
+
COMPATIBLE_MACHINE = "^$"
COMPATIBLE_MACHINE_zynq = ".*"
COMPATIBLE_MACHINE_zynqmp = ".*"
-inherit deploy
-
-def bootfiles_bitstream(d):
- expectedfiles = [("bitstream", True)]
- expectedexts = [(".bit", True), (".bin", False)]
- # search for bitstream paths, use the renamed file. First matching is used
- for f in (d.getVar("IMAGE_BOOT_FILES") or "").split():
- sf, rf = f, f
- if ';' in f:
- sf, rf = f.split(';')
-
- # skip boot.bin and u-boot.bin, it is not a bitstream
- skip = ["boot.bin", "u-boot.bin"]
- if sf in skip or rf in skip:
- continue
-
- for e, t in expectedfiles:
- if sf == e or rf == e:
- return rf, t
- for e, t in expectedexts:
- if sf.endswith(e) or rf.endswith(e):
- return rf, t
- return "", False
-
-def bootfiles_dtb_filepath(d):
- if d.getVar("IMAGE_BOOT_FILES"):
- dtbs = d.getVar("IMAGE_BOOT_FILES").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]
- return ""
+inherit deploy image-wic-utils
def uboot_boot_cmd(d):
if d.getVar("KERNEL_IMAGETYPE") in ["uImage", "fitImage"]:
@@ -61,7 +46,7 @@ def uenv_populate(d):
env["kernel_image"] = d.getVar("KERNEL_IMAGETYPE")
env["kernel_load_address"] = d.getVar("KERNEL_LOAD_ADDRESS")
- env["devicetree_image"] = bootfiles_dtb_filepath(d)
+ env["devicetree_image"] = boot_files_dtb_filepath(d)
env["devicetree_load_address"] = d.getVar("DEVICETREE_LOAD_ADDRESS")
env["bootargs"] = d.getVar("KERNEL_BOOTARGS")
@@ -73,7 +58,7 @@ def uenv_populate(d):
# default uenvcmd does not load bitstream
env["uenvcmd"] = "run bootkernel"
- bitstream, bitstreamtype = bootfiles_bitstream(d)
+ bitstream, bitstreamtype = boot_files_bitstream(d)
if bitstream:
env["bitstream_image"] = bitstream
env["bitstream_load_address"] = "0x100000"
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-core/newlib/libgloss_3.0.0.bb b/meta-xilinx/meta-xilinx-bsp/recipes-core/newlib/libgloss_3.0.0.bb
deleted file mode 100644
index cff4a265b..000000000
--- a/meta-xilinx/meta-xilinx-bsp/recipes-core/newlib/libgloss_3.0.0.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-
-require newlib.inc
-
-DEPENDS += "newlib"
-
-do_configure() {
- ${S}/libgloss/configure ${EXTRA_OECONF}
-}
-
-do_install_prepend() {
- # install doesn't create this itself, avoid install error
- install -d ${D}${prefix}/${TARGET_SYS}/lib
-}
-
-do_install_append() {
- # Move libs to default directories so they can be picked up later
- mv -v ${D}${prefix}/${TARGET_SYS}/lib ${D}${libdir}
-
- # Remove original directory
- rmdir ${D}${prefix}/${TARGET_SYS}
-}
-
-# Split packages correctly
-FILES_${PN} += "${libdir}/*.ld ${libdir}/*.specs"
-
-INHIBIT_PACKAGE_STRIP = "1"
-INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-core/newlib/newlib.inc b/meta-xilinx/meta-xilinx-bsp/recipes-core/newlib/newlib.inc
deleted file mode 100644
index 37ad6be11..000000000
--- a/meta-xilinx/meta-xilinx-bsp/recipes-core/newlib/newlib.inc
+++ /dev/null
@@ -1,58 +0,0 @@
-SUMMARY = "Newlib is a C library intended for use on embedded systems"
-HOMEPAGE = "https://sourceware.org/newlib/"
-DESCRIPTION = "It is a conglomeration of several library parts, all under free software licenses that make them easily usable on embedded products."
-SECTION = "libs"
-
-LICENSE = "GPLv2 & LGPLv3 & GPLv3 & LGPLv2"
-LIC_FILES_CHKSUM = " \
- file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
- file://COPYING3.LIB;md5=6a6a8e020838b23406c81b19c1d46df6 \
- file://COPYING3;md5=d32239bcb673463ab874e80d47fae504 \
- file://COPYING.LIBGLOSS;md5=73f5c98779aea7dba4a6c94a74ab0ae2 \
- file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1 \
- file://COPYING.NEWLIB;md5=956a4b1487f7677cdcceeee8f05a21f0 \
- file://newlib/libc/posix/COPYRIGHT;md5=103468ff1982be840fdf4ee9f8b51bbf \
- file://newlib/libc/sys/linux/linuxthreads/LICENSE;md5=73640207fbc79b198c7ffd4ad4d97aa0 \
- "
-
-SRC_URI = "ftp://sourceware.org/pub/newlib/newlib-${PV}.tar.gz"
-SRC_URI[md5sum] = "81ec873108b8593c586f91ca65963952"
-SRC_URI[sha256sum] = "c8566335ee74e5fcaeb8595b4ebd0400c4b043d6acb3263ecb1314f8f5501332"
-
-INHIBIT_DEFAULT_DEPS = "1"
-DEPENDS = "virtual/${TARGET_PREFIX}gcc-initial"
-
-PATH_prepend = "${STAGING_BINDIR_TOOLCHAIN}.${STAGINGCC}:"
-STAGINGCC = "${MLPREFIX}gcc-cross-initial-${TARGET_ARCH}"
-
-S = "${WORKDIR}/newlib-${PV}"
-B = "${WORKDIR}/build"
-
-# Disable use of a link hash style
-TARGET_LINK_HASH_STYLE_microblaze = ""
-
-# disable stdlib
-TARGET_CC_ARCH_append = " -nostdlib"
-
-EXTRA_OECONF = " \
- --build=${BUILD_SYS} \
- --target=${TARGET_SYS} \
- --host=${HOST_SYS} \
- --prefix=${prefix} \
- --exec-prefix=${exec_prefix} \
- --bindir=${bindir} \
- --libdir=${libdir} \
- --includedir=${includedir} \
- --enable-languages=c \
- --with-newlib \
- --with-gnu-as \
- --with-gnu-ld \
- --disable-multilib \
- "
-
-do_configure[cleandirs] = "${B}"
-
-do_install() {
- oe_runmake install DESTDIR='${D}'
-}
-
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-core/newlib/newlib_3.0.0.bb b/meta-xilinx/meta-xilinx-bsp/recipes-core/newlib/newlib_3.0.0.bb
deleted file mode 100644
index 3d313503f..000000000
--- a/meta-xilinx/meta-xilinx-bsp/recipes-core/newlib/newlib_3.0.0.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-require newlib.inc
-
-do_configure_prepend_microblaze() {
- # hack for microblaze, which needs xilinx.ld to literally do any linking (its hard coded in its LINK_SPEC)
- export CC="${CC} -L${S}/libgloss/microblaze"
-}
-
-do_configure() {
- ${S}/configure ${EXTRA_OECONF}
-}
-
-do_install_append() {
- # Move include files and libs to default directories so they can be picked up later
- mv -v ${D}${prefix}/${TARGET_SYS}/lib ${D}${libdir}
- mv -v ${D}${prefix}/${TARGET_SYS}/include ${D}${includedir}
-
- # Remove original directory
- rmdir ${D}${prefix}/${TARGET_SYS}
-}
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/files/memfd.patch b/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/files/memfd.patch
deleted file mode 100644
index 62e8d3800..000000000
--- a/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/files/memfd.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-Upstream-Status: Backport
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-From 75e5b70e6b5dcc4f2219992d7cffa462aa406af0 Mon Sep 17 00:00:00 2001
-From: Paolo Bonzini <pbonzini@redhat.com>
-Date: Tue, 28 Nov 2017 11:51:27 +0100
-Subject: [PATCH] memfd: fix configure test
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Recent glibc added memfd_create in sys/mman.h. This conflicts with
-the definition in util/memfd.c:
-
- /builddir/build/BUILD/qemu-2.11.0-rc1/util/memfd.c:40:12: error: static declaration of memfd_create follows non-static declaration
-
-Fix the configure test, and remove the sys/memfd.h inclusion since the
-file actually does not exist---it is a typo in the memfd_create(2) man
-page.
-
-Cc: Marc-André Lureau <marcandre.lureau@redhat.com>
-Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
----
- configure | 2 +-
- util/memfd.c | 4 +---
- 2 files changed, 2 insertions(+), 4 deletions(-)
-
-diff --git a/configure b/configure
-index 9c8aa5a98b..99ccc1725a 100755
---- a/configure
-+++ b/configure
-@@ -3923,7 +3923,7 @@ fi
- # check if memfd is supported
- memfd=no
- cat > $TMPC << EOF
--#include <sys/memfd.h>
-+#include <sys/mman.h>
-
- int main(void)
- {
-diff --git a/util/memfd.c b/util/memfd.c
-index 4571d1aba8..412e94a405 100644
---- a/util/memfd.c
-+++ b/util/memfd.c
-@@ -31,9 +31,7 @@
-
- #include "qemu/memfd.h"
-
--#ifdef CONFIG_MEMFD
--#include <sys/memfd.h>
--#elif defined CONFIG_LINUX
-+#if defined CONFIG_LINUX && !defined CONFIG_MEMFD
- #include <sys/syscall.h>
- #include <asm/unistd.h>
-
---
-2.11.0
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/files/qemu-system-aarch64-multiarch b/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/files/qemu-system-aarch64-multiarch
index 15124c1b7..2c92c686f 100644
--- a/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/files/qemu-system-aarch64-multiarch
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/files/qemu-system-aarch64-multiarch
@@ -1,32 +1,54 @@
-#!/bin/bash
-
-BINPATH=$(dirname $0)
-MACHINE_PATH=$(mktemp -d)
-
-APU_ARGS=
-PMU_ARGS=
-
-while [ ! -z "$1" ]; do
- if [ "$1" = "-pmu-args" ]; then
- PMU_ARGS+=" $2"
- shift
- else
- APU_ARGS+=" $1"
- fi
- shift
-done
-
-PMU_ROM=$(last=; for i in $PMU_ARGS; do if [ "$last" = "-kernel" ]; then echo "$i"; break; fi; last=$i; done)
-if [ ! -e $PMU_ROM ]; then
- echo "------"
- echo "Error: Missing PMU ROM - $PMU_ROM"
- echo " See 'meta-xilinx/README.qemu.md' for more information on accquiring the PMU ROM."
- echo "------"
- exit 255
-fi
-
-# start the PMU instance
-$BINPATH/qemu-system-microblazeel $PMU_ARGS -machine-path $MACHINE_PATH &
-# start the APU instance
-$BINPATH/qemu-system-aarch64 $APU_ARGS -machine-path $MACHINE_PATH
+#!/usr/bin/env python3
+# Xilinx QEMU wrapper to launch both PMU and APU instances (multiarch)
+import os
+import subprocess
+import sys
+import tempfile
+import shutil
+
+binpath = os.path.dirname(os.path.abspath(__file__))
+mach_path = tempfile.mkdtemp()
+
+
+# Separate PMU and APU arguments
+APU_args = sys.argv[1:]
+PMU_args = APU_args[APU_args.index('-pmu-args')+1]
+APU_args.remove('-pmu-args')
+APU_args.remove(PMU_args)
+PMU_args = PMU_args.split()
+
+PMU_rom = PMU_args[PMU_args.index('-kernel')+1]
+error_msg = None
+
+if os.path.exists(PMU_rom):
+
+ # We need to switch tcp serial arguments (if they exist, e.g. qemurunner) to get the output correctly
+ tcp_serial_ports = [i for i, s in enumerate(APU_args) if 'tcp:127.0.0.1:' in s]
+
+ # We can only switch these if there are exactly two, otherwise we can't assume what is being executed so we leave it as is
+ if len(tcp_serial_ports) == 2:
+ APU_args[tcp_serial_ports[0]],APU_args[tcp_serial_ports[1]] = APU_args[tcp_serial_ports[1]],APU_args[tcp_serial_ports[0]]
+
+ pmu_cmd = binpath + '/qemu-system-microblazeel ' + ' '.join(PMU_args) + ' -machine-path ' + mach_path
+ apu_cmd = binpath + '/qemu-system-aarch64 ' + ' '.join(APU_args) + ' -machine-path ' + mach_path
+
+ # Debug prints
+ print('\nPMU instance cmd: %s\n' % pmu_cmd)
+ print('APU instance cmd: %s\n' % apu_cmd)
+
+
+ # Invoke QEMU pmu instance
+ process_pmu = subprocess.Popen(pmu_cmd, shell=True, stderr=subprocess.PIPE)
+
+ # Invoke QEMU APU instance
+ process_apu = subprocess.Popen(apu_cmd, shell=True, stderr=subprocess.PIPE)
+ if process_apu.wait():
+ error_msg = '\nQEMU APU instance failed:\n%s' % process_apu.stderr.read().decode()
+
+else:
+ error_msg = '\nError: Missing PMU ROM: %s' % PMU_rom
+ error_msg += '\nSee "meta-xilinx/README.qemu.md" for more information on accquiring the PMU ROM.\n'
+
+shutil.rmtree(mach_path)
+sys.exit(error_msg)
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/qemu-devicetrees_2018.1.bb b/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/qemu-devicetrees_2018.1.bb
deleted file mode 100644
index a73b9e57d..000000000
--- a/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/qemu-devicetrees_2018.1.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-require qemu-devicetrees.inc
-
-XILINX_RELEASE_VERSION = "v2018.1"
-
-BRANCH ?= "master"
-SRCREV ?= "d5017f8119b6493d8b2fcdfd5caa4e8b16580877"
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/qemu-devicetrees_2018.3.bb b/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/qemu-devicetrees_2018.3.bb
new file mode 100644
index 000000000..6f8eda2f6
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/qemu-devicetrees_2018.3.bb
@@ -0,0 +1,6 @@
+require qemu-devicetrees.inc
+
+XILINX_RELEASE_VERSION = "v2018.3"
+
+BRANCH ?= "master"
+SRCREV ?= "e3e40b8829894a479c7d7380fc8137886645dda8"
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/qemu-xilinx.inc b/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/qemu-xilinx.inc
index b6c5dee56..daff5ffc9 100644
--- a/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/qemu-xilinx.inc
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/qemu-xilinx.inc
@@ -17,9 +17,7 @@ BRANCH ?= ""
REPO ?= "git://github.com/Xilinx/qemu.git;protocol=https"
BRANCHARG = "${@['nobranch=1', 'branch=${BRANCH}'][d.getVar('BRANCH', True) != '']}"
-SRC_URI = "${REPO};${BRANCHARG} \
- file://memfd.patch \
- "
+SRC_URI = "${REPO};${BRANCHARG}"
S = "${WORKDIR}/git"
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/qemu-xilinx_2018.1.bb b/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/qemu-xilinx_2018.1.bb
deleted file mode 100644
index 1d6697cdb..000000000
--- a/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/qemu-xilinx_2018.1.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-require qemu-xilinx.inc
-
-XILINX_RELEASE_VERSION = "v2018.1"
-XILINX_QEMU_VERSION ?= "v2.11.0"
-BRANCH ?= "master"
-SRCREV ?= "1d5516986ea296d91a599ac23252e302a4003914"
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/qemu-xilinx_2018.3.bb b/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/qemu-xilinx_2018.3.bb
new file mode 100644
index 000000000..57547dff5
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu/qemu-xilinx_2018.3.bb
@@ -0,0 +1,6 @@
+require qemu-xilinx.inc
+
+XILINX_RELEASE_VERSION = "v2018.3"
+XILINX_QEMU_VERSION ?= "v2.11.0"
+BRANCH ?= "master"
+SRCREV ?= "f70bd86859c7a1a075ac864b4765168f821f1aae"
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-graphics/libgles/files/gbm.pc b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/libgles/files/gbm.pc
new file mode 100644
index 000000000..02ea94e6f
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/libgles/files/gbm.pc
@@ -0,0 +1,12 @@
+prefix=/usr
+exec_prefix=${prefix}
+libdir=/usr/lib
+includedir=/usr/include
+
+Name: gbm
+Description: MALI gbm library
+Requires.private:
+Version: r8p0
+Libs: -L${libdir} -lgbm
+Libs.private: -lm -lpthread -ldl
+Cflags: -I${includedir}
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-graphics/libgles/files/wayland-egl.pc b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/libgles/files/wayland-egl.pc
new file mode 100644
index 000000000..719fb3e43
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/libgles/files/wayland-egl.pc
@@ -0,0 +1,12 @@
+prefix=/usr
+exec_prefix=${prefix}
+libdir=/usr/lib
+includedir=/usr/include
+
+Name: wayland-egl
+Description: MALI wayland-egl library
+Requires.private:
+Version: r8p0
+Libs: -L${libdir} -lwayland-egl
+Libs.private: -lm -lpthread -ldl
+Cflags: -I${includedir}
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-graphics/libgles/libmali-xlnx.bb b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/libgles/libmali-xlnx.bb
index 3e675d9da..8c6ab3e9f 100644
--- a/meta-xilinx/meta-xilinx-bsp/recipes-graphics/libgles/libmali-xlnx.bb
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/libgles/libmali-xlnx.bb
@@ -9,7 +9,7 @@ inherit xilinx-fetch-restricted
ANY_OF_DISTRO_FEATURES = "fbdev x11"
-PROVIDES += "virtual/libgles1 virtual/libgles2 virtual/egl"
+PROVIDES += "virtual/libgles1 virtual/libgles2 virtual/egl virtual/libgbm"
FILESEXTRAPATHS_append := " \
${THISDIR}/files: \
@@ -26,10 +26,12 @@ SRC_URI = " \
file://glesv1_cm.pc \
file://glesv1.pc \
file://glesv2.pc \
+ file://wayland-egl.pc \
+ file://gbm.pc \
"
-SRC_URI[md5sum] = "e75b147c8b4ee96616e24572cdc9c21f"
-SRC_URI[sha256sum] = "7b179ec2df54ee05a886cca1535c0bdc6cba77a646e22742adedc79bfc2b3017"
+SRC_URI[md5sum] = "4fd3456564ef8c818e21432221c9e1b7"
+SRC_URI[sha256sum] = "26d473ae77c36104a215710beca55a22a712850dc26547dde950c7398210602c"
COMPATIBLE_MACHINE = "^$"
COMPATIBLE_MACHINE_zynqmpeg = "zynqmpeg"
@@ -50,14 +52,16 @@ RDEPENDS_${PN} = " \
DEPENDS = "\
${@bb.utils.contains('DISTRO_FEATURES', 'x11', '${X11DEPENDS}', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland libdrm', '', d)} \
"
-EGL_TYPE = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', \
- bb.utils.contains('DISTRO_FEATURES', 'fbdev', 'fbdev', '', d), d)}"
+USE_X11 = "${@bb.utils.contains("DISTRO_FEATURES", "x11", "yes", "no", d)}"
+USE_FB = "${@bb.utils.contains("DISTRO_FEATURES", "fbdev", "yes", "no", d)}"
+USE_WL = "${@bb.utils.contains("DISTRO_FEATURES", "wayland", "yes", "no", d)}"
do_compile() {
# Extract the MALI binaries into workdir
- tar -xf ${WORKDIR}/mali/rel-v2018.1/r8p0-01rel0.tar -C ${S}
+ tar -xf ${WORKDIR}/mali/rel-v2018.3/r8p0-01rel0.tar -C ${S}
}
do_install() {
@@ -71,13 +75,13 @@ do_install() {
# install headers
install -d -m 0655 ${D}${includedir}/EGL
- install -m 0644 ${S}/${PV}/${ARCH_PLATFORM_DIR}/${EGL_TYPE}/usr/include/EGL/*.h ${D}${includedir}/EGL/
+ install -m 0644 ${S}/${PV}/glesHeaders/EGL/*.h ${D}${includedir}/EGL/
install -d -m 0655 ${D}${includedir}/GLES
- install -m 0644 ${S}/${PV}/${ARCH_PLATFORM_DIR}/${EGL_TYPE}/usr/include/GLES/*.h ${D}${includedir}/GLES/
+ install -m 0644 ${S}/${PV}/glesHeaders/GLES/*.h ${D}${includedir}/GLES/
install -d -m 0655 ${D}${includedir}/GLES2
- install -m 0644 ${S}/${PV}/${ARCH_PLATFORM_DIR}/${EGL_TYPE}/usr/include/GLES2/*.h ${D}${includedir}/GLES2/
+ install -m 0644 ${S}/${PV}/glesHeaders/GLES2/*.h ${D}${includedir}/GLES2/
install -d -m 0655 ${D}${includedir}/KHR
- install -m 0644 ${S}/${PV}/${ARCH_PLATFORM_DIR}/${EGL_TYPE}/usr/include/KHR/*.h ${D}${includedir}/KHR/
+ install -m 0644 ${S}/${PV}/glesHeaders/KHR/*.h ${D}${includedir}/KHR/
install -d ${D}${libdir}/pkgconfig
install -m 0644 ${WORKDIR}/egl.pc ${D}${libdir}/pkgconfig/egl.pc
@@ -86,7 +90,26 @@ do_install() {
install -m 0644 ${WORKDIR}/glesv1_cm.pc ${D}${libdir}/pkgconfig/glesv1_cm.pc
install -d ${D}${libdir}
- cp -a --no-preserve=ownership ${S}/${PV}/${ARCH_PLATFORM_DIR}/${EGL_TYPE}/usr/lib/*.so* ${D}${libdir}
+ install -d ${D}${includedir}
+
+ cp -a --no-preserve=ownership ${S}/${PV}/${ARCH_PLATFORM_DIR}/common/*.so* ${D}${libdir}
+
+ if [ "${USE_WL}" = "yes" ]; then
+ install -m 0644 ${S}/${PV}/glesHeaders/GBM/gbm.h ${D}${includedir}/
+ install -m 0644 ${WORKDIR}/gbm.pc ${D}${libdir}/pkgconfig/gbm.pc
+ install -m 0644 ${WORKDIR}/wayland-egl.pc ${D}${libdir}/pkgconfig/wayland-egl.pc
+ install -Dm 0644 ${S}/${PV}/${ARCH_PLATFORM_DIR}/wayland/libMali.so.8.0 ${D}${libdir}/wayland/libMali.so.8.0
+ ln -snf wayland/libMali.so.8.0 ${D}${libdir}/libMali.so.8.0
+ elif [ "${USE_X11}" = "yes" ]; then
+ install -Dm 0644 ${S}/${PV}/${ARCH_PLATFORM_DIR}/x11/libMali.so.8.0 ${D}${libdir}/x11/libMali.so.8.0
+ ln -snf x11/libMali.so.8.0 ${D}${libdir}/libMali.so.8.0
+ elif [ "${USE_FB}" = "yes" ]; then
+ install -Dm 0644 ${S}/${PV}/${ARCH_PLATFORM_DIR}/fbdev/libMali.so.8.0 ${D}${libdir}/fbdev/libMali.so.8.0
+ ln -snf fbdev/libMali.so.8.0 ${D}${libdir}/libMali.so.8.0
+ else
+ install -Dm 0644 ${S}/${PV}/${ARCH_PLATFORM_DIR}/headless/libMali.so.8.0 ${D}${libdir}/headless/libMali.so.8.0
+ ln -snf headless/libMali.so.8.0 ${D}${libdir}/libMali.so.8.0
+ fi
if ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'false', 'true', d)}; then
sed -i -e 's/^#if defined(MESA_EGL_NO_X11_HEADERS)$/#if (1)/' ${D}${includedir}/EGL/eglplatform.h
@@ -99,10 +122,11 @@ INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
INHIBIT_PACKAGE_STRIP = "1"
INHIBIT_SYSROOT_STRIP = "1"
-RREPLACES_${PN} = "libegl libgles1 libglesv1-cm1 libgles2 libglesv2-2"
-RPROVIDES_${PN} = "libegl libgles1 libglesv1-cm1 libgles2 libglesv2-2"
-RCONFLICTS_${PN} = "libegl libgles1 libglesv1-cm1 libgles2 libglesv2-2"
+RREPLACES_${PN} = "libegl libgles1 libglesv1-cm1 libgles2 libglesv2-2 libgbm"
+RPROVIDES_${PN} = "libegl libgles1 libglesv1-cm1 libgles2 libglesv2-2 libgbm"
+RCONFLICTS_${PN} = "libegl libgles1 libglesv1-cm1 libgles2 libglesv2-2 libgbm"
# These libraries shouldn't get installed in world builds unless something
# explicitly depends upon them.
EXCLUDE_FROM_WORLD = "1"
+FILES_${PN} += "${libdir}/*"
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/linux-xlnx.inc b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/linux-xlnx.inc
index 7b4f9ac19..ec056db4a 100644
--- a/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/linux-xlnx.inc
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/linux-xlnx.inc
@@ -23,6 +23,8 @@ do_kernel_metadata_prepend () {
[ -n "${KBUILD_DEFCONFIG}" ] && [ -e ${WORKDIR}/defconfig ] && rm ${WORKDIR}/defconfig
}
+inherit kernel-simpleimage
+
# Default to be only compatible with specific machines or soc families
COMPATIBLE_MACHINE ?= "^$"
COMPATIBLE_MACHINE_zynq = ".*"
@@ -42,4 +44,7 @@ SRC_URI_append = " file://xilinx-kmeta;type=kmeta;name=xilinx-kmeta;destsuffix=x
# MicroBlaze BSP fragments
KERNEL_FEATURES_append_kc705-microblazeel = " bsp/kc705-microblazeel/kc705-microblazeel.scc"
-KERNEL_FEATURES_zynqmp += "${@bb.utils.contains('DISTRO_FEATURES', 'xen', ' bsp/xilinx/xen.scc', '', d)}"
+KERNEL_FEATURES_append_zynqmp = "${@bb.utils.contains('DISTRO_FEATURES', 'xen', ' bsp/xilinx/xen.scc', '', d)}"
+
+KERNEL_FEATURES_append_zynqmp = "${@bb.utils.contains('IMAGE_FEATURES', 'fpga-manager', ' features/overlay/overlay.scc', '', d)}"
+
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/linux-xlnx_2018.1.bb b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/linux-xlnx_2018.1.bb
deleted file mode 100644
index c3a8f7643..000000000
--- a/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/linux-xlnx_2018.1.bb
+++ /dev/null
@@ -1,7 +0,0 @@
-LINUX_VERSION = "4.14"
-XILINX_RELEASE_VERSION = "v2018.1"
-KBRANCH ?= "xlnx_rebase_v4.14"
-SRCREV ?= "4ac76ffacb54712b0361e51d0b7156e53d062e3c"
-
-include linux-xlnx.inc
-
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/linux-xlnx_2018.3.bb b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/linux-xlnx_2018.3.bb
new file mode 100644
index 000000000..ade13e32f
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/linux-xlnx_2018.3.bb
@@ -0,0 +1,7 @@
+LINUX_VERSION = "4.14"
+XILINX_RELEASE_VERSION = "v2018.3"
+KBRANCH ?= "xlnx_rebase_v4.14"
+SRCREV ?= "eeab73d1207d6fc2082776c954eb19fd7290bfbe"
+
+include linux-xlnx.inc
+
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/features/overlay/overlay.cfg b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/features/overlay/overlay.cfg
new file mode 100644
index 000000000..44462beb5
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/features/overlay/overlay.cfg
@@ -0,0 +1,3 @@
+# Device Tree support
+CONFIG_OF_CONFIGFS=y
+CONFIG_OF_OVERLAY=y
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/features/overlay/overlay.scc b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/features/overlay/overlay.scc
new file mode 100644
index 000000000..14f05ff42
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/features/overlay/overlay.scc
@@ -0,0 +1,4 @@
+define KFEATURE_DESCRIPTION "Enable overlay"
+define KFEATURE_COMPATIBILITY board
+
+kconfig hardware overlay.cfg
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils%.bbappend b/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils%.bbappend
index 795c67172..44709727c 100644
--- a/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils%.bbappend
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils%.bbappend
@@ -1,4 +1,4 @@
-FILESEXTRAPATHS_append_microblaze := "${THISDIR}/binutils-2.30:"
+FILESEXTRAPATHS_append_microblaze := "${THISDIR}/binutils-2.31:"
SRC_URI_append_microblaze = " \
file://0001-MicroBlaze-Add-wdc.ext.clear-and-wdc.ext.flush-insns.patch \
file://0002-MicroBlaze-add-mlittle-endian-and-mbig-endian-flags.patch \
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.30/0001-MicroBlaze-Add-wdc.ext.clear-and-wdc.ext.flush-insns.patch b/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0001-MicroBlaze-Add-wdc.ext.clear-and-wdc.ext.flush-insns.patch
index 878bb3213..878bb3213 100644
--- a/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.30/0001-MicroBlaze-Add-wdc.ext.clear-and-wdc.ext.flush-insns.patch
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0001-MicroBlaze-Add-wdc.ext.clear-and-wdc.ext.flush-insns.patch
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.30/0002-MicroBlaze-add-mlittle-endian-and-mbig-endian-flags.patch b/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0002-MicroBlaze-add-mlittle-endian-and-mbig-endian-flags.patch
index edeecfd2f..edeecfd2f 100644
--- a/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.30/0002-MicroBlaze-add-mlittle-endian-and-mbig-endian-flags.patch
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0002-MicroBlaze-add-mlittle-endian-and-mbig-endian-flags.patch
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.30/0003-Disable-the-warning-message-for-eh_frame_hdr.patch b/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0003-Disable-the-warning-message-for-eh_frame_hdr.patch
index 2b30c4670..aee0c01ef 100644
--- a/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.30/0003-Disable-the-warning-message-for-eh_frame_hdr.patch
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0003-Disable-the-warning-message-for-eh_frame_hdr.patch
@@ -3,30 +3,35 @@ From: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
Date: Mon, 28 Aug 2017 19:53:54 -0700
Subject: [PATCH] Disable the warning message for eh_frame_hdr
+Upstream-Status: Inappropriate [workaround]
+
+Rebased to 2.31
+ - Error hanlder changed
+
+Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Signed-off-by: Manjukumar Matha <manjukumar.harthikote-matha@xilinx.com>
-Upstream-Status: Inappropriate [workaround]
---
bfd/elf-eh-frame.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
-diff --git a/bfd/elf-eh-frame.c b/bfd/elf-eh-frame.c
-index 95697c4..704121d 100644
---- a/bfd/elf-eh-frame.c
-+++ b/bfd/elf-eh-frame.c
-@@ -1042,10 +1042,13 @@ _bfd_elf_parse_eh_frame (bfd *abfd, struct bfd_link_info *info,
+Index: git/bfd/elf-eh-frame.c
+===================================================================
+--- git.orig/bfd/elf-eh-frame.c
++++ git/bfd/elf-eh-frame.c
+@@ -1042,10 +1042,13 @@ _bfd_elf_parse_eh_frame (bfd *abfd, stru
goto success;
free_no_table:
-- (*info->callbacks->einfo)
+- _bfd_error_handler
+ /* FIXME: Remove the microblaze specifics when relaxing gets fixed. */
+ if (bfd_get_arch(abfd) != bfd_arch_microblaze) {
/* xgettext:c-format */
-- (_("%P: error in %B(%A); no .eh_frame_hdr table will be created.\n"),
+- (_("error in %pB(%pA); no .eh_frame_hdr table will be created"),
- abfd, sec);
-+ (*info->callbacks->einfo)
-+ (_("%P: error in %B(%A); no .eh_frame_hdr table will be created.\n"),
++ _bfd_error_handler
++ (_("error in %pB(%pA); no .eh_frame_hdr table will be created"),
+ abfd, sec);
+ }
hdr_info->u.dwarf.table = FALSE;
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.30/0004-Fix-relaxation-of-assembler-resolved-references.patch b/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0004-Fix-relaxation-of-assembler-resolved-references.patch
index b543c54ee..b543c54ee 100644
--- a/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.30/0004-Fix-relaxation-of-assembler-resolved-references.patch
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0004-Fix-relaxation-of-assembler-resolved-references.patch
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.30/0005-Fixup-MicroBlaze-debug_loc-sections-after-linker-rel.patch b/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0005-Fixup-MicroBlaze-debug_loc-sections-after-linker-rel.patch
index 3817234b9..6cdd2cc2a 100644
--- a/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.30/0005-Fixup-MicroBlaze-debug_loc-sections-after-linker-rel.patch
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0005-Fixup-MicroBlaze-debug_loc-sections-after-linker-rel.patch
@@ -11,8 +11,9 @@ reference.
This is a workaround for design flaws in the assembler to
linker interface with regards to linker relaxation.
-03/2018
-Rebased for binutils 2.30
+08/2018
+Rebased for binutils 2.31
+ - Some RELOC_NUMBERs were added upstream, rebased to use 33 instead of 30
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Signed-off-by: Nagaraju Mekala <nmekala@xilinx.com>
@@ -31,11 +32,11 @@ Upstream-Status: Pending
include/elf/microblaze.h | 1 +
7 files changed, 61 insertions(+), 10 deletions(-)
-diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
-index 4228603..1906195 100644
---- a/bfd/bfd-in2.h
-+++ b/bfd/bfd-in2.h
-@@ -5826,10 +5826,15 @@ value relative to the read-write small data area anchor */
+Index: git/bfd/bfd-in2.h
+===================================================================
+--- git.orig/bfd/bfd-in2.h
++++ git/bfd/bfd-in2.h
+@@ -5791,10 +5791,15 @@ value relative to the read-write small d
expressions of the form "Symbol Op Symbol" */
BFD_RELOC_MICROBLAZE_32_SYM_OP_SYM,
@@ -53,11 +54,11 @@ index 4228603..1906195 100644
/* This is a 64 bit reloc that stores the 32 bit pc relative
value in two words (with an imm instruction). The relocation is
-diff --git a/bfd/elf32-microblaze.c b/bfd/elf32-microblaze.c
-index a1d810c..fc0d3e1 100644
---- a/bfd/elf32-microblaze.c
-+++ b/bfd/elf32-microblaze.c
-@@ -176,6 +176,20 @@ static reloc_howto_type microblaze_elf_howto_raw[] =
+Index: git/bfd/elf32-microblaze.c
+===================================================================
+--- git.orig/bfd/elf32-microblaze.c
++++ git/bfd/elf32-microblaze.c
+@@ -176,6 +176,20 @@ static reloc_howto_type microblaze_elf_h
0x0000ffff, /* Dest Mask. */
FALSE), /* PC relative offset? */
@@ -78,7 +79,7 @@ index a1d810c..fc0d3e1 100644
/* This reloc does nothing. Used for relaxation. */
HOWTO (R_MICROBLAZE_64_NONE, /* Type. */
0, /* Rightshift. */
-@@ -532,6 +546,9 @@ microblaze_elf_reloc_type_lookup (bfd * abfd ATTRIBUTE_UNUSED,
+@@ -562,6 +576,9 @@ microblaze_elf_reloc_type_lookup (bfd *
case BFD_RELOC_NONE:
microblaze_reloc = R_MICROBLAZE_NONE;
break;
@@ -88,7 +89,7 @@ index a1d810c..fc0d3e1 100644
case BFD_RELOC_MICROBLAZE_64_NONE:
microblaze_reloc = R_MICROBLAZE_64_NONE;
break;
-@@ -1832,14 +1849,23 @@ microblaze_elf_relax_section (bfd *abfd,
+@@ -1918,14 +1935,23 @@ microblaze_elf_relax_section (bfd *abfd,
}
break;
case R_MICROBLAZE_NONE:
@@ -112,7 +113,7 @@ index a1d810c..fc0d3e1 100644
irel->r_addend -= (efix - sfix);
/* Should use HOWTO. */
microblaze_bfd_write_imm_value_32 (abfd, contents + irel->r_offset,
-@@ -1887,12 +1913,16 @@ microblaze_elf_relax_section (bfd *abfd,
+@@ -1973,12 +1999,16 @@ microblaze_elf_relax_section (bfd *abfd,
irelscanend = irelocs + o->reloc_count;
for (irelscan = irelocs; irelscan < irelscanend; irelscan++)
{
@@ -130,7 +131,7 @@ index a1d810c..fc0d3e1 100644
/* This was a PC-relative instruction that was completely resolved. */
if (ocontents == NULL)
{
-@@ -1917,15 +1947,16 @@ microblaze_elf_relax_section (bfd *abfd,
+@@ -2003,15 +2033,16 @@ microblaze_elf_relax_section (bfd *abfd,
}
}
@@ -152,7 +153,7 @@ index a1d810c..fc0d3e1 100644
if (ELF32_R_TYPE (irelscan->r_info) == (int) R_MICROBLAZE_32)
{
isym = isymbuf + ELF32_R_SYM (irelscan->r_info);
-@@ -1985,7 +2016,7 @@ microblaze_elf_relax_section (bfd *abfd,
+@@ -2071,7 +2102,7 @@ microblaze_elf_relax_section (bfd *abfd,
elf_section_data (o)->this_hdr.contents = ocontents;
}
}
@@ -161,11 +162,11 @@ index a1d810c..fc0d3e1 100644
+ isym->st_value,
0,
sec);
-diff --git a/bfd/libbfd.h b/bfd/libbfd.h
-index 2f5f16e..854bb0c 100644
---- a/bfd/libbfd.h
-+++ b/bfd/libbfd.h
-@@ -2853,6 +2853,7 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
+Index: git/bfd/libbfd.h
+===================================================================
+--- git.orig/bfd/libbfd.h
++++ git/bfd/libbfd.h
+@@ -2862,6 +2862,7 @@ static const char *const bfd_reloc_code_
"BFD_RELOC_MICROBLAZE_32_ROSDA",
"BFD_RELOC_MICROBLAZE_32_RWSDA",
"BFD_RELOC_MICROBLAZE_32_SYM_OP_SYM",
@@ -173,11 +174,11 @@ index 2f5f16e..854bb0c 100644
"BFD_RELOC_MICROBLAZE_64_NONE",
"BFD_RELOC_MICROBLAZE_64_GOTPC",
"BFD_RELOC_MICROBLAZE_64_GOT",
-diff --git a/bfd/reloc.c b/bfd/reloc.c
-index a1353a2..4b57de7 100644
---- a/bfd/reloc.c
-+++ b/bfd/reloc.c
-@@ -6903,6 +6903,12 @@ ENUMDOC
+Index: git/bfd/reloc.c
+===================================================================
+--- git.orig/bfd/reloc.c
++++ git/bfd/reloc.c
+@@ -6865,6 +6865,12 @@ ENUMDOC
This is a 32 bit reloc for the microblaze to handle
expressions of the form "Symbol Op Symbol"
ENUM
@@ -190,26 +191,26 @@ index a1353a2..4b57de7 100644
BFD_RELOC_MICROBLAZE_64_NONE
ENUMDOC
This is a 64 bit reloc that stores the 32 bit pc relative
-diff --git a/binutils/readelf.c b/binutils/readelf.c
-index fed0387..92f655d 100644
---- a/binutils/readelf.c
-+++ b/binutils/readelf.c
-@@ -12774,6 +12774,10 @@ is_none_reloc (Filedata * filedata, unsigned int reloc_type)
+Index: git/binutils/readelf.c
+===================================================================
+--- git.orig/binutils/readelf.c
++++ git/binutils/readelf.c
+@@ -12908,6 +12908,10 @@ is_none_reloc (Filedata * filedata, unsi
|| reloc_type == 32 /* R_AVR_DIFF32. */);
case EM_METAG:
return reloc_type == 3; /* R_METAG_NONE. */
+ case EM_MICROBLAZE:
-+ return reloc_type == 30 /* R_MICROBLAZE_32_NONE. */
++ return reloc_type == 33 /* R_MICROBLAZE_32_NONE. */
+ || reloc_type == 0 /* R_MICROBLAZE_NONE. */
+ || reloc_type == 9; /* R_MICROBLAZE_64_NONE. */
case EM_NDS32:
return (reloc_type == 0 /* R_XTENSA_NONE. */
|| reloc_type == 204 /* R_NDS32_DIFF8. */
-diff --git a/gas/config/tc-microblaze.c b/gas/config/tc-microblaze.c
-index 50dbfc7..d66e949 100644
---- a/gas/config/tc-microblaze.c
-+++ b/gas/config/tc-microblaze.c
-@@ -2179,7 +2179,9 @@ md_apply_fix (fixS * fixP,
+Index: git/gas/config/tc-microblaze.c
+===================================================================
+--- git.orig/gas/config/tc-microblaze.c
++++ git/gas/config/tc-microblaze.c
+@@ -2201,7 +2201,9 @@ md_apply_fix (fixS * fixP,
/* This fixup has been resolved. Create a reloc in case the linker
moves code around due to relaxing. */
if (fixP->fx_r_type == BFD_RELOC_64_PCREL)
@@ -220,7 +221,7 @@ index 50dbfc7..d66e949 100644
else
fixP->fx_r_type = BFD_RELOC_NONE;
fixP->fx_addsy = section_symbol (absolute_section);
-@@ -2401,6 +2403,7 @@ tc_gen_reloc (asection * section ATTRIBUTE_UNUSED, fixS * fixp)
+@@ -2426,6 +2428,7 @@ tc_gen_reloc (asection * section ATTRIBU
switch (fixp->fx_r_type)
{
case BFD_RELOC_NONE:
@@ -228,15 +229,15 @@ index 50dbfc7..d66e949 100644
case BFD_RELOC_MICROBLAZE_64_NONE:
case BFD_RELOC_32:
case BFD_RELOC_MICROBLAZE_32_LO:
-diff --git a/include/elf/microblaze.h b/include/elf/microblaze.h
-index ae98099..c8cc57b 100644
---- a/include/elf/microblaze.h
-+++ b/include/elf/microblaze.h
-@@ -58,6 +58,7 @@ START_RELOC_NUMBERS (elf_microblaze_reloc_type)
- RELOC_NUMBER (R_MICROBLAZE_TLSDTPREL64, 27) /* TLS Offset Within TLS Block */
- RELOC_NUMBER (R_MICROBLAZE_TLSGOTTPREL32, 28) /* TLS Offset From Thread Pointer */
- RELOC_NUMBER (R_MICROBLAZE_TLSTPREL32, 29) /* TLS Offset From Thread Pointer */
-+ RELOC_NUMBER (R_MICROBLAZE_32_NONE, 30)
-
+Index: git/include/elf/microblaze.h
+===================================================================
+--- git.orig/include/elf/microblaze.h
++++ git/include/elf/microblaze.h
+@@ -61,6 +61,7 @@ START_RELOC_NUMBERS (elf_microblaze_relo
+ RELOC_NUMBER (R_MICROBLAZE_TEXTPCREL_64, 30) /* PC-relative TEXT offset. */
+ RELOC_NUMBER (R_MICROBLAZE_TEXTREL_64, 31) /* TEXT Entry offset 64-bit. */
+ RELOC_NUMBER (R_MICROBLAZE_TEXTREL_32_LO, 32) /* TEXT Entry offset 32-bit. */
++ RELOC_NUMBER (R_MICROBLAZE_32_NONE, 33)
END_RELOC_NUMBERS (R_MICROBLAZE_max)
+ /* Global base address names. */
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.30/0006-Fix-bug-in-MicroBlaze-TLSTPREL-Relocation.patch b/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0006-Fix-bug-in-MicroBlaze-TLSTPREL-Relocation.patch
index a671cf841..8d3d5387b 100644
--- a/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.30/0006-Fix-bug-in-MicroBlaze-TLSTPREL-Relocation.patch
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0006-Fix-bug-in-MicroBlaze-TLSTPREL-Relocation.patch
@@ -1,4 +1,4 @@
-From 0cad227ce495a975b32c10a8b6b0970c45024dd6 Mon Sep 17 00:00:00 2001
+From ca0336a49c33ccb78962530f2affff8982027e8e Mon Sep 17 00:00:00 2001
From: Nagaraju Mekala <nagaraju.mekala@xilinx.com>
Date: Mon, 28 Aug 2017 19:53:58 -0700
Subject: [PATCH] Fix bug in MicroBlaze TLSTPREL Relocation
@@ -18,10 +18,10 @@ Upstream-Status: Pending
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/bfd/elf32-microblaze.c b/bfd/elf32-microblaze.c
-index fc0d3e1..a94799f 100644
+index 1dc56f7..d4e53de 100644
--- a/bfd/elf32-microblaze.c
+++ b/bfd/elf32-microblaze.c
-@@ -1402,9 +1402,9 @@ microblaze_elf_relocate_section (bfd *output_bfd,
+@@ -1451,9 +1451,9 @@ microblaze_elf_relocate_section (bfd *output_bfd,
relocation += addend;
relocation -= dtprel_base(info);
bfd_put_16 (input_bfd, (relocation >> 16) & 0xffff,
@@ -31,5 +31,5 @@ index fc0d3e1..a94799f 100644
- contents + offset + 2 + INST_WORD_SIZE);
+ contents + offset + endian + INST_WORD_SIZE);
break;
- case (int) R_MICROBLAZE_64_PCREL :
- case (int) R_MICROBLAZE_64:
+ case (int) R_MICROBLAZE_TEXTREL_64:
+ case (int) R_MICROBLAZE_TEXTREL_32_LO:
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.30/0007-Add-MicroBlaze-address-extension-instructions.patch b/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0007-Add-MicroBlaze-address-extension-instructions.patch
index 9672c5169..9672c5169 100644
--- a/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.30/0007-Add-MicroBlaze-address-extension-instructions.patch
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0007-Add-MicroBlaze-address-extension-instructions.patch
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.30/0008-Add-new-MicroBlaze-bit-field-instructions.patch b/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0008-Add-new-MicroBlaze-bit-field-instructions.patch
index 0bc011779..0bc011779 100644
--- a/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.30/0008-Add-new-MicroBlaze-bit-field-instructions.patch
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0008-Add-new-MicroBlaze-bit-field-instructions.patch
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.30/0009-Fixing-MicroBlaze-IMM-bug.patch b/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0009-Fixing-MicroBlaze-IMM-bug.patch
index bb7e91ccb..bb7e91ccb 100644
--- a/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.30/0009-Fixing-MicroBlaze-IMM-bug.patch
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0009-Fixing-MicroBlaze-IMM-bug.patch
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.30/0010-Fixed-bug-in-GCC-so-that-it-will-support-.long-0U-an.patch b/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0010-Fixed-bug-in-GCC-so-that-it-will-support-.long-0U-an.patch
index 077343e67..077343e67 100644
--- a/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.30/0010-Fixed-bug-in-GCC-so-that-it-will-support-.long-0U-an.patch
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0010-Fixed-bug-in-GCC-so-that-it-will-support-.long-0U-an.patch
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.30/0011-Fixing-MicroBlaze-constant-range-check-issue.patch b/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0011-Fixing-MicroBlaze-constant-range-check-issue.patch
index 244a7ade3..244a7ade3 100644
--- a/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.30/0011-Fixing-MicroBlaze-constant-range-check-issue.patch
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0011-Fixing-MicroBlaze-constant-range-check-issue.patch
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.30/0012-MicroBlaze-fix-mask-for-barrel-shift-instructions.patch b/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0012-MicroBlaze-fix-mask-for-barrel-shift-instructions.patch
index e340c5069..e340c5069 100644
--- a/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.30/0012-MicroBlaze-fix-mask-for-barrel-shift-instructions.patch
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-2.31/0012-MicroBlaze-fix-mask-for-barrel-shift-instructions.patch
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-multimedia/vcu/kernel-module-vcu.bb b/meta-xilinx/meta-xilinx-bsp/recipes-multimedia/vcu/kernel-module-vcu.bb
index e09dd5d53..8d1380f05 100644
--- a/meta-xilinx/meta-xilinx-bsp/recipes-multimedia/vcu/kernel-module-vcu.bb
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-multimedia/vcu/kernel-module-vcu.bb
@@ -5,14 +5,14 @@ LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://LICENSE.md;md5=eb723b61539feef013de476e68b5c50a"
XILINX_VCU_VERSION = "1.0.0"
-XILINX_RELEASE_VERSION = "2018.1"
+XILINX_RELEASE_VERSION = "2018.3"
PV = "${XILINX_VCU_VERSION}-xilinx-${XILINX_RELEASE_VERSION}+git${SRCPV}"
S = "${WORKDIR}/git"
BRANCH ?= "master"
REPO ?= "git://github.com/xilinx/vcu-modules.git;protocol=https"
-SRCREV ?= "646185390cc1850969c0fa3db59fc8f0e511922e"
+SRCREV ?= "f6a9093ec32ee97a2df065aee8b8e676c2024f01"
BRANCHARG = "${@['nobranch=1', 'branch=${BRANCH}'][d.getVar('BRANCH', True) != '']}"
SRC_URI = "${REPO};${BRANCHARG}"
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-multimedia/vcu/libomxil-xlnx.bb b/meta-xilinx/meta-xilinx-bsp/recipes-multimedia/vcu/libomxil-xlnx.bb
index 76fdb9a3e..18fa032cc 100644
--- a/meta-xilinx/meta-xilinx-bsp/recipes-multimedia/vcu/libomxil-xlnx.bb
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-multimedia/vcu/libomxil-xlnx.bb
@@ -4,12 +4,12 @@ LICENSE = "Proprietary"
LIC_FILES_CHKSUM = "file://LICENSE.md;md5=03a7aef7e6f6a76a59fd9b8ba450b493"
XILINX_VCU_VERSION = "1.0.0"
-XILINX_RELEASE_VERSION = "2018.1"
+XILINX_RELEASE_VERSION = "2018.3"
PV = "${XILINX_VCU_VERSION}-xilinx-${XILINX_RELEASE_VERSION}+git${SRCPV}"
BRANCH ?= "master"
REPO ?= "git://github.com/xilinx/vcu-omx-il.git;protocol=https"
-SRCREV ?= "68e385ace99ab699feaa50f24b7a78680c411f75"
+SRCREV ?= "cf4b031ac88c7889e4f29ac7fc8ca7592bf12144"
BRANCHARG = "${@['nobranch=1', 'branch=${BRANCH}'][d.getVar('BRANCH', True) != '']}"
SRC_URI = "${REPO};${BRANCHARG}"
@@ -37,8 +37,8 @@ do_install() {
install -m 0644 ${S}/omx_header/*.h ${D}${includedir}/vcu-omx-il
- install -Dm 0755 ${S}/bin/omx_decoder.exe ${D}/${bindir}/omx_decoder.exe
- install -Dm 0755 ${S}/bin/omx_encoder.exe ${D}/${bindir}/omx_encoder.exe
+ install -Dm 0755 ${S}/bin/omx_decoder ${D}/${bindir}/omx_decoder
+ install -Dm 0755 ${S}/bin/omx_encoder ${D}/${bindir}/omx_encoder
oe_libinstall -C ${S}/bin/ -so libOMX.allegro.core ${D}/${libdir}/
oe_libinstall -C ${S}/bin/ -so libOMX.allegro.video_decoder ${D}/${libdir}/
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-multimedia/vcu/libvcu-xlnx.bb b/meta-xilinx/meta-xilinx-bsp/recipes-multimedia/vcu/libvcu-xlnx.bb
index 8e2369bff..b068aa81f 100644
--- a/meta-xilinx/meta-xilinx-bsp/recipes-multimedia/vcu/libvcu-xlnx.bb
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-multimedia/vcu/libvcu-xlnx.bb
@@ -4,12 +4,12 @@ LICENSE = "Proprietary"
LIC_FILES_CHKSUM = "file://LICENSE.md;md5=03a7aef7e6f6a76a59fd9b8ba450b493"
XILINX_VCU_VERSION = "1.0.0"
-XILINX_RELEASE_VERSION = "2018.1"
+XILINX_RELEASE_VERSION = "2018.3"
PV = "${XILINX_VCU_VERSION}-xilinx-${XILINX_RELEASE_VERSION}+git${SRCPV}"
BRANCH ?= "master"
REPO ?= "git://github.com/xilinx/vcu-ctrl-sw.git;protocol=https"
-SRCREV = "aa4b6871346c915f28a069190afec5d30963762f"
+SRCREV ?= "1cb5281d319ea4f3c0eb5514864c80d95e78fe6e"
BRANCHARG = "${@['nobranch=1', 'branch=${BRANCH}'][d.getVar('BRANCH', True) != '']}"
SRC_URI = "${REPO};${BRANCHARG}"
@@ -29,8 +29,8 @@ do_install() {
install -d ${D}${libdir}
install -d ${D}${includedir}/vcu-ctrl-sw/include
- install -Dm 0755 ${S}/bin/AL_Encoder.exe ${D}/${bindir}/AL_Encoder.exe
- install -Dm 0755 ${S}/bin/AL_Decoder.exe ${D}/${bindir}/AL_Decoder.exe
+ install -Dm 0755 ${S}/bin/ctrlsw_encoder ${D}/${bindir}/ctrlsw_encoder
+ install -Dm 0755 ${S}/bin/ctrlsw_decoder ${D}/${bindir}/ctrlsw_decoder
oe_runmake install_headers INSTALL_HDR_PATH=${D}${includedir}/vcu-ctrl-sw/include
oe_libinstall -C ${S}/bin/ -so liballegro_decode ${D}/${libdir}/
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-multimedia/vcu/vcu-firmware.bb b/meta-xilinx/meta-xilinx-bsp/recipes-multimedia/vcu/vcu-firmware.bb
index 1cb21253c..da447fc7a 100644
--- a/meta-xilinx/meta-xilinx-bsp/recipes-multimedia/vcu/vcu-firmware.bb
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-multimedia/vcu/vcu-firmware.bb
@@ -4,14 +4,14 @@ LICENSE = "Proprietary"
LIC_FILES_CHKSUM = "file://LICENSE;md5=63b45903a9a50120df488435f03cf498"
XILINX_VCU_VERSION = "1.0.0"
-XILINX_RELEASE_VERSION = "2018.1"
+XILINX_RELEASE_VERSION = "2018.3"
PV = "${XILINX_VCU_VERSION}-xilinx-${XILINX_RELEASE_VERSION}+git${SRCPV}"
S = "${WORKDIR}/git"
BRANCH ?= "master"
REPO ?= "git://github.com/xilinx/vcu-firmware.git;protocol=https"
-SRCREV ?= "7c6f282da07253c1987665846ed676059925ef40"
+SRCREV ?= "d01951905e1aedb179d838a6b86016f34e2f4966"
BRANCHARG = "${@['nobranch=1', 'branch=${BRANCH}'][d.getVar('BRANCH', True) != '']}"
SRC_URI = "${REPO};${BRANCHARG}"
diff --git a/meta-xilinx/meta-xilinx-contrib/conf/layer.conf b/meta-xilinx/meta-xilinx-contrib/conf/layer.conf
index ad2487714..58c2a46bc 100644
--- a/meta-xilinx/meta-xilinx-contrib/conf/layer.conf
+++ b/meta-xilinx/meta-xilinx-contrib/conf/layer.conf
@@ -12,5 +12,5 @@ BBFILE_PRIORITY_xilinx-contrib = "5"
LAYERDEPENDS_xilinx-contrib = "core"
LAYERDEPENDS_xilinx-contrib = "xilinx"
-LAYERSERIES_COMPAT_xilinx-contrib = "sumo"
+LAYERSERIES_COMPAT_xilinx-contrib = "sumo thud"
diff --git a/meta-xilinx/meta-xilinx-contrib/conf/machine/minized-zynq7.conf b/meta-xilinx/meta-xilinx-contrib/conf/machine/minized-zynq7.conf
index 8ee1980b4..de617d0b6 100644
--- a/meta-xilinx/meta-xilinx-contrib/conf/machine/minized-zynq7.conf
+++ b/meta-xilinx/meta-xilinx-contrib/conf/machine/minized-zynq7.conf
@@ -4,18 +4,16 @@
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 wifi bluetooth"
# u-boot configuration
PREFERRED_PROVIDER_virtual/bootloader = "u-boot"
UBOOT_MACHINE = "zynq_minized_config"
-SPL_BINARY = "spl/boot.bin"
EXTRA_IMAGEDEPENDS += " \
u-boot-zynq-uenv \
- virtual/boot-bin \
+ virtual/bootloader \
"
SERIAL_CONSOLE = "115200 ttyPS0"
@@ -26,7 +24,5 @@ MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "device-tree"
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "linux-firmware-bcm43430"
IMAGE_BOOT_FILES += " \
- boot.bin \
- ${MACHINE}.dtb \
uEnv.txt \
"
diff --git a/meta-xilinx/meta-xilinx-contrib/recipes-bsp/u-boot/files/minized-u-boot.patch b/meta-xilinx/meta-xilinx-contrib/recipes-bsp/u-boot/files/minized-u-boot.patch
deleted file mode 100644
index 4b9d72beb..000000000
--- a/meta-xilinx/meta-xilinx-contrib/recipes-bsp/u-boot/files/minized-u-boot.patch
+++ /dev/null
@@ -1,217 +0,0 @@
-From dfe572bcea9b74086d5bd9b963af26e64a043336 Mon Sep 17 00:00:00 2001
-From: Clement Laigle <clement.laigle8@gmail.com>
-Date: Sun, 10 Jun 2018 23:21:28 +0200
-Subject: [PATCH] zynq: Add initial support for Avnet MiniZed
-
-Initial support for Avnet MiniZed board.
-
-Signed-off-by: Clement Laigle <clement.laigle8@gmail.com>
----
- arch/arm/dts/Makefile | 1 +
- arch/arm/dts/zynq-minized.dts | 106 +++++++++++++++++++++++++++++++++++++++++
- configs/zynq_minized_defconfig | 68 ++++++++++++++++++++++++++
- 3 files changed, 175 insertions(+)
- create mode 100644 arch/arm/dts/zynq-minized.dts
- create mode 100644 configs/zynq_minized_defconfig
-
-diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
-index a895c70..32f9ae1 100644
---- a/arch/arm/dts/Makefile
-+++ b/arch/arm/dts/Makefile
-@@ -132,6 +132,7 @@ dtb-$(CONFIG_ARCH_ZYNQ) += \
- zynq-cse-qspi-single.dtb \
- zynq-microzed.dtb \
- zynq-picozed.dtb \
-+ zynq-minized.dtb \
- zynq-syzygy-hub.dtb \
- zynq-topic-miami.dtb \
- zynq-topic-miamilite.dtb \
-diff --git a/arch/arm/dts/zynq-minized.dts b/arch/arm/dts/zynq-minized.dts
-new file mode 100644
-index 0000000..3a05518
---- /dev/null
-+++ b/arch/arm/dts/zynq-minized.dts
-@@ -0,0 +1,106 @@
-+// SPDX-License-Identifier: GPL-2.0+
-+/*
-+ * dts file for Avnet MiniZed board
-+ *
-+ * (C) Copyright 2017 - 2018, Xilinx, Inc.
-+ *
-+ * Ibai Erkiaga <ibai.erkiaga-elorza@xilinx.com>
-+ */
-+
-+/dts-v1/;
-+#include "zynq-7000.dtsi"
-+
-+/ {
-+ model = "Avnet Zynq MiniZed Development Board";
-+ compatible = "avnet,minized", "xlnx,zynq-7000";
-+
-+ aliases {
-+ serial0 = &uart1;
-+ serial1 = &uart0;
-+ spi0 = &qspi;
-+ mmc0 = &sdhci0;
-+ };
-+
-+ memory@0 {
-+ device_type = "memory";
-+ reg = <0x0 0x20000000>;
-+ };
-+
-+ chosen {
-+ bootargs = "";
-+ stdout-path = "serial0:115200n8";
-+ };
-+
-+ usb_phy0: phy0 {
-+ compatible = "usb-nop-xceiv";
-+ #phy-cells = <0>;
-+ };
-+};
-+
-+&qspi {
-+ status = "okay";
-+ is-dual = <0>;
-+ num-cs = <1>;
-+ flash@0 {
-+ compatible = "micron,m25p128";
-+ reg = <0x0>;
-+ spi-tx-bus-width = <4>;
-+ spi-rx-bus-width = <4>;
-+ spi-max-frequency = <50000000>;
-+ partitions {
-+ compatible = "fixed-partitions";
-+ #address-cells = <1>;
-+ #size-cells = <1>;
-+ partition@0 {
-+ label = "boot";
-+ reg = <0x0 0xff0000>;
-+ };
-+
-+ partition@270000 {
-+ label = "kernel";
-+ reg = <0x270000 0xd80000>;
-+ };
-+
-+ partition@ff0000 {
-+ label = "bootenv";
-+ reg = <0xff0000 0x10000>;
-+ };
-+
-+ partition@1000000 {
-+ label = "spare";
-+ reg = <0x1000000 0x0>;
-+ };
-+ };
-+ };
-+};
-+
-+&uart0 {
-+ status = "okay";
-+};
-+
-+&uart1 {
-+ u-boot,dm-pre-reloc;
-+ status = "okay";
-+};
-+
-+&usb0 {
-+ status = "okay";
-+ dr_mode = "host";
-+ usb-phy = <&usb_phy0>;
-+ usb-reset = <&gpio0 7 0>; /* USB_RST_N-MIO7 */
-+};
-+
-+&sdhci1 {
-+ status = "okay";
-+ non-removable;
-+ bus-width = <4>;
-+ max-frequency = <12000000>;
-+
-+ #address-cells = <1>;
-+ #size-cells = <0>;
-+ mmccard: mmccard@0 {
-+ compatible = "mmc-card";
-+ reg = <0>;
-+ broken-hpi;
-+ };
-+};
-diff --git a/configs/zynq_minized_defconfig b/configs/zynq_minized_defconfig
-new file mode 100644
-index 0000000..44d65fc
---- /dev/null
-+++ b/configs/zynq_minized_defconfig
-@@ -0,0 +1,68 @@
-+CONFIG_ARM=y
-+CONFIG_ARCH_ZYNQ=y
-+CONFIG_SYS_TEXT_BASE=0x4000000
-+CONFIG_SPL=y
-+CONFIG_SPL_STACK_R_ADDR=0x200000
-+CONFIG_DEFAULT_DEVICE_TREE="zynq-minized"
-+CONFIG_DEBUG_UART=y
-+CONFIG_DISTRO_DEFAULTS=y
-+# CONFIG_DISPLAY_CPUINFO is not set
-+CONFIG_FIT=y
-+CONFIG_FIT_SIGNATURE=y
-+CONFIG_FIT_VERBOSE=y
-+CONFIG_BOOTCOMMAND="run $modeboot || run distro_bootcmd"
-+CONFIG_SPL_STACK_R=y
-+CONFIG_SPL_OS_BOOT=y
-+CONFIG_SYS_PROMPT="Zynq> "
-+CONFIG_CMD_THOR_DOWNLOAD=y
-+CONFIG_CMD_DFU=y
-+# CONFIG_CMD_FLASH is not set
-+CONFIG_CMD_FPGA_LOADBP=y
-+CONFIG_CMD_FPGA_LOADFS=y
-+CONFIG_CMD_FPGA_LOADMK=y
-+CONFIG_CMD_FPGA_LOADP=y
-+CONFIG_CMD_GPIO=y
-+CONFIG_CMD_MMC=y
-+CONFIG_CMD_SF=y
-+CONFIG_CMD_USB=y
-+# CONFIG_CMD_SETEXPR is not set
-+CONFIG_CMD_TFTPPUT=y
-+CONFIG_CMD_CACHE=y
-+CONFIG_CMD_EXT4_WRITE=y
-+CONFIG_ENV_IS_IN_SPI_FLASH=y
-+CONFIG_NET_RANDOM_ETHADDR=y
-+CONFIG_SPL_DM_SEQ_ALIAS=y
-+CONFIG_DFU_MMC=y
-+CONFIG_DFU_RAM=y
-+CONFIG_FPGA_XILINX=y
-+CONFIG_FPGA_ZYNQPL=y
-+CONFIG_DM_GPIO=y
-+CONFIG_MMC_SDHCI=y
-+CONFIG_MMC_SDHCI_ZYNQ=y
-+CONFIG_SPI_FLASH=y
-+CONFIG_SPI_FLASH_BAR=y
-+CONFIG_SPI_FLASH_SPANSION=y
-+CONFIG_SPI_FLASH_STMICRO=y
-+CONFIG_SPI_FLASH_WINBOND=y
-+CONFIG_PHY_MARVELL=y
-+CONFIG_PHY_REALTEK=y
-+CONFIG_PHY_XILINX=y
-+CONFIG_ZYNQ_GEM=y
-+CONFIG_DEBUG_UART_ZYNQ=y
-+CONFIG_DEBUG_UART_BASE=0xe0001000
-+CONFIG_DEBUG_UART_CLOCK=50000000
-+CONFIG_ZYNQ_SERIAL=y
-+CONFIG_ZYNQ_QSPI=y
-+CONFIG_USB=y
-+CONFIG_USB_EHCI_HCD=y
-+CONFIG_USB_ULPI_VIEWPORT=y
-+CONFIG_USB_ULPI=y
-+CONFIG_USB_STORAGE=y
-+CONFIG_USB_GADGET=y
-+CONFIG_USB_GADGET_MANUFACTURER="Xilinx"
-+CONFIG_USB_GADGET_VENDOR_NUM=0x03fd
-+CONFIG_USB_GADGET_PRODUCT_NUM=0x0300
-+CONFIG_CI_UDC=y
-+CONFIG_USB_GADGET_DOWNLOAD=y
-+CONFIG_USB_FUNCTION_THOR=y
-+CONFIG_OF_EMBED=y
---
-2.7.4
-
diff --git a/meta-xilinx/meta-xilinx-contrib/recipes-bsp/u-boot/u-boot_%.bbappend b/meta-xilinx/meta-xilinx-contrib/recipes-bsp/u-boot/u-boot_%.bbappend
deleted file mode 100644
index 2fdbdb42d..000000000
--- a/meta-xilinx/meta-xilinx-contrib/recipes-bsp/u-boot/u-boot_%.bbappend
+++ /dev/null
@@ -1,8 +0,0 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
-
-SRC_URI_append = " file://minized-u-boot.patch"
-
-HAS_PLATFORM_INIT_append = " \
- zynq_minized_config \
- "
-
diff --git a/meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux-firmware/linux-firmware_%.bbappend b/meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux-firmware/linux-firmware_%.bbappend
index 7655cafc1..b34eea349 100644
--- a/meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux-firmware/linux-firmware_%.bbappend
+++ b/meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux-firmware/linux-firmware_%.bbappend
@@ -1,11 +1,3 @@
-LICENSE_append_minized-zynq7 = "\
- & Firmware-cypress \
-"
-
-LIC_FILES_CHKSUM_append_minized-zynq7 = "\
- file://LICENCE.cypress;md5=cbc5f665d04f741f1e006d2096236ba7 \
-"
-NO_GENERIC_LICENSE[Firmware-cypress] = "LICENCE.cypress"
SRC_URI_append_minized-zynq7 = " \
git://github.com/murata-wireless/cyw-fmac-nvram;protocol=git;branch=orga;destsuffix=cyw-fmac-nvram;name=cyw-fmac-nvram \
@@ -28,7 +20,6 @@ do_install_append_minized-zynq7() {
}
PACKAGES_prepend_minized-zynq7 = "\
- ${PN}-cypress-license \
${PN}-bcm43430a1-hcd \
${PN}-mfgtest \
"
@@ -41,11 +32,6 @@ FILES_${PN}-bcm43430_append_minized-zynq7 = " \
${nonarch_base_libdir}/firmware/brcm/ brcmfmac43430-sdio.txt \
"
-# For additional Cypress
-FILES_${PN}-cypress-license = "\
- ${nonarch_base_libdir}/firmware/LICENCE.cypress \
-"
-
LICENSE_${PN}-bcm43430a1-hcd = "Firmware-cypress"
FILES_${PN}-bcm43430a1-hcd = " \
diff --git a/meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx/v2018.1/0001-drm-xilinx-Add-encoder-for-Digilent-boards.patch b/meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx/v2018.3/0001-drm-xilinx-Add-encoder-for-Digilent-boards.patch
index b8ba70ea2..b8ba70ea2 100644
--- a/meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx/v2018.1/0001-drm-xilinx-Add-encoder-for-Digilent-boards.patch
+++ b/meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx/v2018.3/0001-drm-xilinx-Add-encoder-for-Digilent-boards.patch
diff --git a/meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx/v2018.1/0002-clk-Add-driver-for-axi_dynclk-IP-Core.patch b/meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx/v2018.3/0002-clk-Add-driver-for-axi_dynclk-IP-Core.patch
index 9b6229db0..9b6229db0 100644
--- a/meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx/v2018.1/0002-clk-Add-driver-for-axi_dynclk-IP-Core.patch
+++ b/meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx/v2018.3/0002-clk-Add-driver-for-axi_dynclk-IP-Core.patch
diff --git a/meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx/v2018.1/0003-drm-xilinx-Fix-DPMS-transition-to-on.patch b/meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx/v2018.3/0003-drm-xilinx-Fix-DPMS-transition-to-on.patch
index a98d84c55..a98d84c55 100644
--- a/meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx/v2018.1/0003-drm-xilinx-Fix-DPMS-transition-to-on.patch
+++ b/meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx/v2018.3/0003-drm-xilinx-Fix-DPMS-transition-to-on.patch
diff --git a/meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx/v2018.1/0004-minized-wifi-bluetooth.cfg b/meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx/v2018.3/0004-minized-wifi-bluetooth.cfg
index f71e53abb..f71e53abb 100644
--- a/meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx/v2018.1/0004-minized-wifi-bluetooth.cfg
+++ b/meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx/v2018.3/0004-minized-wifi-bluetooth.cfg
diff --git a/meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx_2018.1.bbappend b/meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx_2018.3.bbappend
index 535fbb264..535fbb264 100644
--- a/meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx_2018.1.bbappend
+++ b/meta-xilinx/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx_2018.3.bbappend
diff --git a/meta-xilinx/meta-xilinx-standalone/README.md b/meta-xilinx/meta-xilinx-standalone/README.md
new file mode 100644
index 000000000..b800f3720
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/README.md
@@ -0,0 +1,54 @@
+meta-xilinx-standalone
+======================
+
+This layer is meant to augment Yocto/OE functionality to provide a Baremetal/Standalone Toolchain.
+
+
+Maintainers, Mailing list, Patches
+==================================
+
+Please send any patches, pull requests, comments or questions for this layer to
+the [meta-xilinx mailing list](https://lists.yoctoproject.org/listinfo/meta-xilinx):
+
+ meta-xilinx@lists.yoctoproject.org
+
+Maintainers:
+
+ Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com>
+ Manjukumar Harthikote Matha <manjukumar.harthikote-matha@xilinx.com>
+
+Dependencies
+============
+
+This layer depends on:
+
+ URI: git://git.yoctoproject.org/poky
+
+ URI: git://git.yoctoproject.org/meta-xilinx/meta-xilinx-bsp
+
+Usage
+=====
+
+1.- Clone this layer along with the specified layers
+
+2.- $ source oe-init-build-env
+
+3.- Add this layer to BBLAYERS on conf/bblayers.conf
+
+4.- Add the following to your conf/local.conf to build for the microblaze architecture:
+
+DISTRO="xilinx-standalone"
+
+MACHINE="zynqmp-pmu"
+
+GCCVERSION="7.%"
+
+5.- Build a package:
+
+for example:
+
+$ bitbake newlib
+
+or
+
+$ bitbake meta-toolchain
diff --git a/meta-xilinx/meta-xilinx-standalone/conf/distro/xilinx-standalone.conf b/meta-xilinx/meta-xilinx-standalone/conf/distro/xilinx-standalone.conf
new file mode 100644
index 000000000..7cd23ccdb
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/conf/distro/xilinx-standalone.conf
@@ -0,0 +1,13 @@
+DISTRO = "xilinx-standalone"
+DISTRO_NAME = "Xilinx Standalone Distro"
+DISTRO_VERSION = "1.0"
+TARGET_VENDOR = "-xilinx"
+
+TCLIBC = "newlib"
+TCLIBCAPPEND =""
+
+# Change SDK name
+SDK_VERSION = "xilinx-standalone"
+
+require conf/distro/include/yocto-uninative.inc
+INHERIT += "uninative"
diff --git a/meta-xilinx/meta-xilinx-standalone/conf/layer.conf b/meta-xilinx/meta-xilinx-standalone/conf/layer.conf
new file mode 100644
index 000000000..7d9cc5988
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/conf/layer.conf
@@ -0,0 +1,14 @@
+# We have a conf and classes directory, add to BBPATH
+BBPATH .= ":${LAYERDIR}"
+
+# We have recipes-* directories, add to BBFILES
+BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
+ ${LAYERDIR}/recipes-*/*/*.bbappend"
+
+BBFILE_COLLECTIONS += "xilinx-standalone"
+BBFILE_PATTERN_xilinx-standalone = "^${LAYERDIR}/"
+BBFILE_PRIORITY_xilinx-standalone = "5"
+
+LAYERDEPENDS_xilinx-standalone = "core xilinx"
+
+LAYERSERIES_COMPAT_xilinx-standalone = "thud"
diff --git a/meta-xilinx/meta-xilinx-standalone/conf/machine/zynqmp-pmu.conf b/meta-xilinx/meta-xilinx-standalone/conf/machine/zynqmp-pmu.conf
new file mode 100644
index 000000000..2f692db0d
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/conf/machine/zynqmp-pmu.conf
@@ -0,0 +1,11 @@
+DEFAULTTUNE ?= "microblaze"
+
+require conf/machine/include/microblaze/arch-microblaze.inc
+
+# Endianess, multiplier, barrel shift, pattern compare, floating point double or single, are the possibilities
+AVAILTUNES += "microblaze"
+TUNE_FEATURES_tune-microblaze = "microblaze v9.2 barrel-shift pattern-compare"
+PACKAGE_EXTRA_ARCHS_tune-microblaze = "${TUNE_PKGARCH}"
+SOC_FAMILY = "zynqmp"
+
+TARGET_LINK_HASH_STYLE_microblaze = ""
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-standalone/gcc/gcc-cross_%.bbappend b/meta-xilinx/meta-xilinx-standalone/recipes-standalone/gcc/gcc-cross_%.bbappend
new file mode 100644
index 000000000..bfcda3d0d
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-standalone/gcc/gcc-cross_%.bbappend
@@ -0,0 +1,18 @@
+# By using tclibc-baremetal we loose sysroot functionality due to some
+# append/override behavior We need to get that back , the following append
+# overrides everything on EXTRA_OECONF for gcc cross target it avoids
+# overlapping with crt0 because of --enable-linker-id from EXTRA_OECONF
+
+EXTRA_OECONF_BASE_pn-gcc-cross-${TARGET_ARCH}_append = " \
+ ${LTO} \
+ ${SSP} \
+ --enable-libitm \
+ --disable-bootstrap \
+ --disable-libmudflap \
+ --with-system-zlib \
+ --with-ppl=no \
+ --with-cloog=no \
+ --enable-checking=release \
+ --enable-cheaders=c_global \
+ --without-isl \
+"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-standalone/newlib/libgloss_3.0.0.bbappend b/meta-xilinx/meta-xilinx-standalone/recipes-standalone/newlib/libgloss_3.0.0.bbappend
new file mode 100644
index 000000000..fc4db8840
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-standalone/newlib/libgloss_3.0.0.bbappend
@@ -0,0 +1,10 @@
+do_configure_prepend_microblaze() {
+ # hack for microblaze, which needs xilinx.ld to literally do any linking (its hard coded in its LINK_SPEC)
+ export CC="${CC} -L${S}/libgloss/microblaze"
+}
+
+
+# We use libgloss as if it was libxil, to avoid linking issues
+do_install_append_zynqmp-pmu(){
+ cp ${D}/${libdir}/libgloss.a ${D}/${libdir}/libxil.a
+}
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-standalone/newlib/newlib_3.0.0.bbappend b/meta-xilinx/meta-xilinx-standalone/recipes-standalone/newlib/newlib_3.0.0.bbappend
new file mode 100644
index 000000000..e5249ab0d
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-standalone/newlib/newlib_3.0.0.bbappend
@@ -0,0 +1,4 @@
+do_configure_prepend_microblaze() {
+ # hack for microblaze, which needs xilinx.ld to literally do any linking (its hard coded in its LINK_SPEC)
+ export CC="${CC} -L${S}/libgloss/microblaze"
+}
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-standalone/pmu-firmware/pmu-firmware_2018.3.bb b/meta-xilinx/meta-xilinx-standalone/recipes-standalone/pmu-firmware/pmu-firmware_2018.3.bb
new file mode 100644
index 000000000..847e07187
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-standalone/pmu-firmware/pmu-firmware_2018.3.bb
@@ -0,0 +1,71 @@
+inherit deploy
+
+LICENSE = "Proprietary"
+LIC_FILES_CHKSUM = "file://../../../../license.txt;md5=71602ce1bc2917a9be07ceee6fab6711"
+
+XILINX_RELEASE_VERSION = "v2018.3"
+SRCREV = "56f3da2afbc817988c9a45b0b26a7fef2ac91706"
+PV = "${XILINX_RELEASE_VERSION}+git${SRCPV}"
+
+SRC_URI = "git://github.com/Xilinx/embeddedsw.git;protocol=https;nobranch=1"
+
+COMPATIBLE_HOST = "microblaze.*-elf"
+COMPATIBLE_MACHINE = "^$"
+COMPATIBLE_MACHINE_zynqmp-pmu = "zynqmp-pmu"
+
+
+S = "${WORKDIR}/git/lib/sw_apps/zynqmp_pmufw/src"
+
+# The makefile does not handle parallelization
+PARALLEL_MAKE = ""
+
+do_configure() {
+ # manually do the copy_bsp step first, so as to be able to fix up use of
+ # mb-* commands
+ ${S}/../misc/copy_bsp.sh
+}
+
+COMPILER = "${CC}"
+COMPILER_FLAGS = "-O2 -c"
+EXTRA_COMPILER_FLAGS = "-g -Wall -Wextra -Os -flto -ffat-lto-objects"
+ARCHIVER = "${AR}"
+
+BSP_DIR ?= "${S}/../misc/zynqmp_pmufw_bsp"
+BSP_TARGETS_DIR ?= "${BSP_DIR}/psu_pmu_0/libsrc"
+
+def bsp_make_vars(d):
+ s = ["COMPILER", "CC", "COMPILER_FLAGS", "EXTRA_COMPILER_FLAGS", "ARCHIVER", "AR", "AS"]
+ return " ".join(["\"%s=%s\"" % (v, d.getVar(v)) for v in s])
+
+do_compile() {
+ # the Makefile in ${S}/../misc/Makefile, does not handle CC, AR, AS, etc
+ # properly. So do its job manually. Preparing the includes first, then libs.
+ for i in $(ls ${BSP_TARGETS_DIR}/*/src/Makefile); do
+ oe_runmake -C $(dirname $i) -s include ${@bsp_make_vars(d)}
+ done
+ for i in $(ls ${BSP_TARGETS_DIR}/*/src/Makefile); do
+ oe_runmake -C $(dirname $i) -s libs ${@bsp_make_vars(d)}
+ done
+
+ # --build-id=none is required due to linker script not defining a location for it.
+ # Again, recipe-systoot include is necessary
+ oe_runmake CC="${CC}" CC_FLAGS="-MMD -MP -Wl,--build-id=none -I${STAGING_DIR_TARGET}/usr/include"
+}
+
+do_install() {
+ :
+}
+
+PMU_FIRMWARE_BASE_NAME ?= "${BPN}-${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}"
+PMU_FIRMWARE_BASE_NAME[vardepsexclude] = "DATETIME"
+
+do_deploy() {
+ install -Dm 0644 ${B}/executable.elf ${DEPLOYDIR}/${PMU_FIRMWARE_BASE_NAME}.elf
+ ln -sf ${PMU_FIRMWARE_BASE_NAME}.elf ${DEPLOYDIR}/${BPN}-${MACHINE}.elf
+ ${OBJCOPY} -O binary ${B}/executable.elf ${B}/executable.bin
+ install -m 0644 ${B}/executable.bin ${DEPLOYDIR}/${PMU_FIRMWARE_BASE_NAME}.bin
+ ln -sf ${PMU_FIRMWARE_BASE_NAME}.bin ${DEPLOYDIR}/${BPN}-${MACHINE}.bin
+}
+
+addtask deploy before do_build after do_install
+
OpenPOWER on IntegriCloud