From b2e6a9b5bcc725ab21f4a319e32ea09700a732b6 Mon Sep 17 00:00:00 2001 From: Patrick Williams Date: Thu, 23 Feb 2017 20:31:26 -0600 Subject: 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 --- import-layers/meta-raspberrypi/README | 10 +- .../classes/linux-raspberrypi-base.bbclass | 24 +-- .../classes/sdcard_image-rpi.bbclass | 22 +-- .../conf/machine/include/rpi-base.inc | 45 +++-- .../conf/machine/include/rpi-default-providers.inc | 8 +- .../conf/machine/include/rpi-default-versions.inc | 2 +- .../conf/machine/raspberrypi-cm.conf | 6 + .../conf/machine/raspberrypi-cm3.conf | 6 + .../meta-raspberrypi/conf/machine/raspberrypi.conf | 1 + .../conf/machine/raspberrypi0.conf | 1 + .../conf/machine/raspberrypi2.conf | 1 + .../conf/machine/raspberrypi3.conf | 6 +- .../recipes-bsp/bootfiles/rpi-config_git.bb | 10 +- .../recipes-bsp/common/firmware.inc | 12 +- .../recipes-bsp/rpi-u-boot-scr/files/boot.cmd | 3 + .../recipes-bsp/rpi-u-boot-scr/rpi-u-boot-scr.bb | 21 +++ ...0001-arm-add-save_boot_params-for-ARM1176.patch | 56 ++++++ ...through-of-the-firmware-provided-FDT-blob.patch | 156 ++++++++++++++++ .../0003-Include-lowlevel_init.o-for-rpi2.patch | 25 +++ .../recipes-bsp/u-boot/u-boot_%.bbappend | 7 + .../recipes-connectivity/bluez5/bluez5_%.bbappend | 2 +- .../recipes-devtools/bcm2835/bcm2835_1.46.bb | 40 ---- .../recipes-devtools/bcm2835/bcm2835_1.50.bb | 40 ++++ .../0001-Add-initial-cross-compile-support.patch | 4 +- .../recipes-devtools/wiringPi/wiringpi_git.bb | 6 +- .../eglinfo/eglinfo-x11_%.bbappend | 2 +- .../recipes-graphics/mesa/mesa_%.bbappend | 3 + ...-applications-to-set-next-resource-handle.patch | 16 +- ...ayland-Add-support-for-the-Wayland-winsys.patch | 97 +++++----- .../0003-wayland-Add-Wayland-example.patch | 16 +- ...-wayland-egl-Add-bcm_host-to-dependencies.patch | 6 +- ...emove-faulty-assert-to-make-weston-happy-.patch | 24 +-- ...6-zero-out-wl-buffers-in-egl_surface_free.patch | 8 +- ...007-initialize-front-back-wayland-buffers.patch | 8 +- .../userland/userland/0008-Remove-RPC_FLUSH.patch | 6 +- .../userland/0009-fix-cmake-dependency-race.patch | 8 +- .../0010-Fix-enum-conversion-warnings.patch | 99 ---------- ...Fix-for-framerate-with-nested-composition.patch | 60 ++++++ ...Fix-for-framerate-with-nested-composition.patch | 60 ------ .../0011-build-shared-library-for-vchostif.patch | 28 +++ .../0012-build-shared-library-for-vchostif.patch | 28 --- ...nt-buffer-wrapping-interface-for-dispmanx.patch | 92 +++++++++ ...nt-buffer-wrapping-interface-for-dispmanx.patch | 92 --------- .../recipes-graphics/userland/userland_git.bb | 16 +- .../recipes-graphics/wayland/weston_%.bbappend | 16 +- .../recipes-graphics/weston/weston_%.bbappend | 7 - .../xorg-xserver/xserver-xorg_%.bbappend | 9 + .../linux-firmware/LICENSE.broadcom_brcm80211 | 205 --------------------- .../linux-firmware/brcmfmac43430-sdio.bin | Bin 368957 -> 0 bytes .../linux-firmware/brcmfmac43430-sdio.txt | 66 ------- .../linux-firmware/linux-firmware_git.bbappend | 33 ---- .../0001-dts-add-overlay-for-pitft22.patch | 110 ----------- .../0001-dts-add-overlay-for-pitft22.patch | 110 ----------- ...ove-unused-sm_cache_map_vector-definition.patch | 31 ---- .../linux-raspberrypi-4.1/0003-fix-gcc6.patch | 78 -------- .../0001-fix-dtbo-rules.patch | 44 +++++ ...-Add-rules-for-.dtbo-files-for-dts-overla.patch | 29 +++ .../recipes-kernel/linux/linux-raspberrypi.inc | 13 -- .../recipes-kernel/linux/linux-raspberrypi_3.18.bb | 14 -- .../recipes-kernel/linux/linux-raspberrypi_4.1.bb | 12 -- .../recipes-kernel/linux/linux-raspberrypi_4.4.bb | 5 +- .../recipes-kernel/linux/linux-raspberrypi_4.9.bb | 9 + .../recipes-kernel/linux/linux-rpi.inc | 16 +- .../gstreamer/gstreamer1.0-plugins-bad_%.bbappend | 14 +- 64 files changed, 826 insertions(+), 1178 deletions(-) create mode 100644 import-layers/meta-raspberrypi/conf/machine/raspberrypi-cm.conf create mode 100644 import-layers/meta-raspberrypi/conf/machine/raspberrypi-cm3.conf create mode 100644 import-layers/meta-raspberrypi/recipes-bsp/rpi-u-boot-scr/files/boot.cmd create mode 100644 import-layers/meta-raspberrypi/recipes-bsp/rpi-u-boot-scr/rpi-u-boot-scr.bb create mode 100644 import-layers/meta-raspberrypi/recipes-bsp/u-boot/files/0001-arm-add-save_boot_params-for-ARM1176.patch create mode 100644 import-layers/meta-raspberrypi/recipes-bsp/u-boot/files/0002-rpi-passthrough-of-the-firmware-provided-FDT-blob.patch create mode 100644 import-layers/meta-raspberrypi/recipes-bsp/u-boot/files/0003-Include-lowlevel_init.o-for-rpi2.patch create mode 100644 import-layers/meta-raspberrypi/recipes-bsp/u-boot/u-boot_%.bbappend delete mode 100644 import-layers/meta-raspberrypi/recipes-devtools/bcm2835/bcm2835_1.46.bb create mode 100644 import-layers/meta-raspberrypi/recipes-devtools/bcm2835/bcm2835_1.50.bb create mode 100644 import-layers/meta-raspberrypi/recipes-graphics/mesa/mesa_%.bbappend delete mode 100644 import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0010-Fix-enum-conversion-warnings.patch create mode 100644 import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0010-Fix-for-framerate-with-nested-composition.patch delete mode 100644 import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0011-Fix-for-framerate-with-nested-composition.patch create mode 100644 import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0011-build-shared-library-for-vchostif.patch delete mode 100644 import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0012-build-shared-library-for-vchostif.patch create mode 100644 import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0012-implement-buffer-wrapping-interface-for-dispmanx.patch delete mode 100644 import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0013-implement-buffer-wrapping-interface-for-dispmanx.patch delete mode 100644 import-layers/meta-raspberrypi/recipes-graphics/weston/weston_%.bbappend create mode 100644 import-layers/meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xorg_%.bbappend delete mode 100644 import-layers/meta-raspberrypi/recipes-kernel/linux-firmware/linux-firmware/LICENSE.broadcom_brcm80211 delete mode 100644 import-layers/meta-raspberrypi/recipes-kernel/linux-firmware/linux-firmware/brcmfmac43430-sdio.bin delete mode 100644 import-layers/meta-raspberrypi/recipes-kernel/linux-firmware/linux-firmware/brcmfmac43430-sdio.txt delete mode 100644 import-layers/meta-raspberrypi/recipes-kernel/linux-firmware/linux-firmware_git.bbappend delete mode 100644 import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-3.18/0001-dts-add-overlay-for-pitft22.patch delete mode 100644 import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-4.1/0001-dts-add-overlay-for-pitft22.patch delete mode 100644 import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-4.1/0002-vmcs-Remove-unused-sm_cache_map_vector-definition.patch delete mode 100644 import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-4.1/0003-fix-gcc6.patch create mode 100644 import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-4.4/0001-fix-dtbo-rules.patch create mode 100644 import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-4.9/0001-build-arm64-Add-rules-for-.dtbo-files-for-dts-overla.patch delete mode 100644 import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_3.18.bb delete mode 100644 import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.1.bb create mode 100644 import-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.9.bb 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?= +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 +Acked-by: Stephen Warren +Signed-off-by: Paul Barker +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 + #include ++#include + + #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?= +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 +Acked-by: Stephen Warren +Signed-off-by: Jonathan Liu +--- + 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 ++ * ++ * SPDX-License-Identifier: GPL-2.0+ ++ */ ++ ++#include ++ ++.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 +Date: Tue, 29 Nov 2016 19:47:49 +0000 +Subject: [PATCH] Include lowlevel_init.o for rpi2 + +Signed-off-by: Paul Barker +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.46.bb deleted file mode 100644 index dd37b8f36..000000000 --- a/import-layers/meta-raspberrypi/recipes-devtools/bcm2835/bcm2835_1.46.bb +++ /dev/null @@ -1,40 +0,0 @@ -DESCRIPTION = "Package that provides access to GPIO and other IO\ -functions on the Broadcom BCM 2835 chip, allowing access to the\ -GPIO pins on the 26 pin IDE plug on the RPi board" -SECTION = "base" -HOMEPAGE = "http://www.open.com.au/mikem/bcm2835" -AUTHOR = "Mike McCauley (mikem@open.com.au)" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" - -COMPATIBLE_MACHINE = "raspberrypi" - -SRC_URI = "http://www.airspayce.com/mikem/bcm2835/bcm2835-${PV}.tar.gz" - -SRC_URI[md5sum] = "3a40c01ee7d81fbff80c54fbe1a351b5" -SRC_URI[sha256sum] = "fc6b0412525e6b7e85aeffec67e2d01a99fb906346620041e6684d59ea5517a7" - -inherit autotools - -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 - done -} - -do_install_append() { - install -d ${D}/${libdir}/${BPN} - for file in ${B}/examples/* - do - install -m 0755 ${file} ${D}/${libdir}/${BPN} - done -} - -PACKAGES += "${PN}-tests" - -FILES_${PN} = "" -FILES_${PN}-tests = "${libdir}/${BPN}" -FILES_${PN}-dbg += "${libdir}/${BPN}/.debug" diff --git a/import-layers/meta-raspberrypi/recipes-devtools/bcm2835/bcm2835_1.50.bb b/import-layers/meta-raspberrypi/recipes-devtools/bcm2835/bcm2835_1.50.bb new file mode 100644 index 000000000..9cf6f484f --- /dev/null +++ b/import-layers/meta-raspberrypi/recipes-devtools/bcm2835/bcm2835_1.50.bb @@ -0,0 +1,40 @@ +DESCRIPTION = "Package that provides access to GPIO and other IO\ +functions on the Broadcom BCM 2835 chip, allowing access to the\ +GPIO pins on the 26 pin IDE plug on the RPi board" +SECTION = "base" +HOMEPAGE = "http://www.open.com.au/mikem/bcm2835" +AUTHOR = "Mike McCauley (mikem@open.com.au)" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +COMPATIBLE_MACHINE = "raspberrypi" + +SRC_URI = "http://www.airspayce.com/mikem/bcm2835/bcm2835-${PV}.tar.gz" + +SRC_URI[md5sum] = "258caf3437012d09a651e1852d0bd60c" +SRC_URI[sha256sum] = "52180b8a61b6546c1df4aed259d0a4d2fa56e50605e0d4d967a76bf2b23dafb8" + +inherit autotools + +do_compile_append() { + # Now compiling the examples provided by the package + mkdir -p ${B}/examples + for file in `ls ${S}/examples`; do + ${CC} ${LDFLAGS} ${S}/examples/${file}/${file}.c -o ${B}/examples/${file} -Bstatic -L${B}/src -lbcm2835 -I${S}/src + done +} + +do_install_append() { + install -d ${D}/${libdir}/${BPN} + for file in ${B}/examples/* + do + install -m 0755 ${file} ${D}/${libdir}/${BPN} + done +} + +PACKAGES += "${PN}-tests" + +FILES_${PN} = "" +FILES_${PN}-tests = "${libdir}/${BPN}" +FILES_${PN}-dbg += "${libdir}/${BPN}/.debug" 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 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 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 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 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" 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" 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 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 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 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 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 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 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 -Date: Thu, 18 Feb 2016 09:04:46 +0000 -Subject: [PATCH 10/13] Fix enum conversion warnings - -Signed-off-by: Khem Raj ---- - 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/0010-Fix-for-framerate-with-nested-composition.patch b/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0010-Fix-for-framerate-with-nested-composition.patch new file mode 100644 index 000000000..8a34f3f1a --- /dev/null +++ b/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0010-Fix-for-framerate-with-nested-composition.patch @@ -0,0 +1,60 @@ +From 098faed5e7035b51f14700fdf4cf5875aa7af97e Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 29 Mar 2016 20:38:30 -0700 +Subject: [PATCH 10/12] Fix for framerate with nested composition + +frame rate appears irregular and lower than expected when using nested composition. + +Signed-off-by: Khem Raj +--- + interface/khronos/egl/egl_client.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/interface/khronos/egl/egl_client.c b/interface/khronos/egl/egl_client.c +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) + surface->back_wl_buffer = buffer; + } + ++ glFlush(); ++ glFinish(); ++ + RPC_CALL7(eglIntSwapBuffers_impl, + thread, + EGLINTSWAPBUFFERS_ID_V2, +@@ -2353,6 +2356,8 @@ EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers(EGLDisplay dpy, EGLSurface surf) + RPC_UINT(khrn_platform_get_window_position(surface->win)), + RPC_INT(surface->back_wl_buffer->resource)); + ++ RPC_FLUSH(thread); ++ + surface->front_wl_buffer->in_use = 1; + wl_surface_attach(wl_egl_window->wl_surface, + surface->front_wl_buffer->wl_buffer, +@@ -2360,11 +2365,13 @@ EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers(EGLDisplay dpy, EGLSurface surf) + wl_surface_damage(wl_egl_window->wl_surface, 0, 0, + surface->width, surface->height); + wl_surface_commit(wl_egl_window->wl_surface); ++ wl_display_flush(wl_display); + + while(ret != -1 && surface->back_wl_buffer->in_use) + ret = wl_display_dispatch_queue(wl_display, process->wl_queue); + } else + #endif ++ { + RPC_CALL6(eglIntSwapBuffers_impl, + thread, + EGLINTSWAPBUFFERS_ID, +@@ -2376,6 +2383,7 @@ EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers(EGLDisplay dpy, EGLSurface surf) + RPC_UINT(khrn_platform_get_window_position(surface->win))); + + RPC_FLUSH(thread); ++ } + + #ifdef ANDROID + CLIENT_UNLOCK(); +-- +2.10.2 + 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/0011-Fix-for-framerate-with-nested-composition.patch deleted file mode 100644 index 5e97571d9..000000000 --- a/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0011-Fix-for-framerate-with-nested-composition.patch +++ /dev/null @@ -1,60 +0,0 @@ -From 6e634184ee4b3d2c98c3213a3931845ec3014754 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Tue, 29 Mar 2016 20:38:30 -0700 -Subject: [PATCH 11/13] Fix for framerate with nested composition - -frame rate appears irregular and lower than expected when using nested composition. - -Signed-off-by: Khem Raj ---- - interface/khronos/egl/egl_client.c | 8 ++++++++ - 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 ---- 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) - surface->back_wl_buffer = buffer; - } - -+ glFlush(); -+ glFinish(); -+ - RPC_CALL7(eglIntSwapBuffers_impl, - thread, - EGLINTSWAPBUFFERS_ID_V2, -@@ -2353,6 +2356,8 @@ EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers(EGLDisplay dpy, EGLSurface surf) - RPC_UINT(khrn_platform_get_window_position(surface->win)), - RPC_INT(surface->back_wl_buffer->resource)); - -+ RPC_FLUSH(thread); -+ - surface->front_wl_buffer->in_use = 1; - wl_surface_attach(wl_egl_window->wl_surface, - surface->front_wl_buffer->wl_buffer, -@@ -2360,11 +2365,13 @@ EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers(EGLDisplay dpy, EGLSurface surf) - wl_surface_damage(wl_egl_window->wl_surface, 0, 0, - surface->width, surface->height); - wl_surface_commit(wl_egl_window->wl_surface); -+ wl_display_flush(wl_display); - - while(ret != -1 && surface->back_wl_buffer->in_use) - ret = wl_display_dispatch_queue(wl_display, process->wl_queue); - } else - #endif -+ { - RPC_CALL6(eglIntSwapBuffers_impl, - thread, - EGLINTSWAPBUFFERS_ID, -@@ -2376,6 +2383,7 @@ EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers(EGLDisplay dpy, EGLSurface surf) - RPC_UINT(khrn_platform_get_window_position(surface->win))); - - RPC_FLUSH(thread); -+ } - - #ifdef ANDROID - CLIENT_UNLOCK(); --- -2.9.0 - diff --git a/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0011-build-shared-library-for-vchostif.patch b/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0011-build-shared-library-for-vchostif.patch new file mode 100644 index 000000000..f2455e52c --- /dev/null +++ b/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0011-build-shared-library-for-vchostif.patch @@ -0,0 +1,28 @@ +From b533d784484caead1dc84c766127e1d3854d2aad Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 2 Apr 2016 10:37:24 -0700 +Subject: [PATCH 11/12] build shared library for vchostif + +Fixes #149 + +Signed-off-by: Khem Raj +--- + interface/vmcs_host/CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/interface/vmcs_host/CMakeLists.txt b/interface/vmcs_host/CMakeLists.txt +index 9bcc2c3..0ef753f 100755 +--- a/interface/vmcs_host/CMakeLists.txt ++++ b/interface/vmcs_host/CMakeLists.txt +@@ -17,7 +17,7 @@ set(VCHOSTIF_SOURCE + # ${VMCS_TARGET}/vmcs_main.c + # vc_vchi_haud.c + +-add_library(vchostif ${VCHOSTIF_SOURCE}) ++add_library(vchostif SHARED ${VCHOSTIF_SOURCE}) + + #add_library(bufman vc_vchi_bufman.c ) + +-- +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/0012-build-shared-library-for-vchostif.patch deleted file mode 100644 index 44815c571..000000000 --- a/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0012-build-shared-library-for-vchostif.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 559209ce15027b3370466ccb56223a7a66d2a40c Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Sat, 2 Apr 2016 10:37:24 -0700 -Subject: [PATCH 12/13] build shared library for vchostif - -Fixes #149 - -Signed-off-by: Khem Raj ---- - interface/vmcs_host/CMakeLists.txt | 2 +- - 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 ---- a/interface/vmcs_host/CMakeLists.txt -+++ b/interface/vmcs_host/CMakeLists.txt -@@ -17,7 +17,7 @@ set(VCHOSTIF_SOURCE - # ${VMCS_TARGET}/vmcs_main.c - # vc_vchi_haud.c - --add_library(vchostif ${VCHOSTIF_SOURCE}) -+add_library(vchostif SHARED ${VCHOSTIF_SOURCE}) - - #add_library(bufman vc_vchi_bufman.c ) - --- -2.9.0 - diff --git a/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0012-implement-buffer-wrapping-interface-for-dispmanx.patch b/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0012-implement-buffer-wrapping-interface-for-dispmanx.patch new file mode 100644 index 000000000..aa3e0ef35 --- /dev/null +++ b/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0012-implement-buffer-wrapping-interface-for-dispmanx.patch @@ -0,0 +1,92 @@ +From ee5ebfcf0e030efed17f2a45fbb018a02dd421b3 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 2 Apr 2016 10:54:59 -0700 +Subject: [PATCH 12/12] implement buffer wrapping interface for dispmanx + +Courtesy: Zan Dobersek + +Signed-off-by: Khem Raj +--- + interface/khronos/ext/egl_wayland.c | 42 +++++++++++++++++++++++++++++++++++++ + interface/wayland/dispmanx.xml | 10 +++++++++ + 2 files changed, 52 insertions(+) + +diff --git a/interface/khronos/ext/egl_wayland.c b/interface/khronos/ext/egl_wayland.c +index 5730743..9ef89cd 100644 +--- a/interface/khronos/ext/egl_wayland.c ++++ b/interface/khronos/ext/egl_wayland.c +@@ -133,8 +133,50 @@ dispmanx_create_buffer(struct wl_client *client, struct wl_resource *resource, + buffer->handle); + } + ++static void ++dispmanx_wrap_buffer(struct wl_client *client, struct wl_resource *resource, ++ uint32_t id, uint32_t handle, int32_t width, int32_t height, ++ uint32_t stride, uint32_t buffer_height, uint32_t format) ++{ ++ struct wl_dispmanx_server_buffer *buffer; ++ VC_IMAGE_TYPE_T vc_format = get_vc_format(format); ++ uint32_t dummy; ++ ++ if(vc_format == VC_IMAGE_MIN) { ++ wl_resource_post_error(resource, ++ WL_DISPMANX_ERROR_INVALID_FORMAT, ++ "invalid format"); ++ return; ++ } ++ ++ buffer = calloc(1, sizeof *buffer); ++ if (buffer == NULL) { ++ wl_resource_post_no_memory(resource); ++ return; ++ } ++ ++ buffer->handle = handle; ++ buffer->width = width; ++ buffer->height = height; ++ buffer->format = format; ++ ++ buffer->resource = wl_resource_create(resource->client, &wl_buffer_interface, ++ 1, id); ++ if (!buffer->resource) { ++ wl_resource_post_no_memory(resource); ++ vc_dispmanx_resource_delete(buffer->handle); ++ free(buffer); ++ return; ++ } ++ ++ wl_resource_set_implementation(buffer->resource, ++ (void (**)(void)) &dispmanx_buffer_interface, ++ buffer, destroy_buffer); ++} ++ + static const struct wl_dispmanx_interface dispmanx_interface = { + dispmanx_create_buffer, ++ dispmanx_wrap_buffer, + }; + + static void +diff --git a/interface/wayland/dispmanx.xml b/interface/wayland/dispmanx.xml +index c18626d..11ed1ef 100644 +--- a/interface/wayland/dispmanx.xml ++++ b/interface/wayland/dispmanx.xml +@@ -118,6 +118,16 @@ + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + +-- +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/0013-implement-buffer-wrapping-interface-for-dispmanx.patch deleted file mode 100644 index 8f36048f9..000000000 --- a/import-layers/meta-raspberrypi/recipes-graphics/userland/userland/0013-implement-buffer-wrapping-interface-for-dispmanx.patch +++ /dev/null @@ -1,92 +0,0 @@ -From 5b55a152651eece345d9ea1e0e40ecd9fc4ca2d5 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Sat, 2 Apr 2016 10:54:59 -0700 -Subject: [PATCH 13/13] implement buffer wrapping interface for dispmanx - -Courtesy: Zan Dobersek - -Signed-off-by: Khem Raj ---- - interface/khronos/ext/egl_wayland.c | 42 +++++++++++++++++++++++++++++++++++++ - interface/wayland/dispmanx.xml | 10 +++++++++ - 2 files changed, 52 insertions(+) - -diff --git a/interface/khronos/ext/egl_wayland.c b/interface/khronos/ext/egl_wayland.c -index 5730743..9ef89cd 100644 ---- a/interface/khronos/ext/egl_wayland.c -+++ b/interface/khronos/ext/egl_wayland.c -@@ -133,8 +133,50 @@ dispmanx_create_buffer(struct wl_client *client, struct wl_resource *resource, - buffer->handle); - } - -+static void -+dispmanx_wrap_buffer(struct wl_client *client, struct wl_resource *resource, -+ uint32_t id, uint32_t handle, int32_t width, int32_t height, -+ uint32_t stride, uint32_t buffer_height, uint32_t format) -+{ -+ struct wl_dispmanx_server_buffer *buffer; -+ VC_IMAGE_TYPE_T vc_format = get_vc_format(format); -+ uint32_t dummy; -+ -+ if(vc_format == VC_IMAGE_MIN) { -+ wl_resource_post_error(resource, -+ WL_DISPMANX_ERROR_INVALID_FORMAT, -+ "invalid format"); -+ return; -+ } -+ -+ buffer = calloc(1, sizeof *buffer); -+ if (buffer == NULL) { -+ wl_resource_post_no_memory(resource); -+ return; -+ } -+ -+ buffer->handle = handle; -+ buffer->width = width; -+ buffer->height = height; -+ buffer->format = format; -+ -+ buffer->resource = wl_resource_create(resource->client, &wl_buffer_interface, -+ 1, id); -+ if (!buffer->resource) { -+ wl_resource_post_no_memory(resource); -+ vc_dispmanx_resource_delete(buffer->handle); -+ free(buffer); -+ return; -+ } -+ -+ wl_resource_set_implementation(buffer->resource, -+ (void (**)(void)) &dispmanx_buffer_interface, -+ buffer, destroy_buffer); -+} -+ - static const struct wl_dispmanx_interface dispmanx_interface = { - dispmanx_create_buffer, -+ dispmanx_wrap_buffer, - }; - - static void -diff --git a/interface/wayland/dispmanx.xml b/interface/wayland/dispmanx.xml -index c18626d..11ed1ef 100644 ---- a/interface/wayland/dispmanx.xml -+++ b/interface/wayland/dispmanx.xml -@@ -118,6 +118,16 @@ - - - -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ - - - --- -2.9.0 - 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 Binary files a/import-layers/meta-raspberrypi/recipes-kernel/linux-firmware/linux-firmware/brcmfmac43430-sdio.bin and /dev/null 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?= -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 ---- - 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?= -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 ---- - 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 ---- - 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 - -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 directly, include 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 +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 +--- + .../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 +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 +--- + 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" -- cgit v1.2.1