diff options
author | Brad Bishop <bradleyb@fuzziesquirrel.com> | 2018-12-17 04:11:34 +0300 |
---|---|---|
committer | Brad Bishop <bradleyb@fuzziesquirrel.com> | 2019-01-09 02:21:44 +0300 |
commit | 1a4b7ee28bf7413af6513fb45ad0d0736048f866 (patch) | |
tree | 79f6d8ea698cab8f2eaf4f54b793d2ca7a1451ce /meta-xilinx | |
parent | 5b9ede0403237c7dace972affa65cf64a1aadd0e (diff) | |
download | openbmc-1a4b7ee28bf7413af6513fb45ad0d0736048f866.tar.xz |
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')
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 = <ðernet_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 + |