meta-xilinx: subtree update:757bac706c..bef2bf9b15

Alejandro Enedino Hernandez Samaniego (76):
      libmali-xlnx: Use update-alternatives to switch between GL backends
      libmali-xlnx: modify REQUIRED_DISTRO_FEATURES
      libmali-xlnx: only use and install dependencies that the DISTRO supports
      libmali-xlnx: fix x11 headers
      libmali-xlnx: Dont provide KHR headers
      libmali-xlnx: Change version on gbm.pc to be compatible with mesa
      libmali-xlnx: modify version on egl.pc for compatibility
      run-postinsts: Pass the output of the scripts run to kmsg
      zynqmp-pmu.conf: Upgrade tune to use Microblaze v10.0
      zynqmp-pmu.conf: Update to Microblaze v11.0
      newlib: export CC_FOR_TARGET as CC
      gcc-cross: Dont override EXTRA_OECONF unless DISTRO is xilinx-standalone
      Adds MACHINE.conf containing default tune for Cortex R5
      Adds MACHINE.conf containing default tune for Cortex A53
      toolchain: Provide specific configuration for cross(-canadian) gcc and binutils
      Adds MACHINE.conf containing default tune for Cortex A72
      xilinx-standalone: switch override and append
      xilinx-standalone: Add staticdev packages for newlib and libgloss to dependencies
      xilinx-standalone: Reorganize toolchain configure options
      toolchain: add cortex-A9 options for gcc and binutils
      gcc-cross-microblazeel: disable multilib
      gcc: Separate binutils options
      gcc: Add multilib-list=aprofile configure option for cortex A9
      gcc-runtime: Enable bulding libsdtc++ for baremetal applications
      gcc-runtime: Set correct overrides now that the build has been fixed in oe-core
      gcc-xilinx-standalone: Enable multilib builds for baremetal microblaze
      gcc-microblaze: Remove multilib builds that arent working (m64)
      meta-xilinx-standalone: Restructure layer properly, gcc and binutils belong on recipes-devtools
      newlib: Keep version numbers on bbappends
      meta-xilinx-standalone: Restructure layer properly, newlib belongs to recipes-bsp
      gcc-runtime: Move gcc-runtime to GCCs directory
      layer.conf: Include recipe files from a pattern with no directory required
      Create machines that use SOC_FAMILY
      Microblaze-pmu: Change overrides to reflect machine name changes from zynqmp-pmu to microblaze-pmu
      cortexr5: Change overrides to reflect machine name changes from cortexr5 to zynqmp and versal variants
      cortexa72: To keep up with a standard rename cortexa72 to add its SOC_FAMILY to its name
      meta-xilinx-bsp: Unify machine confs
      cortexr5-versal.conf: Include the tune inc file from the correct path
      cortexr5-zynqmp.conf: Include the tune inc file from the correct path
      tune-cortexrm: Include PACKAGE_EXTRA_ARCHS to avoid parsing errors
      esw: first step to move everything into an embeddedsw class
      pmufw: Install and hence package and strip the pmufw elf file
      fix license and compatible host for now
      pmufw: fix filename on elf file and fix task order to get stripped elf file deployed
      libxil: add flow for a53 using dtg
      device-tree.bbappend: add appent to support cortexa53 MACHINE
      device-tree: switch to AUTOREV to keep up with the repo changes for now
      zynqmp-fsbl: Sync flow with pmufw
      libxil: fix device tree flags for a53
      libxil: Fix DTB and DTG flow to make it more transparent for the user
      Fix XILINX_RELEASE_VERSION
      Increase layer priority
      device-tree: the Flags used from device tree have to be set on the device tree recipe, not in the libxil one
      esw.bbclass: Fix devtool and externalsrc flow
      esw.bbclass: Install artifacts from the build directory vs WORKDIR
      pmufw: Install artifacts from the build directory vs WORKDIR
      esw.bbclass: Make it possible for packages to use the cmake ncurses gui
      libxil: Unify flow and get DTB using the device-tree recipe instead of creating it manually
      SOC_FAMILY: Change overrides
      Microblaze-pmu: Change overrides to reflect machine name chanches from zynqmp-pmu to microblaze-pmu
      device-tree: Install psu_init files as well
      fsbl: avoid using underscore in the directory filename
      meta-xilinx-standalone: Restructure layer properly, pmufw and fsbl belong on recipes-applications
      meta-xilinx-standalone: device-tree belongs on recipes-bsp
      meta-xilinx-standalone: Restructure layer properly, move existing libraries from decoupling to recipes-libraries
      zynqmp-fsbl: Fix race condition on copy_psu_init
      device-tree: Fix install directory
      meta-xilinx-standalone: clean up layer
      libraries: Add inherit on python3native on libraries that were invoking nativepython3
      meta-xilinx: Include templates for local.conf and bblayers.conf
      esw: fix machines that have been renamed
      libgloss: Dont install libgloss as libxil since we actually have libxil
      esw: Switch release version to 2020.1
      xilinx-standalone: Add buildhistory to the DISTRO to avoid cooker errors
      device-tree: Override repo for supported machines
      system-zcu102: Create heterogeneous machine configuration for ZCU102 evaluation board.

Anirudha Sarangi (4):
      meta-xilinx-standalone: conf: distro: Add new distro for freertos
      meta-xilinx-standalone: classes: Update CMAKE_SYSTEM_NAME for Freertos
      meta-xilinx-standalone: recipes-libraries: Add recipe for freertos
      meta-xilinx-standalone: recipes-applications: freertos-hello-world: Add recipe for freertos hello world

Appana Durga Kedareswara rao (82):
      libxil: Add recipes for libxil and xilstandalone
      pmufw: recipes for pmufw app generation in decoupled flow
      Add recipes for xilffs and xilpm libraries
      Add recipes for building zynqmp fsbl application
      meta-xilinx-standalone: Add support for PLM and dependent library recipes
      zynqmp-fsbl: Copy psu_init files to source code
      meta-xilinx: meta-xilinx-standalone: Update source url path
      meta-xilinx: meta-xilinx-standalone: comment flto flags by default
      meta-xilinx-standalone: Using S instead of WORKDIR
      meta-xilinx-standalone: classes: Add bbclass for building esw examples
      meta-xilinx-standalone: recipes-drivers: Add recipe for compiling csudma driver examples
      meta-xilinx-standalone: recipes-drivers: Add recipe for compiling emacps driver examples
      meta-xilinx-standalone: recipes-drivers: Add recipe for compiling axiethernet driver examples
      meta-xilinx-standalone: recipes-drivers: Add recipe for compiling axicdma driver examples
      meta-xilinx-standalone: recipes-drivers: Add recipe for compiling axidma driver examples
      meta-xilinx-standalone: recipes-drivers: Add recipe for compiling llfifo driver examples
      meta-xilinx-standalone: recipe-drivers: Add recipe for compiling mcdma driver examples
      meta-xilinx-standalone: recipe-drivers: Add recipe for compiling zdma driver examples
      meta-xilinx-standalone: recipes-applications: Add recipe for compiling hello world application
      meta-xilinx-standalone: classes: Update md5 checksum as per latest license
      meta-xilinx-standalone: Add support for cortexa72 processor
      meta-xilinx-standalone: recipes-libraries: xilstandalone: Cleanup the recipe
      meta-xilinx-standalone: recipes-libraries: libxil: Cleanup the recipe
      meta-xilinx-standalone: classes: cleanup the class
      meta-xilinx-standalone: recipes-applications: hello-world: Remove dependency on esw_examples class
      meta-xilinx-standalone: recipes-libraries: Add recipe for xilmailbox
      cortexa72: Update cortexa72 machine variable naming
      meta-xilinx: Add support for cortexr5 processor
      meta-xilinx-standalone: Add dependencies on python3-dtc-native
      meta-xilinx-standalone: recipes-libraries: xiltimer: Add task for generating cmake meta-data
      meta-xilinx-standalone: recipes-libraries: lwip: Add recipe for lwip
      meta-xilinx-standalone: recipes-applications: lwip-echo-server: Add recipe for compiling lwip echo server application
      meta-xilinx-standalone: Add support for versal cortexr5 processor
      meta-xilinx-standalone: recipes-applications: lwip-tcp-perf-client: Add recipe for compiling lwip tcp perf client application
      meta-xilinx-standalone: recipes-applications: lwip-tcp-perf-server: Add recipe for compiling lwip tcp perf server application
      meta-xilinx-standalone: recipes-applications: lwip-udp-perf-server: Add recipe for compiling lwip udp perf server application
      meta-xilinx-standalone: recipes-applications: lwip-udp-perf-client: Add recipe for compiling lwip udp perf client application
      meta-xilinx-standalone: recipes-applications: freertos-lwip-echo-server: Add recipe for compiling freertos lwip echo server application
      meta-xilinx-standalone: recipes-applications: freertos-lwip-tcp-perf-client: Add recipe for compiling freertos lwip tcp perf client application
      meta-xilinx-standalone: recipes-applications: freertos-lwip-tcp-perf-server: Add recipe for compiling freertos lwip tcp perf server application
      meta-xilinx-standalone: recipes-applications: freertos-lwip-udp-perf-client: Add recipe for compiling freertos lwip udp perf client application
      meta-xilinx-standalone: recipes-applications: freertos-lwip-udp-perf-server: Add recipe for compiling freertos lwip udp perf server application
      meta-xilinx-standalone: recipes-libraries: Update depends list for socket mode
      meta-xilinx-standalone: recipes-libraries: Add recipe for xilpuf
      meta-xilinx-standalone: recipes-libraries: Fix workarounds
      meta-xilinx-standalone: recipes-libraries: xilloader: Update depends list
      meta-xilinx-standalone: recipes-applications: freertos-hello-world: Fix do_deploy elf variable name
      meta-xilinx-standalone: classes: esw: Remove unneeded DISTRO check
      meta-xilinx-standalone: recipe-drivers: Add recipe for compiling dmaps driver examples
      meta-xilinx-standalone: recipe-drivers: Add recipe for compiling usbpsu driver examples
      meta-xilinx-standalone: recipe-drivers: Add recipe for compiling axivdma driver examples
      meta-xilinx-standalone: recipe-drivers: Add recipe for compiling emaclite driver examples
      meta-xilinx-standalone: recipe-drivers: Add recipe for compiling xxvethernet driver examples
      meta-xilinx-standalone: recipe-drivers: Add recipe for compiling scugic driver examples
      meta-xilinx-standalone: recipe-drivers: Add recipe for compiling ttcps driver examples
      meta-xilinx-standalone: recipe-drivers: Add recipe for compiling tmrctr driver examples
      meta-xilinx-standalone: recipe-drivers: Add recipe for compiling qspipsu driver examples
      meta-xilinx-standalone: recipe-drivers: Add recipe for compiling ospipsv driver examples
      meta-xilinx-standalone: recipe-drivers: Add recipe for compiling resetps driver examples
      meta-xilinx-standalone: recipe-drivers: Add recipe for compiling clockps driver examples
      meta-xilinx-standalone: recipe-drivers: Add recipe for compiling canfd driver examples
      meta-xilinx-standalone: recipe-drivers: Add recipe for compiling canps driver examples
      meta-xilinx-standalone: recipe-drivers: Add recipe for compiling can driver examples
      meta-xilinx-standalone: recipe-drivers: Add recipe for compiling wdtps driver examples
      meta-xilinx-standalone: recipe-drivers: Add recipe for compiling rtcpsu driver examples
      meta-xilinx-standalone: recipe-drivers: Add recipe for compiling gpiops driver examples
      meta-xilinx-standalone: recipe-drivers: Add recipe for compiling sdps driver examples
      meta-xilinx-standalone: recipe-drivers: Add recipe for compiling ipipsu driver examples
      meta-xilinx-standalone: recipe-drivers: Add recipe for compiling nandpsu driver examples
      meta-xilinx-standalone: recipe-drivers: Add recipe for compiling devcfg driver examples
      meta-xilinx-standalone: recipe-drivers: Add recipe for compiling mbox driver examples
      meta-xilinx-standalone: recipe-drivers: Add recipe for compiling mutex driver examples
      meta-xilinx-standalone: recipe-drivers: Add recipe for compiling uartlite driver examples
      meta-xilinx-standalone: recipe-drivers: Add recipe for compiling uartps driver examples
      meta-xilinx-standalone: recipe-drivers: Add recipe for compiling gpio driver examples
      meta-xilinx-standalone: recipe-drivers: Add recipe for compiling spips driver examples
      meta-xilinx-standalone: recipe-drivers: Add recipe for compiling qspips driver examples
      meta-xilinx-standalone: recipe-drivers: Add recipe for compiling xadcps driver examples
      meta-xilinx-standalone: recipe-drivers: Add recipe for compiling sysmon driver examples
      device-tree: Install psu_init files as well for zynqmp machines
      meta-xilinx-standalone: recipes-applications: zynqmp-fsbl: Correct cflags based on the machine type
      meta-xilinx-standalone: recipes-bsp: device-tree: Install psu_init* files only for standalone configuration

Bruce Ashfield (1):
      linux-xlnx: cleanup and make yocto-kernel-cache available

Himanshu Choudhary (8):
      xrt_git:zocl_git: added package_class for generating rpm
      zocl_git: added post install script
      xrt_git: added veral flags and dependencies
      xrt_git:zocl_git: license and PV update from meta-xilinx-internal
      xrt,zocl:Update commit id for 2020.1 release
      xrt_git:zocl_git: updated commitid > CR-1063204
      xrt_git:zocl_git: update commitid for 2020.1 release
      xrt_git:zocl_git: update commitid for 2020.1 release

Jaewon Lee (28):
      Update recipes for 2019.2 release
      u-boot-zynq-scr: reworking boot.scr recipe to work for zynq and zynqmp
      u-boot-zynq-scr: Setting sd as default bootmode for versal
      zynq/zynqmp confs: Adding boot.scr to IMAGE_BOOT_FILES
      bootgen_1.0.bb: Adding initial bootgen recipe to build bootgen
      flashstrip utility: Build and ship flash strip utility needed for qemu
      machine-xilinx-default.inc: Adding required dependencies to image_wic
      **TEMPORARY**: Removing preferred provider overrides for mali backend
      meson: Adding patch to add microblaze as supported CPU
      glibc-locale_%.bbappend: Fix directory installed but not shipped issue
      Revert "**TEMPORARY**: Removing preferred provider overrides for mali backend"
      arm-trusted-firmware.inc: Changing generic DEBUG to DEBUG_ATF
      gcc-cross-canadian_%.bbappend:temporary hack to build gcc cross canadian
      gcc-source: Adding microblaze patch to fix compiler crash with -freg-struct-return
      newlib: Adding xilinx specific patches on top of newlib/libgloss 3.1.0
      cortexa*.conf: Change arch-armv8.inc to arch-armv8a.inc
      gdb: Switching microblaze to use upstream gdb version 8.3.1
      microblaze gdb/binutils: Adding necessary patches for microblaze
      Using tune-cortexa72-cortexa53.inc for versal and zynqmp tunes
      qemu-system-aarch64-multiarch: Adding comment for future fix
      xilinx-standalone.conf: Adding qemu to TOOLCHAIN_HOST_TASK
      arm-trusted-firmware.inc: installing elf with standard name
      u-boot-xlnx:Updating defconfig for all zynq machines
      Correcting ':' placement for appending file paths
      Add older version of OpenCV 3.4.3
      opencv_3.4.3.bb: Removing tiny-dnn from SRC_URI
      versal confs: Upping RAM in runqemu command to 8G for versal boards
      versal confs: cleaning up unnecessary file loading in runqemu command

Jean-Francois Dagenais (3):
      libmali-xlnx: clean and fix FILESXTRAPATHS
      libmali-xlnx: make version recognizable
      kernel-module-mali: add patch to check dma_map_page error

Jeegar Patel (1):
      kernel-module-vcu.bb : Autoload dmaproxy module on boot

Madhurkiran Harikrishnan (14):
      libmali-xlnx: MALI will not provide wayland-egl
      libmali-xlnx.bb: ABIs are made consistent for all backends
      libmali-xlnx: Squash all monolithic library name into a variable
      libmali-xlnx: Upgrade the userspace driver to r9p0
      kernel-module-mali: Upgrade the kernel space driver to r9p0
      weston: Migrate ZynqMP specific patches for weston to meta-xilinx
      weston: Remove opaque substitute for ARGB8888 as ZynqMP DP does not support
      kernel-module-mali: Make the driver compatible with kernel 5.4
      Revert "libmali-xlnx: Dont provide KHR headers"
      mesa: Do not provide KHR headers
      cairo: For ZynqMP enable glesv2 packageconfig
      libglu: Add build time dependency on glesv2 for zynqmp
      xf86-video-armsoc: Bypass the exa layer to free the root pixmap
      libmali: Fetch mali binaries from rel-v2020.1 branch

Manjukumar Matha (17):
      libmali-xlnx: upgrade MALI recipe for 2019.2
      xrt_git.bb: Fix xrt recipe for externalsrc
      zocl_git.bb: Update the S path for zocl
      kernel-module-hdmi_git.bb: New Yocto recipe for Xilinx HDMI drivers
      machine-xilinx-default.inc: Add qemu-xilinx-helper-native as preferred provider
      zynq-generic.conf: Add qemu wiring to generic conf
      meta-xilinx-pynq: Add layer to support PYNQ
      image-types-xilinx-qemu.bbclass: Add sector size as 512K
      ultra96-zynqmp.conf: Add support for Ultra96 evaluation board
      linux-firmware_git.bbappend: Add hook for wl18xx and bts file
      vc-p-a2197-00-versal.conf:Add versal Tenzing +SE1 board configuration
      kc705-microblaze: Update u-boot patch for kc705
      layer.conf: Update XILINX_RELEASE_VERSION to v2020.1
      libgpg-error: Add microblaze platform specific gpg-error.h file
      qemu-xilinx-native: Enable packageconfig option for libgcrypt
      qemu-xilinx.inc: Remove stale packageconfig options
      qemu-xilinx.inc: Configure qemu-xilinx with gcrypt

Mark Hatle (82):
      binutils/gcc: Refactor the oeconf
      Revert "binutils/gcc: Refactor the oeconf"
      gcc-runtime: Make the baremetal changes specific to class-target
      binutils/gcc: Refactor the oeconf
      gcc: Remove cortexa53 errata fixes
      binutils: Merge latest binutils work
      Revert "gcc-microblaze: Remove multilib builds that arent working (m64)"
      gcc-cross-canadian: Fix issue being unable to find stdio.h
      Enable multilib baremetal toolchains
      gcc-runtime: Fix C++ multilib headers
      Limit multilib toolchains to symlinks to the main toolchain
      Create new baremetal toolchain machines
      Fix arm cortex r/m profiles
      microblaze-tc: Minor update and corrections
      Adjust the microblaze standalone toolchain to match vitis expectations.
      newlib: Adjust configuration for standalone to allow BSP library
      qemu-xilinx: Point to master branch by default
      distro/xilinx-standalone: Make LTO optional
      distr/xilinx-standalone: Switch default optimization from ESW to Distro
      cortex-r5: Add cortexr5f configuration
      xilinx-standalone: When building for cortexr5, add -DARMR5 for CCARGS
      newlib: Move microblaze support
      newlib: Cleanup and merge the two newlib bbappends into a single append
      python3-dtc: Add python3 dtc module
      Ensure that bbappends do not affect task hashes
      xlnx-compatible-os.bbclass: Class to allow recipes to list OS compatibility
      Remove hardcoded XILINX_RELEASE_VERSION in recipes
      meta-xilinx-standalone: Add dependencies on python3-dtc
      meta-xilinx-standalone/device-tree: remove duplicate internal references
      lopper: Add lopper utility
      xilinx-standalone: sync distros
      xilinx-standalone.inc: Replace qemu dependency with mingw32 specific recipe
      lopper: Add runtime dependency of python3-dtc
      cortexa53-zynqmp/cortexa72-versal: Fix cortex based BSPs
      README.md: revise README.md based
      README.md: Add information about the new embeddedsw support
      microblaze_dtb.py: Convert a dtb to one or more microblaze TUNE_FEATURES
      linux-xlnx: Use new default defconfigs
      meta-xilinx-bsp: Rename soc configuration masquerading as a tune file
      meta-xilinx-bsp: Remove default values
      machine-xilinx-overrides: Make this generic
      meta-xilinx-bsp: Update recipes to use SOC_FAMILY_ARCH and SOC_VARIANT_ARCH
      meta-xilinx-bsp: rename machine-xilinx-override to xilinx-soc-family.inc
      meta-xilinx-standalone: Move soc overrides from meta-xilinx-default
      meta-xilinx-bsp: Adjust soc to permit multiple CPU/TUNES
      libmali-xlnx: Remove virtual provides
      meta-xilinx-bsp: remove redundant PREFERRED_PROVIDER
      Revert "libmali-xlnx: Remove virtual provides"
      meta-xilinx-bsp: machine-xilinx-default.inc allow empty WIC_DEPENDS
      microblaze_dtb.py: Move to scripts subdir
      zc706-zynq7: Add qemu wiring for zc706 machine
      qemu-zynq7: Add qemu wiring for zc706 machine
      meta-xilinx-bsp: cleanup qemu references
      xilinx-qemu: Move -multiarch extension to the machine-xilinx-qemu
      *-generic.conf: Add QEMU support to each of the generic BSPs
      versal-generic: Move from vck190 to vc-p-a2197-00-versal
      esw.bbclass: Adjust get_xlnx_cmake_process to use both tune and machine
      Revise COMPATIBLE_MACHINE settings
      esw.bbclass: Move DTBFILE to a single definition
      xilinx-standalone.conf: Add workaround for microblaze -Os bug
      Revert "linux-xlnx: Use new default defconfigs"
      qemu-xilinx.inc: Move the URL to 'gitsm' and disable compile time submodules
      esw.bbclass: Only work with xilinx-standalone distro
      Rename plm_git.bb to plm-standalong_git.bb
      meta-xilinx-standalone esw.bbclass: Allow SRCREV and SRC_URI to be overwritten
      esw.bbclass: Change 'or' to 'and' to verify EXTERNALSRC is defined
      Revert "xlnx-compatible-os.bbclass: Class to allow recipes to list OS compatibility"
      Define COMPATIBLE_HOST to prevent mix of Linux and Baremetal recipes
      device-tree.bbappend: Move to COMPATIBLE_HOST
      machines: Move from SERIAL_CONSOLE (deprecated) to SERIAL_CONSOLES
      machines: Move from SERIAL_CONSOLE (deprecated) to SERIAL_CONSOLES
      machines: Allow the user to override SERIAL_CONSOLES
      machines: Remove default SERIAL_CONSOLES_CHECK
      machines: Allow user to override SERIAL_CONSOLE
      microblaze machines: Set LINKER_HASH_STYLE defaults
      kernel-module-mali: WIP
      libcma: Fix SRC_URI definition
      binutils: Microblaze integrate fix from upstream
      init-ifupdown: Fix BSPs that were setting partial overrides
      zynq-generic.conf: Remove the qemu overrides, not needed
      meta-xilinx-standalone gcc: Fix microblaze crtend.o
      lopper: Fix python3 reference in lopper_sanity.py

Min Ma (1):
      xrt_git.bb: update XRT dependency

Mubin Usman Sayyed (3):
      meta-xilinx-bsp: conf: machine: Add standalone based machine for zynq
      meta-xilinx-standalone: Add support for zynq
      meta-xilinx-standalone: classes: esw: Update ESW_CFLAGS with spec file

Mukund PVVN (3):
      zcu1275-zynqmp.conf: Rename zc1275 to zcu1275
      zcu1285-zynqmp.conf: Update UBOOT_MACHINE
      v350-versal.conf:Add versal board configuration

Peter Ogden (1):
      python3-pynq.bb: Update PYNQ to 2.5.1

Sai Hari Chandana Kalluri (54):
      u-boot-xlnx_2019.2.bb: Rename zc1275 to zcu1275 board name
      ultra96-zynqmp.conf: Include mipi as MACHINE_FEATURE
      linux-xlnx.inc: Add MIPI kernel configuration for Ultra96
      pynq-ultra96-*: Add Ultra96 specific pynq example demo:
      vck-sc-zynqmp: Machine configuration for vck190 system controller
      v350-versal.conf: Enforce system.dtb name when using virtual/dtb
      vmk180-versal.conf: Add machine configuration for vmk180-versal
      tune-versal.inc: Set default SOC_VARIANT = s80
      arm-trusted-firmware_2019.2.bbappend: Update compilation flag
      u-boot-xlnx: Add the platform init file for zcu216-zynqmp
      plm_2019.2.bb: recipe to build plm standalone
      psm-firmware_2019.2.bb: Create psm-firmware recipe for standalone build
      versal-mb.conf: Add machine configuration to support standalone build for versal components like plm, psm-firmware
      vck190-versal.conf: Add deploy dir for psm and plm firmware
      tune-versal.inc: Rename include file from arch-armv8 to arch-armv8a
      Move recipes to use _%.bb instead of version
      qemu-*: Upgrade QEMU version 2.11 -> 4.1.5
      Upgrade recipes to 2020.1
      libmali-xlnx: Provide single shlib provider for libMali.so.9
      "**TEMPORARY**" linux-xlnx.inc: Trim PV variable expansion
      Revert "Revert "**TEMPORARY**: Removing preferred provider overrides for mali backend""
      versal-generic: Add versal-generic machine configuration
      Revert  "**TEMPORARY**: Removing preferred provider overrides for mali backend"""
      qemu-xilinx*: Enable qemu-xilinx-native as PROVIDER for qemu-native
      u-boot-zyqn-scr.bb: Update DEVICETREE and KERNEL LOAD ADDRESS for zynqmp machines
      u-boot-xlnx:Update UBOOT-MACHINE to xilinx_zynqmp_virt_defconfig for all zynqmp machines
      qemu-xilinx: Enable qemu-xilinx to provide nativesdk-qemu
      zedboard-zynq7.conf:update u-boot binary name
      qemu-system-aarch64-multiarch: Update the binpath for qemu targets
      zcu102-zynqmp.conf: Modify PMU_FIRMWARE_DEPLOY_DIR and PMU_FIRMWARE_IMAGE_NAME
      Update KERNEL_VERSION to 5.4
      zcu102-zynqmp.conf: Pass dtb and dtb load address as QB_OPT args for qemuboot
      Enable kernel configurations for viruatlization distro feature
      zc702-zynq7: Add qemu wiring for zc702 machine
      qemu-xilinx-multiarch-helper-native_1.0.bb: Move multiarch wrapper script to bindir
      qemuboot-xilinx.bbclass: Remove the subdir added to the qemu target path
      external-hdf.bbappend: move to meta-xilinx-tools layer
      xrt: Remove references to PACKAGE_CLASSES from xrt recipes
      kernel-module-hdmi: Update LICENSE_CHECKSUM for kenrel-module-hdmi
      xilinx-kmeta: Upstream xen and ocicontainer configs to YP kernel-cache
      Update commit ids for 2020.1 release
      arm-trusted-firmware.inc: Update package version
      Update commit ids for 2020.1 release
      lopper: Update commit id for 2020.1 release
      layer.conf: Set layer compat to dunfell & gatesgarth
      qemu-xilinx-native.inc: Fix the patch file names for dunfell Fix patch file names for dunfell
      libmali-xlnx: Inherit features_check instead of distro_features_check
      gcc-9*: Upgrade gcc from 9.2->10.1
      libgloss, newlib: Upgrade version from 3.1 -> 3.3
      meson_%.bbappend: Remove bbappend from layer
      qemu-xilinx.inc: Add patch to enable/disbable libudev in qemu configure
      python3-dtc_1.5.1.bb: Explicitly set the path to run make during configure
      qemu-devicetrees: Use python3 instead of python
      u-boot-xlnx.inc: Explicitly set builddir path

Sandeep Gundlupet Raju (2):
      conf/machine/kc705-microbalzeel.conf: Fix U-boot defconfig
      local.conf.sample: Updating XILINX_VER_MAIN

Swagath Gadde (4):
      u-boot-zynq-scr: Add pxeboot support in u-boot-scr
      zcu216-zynqmp: Add support for zcu216 board
      u-boot-zynq-scr:Add initrd label to pxe config
      zcu208-zynqmp: Add support for zcu208 board

Varalaxmi Bingi (4):
      Update XILINX_RELEASE_VERSION to v2020.1
      zcu1285-zynqmp.conf:using common u-boot defconfig
      u-boot-xlnx.inc:u-boot-xlnx_2020.1.bb: kc705 patch
      removing kc705 patch

Vishal Sagar (3):
      kernel-module-hdmi_git.bb: Add versal support
      kernel-module-hdmi: Update for 2020.1 release
      kernel-module-hdmi: Update commit id and license md5sum for 2020.1

ch vamshi krishna (1):
      xrt_git.bb: Add icd support for edge platforms

Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
Change-Id: I71ace4a7992c023b84c864abd45e634b5e48f751
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-graphics/cairo/cairo_%.bbappend b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/cairo/cairo_%.bbappend
new file mode 100644
index 0000000..b2942a8
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/cairo/cairo_%.bbappend
@@ -0,0 +1,2 @@
+PACKAGECONFIG_zynqmp += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 xcb', '', d)} \
+                         egl glesv2"
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-graphics/libgles/files/egl.pc b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/libgles/files/egl.pc
index f9935f2..65c4c1f 100644
--- a/meta-xilinx/meta-xilinx-bsp/recipes-graphics/libgles/files/egl.pc
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/libgles/files/egl.pc
@@ -6,7 +6,7 @@
 Name: egl
 Description: MALI EGL library
 Requires.private:
-Version: r8p0
+Version: 17.3
 Libs: -L${libdir} -lEGL
 Libs.private: -lm -lpthread -ldl
 Cflags: -I${includedir}
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
index 02ea94e..c40b5f4 100644
--- a/meta-xilinx/meta-xilinx-bsp/recipes-graphics/libgles/files/gbm.pc
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/libgles/files/gbm.pc
@@ -6,7 +6,7 @@
 Name: gbm
 Description: MALI gbm library
 Requires.private:
-Version: r8p0
+Version: 17.3
 Libs: -L${libdir} -lgbm
 Libs.private: -lm -lpthread -ldl
 Cflags: -I${includedir}
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-graphics/libgles/files/glesv1.pc b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/libgles/files/glesv1.pc
index 4895400..39467f3 100644
--- a/meta-xilinx/meta-xilinx-bsp/recipes-graphics/libgles/files/glesv1.pc
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/libgles/files/glesv1.pc
@@ -6,7 +6,7 @@
 Name: glesv1
 Description: MALI OpenGL ES 1.1 library
 Requires.private:
-Version: r8p0
+Version: 17.3
 Libs: -L${libdir} -lGLESv1_CM
 Libs.private: -lm -lpthread -ldl
 Cflags: -I${includedir}
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-graphics/libgles/files/glesv1_cm.pc b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/libgles/files/glesv1_cm.pc
index 888af87..1547b4c 100644
--- a/meta-xilinx/meta-xilinx-bsp/recipes-graphics/libgles/files/glesv1_cm.pc
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/libgles/files/glesv1_cm.pc
@@ -6,7 +6,7 @@
 Name: gles_cm
 Description: Mali OpenGL ES 1.1 CM library
 Requires.private:
-Version: r8p0
+Version: 17.3
 Libs: -L${libdir} -lGLESv1_CM
 Libs.private: -lm -lpthread -ldl
 Cflags: -I${includedir}
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-graphics/libgles/files/glesv2.pc b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/libgles/files/glesv2.pc
index 5047c39..a0a84f2 100644
--- a/meta-xilinx/meta-xilinx-bsp/recipes-graphics/libgles/files/glesv2.pc
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/libgles/files/glesv2.pc
@@ -6,7 +6,7 @@
 Name: glesv2
 Description: MALI OpenGL ES 2.0 library
 Requires.private:
-Version: r8p0
+Version: 17.3
 Libs: -L${libdir} -lGLESv2
 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
deleted file mode 100644
index 719fb3e..0000000
--- a/meta-xilinx/meta-xilinx-bsp/recipes-graphics/libgles/files/wayland-egl.pc
+++ /dev/null
@@ -1,12 +0,0 @@
-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 113710e..8a1451e 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
@@ -1,68 +1,65 @@
 DESCRIPTION = "libGLES for ZynqMP with Mali 400"
 
 LICENSE = "Proprietary"
-LICENSE_FLAGS = "xilinx"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Proprietary;md5=0557f9d92cf58f2ccdd50f62f8ac0b28"
+LIC_FILES_CHKSUM = "file://EULA;md5=82e466d0ed92c5a15f568dbe6b31089c"
 
-inherit distro_features_check
-inherit xilinx-fetch-restricted
+inherit features_check update-alternatives
 
-ANY_OF_DISTRO_FEATURES = "fbdev x11"
+ANY_OF_DISTRO_FEATURES = "x11 fbdev wayland"
 
 PROVIDES += "virtual/libgles1 virtual/libgles2 virtual/egl virtual/libgbm"
 
-FILESEXTRAPATHS_append := " \
-                ${THISDIR}/files: \
-                ${THISDIR}/r8p0-00rel0: "
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
 
+REPO ?= "git://github.com/Xilinx/mali-userspace-binaries.git;protocol=https"
+BRANCH ?= "rel-v2020.1"
+SRCREV ?= "da73805e3e011382c4d014ac10037cd193aaa9a0"
+BRANCHARG = "${@['nobranch=1', 'branch=${BRANCH}'][d.getVar('BRANCH', True) != '']}"
 
-# Fetch the MALI 400 binaries from here
-# https://www.xilinx.com/member/forms/download/mali-driver-license.html?filename=mali-400-userspace.tar
-
-PV = "r8p0-01rel0"
+PV = "r9p0-01rel0"
 SRC_URI = " \
-    https://www.xilinx.com/member/forms/download/mali-driver-license.html?filename=mali-400-userspace.tar;downloadfilename=mali-400-userspace.tar \
+    ${REPO};${BRANCHARG} \
     file://egl.pc \
     file://glesv1_cm.pc \
     file://glesv1.pc \
     file://glesv2.pc \
-    file://wayland-egl.pc \
     file://gbm.pc \
     "
 
-SRC_URI[md5sum] = "4fd3456564ef8c818e21432221c9e1b7"
-SRC_URI[sha256sum] = "26d473ae77c36104a215710beca55a22a712850dc26547dde950c7398210602c"
-
 COMPATIBLE_MACHINE = "^$"
 COMPATIBLE_MACHINE_zynqmpeg = "zynqmpeg"
 COMPATIBLE_MACHINE_zynqmpev = "zynqmpev"
 
-PACKAGE_ARCH = "${SOC_FAMILY}"
+PACKAGE_ARCH = "${SOC_FAMILY_ARCH}"
 
 
-S = "${WORKDIR}/mali-400"
+S = "${WORKDIR}/git"
 
+# If were switching at runtime, we would need all RDEPENDS needed for all backends available
 X11RDEPENDS = "libxdamage libxext libx11 libdrm libxfixes"
 X11DEPENDS = "libxdamage libxext virtual/libx11 libdrm libxfixes"
 
+# Don't install runtime dependencies for other backends unless the DISTRO supports it
 RDEPENDS_${PN} = " \
-	kernel-module-mali \
-	${@bb.utils.contains('DISTRO_FEATURES', 'x11', '${X11RDEPENDS}', '', d)} \
-	"
+    kernel-module-mali \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'x11', '${X11RDEPENDS}', '', d)} \
+"
 
+# We dont build anything but we want to avoid QA warning build-deps
 DEPENDS = "\
-	${@bb.utils.contains('DISTRO_FEATURES', 'x11', '${X11DEPENDS}', '', d)} \
-	${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland libdrm', '', d)} \
-	"
+    ${@bb.utils.contains('DISTRO_FEATURES', 'x11', '${X11DEPENDS}', '', d)} \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland libdrm', '', d)} \
+"
+
+
+# x11 is default, set to "fbdev" , "wayland", or "headless" if required
+MALI_BACKEND_DEFAULT ?= "x11"
 
 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.3/r8p0-01rel0.tar -C ${S}
-}
+MONOLITHIC_LIBMALI = "libMali.so.9.0"
 
 do_install() {
     #Identify the ARCH type
@@ -94,26 +91,84 @@
 
     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
+    install -Dm 0644 ${S}/${PV}/${ARCH_PLATFORM_DIR}/headless/${MONOLITHIC_LIBMALI} ${D}${libdir}/headless/${MONOLITHIC_LIBMALI}
+    ln -snf headless/${MONOLITHIC_LIBMALI} ${D}${libdir}/${MONOLITHIC_LIBMALI}
 
-    if ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'false', 'true', d)}; then
+    if [ "${USE_FB}" = "yes" ]; then
+        install -Dm 0644 ${S}/${PV}/${ARCH_PLATFORM_DIR}/fbdev/${MONOLITHIC_LIBMALI} ${D}${libdir}/fbdev/${MONOLITHIC_LIBMALI}
+        if [ "${MALI_BACKEND_DEFAULT}" = "fbdev" ]; then
+            ln -snf fbdev/${MONOLITHIC_LIBMALI} ${D}${libdir}/${MONOLITHIC_LIBMALI}
+        fi
+    fi
+    if [ "${USE_X11}" = "yes" ]; then
+        install -Dm 0644 ${S}/${PV}/${ARCH_PLATFORM_DIR}/x11/${MONOLITHIC_LIBMALI} ${D}${libdir}/x11/${MONOLITHIC_LIBMALI}
+        if [ "${MALI_BACKEND_DEFAULT}" = "x11" ]; then
+            ln -snf x11/${MONOLITHIC_LIBMALI} ${D}${libdir}/${MONOLITHIC_LIBMALI}
+        fi
+    else
+        # We cant rely on the fact that all apps will use pkgconfig correctly
         sed -i -e 's/^#if defined(MESA_EGL_NO_X11_HEADERS)$/#if (1)/' ${D}${includedir}/EGL/eglplatform.h
     fi
+    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 -Dm 0644 ${S}/${PV}/${ARCH_PLATFORM_DIR}/wayland/${MONOLITHIC_LIBMALI} ${D}${libdir}/wayland/${MONOLITHIC_LIBMALI}
+        if [ "${MALI_BACKEND_DEFAULT}" = "wayland" ]; then
+            ln -snf wayland/${MONOLITHIC_LIBMALI} ${D}${libdir}/${MONOLITHIC_LIBMALI}
+        fi
+    fi
+}
+
+
+# We need separate packages to provide multiple alternatives, at this point we install
+# everything on the default one but that can be split if necessary
+PACKAGES += "${PN}-x11 ${PN}-fbdev ${PN}-wayland ${PN}-headless"
+
+# This is default/common for all alternatives
+ALTERNATIVE_LINK_NAME[libmali-xlnx] = "${libdir}/${MONOLITHIC_LIBMALI}"
+
+
+# Declare alternatives and corresponding library location
+ALTERNATIVE_${PN}-x11 = "libmali-xlnx"
+ALTERNATIVE_TARGET_libmali-xlnx-x11[libmali-xlnx] = "${libdir}/x11/${MONOLITHIC_LIBMALI}"
+
+ALTERNATIVE_${PN}-fbdev = "libmali-xlnx"
+ALTERNATIVE_TARGET_libmali-xlnx-fbdev[libmali-xlnx] = "${libdir}/fbdev/${MONOLITHIC_LIBMALI}"
+
+ALTERNATIVE_${PN}-wayland = "libmali-xlnx"
+ALTERNATIVE_TARGET_libmali-xlnx-wayland[libmali-xlnx] = "${libdir}/wayland/${MONOLITHIC_LIBMALI}"
+
+ALTERNATIVE_${PN}-headless = "libmali-xlnx"
+ALTERNATIVE_TARGET_libmali-xlnx-headless[libmali-xlnx] = "${libdir}/headless/${MONOLITHIC_LIBMALI}"
+
+# Set priorities according to what we prveiously defined
+ALTERNATIVE_PRIORITY_libmali-xlnx-x11[libmali-xlnx] = "${@bb.utils.contains("MALI_BACKEND_DEFAULT", "x11", "20", "10", d)}"
+ALTERNATIVE_PRIORITY_libmali-xlnx-fbdev[libmali-xlnx] = "${@bb.utils.contains("MALI_BACKEND_DEFAULT", "fbdev", "20", "10", d)}"
+ALTERNATIVE_PRIORITY_libmali-xlnx-wayland[libmali-xlnx] = "${@bb.utils.contains("MALI_BACKEND_DEFAULT", "wayland", "20", "10", d)}"
+
+# If misconfigured, fallback to headless
+ALTERNATIVE_PRIORITY_libmali-xlnx-headless[libmali-xlnx] = "${@bb.utils.contains("MALI_BACKEND_DEFAULT", "headless", "20", "15", d)}"
+
+
+# Package gets renamed on the debian class, but we want to keep -xlnx
+DEBIAN_NOAUTONAME_libmali-xlnx = "1"
+
+# Update alternatives will actually have separate postinst scripts (one for each package)
+# This wont work for us, so we create a common postinst script and we pass that as the general
+# libmali-xlnx postinst script, but we defer execution to run on first boot (pkg_postinst_ontarget).
+# This will avoid ldconfig removing the symbolic links when creating the root filesystem.
+python populate_packages_updatealternatives_append () {
+    # We need to remove the 'fake' libmali-xlnx before creating any links
+    libdir = d.getVar('libdir')
+    common_postinst = "#!/bin/sh\nrm " + libdir + "/${MONOLITHIC_LIBMALI}\n"
+    for pkg in (d.getVar('PACKAGES') or "").split():
+        # Not all packages provide an alternative (e.g. ${PN}-lic)
+        postinst = d.getVar('pkg_postinst_%s' % pkg)
+        if postinst:
+            old_postinst = postinst
+            new_postinst = postinst.replace('#!/bin/sh','')
+            common_postinst += new_postinst
+    d.setVar('pkg_postinst_ontarget_%s' % 'libmali-xlnx', common_postinst)
 }
 
 
@@ -130,3 +185,17 @@
 # explicitly depends upon them.
 EXCLUDE_FROM_WORLD = "1"
 FILES_${PN} += "${libdir}/*"
+
+do_package_append() {
+
+    shlibswork_dir = d.getVar('SHLIBSWORKDIR')
+    pkg_filename = d.getVar('PN') + ".list"
+    shlibs_file = os.path.join(shlibswork_dir, pkg_filename)
+    lines = ""
+    with open(shlibs_file, "r") as f:
+        lines = f.readlines()
+    with open(shlibs_file, "w") as f:
+        for line in lines:
+            if d.getVar('MALI_BACKEND_DEFAULT') in line.strip("\n"):
+                 f.write(line)
+}
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-graphics/libglu/libglu_%.bbappend b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/libglu/libglu_%.bbappend
new file mode 100644
index 0000000..5692465
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/libglu/libglu_%.bbappend
@@ -0,0 +1 @@
+DEPENDS_append_zynqmp =  " virtual/libgles2"
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali.bb b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali.bb
index fe2fbdc..747ec72 100644
--- a/meta-xilinx/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali.bb
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali.bb
@@ -3,10 +3,10 @@
 
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = " \
-	file://linux/license/gpl/mali_kernel_license.h;md5=436192a2c5cfd47df0ad1987dffc4ae6 \
+	file://linux/license/gpl/mali_kernel_license.h;md5=f5af2d61f4c1eb262cb6a557aaa1070a \
 	"
 
-PV = "r8p0-01rel0"
+PV = "r9p0-01rel0"
 
 SRC_URI = " \
 	https://developer.arm.com/-/media/Files/downloads/mali-drivers/kernel/mali-utgard-gpu/DX910-SW-99002-${PV}.tgz \
@@ -16,21 +16,23 @@
 	file://0004-staging-mali-r8p0-01rel0-Don-t-include-mali_read_phy.patch \
 	file://0005-linux-mali_kernel_linux.c-Handle-clock-when-probed-a.patch \
 	file://0006-arm.c-global-variable-dma_ops-is-removed-from-the-ke.patch \
-	file://0007-Replace-__GFP_REPEAT-by-__GFP_RETRY_MAYFAIL.patch \
-	file://0008-mali_internal_sync-Rename-wait_queue_t-with-wait_que.patch \
-	file://0009-mali_memory_swap_alloc.c-Rename-global_page_state-wi.patch \
 	file://0010-common-mali_pm.c-Add-PM-runtime-barrier-after-removi.patch \
 	file://0011-linux-mali_kernel_linux.c-Enable-disable-clock-for-r.patch\
 	file://0012-linux-mali_memory_os_alloc-Remove-__GFP_COLD.patch\
 	file://0013-linux-mali_memory_secure-Add-header-file-dma-direct..patch\
 	file://0014-linux-mali_-timer-Get-rid-of-init_timer.patch\
+	file://0015-fix-driver-failed-to-check-map-error.patch \
+	file://0016-mali_memory_secure-Kernel-5.0-onwards-access_ok-API-.patch \
+	file://0017-Support-for-vm_insert_pfn-deprecated-from-kernel-4.2.patch \
+	file://0018-Change-return-type-to-vm_fault_t-for-fault-handler.patch \
+	file://0019-get_monotonic_boottime-ts-deprecated-from-kernel-4.2.patch \
 	"
-SRC_URI[md5sum] = "8f04ae86957fd56197ad5a9d017b84ff"
-SRC_URI[sha256sum] = "bfd14fa3f75a71d4ba313534e651ca1c58dc354e882c0b39867e335882a06350"
+SRC_URI[md5sum] = "85ea110dd6675c70b7d01af87ec9633c"
+SRC_URI[sha256sum] = "7a67127341d17640c1fff5dad80258fb2a37c8a2121b81525fe2327e4532ce2b"
 
 inherit module
 
-do_make_scripts[depends] += "virtual/kernel:do_unpack"
+PARALLEL_MAKE = "-j 1"
 
 S = "${WORKDIR}/DX910-SW-99002-${PV}/driver/src/devicedrv/mali"
 
@@ -38,7 +40,7 @@
 COMPATIBLE_MACHINE_zynqmpeg = "zynqmpeg"
 COMPATIBLE_MACHINE_zynqmpev = "zynqmpev"
 
-PACKAGE_ARCH = "${SOC_FAMILY}${SOC_VARIANT}"
+PACKAGE_ARCH = "${SOC_VARIANT_ARCH}"
 
 EXTRA_OEMAKE = 'KDIR="${STAGING_KERNEL_DIR}" \
 		ARCH="${ARCH}" \
@@ -47,6 +49,5 @@
 		USING_DT=1 \
 		MALI_SHARED_INTERRUPTS=1 \
 		CROSS_COMPILE="${TARGET_PREFIX}" \
-		O=${STAGING_KERNEL_BUILDDIR} \
 		MALI_QUIET=1 \
 		'
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0001-Change-Makefile-to-be-compatible-with-Yocto.patch b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0001-Change-Makefile-to-be-compatible-with-Yocto.patch
index e5eeb19..3c82f60 100644
--- a/meta-xilinx/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0001-Change-Makefile-to-be-compatible-with-Yocto.patch
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0001-Change-Makefile-to-be-compatible-with-Yocto.patch
@@ -21,9 +21,9 @@
  
 -include $(KDIR)/.config
 +ifeq ($(O),)
-+	include $(KDIR)/.config
++	-include $(KDIR)/.config
 +else
-+	include $(O)/.config
++	-include $(O)/.config
 +endif
  
  ifeq ($(ARCH), arm)
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0007-Replace-__GFP_REPEAT-by-__GFP_RETRY_MAYFAIL.patch b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0007-Replace-__GFP_REPEAT-by-__GFP_RETRY_MAYFAIL.patch
deleted file mode 100644
index 6e5f544..0000000
--- a/meta-xilinx/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0007-Replace-__GFP_REPEAT-by-__GFP_RETRY_MAYFAIL.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From a8190cd3b346633016d1c0096ef73e0e1ceef438 Mon Sep 17 00:00:00 2001
-From: Madhurkiran Harikrishnan <madhurki@xilinx.com>
-Date: Tue, 5 Dec 2017 09:25:15 -0800
-Subject: [PATCH 7/9] Replace __GFP_REPEAT by __GFP_RETRY_MAYFAIL
-
-Refer kernel patch dcda9b04713c3f6ff0875652924844fae28286ea
-which replaces with a useful semantic
-
-Signed-off-by: Madhurkiran Harikrishnan <madhurki@xilinx.com>
-Upstream-Status: Pending
----
- driver/src/devicedrv/mali/linux/mali_memory_os_alloc.c  | 4 ++++
- driver/src/devicedrv/mali/linux/mali_osk_notification.c | 7 ++++++-
- 2 files changed, 10 insertions(+), 1 deletion(-)
-
-diff --git a/driver/src/devicedrv/mali/linux/mali_memory_os_alloc.c b/driver/src/devicedrv/mali/linux/mali_memory_os_alloc.c
-index 5fe1270..1602371 100644
---- linux/mali_memory_os_alloc.c
-+++ b/linux/mali_memory_os_alloc.c
-@@ -202,7 +202,11 @@ int mali_mem_os_alloc_pages(mali_mem_os_mem *os_mem, u32 size)
- 	/* Allocate new pages, if needed. */
- 	for (i = 0; i < remaining; i++) {
- 		dma_addr_t dma_addr;
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 0)
-+		gfp_t flags = __GFP_ZERO | __GFP_RETRY_MAYFAIL | __GFP_NOWARN | __GFP_COLD;
-+#else
- 		gfp_t flags = __GFP_ZERO | __GFP_REPEAT | __GFP_NOWARN | __GFP_COLD;
-+#endif
- 		int err;
- 
- #if defined(CONFIG_ARM) && !defined(CONFIG_ARM_LPAE)
-diff --git a/driver/src/devicedrv/mali/linux/mali_osk_notification.c b/driver/src/devicedrv/mali/linux/mali_osk_notification.c
-index b22fe68..d0c302a 100644
---- linux/mali_osk_notification.c
-+++ b/linux/mali_osk_notification.c
-@@ -55,9 +55,14 @@ _mali_osk_notification_t *_mali_osk_notification_create(u32 type, u32 size)
- {
- 	/* OPT Recycling of notification objects */
- 	_mali_osk_notification_wrapper_t *notification;
--
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 0)
-+	notification = (_mali_osk_notification_wrapper_t *)kmalloc(sizeof(_mali_osk_notification_wrapper_t) + size,
-+			GFP_KERNEL | __GFP_HIGH | __GFP_RETRY_MAYFAIL);
-+#else
- 	notification = (_mali_osk_notification_wrapper_t *)kmalloc(sizeof(_mali_osk_notification_wrapper_t) + size,
- 			GFP_KERNEL | __GFP_HIGH | __GFP_REPEAT);
-+#endif
-+
- 	if (NULL == notification) {
- 		MALI_DEBUG_PRINT(1, ("Failed to create a notification object\n"));
- 		return NULL;
--- 
-2.7.4
-
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0008-mali_internal_sync-Rename-wait_queue_t-with-wait_que.patch b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0008-mali_internal_sync-Rename-wait_queue_t-with-wait_que.patch
deleted file mode 100644
index 592fea0..0000000
--- a/meta-xilinx/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0008-mali_internal_sync-Rename-wait_queue_t-with-wait_que.patch
+++ /dev/null
@@ -1,108 +0,0 @@
-From 717d7899f6d8048c6b88b3c52e8a9c8afbddbb65 Mon Sep 17 00:00:00 2001
-From: Madhurkiran Harikrishnan <madhurki@xilinx.com>
-Date: Tue, 5 Dec 2017 09:48:42 -0800
-Subject: [PATCH 8/9] mali_internal_sync: Rename wait_queue_t with
- wait_queue_entry_t
-
-Refer kernel patch ac6424b981bce1c4bc55675c6ce11bfe1bbfa64f
-and 2055da which replaces the struct name
-
-Signed-off-by: Madhurkiran Harikrishnan <madhurki@xilinx.com>
-Upstream-Status: Pending
----
- .../src/devicedrv/mali/linux/mali_internal_sync.c  | 27 ++++++++++++++++++++--
- .../src/devicedrv/mali/linux/mali_internal_sync.h  |  4 ++++
- 2 files changed, 29 insertions(+), 2 deletions(-)
-
-diff --git a/driver/src/devicedrv/mali/linux/mali_internal_sync.c b/driver/src/devicedrv/mali/linux/mali_internal_sync.c
-index 1f2574e..957a056 100644
---- linux/mali_internal_sync.c
-+++ b/linux/mali_internal_sync.c
-@@ -121,8 +121,13 @@ static void mali_internal_sync_fence_add_fence(struct mali_internal_sync_fence *
- }
- #endif
- 
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 13, 0)
-+static int mali_internal_sync_fence_wake_up_wq(wait_queue_entry_t *curr, unsigned mode,
-+		int wake_flags, void *key)
-+#else
- static int mali_internal_sync_fence_wake_up_wq(wait_queue_t *curr, unsigned mode,
- 		int wake_flags, void *key)
-+#endif
- {
- 	struct mali_internal_sync_fence_waiter *wait;
- 	MALI_IGNORE(mode);
-@@ -130,8 +135,12 @@ static int mali_internal_sync_fence_wake_up_wq(wait_queue_t *curr, unsigned mode
- 	MALI_IGNORE(key);
- 
- 	wait = container_of(curr, struct mali_internal_sync_fence_waiter, work);
--	list_del_init(&wait->work.task_list);
- 
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 13, 0)
-+	list_del_init(&wait->work.entry);
-+#else
-+	list_del_init(&wait->work.task_list);
-+#endif
- 	wait->callback(wait->work.private, wait);
- 	return 1;
- }
-@@ -498,7 +507,11 @@ void mali_internal_sync_fence_waiter_init(struct mali_internal_sync_fence_waiter
- 	MALI_DEBUG_ASSERT_POINTER(waiter);
- 	MALI_DEBUG_ASSERT_POINTER(callback);
- 
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 13, 0)
-+	INIT_LIST_HEAD(&waiter->work.entry);
-+#else
- 	INIT_LIST_HEAD(&waiter->work.task_list);
-+#endif
- 	waiter->callback = callback;
- }
- 
-@@ -560,8 +573,13 @@ int mali_internal_sync_fence_wait_async(struct mali_internal_sync_fence *sync_fe
- 	spin_lock_irqsave(&sync_fence->wq.lock, flags);
- 	err =  sync_fence->fence->ops->signaled(sync_fence->fence);
- 
--	if (0 == err)
-+	if (0 == err){
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 13, 0)
-+		__add_wait_queue_entry_tail(&sync_fence->wq, &waiter->work);
-+#else
- 		__add_wait_queue_tail(&sync_fence->wq, &waiter->work);
-+#endif
-+	}
- 	spin_unlock_irqrestore(&sync_fence->wq.lock, flags);
- 
- 	return err;
-@@ -578,8 +596,13 @@ int mali_internal_sync_fence_cancel_async(struct mali_internal_sync_fence *sync_
- 	MALI_DEBUG_ASSERT_POINTER(waiter);
- 
- 	spin_lock_irqsave(&sync_fence->wq.lock, flags);
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 13, 0)
-+	if (!list_empty(&waiter->work.entry))
-+		list_del_init(&waiter->work.entry);
-+#else
- 	if (!list_empty(&waiter->work.task_list))
- 		list_del_init(&waiter->work.task_list);
-+#endif
- 	else
- 		ret = -ENOENT;
- 	spin_unlock_irqrestore(&sync_fence->wq.lock, flags);
-diff --git a/driver/src/devicedrv/mali/linux/mali_internal_sync.h b/driver/src/devicedrv/mali/linux/mali_internal_sync.h
-index a5655c7..70f29f9 100644
---- linux/mali_internal_sync.h
-+++ b/linux/mali_internal_sync.h
-@@ -112,7 +112,11 @@ typedef void (*mali_internal_sync_callback_t)(struct mali_internal_sync_fence *s
- 		struct mali_internal_sync_fence_waiter *waiter);
- 
- struct mali_internal_sync_fence_waiter {
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 13, 0)
-+	wait_queue_entry_t work;
-+#else
- 	wait_queue_t work;
-+#endif
- 	mali_internal_sync_callback_t callback;
- #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0)
- #if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
--- 
-2.7.4
-
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0009-mali_memory_swap_alloc.c-Rename-global_page_state-wi.patch b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0009-mali_memory_swap_alloc.c-Rename-global_page_state-wi.patch
deleted file mode 100644
index 3445512..0000000
--- a/meta-xilinx/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0009-mali_memory_swap_alloc.c-Rename-global_page_state-wi.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 478de18bf513ecad419d25981e7b66c78126752c Mon Sep 17 00:00:00 2001
-From: Madhurkiran Harikrishnan <madhurki@xilinx.com>
-Date: Tue, 5 Dec 2017 09:58:36 -0800
-Subject: [PATCH 9/9] mali_memory_swap_alloc.c: Rename global_page_state with
- global_zone_page_state
-
-Refer Kernel commit c41f012ade0b95b0a6e25c7150673e0554736165
-Which simply renames without any functional changes
-
-Signed-off-by: Madhurkiran Harikrishnan <madhurki@xilinx.com>
-Upstream-Status: Pending
----
- driver/src/devicedrv/mali/linux/mali_memory_swap_alloc.c | 10 +++++++++-
- 1 file changed, 9 insertions(+), 1 deletion(-)
-
-diff --git a/driver/src/devicedrv/mali/linux/mali_memory_swap_alloc.c b/driver/src/devicedrv/mali/linux/mali_memory_swap_alloc.c
-index a54faca..e122b4c 100644
---- linux/mali_memory_swap_alloc.c
-+++ b/linux/mali_memory_swap_alloc.c
-@@ -248,7 +248,11 @@ static void mali_mem_swap_swapped_bkend_pool_shrink(_mali_mem_swap_pool_shrink_t
- 	}
- 
- 	/* Get system free pages number. */
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 0)
-+	system_free_size = global_zone_page_state(NR_FREE_PAGES) * PAGE_SIZE;
-+#else
- 	system_free_size = global_page_state(NR_FREE_PAGES) * PAGE_SIZE;
-+#endif
- 	last_gpu_utilization = _mali_ukk_utilization_gp_pp();
- 
- 	if ((last_gpu_utilization < gpu_utilization_threshold_value)
-@@ -575,8 +579,12 @@ int mali_mem_swap_alloc_pages(mali_mem_swap *swap_mem, u32 size, u32 *bkend_idx)
- 
- 		list_add_tail(&m_page->list, &swap_mem->pages);
- 	}
--
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 0)
-+	system_free_size = global_zone_page_state(NR_FREE_PAGES) * PAGE_SIZE;
-+#else
- 	system_free_size = global_page_state(NR_FREE_PAGES) * PAGE_SIZE;
-+#endif
-+
- 
- 	if ((system_free_size < mali_mem_swap_out_threshold_value)
- 	    && (mem_backend_swapped_pool_size > (mali_mem_swap_out_threshold_value >> 2))
--- 
-2.7.4
-
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0015-fix-driver-failed-to-check-map-error.patch b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0015-fix-driver-failed-to-check-map-error.patch
new file mode 100644
index 0000000..5363c37
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0015-fix-driver-failed-to-check-map-error.patch
@@ -0,0 +1,17 @@
+Index: mali/linux/mali_memory_os_alloc.c
+===================================================================
+--- mali.orig/linux/mali_memory_os_alloc.c
++++ mali/linux/mali_memory_os_alloc.c
+@@ -239,8 +239,10 @@ int mali_mem_os_alloc_pages(mali_mem_os_
+ 		/* Ensure page is flushed from CPU caches. */
+ 		dma_addr = dma_map_page(&mali_platform_device->dev, new_page,
+ 					0, _MALI_OSK_MALI_PAGE_SIZE, DMA_BIDIRECTIONAL);
+-		dma_unmap_page(&mali_platform_device->dev, dma_addr,
+-			       _MALI_OSK_MALI_PAGE_SIZE, DMA_BIDIRECTIONAL);
++		err = dma_mapping_error(&mali_platform_device->dev, dma_addr);
++		if (likely(!err))
++			dma_unmap_page(&mali_platform_device->dev, dma_addr,
++				       _MALI_OSK_MALI_PAGE_SIZE, DMA_BIDIRECTIONAL);
+ 		dma_addr = dma_map_page(&mali_platform_device->dev, new_page,
+ 					0, _MALI_OSK_MALI_PAGE_SIZE, DMA_BIDIRECTIONAL);
+ 
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0016-mali_memory_secure-Kernel-5.0-onwards-access_ok-API-.patch b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0016-mali_memory_secure-Kernel-5.0-onwards-access_ok-API-.patch
new file mode 100644
index 0000000..dc8bbeb
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0016-mali_memory_secure-Kernel-5.0-onwards-access_ok-API-.patch
@@ -0,0 +1,47 @@
+From 8cf1dd43f3f25cb4afb84dfc3b0e7c02bc8f7f0c Mon Sep 17 00:00:00 2001
+From: Madhurkiran Harikrishnan <madhurkiran.harikrishnan@xilinx.com>
+Date: Mon, 24 Feb 2020 18:19:37 -0800
+Subject: [LINUX][rel-v2020.1][PATCH v1 1/3] mali_memory_secure: Kernel 5.0
+ onwards 'access_ok' API does not take 'type' as input parameter
+
+'access_ok' no longer needs 'type' as input paramter from kernel 5.0
+onwards.
+
+Signed-off-by: Madhurkiran Harikrishnan <madhurkiran.harikrishnan@xilinx.com>
+---
+ driver/src/devicedrv/mali/linux/mali_ukk_mem.c | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/driver/src/devicedrv/mali/linux/mali_ukk_mem.c b/driver/src/devicedrv/mali/linux/mali_ukk_mem.c
+index 4ec57dc..270bb6d 100644
+--- linux/mali_ukk_mem.c
++++ b/linux/mali_ukk_mem.c
+@@ -207,8 +207,13 @@ int mem_write_safe_wrapper(struct mali_session_data *session_data, _mali_uk_mem_
+ 	kargs.ctx = (uintptr_t)session_data;
+ 
+ 	/* Check if we can access the buffers */
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 0, 0)
++	if (!access_ok((const void __user *)kargs.dest, kargs.size)
++	    || !access_ok((const void __user *)kargs.src, kargs.size)) {
++#else
+ 	if (!access_ok(VERIFY_WRITE, kargs.dest, kargs.size)
+ 	    || !access_ok(VERIFY_READ, kargs.src, kargs.size)) {
++#endif
+ 		return -EINVAL;
+ 	}
+ 
+@@ -266,7 +271,11 @@ int mem_dump_mmu_page_table_wrapper(struct mali_session_data *session_data, _mal
+ 		goto err_exit;
+ 
+ 	user_buffer = (void __user *)(uintptr_t)kargs.buffer;
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 0, 0)
++	if (!access_ok(user_buffer, kargs.size))
++#else
+ 	if (!access_ok(VERIFY_WRITE, user_buffer, kargs.size))
++#endif
+ 		goto err_exit;
+ 
+ 	/* allocate temporary buffer (kernel side) to store mmu page table info */
+-- 
+2.7.4
+
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0017-Support-for-vm_insert_pfn-deprecated-from-kernel-4.2.patch b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0017-Support-for-vm_insert_pfn-deprecated-from-kernel-4.2.patch
new file mode 100644
index 0000000..9c4bbee
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0017-Support-for-vm_insert_pfn-deprecated-from-kernel-4.2.patch
@@ -0,0 +1,146 @@
+From 953cab73b8bc487da330aa454abd7f8c7466737e Mon Sep 17 00:00:00 2001
+From: Madhurkiran Harikrishnan <madhurkiran.harikrishnan@xilinx.com>
+Date: Mon, 24 Feb 2020 18:32:16 -0800
+Subject: [LINUX][rel-v2020.1][PATCH v1 2/3] Support for vm_insert_pfn
+ deprecated from kernel 4.20
+
+From kernel 4.20 onwards, support for vm_insert_pfn is deprecated.
+Hence, replace the same with vmf_insert_pfn.
+
+Signed-off-by: Madhurkiran Harikrishnan <madhurkiran.harikrishnan@xilinx.com>
+---
+ .../devicedrv/mali/linux/mali_memory_block_alloc.c   |  6 +++++-
+ driver/src/devicedrv/mali/linux/mali_memory_cow.c    | 14 ++++++++++++--
+ .../src/devicedrv/mali/linux/mali_memory_os_alloc.c  | 20 +++++++++++++++++---
+ driver/src/devicedrv/mali/linux/mali_memory_secure.c |  7 ++++++-
+ 4 files changed, 40 insertions(+), 7 deletions(-)
+
+diff --git a/driver/src/devicedrv/mali/linux/mali_memory_block_alloc.c b/driver/src/devicedrv/mali/linux/mali_memory_block_alloc.c
+index 0c5b6c3..e528699 100644
+--- linux/mali_memory_block_alloc.c
++++ b/linux/mali_memory_block_alloc.c
+@@ -309,9 +309,13 @@ int mali_mem_block_cpu_map(mali_mem_backend *mem_bkend, struct vm_area_struct *v
+ 
+ 	list_for_each_entry(m_page, &block_mem->pfns, list) {
+ 		MALI_DEBUG_ASSERT(m_page->type == MALI_PAGE_NODE_BLOCK);
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 20, 0)
++		ret = vmf_insert_pfn(vma, addr, _mali_page_node_get_pfn(m_page));
++		if (unlikely(VM_FAULT_ERROR & ret)) {
++#else
+ 		ret = vm_insert_pfn(vma, addr, _mali_page_node_get_pfn(m_page));
+-
+ 		if (unlikely(0 != ret)) {
++#endif
+ 			return -EFAULT;
+ 		}
+ 		addr += _MALI_OSK_MALI_PAGE_SIZE;
+diff --git a/driver/src/devicedrv/mali/linux/mali_memory_cow.c b/driver/src/devicedrv/mali/linux/mali_memory_cow.c
+index f1d44fe..1dae1d6 100644
+--- linux/mali_memory_cow.c
++++ b/linux/mali_memory_cow.c
+@@ -532,9 +532,14 @@ int mali_mem_cow_cpu_map(mali_mem_backend *mem_bkend, struct vm_area_struct *vma
+ 		 * flush which makes it way slower than remap_pfn_range or vm_insert_pfn.

+ 		ret = vm_insert_page(vma, addr, page);

+ 		*/

++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 20, 0)
++		ret = vmf_insert_pfn(vma, addr, _mali_page_node_get_pfn(m_page));

++		if (unlikely(VM_FAULT_ERROR & ret)) {
++#else
+ 		ret = vm_insert_pfn(vma, addr, _mali_page_node_get_pfn(m_page));

+-

+ 		if (unlikely(0 != ret)) {

++#endif
++

+ 			return ret;

+ 		}

+ 		addr += _MALI_OSK_MALI_PAGE_SIZE;

+@@ -569,9 +574,14 @@ _mali_osk_errcode_t mali_mem_cow_cpu_map_pages_locked(mali_mem_backend *mem_bken
+ 

+ 	list_for_each_entry(m_page, &cow->pages, list) {

+ 		if ((count >= offset) && (count < offset + num)) {

++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 20, 0)
++			ret = vmf_insert_pfn(vma, vaddr, _mali_page_node_get_pfn(m_page));

++			if (unlikely(VM_FAULT_ERROR & ret)) {
++#else
+ 			ret = vm_insert_pfn(vma, vaddr, _mali_page_node_get_pfn(m_page));

+-

+ 			if (unlikely(0 != ret)) {

++#endif
++

+ 				if (count == offset) {

+ 					return _MALI_OSK_ERR_FAULT;

+ 				} else {

+diff --git a/driver/src/devicedrv/mali/linux/mali_memory_os_alloc.c b/driver/src/devicedrv/mali/linux/mali_memory_os_alloc.c
+index 3fb6f05..7de3920 100644
+--- linux/mali_memory_os_alloc.c
++++ b/linux/mali_memory_os_alloc.c
+@@ -378,9 +378,14 @@ int mali_mem_os_cpu_map(mali_mem_backend *mem_bkend, struct vm_area_struct *vma)
+ 		ret = vm_insert_page(vma, addr, page);
+ 		*/
+ 		page = m_page->page;
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 20, 0)
++		ret = vmf_insert_pfn(vma, addr, page_to_pfn(page));
++		if (unlikely(VM_FAULT_ERROR & ret)) {
++#else
+ 		ret = vm_insert_pfn(vma, addr, page_to_pfn(page));
+-
+ 		if (unlikely(0 != ret)) {
++#endif
++
+ 			return -EFAULT;
+ 		}
+ 		addr += _MALI_OSK_MALI_PAGE_SIZE;
+@@ -416,9 +421,13 @@ _mali_osk_errcode_t mali_mem_os_resize_cpu_map_locked(mali_mem_backend *mem_bken
+ 
+ 			vm_end -= _MALI_OSK_MALI_PAGE_SIZE;
+ 			if (mapping_page_num > 0) {
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 20, 0)
++				ret = vmf_insert_pfn(vma, vm_end, page_to_pfn(m_page->page));
++				if (unlikely(VM_FAULT_ERROR & ret)) {
++#else
+ 				ret = vm_insert_pfn(vma, vm_end, page_to_pfn(m_page->page));
+-
+ 				if (unlikely(0 != ret)) {
++#endif
+ 					/*will return -EBUSY If the page has already been mapped into table, but it's OK*/
+ 					if (-EBUSY == ret) {
+ 						break;
+@@ -439,9 +448,14 @@ _mali_osk_errcode_t mali_mem_os_resize_cpu_map_locked(mali_mem_backend *mem_bken
+ 		list_for_each_entry(m_page, &os_mem->pages, list) {
+ 			if (count >= offset) {
+ 
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 20, 0)
++				ret = vmf_insert_pfn(vma, vstart, page_to_pfn(m_page->page));
++				if (unlikely(VM_FAULT_ERROR & ret)) {
++#else
+ 				ret = vm_insert_pfn(vma, vstart, page_to_pfn(m_page->page));
+-
+ 				if (unlikely(0 != ret)) {
++#endif
++
+ 					/*will return -EBUSY If the page has already been mapped into table, but it's OK*/
+ 					if (-EBUSY == ret) {
+ 						break;
+diff --git a/driver/src/devicedrv/mali/linux/mali_memory_secure.c b/driver/src/devicedrv/mali/linux/mali_memory_secure.c
+index 5546304..cebd1c8 100644
+--- linux/mali_memory_secure.c
++++ b/linux/mali_memory_secure.c
+@@ -132,9 +132,14 @@ int mali_mem_secure_cpu_map(mali_mem_backend *mem_bkend, struct vm_area_struct *
+ 		MALI_DEBUG_ASSERT(0 == size % _MALI_OSK_MALI_PAGE_SIZE);
+ 
+ 		for (j = 0; j < size / _MALI_OSK_MALI_PAGE_SIZE; j++) {
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 20, 0)
++			ret = vmf_insert_pfn(vma, addr, PFN_DOWN(phys));
++			if (unlikely(VM_FAULT_ERROR & ret)) {
++#else
+ 			ret = vm_insert_pfn(vma, addr, PFN_DOWN(phys));
+-
+ 			if (unlikely(0 != ret)) {
++#endif
++
+ 				return -EFAULT;
+ 			}
+ 			addr += _MALI_OSK_MALI_PAGE_SIZE;
+-- 
+2.7.4
+
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0018-Change-return-type-to-vm_fault_t-for-fault-handler.patch b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0018-Change-return-type-to-vm_fault_t-for-fault-handler.patch
new file mode 100644
index 0000000..9797db6
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0018-Change-return-type-to-vm_fault_t-for-fault-handler.patch
@@ -0,0 +1,32 @@
+From ad5c569f0cc40698699fc2f2c1db3ceb9f8b8f35 Mon Sep 17 00:00:00 2001
+From: Madhurkiran Harikrishnan <madhurkiran.harikrishnan@xilinx.com>
+Date: Tue, 25 Feb 2020 11:36:01 -0800
+Subject: [LINUX][rel-v2020.1][PATCH v1 3/3] Change return type to vm_fault_t
+ for fault handler
+
+From kernel 4.17 onwards the return type of fault handler for
+vm_operations is of type 'vm_fault_t'.
+
+Signed-off-by: Madhurkiran Harikrishnan <madhurkiran.harikrishnan@xilinx.com>
+---
+ driver/src/devicedrv/mali/linux/mali_memory.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/driver/src/devicedrv/mali/linux/mali_memory.c b/driver/src/devicedrv/mali/linux/mali_memory.c
+index c0f0982..2b2b209 100644
+--- linux/mali_memory.c
++++ b/linux/mali_memory.c
+@@ -70,7 +70,9 @@ static void mali_mem_vma_close(struct vm_area_struct *vma)
+ 	}
+ }
+ 
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 17, 0)
++static vm_fault_t  mali_mem_vma_fault(struct vm_fault *vmf)
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
+ static int mali_mem_vma_fault(struct vm_fault *vmf)
+ #else
+ static int mali_mem_vma_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
+-- 
+2.7.4
+
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0019-get_monotonic_boottime-ts-deprecated-from-kernel-4.2.patch b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0019-get_monotonic_boottime-ts-deprecated-from-kernel-4.2.patch
new file mode 100644
index 0000000..154bb67
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0019-get_monotonic_boottime-ts-deprecated-from-kernel-4.2.patch
@@ -0,0 +1,36 @@
+From c6a6b39cea3fdfd91cae7f2a4ef6f36d2c55fdd6 Mon Sep 17 00:00:00 2001
+From: Madhurkiran Harikrishnan <madhurkiran.harikrishnan@xilinx.com>
+Date: Tue, 25 Feb 2020 15:17:17 -0800
+Subject: [LINUX][rel-v2020.1][PATCH v1] "get_monotonic_boottime(&ts)"
+ deprecated from kernel 4.20 onwards
+
+As "get_monotonic_boottime(&ts)" is deprecated, replace the same with
+"ktime_get_boottime_ts64(&ts)". Refer kernel commit ID
+976516404ff3fab2a8caa8bd6f5efc1437fed0b8
+
+Signed-off-by: Madhurkiran Harikrishnan <madhurkiran.harikrishnan@xilinx.com>
+---
+ driver/src/devicedrv/mali/linux/mali_osk_time.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/driver/src/devicedrv/mali/linux/mali_osk_time.c b/driver/src/devicedrv/mali/linux/mali_osk_time.c
+index 03046a5..bfcbf7f 100644
+--- linux/mali_osk_time.c
++++ b/linux/mali_osk_time.c
+@@ -53,7 +53,13 @@ u64 _mali_osk_time_get_ns(void)
+ 
+ u64 _mali_osk_boot_time_get_ns(void)
+ {
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 20, 0)
++	struct timespec64 tsval;
++	ktime_get_boottime_ts64(&tsval);
++	return (u64)timespec64_to_ns(&tsval);
++#else
+ 	struct timespec tsval;
+ 	get_monotonic_boottime(&tsval);
+ 	return (u64)timespec_to_ns(&tsval);
++#endif
+ }
+-- 
+2.7.4
+
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-graphics/mesa/mesa-gl_%.bbappend b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/mesa/mesa-gl_%.bbappend
new file mode 100644
index 0000000..bcfefa1
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/mesa/mesa-gl_%.bbappend
@@ -0,0 +1,3 @@
+do_install_append_zynqmp () {
+    rm -rf ${D}${includedir}/KHR/*
+}
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-graphics/weston/files/0001-gl-renderer.c-Use-gr-egl_config-to-create-pbuffer-su.patch b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/weston/files/0001-gl-renderer.c-Use-gr-egl_config-to-create-pbuffer-su.patch
new file mode 100644
index 0000000..d7d411f
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/weston/files/0001-gl-renderer.c-Use-gr-egl_config-to-create-pbuffer-su.patch
@@ -0,0 +1,84 @@
+From 7cc76d50bddd6ff1eb5fb19712415f385f5d3f49 Mon Sep 17 00:00:00 2001
+From: Madhurkiran Harikrishnan <madhurkiran.harikrishnan@xilinx.com>
+Date: Mon, 3 Feb 2020 14:26:21 -0800
+Subject: [PATCH] gl-renderer.c: Use gr->egl_config to create pbuffer surface
+
+The original implementation always chose first egl config for pbuffer
+surface type, however the returned configs are implementation specific
+and egl config may not always match between ctx and surface. Hence,
+use gr->egl_config which already has the matching config but ensure that
+windows and pbuffer bit are set for the surface type.
+
+Signed-off-by: Madhurkiran Harikrishnan <madhurkiran.harikrishnan@xilinx.com>
+Upstream-status: Pending
+---
+ libweston/renderer-gl/gl-renderer.c | 28 ++++++++++++++--------------
+ 1 file changed, 14 insertions(+), 14 deletions(-)
+
+diff --git a/libweston/renderer-gl/gl-renderer.c b/libweston/renderer-gl/gl-renderer.c
+index 54f8b1c..f50c959 100644
+--- a/libweston/renderer-gl/gl-renderer.c
++++ b/libweston/renderer-gl/gl-renderer.c
+@@ -3567,7 +3567,7 @@ gl_renderer_setup_egl_extensions(struct weston_compositor *ec)
+ }
+ 
+ static const EGLint gl_renderer_opaque_attribs[] = {
+-	EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
++	EGL_SURFACE_TYPE, EGL_WINDOW_BIT | EGL_PBUFFER_BIT,
+ 	EGL_RED_SIZE, 1,
+ 	EGL_GREEN_SIZE, 1,
+ 	EGL_BLUE_SIZE, 1,
+@@ -3577,7 +3577,7 @@ static const EGLint gl_renderer_opaque_attribs[] = {
+ };
+ 
+ static const EGLint gl_renderer_alpha_attribs[] = {
+-	EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
++	EGL_SURFACE_TYPE, EGL_WINDOW_BIT | EGL_PBUFFER_BIT,
+ 	EGL_RED_SIZE, 1,
+ 	EGL_GREEN_SIZE, 1,
+ 	EGL_BLUE_SIZE, 1,
+@@ -3682,15 +3682,7 @@ static int
+ gl_renderer_create_pbuffer_surface(struct gl_renderer *gr) {
+ 	EGLConfig pbuffer_config;
+ 
+-	static const EGLint pbuffer_config_attribs[] = {
+-		EGL_SURFACE_TYPE, EGL_PBUFFER_BIT,
+-		EGL_RED_SIZE, 1,
+-		EGL_GREEN_SIZE, 1,
+-		EGL_BLUE_SIZE, 1,
+-		EGL_ALPHA_SIZE, 0,
+-		EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
+-		EGL_NONE
+-	};
++	EGLint surface_type;
+ 
+ 	static const EGLint pbuffer_attribs[] = {
+ 		EGL_WIDTH, 10,
+@@ -3698,13 +3690,21 @@ gl_renderer_create_pbuffer_surface(struct gl_renderer *gr) {
+ 		EGL_NONE
+ 	};
+ 
+-	if (egl_choose_config(gr, pbuffer_config_attribs, NULL, 0, &pbuffer_config) < 0) {
+-		weston_log("failed to choose EGL config for PbufferSurface\n");
++	if(!eglGetConfigAttrib(gr->egl_display, gr->egl_config, EGL_SURFACE_TYPE, &surface_type)) {
++		weston_log("failed to get surface type for PbufferSurface\n");
++		return -1;
++	}
++
++	if (!((surface_type & EGL_WINDOW_BIT) && (surface_type & EGL_PBUFFER_BIT)) &&
++	    !gr->has_configless_context) {
++		weston_log("attempted to use a different EGL config for an "
++			   "output but EGL_KHR_no_config_context or "
++			   "EGL_MESA_configless_context is not supported\n");
+ 		return -1;
+ 	}
+ 
+ 	gr->dummy_surface = eglCreatePbufferSurface(gr->egl_display,
+-						    pbuffer_config,
++						    gr->egl_config,
+ 						    pbuffer_attribs);
+ 
+ 	if (gr->dummy_surface == EGL_NO_SURFACE) {
+-- 
+2.7.4
+
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-graphics/weston/files/0001-libweston-Remove-substitute-format-for-ARGB8888.patch b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/weston/files/0001-libweston-Remove-substitute-format-for-ARGB8888.patch
new file mode 100644
index 0000000..e8e8a1f
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/weston/files/0001-libweston-Remove-substitute-format-for-ARGB8888.patch
@@ -0,0 +1,29 @@
+From 77afc64239199f75041ec344f8f886ee20bba0f8 Mon Sep 17 00:00:00 2001
+From: Madhurkiran Harikrishnan <madhurkiran.harikrishnan@xilinx.com>
+Date: Tue, 11 Feb 2020 19:07:45 -0800
+Subject: [PATCH] libweston: Remove substitute format for ARGB8888
+
+Xilinx DP gfx layer does not support XRGB8888. Hence, remove the same
+as opaque substitute.
+
+Signed-off-by: Madhurkiran Harikrishnan <madhurkiran.harikrishnan@xilinx.com>
+Upstream-Status : Inappropriate [Xilinx specific]
+---
+ libweston/pixel-formats.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/libweston/pixel-formats.c b/libweston/pixel-formats.c
+index b96f3b2..e2a7715 100644
+--- a/libweston/pixel-formats.c
++++ b/libweston/pixel-formats.c
+@@ -165,7 +165,6 @@ static const struct pixel_format_info pixel_format_table[] = {
+ 	},
+ 	{
+ 		DRM_FORMAT(ARGB8888),
+-		.opaque_substitute = DRM_FORMAT_XRGB8888,
+ 		.depth = 32,
+ 		.bpp = 32,
+ 		GL_FORMAT(GL_BGRA_EXT),
+-- 
+2.7.4
+
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-graphics/weston/files/weston.ini b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/weston/files/weston.ini
new file mode 100644
index 0000000..783a9c6
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/weston/files/weston.ini
@@ -0,0 +1,4 @@
+[core]
+idle-time=0
+
+gbm-format=rgb565
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-graphics/weston/weston-init%.bbappend b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/weston/weston-init%.bbappend
new file mode 100644
index 0000000..aaee7f5
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/weston/weston-init%.bbappend
@@ -0,0 +1,7 @@
+FILESEXTRAPATHS_prepend_zynqmp := "${THISDIR}/files:"
+
+SRC_URI_append_zynqmp = " file://weston.ini"
+
+do_install_append_zynqmp() {
+    install -Dm 0700 ${WORKDIR}/weston.ini ${D}/${sysconfdir}/xdg/weston/weston.ini
+}
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-graphics/weston/weston_%.bbappend b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/weston/weston_%.bbappend
new file mode 100644
index 0000000..a13b627
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/weston/weston_%.bbappend
@@ -0,0 +1,5 @@
+FILESEXTRAPATHS_prepend_zynqmp := "${THISDIR}/files:"
+
+SRC_URI_append_zynqmp = " file://0001-gl-renderer.c-Use-gr-egl_config-to-create-pbuffer-su.patch \
+                          file://0001-libweston-Remove-substitute-format-for-ARGB8888.patch \
+			"
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-graphics/xorg-driver/xf86-video-armsoc/0001-armsoc_driver.c-Bypass-the-exa-layer-to-free-the-roo.patch b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/xorg-driver/xf86-video-armsoc/0001-armsoc_driver.c-Bypass-the-exa-layer-to-free-the-roo.patch
new file mode 100644
index 0000000..2e02479
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/xorg-driver/xf86-video-armsoc/0001-armsoc_driver.c-Bypass-the-exa-layer-to-free-the-roo.patch
@@ -0,0 +1,33 @@
+From 497de8b16265468cacad880f4a371756924ae0c1 Mon Sep 17 00:00:00 2001
+From: Madhurkiran Harikrishnan <madhurkiran.harikrishnan@xilinx.com>
+Date: Tue, 14 Apr 2020 15:25:13 -0700
+Subject: [xf86-video-armsoc][PATCH v2] armsoc_driver.c: Bypass the exa layer
+ to free the root pixmap
+
+Since the root pixmap was allocated through miCreateScreenResources,
+the exa layer is not aware of the pixmap resulting in the assertion
+to fail. Instead, we can directly invoke fbDestroyPixmap, thereby
+freeing the pixmap and avoiding a memory leak.
+
+Signed-off-by: Madhurkiran Harikrishnan <madhurkiran.harikrishnan@xilinx.com>
+---
+ src/armsoc_driver.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/armsoc_driver.c b/src/armsoc_driver.c
+index 3ace3c7..a4a1ba3 100644
+--- a/src/armsoc_driver.c
++++ b/src/armsoc_driver.c
+@@ -1259,7 +1259,8 @@ ARMSOCCloseScreen(CLOSE_SCREEN_ARGS_DECL)
+ 	 * we do it here, before calling the CloseScreen chain which would just free pScreen->devPrivate in fbCloseScreen()
+ 	 */
+ 	if (pScreen->devPrivate) {
+-		(void) (*pScreen->DestroyPixmap)(pScreen->devPrivate);
++		fbDestroyPixmap (pScreen->devPrivate);
++		armsoc_bo_unreference(pARMSOC->scanout);
+ 		pScreen->devPrivate = NULL;
+ 	}
+ 
+-- 
+2.7.4
+
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-graphics/xorg-driver/xf86-video-armsoc_%.bbappend b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/xorg-driver/xf86-video-armsoc_%.bbappend
index 3ddcf0b..955398a 100644
--- a/meta-xilinx/meta-xilinx-bsp/recipes-graphics/xorg-driver/xf86-video-armsoc_%.bbappend
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/xorg-driver/xf86-video-armsoc_%.bbappend
@@ -1,3 +1,5 @@
 FILESEXTRAPATHS_prepend := "${THISDIR}/xf86-video-armsoc:"
 
-SRC_URI_append = " file://0001-src-drmmode_xilinx-Add-the-dumb-gem-support-for-Xili.patch"
+SRC_URI_append = " file://0001-src-drmmode_xilinx-Add-the-dumb-gem-support-for-Xili.patch \
+                   file://0001-armsoc_driver.c-Bypass-the-exa-layer-to-free-the-roo.patch \
+		"