summaryrefslogtreecommitdiffstats
path: root/import-layers/meta-raspberrypi
diff options
context:
space:
mode:
authorPatrick Williams <patrick@stwcx.xyz>2017-02-23 20:31:26 -0600
committerPatrick Williams <patrick@stwcx.xyz>2017-03-29 21:31:40 +0000
commitb2e6a9b5bcc725ab21f4a319e32ea09700a732b6 (patch)
treeea703254597ea62d8ea0055c428b2709b80d649e /import-layers/meta-raspberrypi
parentddad1a1568cc6c729bcb317fae411152024437fa (diff)
downloadtalos-openbmc-b2e6a9b5bcc725ab21f4a319e32ea09700a732b6.tar.gz
talos-openbmc-b2e6a9b5bcc725ab21f4a319e32ea09700a732b6.zip
Squashed 'import-layers/meta-raspberrypi/'.
cce6292 linux-raspberrypi_4.9.bb: Upgrade to 4.9.10 c34a6b0 linux-raspberrypi_4.4: Update to 4.4.48 7398030 Revert "u-boot: drop patch to include lowlevel_init" 69c5675 README: Mention CM1 and CM3 support 56b0c59 rpi-base.inc: Include dtb file for CM1 and CM3 a735477 raspberrypi*.conf: Minor tweaks 9923618 raspberrypi-cm3.conf: Add dummy machine for CM3 (alias for RPi2) d5aa048 raspberrypi-cm.conf: Add dummy machine for CM1 (alias for RPi1) 5b5c4d9 linux-raspberrypi_4.9: Update to 4.9.4 f81f022 linux-raspberrypi_4.4: Update to 4.4.43 263e6bd linux-raspberrypi: Drop v4.8 121e200 linux-raspberrypi: Drop v4.7 cb7068a linux-raspberrypi: Upgrade to v4.4.39 38bc324 linux-raspberrypi: Drop v4.1 e1f69da linux-raspberrypi_4.9.bb: Add recipe for 4.9 release 02c0d41 linux-raspberrypi_4.8.bb: Upgrade to 4.8.16 031e2695 u-boot: drop patch to include lowlevel_init c405581 rpi-base.inc: remove input modules form XSERVER d77f3d4 rpi-base.inc: add xserver-xorg-extension-glx to XSERVER for vc4 enabled 672e025 linux-raspberrypi-4.8: Upgrade to 4.8.15 1bf09a4 userland: Fix building on aarch64 22fb2b4 linux-raspberrypi-4.8: Upgrade to 4.8.13 90c45b4 userland: Update to latest 96b9c63 linux-raspberrypi-base.bbclass: remove version hack 17f0c23 linux-rpi.inc: Do not rely on DISTRO_TYPE to enable/disable kernel debug 064aa0a u-boot: Simplify boot script 0e66d69 linux-raspberrypi_4.8.bb: upgrade to 4.8.12 18cf04d firmware: Update to 20161125 1f64604 linux-raspberrypi_4.4.bb: upgrade to 4.4.35 44d41bf raspberrypi3.conf: fix typo for BCM43430 6bd1bfe linux-raspberrypi: remove not needed bundle_initramfs_append() b030814 u-boot: Fix appending to RDEPENDS 9c12ac8 linux-raspberrypi_4.8.bb: Upgrade to 4.8.6 380740d linux-firmware_git.bbappend: Delete a5f95f4 userland: Bump to latest and add ASNEEDED = "" 716b6a9 firmware: Use release tarballs 6c755af weston: Unify bbappends for weston into single file b9e6f04 userland: Update to latest master tip 00300d9 firmware: Update to 20161030 3e6e890 linux-raspberrypi-4.4: Update to 4.4.28 12aa27d gstreamer1.0-plugins-bad_%.bbappend: Set PACKAGECONFIG_GL for RPi ab39653 rpi-base.inc: Include pi3-disable-bt-overlay.dtb 17a6933 linux-raspberrypi: Update to 4.8.4 ddc9390 linux-firmware: Fix "No generic license file exists" warning d51a8a7 linux-raspberrypi_4.8.bb: Update to 4.8.2 e991148 firmware: Update to latest ed54bd3 linux-firmware: Correct the LICENSE for brcm43430-license 3360f98 sdcard_image-rpi.bbclass: Include boot script when using u-boot 1d629b1 u-boot: Add RDEPENDS on rpi-u-boot-scr 56047ad rpi-u-boot-scr: Add recipe to create u-boot boot script 1f24992 rpi-base.inc: Don't install kernel image into rootfs c62e088 eglinfo-x11: align to VC4 1ebb370 vc4: why no framebuffer device? 8d17669 xorg align for vc4 3b9aebd mesa: align for vc4 de016ce bluez5: correctly append brcm43438 service b6c954d Fix DISPMANX_OFFLINE variable typo d778d0a README: Replace references to Redmine with Github Issues 1e3983f linux-raspberrypi_4.7.bb: Update to 4.7.7 ecd8875 linux-raspberrypi: Add recipe for 4.8 release 05be947 firmware: Upgrade to latest 585838e userland: Upgrade to latest 41689e8 sdcard_image-rpi.bbclass: Remove redundant RPI_KERNEL_VERSION 5697e77 linux-raspberrypi_4.4: Upgrade to 4.4.23 4817e2c sdcard_image-rpi.bbclass: avoid corrupted images with latest oe-core ac6f357 weston: Fix typo with override 760ddd0 Switch to using 4.4 as default kernel ed84c2c vc4graphics: Support X11 with the VC4 driver. 55388a5 firmware, userland: Bump to latest b24afdc linux-raspberrypi_3.18: Remove e993bdc linux-raspberrypi: Add recipe for 4.7 release c2f7643 linux-raspberrypi_4.4: upgrade to 4.4.16 d511c7c linux-raspberrypi-4.4: add patch to enable proper operation of renderD128 device ef22ff4 linux-rpi.inc: add the configuration options required to support vc4graphics 6b4de2b mesa_%.bbappend: new file to add the correct configuration options to support vc4graphics bee7643 weston/weston_%.bbappend: modify configuration options to support vc4graphics 72b9635 wayland/weston_%.bbappend: modify configuration options to support vc4graphics ba9c466 rpi-config_git.bb: add v4c overlay to config.txt to support vc4graphics 5d2722c raspberrypi3.conf: set the default value of VC4_CMA_SIZE to support vc4graphics 824b78c raspberrypi2.conf: set the default value of VC4_CMA_SIZE to support vc4graphics dfce95f raspberrypi0.conf: set the default value of VC4_CMA_SIZE to support vc4graphics 224b9e9 raspberrypi.conf: set the default value of VC4_CMA_SIZE to support vc4graphics 0035bc8 rpi-base.inc: add vc4-kms-v3d to the overlays to support vc4graphics 6e535dd rpi-default-providers.inc: change default providers to support vc4graphics 1a32817 sdcard_image-rpi.bbclass: support for .dtbo files for dtb overlays d98f2a7 linux-raspberrypi-base.bbclass: support for .dtbo files for dtb overlays 09b76a4 rpi-base.inc: support for .dtbo files for dtb overlays 18a2fb6 linux-raspberrypi_4.4.bb: support for .dtbo files for dtb overlays a5f9b07 bcm2835: Compile examples correct LDFLAGS to avoid HASH errors 8c5eba1 bcm2835: Update to 1.50 5229f75 wiringPi: Fix compilation of libraries 5771c7f wiringpi: Fix prepend space 1b2c25e wiringpi: Update to 2.32 4c02c7c sdcard_image-rpi.bbclass: remove redundant IMAGEDATESTAMP cc64d63 userland: Add bash to RDEPENDS Change-Id: Ic9e50299fcba012068cea0c0a971c48c6da4138f git-subtree-dir: import-layers/meta-raspberrypi git-subtree-split: cce6292e41493158c26f5b1b7fded97faacf10d7 Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Diffstat (limited to 'import-layers/meta-raspberrypi')
-rw-r--r--import-layers/meta-raspberrypi/README10
-rw-r--r--import-layers/meta-raspberrypi/classes/linux-raspberrypi-base.bbclass24
-rw-r--r--import-layers/meta-raspberrypi/classes/sdcard_image-rpi.bbclass22
-rw-r--r--import-layers/meta-raspberrypi/conf/machine/include/rpi-base.inc45
-rw-r--r--import-layers/meta-raspberrypi/conf/machine/include/rpi-default-providers.inc8
-rw-r--r--import-layers/meta-raspberrypi/conf/machine/include/rpi-default-versions.inc2
-rw-r--r--import-layers/meta-raspberrypi/conf/machine/raspberrypi-cm.conf6
-rw-r--r--import-layers/meta-raspberrypi/conf/machine/raspberrypi-cm3.conf6
-rw-r--r--import-layers/meta-raspberrypi/conf/machine/raspberrypi.conf1
-rw-r--r--import-layers/meta-raspberrypi/conf/machine/raspberrypi0.conf1
-rw-r--r--import-layers/meta-raspberrypi/conf/machine/raspberrypi2.conf1
-rw-r--r--import-layers/meta-raspberrypi/conf/machine/raspberrypi3.conf6
-rw-r--r--import-layers/meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb10
-rw-r--r--import-layers/meta-raspberrypi/recipes-bsp/common/firmware.inc12
-rw-r--r--import-layers/meta-raspberrypi/recipes-bsp/rpi-u-boot-scr/files/boot.cmd3
-rw-r--r--import-layers/meta-raspberrypi/recipes-bsp/rpi-u-boot-scr/rpi-u-boot-scr.bb21
-rw-r--r--import-layers/meta-raspberrypi/recipes-bsp/u-boot/files/0001-arm-add-save_boot_params-for-ARM1176.patch56
-rw-r--r--import-layers/meta-raspberrypi/recipes-bsp/u-boot/files/0002-rpi-passthrough-of-the-firmware-provided-FDT-blob.patch156
-rw-r--r--import-layers/meta-raspberrypi/recipes-bsp/u-boot/files/0003-Include-lowlevel_init.o-for-rpi2.patch25
-rw-r--r--import-layers/meta-raspberrypi/recipes-bsp/u-boot/u-boot_%.bbappend7
-rw-r--r--import-layers/meta-raspberrypi/recipes-connectivity/bluez5/bluez5_%.bbappend2
-rw-r--r--import-layers/meta-raspberrypi/recipes-devtools/bcm2835/bcm2835_1.50.bb (renamed from import-layers/meta-raspberrypi/recipes-devtools/bcm2835/bcm2835_1.46.bb)6
-rw-r--r--import-layers/meta-raspberrypi/recipes-devtools/wiringPi/files/0001-Add-initial-cross-compile-support.patch4
-rw-r--r--import-layers/meta-raspberrypi/recipes-devtools/wiringPi/wiringpi_git.bb6
-rw-r--r--import-layers/meta-raspberrypi/recipes-graphics/eglinfo/eglinfo-x11_%.bbappend2
-rw-r--r--import-layers/meta-raspberrypi/recipes-graphics/mesa/mesa_%.bbappend3
-rw-r--r--import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0001-Allow-applications-to-set-next-resource-handle.patch16
-rw-r--r--import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0002-wayland-Add-support-for-the-Wayland-winsys.patch97
-rw-r--r--import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0003-wayland-Add-Wayland-example.patch16
-rw-r--r--import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0004-wayland-egl-Add-bcm_host-to-dependencies.patch6
-rw-r--r--import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0005-interface-remove-faulty-assert-to-make-weston-happy-.patch24
-rw-r--r--import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0006-zero-out-wl-buffers-in-egl_surface_free.patch8
-rw-r--r--import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0007-initialize-front-back-wayland-buffers.patch8
-rw-r--r--import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0008-Remove-RPC_FLUSH.patch6
-rw-r--r--import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0009-fix-cmake-dependency-race.patch8
-rw-r--r--import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0010-Fix-enum-conversion-warnings.patch99
-rw-r--r--import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0010-Fix-for-framerate-with-nested-composition.patch (renamed from import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0011-Fix-for-framerate-with-nested-composition.patch)8
-rw-r--r--import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0011-build-shared-library-for-vchostif.patch (renamed from import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0012-build-shared-library-for-vchostif.patch)8
-rw-r--r--import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0012-implement-buffer-wrapping-interface-for-dispmanx.patch (renamed from import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0013-implement-buffer-wrapping-interface-for-dispmanx.patch)6
-rw-r--r--import-layers/meta-raspberrypi/recipes-graphics/userland/userland_git.bb16
-rw-r--r--import-layers/meta-raspberrypi/recipes-graphics/wayland/weston_%.bbappend16
-rw-r--r--import-layers/meta-raspberrypi/recipes-graphics/weston/weston_%.bbappend7
-rw-r--r--import-layers/meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xorg_%.bbappend9
-rw-r--r--import-layers/meta-raspberrypi/recipes-kernel/linux-firmware/linux-firmware/LICENSE.broadcom_brcm80211205
-rw-r--r--import-layers/meta-raspberrypi/recipes-kernel/linux-firmware/linux-firmware/brcmfmac43430-sdio.binbin368957 -> 0 bytes
-rw-r--r--import-layers/meta-raspberrypi/recipes-kernel/linux-firmware/linux-firmware/brcmfmac43430-sdio.txt66
-rw-r--r--import-layers/meta-raspberrypi/recipes-kernel/linux-firmware/linux-firmware_git.bbappend33
-rw-r--r--import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-3.18/0001-dts-add-overlay-for-pitft22.patch110
-rw-r--r--import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-4.1/0001-dts-add-overlay-for-pitft22.patch110
-rw-r--r--import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-4.1/0002-vmcs-Remove-unused-sm_cache_map_vector-definition.patch31
-rw-r--r--import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-4.1/0003-fix-gcc6.patch78
-rw-r--r--import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-4.4/0001-fix-dtbo-rules.patch44
-rw-r--r--import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-4.9/0001-build-arm64-Add-rules-for-.dtbo-files-for-dts-overla.patch29
-rw-r--r--import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi.inc13
-rw-r--r--import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_3.18.bb14
-rw-r--r--import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.1.bb12
-rw-r--r--import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.4.bb5
-rw-r--r--import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.9.bb9
-rw-r--r--import-layers/meta-raspberrypi/recipes-kernel/linux/linux-rpi.inc16
-rw-r--r--import-layers/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_%.bbappend14
60 files changed, 620 insertions, 972 deletions
diff --git a/import-layers/meta-raspberrypi/README b/import-layers/meta-raspberrypi/README
index c39f9edeb..65a1e5f9a 100644
--- a/import-layers/meta-raspberrypi/README
+++ b/import-layers/meta-raspberrypi/README
@@ -4,8 +4,8 @@ Git repository web frontend:
http://git.yoctoproject.org/cgit/cgit.cgi/meta-raspberrypi/
Mailing list (yocto mailing list):
yocto@yoctoproject.org
-Issues management (redmine):
- http://redmine.gherzan.ro/projects/meta-raspberrypi
+Issues management (Github Issues):
+ https://github.com/agherzan/meta-raspberrypi/issues
Contents:
@@ -37,7 +37,7 @@ Contents:
6. Source code and mirrors
7. Contribution
7.A. Mailing List
- 7.B. Redmine
+ 7.B. Github Issues
8. Maintainers
@@ -79,6 +79,8 @@ c. Set MACHINE in local.conf to one of the supported boards:
- raspberrypi0
- raspberrypi2
- raspberrypi3
+ - raspberrypi-cm (dummy alias for raspberrypi)
+ - raspberrypi-cm3 (dummy alias for raspberrypi2)
d. bitbake rpi-hwup-image
e. dd to a SD card the generated sdimg file (use xzcat if rpi-sdimg.xz is used)
f. Boot your RPI.
@@ -157,7 +159,7 @@ VIDEO_CAMERA = "1"
3.G. Enable offline compositing support
=======================================
Set this variable to enable support for dispmanx offline compositing
-DISMANX_OFFLINE = "1"
+DISPMANX_OFFLINE = "1"
This will enable the firmware to fall back to off-line compositing of
Dispmanx elements. Normally the compositing is done on-line, during scanout,
diff --git a/import-layers/meta-raspberrypi/classes/linux-raspberrypi-base.bbclass b/import-layers/meta-raspberrypi/classes/linux-raspberrypi-base.bbclass
index 40beef1d8..dc2330af2 100644
--- a/import-layers/meta-raspberrypi/classes/linux-raspberrypi-base.bbclass
+++ b/import-layers/meta-raspberrypi/classes/linux-raspberrypi-base.bbclass
@@ -1,7 +1,8 @@
inherit linux-kernel-base
+def get_dts(d, ver=None):
+ import re
-def get_dts(d, ver):
staging_dir = d.getVar("STAGING_KERNEL_BUILDDIR", True)
dts = d.getVar("KERNEL_DEVICETREE", True)
@@ -13,27 +14,16 @@ def get_dts(d, ver):
from the kernel staging '''
ver = get_kernelversion_file(staging_dir)
- if ver is not None:
- min_ver = ver.split('.', 3)
- else:
- return dts
-
- # Always turn off device tree support for kernel's < 3.18
- try:
- if int(min_ver[0]) <= 3:
- if int(min_ver[1]) < 18:
- dts = ""
- except IndexError:
- min_ver = None
-
return dts
-def split_overlays(d, out):
- dts = get_dts(d, None)
+def split_overlays(d, out, ver=None):
+ dts = get_dts(d, ver)
if out:
overlays = oe.utils.str_filter_out('\S+\-overlay\.dtb$', dts, d)
+ overlays = oe.utils.str_filter_out('\S+\.dtbo$', overlays, d)
else:
- overlays = oe.utils.str_filter('\S+\-overlay\.dtb$', dts, d)
+ overlays = oe.utils.str_filter('\S+\-overlay\.dtb$', dts, d) + \
+ " " + oe.utils.str_filter('\S+\.dtbo$', dts, d)
return overlays
diff --git a/import-layers/meta-raspberrypi/classes/sdcard_image-rpi.bbclass b/import-layers/meta-raspberrypi/classes/sdcard_image-rpi.bbclass
index 57cefea08..116d5e82c 100644
--- a/import-layers/meta-raspberrypi/classes/sdcard_image-rpi.bbclass
+++ b/import-layers/meta-raspberrypi/classes/sdcard_image-rpi.bbclass
@@ -47,7 +47,7 @@ IMAGE_ROOTFS_ALIGNMENT = "4096"
# Use an uncompressed ext3 by default as rootfs
SDIMG_ROOTFS_TYPE ?= "ext3"
-SDIMG_ROOTFS = "${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.${SDIMG_ROOTFS_TYPE}"
+SDIMG_ROOTFS = "${IMGDEPLOYDIR}/${IMAGE_NAME}.rootfs.${SDIMG_ROOTFS_TYPE}"
IMAGE_DEPENDS_rpi-sdimg = " \
parted-native \
@@ -59,7 +59,7 @@ IMAGE_DEPENDS_rpi-sdimg = " \
"
# SD card image name
-SDIMG = "${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.rpi-sdimg"
+SDIMG = "${IMGDEPLOYDIR}/${IMAGE_NAME}.rootfs.rpi-sdimg"
# Compression method to apply to SDIMG after it has been created. Supported
# compression formats are "gzip", "bzip2" or "xz". The original .rpi-sdimg file
@@ -71,10 +71,6 @@ SDIMG = "${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.rpi-sdimg"
# Additional files and/or directories to be copied into the vfat partition from the IMAGE_ROOTFS.
FATPAYLOAD ?= ""
-IMAGEDATESTAMP = "${@time.strftime('%Y.%m.%d',time.gmtime())}"
-IMAGE_CMD_rpi-sdimg[vardepsexclude] += "IMAGEDATESTAMP"
-IMAGE_CMD_rpi-sdimg[vardepsexclude] += "DATETIME"
-
IMAGE_CMD_rpi-sdimg () {
# Align partitions
@@ -85,7 +81,7 @@ IMAGE_CMD_rpi-sdimg () {
echo "Creating filesystem with Boot partition ${BOOT_SPACE_ALIGNED} KiB and RootFS $ROOTFS_SIZE KiB"
# Check if we are building with device tree support
- DTS="${@get_dts(d, None)}"
+ DTS="${@get_dts(d)}"
# Initialize sdcard image file
dd if=/dev/zero of=${SDIMG} bs=1024 count=0 seek=${SDIMG_SIZE}
@@ -105,7 +101,7 @@ IMAGE_CMD_rpi-sdimg () {
mkfs.vfat -n "${BOOTDD_VOLUME_ID}" -S 512 -C ${WORKDIR}/boot.img $BOOT_BLOCKS
mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/bcm2835-bootfiles/* ::/
if test -n "${DTS}"; then
- # Device Tree Overlays are assumed to be suffixed by '-overlay.dtb' string and will be put in a dedicated folder
+ # Device Tree Overlays are assumed to be suffixed by '-overlay.dtb' (4.1.x) or by '.dtbo' (4.4.9+) string and will be put in a dedicated folder
DT_OVERLAYS="${@split_overlays(d, 0)}"
DT_ROOT="${@split_overlays(d, 1)}"
@@ -119,15 +115,17 @@ IMAGE_CMD_rpi-sdimg () {
# Copy device tree overlays to dedicated folder
mmd -i ${WORKDIR}/boot.img overlays
for DTB in ${DT_OVERLAYS}; do
- DTB_BASE_NAME=`basename ${DTB} .dtb`
+ DTB_EXT=${DTB##*.}
+ DTB_BASE_NAME=`basename ${DTB} ."${DTB_EXT}"`
- mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${DTB_BASE_NAME}.dtb ::overlays/${DTB_BASE_NAME}.dtb
+ mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${DTB_BASE_NAME}.${DTB_EXT} ::overlays/${DTB_BASE_NAME}.${DTB_EXT}
done
fi
case "${KERNEL_IMAGETYPE}" in
"uImage")
mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/u-boot.bin ::${SDIMG_KERNELIMAGE}
mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}${KERNEL_INITRAMFS}-${MACHINE}.bin ::uImage
+ mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/boot.scr ::boot.scr
;;
*)
mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}${KERNEL_INITRAMFS}-${MACHINE}.bin ::${SDIMG_KERNELIMAGE}
@@ -143,8 +141,8 @@ IMAGE_CMD_rpi-sdimg () {
fi
# Add stamp file
- echo "${IMAGE_NAME}-${IMAGEDATESTAMP}" > ${WORKDIR}/image-version-info
- mcopy -i ${WORKDIR}/boot.img -v ${WORKDIR}//image-version-info ::
+ echo "${IMAGE_NAME}" > ${WORKDIR}/image-version-info
+ mcopy -i ${WORKDIR}/boot.img -v ${WORKDIR}/image-version-info ::
# Burn Partitions
dd if=${WORKDIR}/boot.img of=${SDIMG} conv=notrunc seek=1 bs=$(expr ${IMAGE_ROOTFS_ALIGNMENT} \* 1024) && sync && sync
diff --git a/import-layers/meta-raspberrypi/conf/machine/include/rpi-base.inc b/import-layers/meta-raspberrypi/conf/machine/include/rpi-base.inc
index 56ca83e1e..e069e7039 100644
--- a/import-layers/meta-raspberrypi/conf/machine/include/rpi-base.inc
+++ b/import-layers/meta-raspberrypi/conf/machine/include/rpi-base.inc
@@ -9,34 +9,35 @@ IMAGE_FSTYPES ?= "tar.bz2 ext3 rpi-sdimg"
XSERVER = " \
xserver-xorg \
- xf86-input-evdev \
- xf86-input-mouse \
- xf86-input-keyboard \
- xf86-video-fbdev \
+ ${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "xserver-xorg-extension-glx", "", d)} \
+ ${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "xf86-video-modesetting", "xf86-video-fbdev", d)} \
"
-# Really supported starting from linux-raspberrypi 3.18.y only
KERNEL_DEVICETREE ?= " \
bcm2708-rpi-b.dtb \
bcm2708-rpi-b-plus.dtb \
bcm2709-rpi-2-b.dtb \
bcm2710-rpi-3-b.dtb \
+ bcm2708-rpi-cm.dtb \
+ bcm2710-rpi-cm3.dtb \
\
- overlays/hifiberry-amp-overlay.dtb \
- overlays/hifiberry-dac-overlay.dtb \
- overlays/hifiberry-dacplus-overlay.dtb \
- overlays/hifiberry-digi-overlay.dtb \
- overlays/i2c-rtc-overlay.dtb \
- overlays/iqaudio-dac-overlay.dtb \
- overlays/iqaudio-dacplus-overlay.dtb \
- overlays/lirc-rpi-overlay.dtb \
- overlays/pitft22-overlay.dtb \
- overlays/pitft28-resistive-overlay.dtb \
- overlays/pps-gpio-overlay.dtb \
- overlays/rpi-ft5406-overlay.dtb \
- overlays/w1-gpio-overlay.dtb \
- overlays/w1-gpio-pullup-overlay.dtb \
- overlays/pi3-miniuart-bt-overlay.dtb \
+ overlays/hifiberry-amp.dtbo \
+ overlays/hifiberry-dac.dtbo \
+ overlays/hifiberry-dacplus.dtbo \
+ overlays/hifiberry-digi.dtbo \
+ overlays/i2c-rtc.dtbo \
+ overlays/iqaudio-dac.dtbo \
+ overlays/iqaudio-dacplus.dtbo \
+ overlays/lirc-rpi.dtbo \
+ overlays/pitft22.dtbo \
+ overlays/pitft28-resistive.dtbo \
+ overlays/pps-gpio.dtbo \
+ overlays/rpi-ft5406.dtbo \
+ overlays/w1-gpio.dtbo \
+ overlays/w1-gpio-pullup.dtbo \
+ overlays/pi3-disable-bt.dtbo \
+ overlays/pi3-miniuart-bt.dtbo \
+ overlays/vc4-kms-v3d.dtbo \
"
KERNEL_IMAGETYPE ?= "Image"
@@ -51,3 +52,7 @@ MACHINE_EXTRA_RRECOMMENDS += " kernel-modules"
SPLASH = "psplash-raspberrypi"
IMAGE_BOOT_FILES ?= "bcm2835-bootfiles/* ${KERNEL_IMAGETYPE};${SDIMG_KERNELIMAGE}"
+
+# The kernel image is installed into the FAT32 boot partition and does not need
+# to also be installed into the rootfs.
+RDEPENDS_kernel-base = ""
diff --git a/import-layers/meta-raspberrypi/conf/machine/include/rpi-default-providers.inc b/import-layers/meta-raspberrypi/conf/machine/include/rpi-default-providers.inc
index 359870d83..078e9d673 100644
--- a/import-layers/meta-raspberrypi/conf/machine/include/rpi-default-providers.inc
+++ b/import-layers/meta-raspberrypi/conf/machine/include/rpi-default-providers.inc
@@ -2,8 +2,8 @@
PREFERRED_PROVIDER_virtual/kernel ?= "linux-raspberrypi"
PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg"
-PREFERRED_PROVIDER_virtual/egl ?= "userland"
-PREFERRED_PROVIDER_virtual/libgles2 ?= "userland"
-PREFERRED_PROVIDER_virtual/libgl ?= "mesa-gl"
-PREFERRED_PROVIDER_virtual/mesa ?= "mesa-gl"
+PREFERRED_PROVIDER_virtual/egl ?= "${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "mesa", "userland", d)}"
+PREFERRED_PROVIDER_virtual/libgles2 ?= "${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "mesa", "userland", d)}"
+PREFERRED_PROVIDER_virtual/libgl ?= "${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "mesa", "mesa-gl", d)}"
+PREFERRED_PROVIDER_virtual/mesa ?= "${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "mesa", "mesa-gl", d)}"
PREFERRED_PROVIDER_jpeg ?= "jpeg"
diff --git a/import-layers/meta-raspberrypi/conf/machine/include/rpi-default-versions.inc b/import-layers/meta-raspberrypi/conf/machine/include/rpi-default-versions.inc
index c879ddea9..e65a4ae9e 100644
--- a/import-layers/meta-raspberrypi/conf/machine/include/rpi-default-versions.inc
+++ b/import-layers/meta-raspberrypi/conf/machine/include/rpi-default-versions.inc
@@ -1,3 +1,3 @@
# RaspberryPi BSP default versions
-PREFERRED_VERSION_linux-raspberrypi ?= "4.1.%"
+PREFERRED_VERSION_linux-raspberrypi ?= "4.4.%"
diff --git a/import-layers/meta-raspberrypi/conf/machine/raspberrypi-cm.conf b/import-layers/meta-raspberrypi/conf/machine/raspberrypi-cm.conf
new file mode 100644
index 000000000..2da7d50b7
--- /dev/null
+++ b/import-layers/meta-raspberrypi/conf/machine/raspberrypi-cm.conf
@@ -0,0 +1,6 @@
+#@TYPE: Machine
+#@NAME: RaspberryPi Compute Module (CM1)
+#@DESCRIPTION: Machine configuration for the RaspberryPi Compute Module (CM1)
+
+MACHINEOVERRIDES = "raspberrypi:${MACHINE}"
+include conf/machine/raspberrypi.conf
diff --git a/import-layers/meta-raspberrypi/conf/machine/raspberrypi-cm3.conf b/import-layers/meta-raspberrypi/conf/machine/raspberrypi-cm3.conf
new file mode 100644
index 000000000..153d5d5bb
--- /dev/null
+++ b/import-layers/meta-raspberrypi/conf/machine/raspberrypi-cm3.conf
@@ -0,0 +1,6 @@
+#@TYPE: Machine
+#@NAME: RaspberryPi Compute Module 3 (CM3)
+#@DESCRIPTION: Machine configuration for the RaspberryPi Compute Module 3 (CM3)
+
+MACHINEOVERRIDES = "raspberrypi2:${MACHINE}"
+include conf/machine/raspberrypi2.conf
diff --git a/import-layers/meta-raspberrypi/conf/machine/raspberrypi.conf b/import-layers/meta-raspberrypi/conf/machine/raspberrypi.conf
index 72beeb881..ad3b06126 100644
--- a/import-layers/meta-raspberrypi/conf/machine/raspberrypi.conf
+++ b/import-layers/meta-raspberrypi/conf/machine/raspberrypi.conf
@@ -10,3 +10,4 @@ include conf/machine/include/rpi-base.inc
SERIAL_CONSOLE = "115200 ttyAMA0"
UBOOT_MACHINE = "rpi_config"
+VC4_CMA_SIZE_raspberrypi ?= "cma-64"
diff --git a/import-layers/meta-raspberrypi/conf/machine/raspberrypi0.conf b/import-layers/meta-raspberrypi/conf/machine/raspberrypi0.conf
index ccf9ae7b9..7c2b81193 100644
--- a/import-layers/meta-raspberrypi/conf/machine/raspberrypi0.conf
+++ b/import-layers/meta-raspberrypi/conf/machine/raspberrypi0.conf
@@ -6,3 +6,4 @@ MACHINEOVERRIDES = "raspberrypi:${MACHINE}"
include conf/machine/raspberrypi.conf
SERIAL_CONSOLE = "115200 ttyAMA0"
+VC4_CMA_SIZE ?= "cma-128"
diff --git a/import-layers/meta-raspberrypi/conf/machine/raspberrypi2.conf b/import-layers/meta-raspberrypi/conf/machine/raspberrypi2.conf
index d50ef700d..9b4c02a19 100644
--- a/import-layers/meta-raspberrypi/conf/machine/raspberrypi2.conf
+++ b/import-layers/meta-raspberrypi/conf/machine/raspberrypi2.conf
@@ -10,3 +10,4 @@ include conf/machine/include/rpi-base.inc
SERIAL_CONSOLE = "115200 ttyAMA0"
UBOOT_MACHINE = "rpi_2_config"
+VC4_CMA_SIZE ?= "cma-256"
diff --git a/import-layers/meta-raspberrypi/conf/machine/raspberrypi3.conf b/import-layers/meta-raspberrypi/conf/machine/raspberrypi3.conf
index cb6056eb8..1ac592811 100644
--- a/import-layers/meta-raspberrypi/conf/machine/raspberrypi3.conf
+++ b/import-layers/meta-raspberrypi/conf/machine/raspberrypi3.conf
@@ -3,9 +3,9 @@
#@DESCRIPTION: Machine configuration for the RaspberryPi 3
MACHINEOVERRIDES = "raspberrypi2:${MACHINE}"
-
-MACHINE_EXTRA_RRECOMMENDS += "linux-firmware-brcm43430"
-
include conf/machine/raspberrypi2.conf
+MACHINE_EXTRA_RRECOMMENDS += "linux-firmware-bcm43430"
+
SERIAL_CONSOLE = "115200 ttyS0"
+VC4_CMA_SIZE ?= "cma-256"
diff --git a/import-layers/meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb b/import-layers/meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb
index 4bc8eb73d..f6107180d 100644
--- a/import-layers/meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb
+++ b/import-layers/meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb
@@ -13,12 +13,14 @@ SRC_URI = "git://github.com/Evilpaul/RPi-config.git;protocol=git;branch=master \
S = "${WORKDIR}/git"
-PR = "r4"
+PR = "r5"
PITFT="${@bb.utils.contains("MACHINE_FEATURES", "pitft", "1", "0", d)}"
PITFT22="${@bb.utils.contains("MACHINE_FEATURES", "pitft22", "1", "0", d)}"
PITFT28r="${@bb.utils.contains("MACHINE_FEATURES", "pitft28r", "1", "0", d)}"
+VC4GRAPHICS="${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "1", "0", d)}"
+
inherit deploy
do_deploy() {
@@ -102,6 +104,12 @@ do_deploy() {
echo "# Enable UART" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "enable_uart=1" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
fi
+
+ # VC4 Graphics support
+ if [ "${VC4GRAPHICS}" = "1" ]; then
+ echo "# Enable VC4 Graphics" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
+ echo "dtoverlay=vc4-kms-v3d,${VC4_CMA_SIZE}" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
+ fi
}
addtask deploy before do_package after do_install
diff --git a/import-layers/meta-raspberrypi/recipes-bsp/common/firmware.inc b/import-layers/meta-raspberrypi/recipes-bsp/common/firmware.inc
index 9df61565c..1961b48bc 100644
--- a/import-layers/meta-raspberrypi/recipes-bsp/common/firmware.inc
+++ b/import-layers/meta-raspberrypi/recipes-bsp/common/firmware.inc
@@ -1,8 +1,10 @@
-RPIFW_SRCREV ?= "390f53ed0fd79df274bdcc81d99e09fa262f03ab"
-RPIFW_DATE ?= "20160622"
-RPIFW_SRC_URI ?= "git://github.com/raspberrypi/firmware.git;protocol=git;branch=master"
-RPIFW_S ?= "${WORKDIR}/git"
+RPIFW_DATE ?= "20161125"
+RPIFW_SRC_URI ?= "https://github.com/raspberrypi/firmware/archive/1.${RPIFW_DATE}.tar.gz"
+RPIFW_S ?= "${WORKDIR}/firmware-1.${RPIFW_DATE}"
SRC_URI = "${RPIFW_SRC_URI}"
-SRCREV = "${RPIFW_SRCREV}"
+SRC_URI[md5sum] = "a9281d2869e2d7673a83d41bacfa66c2"
+SRC_URI[sha256sum] = "744e050630621c70991c91e0ee8663dc2f579e743583ca762b13b00bc75859bc"
+
PV = "${RPIFW_DATE}"
+
diff --git a/import-layers/meta-raspberrypi/recipes-bsp/rpi-u-boot-scr/files/boot.cmd b/import-layers/meta-raspberrypi/recipes-bsp/rpi-u-boot-scr/files/boot.cmd
new file mode 100644
index 000000000..2e8452e89
--- /dev/null
+++ b/import-layers/meta-raspberrypi/recipes-bsp/rpi-u-boot-scr/files/boot.cmd
@@ -0,0 +1,3 @@
+fdt addr ${fdt_addr} && fdt get value bootargs /chosen bootargs
+fatload mmc 0:1 ${kernel_addr_r} uImage
+bootm ${kernel_addr_r} - ${fdt_addr}
diff --git a/import-layers/meta-raspberrypi/recipes-bsp/rpi-u-boot-scr/rpi-u-boot-scr.bb b/import-layers/meta-raspberrypi/recipes-bsp/rpi-u-boot-scr/rpi-u-boot-scr.bb
new file mode 100644
index 000000000..4936dcfd3
--- /dev/null
+++ b/import-layers/meta-raspberrypi/recipes-bsp/rpi-u-boot-scr/rpi-u-boot-scr.bb
@@ -0,0 +1,21 @@
+SUMMARY = "U-boot boot scripts for Raspberry Pi"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+COMPATIBLE_MACHINE = "rpi"
+
+DEPENDS = "u-boot-mkimage-native"
+
+SRC_URI = "file://boot.cmd"
+
+do_compile() {
+ mkimage -A arm -T script -C none -n "Boot script" -d "${WORKDIR}/boot.cmd" boot.scr
+}
+
+inherit deploy
+
+do_deploy() {
+ install -d ${DEPLOYDIR}
+ install -m 0644 boot.scr ${DEPLOYDIR}
+}
+
+addtask do_deploy after do_compile before do_build
diff --git a/import-layers/meta-raspberrypi/recipes-bsp/u-boot/files/0001-arm-add-save_boot_params-for-ARM1176.patch b/import-layers/meta-raspberrypi/recipes-bsp/u-boot/files/0001-arm-add-save_boot_params-for-ARM1176.patch
new file mode 100644
index 000000000..a5ebff510
--- /dev/null
+++ b/import-layers/meta-raspberrypi/recipes-bsp/u-boot/files/0001-arm-add-save_boot_params-for-ARM1176.patch
@@ -0,0 +1,56 @@
+From 3e10fcde3f3c24a488866dd33fa3f5d46ff3d7a3 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?C=C3=A9dric=20Schieli?= <cschieli@gmail.com>
+Date: Fri, 11 Nov 2016 11:59:06 +0100
+Subject: [PATCH] arm: add save_boot_params for ARM1176
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Implement a hook to allow boards to save boot-time CPU state for later
+use. When U-Boot is chain-loaded by another bootloader, CPU registers may
+contain useful information such as system configuration information. This
+feature mirrors the equivalent ARMv7 feature.
+
+Signed-off-by: Cédric Schieli <cschieli@gmail.com>
+Acked-by: Stephen Warren <swarren@nvidia.com>
+Signed-off-by: Paul Barker <paul@paulbarker.me.uk>
+Upstream-status: Backport
+---
+ arch/arm/cpu/arm1176/start.S | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/arch/arm/cpu/arm1176/start.S b/arch/arm/cpu/arm1176/start.S
+index a602d4e..7c00201 100644
+--- a/arch/arm/cpu/arm1176/start.S
++++ b/arch/arm/cpu/arm1176/start.S
+@@ -16,6 +16,7 @@
+
+ #include <asm-offsets.h>
+ #include <config.h>
++#include <linux/linkage.h>
+
+ #ifndef CONFIG_SYS_PHY_UBOOT_BASE
+ #define CONFIG_SYS_PHY_UBOOT_BASE CONFIG_SYS_UBOOT_BASE
+@@ -37,6 +38,11 @@
+ .globl reset
+
+ reset:
++ /* Allow the board to save important registers */
++ b save_boot_params
++.globl save_boot_params_ret
++save_boot_params_ret:
++
+ /*
+ * set the cpu to SVC32 mode
+ */
+@@ -110,3 +116,7 @@ mmu_disable_phys:
+ c_runtime_cpu_setup:
+
+ mov pc, lr
++
++WEAK(save_boot_params)
++ b save_boot_params_ret /* back to my caller */
++ENDPROC(save_boot_params)
+--
+2.1.4
+
diff --git a/import-layers/meta-raspberrypi/recipes-bsp/u-boot/files/0002-rpi-passthrough-of-the-firmware-provided-FDT-blob.patch b/import-layers/meta-raspberrypi/recipes-bsp/u-boot/files/0002-rpi-passthrough-of-the-firmware-provided-FDT-blob.patch
new file mode 100644
index 000000000..323b7ab40
--- /dev/null
+++ b/import-layers/meta-raspberrypi/recipes-bsp/u-boot/files/0002-rpi-passthrough-of-the-firmware-provided-FDT-blob.patch
@@ -0,0 +1,156 @@
+From ade243a211d62327e9ebadce27bbbff7981e37f0 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?C=C3=A9dric=20Schieli?= <cschieli@gmail.com>
+Date: Fri, 11 Nov 2016 11:59:07 +0100
+Subject: [PATCH] rpi: passthrough of the firmware provided FDT blob
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Raspberry firmware used to pass a FDT blob at a fixed address (0x100),
+but this is not true anymore. The address now depends on both the
+memory size and the blob size [1].
+
+If one wants to passthrough this FDT blob to the kernel, the most
+reliable way is to save its address from the r2/x0 register in the
+U-Boot entry point and expose it in a environment variable for
+further processing.
+
+This patch just does this:
+- save the provided address in the global variable fw_dtb_pointer
+- expose it in ${fdt_addr} if it points to a a valid FDT blob
+
+There are many different ways to use it. One can, for example, use
+the following script which will extract from the tree the command
+line built by the firmware, then hand over the blob to a previously
+loaded kernel:
+
+fdt addr ${fdt_addr}
+fdt get value bootargs /chosen bootargs
+bootz ${kernel_addr_r} - ${fdt_addr}
+
+Alternatively, users relying on sysboot/pxe can simply omit any FDT
+statement in their extlinux.conf file, U-Boot will automagically pick
+${fdt_addr} and pass it to the kernel.
+
+[1] https://www.raspberrypi.org/forums//viewtopic.php?f=107&t=134018
+
+Upstream-Status: Backport
+
+Signed-off-by: Cédric Schieli <cschieli@gmail.com>
+Acked-by: Stephen Warren <swarren@nvidia.com>
+Signed-off-by: Jonathan Liu <net147@gmail.com>
+---
+ board/raspberrypi/rpi/Makefile | 1 +
+ board/raspberrypi/rpi/lowlevel_init.S | 36 +++++++++++++++++++++++++++++++++++
+ board/raspberrypi/rpi/rpi.c | 29 ++++++++++++++++++++++++++++
+ 3 files changed, 66 insertions(+)
+ create mode 100644 board/raspberrypi/rpi/lowlevel_init.S
+
+diff --git a/board/raspberrypi/rpi/Makefile b/board/raspberrypi/rpi/Makefile
+index 4ce2c98..dcb25ac 100644
+--- a/board/raspberrypi/rpi/Makefile
++++ b/board/raspberrypi/rpi/Makefile
+@@ -5,3 +5,4 @@
+ #
+
+ obj-y := rpi.o
++obj-y += lowlevel_init.o
+diff --git a/board/raspberrypi/rpi/lowlevel_init.S b/board/raspberrypi/rpi/lowlevel_init.S
+new file mode 100644
+index 0000000..cdbd8e1
+--- /dev/null
++++ b/board/raspberrypi/rpi/lowlevel_init.S
+@@ -0,0 +1,36 @@
++/*
++ * (C) Copyright 2016
++ * Cédric Schieli <cschieli@gmail.com>
++ *
++ * SPDX-License-Identifier: GPL-2.0+
++ */
++
++#include <config.h>
++
++.align 8
++.global fw_dtb_pointer
++fw_dtb_pointer:
++#ifdef CONFIG_ARM64
++ .dword 0x0
++#else
++ .word 0x0
++#endif
++
++/*
++ * Routine: save_boot_params (called after reset from start.S)
++ * Description: save ATAG/FDT address provided by the firmware at boot time
++ */
++
++.global save_boot_params
++save_boot_params:
++
++ /* The firmware provided ATAG/FDT address can be found in r2/x0 */
++#ifdef CONFIG_ARM64
++ adr x8, fw_dtb_pointer
++ str x0, [x8]
++#else
++ str r2, fw_dtb_pointer
++#endif
++
++ /* Returns */
++ b save_boot_params_ret
+diff --git a/board/raspberrypi/rpi/rpi.c b/board/raspberrypi/rpi/rpi.c
+index 6245b36..ffd6d31 100644
+--- a/board/raspberrypi/rpi/rpi.c
++++ b/board/raspberrypi/rpi/rpi.c
+@@ -25,6 +25,9 @@
+
+ DECLARE_GLOBAL_DATA_PTR;
+
++/* From lowlevel_init.S */
++extern unsigned long fw_dtb_pointer;
++
+ static const struct bcm2835_gpio_platdata gpio_platdata = {
+ .base = BCM2835_GPIO_BASE,
+ };
+@@ -285,6 +288,31 @@ static void set_fdtfile(void)
+ setenv("fdtfile", fdtfile);
+ }
+
++/*
++ * If the firmware provided a valid FDT at boot time, let's expose it in
++ * ${fdt_addr} so it may be passed unmodified to the kernel.
++ */
++static void set_fdt_addr(void)
++{
++ if (getenv("fdt_addr"))
++ return;
++
++ if (fdt_magic(fw_dtb_pointer) != FDT_MAGIC)
++ return;
++
++ setenv_hex("fdt_addr", fw_dtb_pointer);
++}
++
++/*
++ * Prevent relocation from stomping on a firmware provided FDT blob.
++ */
++unsigned long board_get_usable_ram_top(unsigned long total_size)
++{
++ if ((gd->ram_top - fw_dtb_pointer) > SZ_64M)
++ return gd->ram_top;
++ return fw_dtb_pointer & ~0xffff;
++}
++
+ static void set_usbethaddr(void)
+ {
+ ALLOC_CACHE_ALIGN_BUFFER(struct msg_get_mac_address, msg, 1);
+@@ -356,6 +384,7 @@ static void set_serial_number(void)
+
+ int misc_init_r(void)
+ {
++ set_fdt_addr();
+ set_fdtfile();
+ set_usbethaddr();
+ #ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
+--
+2.10.2
+
diff --git a/import-layers/meta-raspberrypi/recipes-bsp/u-boot/files/0003-Include-lowlevel_init.o-for-rpi2.patch b/import-layers/meta-raspberrypi/recipes-bsp/u-boot/files/0003-Include-lowlevel_init.o-for-rpi2.patch
new file mode 100644
index 000000000..1431a2e62
--- /dev/null
+++ b/import-layers/meta-raspberrypi/recipes-bsp/u-boot/files/0003-Include-lowlevel_init.o-for-rpi2.patch
@@ -0,0 +1,25 @@
+From 1eb01436bc57ad32519a4567a1c9ec82d52d60a1 Mon Sep 17 00:00:00 2001
+From: Paul Barker <paul@paulbarker.me.uk>
+Date: Tue, 29 Nov 2016 19:47:49 +0000
+Subject: [PATCH] Include lowlevel_init.o for rpi2
+
+Signed-off-by: Paul Barker <paul@paulbarker.me.uk>
+Upstream-status: Inappropriate
+ (not needed upstream as rpi_2 board directory is removed in latest
+ version)
+---
+ board/raspberrypi/rpi_2/Makefile | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/board/raspberrypi/rpi_2/Makefile b/board/raspberrypi/rpi_2/Makefile
+index d82cd21..9f865c5 100644
+--- a/board/raspberrypi/rpi_2/Makefile
++++ b/board/raspberrypi/rpi_2/Makefile
+@@ -5,3 +5,4 @@
+ #
+
+ obj-y := ../rpi/rpi.o
++obj-y += ../rpi/lowlevel_init.o
+--
+2.1.4
+
diff --git a/import-layers/meta-raspberrypi/recipes-bsp/u-boot/u-boot_%.bbappend b/import-layers/meta-raspberrypi/recipes-bsp/u-boot/u-boot_%.bbappend
new file mode 100644
index 000000000..a4545f005
--- /dev/null
+++ b/import-layers/meta-raspberrypi/recipes-bsp/u-boot/u-boot_%.bbappend
@@ -0,0 +1,7 @@
+FILESEXTRAPATHS_prepend_rpi := "${THISDIR}/files:"
+RDEPENDS_${PN}_append_rpi = " rpi-u-boot-scr"
+SRC_URI_append_rpi = " \
+ file://0001-arm-add-save_boot_params-for-ARM1176.patch \
+ file://0002-rpi-passthrough-of-the-firmware-provided-FDT-blob.patch \
+ file://0003-Include-lowlevel_init.o-for-rpi2.patch \
+ "
diff --git a/import-layers/meta-raspberrypi/recipes-connectivity/bluez5/bluez5_%.bbappend b/import-layers/meta-raspberrypi/recipes-connectivity/bluez5/bluez5_%.bbappend
index 89798a4db..956d77664 100644
--- a/import-layers/meta-raspberrypi/recipes-connectivity/bluez5/bluez5_%.bbappend
+++ b/import-layers/meta-raspberrypi/recipes-connectivity/bluez5/bluez5_%.bbappend
@@ -23,4 +23,4 @@ FILES_${PN}_append_raspberrypi3 = " \
/lib/firmware/brcm/BCM43430A1.hcd \
"
-SYSTEMD_SERVICE_${PN}_raspberrypi3 += "brcm43438.service"
+SYSTEMD_SERVICE_${PN}_append_raspberrypi3 = " brcm43438.service"
diff --git a/import-layers/meta-raspberrypi/recipes-devtools/bcm2835/bcm2835_1.46.bb b/import-layers/meta-raspberrypi/recipes-devtools/bcm2835/bcm2835_1.50.bb
index dd37b8f36..9cf6f484f 100644
--- a/import-layers/meta-raspberrypi/recipes-devtools/bcm2835/bcm2835_1.46.bb
+++ b/import-layers/meta-raspberrypi/recipes-devtools/bcm2835/bcm2835_1.50.bb
@@ -12,8 +12,8 @@ COMPATIBLE_MACHINE = "raspberrypi"
SRC_URI = "http://www.airspayce.com/mikem/bcm2835/bcm2835-${PV}.tar.gz"
-SRC_URI[md5sum] = "3a40c01ee7d81fbff80c54fbe1a351b5"
-SRC_URI[sha256sum] = "fc6b0412525e6b7e85aeffec67e2d01a99fb906346620041e6684d59ea5517a7"
+SRC_URI[md5sum] = "258caf3437012d09a651e1852d0bd60c"
+SRC_URI[sha256sum] = "52180b8a61b6546c1df4aed259d0a4d2fa56e50605e0d4d967a76bf2b23dafb8"
inherit autotools
@@ -21,7 +21,7 @@ do_compile_append() {
# Now compiling the examples provided by the package
mkdir -p ${B}/examples
for file in `ls ${S}/examples`; do
- ${CC} ${S}/examples/${file}/${file}.c -o ${B}/examples/${file} -Bstatic -L${B}/src -lbcm2835 -I${S}/src
+ ${CC} ${LDFLAGS} ${S}/examples/${file}/${file}.c -o ${B}/examples/${file} -Bstatic -L${B}/src -lbcm2835 -I${S}/src
done
}
diff --git a/import-layers/meta-raspberrypi/recipes-devtools/wiringPi/files/0001-Add-initial-cross-compile-support.patch b/import-layers/meta-raspberrypi/recipes-devtools/wiringPi/files/0001-Add-initial-cross-compile-support.patch
index ed47fab81..603422c6d 100644
--- a/import-layers/meta-raspberrypi/recipes-devtools/wiringPi/files/0001-Add-initial-cross-compile-support.patch
+++ b/import-layers/meta-raspberrypi/recipes-devtools/wiringPi/files/0001-Add-initial-cross-compile-support.patch
@@ -51,7 +51,7 @@ index 0fb0033..cbea759 100644
$(DYNAMIC): $(OBJ)
$Q echo "[Link (Dynamic)]"
- $Q $(CC) -shared -Wl,-soname,libwiringPiDev.so$(WIRINGPI_SONAME_SUFFIX) -o libwiringPiDev.so.$(VERSION) -lpthread $(OBJ)
-+ $Q $(CC) -shared -Wl,-soname,$(BASE_NAME).so.$(DYN_VERS_MAJ) -o $(BASE_NAME).so -lpthread $(OBJ)
++ $Q $(CC) -shared $(LDFLAGS) -Wl,-soname,$(BASE_NAME).so.$(DYN_VERS_MAJ) -o $(BASE_NAME).so -lpthread $(OBJ)
.c.o:
$Q echo [Compile] $<
@@ -341,7 +341,7 @@ index 6bbcc5d..5355b74 100644
$(DYNAMIC): $(OBJ)
$Q echo "[Link (Dynamic)]"
- $Q $(CC) -shared -Wl,-soname,libwiringPi.so$(WIRINGPI_SONAME_SUFFIX) -o libwiringPi.so.$(VERSION) -lpthread $(OBJ)
-+ $Q $(CC) -shared -Wl,-soname,$(BASE_NAME).so.$(DYN_VERS_MAJ) -o $(BASE_NAME).so -lpthread $(OBJ)
++ $Q $(CC) $(LDFLAGS) -shared -Wl,-soname,$(BASE_NAME).so.$(DYN_VERS_MAJ) -o $(BASE_NAME).so -lpthread $(OBJ)
.c.o:
$Q echo [Compile] $<
diff --git a/import-layers/meta-raspberrypi/recipes-devtools/wiringPi/wiringpi_git.bb b/import-layers/meta-raspberrypi/recipes-devtools/wiringPi/wiringpi_git.bb
index 9d2206bc1..c337b19f4 100644
--- a/import-layers/meta-raspberrypi/recipes-devtools/wiringPi/wiringpi_git.bb
+++ b/import-layers/meta-raspberrypi/recipes-devtools/wiringPi/wiringpi_git.bb
@@ -4,8 +4,8 @@ SECTION = "devel/libs"
LICENSE = "LGPLv3+"
LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=e6a600fd5e1d9cbde2d983680233ad02"
-# tag 2.29
-SRCREV = "d79506694d7ba1c3da865d095238289d6175057d"
+# tag 2.32
+SRCREV = "b0a60c3302973ca1878d149d61f2f612c8f27fac"
S = "${WORKDIR}/git"
@@ -16,7 +16,7 @@ SRC_URI = "git://git.drogon.net/wiringPi \
COMPATIBLE_MACHINE = "raspberrypi"
-CFLAGS_prepend = "-I${S}/wiringPi -I${S}/devLib"
+CFLAGS_prepend = "-I${S}/wiringPi -I${S}/devLib "
EXTRA_OEMAKE += "'INCLUDE_DIR=${D}${includedir}' 'LIB_DIR=${D}${libdir}'"
EXTRA_OEMAKE += "'DESTDIR=${D}/usr' 'PREFIX=""'"
diff --git a/import-layers/meta-raspberrypi/recipes-graphics/eglinfo/eglinfo-x11_%.bbappend b/import-layers/meta-raspberrypi/recipes-graphics/eglinfo/eglinfo-x11_%.bbappend
index fd32abc45..2d720baaa 100644
--- a/import-layers/meta-raspberrypi/recipes-graphics/eglinfo/eglinfo-x11_%.bbappend
+++ b/import-layers/meta-raspberrypi/recipes-graphics/eglinfo/eglinfo-x11_%.bbappend
@@ -1,2 +1,2 @@
-EGLINFO_DEVICE_rpi = "raspberrypi"
+EGLINFO_DEVICE_rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', 'generic', 'raspberrypi', d)}"
ASNEEDED = ""
diff --git a/import-layers/meta-raspberrypi/recipes-graphics/mesa/mesa_%.bbappend b/import-layers/meta-raspberrypi/recipes-graphics/mesa/mesa_%.bbappend
new file mode 100644
index 000000000..e7890224c
--- /dev/null
+++ b/import-layers/meta-raspberrypi/recipes-graphics/mesa/mesa_%.bbappend
@@ -0,0 +1,3 @@
+PACKAGECONFIG_append_rpi = " gallium"
+GALLIUMDRIVERS_rpi = "vc4"
+DRIDRIVERS_rpi = ""
diff --git a/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0001-Allow-applications-to-set-next-resource-handle.patch b/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0001-Allow-applications-to-set-next-resource-handle.patch
index 4d026bda8..4f72845dc 100644
--- a/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0001-Allow-applications-to-set-next-resource-handle.patch
+++ b/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0001-Allow-applications-to-set-next-resource-handle.patch
@@ -1,7 +1,7 @@
-From 83c5ac5892d0cd29caa8922ff8b639b9a373c3cb Mon Sep 17 00:00:00 2001
+From 4b68419e58ef31e72abab688d0c7cc5db80efc13 Mon Sep 17 00:00:00 2001
From: Dom Cobley <dc4@broadcom.com>
Date: Tue, 9 Jul 2013 09:26:26 -0400
-Subject: [PATCH 01/13] Allow applications to set next resource handle
+Subject: [PATCH 01/12] Allow applications to set next resource handle
This patch adds provisions in userland to
let apps callers set the next rendereing dispmanx resource.
@@ -16,10 +16,10 @@ It's useful for implementing, say, a buffer carousel.
6 files changed, 59 insertions(+), 7 deletions(-)
diff --git a/interface/khronos/common/khrn_client_rpc.h b/interface/khronos/common/khrn_client_rpc.h
-index 418aa67..a7557a8 100644
+index dc4351d..10ea060 100644
--- a/interface/khronos/common/khrn_client_rpc.h
+++ b/interface/khronos/common/khrn_client_rpc.h
-@@ -683,6 +683,7 @@ static INLINE void rpc_call12_out_ctrl(CLIENT_THREAD_STATE_T *thread,uint32_t id
+@@ -685,6 +685,7 @@ static INLINE void rpc_call12_out_ctrl(CLIENT_THREAD_STATE_T *thread,uint32_t id
static INLINE void rpc_call13_out_ctrl(CLIENT_THREAD_STATE_T *thread,uint32_t id, uint32_t p0, uint32_t p1, uint32_t p2, uint32_t p3, uint32_t p4, uint32_t p5, uint32_t p6, uint32_t p7, uint32_t p8, uint32_t p9, uint32_t p10, uint32_t p11, void *out) { rpc_begin(thread); RPC_CALL(thread, id, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11); rpc_recv(thread, out, NULL, (RPC_RECV_FLAG_T)(RPC_RECV_FLAG_CTRL | RPC_RECV_FLAG_LEN)); rpc_end(thread); }
static INLINE void rpc_call14_out_ctrl(CLIENT_THREAD_STATE_T *thread,uint32_t id, uint32_t p0, uint32_t p1, uint32_t p2, uint32_t p3, uint32_t p4, uint32_t p5, uint32_t p6, uint32_t p7, uint32_t p8, uint32_t p9, uint32_t p10, uint32_t p11, uint32_t p12, void *out) { rpc_begin(thread); RPC_CALL(thread, id, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12); rpc_recv(thread, out, NULL, (RPC_RECV_FLAG_T)(RPC_RECV_FLAG_CTRL | RPC_RECV_FLAG_LEN)); rpc_end(thread); }
static INLINE void rpc_call15_out_ctrl(CLIENT_THREAD_STATE_T *thread,uint32_t id, uint32_t p0, uint32_t p1, uint32_t p2, uint32_t p3, uint32_t p4, uint32_t p5, uint32_t p6, uint32_t p7, uint32_t p8, uint32_t p9, uint32_t p10, uint32_t p11, uint32_t p12, uint32_t p13, void *out) { rpc_begin(thread); RPC_CALL(thread, id, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13); rpc_recv(thread, out, NULL, (RPC_RECV_FLAG_T)(RPC_RECV_FLAG_CTRL | RPC_RECV_FLAG_LEN)); rpc_end(thread); }
@@ -27,7 +27,7 @@ index 418aa67..a7557a8 100644
#endif
#define RPC_CALL1_OUT_CTRL(fn, thread, id, out) rpc_call1_out_ctrl(thread, id, out)
-@@ -700,6 +701,7 @@ static INLINE void rpc_call15_out_ctrl(CLIENT_THREAD_STATE_T *thread,uint32_t id
+@@ -702,6 +703,7 @@ static INLINE void rpc_call15_out_ctrl(CLIENT_THREAD_STATE_T *thread,uint32_t id
#define RPC_CALL13_OUT_CTRL(fn, thread, id, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, out) rpc_call13_out_ctrl(thread, id, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, out)
#define RPC_CALL14_OUT_CTRL(fn, thread, id, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, out) rpc_call14_out_ctrl(thread, id, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, out)
#define RPC_CALL15_OUT_CTRL(fn, thread, id, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, out) rpc_call15_out_ctrl(thread, id, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, out)
@@ -56,7 +56,7 @@ index 8378f4a..ec961e0 100644
#define EGLINTFLUSH_ID 0x400c
#define EGLINTGETCOLORDATA_ID 0x400d
diff --git a/interface/khronos/egl/egl_client.c b/interface/khronos/egl/egl_client.c
-index 472ef0c..234da65 100644
+index 9d617c8..b8bb374 100644
--- a/interface/khronos/egl/egl_client.c
+++ b/interface/khronos/egl/egl_client.c
@@ -162,6 +162,17 @@ static void egl_current_release(CLIENT_PROCESS_STATE_T *process, EGL_CURRENT_T *
@@ -125,7 +125,7 @@ index 472ef0c..234da65 100644
thread,
EGLINTSWAPBUFFERS_ID,
diff --git a/interface/khronos/egl/egl_client_surface.c b/interface/khronos/egl/egl_client_surface.c
-index 0fa1fd1..0dc10e2 100644
+index 6846dfa..128325e 100644
--- a/interface/khronos/egl/egl_client_surface.c
+++ b/interface/khronos/egl/egl_client_surface.c
@@ -314,7 +314,8 @@ EGL_SURFACE_T *egl_surface_create(
@@ -204,5 +204,5 @@ index 8a5734c..51b3580 100644
FN(void, eglIntGetColorData_impl, (EGL_SURFACE_ID_T s, KHRN_IMAGE_FORMAT_T format, uint32_t width, uint32_t height, int32_t stride, uint32_t y_offset, void *data))
--
-2.9.0
+2.10.2
diff --git a/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0002-wayland-Add-support-for-the-Wayland-winsys.patch b/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0002-wayland-Add-support-for-the-Wayland-winsys.patch
index aa09ddac9..6cc8ea84c 100644
--- a/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0002-wayland-Add-support-for-the-Wayland-winsys.patch
+++ b/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0002-wayland-Add-support-for-the-Wayland-winsys.patch
@@ -1,7 +1,7 @@
-From 79ce2b4125359593f37c5b9744a37203e24249de Mon Sep 17 00:00:00 2001
+From e3d2d0007e1c6c32ab7d9a28f1e399d42b511333 Mon Sep 17 00:00:00 2001
From: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Date: Tue, 1 Oct 2013 13:19:20 +0200
-Subject: [PATCH 02/13] wayland: Add support for the Wayland winsys
+Subject: [PATCH 02/12] wayland: Add support for the Wayland winsys
* Adds EGL_WL_bind_wayland_display extension
* Adds wayland-egl library
@@ -20,8 +20,9 @@ vc_vchi_dispmanx.h
.gitignore | 2 +
CMakeLists.txt | 11 +
README.md | 4 +
- buildme | 14 +-
- interface/khronos/CMakeLists.txt | 52 ++++-
+ buildme | 10 +-
+ .../linux/apps/raspicam/CMakeLists.txt | 2 +-
+ interface/khronos/CMakeLists.txt | 53 ++++-
interface/khronos/common/khrn_client.c | 15 ++
interface/khronos/common/khrn_client.h | 10 +
interface/khronos/common/khrn_client_mangle.h | 3 +
@@ -46,7 +47,7 @@ vc_vchi_dispmanx.h
interface/vmcs_host/vc_vchi_dispmanx.h | 15 ++
interface/wayland/dispmanx.xml | 123 +++++++++++
makefiles/cmake/Wayland.cmake | 72 ++++++
- 29 files changed, 1260 insertions(+), 97 deletions(-)
+ 30 files changed, 1258 insertions(+), 98 deletions(-)
create mode 100644 interface/khronos/common/linux/khrn_wayland.c
copy interface/{vmcs_host/vc_vchi_dispmanx.h => khronos/common/linux/khrn_wayland.h} (56%)
create mode 100644 interface/khronos/ext/egl_wayland.c
@@ -57,20 +58,20 @@ vc_vchi_dispmanx.h
create mode 100644 makefiles/cmake/Wayland.cmake
diff --git a/.gitignore b/.gitignore
-index 8df9393..d0d1387 100644
+index 4a88665..5da71a9 100644
--- a/.gitignore
+++ b/.gitignore
-@@ -10,3 +10,5 @@
+@@ -13,3 +13,5 @@ build/
*.lai
*.la
*.a
+
+*~
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 3113618..56b7fb8 100644
+index 98252c3..d6ae907 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -19,6 +19,17 @@ include(makefiles/cmake/global_settings.cmake)
+@@ -24,6 +24,17 @@ include(makefiles/cmake/global_settings.cmake)
include(makefiles/cmake/arm-linux.cmake)
include(makefiles/cmake/vmcs.cmake)
@@ -101,11 +102,12 @@ index 358d2b4..4da4448 100644
+
+$ BUILD_WAYLAND=1 ./buildme.
diff --git a/buildme b/buildme
-index d5d3de9..c46f214 100755
+index 1061745..d0e6e54 100755
--- a/buildme
+++ b/buildme
-@@ -1,10 +1,14 @@
- #!/bin/bash
+@@ -8,6 +8,10 @@ fi
+
+ BUILDSUBDIR=`echo $BUILDTYPE | tr '[A-Z]' '[a-z]'`;
+if [ -n "$BUILD_WAYLAND" ]; then
+ WAYLAND_VARS="-DBUILD_WAYLAND=TRUE"
@@ -113,32 +115,37 @@ index d5d3de9..c46f214 100755
+
if [ "armv6l" = `arch` ] || [ "armv7l" = `arch` ]; then
# Native compile on the Raspberry Pi
- mkdir -p build/raspberry/release
- pushd build/raspberry/release
-- cmake -DCMAKE_BUILD_TYPE=Release ../../..
-+ cmake -DCMAKE_BUILD_TYPE=Release $WAYLAND_VARS ../../..
- if [ "armv6l" = `arch` ]; then
- make
- else
-@@ -17,9 +21,15 @@ if [ "armv6l" = `arch` ] || [ "armv7l" = `arch` ]; then
- fi
+ mkdir -p build/raspberry/$BUILDSUBDIR
+@@ -32,9 +36,13 @@ elif [ "$1" = "--native" ]; then
+ make -j 6 $*
else
# Cross compile on a more capable machine
-+
+ if [ -n "$BUILD_WAYLAND" ]; then
+ # Use wayland-scanner from the build platform
+ WAYLAND_VARS+=" -DWAYLAND_SCANNER_EXECUTABLE:FILEPATH=/usr/bin/wayland-scanner"
+ fi
-+
- mkdir -p build/arm-linux/release/
- pushd build/arm-linux/release/
-- cmake -DCMAKE_TOOLCHAIN_FILE=../../../makefiles/cmake/toolchains/arm-linux-gnueabihf.cmake -DCMAKE_BUILD_TYPE=Release ../../..
-+ cmake -DCMAKE_TOOLCHAIN_FILE=../../../makefiles/cmake/toolchains/arm-linux-gnueabihf.cmake -DCMAKE_BUILD_TYPE=Release $WAYLAND_VARS ../../..
+ mkdir -p build/arm-linux/$BUILDSUBDIR
+ pushd build/arm-linux/$BUILDSUBDIR
+- cmake -DCMAKE_TOOLCHAIN_FILE=../../../makefiles/cmake/toolchains/arm-linux-gnueabihf.cmake -DCMAKE_BUILD_TYPE=$BUILDTYPE ../../..
++ cmake -DCMAKE_TOOLCHAIN_FILE=../../../makefiles/cmake/toolchains/arm-linux-gnueabihf.cmake -DCMAKE_BUILD_TYPE=$BUILDTYPE $WAYLAND_VARS ../../..
make -j 6
if [ "$1" != "" ]; then
+diff --git a/host_applications/linux/apps/raspicam/CMakeLists.txt b/host_applications/linux/apps/raspicam/CMakeLists.txt
+index e6aa6b8..69059cb 100644
+--- a/host_applications/linux/apps/raspicam/CMakeLists.txt
++++ b/host_applications/linux/apps/raspicam/CMakeLists.txt
+@@ -28,7 +28,7 @@ add_executable(raspividyuv ${COMMON_SOURCES} RaspiVidYUV.c)
+
+ set (MMAL_LIBS mmal_core mmal_util mmal_vc_client)
+
+-target_link_libraries(raspistill ${MMAL_LIBS} vcos bcm_host brcmGLESv2 brcmEGL m)
++target_link_libraries(raspistill ${MMAL_LIBS} vcos bcm_host brcmGLESv2 brcmEGL m ${WAYLAND_SERVER_LIBRARIES} ${WAYLAND_CLIENT_LIBRARIES})
+ target_link_libraries(raspiyuv ${MMAL_LIBS} vcos bcm_host)
+ target_link_libraries(raspivid ${MMAL_LIBS} vcos bcm_host)
+ target_link_libraries(raspividyuv ${MMAL_LIBS} vcos bcm_host)
diff --git a/interface/khronos/CMakeLists.txt b/interface/khronos/CMakeLists.txt
-index c437291..6778e10 100644
+index 9ad615b..3d3571a 100644
--- a/interface/khronos/CMakeLists.txt
+++ b/interface/khronos/CMakeLists.txt
@@ -6,6 +6,12 @@
@@ -154,7 +161,7 @@ index c437291..6778e10 100644
set(EGL_SOURCE
egl/egl_client_config.c
egl/egl_client_context.c
-@@ -55,19 +61,63 @@ set(CLIENT_SOURCE
+@@ -55,12 +61,56 @@ set(CLIENT_SOURCE
common/khrn_int_hash_asm.s
common/khrn_client_cache.c)
@@ -211,16 +218,18 @@ index c437291..6778e10 100644
# TODO do we need EGL_static and GLESv2_static now that khrn_static exists?
add_library(EGL_static STATIC ${EGL_SOURCE})
add_library(GLESv2_static STATIC ${GLES_SOURCE})
- add_library(khrn_static STATIC
- ${EGL_SOURCE} ${GLES_SOURCE} ${VG_SOURCE} ${WFC_SOURCE} ${CLIENT_SOURCE})
-
--target_link_libraries(EGL khrn_client vchiq_arm vcos bcm_host -lm)
-+target_link_libraries(EGL ${EGL_LIBS})
+@@ -72,8 +122,7 @@ include_directories (../../host_applications/linux/libs/sm )
+ set(VCSM_LIBS vcsm)
+ add_definitions(-DKHRONOS_HAVE_VCSM)
+ endif()
+-
+-target_link_libraries(EGL khrn_client vchiq_arm vcos bcm_host ${VCSM_LIBS} -lm)
++target_link_libraries(EGL ${EGL_LIBS} ${VCSM_LIBS})
target_link_libraries(GLESv2 EGL khrn_client vcos)
target_link_libraries(WFC EGL)
target_link_libraries(OpenVG EGL)
diff --git a/interface/khronos/common/khrn_client.c b/interface/khronos/common/khrn_client.c
-index e38a85f..783a68e 100644
+index ef4babd..d7e798e 100644
--- a/interface/khronos/common/khrn_client.c
+++ b/interface/khronos/common/khrn_client.c
@@ -54,6 +54,10 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -333,7 +342,7 @@ index 4f3ce49..84f6ec0 100644
/* OpenGL ES 1.1 and 2.0 functions */
diff --git a/interface/khronos/common/linux/khrn_client_platform_linux.c b/interface/khronos/common/linux/khrn_client_platform_linux.c
-index 9d43d15..00821d3 100644
+index 710d20f..50d60a6 100644
--- a/interface/khronos/common/linux/khrn_client_platform_linux.c
+++ b/interface/khronos/common/linux/khrn_client_platform_linux.c
@@ -37,6 +37,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -348,7 +357,7 @@ index 9d43d15..00821d3 100644
extern VCOS_LOG_CAT_T khrn_client_log;
extern void vc_vchi_khronos_init();
-@@ -460,13 +465,36 @@ EGLDisplay khrn_platform_set_display_id(EGLNativeDisplayType display_id)
+@@ -464,13 +469,36 @@ EGLDisplay khrn_platform_set_display_id(EGLNativeDisplayType display_id)
return EGL_NO_DISPLAY;
}
#else
@@ -387,7 +396,7 @@ index 9d43d15..00821d3 100644
#endif
#ifdef WANT_X
-@@ -801,22 +829,81 @@ static EGL_DISPMANX_WINDOW_T *check_default(EGLNativeWindowType win)
+@@ -805,22 +833,81 @@ static EGL_DISPMANX_WINDOW_T *check_default(EGLNativeWindowType win)
void platform_get_dimensions(EGLDisplay dpy, EGLNativeWindowType win,
uint32_t *width, uint32_t *height, uint32_t *swapchain_count)
{
@@ -767,7 +776,7 @@ index b723b76..b9bf08c 100644
-#endif
+struct wl_dispmanx_client_buffer *allocate_wl_buffer(struct wl_egl_window *window, KHRN_IMAGE_FORMAT_T color);
diff --git a/interface/khronos/egl/egl_client.c b/interface/khronos/egl/egl_client.c
-index 234da65..024f3ed 100644
+index b8bb374..03fe67b 100644
--- a/interface/khronos/egl/egl_client.c
+++ b/interface/khronos/egl/egl_client.c
@@ -153,6 +153,10 @@ by an attribute value"
@@ -941,7 +950,7 @@ index 4cfa9ff..6a715af 100644
}
diff --git a/interface/khronos/egl/egl_client_surface.c b/interface/khronos/egl/egl_client_surface.c
-index 0dc10e2..49cf7e5 100644
+index 128325e..42350bf 100644
--- a/interface/khronos/egl/egl_client_surface.c
+++ b/interface/khronos/egl/egl_client_surface.c
@@ -46,6 +46,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -1533,7 +1542,7 @@ index 0000000..8bafc15
+Libs: -L${libdir} -lwayland-egl
+Cflags: -I${includedir}
diff --git a/interface/vmcs_host/CMakeLists.txt b/interface/vmcs_host/CMakeLists.txt
-index e0c6e13..35150ed 100755
+index 0b3adc9..f44d01f 100755
--- a/interface/vmcs_host/CMakeLists.txt
+++ b/interface/vmcs_host/CMakeLists.txt
@@ -9,13 +9,24 @@ add_definitions(-fno-strict-aliasing)
@@ -1595,10 +1604,10 @@ index 37fdae1..fe3619a 100755
}
#endif
diff --git a/interface/vmcs_host/vc_vchi_dispmanx.c b/interface/vmcs_host/vc_vchi_dispmanx.c
-index d188068..3e668f5 100755
+index 133e86d..45f4cff 100755
--- a/interface/vmcs_host/vc_vchi_dispmanx.c
+++ b/interface/vmcs_host/vc_vchi_dispmanx.c
-@@ -1316,3 +1316,45 @@ static void *dispmanx_notify_func( void *arg ) {
+@@ -1319,3 +1319,45 @@ static void *dispmanx_notify_func( void *arg ) {
}
return 0;
}
@@ -1876,5 +1885,5 @@ index 0000000..ad90d30
+ set(${_sources} ${${_sources}} PARENT_SCOPE)
+endfunction()
--
-2.9.0
+2.10.2
diff --git a/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0003-wayland-Add-Wayland-example.patch b/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0003-wayland-Add-Wayland-example.patch
index 11befc371..bbd972761 100644
--- a/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0003-wayland-Add-Wayland-example.patch
+++ b/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0003-wayland-Add-Wayland-example.patch
@@ -1,7 +1,7 @@
-From b6ee187184456d66095146e3dc06b6baa29c17d7 Mon Sep 17 00:00:00 2001
+From 8a4b3ea902bbcc08452e13a61ffbdc834bc13ea3 Mon Sep 17 00:00:00 2001
From: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Date: Tue, 1 Oct 2013 13:19:20 +0200
-Subject: [PATCH 03/13] wayland: Add Wayland example
+Subject: [PATCH 03/12] wayland: Add Wayland example
---
.../linux/apps/hello_pi/CMakeLists.txt | 1 +
@@ -844,23 +844,23 @@ index 0000000..1a7bfc4
+}
+
diff --git a/host_applications/linux/apps/hello_pi/rebuild.sh b/host_applications/linux/apps/hello_pi/rebuild.sh
-index fa4539e..37120ac 100755
+index 8225dd5..0be6ce7 100755
--- a/host_applications/linux/apps/hello_pi/rebuild.sh
+++ b/host_applications/linux/apps/hello_pi/rebuild.sh
-@@ -13,6 +13,7 @@ make -C hello_jpeg clean
- make -C hello_videocube clean
+@@ -14,6 +14,7 @@ make -C hello_videocube clean
make -C hello_teapot clean
make -C hello_fft clean
+ make -C hello_mmal_encode clean
+make -C hello_wayland clean
make -C libs/ilclient
make -C libs/vgfont
-@@ -29,4 +30,4 @@ make -C hello_jpeg
- make -C hello_videocube
+@@ -31,4 +32,4 @@ make -C hello_videocube
make -C hello_teapot
make -C hello_fft
+ make -C hello_mmal_encode
-
+make -C hello_wayland
--
-2.9.0
+2.10.2
diff --git a/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0004-wayland-egl-Add-bcm_host-to-dependencies.patch b/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0004-wayland-egl-Add-bcm_host-to-dependencies.patch
index 2a44e2658..752b61a0c 100644
--- a/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0004-wayland-egl-Add-bcm_host-to-dependencies.patch
+++ b/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0004-wayland-egl-Add-bcm_host-to-dependencies.patch
@@ -1,7 +1,7 @@
-From e3df3fec01aefac3ec301f6f3d5ec3e91652b9c5 Mon Sep 17 00:00:00 2001
+From 718402e1be80ff9fb9863e847e31072ec735a5eb Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 10 Aug 2015 02:38:27 -0700
-Subject: [PATCH 04/13] wayland-egl: Add bcm_host to dependencies
+Subject: [PATCH 04/12] wayland-egl: Add bcm_host to dependencies
It uses headers like vcos_platform_types.h but does not
depend on module which should add the required include paths
@@ -24,5 +24,5 @@ index 8bafc15..fd259c9 100644
Libs: -L${libdir} -lwayland-egl
Cflags: -I${includedir}
--
-2.9.0
+2.10.2
diff --git a/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0005-interface-remove-faulty-assert-to-make-weston-happy-.patch b/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0005-interface-remove-faulty-assert-to-make-weston-happy-.patch
index 6f4193296..05b0dfa7b 100644
--- a/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0005-interface-remove-faulty-assert-to-make-weston-happy-.patch
+++ b/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0005-interface-remove-faulty-assert-to-make-weston-happy-.patch
@@ -1,7 +1,7 @@
-From 6c9d407c9ec0859380e7bcf35cf915cef4b3687b Mon Sep 17 00:00:00 2001
+From 2a6e3d53a75fe44ec6fa3ae64c8ca5664b614979 Mon Sep 17 00:00:00 2001
From: "Yann E. MORIN" <yann.morin.1998@free.fr>
Date: Sat, 24 Jan 2015 22:07:19 +0100
-Subject: [PATCH 05/13] interface: remove faulty assert() to make weston happy
+Subject: [PATCH 05/12] interface: remove faulty assert() to make weston happy
at runtime
This was removed after a discussion on IRC with the weston guys
@@ -13,17 +13,17 @@ Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
1 file changed, 1 deletion(-)
diff --git a/interface/vmcs_host/vc_vchi_dispmanx.c b/interface/vmcs_host/vc_vchi_dispmanx.c
-index 3e668f5..8e065dc 100755
+index 45f4cff..5d0368c 100755
--- a/interface/vmcs_host/vc_vchi_dispmanx.c
+++ b/interface/vmcs_host/vc_vchi_dispmanx.c
-@@ -1304,7 +1304,6 @@ static void *dispmanx_notify_func( void *arg ) {
- // Decrement the use count - the corresponding "use" is in vc_dispmanx_update_submit.
- vchi_service_release(dispmanx_client.notify_handle[0]);
- if (dispmanx_client.update_callback ) {
-- vcos_assert( dispmanx_client.pending_update_handle == handle);
- dispmanx_client.update_callback(handle, dispmanx_client.update_callback_param);
- }
- } else {
+@@ -1306,7 +1306,6 @@ static void *dispmanx_notify_func( void *arg ) {
+ // Decrement the use count - the corresponding "use" is in vc_dispmanx_update_submit.
+ vchi_service_release(dispmanx_client.notify_handle[0]);
+ if (dispmanx_client.update_callback ) {
+- vcos_assert( dispmanx_client.pending_update_handle == handle);
+ dispmanx_client.update_callback(handle, dispmanx_client.update_callback_param);
+ }
+ } else {
--
-2.9.0
+2.10.2
diff --git a/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0006-zero-out-wl-buffers-in-egl_surface_free.patch b/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0006-zero-out-wl-buffers-in-egl_surface_free.patch
index 2d522664a..f4da1c13e 100644
--- a/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0006-zero-out-wl-buffers-in-egl_surface_free.patch
+++ b/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0006-zero-out-wl-buffers-in-egl_surface_free.patch
@@ -1,7 +1,7 @@
-From e3ffe9438fe8417586d0045d00eb1368ca3a71b6 Mon Sep 17 00:00:00 2001
+From a3d43c1b754fc0576b428d36a877b9b50dd5d1ce Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 6 Feb 2016 11:10:47 -0800
-Subject: [PATCH 06/13] zero-out wl buffers in egl_surface_free
+Subject: [PATCH 06/12] zero-out wl buffers in egl_surface_free
origins from buildroot
@@ -11,7 +11,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 2 insertions(+)
diff --git a/interface/khronos/egl/egl_client_surface.c b/interface/khronos/egl/egl_client_surface.c
-index 49cf7e5..512c83b 100644
+index 42350bf..1f923d9 100644
--- a/interface/khronos/egl/egl_client_surface.c
+++ b/interface/khronos/egl/egl_client_surface.c
@@ -690,11 +690,13 @@ void egl_surface_free(EGL_SURFACE_T *surface)
@@ -29,5 +29,5 @@ index 49cf7e5..512c83b 100644
#endif
}
--
-2.9.0
+2.10.2
diff --git a/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0007-initialize-front-back-wayland-buffers.patch b/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0007-initialize-front-back-wayland-buffers.patch
index f54f77d7e..47f633a6d 100644
--- a/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0007-initialize-front-back-wayland-buffers.patch
+++ b/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0007-initialize-front-back-wayland-buffers.patch
@@ -1,7 +1,7 @@
-From ed31a6a206c9e205bd5316e95788e5d7bb837e38 Mon Sep 17 00:00:00 2001
+From 5b37f53cff07f37b281c25f987b9dbdacc264bf6 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 6 Feb 2016 11:11:41 -0800
-Subject: [PATCH 07/13] initialize front back wayland buffers
+Subject: [PATCH 07/12] initialize front back wayland buffers
origins from metrological wayland support
@@ -11,7 +11,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 3 insertions(+)
diff --git a/interface/khronos/egl/egl_client_surface.c b/interface/khronos/egl/egl_client_surface.c
-index 512c83b..a429724 100644
+index 1f923d9..9a9582c 100644
--- a/interface/khronos/egl/egl_client_surface.c
+++ b/interface/khronos/egl/egl_client_surface.c
@@ -401,11 +401,14 @@ EGL_SURFACE_T *egl_surface_create(
@@ -30,5 +30,5 @@ index 512c83b..a429724 100644
}
#endif
--
-2.9.0
+2.10.2
diff --git a/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0008-Remove-RPC_FLUSH.patch b/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0008-Remove-RPC_FLUSH.patch
index 0206a08f6..74918425e 100644
--- a/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0008-Remove-RPC_FLUSH.patch
+++ b/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0008-Remove-RPC_FLUSH.patch
@@ -1,7 +1,7 @@
-From 6e173040a825185013ccbbb33113442207f10eeb Mon Sep 17 00:00:00 2001
+From 14a749a3f840e93db548373b907a7a0e664dcfdb Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 6 Feb 2016 11:09:18 -0800
-Subject: [PATCH 08/13] Remove RPC_FLUSH
+Subject: [PATCH 08/12] Remove RPC_FLUSH
Origins from buildroot
@@ -23,5 +23,5 @@ index f9b7287..b04ffef 100644
}
#endif
--
-2.9.0
+2.10.2
diff --git a/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0009-fix-cmake-dependency-race.patch b/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0009-fix-cmake-dependency-race.patch
index 87cfce4c1..3f57d1eb7 100644
--- a/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0009-fix-cmake-dependency-race.patch
+++ b/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0009-fix-cmake-dependency-race.patch
@@ -1,7 +1,7 @@
-From c4217231fd78daee83b0c0f312c1d392aa6e0f47 Mon Sep 17 00:00:00 2001
+From b5392c39d7407a5226c9314bc01ed82877ff0539 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 6 Feb 2016 13:12:47 -0800
-Subject: [PATCH 09/13] fix cmake dependency race
+Subject: [PATCH 09/12] fix cmake dependency race
Fixes errors like
@@ -42,7 +42,7 @@ index 1d81ca3..d6cd415 100644
add_library (vcos SHARED ${SOURCES})
target_link_libraries (vcos pthread dl rt)
diff --git a/interface/vmcs_host/CMakeLists.txt b/interface/vmcs_host/CMakeLists.txt
-index 35150ed..22949a8 100755
+index f44d01f..9bcc2c3 100755
--- a/interface/vmcs_host/CMakeLists.txt
+++ b/interface/vmcs_host/CMakeLists.txt
@@ -17,14 +17,6 @@ set(VCHOSTIF_SOURCE
@@ -74,5 +74,5 @@ index f0bae30..8c44c58 100644
struct wl_resource *resource;
struct wl_dispmanx *dispmanx;
--
-2.9.0
+2.10.2
diff --git a/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0010-Fix-enum-conversion-warnings.patch b/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0010-Fix-enum-conversion-warnings.patch
deleted file mode 100644
index d4e88255f..000000000
--- a/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0010-Fix-enum-conversion-warnings.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-From 377f6aada3b7569e3d662fc830e01b8c5ba8a15d Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 18 Feb 2016 09:04:46 +0000
-Subject: [PATCH 10/13] Fix enum conversion warnings
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- interface/mmal/openmaxil/mmalomx_core.c | 4 ++--
- interface/mmal/openmaxil/mmalomx_parameters.c | 6 +++---
- interface/mmal/openmaxil/mmalomx_util_params_video.c | 8 ++++----
- 3 files changed, 9 insertions(+), 9 deletions(-)
-
-diff --git a/interface/mmal/openmaxil/mmalomx_core.c b/interface/mmal/openmaxil/mmalomx_core.c
-index 9bc632b..20d4fc7 100644
---- a/interface/mmal/openmaxil/mmalomx_core.c
-+++ b/interface/mmal/openmaxil/mmalomx_core.c
-@@ -281,7 +281,7 @@ static OMX_ERRORTYPE mmalomx_ComponentGetParameter(
- {
- OMX_PARAM_PORTDEFINITIONTYPE *param = (OMX_PARAM_PORTDEFINITIONTYPE *)pParam;
- PARAM_GET_PORT(port, component, param->nPortIndex);
-- return mmalil_error_to_mmal(mmalomx_get_port_settings(port, param));
-+ return mmalil_error_to_omx(mmalomx_get_port_settings(port, param));
- }
- return OMX_ErrorNone;
- break;
-@@ -475,7 +475,7 @@ static OMX_ERRORTYPE mmalomx_ComponentSetParameter(
- {
- OMX_PARAM_PORTDEFINITIONTYPE *param = (OMX_PARAM_PORTDEFINITIONTYPE *)pParam;
- PARAM_GET_PORT(port, component, param->nPortIndex);
-- return mmalil_error_to_mmal(mmalomx_set_port_settings(port, param));
-+ return mmalil_error_to_omx(mmalomx_set_port_settings(port, param));
- }
- return OMX_ErrorNone;
- break;
-diff --git a/interface/mmal/openmaxil/mmalomx_parameters.c b/interface/mmal/openmaxil/mmalomx_parameters.c
-index a20a5bd..c4f97d4 100644
---- a/interface/mmal/openmaxil/mmalomx_parameters.c
-+++ b/interface/mmal/openmaxil/mmalomx_parameters.c
-@@ -170,7 +170,7 @@ static OMX_ERRORTYPE mmalomx_parameter_get_xlat(MMALOMX_COMPONENT_T *component,
-
- if (xlat->fn.custom)
- {
-- return mmalil_error_to_mmal(xlat->fn.custom(MMALOMX_PARAM_MAPPING_TO_OMX, xlat, mmal_header,
-+ return mmalil_error_to_omx(xlat->fn.custom(MMALOMX_PARAM_MAPPING_TO_OMX, xlat, mmal_header,
- pParam, mmal_port));
- }
-
-@@ -554,14 +554,14 @@ OMX_ERRORTYPE mmalomx_parameter_set(MMALOMX_COMPONENT_T *component,
- port->mmal->format->es->video.par.num = param->nX;
- port->mmal->format->es->video.par.den = param->nY;
- mmal_rational_simplify(&port->mmal->format->es->video.par);
-- return mmalil_error_to_mmal(mmal_port_format_commit(port->mmal));
-+ return mmalil_error_to_omx(mmal_port_format_commit(port->mmal));
- }
- case OMX_IndexParamColorSpace:
- {
- OMX_PARAM_COLORSPACETYPE *param = (OMX_PARAM_COLORSPACETYPE *)pParam;
- PARAM_GET_PORT(port, component, param->nPortIndex);
- port->mmal->format->es->video.color_space = mmalil_omx_color_space_to_mmal(param->eColorSpace);
-- return mmalil_error_to_mmal(mmal_port_format_commit(port->mmal));
-+ return mmalil_error_to_omx(mmal_port_format_commit(port->mmal));
- }
- case OMX_IndexParamBrcmVideoCroppingDisable:
- {
-diff --git a/interface/mmal/openmaxil/mmalomx_util_params_video.c b/interface/mmal/openmaxil/mmalomx_util_params_video.c
-index f088296..83e3724 100644
---- a/interface/mmal/openmaxil/mmalomx_util_params_video.c
-+++ b/interface/mmal/openmaxil/mmalomx_util_params_video.c
-@@ -56,11 +56,11 @@ static MMAL_STATUS_T mmalomx_param_mapping_displayregion(MMALOMX_PARAM_MAPPING_D
- mmal->set = omx->set;
- mmal->display_num = omx->num;
- mmal->fullscreen = omx->fullscreen;
-- mmal->transform = omx->transform;
-+ mmal->transform = (MMAL_DISPLAYTRANSFORM_T)omx->transform;
- rect_to_mmal(&mmal->dest_rect, &omx->dest_rect);
- rect_to_mmal(&mmal->src_rect, &omx->src_rect);
- mmal->noaspect = omx->noaspect;
-- mmal->mode = omx->mode;
-+ mmal->mode = (MMAL_DISPLAYMODE_T)omx->mode;
- mmal->pixel_x = omx->pixel_x;
- mmal->pixel_y = omx->pixel_y;
- mmal->layer = omx->layer;
-@@ -72,11 +72,11 @@ static MMAL_STATUS_T mmalomx_param_mapping_displayregion(MMALOMX_PARAM_MAPPING_D
- omx->set = mmal->set;
- omx->num = mmal->display_num;
- omx->fullscreen = mmal->fullscreen;
-- omx->transform = mmal->transform;
-+ omx->transform = (OMX_DISPLAYTRANSFORMTYPE)mmal->transform;
- rect_to_omx(&omx->dest_rect, &mmal->dest_rect);
- rect_to_omx(&omx->src_rect, &mmal->src_rect);
- omx->noaspect = mmal->noaspect;
-- omx->mode = mmal->mode;
-+ omx->mode = (OMX_DISPLAYMODETYPE)mmal->mode;
- omx->pixel_x = mmal->pixel_x;
- omx->pixel_y = mmal->pixel_y;
- omx->layer = mmal->layer;
---
-2.9.0
-
diff --git a/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0011-Fix-for-framerate-with-nested-composition.patch b/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0010-Fix-for-framerate-with-nested-composition.patch
index 5e97571d9..8a34f3f1a 100644
--- a/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0011-Fix-for-framerate-with-nested-composition.patch
+++ b/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0010-Fix-for-framerate-with-nested-composition.patch
@@ -1,7 +1,7 @@
-From 6e634184ee4b3d2c98c3213a3931845ec3014754 Mon Sep 17 00:00:00 2001
+From 098faed5e7035b51f14700fdf4cf5875aa7af97e Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 29 Mar 2016 20:38:30 -0700
-Subject: [PATCH 11/13] Fix for framerate with nested composition
+Subject: [PATCH 10/12] Fix for framerate with nested composition
frame rate appears irregular and lower than expected when using nested composition.
@@ -11,7 +11,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 8 insertions(+)
diff --git a/interface/khronos/egl/egl_client.c b/interface/khronos/egl/egl_client.c
-index 024f3ed..83970ec 100644
+index 03fe67b..13a110c 100644
--- a/interface/khronos/egl/egl_client.c
+++ b/interface/khronos/egl/egl_client.c
@@ -2342,6 +2342,9 @@ EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers(EGLDisplay dpy, EGLSurface surf)
@@ -56,5 +56,5 @@ index 024f3ed..83970ec 100644
#ifdef ANDROID
CLIENT_UNLOCK();
--
-2.9.0
+2.10.2
diff --git a/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0012-build-shared-library-for-vchostif.patch b/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0011-build-shared-library-for-vchostif.patch
index 44815c571..f2455e52c 100644
--- a/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0012-build-shared-library-for-vchostif.patch
+++ b/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0011-build-shared-library-for-vchostif.patch
@@ -1,7 +1,7 @@
-From 559209ce15027b3370466ccb56223a7a66d2a40c Mon Sep 17 00:00:00 2001
+From b533d784484caead1dc84c766127e1d3854d2aad Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 2 Apr 2016 10:37:24 -0700
-Subject: [PATCH 12/13] build shared library for vchostif
+Subject: [PATCH 11/12] build shared library for vchostif
Fixes #149
@@ -11,7 +11,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/interface/vmcs_host/CMakeLists.txt b/interface/vmcs_host/CMakeLists.txt
-index 22949a8..f8c2f2f 100755
+index 9bcc2c3..0ef753f 100755
--- a/interface/vmcs_host/CMakeLists.txt
+++ b/interface/vmcs_host/CMakeLists.txt
@@ -17,7 +17,7 @@ set(VCHOSTIF_SOURCE
@@ -24,5 +24,5 @@ index 22949a8..f8c2f2f 100755
#add_library(bufman vc_vchi_bufman.c )
--
-2.9.0
+2.10.2
diff --git a/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0013-implement-buffer-wrapping-interface-for-dispmanx.patch b/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0012-implement-buffer-wrapping-interface-for-dispmanx.patch
index 8f36048f9..aa3e0ef35 100644
--- a/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0013-implement-buffer-wrapping-interface-for-dispmanx.patch
+++ b/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0012-implement-buffer-wrapping-interface-for-dispmanx.patch
@@ -1,7 +1,7 @@
-From 5b55a152651eece345d9ea1e0e40ecd9fc4ca2d5 Mon Sep 17 00:00:00 2001
+From ee5ebfcf0e030efed17f2a45fbb018a02dd421b3 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 2 Apr 2016 10:54:59 -0700
-Subject: [PATCH 13/13] implement buffer wrapping interface for dispmanx
+Subject: [PATCH 12/12] implement buffer wrapping interface for dispmanx
Courtesy: Zan Dobersek
@@ -88,5 +88,5 @@ index c18626d..11ed1ef 100644
</protocol>
--
-2.9.0
+2.10.2
diff --git a/import-layers/meta-raspberrypi/recipes-graphics/userland/userland_git.bb b/import-layers/meta-raspberrypi/recipes-graphics/userland/userland_git.bb
index 6e73ca74b..a37249c82 100644
--- a/import-layers/meta-raspberrypi/recipes-graphics/userland/userland_git.bb
+++ b/import-layers/meta-raspberrypi/recipes-graphics/userland/userland_git.bb
@@ -16,7 +16,7 @@ COMPATIBLE_MACHINE = "raspberrypi"
SRCBRANCH = "master"
SRCFORK = "raspberrypi"
-SRCREV = "0147f98bdd4fdc822d25d8a70cf5adc5adb89096"
+SRCREV = "bb15afe33b313fe045d52277a78653d288e04f67"
SRC_URI = "\
git://github.com/${SRCFORK}/userland.git;protocol=git;branch=${SRCBRANCH} \
@@ -29,19 +29,23 @@ SRC_URI = "\
file://0007-initialize-front-back-wayland-buffers.patch \
file://0008-Remove-RPC_FLUSH.patch \
file://0009-fix-cmake-dependency-race.patch \
- file://0010-Fix-enum-conversion-warnings.patch \
- file://0011-Fix-for-framerate-with-nested-composition.patch \
- file://0012-build-shared-library-for-vchostif.patch \
- file://0013-implement-buffer-wrapping-interface-for-dispmanx.patch \
+ file://0010-Fix-for-framerate-with-nested-composition.patch \
+ file://0011-build-shared-library-for-vchostif.patch \
+ file://0012-implement-buffer-wrapping-interface-for-dispmanx.patch \
"
S = "${WORKDIR}/git"
inherit cmake pkgconfig
+ASNEEDED = ""
+
EXTRA_OECMAKE = "-DCMAKE_BUILD_TYPE=Release -DCMAKE_EXE_LINKER_FLAGS='-Wl,--no-as-needed' \
-DVMCS_INSTALL_PREFIX=${exec_prefix} \
"
+EXTRA_OECMAKE_append_aarch64 = " -DARM64=ON "
+
+
PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)}"
PACKAGECONFIG[wayland] = "-DBUILD_WAYLAND=TRUE -DWAYLAND_SCANNER_EXECUTABLE:FILEPATH=${STAGING_BINDIR_NATIVE}/wayland-scanner,,wayland-native wayland"
@@ -71,3 +75,5 @@ FILES_${PN}-doc += "${datadir}/install"
FILES_${PN}-dbg += "${libdir}/plugins/.debug"
PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+RDEPENDS_${PN} += "bash"
diff --git a/import-layers/meta-raspberrypi/recipes-graphics/wayland/weston_%.bbappend b/import-layers/meta-raspberrypi/recipes-graphics/wayland/weston_%.bbappend
index c3a742148..f2cb7aa1f 100644
--- a/import-layers/meta-raspberrypi/recipes-graphics/wayland/weston_%.bbappend
+++ b/import-layers/meta-raspberrypi/recipes-graphics/wayland/weston_%.bbappend
@@ -1,4 +1,12 @@
-EXTRA_OECONF_append_rpi = "\
- --enable-rpi-compositor \
- WESTON_NATIVE_BACKEND=rpi-backend.so \
- "
+EXTRA_OECONF_append_rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', ' --enable-rpi-compositor WESTON_NATIVE_BACKEND=rpi-backend.so', d)}"
+
+PACKAGECONFIG_remove_rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', 'fbdev', '', d)}"
+
+EXTRA_OECONF += "--disable-xwayland-test \
+ --disable-simple-egl-clients \
+"
+
+EXTRA_OECONF += "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', '--enable-rpi-compositor', d)}"
+EXTRA_OECONF += "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', '--disable-resize-optimization', d)}"
+EXTRA_OECONF += "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', '--disable-setuid-install', d)}"
+EXTRA_OECONF += "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', 'WESTON_NATIVE_BACKEND=rpi-backend.so', d)}"
diff --git a/import-layers/meta-raspberrypi/recipes-graphics/weston/weston_%.bbappend b/import-layers/meta-raspberrypi/recipes-graphics/weston/weston_%.bbappend
deleted file mode 100644
index 3ec311d4e..000000000
--- a/import-layers/meta-raspberrypi/recipes-graphics/weston/weston_%.bbappend
+++ /dev/null
@@ -1,7 +0,0 @@
-EXTRA_OECONF += "--enable-rpi-compositor \
- --disable-resize-optimization \
- --disable-setuid-install \
- --disable-xwayland-test \
- --disable-simple-egl-clients \
- WESTON_NATIVE_BACKEND=rpi-backend.so \
-"
diff --git a/import-layers/meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xorg_%.bbappend b/import-layers/meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xorg_%.bbappend
new file mode 100644
index 000000000..a5a6af3f3
--- /dev/null
+++ b/import-layers/meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xorg_%.bbappend
@@ -0,0 +1,9 @@
+OPENGL_PKGCFG = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', 'dri3 xshmfence glamor', '', d)}"
+
+# slightly modified to oe-core's default: add ${OPENGL_PKGCFG}
+PACKAGECONFIG_rpi ?= " \
+ dri2 udev ${XORG_CRYPTO} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'dri glx ${OPENGL_PKGCFG}', '', d)} \
+ ${@bb.utils.contains("DISTRO_FEATURES", "wayland", "xwayland", "", d)} \
+ ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "systemd", "", d)} \
+"
diff --git a/import-layers/meta-raspberrypi/recipes-kernel/linux-firmware/linux-firmware/LICENSE.broadcom_brcm80211 b/import-layers/meta-raspberrypi/recipes-kernel/linux-firmware/linux-firmware/LICENSE.broadcom_brcm80211
deleted file mode 100644
index e2cf868f3..000000000
--- a/import-layers/meta-raspberrypi/recipes-kernel/linux-firmware/linux-firmware/LICENSE.broadcom_brcm80211
+++ /dev/null
@@ -1,205 +0,0 @@
-SOFTWARE LICENSE AGREEMENT
-
-Unless you and Broadcom Corporation (“Broadcom”) execute a separate written
-software license agreement governing use of the accompanying software, this
-software is licensed to you under the terms of this Software License Agreement
-(“Agreement”).
-
-ANY USE, REPRODUCTION OR DISTRIBUTION OF THE SOFTWARE CONSTITUTES YOUR
-ACCEPTANCE OF THIS AGREEMENT.
-
-1. DEFINITIONS.
-
-1.1. “Broadcom Product” means any of the proprietary integrated circuit
-product(s) sold by Broadcom with which the Software was designed to be used, or
-their successors.
-
-1.2. “Licensee” means you or if you are accepting on behalf of an entity
-then the entity and its affiliates exercising rights under, and complying with
-all of the terms of this Agreement.
-
-1.3. “Software” shall mean that software made available by Broadcom to
-Licensee in binary code form with this Agreement.
-
-2. LICENSE GRANT; OWNERSHIP
-
-2.1. License Grants. Subject to the terms and conditions of this Agreement,
-Broadcom hereby grants to Licensee a non-exclusive, non-transferable,
-royalty-free license (i) to use and integrate the Software in conjunction with
-any other software; and (ii) to reproduce and distribute the Software complete,
-unmodified and as provided by Broadcom, and only for use with a Broadcom
-Product.
-
-2.2. Restriction on Modification. Licensee may not make any modifications
-to the Software.
-
-2.3. Restriction on Distribution. Licensee shall only distribute the
-Software under the terms of this Agreement and a copy of this Agreement
-accompanies such distribution.
-
-2.4. Proprietary Notices. Licensee shall not remove, efface or obscure any
-copyright or trademark notices from the Software. Licensee shall include
-reproductions of the Broadcom copyright notice with each copy of the Software,
-except where such Software is embedded in a manner not readily accessible to
-the end user. Licensee acknowledges that any symbols, trademarks, tradenames,
-and service marks adopted by Broadcom to identify the Software belong to
-Broadcom and that Licensee shall have no rights therein.
-
-2.5. Ownership. Broadcom shall retain all right, title and interest,
-including all intellectual property rights, in and to the Software. Licensee
-hereby covenants that it will not assert any claim that the Software created by
-or for Broadcom infringe any intellectual property right owned or controlled by
-Licensee; provided however, the foregoing shall not apply in case the Agreement
-is terminated.
-
-2.6. No Other Rights Granted; Restrictions. Apart from the license rights
-expressly set forth in this Agreement, Broadcom does not grant and Licensee
-does not receive any ownership right, title or interest nor any security
-interest or other interest in any intellectual property rights relating to the
-Software, nor in any copy of any part of the foregoing. No license is granted
-to Licensee in any human readable code of the Software (source code). Licensee
-shall not (i) use, license, sell or otherwise distribute the Software except as
-provided in this Agreement, (ii) attempt to modify in any way, reverse
-engineer, decompile or disassemble any portion of the Software; or (iii) use
-the Software or other material in violation of any applicable law or
-regulation, including but not limited to any regulatory agency, such as FCC,
-rules.
-
-3. NO WARRANTY OR SUPPORT
-
-3.1. No Warranty. THE SOFTWARE IS OFFERED “AS IS,” AND BROADCOM GRANTS AND
-LICENSEE RECEIVES NO WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, BY STATUTE,
-COMMUNICATION OR CONDUCT WITH LICENSEE, OR OTHERWISE. BROADCOM SPECIFICALLY
-DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A SPECIFIC
-PURPOSE OR NONINFRINGEMENT CONCERNING THE SOFTWARE OR ANY UPGRADES TO OR
-DOCUMENTATION FOR THE SOFTWARE. WITHOUT LIMITATION OF THE ABOVE, BROADCOM
-GRANTS NO WARRANTY THAT THE SOFTWARE IS ERROR-FREE OR WILL OPERATE WITHOUT
-INTERRUPTION, AND GRANTS NO WARRANTY REGARDING ITS USE OR THE RESULTS THEREFROM
-INCLUDING, WITHOUT LIMITATION, ITS CORRECTNESS, ACCURACY OR RELIABILITY.
-
-3.2. No Support. Nothing in this agreement shall obligate Broadcom to
-provide any support for the Software. Broadcom may, but shall be under no
-obligation to, correct any defects in the Software and/or provide updates to
-licensees of the Software. Licensee shall make reasonable efforts to promptly
-report to Broadcom any defects it finds in the Software, as an aid to creating
-improved revisions of the Software.
-
-3.3. Dangerous Applications. The Software is not designed, intended, or
-certified for use in components of systems intended for the operation of
-weapons, weapons systems, nuclear installations, means of mass transportation,
-aviation, life-support computers or equipment (including resuscitation
-equipment and surgical implants), pollution control, hazardous substances
-management, or for any other dangerous application in which the failure of the
-Software could create a situation where personal injury or death may occur. 
-Licensee understands that use of the Software in such applications is fully at
-the risk of Licensee.
-
-4. TERM AND TERMINATION
-
-4.1. Termination. This Agreement will automatically terminate if Licensee
-fails to comply with any of the terms and conditions hereof. In such event,
-Licensee must destroy all copies of the Software and all of its component
-parts.
-
-4.2. Effect Of Termination. Upon any termination of this Agreement, the
-rights and licenses granted to Licensee under this Agreement shall immediately
-terminate.
-
-4.3. Survival. The rights and obligations under this Agreement which by
-their nature should survive termination will remain in effect after expiration
-or termination of this Agreement.
-
-5. CONFIDENTIALITY
-
-5.1. Obligations. Licensee acknowledges and agrees that any documentation
-relating to the Software, and any other information (if such other information
-is identified as confidential or should be recognized as confidential under the
-circumstances) provided to Licensee by Broadcom hereunder (collectively,
-“Confidential Information”) constitute the confidential and proprietary
-information of Broadcom, and that Licensee’s protection thereof is an essential
-condition to Licensee’s use and possession of the Software. Licensee shall
-retain all Confidential Information in strict confidence and not disclose it to
-any third party or use it in any way except under a written agreement with
-terms and conditions at least as protective as the terms of this Section.
-Licensee will exercise at least the same amount of diligence in preserving the
-secrecy of the Confidential Information as it uses in preserving the secrecy of
-its own most valuable confidential information, but in no event less than
-reasonable diligence. Information shall not be considered Confidential
-Information if and to the extent that it: (i) was in the public domain at the
-time it was disclosed or has entered the public domain through no fault of
-Licensee; (ii) was known to Licensee, without restriction, at the time of
-disclosure as proven by the files of Licensee in existence at the time of
-disclosure; or (iii) becomes known to Licensee, without restriction, from a
-source other than Broadcom without breach of this Agreement by Licensee and
-otherwise not in violation of Broadcom’s rights.
-
-5.2. Return of Confidential Information. Notwithstanding the foregoing, all
-documents and other tangible objects containing or representing Broadcom
-Confidential Information and all copies thereof which are in the possession of
-Licensee shall be and remain the property of Broadcom, and shall be promptly
-returned to Broadcom upon written request by Broadcom or upon termination of
-this Agreement.
-
-6. LIMITATION OF LIABILITY TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO
-EVENT SHALL BROADCOM OR ANY OF BROADCOM’S LICENSORS HAVE ANY LIABILITY FOR ANY
-INDIRECT, INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES, HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER FOR BREACH OF CONTRACT, TORT (INCLUDING
-NEGLIGENCE) OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, INCLUDING BUT NOT
-LIMITED TO LOSS OF PROFITS, EVEN IF SUCH PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES. IN NO EVENT WILL BROADCOM’S LIABILITY WHETHER IN
-CONTRACT, TORT (INCLUDING NEGLIGENCE), OR OTHERWISE, EXCEED THE AMOUNT PAID BY
-LICENSEE FOR SOFTWARE UNDER THIS AGREEMENT. THESE LIMITATIONS SHALL APPLY
-NOTWITHSTANDING ANY FAILURE OF ESSENTIAL PURPOSE OF ANY LIMITED REMEDY.
-
-7. MISCELLANEOUS
-
-7.1. Export Regulations. YOU UNDERSTAND AND AGREE THAT THE SOFTWARE IS
-SUBJECT TO UNITED STATES AND OTHER APPLICABLE EXPORT-RELATED LAWS AND
-REGULATIONS AND THAT YOU MAY NOT EXPORT, RE-EXPORT OR TRANSFER THE SOFTWARE OR
-ANY DIRECT PRODUCT OF THE SOFTWARE EXCEPT AS PERMITTED UNDER THOSE LAWS.
-WITHOUT LIMITING THE FOREGOING, EXPORT, RE-EXPORT OR TRANSFER OF THE SOFTWARE
-TO CUBA, IRAN, NORTH KOREA, SUDAN AND SYRIA IS PROHIBITED.
-
-7.2 Assignment. This Agreement shall be binding upon and inure to the
-benefit of the parties and their respective successors and assigns, provided,
-however that Licensee may not assign this Agreement or any rights or obligation
-hereunder, directly or indirectly, by operation of law or otherwise, without
-the prior written consent of Broadcom, and any such attempted assignment shall
-be void. Notwithstanding the foregoing, Licensee may assign this Agreement to
-a successor to all or substantially all of its business or assets to which this
-Agreement relates that is not a competitor of Broadcom.
-
-7.3. Governing Law; Venue. This Agreement shall be governed by the laws of
-California without regard to any conflict-of-laws rules, and the United Nations
-Convention on Contracts for the International Sale of Goods is hereby excluded.
-The sole jurisdiction and venue for actions related to the subject matter
-hereof shall be the state and federal courts located in the County of Orange,
-California, and both parties hereby consent to such jurisdiction and venue.
-
-7.4. Severability. All terms and provisions of this Agreement shall, if
-possible, be construed in a manner which makes them valid, but in the event any
-term or provision of this Agreement is found by a court of competent
-jurisdiction to be illegal or unenforceable, the validity or enforceability of
-the remainder of this Agreement shall not be affected if the illegal or
-unenforceable provision does not materially affect the intent of this
-Agreement. If the illegal or unenforceable provision materially affects the
-intent of the parties to this Agreement, this Agreement shall become
-terminated.
-
-7.5. Equitable Relief. Licensee hereby acknowledges that its breach of this
-Agreement would cause irreparable harm and significant injury to Broadcom that
-may be difficult to ascertain and that a remedy at law would be inadequate.
-Accordingly, Licensee agrees that Broadcom shall have the right to seek and
-obtain immediate injunctive relief to enforce obligations under the Agreement
-in addition to any other rights and remedies it may have.
-
-7.6. Waiver. The waiver of, or failure to enforce, any breach or default
-hereunder shall not constitute the waiver of any other or subsequent breach or
-default.
-
-7.7. Entire Agreement. This Agreement sets forth the entire Agreement
-between the parties and supersedes any and all prior proposals, agreements and
-representations between them, whether written or oral concerning the Software.
-This Agreement may be changed only by mutual agreement of the parties in
-writing.
-
diff --git a/import-layers/meta-raspberrypi/recipes-kernel/linux-firmware/linux-firmware/brcmfmac43430-sdio.bin b/import-layers/meta-raspberrypi/recipes-kernel/linux-firmware/linux-firmware/brcmfmac43430-sdio.bin
deleted file mode 100644
index 84ab5b0de..000000000
--- a/import-layers/meta-raspberrypi/recipes-kernel/linux-firmware/linux-firmware/brcmfmac43430-sdio.bin
+++ /dev/null
Binary files differ
diff --git a/import-layers/meta-raspberrypi/recipes-kernel/linux-firmware/linux-firmware/brcmfmac43430-sdio.txt b/import-layers/meta-raspberrypi/recipes-kernel/linux-firmware/linux-firmware/brcmfmac43430-sdio.txt
deleted file mode 100644
index ea4f648a1..000000000
--- a/import-layers/meta-raspberrypi/recipes-kernel/linux-firmware/linux-firmware/brcmfmac43430-sdio.txt
+++ /dev/null
@@ -1,66 +0,0 @@
-# NVRAM file for BCM943430WLPTH
-# 2.4 GHz, 20 MHz BW mode
-
-# The following parameter values are just placeholders, need to be updated.
-manfid=0x2d0
-prodid=0x0727
-vendid=0x14e4
-devid=0x43e2
-boardtype=0x0727
-boardrev=0x1101
-boardnum=22
-macaddr=00:90:4c:c5:12:38
-sromrev=11
-boardflags=0x00404201
-boardflags3=0x08000000
-xtalfreq=37400
-nocrc=1
-ag0=255
-aa2g=1
-ccode=ALL
-
-pa0itssit=0x20
-extpagain2g=0
-#PA parameters for 2.4GHz, measured at CHIP OUTPUT
-pa2ga0=-168,7161,-820
-AvVmid_c0=0x0,0xc8
-cckpwroffset0=5
-
-# PPR params
-maxp2ga0=84
-txpwrbckof=6
-cckbw202gpo=0
-legofdmbw202gpo=0x66111111
-mcsbw202gpo=0x77711111
-propbw202gpo=0xdd
-
-# OFDM IIR :
-ofdmdigfilttype=18
-ofdmdigfilttypebe=18
-# PAPD mode:
-papdmode=1
-papdvalidtest=1
-pacalidx2g=42
-papdepsoffset=-22
-papdendidx=58
-
-# LTECX flags
-ltecxmux=0
-ltecxpadnum=0x0102
-ltecxfnsel=0x44
-ltecxgcigpio=0x01
-
-il0macaddr=00:90:4c:c5:12:38
-wl0id=0x431b
-
-deadman_to=0xffffffff
-# muxenab: 0x1 for UART enable, 0x2 for GPIOs, 0x8 for JTAG
-muxenab=0x1
-# CLDO PWM voltage settings - 0x4 - 1.1 volt
-#cldo_pwm=0x4
-
-#VCO freq 326.4MHz
-spurconfig=0x3
-
-edonthd20l=-75
-edoffthd20ul=-80
diff --git a/import-layers/meta-raspberrypi/recipes-kernel/linux-firmware/linux-firmware_git.bbappend b/import-layers/meta-raspberrypi/recipes-kernel/linux-firmware/linux-firmware_git.bbappend
deleted file mode 100644
index 20ef05f24..000000000
--- a/import-layers/meta-raspberrypi/recipes-kernel/linux-firmware/linux-firmware_git.bbappend
+++ /dev/null
@@ -1,33 +0,0 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
-
-LICENSE_append = " & Firmware-broadcom_brcm80211"
-
-LIC_FILES_CHKSUM_append = " file://${WORKDIR}/LICENSE.broadcom_brcm80211;md5=8cba1397cda6386db37210439a0da3eb"
-
-NO_GENERIC_LICENSE[Firmware-broadcom_brcm80211] = "LICENSE.broadcom_brcm80211"
-
-SRC_URI_append = " \
- file://brcmfmac43430-sdio.bin \
- file://brcmfmac43430-sdio.txt \
- file://LICENSE.broadcom_brcm80211 \
- "
-
-do_install_append() {
- cp ${WORKDIR}/brcmfmac43430-sdio.* ${D}/lib/firmware/brcm/
- cp ${WORKDIR}/LICENSE.broadcom_brcm80211 ${D}/lib/firmware/
-}
-
-PACKAGES =+ "${PN}-brcm43430 ${PN}-brcm43430-license"
-
-LICENSE_${PN}-brcm43430 = "Firmware-broadcom_brcm80211"
-FILES_${PN}-brcm43430-license = "/lib/firmware/LICENSE.broadcom_brcm80211"
-FILES_${PN}-brcm43430 = " \
- /lib/firmware/brcm/brcmfmac43430-sdio.bin \
- /lib/firmware/brcm/brcmfmac43430-sdio.txt \
- "
-
-RDEPENDS_${PN}-brcm43430 += "${PN}-brcm43430-license"
-
-ALTERNATIVE_LINK_NAME[brcmfmac-sdio.bin] = "/lib/firmware/brcm/brcmfmac-sdio.bin"
-ALTERNATIVE_TARGET_linux-firmware-brcm43430[brcmfmac-sdio.bin] = "/lib/firmware/brcm/brcmfmac43430-sdio.bin"
-ALTERNATIVE_linux-firmware-brcm43430 = "brcmfmac-sdio.bin"
diff --git a/import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-3.18/0001-dts-add-overlay-for-pitft22.patch b/import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-3.18/0001-dts-add-overlay-for-pitft22.patch
deleted file mode 100644
index fa73599b2..000000000
--- a/import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-3.18/0001-dts-add-overlay-for-pitft22.patch
+++ /dev/null
@@ -1,110 +0,0 @@
-From 2f44861e2a2d651a9aa62a75343a032fee33e93b Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Petter=20Mab=C3=A4cker?= <petter@technux.se>
-Date: Fri, 8 Jan 2016 09:02:44 +0100
-Subject: [PATCH] dts: add overlay for pitft22 in linux 3.18
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Upstream-Status: Pending
-
-Add the pitft22 overlay from adafruit Adafruit-Pi-Kernel-o-Matic repo:
-https://github.com/adafruit/Adafruit-Pi-Kernel-o-Matic
-
-Signed-off-by: Petter Mabäcker <petter@technux.se>
----
- arch/arm/boot/dts/overlays/Makefile | 1 +
- arch/arm/boot/dts/overlays/pitft22-overlay.dts | 69 ++++++++++++++++++++++++++
- 2 files changed, 70 insertions(+)
- create mode 100755 arch/arm/boot/dts/overlays/pitft22-overlay.dts
-
-diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile
-index c766616..1eaaf81 100644
---- a/arch/arm/boot/dts/overlays/Makefile
-+++ b/arch/arm/boot/dts/overlays/Makefile
-@@ -27,6 +27,7 @@ dtb-$(RPI_DT_OVERLAYS) += mcp2515-can0-overlay.dtb
- dtb-$(RPI_DT_OVERLAYS) += mmc-overlay.dtb
- dtb-$(RPI_DT_OVERLAYS) += mz61581-overlay.dtb
- dtb-$(RPI_DT_OVERLAYS) += piscreen-overlay.dtb
-+dtb-$(RPI_DT_OVERLAYS) += pitft22-overlay.dtb
- dtb-$(RPI_DT_OVERLAYS) += pitft28-resistive-overlay.dtb
- dtb-$(RPI_DT_OVERLAYS) += pps-gpio-overlay.dtb
- dtb-$(RPI_DT_OVERLAYS) += rpi-dac-overlay.dtb
-diff --git a/arch/arm/boot/dts/overlays/pitft22-overlay.dts b/arch/arm/boot/dts/overlays/pitft22-overlay.dts
-new file mode 100755
-index 0000000..894ba22
---- /dev/null
-+++ b/arch/arm/boot/dts/overlays/pitft22-overlay.dts
-@@ -0,0 +1,69 @@
-+/*
-+ * Device Tree overlay for pitft by Adafruit
-+ *
-+ */
-+
-+/dts-v1/;
-+/plugin/;
-+
-+/ {
-+ compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
-+
-+ fragment@0 {
-+ target = <&spi0>;
-+ __overlay__ {
-+ status = "okay";
-+
-+ spidev@0{
-+ status = "disabled";
-+ };
-+
-+ spidev@1{
-+ status = "disabled";
-+ };
-+ };
-+ };
-+
-+ fragment@1 {
-+ target = <&gpio>;
-+ __overlay__ {
-+ pitft_pins: pitft_pins {
-+ brcm,pins = <25>;
-+ brcm,function = <1>; /* out */
-+ brcm,pull = <0>; /* none */
-+ };
-+ };
-+ };
-+
-+ fragment@2 {
-+ target = <&spi0>;
-+ __overlay__ {
-+ /* needed to avoid dtc warning */
-+ #address-cells = <1>;
-+ #size-cells = <0>;
-+
-+ pitft: pitft@0{
-+ compatible = "ilitek,ili9340";
-+ reg = <0>;
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&pitft_pins>;
-+
-+ spi-max-frequency = <32000000>;
-+ rotate = <90>;
-+ fps = <25>;
-+ bgr;
-+ buswidth = <8>;
-+ dc-gpios = <&gpio 25 0>;
-+ debug = <0>;
-+ };
-+
-+ };
-+ };
-+
-+ __overrides__ {
-+ speed = <&pitft>,"spi-max-frequency:0";
-+ rotate = <&pitft>,"rotate:0";
-+ fps = <&pitft>,"fps:0";
-+ debug = <&pitft>,"debug:0";
-+ };
-+};
---
-1.9.1
-
diff --git a/import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-4.1/0001-dts-add-overlay-for-pitft22.patch b/import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-4.1/0001-dts-add-overlay-for-pitft22.patch
deleted file mode 100644
index e6e0a8486..000000000
--- a/import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-4.1/0001-dts-add-overlay-for-pitft22.patch
+++ /dev/null
@@ -1,110 +0,0 @@
-From a28bd410022b32a64e208f04b45add6326990332 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Petter=20Mab=C3=A4cker?= <petter@technux.se>
-Date: Fri, 8 Jan 2016 09:02:44 +0100
-Subject: [PATCH] dts: add overlay for pitft22
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Upstream-Status: Pending
-
-Add the pitft22 overlay from adafruit Adafruit-Pi-Kernel-o-Matic repo:
-https://github.com/adafruit/Adafruit-Pi-Kernel-o-Matic
-
-Signed-off-by: Petter Mabäcker <petter@technux.se>
----
- arch/arm/boot/dts/overlays/Makefile | 1 +
- arch/arm/boot/dts/overlays/pitft22-overlay.dts | 69 ++++++++++++++++++++++++++
- 2 files changed, 70 insertions(+)
- create mode 100755 arch/arm/boot/dts/overlays/pitft22-overlay.dts
-
-diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile
-index 1a60e9c..a2535a2 100644
---- a/arch/arm/boot/dts/overlays/Makefile
-+++ b/arch/arm/boot/dts/overlays/Makefile
-@@ -37,6 +37,7 @@ dtb-$(RPI_DT_OVERLAYS) += mmc-overlay.dtb
- dtb-$(RPI_DT_OVERLAYS) += mz61581-overlay.dtb
- dtb-$(RPI_DT_OVERLAYS) += piscreen-overlay.dtb
- dtb-$(RPI_DT_OVERLAYS) += piscreen2r-overlay.dtb
-+dtb-$(RPI_DT_OVERLAYS) += pitft22-overlay.dtb
- dtb-$(RPI_DT_OVERLAYS) += pitft28-capacitive-overlay.dtb
- dtb-$(RPI_DT_OVERLAYS) += pitft28-resistive-overlay.dtb
- dtb-$(RPI_DT_OVERLAYS) += pps-gpio-overlay.dtb
-diff --git a/arch/arm/boot/dts/overlays/pitft22-overlay.dts b/arch/arm/boot/dts/overlays/pitft22-overlay.dts
-new file mode 100755
-index 0000000..894ba22
---- /dev/null
-+++ b/arch/arm/boot/dts/overlays/pitft22-overlay.dts
-@@ -0,0 +1,69 @@
-+/*
-+ * Device Tree overlay for pitft by Adafruit
-+ *
-+ */
-+
-+/dts-v1/;
-+/plugin/;
-+
-+/ {
-+ compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
-+
-+ fragment@0 {
-+ target = <&spi0>;
-+ __overlay__ {
-+ status = "okay";
-+
-+ spidev@0{
-+ status = "disabled";
-+ };
-+
-+ spidev@1{
-+ status = "disabled";
-+ };
-+ };
-+ };
-+
-+ fragment@1 {
-+ target = <&gpio>;
-+ __overlay__ {
-+ pitft_pins: pitft_pins {
-+ brcm,pins = <25>;
-+ brcm,function = <1>; /* out */
-+ brcm,pull = <0>; /* none */
-+ };
-+ };
-+ };
-+
-+ fragment@2 {
-+ target = <&spi0>;
-+ __overlay__ {
-+ /* needed to avoid dtc warning */
-+ #address-cells = <1>;
-+ #size-cells = <0>;
-+
-+ pitft: pitft@0{
-+ compatible = "ilitek,ili9340";
-+ reg = <0>;
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&pitft_pins>;
-+
-+ spi-max-frequency = <32000000>;
-+ rotate = <90>;
-+ fps = <25>;
-+ bgr;
-+ buswidth = <8>;
-+ dc-gpios = <&gpio 25 0>;
-+ debug = <0>;
-+ };
-+
-+ };
-+ };
-+
-+ __overrides__ {
-+ speed = <&pitft>,"spi-max-frequency:0";
-+ rotate = <&pitft>,"rotate:0";
-+ fps = <&pitft>,"fps:0";
-+ debug = <&pitft>,"debug:0";
-+ };
-+};
---
-1.9.1
-
diff --git a/import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-4.1/0002-vmcs-Remove-unused-sm_cache_map_vector-definition.patch b/import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-4.1/0002-vmcs-Remove-unused-sm_cache_map_vector-definition.patch
deleted file mode 100644
index 8d4a900c3..000000000
--- a/import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-4.1/0002-vmcs-Remove-unused-sm_cache_map_vector-definition.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-The code using it also ifdef'ed with 0, anyyd gcc 6
-complains
-
-error: 'sm_cache_map_vector' defined but not used
-
-The code using it also ifdef'ed out
-
-Upstream-status: Denied [https://github.com/raspberrypi/linux/pull/1528]
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- drivers/char/broadcom/vc_sm/vmcs_sm.c | 2 ++
- 1 file changed, 2 insertions(+)
-
---- a/drivers/char/broadcom/vc_sm/vmcs_sm.c
-+++ b/drivers/char/broadcom/vc_sm/vmcs_sm.c
-@@ -197,12 +197,14 @@ struct SM_STATE_T {
- static struct SM_STATE_T *sm_state;
- static int sm_inited;
-
-+#if 0
- static const char *const sm_cache_map_vector[] = {
- "(null)",
- "host",
- "videocore",
- "host+videocore",
- };
-+#endif
-
- /* ---- Private Function Prototypes -------------------------------------- */
-
diff --git a/import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-4.1/0003-fix-gcc6.patch b/import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-4.1/0003-fix-gcc6.patch
deleted file mode 100644
index 61ec2fbe5..000000000
--- a/import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-4.1/0003-fix-gcc6.patch
+++ /dev/null
@@ -1,78 +0,0 @@
-Fix compile with GCC6
-
-Upstream-status: Denied [https://github.com/raspberrypi/linux/pull/1528]
-
-Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
-
-Index: source/include/linux/compiler-gcc6.h
-===================================================================
---- /dev/null
-+++ source/include/linux/compiler-gcc6.h
-@@ -0,0 +1,67 @@
-+#ifndef __LINUX_COMPILER_H
-+#error "Please don't include <linux/compiler-gcc5.h> directly, include <linux/compiler.h> instead."
-+#endif
-+
-+#define __used __attribute__((__used__))
-+#define __must_check __attribute__((warn_unused_result))
-+#define __compiler_offsetof(a, b) __builtin_offsetof(a, b)
-+
-+/* Mark functions as cold. gcc will assume any path leading to a call
-+ to them will be unlikely. This means a lot of manual unlikely()s
-+ are unnecessary now for any paths leading to the usual suspects
-+ like BUG(), printk(), panic() etc. [but let's keep them for now for
-+ older compilers]
-+
-+ Early snapshots of gcc 4.3 don't support this and we can't detect this
-+ in the preprocessor, but we can live with this because they're unreleased.
-+ Maketime probing would be overkill here.
-+
-+ gcc also has a __attribute__((__hot__)) to move hot functions into
-+ a special section, but I don't see any sense in this right now in
-+ the kernel context */
-+#define __cold __attribute__((__cold__))
-+
-+#define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
-+
-+#ifndef __CHECKER__
-+# define __compiletime_warning(message) __attribute__((warning(message)))
-+# define __compiletime_error(message) __attribute__((error(message)))
-+#endif /* __CHECKER__ */
-+
-+/*
-+ * Mark a position in code as unreachable. This can be used to
-+ * suppress control flow warnings after asm blocks that transfer
-+ * control elsewhere.
-+ *
-+ * Early snapshots of gcc 4.5 don't support this and we can't detect
-+ * this in the preprocessor, but we can live with this because they're
-+ * unreleased. Really, we need to have autoconf for the kernel.
-+ */
-+#define unreachable() __builtin_unreachable()
-+
-+/* Mark a function definition as prohibited from being cloned. */
-+#define __noclone __attribute__((__noclone__))
-+
-+/*
-+ * Tell the optimizer that something else uses this function or variable.
-+ */
-+#define __visible __attribute__((externally_visible))
-+
-+/*
-+ * GCC 'asm goto' miscompiles certain code sequences:
-+ *
-+ * http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58670
-+ *
-+ * Work it around via a compiler barrier quirk suggested by Jakub Jelinek.
-+ *
-+ * (asm goto is automatically volatile - the naming reflects this.)
-+ */
-+#define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
-+
-+#ifdef CONFIG_ARCH_USE_BUILTIN_BSWAP
-+#define __HAVE_BUILTIN_BSWAP32__
-+#define __HAVE_BUILTIN_BSWAP64__
-+#define __HAVE_BUILTIN_BSWAP16__
-+#endif /* CONFIG_ARCH_USE_BUILTIN_BSWAP */
-+
-+#define KASAN_ABI_VERSION 4
diff --git a/import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-4.4/0001-fix-dtbo-rules.patch b/import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-4.4/0001-fix-dtbo-rules.patch
new file mode 100644
index 000000000..5113e23fb
--- /dev/null
+++ b/import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-4.4/0001-fix-dtbo-rules.patch
@@ -0,0 +1,44 @@
+From 13c8784da3dbd977f64cec740eba775b6fab11c2 Mon Sep 17 00:00:00 2001
+From: Herve Jourdain <herve.jourdain@neuf.fr>
+Date: Fri, 20 May 2016 16:02:23 +0800
+Subject: [yocto][meta-raspberrypi][PATCH v4 4/5] linux-raspberrypi_4.4.inc:
+ support for .dtbo files for dtb overlays
+
+Upstream-Status: Pending
+
+Kernel 4.4.6+ on RaspberryPi support .dtbo files for overlays, instead of .dtb.
+Patch the kernel, which has faulty rules to generate .dtbo the way yocto does
+
+Signed-off-by: Herve Jourdain <herve.jourdain@neuf.fr>
+---
+ .../0001-fix-dtbo-rules.patch | 27 ++++++++++++++++++++++
+ 1 file changed, 27 insertions(+)
+ create mode 100644 recipes-kernel/linux/linux-raspberrypi-4.4/0001-fix-dtbo-rules.patch
+
+diff --git a/arch/arm/Makefile b/arch/arm/Makefile
+index a2e7cf7..673c1cb 100644
+--- a/arch/arm/Makefile
++++ b/arch/arm/Makefile
+@@ -333,6 +333,8 @@ $(INSTALL_TARGETS):
+
+ %.dtb: | scripts
+ $(Q)$(MAKE) $(build)=$(boot)/dts MACHINE=$(MACHINE) $(boot)/dts/$@
++%.dtbo: | scripts
++ $(Q)$(MAKE) $(build)=$(boot)/dts MACHINE=$(MACHINE) $(boot)/dts/$@
+
+ PHONY += dtbs dtbs_install
+
+diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
+index 3079c4f..6cc3766 100644
+--- a/scripts/Makefile.lib
++++ b/scripts/Makefile.lib
+@@ -293,7 +293,8 @@ $(obj)/%.dtb: $(src)/%.dts FORCE
+ $(call if_changed_dep,dtc)
+
+ quiet_cmd_dtco = DTCO $@
+-cmd_dtco = $(CPP) $(dtc_cpp_flags) -x assembler-with-cpp -o $(dtc-tmp) $< ; \
++cmd_dtco = mkdir -p $(dir ${dtc-tmp}) ; \
++ $(CPP) $(dtc_cpp_flags) -x assembler-with-cpp -o $(dtc-tmp) $< ; \
+ $(objtree)/scripts/dtc/dtc -@ -H epapr -O dtb -o $@ -b 0 \
+ -i $(dir $<) $(DTC_FLAGS) \
+ -d $(depfile).dtc.tmp $(dtc-tmp) ; \
diff --git a/import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-4.9/0001-build-arm64-Add-rules-for-.dtbo-files-for-dts-overla.patch b/import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-4.9/0001-build-arm64-Add-rules-for-.dtbo-files-for-dts-overla.patch
new file mode 100644
index 000000000..e8bc52ee8
--- /dev/null
+++ b/import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-4.9/0001-build-arm64-Add-rules-for-.dtbo-files-for-dts-overla.patch
@@ -0,0 +1,29 @@
+From 922ce1fd0eb810b713f6ffa9a7ab97c11b6e38cf Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 10 Feb 2017 17:57:08 -0800
+Subject: [PATCH] build/arm64: Add rules for .dtbo files for dts overlays
+
+We now create overlays as .dtbo files.
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ arch/arm64/Makefile | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile
+index 3635b8662724..822fefeb1cd0 100644
+--- a/arch/arm64/Makefile
++++ b/arch/arm64/Makefile
+@@ -113,6 +113,9 @@ zinstall install:
+ %.dtb: scripts
+ $(Q)$(MAKE) $(build)=$(boot)/dts $(boot)/dts/$@
+
++%.dtbo: | scripts
++ $(Q)$(MAKE) $(build)=$(boot)/dts MACHINE=$(MACHINE) $(boot)/dts/$@
++
+ PHONY += dtbs dtbs_install
+
+ dtbs: prepare scripts
+--
+2.11.1
+
diff --git a/import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi.inc b/import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi.inc
index 61844028b..98229d99e 100644
--- a/import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi.inc
+++ b/import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi.inc
@@ -54,16 +54,3 @@ do_deploy_append() {
fi
echo "${CMDLINE}${PITFT_PARAMS}" > ${DEPLOYDIR}/bcm2835-bootfiles/cmdline.txt
}
-
-do_bundle_initramfs_append() {
- if [ ! -z "${INITRAMFS_IMAGE}" -a x"${INITRAMFS_IMAGE_BUNDLE}" = x1 ]; then
- if test "x${KERNEL_IMAGETYPE}" != "xuImage" ; then
- if test -n "${KERNEL_DEVICETREE}"; then
- # Add RPi bootloader trailer to kernel image to enable DeviceTree support
- for type in ${KERNEL_IMAGETYPES} ; do
- ${STAGING_BINDIR_NATIVE}/mkknlimg --dtok ${KERNEL_OUTPUT_DIR}/$type.initramfs ${KERNEL_OUTPUT_DIR}/$type.initramfs
- done
- fi
- fi
- fi
-}
diff --git a/import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_3.18.bb b/import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_3.18.bb
deleted file mode 100644
index 1110b71b8..000000000
--- a/import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_3.18.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}-${PV}:"
-
-LINUX_VERSION ?= "3.18.16"
-
-SRCREV = "1bb18c8f721ef674a447f3622273f2e2de7a205c"
-SRC_URI = "git://github.com/raspberrypi/linux.git;protocol=git;branch=rpi-3.18.y \
- file://0001-dts-add-overlay-for-pitft22.patch \
- "
-require linux-raspberrypi.inc
-
-# Create missing out of tree 'overlays' directory prior to install step
-do_compile_prepend() {
- mkdir -p ${B}/arch/arm/boot/dts/overlays
-}
diff --git a/import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.1.bb b/import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.1.bb
deleted file mode 100644
index 87c77b820..000000000
--- a/import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.1.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}-${PV}:"
-
-LINUX_VERSION ?= "4.1.21"
-
-SRCREV = "ff45bc0e8917c77461b2901e2743e6339bb70413"
-SRC_URI = "git://github.com/raspberrypi/linux.git;protocol=git;branch=rpi-4.1.y \
- file://0001-dts-add-overlay-for-pitft22.patch \
- file://0002-vmcs-Remove-unused-sm_cache_map_vector-definition.patch \
- file://0003-fix-gcc6.patch \
- "
-
-require linux-raspberrypi.inc
diff --git a/import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.4.bb b/import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.4.bb
index 3291ffdf3..b2357725b 100644
--- a/import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.4.bb
+++ b/import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.4.bb
@@ -1,8 +1,9 @@
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}-${PV}:"
-LINUX_VERSION ?= "4.4.13"
+LINUX_VERSION ?= "4.4.48"
-SRCREV = "680be5e27a9593cf26079c6e5744a04cc2809d13"
+SRCREV = "7ddf96fbb7d637b79b449c7bd1c8d35f00571e4b"
SRC_URI = "git://github.com/raspberrypi/linux.git;protocol=git;branch=rpi-4.4.y \
+ file://0001-fix-dtbo-rules.patch \
"
require linux-raspberrypi.inc
diff --git a/import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.9.bb b/import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.9.bb
new file mode 100644
index 000000000..dcca369bf
--- /dev/null
+++ b/import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.9.bb
@@ -0,0 +1,9 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}-${PV}:"
+
+LINUX_VERSION ?= "4.9.10"
+
+SRCREV = "095c4480e1f623bdc8a221a171ef13b2223706b1"
+SRC_URI = "git://github.com/raspberrypi/linux.git;protocol=git;branch=rpi-4.9.y \
+ file://0001-build-arm64-Add-rules-for-.dtbo-files-for-dts-overla.patch \
+"
+require linux-raspberrypi.inc
diff --git a/import-layers/meta-raspberrypi/recipes-kernel/linux/linux-rpi.inc b/import-layers/meta-raspberrypi/recipes-kernel/linux/linux-rpi.inc
index 4b65fc250..53383b073 100644
--- a/import-layers/meta-raspberrypi/recipes-kernel/linux/linux-rpi.inc
+++ b/import-layers/meta-raspberrypi/recipes-kernel/linux/linux-rpi.inc
@@ -13,9 +13,9 @@ ARM_KEEP_OABI ?= "1"
# Quirk for udev greater or equal 141
UDEV_GE_141 ?= "1"
-# Set the verbosity of kernel messages during runtime
-# You can define CMDLINE_DEBUG in your local.conf or distro.conf to override this behaviour
-CMDLINE_DEBUG ?= '${@base_conditional("DISTRO_TYPE", "release", "quiet", "debug", d)}'
+# You can define CMDLINE_DEBUG as "debug" in your local.conf or distro.conf
+# to enable kernel debugging.
+CMDLINE_DEBUG ?= ""
CMDLINE_append = " ${CMDLINE_DEBUG}"
KERNEL_INITRAMFS ?= '${@base_conditional("INITRAMFS_IMAGE_BUNDLE", "1", "1", "", d)}'
@@ -111,6 +111,16 @@ do_configure_prepend() {
# Activate CONFIG_LEGACY_PTYS
kernel_configure_variable LEGACY_PTYS y
+ # Activate the configuration options for VC4
+ VC4GRAPHICS="${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "1", "0", d)}"
+ if [ ${VC4GRAPHICS} = "1" ]; then
+ kernel_configure_variable I2C_BCM2835 y
+ kernel_configure_variable DRM y
+ kernel_configure_variable DRM_FBDEV_EMULATION y
+ kernel_configure_variable DRM_VC4 y
+ kernel_configure_variable FB_BCM2708 n
+ fi
+
# Keep this the last line
# Remove all modified configs and add the rest to .config
sed -e "${CONF_SED_SCRIPT}" < '${WORKDIR}/defconfig' >> '${B}/.config'
diff --git a/import-layers/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_%.bbappend b/import-layers/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_%.bbappend
index ab0280ec5..7292f90ce 100644
--- a/import-layers/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_%.bbappend
+++ b/import-layers/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_%.bbappend
@@ -1,2 +1,12 @@
-EXTRA_OECONF_append_rpi = " CPPFLAGS='-I${STAGING_DIR_TARGET}/usr/include/interface/vcos/pthreads \
- -I${STAGING_DIR_TARGET}/usr/include/interface/vmcs_host/linux'"
+EXTRA_OECONF_append_rpi = " CPPFLAGS='-I${STAGING_INCDIR}/interface/vcos/pthreads \
+ -I${STAGING_INCDIR}/interface/vmcs_host/linux'"
+
+# if using bcm driver enable dispmanx not when using VC4 driver
+
+PACKAGECONFIG_append_rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', ' dispmanx', d)}"
+
+PACKAGECONFIG_GL_rpi = "egl gles2"
+
+PACKAGECONFIG_append_rpi = " hls libmms faad"
+
+PACKAGECONFIG[dispmanx] = "--enable-dispmanx,--disable-dispmanx,userland"
OpenPOWER on IntegriCloud