diff options
Diffstat (limited to 'meta-raspberrypi')
53 files changed, 846 insertions, 81 deletions
diff --git a/meta-raspberrypi/classes/sdcard_image-rpi.bbclass b/meta-raspberrypi/classes/sdcard_image-rpi.bbclass index 538803d8eb..041abb4827 100644 --- a/meta-raspberrypi/classes/sdcard_image-rpi.bbclass +++ b/meta-raspberrypi/classes/sdcard_image-rpi.bbclass @@ -55,6 +55,7 @@ do_image_rpi_sdimg[depends] = " \ dosfstools-native:do_populate_sysroot \ virtual/kernel:do_deploy \ ${IMAGE_BOOTLOADER}:do_deploy \ + ${@bb.utils.contains('MACHINE_FEATURES', 'armstub', 'armstubs:do_deploy', '' ,d)} \ ${@bb.utils.contains('RPI_USE_U_BOOT', '1', 'u-boot:do_deploy', '',d)} \ ${@bb.utils.contains('RPI_USE_U_BOOT', '1', 'rpi-u-boot-scr:do_deploy', '',d)} \ " @@ -113,6 +114,9 @@ IMAGE_CMD_rpi-sdimg () { rm -f ${WORKDIR}/boot.img mkfs.vfat -F32 -n "${BOOTDD_VOLUME_ID}" -S 512 -C ${WORKDIR}/boot.img $BOOT_BLOCKS mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/bcm2835-bootfiles/* ::/ + if [ "${@bb.utils.contains("MACHINE_FEATURES", "armstub", "1", "0", d)}" = "1" ]; then + mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/armstubs/${ARMSTUB} ::/ + fi if test -n "${DTS}"; then # Copy board device trees to root folder for dtbf in ${@split_overlays(d, True)}; do @@ -143,7 +147,7 @@ IMAGE_CMD_rpi-sdimg () { fi fi - if [ -n ${FATPAYLOAD} ] ; then + if [ -n "${FATPAYLOAD}" ] ; then echo "Copying payload into VFAT" for entry in ${FATPAYLOAD} ; do # add the || true to stop aborting on vfat issues like not supporting .~lock files diff --git a/meta-raspberrypi/conf/machine/include/rpi-base.inc b/meta-raspberrypi/conf/machine/include/rpi-base.inc index cc6a54ecf8..af1418df5b 100644 --- a/meta-raspberrypi/conf/machine/include/rpi-base.inc +++ b/meta-raspberrypi/conf/machine/include/rpi-base.inc @@ -35,17 +35,19 @@ RPI_KERNEL_DEVICETREE_OVERLAYS ?= " \ overlays/rpi-ft5406.dtbo \ overlays/rpi-poe.dtbo \ overlays/vc4-kms-v3d.dtbo \ + overlays/vc4-fkms-v3d.dtbo \ overlays/w1-gpio-pullup.dtbo \ overlays/w1-gpio.dtbo \ " RPI_KERNEL_DEVICETREE ?= " \ - bcm2708-rpi-0-w.dtb \ + bcm2708-rpi-zero-w.dtb \ bcm2708-rpi-b.dtb \ bcm2708-rpi-b-plus.dtb \ bcm2709-rpi-2-b.dtb \ bcm2710-rpi-3-b.dtb \ bcm2710-rpi-3-b-plus.dtb \ + bcm2711-rpi-4-b.dtb \ bcm2708-rpi-cm.dtb \ bcm2710-rpi-cm3.dtb \ " @@ -68,7 +70,7 @@ KERNEL_IMAGETYPE_DIRECT ??= "zImage" KERNEL_IMAGETYPE ?= "${@bb.utils.contains('RPI_USE_U_BOOT', '1', \ '${KERNEL_IMAGETYPE_UBOOT}', '${KERNEL_IMAGETYPE_DIRECT}', d)}" -MACHINE_FEATURES += "apm usbhost keyboard vfat ext2 screen touchscreen alsa bluetooth wifi sdio" +MACHINE_FEATURES += "apm usbhost keyboard vfat ext2 screen touchscreen alsa bluetooth wifi sdio vc4graphics" # Raspberry Pi has no hardware clock MACHINE_FEATURES_BACKFILL_CONSIDERED = "rtc" diff --git a/meta-raspberrypi/conf/machine/include/rpi-default-versions.inc b/meta-raspberrypi/conf/machine/include/rpi-default-versions.inc index a5fe6d7070..9983b61a64 100644 --- a/meta-raspberrypi/conf/machine/include/rpi-default-versions.inc +++ b/meta-raspberrypi/conf/machine/include/rpi-default-versions.inc @@ -1,3 +1,3 @@ # RaspberryPi BSP default versions -PREFERRED_VERSION_linux-raspberrypi ??= "4.14.%" +PREFERRED_VERSION_linux-raspberrypi ??= "4.19.%" diff --git a/meta-raspberrypi/conf/machine/raspberrypi-cm.conf b/meta-raspberrypi/conf/machine/raspberrypi-cm.conf index 2da7d50b7e..f9371df6fb 100644 --- a/meta-raspberrypi/conf/machine/raspberrypi-cm.conf +++ b/meta-raspberrypi/conf/machine/raspberrypi-cm.conf @@ -4,3 +4,5 @@ MACHINEOVERRIDES = "raspberrypi:${MACHINE}" include conf/machine/raspberrypi.conf + +ARMSTUB ?= "armstub.bin" diff --git a/meta-raspberrypi/conf/machine/raspberrypi-cm3.conf b/meta-raspberrypi/conf/machine/raspberrypi-cm3.conf index c8677b4ffa..638c2ea5f5 100644 --- a/meta-raspberrypi/conf/machine/raspberrypi-cm3.conf +++ b/meta-raspberrypi/conf/machine/raspberrypi-cm3.conf @@ -10,3 +10,5 @@ KBUILD_DEFCONFIG ?= "bcm2709_defconfig" SDIMG_KERNELIMAGE ?= "kernel7.img" UBOOT_MACHINE = "rpi_3_32b_config" SERIAL_CONSOLES ?= "115200;ttyAMA0" + +ARMSTUB ?= "armstub.bin" diff --git a/meta-raspberrypi/conf/machine/raspberrypi.conf b/meta-raspberrypi/conf/machine/raspberrypi.conf index e94ad867ec..b23687b24a 100644 --- a/meta-raspberrypi/conf/machine/raspberrypi.conf +++ b/meta-raspberrypi/conf/machine/raspberrypi.conf @@ -10,3 +10,5 @@ include conf/machine/include/rpi-base.inc SERIAL_CONSOLES ?= "115200;ttyAMA0" UBOOT_MACHINE = "rpi_config" + +ARMSTUB ?= "armstub.bin" diff --git a/meta-raspberrypi/conf/machine/raspberrypi0-wifi.conf b/meta-raspberrypi/conf/machine/raspberrypi0-wifi.conf index 2c4f760ead..8689bca93f 100644 --- a/meta-raspberrypi/conf/machine/raspberrypi0-wifi.conf +++ b/meta-raspberrypi/conf/machine/raspberrypi0-wifi.conf @@ -14,3 +14,5 @@ MACHINE_EXTRA_RRECOMMENDS += "\ SDIMG_KERNELIMAGE ?= "kernel.img" UBOOT_MACHINE ?= "rpi_0_w_defconfig" SERIAL_CONSOLES ?= "115200;ttyS0" + +ARMSTUB ?= "armstub.bin" diff --git a/meta-raspberrypi/conf/machine/raspberrypi2.conf b/meta-raspberrypi/conf/machine/raspberrypi2.conf index bd191c3fa2..505c6f2ff1 100644 --- a/meta-raspberrypi/conf/machine/raspberrypi2.conf +++ b/meta-raspberrypi/conf/machine/raspberrypi2.conf @@ -10,3 +10,5 @@ include conf/machine/include/rpi-base.inc SERIAL_CONSOLES ?= "115200;ttyAMA0" UBOOT_MACHINE = "rpi_2_config" + +ARMSTUB ?= "armstub7.bin" diff --git a/meta-raspberrypi/conf/machine/raspberrypi3-64.conf b/meta-raspberrypi/conf/machine/raspberrypi3-64.conf index 80b6bc4639..60fe8bd811 100644 --- a/meta-raspberrypi/conf/machine/raspberrypi3-64.conf +++ b/meta-raspberrypi/conf/machine/raspberrypi3-64.conf @@ -31,3 +31,5 @@ KERNEL_IMAGETYPE_UBOOT ?= "Image" # "zImage" not supported on arm64 and ".gz" images not supported by bootloader yet KERNEL_IMAGETYPE_DIRECT ?= "Image" KERNEL_BOOTCMD ?= "booti" + +ARMSTUB ?= "armstub8.bin" diff --git a/meta-raspberrypi/conf/machine/raspberrypi3.conf b/meta-raspberrypi/conf/machine/raspberrypi3.conf index df64cbb7b3..581e47c8f5 100644 --- a/meta-raspberrypi/conf/machine/raspberrypi3.conf +++ b/meta-raspberrypi/conf/machine/raspberrypi3.conf @@ -1,6 +1,6 @@ #@TYPE: Machine -#@NAME: RaspberryPi 3 Development Board -#@DESCRIPTION: Machine configuration for the RaspberryPi 3 +#@NAME: RaspberryPi 3 Development Board (32bit) +#@DESCRIPTION: Machine configuration for the RaspberryPi 3 in 32 bits mode DEFAULTTUNE ?= "cortexa7thf-neon-vfpv4" require conf/machine/include/tune-cortexa7.inc @@ -16,3 +16,5 @@ MACHINE_EXTRA_RRECOMMENDS += "\ SDIMG_KERNELIMAGE ?= "kernel7.img" UBOOT_MACHINE = "rpi_3_32b_config" SERIAL_CONSOLES ?= "115200;ttyS0" + +ARMSTUB ?= "armstub7.bin" diff --git a/meta-raspberrypi/conf/machine/raspberrypi4-64.conf b/meta-raspberrypi/conf/machine/raspberrypi4-64.conf new file mode 100644 index 0000000000..245517218c --- /dev/null +++ b/meta-raspberrypi/conf/machine/raspberrypi4-64.conf @@ -0,0 +1,36 @@ +#@TYPE: Machine +#@NAME: RaspberryPi 4 Development Board (64bit) +#@DESCRIPTION: Machine configuration for the RaspberryPi 4 in 64 bits mode + +MACHINEOVERRIDES = "raspberrypi4:${MACHINE}" + +MACHINE_EXTRA_RRECOMMENDS += "\ + linux-firmware-rpidistro-bcm43455 \ + bluez-firmware-rpidistro-bcm4345c0-hcd \ +" + +require conf/machine/include/tune-cortexa72.inc +include conf/machine/include/rpi-base.inc + +RPI_KERNEL_DEVICETREE = " \ + broadcom/bcm2711-rpi-4-b.dtb \ +" + +SDIMG_KERNELIMAGE ?= "kernel8.img" +SERIAL_CONSOLES ?= "115200;ttyS0" + +UBOOT_MACHINE = "rpi_4_config" +MACHINE_FEATURES_append = " vc4graphics" + +VC4DTBO ?= "vc4-fkms-v3d" + +# When u-boot is enabled we need to use the "Image" format and the "booti" +# command to load the kernel +KERNEL_IMAGETYPE_UBOOT ?= "Image" +# "zImage" not supported on arm64 and ".gz" images not supported by bootloader yet +KERNEL_IMAGETYPE_DIRECT ?= "Image" +KERNEL_BOOTCMD ?= "booti" + +RPI_EXTRA_CONFIG ?= "\n# Force arm in 64bit mode. See: https://github.com/raspberrypi/firmware/issues/1193.\narm_64bit=1\n\n# Limit RAM to 3G. See: https://github.com/raspberrypi/linux/issues/3093\ntotal_mem=3072" + +ARMSTUB ?= "armstub8-gic.bin" diff --git a/meta-raspberrypi/conf/machine/raspberrypi4.conf b/meta-raspberrypi/conf/machine/raspberrypi4.conf new file mode 100644 index 0000000000..42c765f8f5 --- /dev/null +++ b/meta-raspberrypi/conf/machine/raspberrypi4.conf @@ -0,0 +1,21 @@ +#@TYPE: Machine +#@NAME: RaspberryPi 4 Development Board (32bit) +#@DESCRIPTION: Machine configuration for the RaspberryPi 4 in 32 bit mode + +DEFAULTTUNE ?= "cortexa7thf-neon-vfpv4" +require conf/machine/include/tune-cortexa7.inc +include conf/machine/include/rpi-base.inc + +MACHINE_EXTRA_RRECOMMENDS += "\ + linux-firmware-rpidistro-bcm43455 \ + bluez-firmware-rpidistro-bcm4345c0-hcd \ +" + +# 'l' stands for LPAE +SDIMG_KERNELIMAGE ?= "kernel7l.img" +UBOOT_MACHINE = "rpi_4_32b_config" +SERIAL_CONSOLES ?= "115200;ttyS0" + +MACHINE_FEATURES_append = " vc4graphics" +VC4DTBO ?= "vc4-fkms-v3d" +ARMSTUB ?= "armstub7.bin" diff --git a/meta-raspberrypi/recipes-bsp/armstubs/armstubs.bb b/meta-raspberrypi/recipes-bsp/armstubs/armstubs.bb new file mode 100644 index 0000000000..66f2833346 --- /dev/null +++ b/meta-raspberrypi/recipes-bsp/armstubs/armstubs.bb @@ -0,0 +1,32 @@ +DESCRIPTION = "Boot strap code that the GPU puts on memory to start running the boot loader" +LICENSE = "Proprietary" + +LIC_FILES_CHKSUM = "file://armstub.S;beginline=1;endline=26;md5=9888f34ac06a676129416c952a6a521e" + +inherit deploy nopackages + +include recipes-bsp/common/raspberrypi-tools.inc + +COMPATIBLE_MACHINE = "^rpi$" + +S = "${RPITOOLS_S}/armstubs" + +export CC8="${CC}" +export LD8="${LD}" +export OBJCOPY8="${OBJCOPY}" +export OBJDUMP8="${OBJDUMP} -maarch64" + +do_compile() { + [ -z "${ARMSTUB}" ] && bbfatal "No ARMSTUB defined for your machine." + oe_runmake ${ARMSTUB} +} + +do_deploy() { + install -d ${DEPLOYDIR}/${PN} + cp ${S}/armstub*.bin ${DEPLOYDIR}/${PN} +} + +addtask deploy before do_build after do_install +do_deploy[dirs] += "${DEPLOYDIR}/${PN}" + +PACKAGE_ARCH = "${MACHINE_ARCH}" diff --git a/meta-raspberrypi/recipes-bsp/bootfiles/bcm2835-bootfiles.bb b/meta-raspberrypi/recipes-bsp/bootfiles/bcm2835-bootfiles.bb index 466f44381e..0d636f046b 100644 --- a/meta-raspberrypi/recipes-bsp/bootfiles/bcm2835-bootfiles.bb +++ b/meta-raspberrypi/recipes-bsp/bootfiles/bcm2835-bootfiles.bb @@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://LICENCE.broadcom;md5=4a4d169737c0786fb9482bb6d30401d1 inherit deploy nopackages -include recipes-bsp/common/firmware.inc +include recipes-bsp/common/raspberrypi-firmware.inc INHIBIT_DEFAULT_DEPS = "1" diff --git a/meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb b/meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb index b3356edff5..160bc16d0a 100644 --- a/meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb +++ b/meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb @@ -41,7 +41,7 @@ do_deploy() { if [ -n "${DISABLE_OVERSCAN}" ]; then sed -i '/#disable_overscan=/ c\disable_overscan=${DISABLE_OVERSCAN}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt fi - if [ -n "${DISABLE_SPLASH}" ]; then + if [ "${DISABLE_SPLASH}" = "1" ]; then sed -i '/#disable_splash=/ c\disable_splash=${DISABLE_SPLASH}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt fi @@ -111,25 +111,25 @@ do_deploy() { fi # Video camera support - if [ -n "${VIDEO_CAMERA}" ]; then + if [ "${VIDEO_CAMERA}" = "1" ]; then echo "# Enable video camera" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt echo "start_x=1" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt fi # Offline compositing support - if [ -n "${DISPMANX_OFFLINE}" ]; then + if [ "${DISPMANX_OFFLINE}" = "1" ]; then echo "# Enable offline compositing" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt echo "dispmanx_offline=1" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt fi # SPI bus support - if [ -n "${ENABLE_SPI_BUS}" ] || [ "${PITFT}" = "1" ]; then + if [ "${ENABLE_SPI_BUS}" = "1" ] || [ "${PITFT}" = "1" ]; then echo "# Enable SPI bus" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt echo "dtparam=spi=on" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt fi # I2C support - if [ -n "${ENABLE_I2C}" ] || [ "${PITFT}" = "1" ]; then + if [ "${ENABLE_I2C}" = "1" ] || [ "${PITFT}" = "1" ]; then echo "# Enable I2C" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt echo "dtparam=i2c1=on" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt echo "dtparam=i2c_arm=on" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt @@ -191,6 +191,17 @@ do_deploy() { # Append extra config if the user has provided any printf "${RPI_EXTRA_CONFIG}\n" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt + + # Handle setup with armstub file + if [ "${@bb.utils.contains("MACHINE_FEATURES", "armstub", "1", "0", d)}" = "1" ]; then + echo "\n# ARM stub configuration" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt + echo "armstub=${ARMSTUB}" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt + case "${ARMSTUB}" in + *-gic.bin) + echo "enable_gic=1" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt + ;; + esac + fi } do_deploy_append_raspberrypi3-64() { diff --git a/meta-raspberrypi/recipes-bsp/common/firmware.inc b/meta-raspberrypi/recipes-bsp/common/firmware.inc deleted file mode 100644 index d19525ffd8..0000000000 --- a/meta-raspberrypi/recipes-bsp/common/firmware.inc +++ /dev/null @@ -1,10 +0,0 @@ -RPIFW_DATE ?= "20190220" -SRCREV ?= "ebf7b40cdc6effe7ffa3fd5195e8be01b94f80da" -RPIFW_SRC_URI ?= "https://github.com/raspberrypi/firmware/archive/${SRCREV}.tar.gz" -RPIFW_S ?= "${WORKDIR}/firmware-${SRCREV}" - -SRC_URI = "${RPIFW_SRC_URI}" -SRC_URI[md5sum] = "611077d343e3802496dd99118ca4e977" -SRC_URI[sha256sum] = "e911f6342ea8aa9380cae97c6f5ac4ddd370527265f23d5b5d4b2c6f679d4ba8" - -PV = "${RPIFW_DATE}" diff --git a/meta-raspberrypi/recipes-bsp/common/raspberrypi-firmware.inc b/meta-raspberrypi/recipes-bsp/common/raspberrypi-firmware.inc new file mode 100644 index 0000000000..01299bec29 --- /dev/null +++ b/meta-raspberrypi/recipes-bsp/common/raspberrypi-firmware.inc @@ -0,0 +1,10 @@ +RPIFW_DATE ?= "20190709" +SRCREV ?= "356f5c2880a3c7e8774025aa6fc934a617553e7b" +RPIFW_SRC_URI ?= "https://github.com/raspberrypi/firmware/archive/${SRCREV}.tar.gz" +RPIFW_S ?= "${WORKDIR}/firmware-${SRCREV}" + +SRC_URI = "${RPIFW_SRC_URI}" +SRC_URI[md5sum] = "5962784e7963f0116cd1519e47749b25" +SRC_URI[sha256sum] = "6e07d98e4229ba7a1970a4c475fc6b8631823d200d3b8734a508e7ff5ea4c120" + +PV = "${RPIFW_DATE}" diff --git a/meta-raspberrypi/recipes-bsp/common/raspberrypi-tools.inc b/meta-raspberrypi/recipes-bsp/common/raspberrypi-tools.inc new file mode 100644 index 0000000000..1ea65dbd1b --- /dev/null +++ b/meta-raspberrypi/recipes-bsp/common/raspberrypi-tools.inc @@ -0,0 +1,9 @@ +SRCREV ?= "76f64a28dc4685507d12f57fe5cfc89f6c32f8e6" +RPITOOLS_SRC_URI ?= "https://github.com/raspberrypi/tools/archive/${SRCREV}.tar.gz" +RPITOOLS_S ?= "${WORKDIR}/tools-${SRCREV}" + +SRC_URI = "${RPITOOLS_SRC_URI}" +SRC_URI[md5sum] = "e2d4709b62e1536aeaaeabcbae82a03e" +SRC_URI[sha256sum] = "5f1c5eb8af9dff71b7cae30ffa6541d689d269a7b86013b365215adfb4c1c27d" + +PV = "0.0+git${SRCREV}" diff --git a/meta-raspberrypi/recipes-bsp/u-boot/u-boot-2019.01/0001-Fix-compilation-error-if-CONFIG_USB-is-disabled.patch b/meta-raspberrypi/recipes-bsp/u-boot/u-boot-2019.01/0001-Fix-compilation-error-if-CONFIG_USB-is-disabled.patch new file mode 100644 index 0000000000..c402e04ab1 --- /dev/null +++ b/meta-raspberrypi/recipes-bsp/u-boot/u-boot-2019.01/0001-Fix-compilation-error-if-CONFIG_USB-is-disabled.patch @@ -0,0 +1,73 @@ +From e4617bdb29e9c88e85f056f3aea46a2c8a5312e2 Mon Sep 17 00:00:00 2001 +From: akaher <akaher@vmware.com> +Date: Thu, 11 Apr 2019 05:23:50 +0000 +Subject: [PATCH] Fix compilation error if CONFIG_USB is disabled +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This patch is to fix the following compilation error when +disabling CONFIG_USB for Rpi3: + +include/config_distro_bootcmd.h:242:2: error: expected ‘}’ +before ‘BOOT_TARGET_DEVICES_references_USB_without_CONFIG_CMD_USB’ + BOOT_TARGET_DEVICES_references_USB_without_CONFIG_CMD_USB + +Signed-off-by: Ajay Kaher <akaher@vmware.com> +Signed-off-by: Matthias Brugger <mbrugger@suse.com> +Upstream-status: Backport +--- + include/configs/rpi.h | 36 +++++++++++++++++++++++++++++++----- + 1 file changed, 31 insertions(+), 5 deletions(-) + +diff --git a/include/configs/rpi.h b/include/configs/rpi.h +index 9ce41767a9..f76c7d18ef 100644 +--- a/include/configs/rpi.h ++++ b/include/configs/rpi.h +@@ -146,12 +146,38 @@ + "fdt_addr_r=0x02600000\0" \ + "ramdisk_addr_r=0x02700000\0" + ++#if CONFIG_IS_ENABLED(CMD_MMC) ++ #define BOOT_TARGET_MMC(func) \ ++ func(MMC, mmc, 0) \ ++ func(MMC, mmc, 1) ++#else ++ #define BOOT_TARGET_MMC(func) ++#endif ++ ++#if CONFIG_IS_ENABLED(CMD_USB) ++ #define BOOT_TARGET_USB(func) func(USB, usb, 0) ++#else ++ #define BOOT_TARGET_USB(func) ++#endif ++ ++#if CONFIG_IS_ENABLED(CMD_PXE) ++ #define BOOT_TARGET_PXE(func) func(PXE, pxe, na) ++#else ++ #define BOOT_TARGET_PXE(func) ++#endif ++ ++#if CONFIG_IS_ENABLED(CMD_DHCP) ++ #define BOOT_TARGET_DHCP(func) func(DHCP, dhcp, na) ++#else ++ #define BOOT_TARGET_DHCP(func) ++#endif ++ + #define BOOT_TARGET_DEVICES(func) \ +- func(MMC, mmc, 0) \ +- func(MMC, mmc, 1) \ +- func(USB, usb, 0) \ +- func(PXE, pxe, na) \ +- func(DHCP, dhcp, na) ++ BOOT_TARGET_MMC(func) \ ++ BOOT_TARGET_USB(func) \ ++ BOOT_TARGET_PXE(func) \ ++ BOOT_TARGET_DHCP(func) ++ + #include <config_distro_bootcmd.h> + + #define CONFIG_EXTRA_ENV_SETTINGS \ +-- +2.22.0 + diff --git a/meta-raspberrypi/recipes-bsp/u-boot/u-boot-2019.01/0001-configs-rpi4-Add-defconfigs-for-rpi4-32-64.patch b/meta-raspberrypi/recipes-bsp/u-boot/u-boot-2019.01/0001-configs-rpi4-Add-defconfigs-for-rpi4-32-64.patch new file mode 100644 index 0000000000..23129eac68 --- /dev/null +++ b/meta-raspberrypi/recipes-bsp/u-boot/u-boot-2019.01/0001-configs-rpi4-Add-defconfigs-for-rpi4-32-64.patch @@ -0,0 +1,104 @@ +From e8eb46a49317750bc6033b505cb5c07b4e06c9ee Mon Sep 17 00:00:00 2001 +From: Andrei Gherzan <andrei@balena.io> +Date: Wed, 17 Jul 2019 15:32:11 +0100 +Subject: [PATCH 1/7] configs: rpi4: Add defconfigs for rpi4 (32/64) + +This defines a minimum defconfig for each of the two Raspberry Pi 4 +variants. One notable difference is that we don't have a embedded dt for +this board given that the fw supplies us with one which we can reuse. +Furthermore, the ram size is not queryable through mbox interface as the +maximum reported size is 1G. The fw patches the dt with the right +memory configuration and uboot uses it as it is. We avoid u-boot +touching this configuration by making sure CONFIG_ARCH_FIXUP_FDT_MEMORY +is deactivated. + +Signed-off-by: Andrei Gherzan <andrei@balena.io> +Upstream-status: Pending +--- + configs/rpi_4_32b_defconfig | 33 +++++++++++++++++++++++++++++++++ + configs/rpi_4_defconfig | 33 +++++++++++++++++++++++++++++++++ + 2 files changed, 66 insertions(+) + create mode 100644 configs/rpi_4_32b_defconfig + create mode 100644 configs/rpi_4_defconfig + +diff --git a/configs/rpi_4_32b_defconfig b/configs/rpi_4_32b_defconfig +new file mode 100644 +index 0000000000..a31a617a5f +--- /dev/null ++++ b/configs/rpi_4_32b_defconfig +@@ -0,0 +1,33 @@ ++CONFIG_ARM=y ++CONFIG_ARCH_BCM283X=y ++CONFIG_SYS_TEXT_BASE=0x00008000 ++CONFIG_TARGET_RPI_4_32B=y ++CONFIG_SYS_MALLOC_F_LEN=0x2000 ++CONFIG_DISTRO_DEFAULTS=y ++CONFIG_NR_DRAM_BANKS=1 ++# CONFIG_ARCH_FIXUP_FDT_MEMORY is not set ++CONFIG_OF_BOARD=y ++CONFIG_OF_BOARD_SETUP=y ++CONFIG_MISC_INIT_R=y ++# CONFIG_DISPLAY_CPUINFO is not set ++# CONFIG_DISPLAY_BOARDINFO is not set ++CONFIG_SYS_PROMPT="U-Boot> " ++# CONFIG_CMD_FLASH is not set ++CONFIG_CMD_GPIO=y ++CONFIG_CMD_MMC=y ++CONFIG_CMD_FS_UUID=y ++CONFIG_ENV_FAT_INTERFACE="mmc" ++CONFIG_ENV_FAT_DEVICE_AND_PART="0:1" ++CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y ++CONFIG_DM_KEYBOARD=y ++CONFIG_DM_MMC=y ++CONFIG_MMC_SDHCI=y ++CONFIG_MMC_SDHCI_BCM2835=y ++CONFIG_PINCTRL=y ++# CONFIG_PINCTRL_GENERIC is not set ++# CONFIG_REQUIRE_SERIAL_CONSOLE is not set ++CONFIG_DM_VIDEO=y ++CONFIG_SYS_WHITE_ON_BLACK=y ++CONFIG_CONSOLE_SCROLL_LINES=10 ++CONFIG_PHYS_TO_BUS=y ++CONFIG_OF_LIBFDT_OVERLAY=y +diff --git a/configs/rpi_4_defconfig b/configs/rpi_4_defconfig +new file mode 100644 +index 0000000000..da8c960a2a +--- /dev/null ++++ b/configs/rpi_4_defconfig +@@ -0,0 +1,33 @@ ++CONFIG_ARM=y ++CONFIG_ARCH_BCM283X=y ++CONFIG_SYS_TEXT_BASE=0x00080000 ++CONFIG_TARGET_RPI_4=y ++CONFIG_SYS_MALLOC_F_LEN=0x2000 ++CONFIG_DISTRO_DEFAULTS=y ++CONFIG_NR_DRAM_BANKS=1 ++# CONFIG_ARCH_FIXUP_FDT_MEMORY is not set ++CONFIG_OF_BOARD=y ++CONFIG_OF_BOARD_SETUP=y ++CONFIG_MISC_INIT_R=y ++# CONFIG_DISPLAY_CPUINFO is not set ++# CONFIG_DISPLAY_BOARDINFO is not set ++CONFIG_SYS_PROMPT="U-Boot> " ++# CONFIG_CMD_FLASH is not set ++CONFIG_CMD_GPIO=y ++CONFIG_CMD_MMC=y ++CONFIG_CMD_FS_UUID=y ++CONFIG_ENV_FAT_INTERFACE="mmc" ++CONFIG_ENV_FAT_DEVICE_AND_PART="0:1" ++CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y ++CONFIG_DM_KEYBOARD=y ++CONFIG_DM_MMC=y ++CONFIG_MMC_SDHCI=y ++CONFIG_MMC_SDHCI_BCM2835=y ++CONFIG_PINCTRL=y ++# CONFIG_PINCTRL_GENERIC is not set ++# CONFIG_REQUIRE_SERIAL_CONSOLE is not set ++CONFIG_DM_VIDEO=y ++CONFIG_SYS_WHITE_ON_BLACK=y ++CONFIG_CONSOLE_SCROLL_LINES=10 ++CONFIG_PHYS_TO_BUS=y ++CONFIG_OF_LIBFDT_OVERLAY=y +-- +2.22.0 + diff --git a/meta-raspberrypi/recipes-bsp/u-boot/u-boot-2019.01/0002-ARM-bcm283x-Add-BCM283x_BASE-define.patch b/meta-raspberrypi/recipes-bsp/u-boot/u-boot-2019.01/0002-ARM-bcm283x-Add-BCM283x_BASE-define.patch new file mode 100644 index 0000000000..53da0fff7e --- /dev/null +++ b/meta-raspberrypi/recipes-bsp/u-boot/u-boot-2019.01/0002-ARM-bcm283x-Add-BCM283x_BASE-define.patch @@ -0,0 +1,105 @@ +From 960fd526d0ce4d54fe40cfbdbc215a54c18c7100 Mon Sep 17 00:00:00 2001 +From: Matthias Brugger <mbrugger@suse.com> +Date: Fri, 12 Jul 2019 18:20:53 +0200 +Subject: [PATCH 2/7] ARM: bcm283x: Add BCM283x_BASE define + +Devices of bcm283x have different base address, depending if they are on +bcm2835 or bcm2836/7. Use BCM283x_BASE depending on the SoC you want to +build and only add the offset in the header files. + +Signed-off-by: Matthias Brugger <mbrugger@suse.com> +Signed-off-by: Andrei Gherzan <andrei@balena.io> +Upstream-status: Pending +--- + arch/arm/mach-bcm283x/Kconfig | 5 +++++ + arch/arm/mach-bcm283x/include/mach/mbox.h | 6 +----- + arch/arm/mach-bcm283x/include/mach/sdhci.h | 6 +----- + arch/arm/mach-bcm283x/include/mach/timer.h | 6 +----- + arch/arm/mach-bcm283x/include/mach/wdog.h | 6 +----- + 5 files changed, 9 insertions(+), 20 deletions(-) + +diff --git a/arch/arm/mach-bcm283x/Kconfig b/arch/arm/mach-bcm283x/Kconfig +index 821caedbf7..d702f17f4b 100644 +--- a/arch/arm/mach-bcm283x/Kconfig ++++ b/arch/arm/mach-bcm283x/Kconfig +@@ -141,4 +141,9 @@ config SYS_SOC + config SYS_CONFIG_NAME + default "rpi" + ++config BCM283x_BASE ++ hex ++ default "0x20000000" if BCM2835 ++ default "0x3f000000" if BCM2836 || BCM2837 ++ + endmenu +diff --git a/arch/arm/mach-bcm283x/include/mach/mbox.h b/arch/arm/mach-bcm283x/include/mach/mbox.h +index 2776a396c7..81cd5780e4 100644 +--- a/arch/arm/mach-bcm283x/include/mach/mbox.h ++++ b/arch/arm/mach-bcm283x/include/mach/mbox.h +@@ -37,11 +37,7 @@ + + /* Raw mailbox HW */ + +-#ifndef CONFIG_BCM2835 +-#define BCM2835_MBOX_PHYSADDR 0x3f00b880 +-#else +-#define BCM2835_MBOX_PHYSADDR 0x2000b880 +-#endif ++#define BCM2835_MBOX_PHYSADDR (CONFIG_BCM283x_BASE + 0x0000b880) + + struct bcm2835_mbox_regs { + u32 read; +diff --git a/arch/arm/mach-bcm283x/include/mach/sdhci.h b/arch/arm/mach-bcm283x/include/mach/sdhci.h +index 5cb6ec3340..b443c379d8 100644 +--- a/arch/arm/mach-bcm283x/include/mach/sdhci.h ++++ b/arch/arm/mach-bcm283x/include/mach/sdhci.h +@@ -6,11 +6,7 @@ + #ifndef _BCM2835_SDHCI_H_ + #define _BCM2835_SDHCI_H_ + +-#ifndef CONFIG_BCM2835 +-#define BCM2835_SDHCI_BASE 0x3f300000 +-#else +-#define BCM2835_SDHCI_BASE 0x20300000 +-#endif ++#define BCM2835_SDHCI_BASE (CONFIG_BCM283x_BASE + 0x00300000) + + int bcm2835_sdhci_init(u32 regbase, u32 emmc_freq); + +diff --git a/arch/arm/mach-bcm283x/include/mach/timer.h b/arch/arm/mach-bcm283x/include/mach/timer.h +index 56b0c356bb..014355e759 100644 +--- a/arch/arm/mach-bcm283x/include/mach/timer.h ++++ b/arch/arm/mach-bcm283x/include/mach/timer.h +@@ -6,11 +6,7 @@ + #ifndef _BCM2835_TIMER_H + #define _BCM2835_TIMER_H + +-#ifndef CONFIG_BCM2835 +-#define BCM2835_TIMER_PHYSADDR 0x3f003000 +-#else +-#define BCM2835_TIMER_PHYSADDR 0x20003000 +-#endif ++#define BCM2835_TIMER_PHYSADDR (CONFIG_BCM283x_BASE + 0x00003000) + + #define BCM2835_TIMER_CS_M3 (1 << 3) + #define BCM2835_TIMER_CS_M2 (1 << 2) +diff --git a/arch/arm/mach-bcm283x/include/mach/wdog.h b/arch/arm/mach-bcm283x/include/mach/wdog.h +index 99c88e5df7..00b5e06c3a 100644 +--- a/arch/arm/mach-bcm283x/include/mach/wdog.h ++++ b/arch/arm/mach-bcm283x/include/mach/wdog.h +@@ -6,11 +6,7 @@ + #ifndef _BCM2835_WDOG_H + #define _BCM2835_WDOG_H + +-#ifndef CONFIG_BCM2835 +-#define BCM2835_WDOG_PHYSADDR 0x3f100000 +-#else +-#define BCM2835_WDOG_PHYSADDR 0x20100000 +-#endif ++#define BCM2835_WDOG_PHYSADDR (CONFIG_BCM283x_BASE + 0x00100000) + + struct bcm2835_wdog_regs { + u32 unknown0[7]; +-- +2.22.0 + diff --git a/meta-raspberrypi/recipes-bsp/u-boot/u-boot-2019.01/0003-arm-mach-bcm283x-Define-configs-for-RaspberryPi-4.patch b/meta-raspberrypi/recipes-bsp/u-boot/u-boot-2019.01/0003-arm-mach-bcm283x-Define-configs-for-RaspberryPi-4.patch new file mode 100644 index 0000000000..28c151a4c4 --- /dev/null +++ b/meta-raspberrypi/recipes-bsp/u-boot/u-boot-2019.01/0003-arm-mach-bcm283x-Define-configs-for-RaspberryPi-4.patch @@ -0,0 +1,108 @@ +From 83f8a3a98ea268873e45a1b3868b2f5bdcc3b5f1 Mon Sep 17 00:00:00 2001 +From: Andrei Gherzan <andrei@balena.io> +Date: Wed, 17 Jul 2019 15:33:01 +0100 +Subject: [PATCH 3/7] arm: mach-bcm283x: Define configs for RaspberryPi 4 + +Define two target configs for Raspberry Pi 4 (32 and 64bit) and the +corresponding BCM2838* configs. + +Be aware of the current limitation in firmware which requires an +explicit configuration to force the arm in 64bit mode when the +respective target is used. + +Signed-off-by: Andrei Gherzan <andrei@balena.io> +Signed-off-by: Matthias Brugger <mbrugger@suse.com> +Upstream-status: Pending +--- + arch/arm/mach-bcm283x/Kconfig | 62 +++++++++++++++++++++++++++++++++++ + 1 file changed, 62 insertions(+) + +diff --git a/arch/arm/mach-bcm283x/Kconfig b/arch/arm/mach-bcm283x/Kconfig +index d702f17f4b..a3311500fa 100644 +--- a/arch/arm/mach-bcm283x/Kconfig ++++ b/arch/arm/mach-bcm283x/Kconfig +@@ -26,6 +26,23 @@ config BCM2837_64B + select BCM2837 + select ARM64 + ++config BCM2838 ++ bool "Broadcom BCM2838 SoC support" ++ depends on ARCH_BCM283X ++ ++config BCM2838_32B ++ bool "Broadcom BCM2838 SoC 32-bit support" ++ depends on ARCH_BCM283X ++ select BCM2838 ++ select ARMV7_LPAE ++ select CPU_V7A ++ ++config BCM2838_64B ++ bool "Broadcom BCM2838 SoC 64-bit support" ++ depends on ARCH_BCM283X ++ select BCM2838 ++ select ARM64 ++ + menu "Broadcom BCM283X family" + depends on ARCH_BCM283X + +@@ -127,6 +144,50 @@ config TARGET_RPI_3 + This option creates a build targetting the ARMv8/AArch64 ISA. + select BCM2837_64B + ++config TARGET_RPI_4_32B ++ bool "Raspberry Pi 4 32-bit build" ++ help ++ Support for all BCM2838-based Raspberry Pi variants, such as ++ the RPi 4 model B, in AArch32 (32-bit) mode. ++ ++ This option assumes the VideoCore firmware is configured to use the ++ mini UART (rather than PL011) for the serial console. This is the ++ default on the RPi 4. To enable the UART console, the following non- ++ default option must be present in config.txt: enable_uart=1. This is ++ required for U-Boot to operate correctly, even if you only care ++ about the HDMI/usbkbd console. ++ ++ Due to hardware incompatibilities, this can't be used with ++ BCM283/5/6/7. ++ ++ This option creates a build targeting the ARMv7/AArch32 ISA. ++ select BCM2838_32B ++ ++config TARGET_RPI_4 ++ bool "Raspberry Pi 4 64-bit build" ++ help ++ Support for all BCM2838-based Raspberry Pi variants, such as ++ the RPi 4 model B, in AArch64 (64-bit) mode. ++ ++ This option assumes the VideoCore firmware is configured to use the ++ mini UART (rather than PL011) for the serial console. This is the ++ default on the RPi 4. To enable the UART console, the following non- ++ default option must be present in config.txt: enable_uart=1. This is ++ required for U-Boot to operate correctly, even if you only care ++ about the HDMI/usbkbd console. ++ ++ Due to hardware incompatibilities, this can't be used with ++ BCM283/5/6/7. ++ ++ Also, due to a bug in firmware, switching to 64bit mode doesn't ++ happen automatically based on the kernel's image filename. See ++ https://github.com/raspberrypi/firmware/issues/1193 for more details. ++ Until that is resolved, the configuration (config.txt) needs to ++ explicitly set: arm_64bit=1. ++ ++ This option creates a build targeting the ARMv8/AArch64 ISA. ++ select BCM2838_64B ++ + endchoice + + config SYS_BOARD +@@ -145,5 +206,6 @@ config BCM283x_BASE + hex + default "0x20000000" if BCM2835 + default "0x3f000000" if BCM2836 || BCM2837 ++ default "0xfe000000" if BCM2838 + + endmenu +-- +2.22.0 + diff --git a/meta-raspberrypi/recipes-bsp/u-boot/u-boot-2019.01/0004-rpi-Add-entry-for-Raspberry-Pi-4-model-B.patch b/meta-raspberrypi/recipes-bsp/u-boot/u-boot-2019.01/0004-rpi-Add-entry-for-Raspberry-Pi-4-model-B.patch new file mode 100644 index 0000000000..36e97fd75e --- /dev/null +++ b/meta-raspberrypi/recipes-bsp/u-boot/u-boot-2019.01/0004-rpi-Add-entry-for-Raspberry-Pi-4-model-B.patch @@ -0,0 +1,33 @@ +From c1f29f486b08ab6d90fe2c191157274f6dea0443 Mon Sep 17 00:00:00 2001 +From: Andrei Gherzan <andrei@balena.io> +Date: Wed, 17 Jul 2019 15:34:18 +0100 +Subject: [PATCH 4/7] rpi: Add entry for Raspberry Pi 4 model B + +The Raspebrry Pi 4 uses the new revision code scheme as documented by +the foundation. This change adds an entry for this board as well. + +Signed-off-by: Andrei Gherzan <andrei@balena.io> +Upstream-status: Pending +--- + board/raspberrypi/rpi/rpi.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/board/raspberrypi/rpi/rpi.c b/board/raspberrypi/rpi/rpi.c +index 153a1fdcb7..5510ea25c1 100644 +--- a/board/raspberrypi/rpi/rpi.c ++++ b/board/raspberrypi/rpi/rpi.c +@@ -143,6 +143,11 @@ static const struct rpi_model rpi_models_new_scheme[] = { + DTB_DIR "bcm2837-rpi-3-a-plus.dtb", + false, + }, ++ [0x11] = { ++ "4 Model B", ++ DTB_DIR "bcm2838-rpi-4-b.dtb", ++ true, ++ }, + }; + + static const struct rpi_model rpi_models_old_scheme[] = { +-- +2.22.0 + diff --git a/meta-raspberrypi/recipes-bsp/u-boot/u-boot-2019.01/0005-arm-bcm283x-Include-definition-for-additional-emmc-c.patch b/meta-raspberrypi/recipes-bsp/u-boot/u-boot-2019.01/0005-arm-bcm283x-Include-definition-for-additional-emmc-c.patch new file mode 100644 index 0000000000..8db9a8a425 --- /dev/null +++ b/meta-raspberrypi/recipes-bsp/u-boot/u-boot-2019.01/0005-arm-bcm283x-Include-definition-for-additional-emmc-c.patch @@ -0,0 +1,30 @@ +From 8251fd2c39a40886e521ecfc115ef975b5956fd5 Mon Sep 17 00:00:00 2001 +From: Andrei Gherzan <andrei@balena.io> +Date: Fri, 12 Jul 2019 11:26:10 +0100 +Subject: [PATCH 5/7] arm: bcm283x: Include definition for additional emmc + clock + +This clock has a different mbox ID so have this included in the relevant +header file. + +Signed-off-by: Andrei Gherzan <andrei@balena.io> +Upstream-status: Pending +--- + arch/arm/mach-bcm283x/include/mach/mbox.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/arch/arm/mach-bcm283x/include/mach/mbox.h b/arch/arm/mach-bcm283x/include/mach/mbox.h +index 81cd5780e4..36d2621408 100644 +--- a/arch/arm/mach-bcm283x/include/mach/mbox.h ++++ b/arch/arm/mach-bcm283x/include/mach/mbox.h +@@ -230,6 +230,7 @@ struct bcm2835_mbox_tag_set_power_state { + #define BCM2835_MBOX_CLOCK_ID_SDRAM 8 + #define BCM2835_MBOX_CLOCK_ID_PIXEL 9 + #define BCM2835_MBOX_CLOCK_ID_PWM 10 ++#define BCM2835_MBOX_CLOCK_ID_EMMC2 12 + + struct bcm2835_mbox_tag_get_clock_rate { + struct bcm2835_mbox_tag_hdr tag_hdr; +-- +2.22.0 + diff --git a/meta-raspberrypi/recipes-bsp/u-boot/u-boot-2019.01/0006-mmc-bcm2835_sdhci-Add-support-for-bcm2711-device.patch b/meta-raspberrypi/recipes-bsp/u-boot/u-boot-2019.01/0006-mmc-bcm2835_sdhci-Add-support-for-bcm2711-device.patch new file mode 100644 index 0000000000..9649a05475 --- /dev/null +++ b/meta-raspberrypi/recipes-bsp/u-boot/u-boot-2019.01/0006-mmc-bcm2835_sdhci-Add-support-for-bcm2711-device.patch @@ -0,0 +1,53 @@ +From e789ab00b2e03b810571de6226c5e1e009d9036b Mon Sep 17 00:00:00 2001 +From: Matthias Brugger <mbrugger@suse.com> +Date: Wed, 10 Jul 2019 13:24:36 +0200 +Subject: [PATCH 6/7] mmc: bcm2835_sdhci: Add support for bcm2711 device + +The bcm2711 has two emmc controller. The difference is the clocks +they use. Add support for the second emmc contoller. + +Signed-off-by: Matthias Brugger <mbrugger@suse.com> +Signed-off-by: Andrei Gherzan <andrei@balena.io> +Upstream-status: Pending +--- + drivers/mmc/bcm2835_sdhci.c | 12 ++++++++++-- + 1 file changed, 10 insertions(+), 2 deletions(-) + +diff --git a/drivers/mmc/bcm2835_sdhci.c b/drivers/mmc/bcm2835_sdhci.c +index 08bddd410e..e68dec3be7 100644 +--- a/drivers/mmc/bcm2835_sdhci.c ++++ b/drivers/mmc/bcm2835_sdhci.c +@@ -178,12 +178,13 @@ static int bcm2835_sdhci_probe(struct udevice *dev) + fdt_addr_t base; + int emmc_freq; + int ret; ++ int clock_id = (int)dev_get_driver_data(dev); + + base = devfdt_get_addr(dev); + if (base == FDT_ADDR_T_NONE) + return -EINVAL; + +- ret = bcm2835_get_mmc_clock(BCM2835_MBOX_CLOCK_ID_EMMC); ++ ret = bcm2835_get_mmc_clock(clock_id); + if (ret < 0) { + debug("%s: Failed to set MMC clock (err=%d)\n", __func__, ret); + return ret; +@@ -228,7 +229,14 @@ static int bcm2835_sdhci_probe(struct udevice *dev) + } + + static const struct udevice_id bcm2835_sdhci_match[] = { +- { .compatible = "brcm,bcm2835-sdhci" }, ++ { ++ .compatible = "brcm,bcm2835-sdhci", ++ .data = BCM2835_MBOX_CLOCK_ID_EMMC ++ }, ++ { ++ .compatible = "brcm,bcm2711-emmc2", ++ .data = BCM2835_MBOX_CLOCK_ID_EMMC2 ++ }, + { /* sentinel */ } + }; + +-- +2.22.0 + diff --git a/meta-raspberrypi/recipes-bsp/u-boot/u-boot-2019.01/0007-rpi-Add-memory-map-for-bcm2838.patch b/meta-raspberrypi/recipes-bsp/u-boot/u-boot-2019.01/0007-rpi-Add-memory-map-for-bcm2838.patch new file mode 100644 index 0000000000..8ddf66f830 --- /dev/null +++ b/meta-raspberrypi/recipes-bsp/u-boot/u-boot-2019.01/0007-rpi-Add-memory-map-for-bcm2838.patch @@ -0,0 +1,62 @@ +From cfb82f8e75438979565617d323eb2c2849e486ce Mon Sep 17 00:00:00 2001 +From: Andrei Gherzan <andrei@balena.io> +Date: Fri, 12 Jul 2019 14:27:31 +0100 +Subject: [PATCH 7/7] rpi: Add memory map for bcm2838 + +Define the memory map for the BCM2838 based on the dt configuration +available in the Raspberry Pi kernel fork. + +Signed-off-by: Andrei Gherzan <andrei@balena.io> +Upstream-status: Pending +--- + board/raspberrypi/rpi/rpi.c | 27 ++++++++++++++++++++++++--- + 1 file changed, 24 insertions(+), 3 deletions(-) + +diff --git a/board/raspberrypi/rpi/rpi.c b/board/raspberrypi/rpi/rpi.c +index 5510ea25c1..9dac64b920 100644 +--- a/board/raspberrypi/rpi/rpi.c ++++ b/board/raspberrypi/rpi/rpi.c +@@ -244,7 +244,8 @@ static uint32_t rev_type; + static const struct rpi_model *model; + + #ifdef CONFIG_ARM64 +-static struct mm_region bcm2837_mem_map[] = { ++#ifndef CONFIG_BCM2838 ++static struct mm_region bcm283x_mem_map[] = { + { + .virt = 0x00000000UL, + .phys = 0x00000000UL, +@@ -263,8 +264,28 @@ static struct mm_region bcm2837_mem_map[] = { + 0, + } + }; +- +-struct mm_region *mem_map = bcm2837_mem_map; ++#else ++static struct mm_region bcm283x_mem_map[] = { ++ { ++ .virt = 0x00000000UL, ++ .phys = 0x00000000UL, ++ .size = 0xfe000000UL, ++ .attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) | ++ PTE_BLOCK_INNER_SHARE ++ }, { ++ .virt = 0xfe000000UL, ++ .phys = 0xfe000000UL, ++ .size = 0x01800000UL, ++ .attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) | ++ PTE_BLOCK_NON_SHARE | ++ PTE_BLOCK_PXN | PTE_BLOCK_UXN ++ }, { ++ /* List terminator */ ++ 0, ++ } ++}; ++#endif ++struct mm_region *mem_map = bcm283x_mem_map; + #endif + + int dram_init(void) +-- +2.22.0 + diff --git a/meta-raspberrypi/recipes-bsp/u-boot/u-boot_2019.01.bbappend b/meta-raspberrypi/recipes-bsp/u-boot/u-boot_2019.01.bbappend new file mode 100644 index 0000000000..b11dfc236e --- /dev/null +++ b/meta-raspberrypi/recipes-bsp/u-boot/u-boot_2019.01.bbappend @@ -0,0 +1,13 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}-${PV}:" +UBOOT_RPI4_SUPPORT_PATCHES = " \ + file://0001-Fix-compilation-error-if-CONFIG_USB-is-disabled.patch \ + file://0001-configs-rpi4-Add-defconfigs-for-rpi4-32-64.patch \ + file://0002-ARM-bcm283x-Add-BCM283x_BASE-define.patch \ + file://0003-arm-mach-bcm283x-Define-configs-for-RaspberryPi-4.patch \ + file://0004-rpi-Add-entry-for-Raspberry-Pi-4-model-B.patch \ + file://0005-arm-bcm283x-Include-definition-for-additional-emmc-c.patch \ + file://0006-mmc-bcm2835_sdhci-Add-support-for-bcm2711-device.patch \ + file://0007-rpi-Add-memory-map-for-bcm2838.patch \ +" + +SRC_URI_append_raspberrypi4 = "${UBOOT_RPI4_SUPPORT_PATCHES}" diff --git a/meta-raspberrypi/recipes-connectivity/bluez5/bluez5_%.bbappend b/meta-raspberrypi/recipes-connectivity/bluez5/bluez5_%.bbappend index 09fbaaa0d3..d1a07a4612 100644 --- a/meta-raspberrypi/recipes-connectivity/bluez5/bluez5_%.bbappend +++ b/meta-raspberrypi/recipes-connectivity/bluez5/bluez5_%.bbappend @@ -1,6 +1,6 @@ FILESEXTRAPATHS_prepend_rpi := "${THISDIR}/${PN}:" -RC_URI_append_rpi = "\ +SRC_URI_append_rpi = "\ file://0001-bcm43xx-Add-bcm43xx-3wire-variant.patch \ file://0002-bcm43xx-The-UART-speed-must-be-reset-after-the-firmw.patch \ file://0003-Increase-firmware-load-timeout-to-30s.patch \ diff --git a/meta-raspberrypi/recipes-graphics/userland/files/0001-Allow-applications-to-set-next-resource-handle.patch b/meta-raspberrypi/recipes-graphics/userland/files/0001-Allow-applications-to-set-next-resource-handle.patch index cea215dad4..b2bd46f6f7 100644 --- a/meta-raspberrypi/recipes-graphics/userland/files/0001-Allow-applications-to-set-next-resource-handle.patch +++ b/meta-raspberrypi/recipes-graphics/userland/files/0001-Allow-applications-to-set-next-resource-handle.patch @@ -1,4 +1,4 @@ -From 829dff626d423ad34c8e710cd10d5fc9a4ea80b3 Mon Sep 17 00:00:00 2001 +From e94675aa943c114ff801167c69bdd2d366d01665 Mon Sep 17 00:00:00 2001 From: Dom Cobley <dc4@broadcom.com> Date: Tue, 9 Jul 2013 09:26:26 -0400 Subject: [PATCH 01/18] Allow applications to set next resource handle @@ -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.20.1 +2.21.0 diff --git a/meta-raspberrypi/recipes-graphics/userland/files/0002-wayland-Add-support-for-the-Wayland-winsys.patch b/meta-raspberrypi/recipes-graphics/userland/files/0002-wayland-Add-support-for-the-Wayland-winsys.patch index 5501000e35..5efc7a4d36 100644 --- a/meta-raspberrypi/recipes-graphics/userland/files/0002-wayland-Add-support-for-the-Wayland-winsys.patch +++ b/meta-raspberrypi/recipes-graphics/userland/files/0002-wayland-Add-support-for-the-Wayland-winsys.patch @@ -1,4 +1,4 @@ -From 469840d211beb22085e57934bda3caabb71a4695 Mon Sep 17 00:00:00 2001 +From ad6f485d9eb809b67398ce0948844dd30ea1c8e3 Mon Sep 17 00:00:00 2001 From: Tomeu Vizoso <tomeu.vizoso@collabora.com> Date: Tue, 1 Oct 2013 13:19:20 +0200 Subject: [PATCH 02/18] wayland: Add support for the Wayland winsys @@ -91,11 +91,11 @@ index cfc8ae5..673a5ad 100644 # Global include paths diff --git a/README.md b/README.md -index de5754d..2097036 100644 +index 404e4d4..97a6b8f 100644 --- a/README.md +++ b/README.md -@@ -6,3 +6,7 @@ Use buildme to build. It requires cmake to be installed and an arm cross compile - https://github.com/raspberrypi/tools/tree/master/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian +@@ -8,3 +8,7 @@ https://github.com/raspberrypi/tools/tree/master/arm-bcm2708/gcc-linaro-arm-linu + Whilst 64-bit userspace is not officially supported, some of the libraries will work for it. To cross compile, install gcc-aarch64-linux-gnu and g++-aarch64-linux-gnu first. For both native and cross compiles, add the option ```--aarch64``` to the buildme command. Note that this repository does not contain the source for the edidparser and vcdbg binaries due to licensing restrictions. + @@ -103,10 +103,10 @@ index de5754d..2097036 100644 + +$ BUILD_WAYLAND=1 ./buildme. diff --git a/buildme b/buildme -index b8fd440..a780bb6 100755 +index cee90a6..d1d76a7 100755 --- a/buildme +++ b/buildme -@@ -8,6 +8,10 @@ fi +@@ -17,6 +17,10 @@ fi BUILDSUBDIR=`echo $BUILDTYPE | tr '[A-Z]' '[a-z]'`; @@ -114,10 +114,10 @@ index b8fd440..a780bb6 100755 + WAYLAND_VARS="-DBUILD_WAYLAND=TRUE" +fi + - if [ "armv6l" = `arch` ] || [ "armv7l" = `arch` ]; then + if [ $ARCH = "armv6l" ] || [ $ARCH = "armv7l" ] || [ $ARCH = "aarch64" ]; then # Native compile on the Raspberry Pi mkdir -p build/raspberry/$BUILDSUBDIR -@@ -32,9 +36,13 @@ elif [ "$1" = "--native" ]; then +@@ -41,9 +45,13 @@ elif [ "$1" = "--native" ]; then make -j `nproc` $* else # Cross compile on a more capable machine @@ -127,8 +127,8 @@ index b8fd440..a780bb6 100755 + fi 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 ../../.. +- cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_TOOLCHAIN_FILE -DCMAKE_BUILD_TYPE=$BUILDTYPE -DARM64=$ARM64 ../../.. ++ cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_TOOLCHAIN_FILE -DCMAKE_BUILD_TYPE=$BUILDTYPE -DARM64=$ARM64 $WAYLAND_VARS ../../.. make -j `nproc` if [ "$1" != "" ]; then @@ -1894,5 +1894,5 @@ index 0000000..ad90d30 + set(${_sources} ${${_sources}} PARENT_SCOPE) +endfunction() -- -2.20.1 +2.21.0 diff --git a/meta-raspberrypi/recipes-graphics/userland/files/0003-wayland-Add-Wayland-example.patch b/meta-raspberrypi/recipes-graphics/userland/files/0003-wayland-Add-Wayland-example.patch index 74b97b8218..ba83db8c75 100644 --- a/meta-raspberrypi/recipes-graphics/userland/files/0003-wayland-Add-Wayland-example.patch +++ b/meta-raspberrypi/recipes-graphics/userland/files/0003-wayland-Add-Wayland-example.patch @@ -1,4 +1,4 @@ -From 2391bba64116135369147e930fb14b5824a9cef0 Mon Sep 17 00:00:00 2001 +From 642110bbc9ebcb9ad497f4f1c1ccbc5a9afda753 Mon Sep 17 00:00:00 2001 From: Tomeu Vizoso <tomeu.vizoso@collabora.com> Date: Tue, 1 Oct 2013 13:19:20 +0200 Subject: [PATCH 03/18] wayland: Add Wayland example @@ -862,5 +862,5 @@ index 8225dd5..0be6ce7 100755 - +make -C hello_wayland -- -2.20.1 +2.21.0 diff --git a/meta-raspberrypi/recipes-graphics/userland/files/0004-wayland-egl-Add-bcm_host-to-dependencies.patch b/meta-raspberrypi/recipes-graphics/userland/files/0004-wayland-egl-Add-bcm_host-to-dependencies.patch index 9621afa7f7..c806e7b6b9 100644 --- a/meta-raspberrypi/recipes-graphics/userland/files/0004-wayland-egl-Add-bcm_host-to-dependencies.patch +++ b/meta-raspberrypi/recipes-graphics/userland/files/0004-wayland-egl-Add-bcm_host-to-dependencies.patch @@ -1,4 +1,4 @@ -From 3d1d046281b90d6777864b0d9a032657fad78d76 Mon Sep 17 00:00:00 2001 +From 33374e6b19a28d52a0089aa7b9af9b698fb98a86 Mon Sep 17 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> Date: Mon, 10 Aug 2015 02:38:27 -0700 Subject: [PATCH 04/18] wayland-egl: Add bcm_host to dependencies @@ -24,5 +24,5 @@ index 8bafc15..fd259c9 100644 Libs: -L${libdir} -lwayland-egl Cflags: -I${includedir} -- -2.20.1 +2.21.0 diff --git a/meta-raspberrypi/recipes-graphics/userland/files/0005-interface-remove-faulty-assert-to-make-weston-happy-.patch b/meta-raspberrypi/recipes-graphics/userland/files/0005-interface-remove-faulty-assert-to-make-weston-happy-.patch index 004e2eb11a..bcf828ce0a 100644 --- a/meta-raspberrypi/recipes-graphics/userland/files/0005-interface-remove-faulty-assert-to-make-weston-happy-.patch +++ b/meta-raspberrypi/recipes-graphics/userland/files/0005-interface-remove-faulty-assert-to-make-weston-happy-.patch @@ -1,4 +1,4 @@ -From d17e5b9285635dcbe1c6e5a7398f6e5b1560a0c0 Mon Sep 17 00:00:00 2001 +From e2d13265a34519364bd7d27d54a860967b320504 Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN" <yann.morin.1998@free.fr> Date: Sat, 24 Jan 2015 22:07:19 +0100 Subject: [PATCH 05/18] interface: remove faulty assert() to make weston happy @@ -25,5 +25,5 @@ index eab146e..29e0dee 100755 } } else { -- -2.20.1 +2.21.0 diff --git a/meta-raspberrypi/recipes-graphics/userland/files/0006-zero-out-wl-buffers-in-egl_surface_free.patch b/meta-raspberrypi/recipes-graphics/userland/files/0006-zero-out-wl-buffers-in-egl_surface_free.patch index 955dfa1a62..ed7baf869b 100644 --- a/meta-raspberrypi/recipes-graphics/userland/files/0006-zero-out-wl-buffers-in-egl_surface_free.patch +++ b/meta-raspberrypi/recipes-graphics/userland/files/0006-zero-out-wl-buffers-in-egl_surface_free.patch @@ -1,4 +1,4 @@ -From 7d4559c2418f4997dfdddefa9281250d0d8082db Mon Sep 17 00:00:00 2001 +From 0c64a21bd90b9dea9916dcdc7c8c23b93518ccb8 Mon Sep 17 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> Date: Sat, 6 Feb 2016 11:10:47 -0800 Subject: [PATCH 06/18] zero-out wl buffers in egl_surface_free @@ -29,5 +29,5 @@ index 42350bf..1f923d9 100644 #endif } -- -2.20.1 +2.21.0 diff --git a/meta-raspberrypi/recipes-graphics/userland/files/0007-initialize-front-back-wayland-buffers.patch b/meta-raspberrypi/recipes-graphics/userland/files/0007-initialize-front-back-wayland-buffers.patch index 514782f17a..3bc633f396 100644 --- a/meta-raspberrypi/recipes-graphics/userland/files/0007-initialize-front-back-wayland-buffers.patch +++ b/meta-raspberrypi/recipes-graphics/userland/files/0007-initialize-front-back-wayland-buffers.patch @@ -1,4 +1,4 @@ -From 19e63107670bb15833744402d68c8fcae9e53a12 Mon Sep 17 00:00:00 2001 +From 4e0f83d815461d501fef788236dab356c9b60ea5 Mon Sep 17 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> Date: Sat, 6 Feb 2016 11:11:41 -0800 Subject: [PATCH 07/18] initialize front back wayland buffers @@ -30,5 +30,5 @@ index 1f923d9..9a9582c 100644 } #endif -- -2.20.1 +2.21.0 diff --git a/meta-raspberrypi/recipes-graphics/userland/files/0008-Remove-RPC_FLUSH.patch b/meta-raspberrypi/recipes-graphics/userland/files/0008-Remove-RPC_FLUSH.patch index bd6c2ff0f6..94dee07102 100644 --- a/meta-raspberrypi/recipes-graphics/userland/files/0008-Remove-RPC_FLUSH.patch +++ b/meta-raspberrypi/recipes-graphics/userland/files/0008-Remove-RPC_FLUSH.patch @@ -1,4 +1,4 @@ -From 4312ce4f9320b25f513c4d8fa163f9d8faebfd97 Mon Sep 17 00:00:00 2001 +From 67384449b85e65661558b9ebe059792cdd737fc7 Mon Sep 17 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> Date: Sat, 6 Feb 2016 11:09:18 -0800 Subject: [PATCH 08/18] Remove RPC_FLUSH @@ -23,5 +23,5 @@ index f9b7287..b04ffef 100644 } #endif -- -2.20.1 +2.21.0 diff --git a/meta-raspberrypi/recipes-graphics/userland/files/0009-fix-cmake-dependency-race.patch b/meta-raspberrypi/recipes-graphics/userland/files/0009-fix-cmake-dependency-race.patch index e138ae250b..375b1815e1 100644 --- a/meta-raspberrypi/recipes-graphics/userland/files/0009-fix-cmake-dependency-race.patch +++ b/meta-raspberrypi/recipes-graphics/userland/files/0009-fix-cmake-dependency-race.patch @@ -1,4 +1,4 @@ -From cb454ad44fcb35fc28b823f05f3538c1f997e89e Mon Sep 17 00:00:00 2001 +From a4a31696bddb72f3bf58f6b5303816fd31081566 Mon Sep 17 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> Date: Sat, 6 Feb 2016 13:12:47 -0800 Subject: [PATCH 09/18] fix cmake dependency race @@ -74,5 +74,5 @@ index f0bae30..8c44c58 100644 struct wl_resource *resource; struct wl_dispmanx *dispmanx; -- -2.20.1 +2.21.0 diff --git a/meta-raspberrypi/recipes-graphics/userland/files/0010-Fix-for-framerate-with-nested-composition.patch b/meta-raspberrypi/recipes-graphics/userland/files/0010-Fix-for-framerate-with-nested-composition.patch index 70d90455f8..20a3743894 100644 --- a/meta-raspberrypi/recipes-graphics/userland/files/0010-Fix-for-framerate-with-nested-composition.patch +++ b/meta-raspberrypi/recipes-graphics/userland/files/0010-Fix-for-framerate-with-nested-composition.patch @@ -1,4 +1,4 @@ -From 2f0b25266d0b4b04ef78b8950f5bd9749857b4f0 Mon Sep 17 00:00:00 2001 +From c7acd48a9044e24d64ef453ff35202d6a697eb5d Mon Sep 17 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> Date: Tue, 29 Mar 2016 20:38:30 -0700 Subject: [PATCH 10/18] Fix for framerate with nested composition @@ -56,5 +56,5 @@ index 03fe67b..13a110c 100644 #ifdef ANDROID CLIENT_UNLOCK(); -- -2.20.1 +2.21.0 diff --git a/meta-raspberrypi/recipes-graphics/userland/files/0011-build-shared-library-for-vchostif.patch b/meta-raspberrypi/recipes-graphics/userland/files/0011-build-shared-library-for-vchostif.patch index da37102cac..5e141358b5 100644 --- a/meta-raspberrypi/recipes-graphics/userland/files/0011-build-shared-library-for-vchostif.patch +++ b/meta-raspberrypi/recipes-graphics/userland/files/0011-build-shared-library-for-vchostif.patch @@ -1,4 +1,4 @@ -From 5bc4118e7861f35ead6565530cb4213987296fb9 Mon Sep 17 00:00:00 2001 +From a49fbbc6abc3d57d45011a3410d3b8f04349e424 Mon Sep 17 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> Date: Sat, 2 Apr 2016 10:37:24 -0700 Subject: [PATCH 11/18] build shared library for vchostif @@ -24,5 +24,5 @@ index c415176..d0cca1a 100755 #add_library(bufman vc_vchi_bufman.c ) -- -2.20.1 +2.21.0 diff --git a/meta-raspberrypi/recipes-graphics/userland/files/0012-implement-buffer-wrapping-interface-for-dispmanx.patch b/meta-raspberrypi/recipes-graphics/userland/files/0012-implement-buffer-wrapping-interface-for-dispmanx.patch index 40666fde97..0bb9ef7038 100644 --- a/meta-raspberrypi/recipes-graphics/userland/files/0012-implement-buffer-wrapping-interface-for-dispmanx.patch +++ b/meta-raspberrypi/recipes-graphics/userland/files/0012-implement-buffer-wrapping-interface-for-dispmanx.patch @@ -1,4 +1,4 @@ -From 27194bc05a7a488827590208285a8757164edcef Mon Sep 17 00:00:00 2001 +From 70c5c684fbfbc8ebd890b0aafb2bb5c13d6cfb11 Mon Sep 17 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> Date: Sat, 2 Apr 2016 10:54:59 -0700 Subject: [PATCH 12/18] implement buffer wrapping interface for dispmanx @@ -88,5 +88,5 @@ index c18626d..11ed1ef 100644 </protocol> -- -2.20.1 +2.21.0 diff --git a/meta-raspberrypi/recipes-graphics/userland/files/0013-Implement-triple-buffering-for-wayland.patch b/meta-raspberrypi/recipes-graphics/userland/files/0013-Implement-triple-buffering-for-wayland.patch index 519785699a..aae0b02579 100644 --- a/meta-raspberrypi/recipes-graphics/userland/files/0013-Implement-triple-buffering-for-wayland.patch +++ b/meta-raspberrypi/recipes-graphics/userland/files/0013-Implement-triple-buffering-for-wayland.patch @@ -1,4 +1,4 @@ -From e99b2eafba5260b8087fc1a85830b08ea3228292 Mon Sep 17 00:00:00 2001 +From 789d16a9d5aa57b201e9d6be9427671f48fec5e4 Mon Sep 17 00:00:00 2001 From: Jeff Wannamaker <jeff_wannamaker@cable.comcast.com> Date: Thu, 19 Jan 2017 18:56:07 +0000 Subject: [PATCH 13/18] Implement triple buffering for wayland @@ -86,5 +86,5 @@ index e328b77..58a3184 100644 back_wl_buffer -- -2.20.1 +2.21.0 diff --git a/meta-raspberrypi/recipes-graphics/userland/files/0014-GLES2-gl2ext.h-Define-GL_R8_EXT-and-GL_RG8_EXT.patch b/meta-raspberrypi/recipes-graphics/userland/files/0014-GLES2-gl2ext.h-Define-GL_R8_EXT-and-GL_RG8_EXT.patch index 7f7e732279..dd27e68197 100644 --- a/meta-raspberrypi/recipes-graphics/userland/files/0014-GLES2-gl2ext.h-Define-GL_R8_EXT-and-GL_RG8_EXT.patch +++ b/meta-raspberrypi/recipes-graphics/userland/files/0014-GLES2-gl2ext.h-Define-GL_R8_EXT-and-GL_RG8_EXT.patch @@ -1,4 +1,4 @@ -From a9726c7fdcd386bd104b13c494d261f693dde792 Mon Sep 17 00:00:00 2001 +From 49604e158b8171033bc8a9db5d8893887fb98557 Mon Sep 17 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> Date: Wed, 10 May 2017 06:39:34 +0000 Subject: [PATCH 14/18] GLES2/gl2ext.h: Define GL_R8_EXT and GL_RG8_EXT @@ -31,5 +31,5 @@ index 4eacf7f..b1acc9f 100644 #ifndef GL_EXT_texture_type_2_10_10_10_REV #define GL_UNSIGNED_INT_2_10_10_10_REV_EXT 0x8368 -- -2.20.1 +2.21.0 diff --git a/meta-raspberrypi/recipes-graphics/userland/files/0015-EGL-glplatform.h-define-EGL_CAST.patch b/meta-raspberrypi/recipes-graphics/userland/files/0015-EGL-glplatform.h-define-EGL_CAST.patch index cfcc120883..5a5a0322dd 100644 --- a/meta-raspberrypi/recipes-graphics/userland/files/0015-EGL-glplatform.h-define-EGL_CAST.patch +++ b/meta-raspberrypi/recipes-graphics/userland/files/0015-EGL-glplatform.h-define-EGL_CAST.patch @@ -1,4 +1,4 @@ -From 3ba79e86cdec88440885fefc7aadf793b301b000 Mon Sep 17 00:00:00 2001 +From 90f6ebc04c688720f45c7009d12d524d33f51781 Mon Sep 17 00:00:00 2001 From: Andrea Galbusera <gizero@gmail.com> Date: Fri, 14 Jul 2017 09:52:54 +0200 Subject: [PATCH 15/18] EGL/glplatform.h: define EGL_CAST @@ -28,5 +28,5 @@ index 1f7c930..c39d425 100644 + #endif /* __eglplatform_h */ -- -2.20.1 +2.21.0 diff --git a/meta-raspberrypi/recipes-graphics/userland/files/0016-Allow-multiple-wayland-compositor-state-data-per-pro.patch b/meta-raspberrypi/recipes-graphics/userland/files/0016-Allow-multiple-wayland-compositor-state-data-per-pro.patch index 2d1b8828ca..da18541b6d 100644 --- a/meta-raspberrypi/recipes-graphics/userland/files/0016-Allow-multiple-wayland-compositor-state-data-per-pro.patch +++ b/meta-raspberrypi/recipes-graphics/userland/files/0016-Allow-multiple-wayland-compositor-state-data-per-pro.patch @@ -1,4 +1,4 @@ -From 5c53b2ff4d14b988ae9ab453fb2ef97b6a277ded Mon Sep 17 00:00:00 2001 +From b8a1516fd1d8c8a5f2400a7fb7bd6b9e05d33a55 Mon Sep 17 00:00:00 2001 From: Jeff Wannamaker <jeff_wannamaker@cable.comcast.com> Date: Sat, 27 Jan 2018 12:28:31 -0500 Subject: [PATCH 16/18] Allow multiple wayland compositor state data per @@ -141,5 +141,5 @@ index 9ef89cd..abd5ab3 100644 CLIENT_UNLOCK(); -- -2.20.1 +2.21.0 diff --git a/meta-raspberrypi/recipes-graphics/userland/files/0017-khronos-backport-typedef-for-EGL_EXT_image_dma_buf_i.patch b/meta-raspberrypi/recipes-graphics/userland/files/0017-khronos-backport-typedef-for-EGL_EXT_image_dma_buf_i.patch index 9c223abea2..9d96d5fe94 100644 --- a/meta-raspberrypi/recipes-graphics/userland/files/0017-khronos-backport-typedef-for-EGL_EXT_image_dma_buf_i.patch +++ b/meta-raspberrypi/recipes-graphics/userland/files/0017-khronos-backport-typedef-for-EGL_EXT_image_dma_buf_i.patch @@ -1,4 +1,4 @@ -From 0d3c6b7ca5d352cc00d9501b9d5576c4ece70a83 Mon Sep 17 00:00:00 2001 +From d65939b5bdc6cfddb68803e87efffac13182ae46 Mon Sep 17 00:00:00 2001 From: Hugo Hromic <hhromic@gmail.com> Date: Sun, 13 May 2018 10:49:04 +0100 Subject: [PATCH 17/18] khronos: backport typedef for @@ -34,5 +34,5 @@ index d7e5ba7..dcc90ce 100755 #ifndef EGL_WL_bind_wayland_display #define EGL_WL_bind_wayland_display 1 -- -2.20.1 +2.21.0 diff --git a/meta-raspberrypi/recipes-graphics/userland/files/0018-Add-EGL_IMG_context_priority-related-defines.patch b/meta-raspberrypi/recipes-graphics/userland/files/0018-Add-EGL_IMG_context_priority-related-defines.patch index 03499d40d3..86f7b36358 100644 --- a/meta-raspberrypi/recipes-graphics/userland/files/0018-Add-EGL_IMG_context_priority-related-defines.patch +++ b/meta-raspberrypi/recipes-graphics/userland/files/0018-Add-EGL_IMG_context_priority-related-defines.patch @@ -1,4 +1,4 @@ -From 0f98ccac128265b85af3c5e310413fc9fce9f78c Mon Sep 17 00:00:00 2001 +From e5fcfe7af2c7f75b66356680bb641f4f6555d0c5 Mon Sep 17 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> Date: Sun, 15 Jul 2018 00:48:38 -0700 Subject: [PATCH 18/18] Add EGL_IMG_context_priority related defines @@ -31,5 +31,5 @@ index dcc90ce..6842bf9 100755 #define EGL_KHR_vg_parent_image 1 #define EGL_VG_PARENT_IMAGE_KHR 0x30BA /* eglCreateImageKHR target */ -- -2.20.1 +2.21.0 diff --git a/meta-raspberrypi/recipes-graphics/userland/userland_git.bb b/meta-raspberrypi/recipes-graphics/userland/userland_git.bb index 2815942e89..2b5ac33016 100644 --- a/meta-raspberrypi/recipes-graphics/userland/userland_git.bb +++ b/meta-raspberrypi/recipes-graphics/userland/userland_git.bb @@ -12,11 +12,11 @@ COMPATIBLE_MACHINE = "^rpi$" SRCBRANCH = "master" SRCFORK = "raspberrypi" -SRCREV = "e5803f2c986cbf8c919c60278b3231dcdf4271a6" +SRCREV = "517cdc30da167d81a485e7a994e02cec2390a269" # Use the date of the above commit as the package version. Update this when # SRCREV is changed. -PV = "20190114" +PV = "20190501" SRC_URI = "\ git://github.com/${SRCFORK}/userland.git;protocol=git;branch=${SRCBRANCH} \ diff --git a/meta-raspberrypi/recipes-graphics/vc-graphics/vc-graphics.inc b/meta-raspberrypi/recipes-graphics/vc-graphics/vc-graphics.inc index cd0d57b226..8b3f2bf0f4 100644 --- a/meta-raspberrypi/recipes-graphics/vc-graphics/vc-graphics.inc +++ b/meta-raspberrypi/recipes-graphics/vc-graphics/vc-graphics.inc @@ -8,7 +8,7 @@ COMPATIBLE_MACHINE = "^rpi$" INHIBIT_DEFAULT_DEPS = "1" -include recipes-bsp/common/firmware.inc +include recipes-bsp/common/raspberrypi-firmware.inc SRC_URI += " \ file://egl.pc \ @@ -25,9 +25,6 @@ do_install () { install -d ${D}${bindir} cp -R bin/* ${D}${bindir} - install -d ${D}${sbindir} - cp -R sbin/* ${D}${sbindir} - install -d ${D}${libdir} # note: -H option to deref symlinked .so cp -R -H lib/* ${D}${libdir} @@ -49,7 +46,6 @@ INITSCRIPT_NAME = "vchiq.sh" INITSCRIPT_PARAMS = "start 03 S ." FILES_${PN} = "${bindir}/* \ - ${sbindir}/* \ ${libdir}/lib*.so \ ${sysconfdir}/init.d \ ${libdir}/plugins" diff --git a/meta-raspberrypi/recipes-kernel/linux-firmware-rpidistro/linux-firmware-rpidistro/0001-brcmfmac43455-sdio.txt-Follow-raspbian-change-for-bo.patch b/meta-raspberrypi/recipes-kernel/linux-firmware-rpidistro/linux-firmware-rpidistro/0001-brcmfmac43455-sdio.txt-Follow-raspbian-change-for-bo.patch new file mode 100644 index 0000000000..1ad0fd1b2b --- /dev/null +++ b/meta-raspberrypi/recipes-kernel/linux-firmware-rpidistro/linux-firmware-rpidistro/0001-brcmfmac43455-sdio.txt-Follow-raspbian-change-for-bo.patch @@ -0,0 +1,39 @@ +From c9d4f263131cb8e62597e0a296968b5cdbfe0019 Mon Sep 17 00:00:00 2001 +From: Andrei Gherzan <andrei@gherzan.ro> +Date: Thu, 27 Jun 2019 20:49:10 +0100 +Subject: [PATCH] brcmfmac43455-sdio.txt: Follow raspbian change for + boardflags3 + +Without this change the WiFi interface on RPi4 never comes up. Also the +upstream repository doesn't include this change. It is only (as far as I +know) part of the raspberrypi deb repository with the following +changelog: + +firmware-nonfree (1:20190114-1+rpt2) buster; urgency=medium + * Update brcmfmac43455-sdio.txt + - Update boardflags3 + -- Serge Schneider <serge@raspberrypi.org> Thu, 18 Apr 2019 14:35:34 ++0100 + +Upstream-status: Pending +Signed-off-by: Andrei Gherzan <andrei@gherzan.ro> +--- + brcm/brcmfmac43455-sdio.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/brcm/brcmfmac43455-sdio.txt b/brcm/brcmfmac43455-sdio.txt +index 54d9321..6801286 100644 +--- a/brcm/brcmfmac43455-sdio.txt ++++ b/brcm/brcmfmac43455-sdio.txt +@@ -21,7 +21,7 @@ btc_mode=1 + # bit1 for btcoex + boardflags=0x00480201 + boardflags2=0x40800000 +-boardflags3=0x48200100 ++boardflags3=0x44200100 + phycal_tempdelta=15 + rxchain=1 + txchain=1 +-- +2.17.1 + diff --git a/meta-raspberrypi/recipes-kernel/linux-firmware-rpidistro/linux-firmware-rpidistro_git.bb b/meta-raspberrypi/recipes-kernel/linux-firmware-rpidistro/linux-firmware-rpidistro_git.bb index 1f63c329c4..39ffbf54bb 100644 --- a/meta-raspberrypi/recipes-kernel/linux-firmware-rpidistro/linux-firmware-rpidistro_git.bb +++ b/meta-raspberrypi/recipes-kernel/linux-firmware-rpidistro/linux-firmware-rpidistro_git.bb @@ -33,7 +33,10 @@ LIC_FILES_CHKSUM = "\ NO_GENERIC_LICENSE[Firmware-broadcom_bcm43xx-rpidistro] = "LICENCE.broadcom_bcm43xx" NO_GENERIC_LICENSE[WHENCE] = "WHENCE" -SRC_URI = "git://github.com/RPi-Distro/firmware-nonfree" +SRC_URI = " \ + git://github.com/RPi-Distro/firmware-nonfree \ + file://0001-brcmfmac43455-sdio.txt-Follow-raspbian-change-for-bo.patch \ + " SRCREV = "b518de45ced519e8f7a499f4778100173402ae43" PV = "0.0+git${SRCPV}" @@ -43,6 +46,13 @@ inherit allarch CLEANBROKEN = "1" +do_unpack_append() { + bb.build.exec_func('do_clean_pc', d) +} +do_clean_pc() { + rm -rf ${S}/.pc +} + do_compile() { : } diff --git a/meta-raspberrypi/recipes-kernel/linux/files/raspberrypi4-64/rpi4-64-kernel-misc.cfg b/meta-raspberrypi/recipes-kernel/linux/files/raspberrypi4-64/rpi4-64-kernel-misc.cfg new file mode 100644 index 0000000000..fd97ed71f1 --- /dev/null +++ b/meta-raspberrypi/recipes-kernel/linux/files/raspberrypi4-64/rpi4-64-kernel-misc.cfg @@ -0,0 +1,2 @@ +# see emmc node +CONFIG_MMC_SDHCI_IPROC=y diff --git a/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi.inc b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi.inc index 01f2425eda..ea7f778371 100644 --- a/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi.inc +++ b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi.inc @@ -19,6 +19,8 @@ KBUILD_DEFCONFIG_raspberrypi ?= "bcmrpi_defconfig" KBUILD_DEFCONFIG_raspberrypi2 ?= "bcm2709_defconfig" KBUILD_DEFCONFIG_raspberrypi3 ?= "bcm2709_defconfig" KBUILD_DEFCONFIG_raspberrypi3-64 ?= "bcmrpi3_defconfig" +KBUILD_DEFCONFIG_raspberrypi4 ?= "bcm2711_defconfig" +KBUILD_DEFCONFIG_raspberrypi4-64 ?= "bcm2711_defconfig" # CMDLINE for raspberrypi SERIAL = "${@oe.utils.conditional("ENABLE_UART", "1", "console=serial0,115200", "", d)}" @@ -120,9 +122,11 @@ do_configure_prepend() { rm -f ${B}/.config.patched } -do_compile_append_raspberrypi3-64() { - cc_extra=$(get_cc_option) - oe_runmake dtbs CC="${KERNEL_CC} $cc_extra " LD="${KERNEL_LD}" ${KERNEL_EXTRA_ARGS} +do_compile_append() { + if [ "${SITEINFO_BITS}" = "64" ]; then + cc_extra=$(get_cc_option) + oe_runmake dtbs CC="${KERNEL_CC} $cc_extra " LD="${KERNEL_LD}" ${KERNEL_EXTRA_ARGS} + fi } do_deploy_append() { diff --git a/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.19.bb b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.19.bb index 396dd6f758..b15b5223f1 100644 --- a/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.19.bb +++ b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.19.bb @@ -1,12 +1,16 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/linux-raspberrypi:" -LINUX_VERSION ?= "4.19.44" +LINUX_VERSION ?= "4.19.58" LINUX_RPI_BRANCH ?= "rpi-4.19.y" -SRCREV = "b45a32b47b76cb64225d19841c20ee85ea97874d" +SRCREV = "d5dc848c982dff2e020f294e384447efe6ea6617" SRC_URI = " \ git://github.com/raspberrypi/linux.git;protocol=git;branch=${LINUX_RPI_BRANCH} \ " +SRC_URI_append_raspberrypi4-64 = " file://rpi4-64-kernel-misc.cfg" + require linux-raspberrypi.inc LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" + +KERNEL_EXTRA_ARGS_append_rpi = " DTC_FLAGS='-@ -H epapr'" |
