summaryrefslogtreecommitdiff
path: root/meta-raspberrypi
diff options
context:
space:
mode:
Diffstat (limited to 'meta-raspberrypi')
-rw-r--r--meta-raspberrypi/.gitignore1
-rw-r--r--meta-raspberrypi/classes/sdcard_image-rpi.bbclass10
-rw-r--r--meta-raspberrypi/conf/machine/include/rpi-base.inc25
-rw-r--r--meta-raspberrypi/conf/machine/include/rpi-default-providers.inc2
-rw-r--r--meta-raspberrypi/conf/machine/include/rpi-default-versions.inc2
-rw-r--r--meta-raspberrypi/conf/machine/raspberrypi3-64.conf3
-rw-r--r--meta-raspberrypi/conf/machine/raspberrypi4-64.conf6
-rw-r--r--meta-raspberrypi/docs/extra-build-config.md9
-rw-r--r--meta-raspberrypi/kas-poky-rpi.yml3
-rw-r--r--meta-raspberrypi/recipes-bsp/bootfiles/rpi-cmdline.bb2
-rw-r--r--meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb158
-rw-r--r--meta-raspberrypi/recipes-bsp/common/raspberrypi-firmware.inc6
-rw-r--r--meta-raspberrypi/recipes-devtools/python/python3-adafruit-blinka_6.2.2.bb30
-rw-r--r--meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-busdevice_5.0.5.bb18
-rw-r--r--meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-motor_3.2.6.bb18
-rw-r--r--meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-motorkit_1.6.1.bb22
-rw-r--r--meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-pca9685_3.3.4.bb20
-rw-r--r--meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-register_1.9.4.bb15
-rw-r--r--meta-raspberrypi/recipes-devtools/python/python3-adafruit-platformdetect_3.1.1.bb15
-rw-r--r--meta-raspberrypi/recipes-devtools/python/python3-adafruit-pureio_1.1.8.bb19
-rw-r--r--meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-dev.bb4
-rw-r--r--meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi.inc4
-rw-r--r--meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_5.10.bb18
-rw-r--r--meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_5.4.bb8
-rw-r--r--meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.18/0001-config-files-path.patch150
-rw-r--r--meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx/0001-Don-t-try-to-acquire-buffer-when-src-pad-isn-t-activ.patch (renamed from meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.18/0001-Don-t-try-to-acquire-buffer-when-src-pad-isn-t-activ.patch)0
-rw-r--r--meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx/0003-no-timeout-on-get-state.patch (renamed from meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.18/0003-no-timeout-on-get-state.patch)0
-rw-r--r--meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx/0004-Properly-handle-drain-requests-while-flushing.patch (renamed from meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.18/0004-Properly-handle-drain-requests-while-flushing.patch)0
-rw-r--r--meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx/0005-Don-t-abort-gst_omx_video_dec_set_format-if-there-s-.patch (renamed from meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.18/0005-Don-t-abort-gst_omx_video_dec_set_format-if-there-s-.patch)0
-rw-r--r--meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx_%.bbappend16
-rw-r--r--meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.18%.bbappend12
31 files changed, 323 insertions, 273 deletions
diff --git a/meta-raspberrypi/.gitignore b/meta-raspberrypi/.gitignore
index 706144a55..073cf0615 100644
--- a/meta-raspberrypi/.gitignore
+++ b/meta-raspberrypi/.gitignore
@@ -5,3 +5,4 @@ build*
*.rej
*.log
docs/_build
+/layers
diff --git a/meta-raspberrypi/classes/sdcard_image-rpi.bbclass b/meta-raspberrypi/classes/sdcard_image-rpi.bbclass
index 0ae98cdab..e803a0da9 100644
--- a/meta-raspberrypi/classes/sdcard_image-rpi.bbclass
+++ b/meta-raspberrypi/classes/sdcard_image-rpi.bbclass
@@ -13,14 +13,14 @@ inherit image_types
# Default Free space = 1.3x
# Use IMAGE_OVERHEAD_FACTOR to add more space
# <--------->
-# 4MiB 40MiB SDIMG_ROOTFS
+# 4MiB 48MiB SDIMG_ROOTFS
# <-----------------------> <----------> <---------------------->
# ------------------------ ------------ ------------------------
# | IMAGE_ROOTFS_ALIGNMENT | BOOT_SPACE | ROOTFS_SIZE |
# ------------------------ ------------ ------------------------
# ^ ^ ^ ^
# | | | |
-# 0 4MiB 4MiB + 40MiB 4MiB + 40Mib + SDIMG_ROOTFS
+# 0 4MiB 4MiB + 48MiB 4MiB + 48Mib + SDIMG_ROOTFS
# This image depends on the rootfs image
IMAGE_TYPEDEP_rpi-sdimg = "${SDIMG_ROOTFS_TYPE}"
@@ -31,10 +31,12 @@ SDIMG_KERNELIMAGE_raspberrypi2 ?= "kernel7.img"
SDIMG_KERNELIMAGE_raspberrypi3-64 ?= "kernel8.img"
# Boot partition volume id
-BOOTDD_VOLUME_ID ?= "${MACHINE}"
+# Shorten raspberrypi to just rpi to keep it under 11 characters
+# now enforced by mkfs.vfat from dosfstools-4.2
+BOOTDD_VOLUME_ID ?= "${@d.getVar('MACHINE').replace('raspberrypi', 'rpi')}"
# Boot partition size [in KiB] (will be rounded up to IMAGE_ROOTFS_ALIGNMENT)
-BOOT_SPACE ?= "40960"
+BOOT_SPACE ?= "49152"
# Set alignment to 4MB [in KiB]
IMAGE_ROOTFS_ALIGNMENT = "4096"
diff --git a/meta-raspberrypi/conf/machine/include/rpi-base.inc b/meta-raspberrypi/conf/machine/include/rpi-base.inc
index 18368c621..8b33a0fb7 100644
--- a/meta-raspberrypi/conf/machine/include/rpi-base.inc
+++ b/meta-raspberrypi/conf/machine/include/rpi-base.inc
@@ -18,46 +18,55 @@ RPI_KERNEL_DEVICETREE_OVERLAYS ?= " \
overlays/at86rf233.dtbo \
overlays/disable-bt.dtbo \
overlays/dwc2.dtbo \
+ overlays/gpio-ir.dtbo \
+ overlays/gpio-ir-tx.dtbo \
overlays/gpio-key.dtbo \
overlays/hifiberry-amp.dtbo \
overlays/hifiberry-dac.dtbo \
overlays/hifiberry-dacplus.dtbo \
overlays/hifiberry-digi.dtbo \
+ overlays/justboom-both.dtbo \
+ overlays/justboom-dac.dtbo \
+ overlays/justboom-digi.dtbo \
overlays/i2c-rtc.dtbo \
+ overlays/imx219.dtbo \
overlays/iqaudio-dac.dtbo \
overlays/iqaudio-dacplus.dtbo \
- overlays/miniuart-bt.dtbo \
overlays/mcp2515-can0.dtbo \
overlays/mcp2515-can1.dtbo \
+ overlays/miniuart-bt.dtbo \
overlays/pitft22.dtbo \
- overlays/pitft28-resistive.dtbo \
overlays/pitft28-capacitive.dtbo \
+ overlays/pitft28-resistive.dtbo \
overlays/pitft35-resistive.dtbo \
overlays/pps-gpio.dtbo \
overlays/rpi-ft5406.dtbo \
overlays/rpi-poe.dtbo \
- overlays/vc4-kms-v3d.dtbo \
overlays/vc4-fkms-v3d.dtbo \
- overlays/w1-gpio-pullup.dtbo \
+ overlays/vc4-kms-v3d.dtbo \
+ overlays/vc4-kms-dsi-7inch.dtbo \
overlays/w1-gpio.dtbo \
- overlays/gpio-ir.dtbo \
- overlays/gpio-ir-tx.dtbo \
- overlays/imx219.dtbo \
+ overlays/w1-gpio-pullup.dtbo \
"
RPI_KERNEL_DEVICETREE ?= " \
+ bcm2708-rpi-zero.dtb \
bcm2708-rpi-zero-w.dtb \
bcm2708-rpi-b.dtb \
+ bcm2708-rpi-b-rev1.dtb \
bcm2708-rpi-b-plus.dtb \
bcm2709-rpi-2-b.dtb \
+ bcm2710-rpi-2-b.dtb \
bcm2710-rpi-3-b.dtb \
bcm2710-rpi-3-b-plus.dtb \
bcm2711-rpi-4-b.dtb \
+ bcm2711-rpi-400.dtb \
bcm2708-rpi-cm.dtb \
bcm2710-rpi-cm3.dtb \
+ bcm2711-rpi-cm4.dtb \
"
-KERNEL_DEVICETREE ?= " \
+KERNEL_DEVICETREE ??= " \
${RPI_KERNEL_DEVICETREE} \
${RPI_KERNEL_DEVICETREE_OVERLAYS} \
"
diff --git a/meta-raspberrypi/conf/machine/include/rpi-default-providers.inc b/meta-raspberrypi/conf/machine/include/rpi-default-providers.inc
index 181b9364b..c02d24879 100644
--- a/meta-raspberrypi/conf/machine/include/rpi-default-providers.inc
+++ b/meta-raspberrypi/conf/machine/include/rpi-default-providers.inc
@@ -1,6 +1,6 @@
# RaspberryPi BSP default providers
-PREFERRED_PROVIDER_virtual/kernel ?= "linux-raspberrypi"
+PREFERRED_PROVIDER_virtual/kernel ??= "linux-raspberrypi"
PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg"
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)}"
diff --git a/meta-raspberrypi/conf/machine/include/rpi-default-versions.inc b/meta-raspberrypi/conf/machine/include/rpi-default-versions.inc
index e57c702b3..17d5bd6d5 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 ??= "5.4.%"
+PREFERRED_VERSION_linux-raspberrypi ??= "5.10.%"
diff --git a/meta-raspberrypi/conf/machine/raspberrypi3-64.conf b/meta-raspberrypi/conf/machine/raspberrypi3-64.conf
index 65e3302c3..539413219 100644
--- a/meta-raspberrypi/conf/machine/raspberrypi3-64.conf
+++ b/meta-raspberrypi/conf/machine/raspberrypi3-64.conf
@@ -18,11 +18,12 @@ RPI_KERNEL_DEVICETREE = " \
broadcom/bcm2710-rpi-3-b.dtb \
broadcom/bcm2710-rpi-3-b-plus.dtb \
broadcom/bcm2837-rpi-3-b.dtb \
+ broadcom/bcm2710-rpi-cm3.dtb \
"
SERIAL_CONSOLES ?= "115200;ttyS0"
-UBOOT_MACHINE = "rpi_3_config"
+UBOOT_MACHINE = "rpi_arm64_config"
# When u-boot is enabled we need to use the "Image" format and the "booti"
# command to load the kernel
diff --git a/meta-raspberrypi/conf/machine/raspberrypi4-64.conf b/meta-raspberrypi/conf/machine/raspberrypi4-64.conf
index 633d18801..12c8954d9 100644
--- a/meta-raspberrypi/conf/machine/raspberrypi4-64.conf
+++ b/meta-raspberrypi/conf/machine/raspberrypi4-64.conf
@@ -15,12 +15,14 @@ include conf/machine/include/rpi-base.inc
RPI_KERNEL_DEVICETREE = " \
broadcom/bcm2711-rpi-4-b.dtb \
+ broadcom/bcm2711-rpi-400.dtb \
+ broadcom/bcm2711-rpi-cm4.dtb \
"
SDIMG_KERNELIMAGE ?= "kernel8.img"
SERIAL_CONSOLES ?= "115200;ttyS0"
-UBOOT_MACHINE = "rpi_4_config"
+UBOOT_MACHINE = "rpi_arm64_config"
VC4DTBO ?= "vc4-fkms-v3d"
@@ -31,6 +33,4 @@ KERNEL_IMAGETYPE_UBOOT ?= "Image"
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"
-
ARMSTUB ?= "armstub8-gic.bin"
diff --git a/meta-raspberrypi/docs/extra-build-config.md b/meta-raspberrypi/docs/extra-build-config.md
index 921dcc599..1caf904fd 100644
--- a/meta-raspberrypi/docs/extra-build-config.md
+++ b/meta-raspberrypi/docs/extra-build-config.md
@@ -269,6 +269,15 @@ local.conf:
ENABLE_DWC2_PERIPHERAL = "1"
+## Enable USB host support
+
+By default in case of the Compute Module 4 IO Board the standard USB driver
+that usually supports host mode operations is disabled for power saving reasons.
+Users who want to use the 2 USB built-in ports or the other ports provided via
+the header extension should set the following in local.conf:
+
+ ENABLE_DWC2_HOST = "1"
+
## Enable Openlabs 802.15.4 radio module
When using device tree kernels, set this variable to enable the 802.15.4 hat:
diff --git a/meta-raspberrypi/kas-poky-rpi.yml b/meta-raspberrypi/kas-poky-rpi.yml
index 2d80a57ed..d629e817f 100644
--- a/meta-raspberrypi/kas-poky-rpi.yml
+++ b/meta-raspberrypi/kas-poky-rpi.yml
@@ -11,6 +11,7 @@ repos:
poky:
url: https://git.yoctoproject.org/git/poky
+ path: layers/poky
refspec: master
layers:
meta:
@@ -19,6 +20,7 @@ repos:
meta-openembedded:
url: http://git.openembedded.org/meta-openembedded
+ path: layers/meta-openembedded
refspec: master
layers:
meta-oe:
@@ -28,6 +30,7 @@ repos:
meta-qt5:
url: https://github.com/meta-qt5/meta-qt5/
+ path: layers/meta-qt5
refspec: master
bblayers_conf_header:
diff --git a/meta-raspberrypi/recipes-bsp/bootfiles/rpi-cmdline.bb b/meta-raspberrypi/recipes-bsp/bootfiles/rpi-cmdline.bb
index 97db4e36f..40a9949a1 100644
--- a/meta-raspberrypi/recipes-bsp/bootfiles/rpi-cmdline.bb
+++ b/meta-raspberrypi/recipes-bsp/bootfiles/rpi-cmdline.bb
@@ -37,7 +37,7 @@ CMDLINE = " \
"
do_compile() {
- echo "${CMDLINE}" > "${WORKDIR}/cmdline.txt"
+ echo "${@' '.join('${CMDLINE}'.split())}" > "${WORKDIR}/cmdline.txt"
}
do_deploy() {
diff --git a/meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb b/meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb
index e1c330db1..de43c4b36 100644
--- a/meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb
+++ b/meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb
@@ -34,210 +34,220 @@ inherit deploy nopackages
do_deploy() {
install -d ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}
+ CONFIG=${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
- cp ${S}/config.txt ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/
+ cp ${S}/config.txt $CONFIG
if [ -n "${KEY_DECODE_MPG2}" ]; then
- sed -i '/#decode_MPG2=/ c\decode_MPG2=${KEY_DECODE_MPG2}' ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
+ sed -i '/#decode_MPG2=/ c\decode_MPG2=${KEY_DECODE_MPG2}' $CONFIG
fi
if [ -n "${KEY_DECODE_WVC1}" ]; then
- sed -i '/#decode_WVC1=/ c\decode_WVC1=${KEY_DECODE_WVC1}' ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
+ sed -i '/#decode_WVC1=/ c\decode_WVC1=${KEY_DECODE_WVC1}' $CONFIG
fi
if [ -n "${DISABLE_OVERSCAN}" ]; then
- sed -i '/#disable_overscan=/ c\disable_overscan=${DISABLE_OVERSCAN}' ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
+ sed -i '/#disable_overscan=/ c\disable_overscan=${DISABLE_OVERSCAN}' $CONFIG
fi
if [ "${DISABLE_SPLASH}" = "1" ]; then
- sed -i '/#disable_splash=/ c\disable_splash=${DISABLE_SPLASH}' ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
+ sed -i '/#disable_splash=/ c\disable_splash=${DISABLE_SPLASH}' $CONFIG
fi
# Set overclocking options
if [ -n "${ARM_FREQ}" ]; then
- sed -i '/#arm_freq=/ c\arm_freq=${ARM_FREQ}' ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
+ sed -i '/#arm_freq=/ c\arm_freq=${ARM_FREQ}' $CONFIG
fi
if [ -n "${GPU_FREQ}" ]; then
- sed -i '/#gpu_freq=/ c\gpu_freq=${GPU_FREQ}' ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
+ sed -i '/#gpu_freq=/ c\gpu_freq=${GPU_FREQ}' $CONFIG
fi
if [ -n "${CORE_FREQ}" ]; then
- sed -i '/#core_freq=/ c\core_freq=${CORE_FREQ}' ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
+ sed -i '/#core_freq=/ c\core_freq=${CORE_FREQ}' $CONFIG
fi
if [ -n "${SDRAM_FREQ}" ]; then
- sed -i '/#sdram_freq=/ c\sdram_freq=${SDRAM_FREQ}' ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
+ sed -i '/#sdram_freq=/ c\sdram_freq=${SDRAM_FREQ}' $CONFIG
fi
if [ -n "${OVER_VOLTAGE}" ]; then
- sed -i '/#over_voltage=/ c\over_voltage=${OVER_VOLTAGE}' ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
+ sed -i '/#over_voltage=/ c\over_voltage=${OVER_VOLTAGE}' $CONFIG
fi
# GPU memory
if [ -n "${GPU_MEM}" ]; then
- sed -i '/#gpu_mem=/ c\gpu_mem=${GPU_MEM}' ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
+ sed -i '/#gpu_mem=/ c\gpu_mem=${GPU_MEM}' $CONFIG
fi
if [ -n "${GPU_MEM_256}" ]; then
- sed -i '/#gpu_mem_256=/ c\gpu_mem_256=${GPU_MEM_256}' ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
+ sed -i '/#gpu_mem_256=/ c\gpu_mem_256=${GPU_MEM_256}' $CONFIG
fi
if [ -n "${GPU_MEM_512}" ]; then
- sed -i '/#gpu_mem_512=/ c\gpu_mem_512=${GPU_MEM_512}' ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
+ sed -i '/#gpu_mem_512=/ c\gpu_mem_512=${GPU_MEM_512}' $CONFIG
fi
if [ -n "${GPU_MEM_1024}" ]; then
- sed -i '/#gpu_mem_1024=/ c\gpu_mem_1024=${GPU_MEM_1024}' ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
+ sed -i '/#gpu_mem_1024=/ c\gpu_mem_1024=${GPU_MEM_1024}' $CONFIG
fi
# Set boot delay
if [ -n "${BOOT_DELAY}" ]; then
- sed -i '/#boot_delay=/ c\boot_delay=${BOOT_DELAY}' ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
+ sed -i '/#boot_delay=/ c\boot_delay=${BOOT_DELAY}' $CONFIG
fi
if [ -n "${BOOT_DELAY_MS}" ]; then
- sed -i '/#boot_delay_ms=/ c\boot_delay_ms=${BOOT_DELAY_MS}' ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
+ sed -i '/#boot_delay_ms=/ c\boot_delay_ms=${BOOT_DELAY_MS}' $CONFIG
fi
# Set HDMI and composite video options
if [ -n "${HDMI_FORCE_HOTPLUG}" ]; then
- sed -i '/#hdmi_force_hotplug=/ c\hdmi_force_hotplug=${HDMI_FORCE_HOTPLUG}' ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
+ sed -i '/#hdmi_force_hotplug=/ c\hdmi_force_hotplug=${HDMI_FORCE_HOTPLUG}' $CONFIG
fi
if [ -n "${HDMI_DRIVE}" ]; then
- sed -i '/#hdmi_drive=/ c\hdmi_drive=${HDMI_DRIVE}' ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
+ sed -i '/#hdmi_drive=/ c\hdmi_drive=${HDMI_DRIVE}' $CONFIG
fi
if [ -n "${HDMI_GROUP}" ]; then
- sed -i '/#hdmi_group=/ c\hdmi_group=${HDMI_GROUP}' ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
+ sed -i '/#hdmi_group=/ c\hdmi_group=${HDMI_GROUP}' $CONFIG
fi
if [ -n "${HDMI_MODE}" ]; then
- sed -i '/#hdmi_mode=/ c\hdmi_mode=${HDMI_MODE}' ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
+ sed -i '/#hdmi_mode=/ c\hdmi_mode=${HDMI_MODE}' $CONFIG
fi
if [ -n "${CONFIG_HDMI_BOOST}" ]; then
- sed -i '/#config_hdmi_boost=/ c\config_hdmi_boost=${CONFIG_HDMI_BOOST}' ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
+ sed -i '/#config_hdmi_boost=/ c\config_hdmi_boost=${CONFIG_HDMI_BOOST}' $CONFIG
fi
if [ -n "${SDTV_MODE}" ]; then
- sed -i '/#sdtv_mode=/ c\sdtv_mode=${SDTV_MODE}' ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
+ sed -i '/#sdtv_mode=/ c\sdtv_mode=${SDTV_MODE}' $CONFIG
fi
if [ -n "${SDTV_ASPECT}" ]; then
- sed -i '/#sdtv_aspect=/ c\sdtv_aspect=${SDTV_ASPECT}' ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
+ sed -i '/#sdtv_aspect=/ c\sdtv_aspect=${SDTV_ASPECT}' $CONFIG
fi
if [ -n "${DISPLAY_ROTATE}" ]; then
- sed -i '/#display_rotate=/ c\display_rotate=${DISPLAY_ROTATE}' ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
+ sed -i '/#display_rotate=/ c\display_rotate=${DISPLAY_ROTATE}' $CONFIG
fi
# Video camera support
if [ "${VIDEO_CAMERA}" = "1" ]; then
- echo "# Enable video camera" >>${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
- echo "start_x=1" >>${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
+ # TODO: It has been observed that Raspberry Pi 4B 4GB may fail to enable the camera if "start_x=1" is at the end
+ # of the file. The underlying cause is unknown, but it can be related with a file size limitation affecting
+ # this variable. Therefore, "start_x=1" has been set to replace the original occurrence in config.txt,
+ # which is at the middle of the file.
+ sed -i '/#start_x=/ c\start_x=1' $CONFIG
fi
# Offline compositing support
if [ "${DISPMANX_OFFLINE}" = "1" ]; then
- echo "# Enable offline compositing" >>${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
- echo "dispmanx_offline=1" >>${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
+ echo "# Enable offline compositing" >>$CONFIG
+ echo "dispmanx_offline=1" >>$CONFIG
fi
# SPI bus support
if [ "${ENABLE_SPI_BUS}" = "1" ] || [ "${PITFT}" = "1" ]; then
- echo "# Enable SPI bus" >>${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
- echo "dtparam=spi=on" >>${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
+ echo "# Enable SPI bus" >>$CONFIG
+ echo "dtparam=spi=on" >>$CONFIG
fi
# I2C support
if [ "${ENABLE_I2C}" = "1" ] || [ "${PITFT}" = "1" ]; then
- echo "# Enable I2C" >>${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
- echo "dtparam=i2c1=on" >>${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
- echo "dtparam=i2c_arm=on" >>${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
+ echo "# Enable I2C" >>$CONFIG
+ echo "dtparam=i2c1=on" >>$CONFIG
+ echo "dtparam=i2c_arm=on" >>$CONFIG
fi
# PiTFT22 display support
if [ "${PITFT22}" = "1" ]; then
- echo "# Enable PITFT22 display" >>${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
- echo "dtoverlay=pitft22,rotate=270,speed=32000000,txbuflen=32768" >>${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
+ echo "# Enable PITFT22 display" >>$CONFIG
+ echo "dtoverlay=pitft22,rotate=270,speed=32000000,txbuflen=32768" >>$CONFIG
fi
if [ "${PITFT28r}" = "1" ]; then
- echo "# Enable PITFT28r display" >>${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
- echo "dtoverlay=pitft28-resistive,rotate=90,speed=32000000,txbuflen=32768" >>${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
+ echo "# Enable PITFT28r display" >>$CONFIG
+ echo "dtoverlay=pitft28-resistive,rotate=90,speed=32000000,txbuflen=32768" >>$CONFIG
fi
if [ "${PITFT28c}" = "1" ]; then
- echo "# Enable PITFT28c display" >>${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
- echo "dtoverlay=pitft28-capacitive,rotate=90,speed=32000000,txbuflen=32768" >>${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
- echo "dtoverlay=pitft28-capacitive,touch-swapxy,touch-invx" >>${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
+ echo "# Enable PITFT28c display" >>$CONFIG
+ echo "dtoverlay=pitft28-capacitive,rotate=90,speed=32000000,txbuflen=32768" >>$CONFIG
+ echo "dtoverlay=pitft28-capacitive,touch-swapxy,touch-invx" >>$CONFIG
fi
if [ "${PITFT35r}" = "1" ]; then
- echo "# Enable PITFT35r display" >>${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
- echo "dtoverlay=pitft35-resistive,rotate=90,speed=42000000,fps=20" >>${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
+ echo "# Enable PITFT35r display" >>$CONFIG
+ echo "dtoverlay=pitft35-resistive,rotate=90,speed=42000000,fps=20" >>$CONFIG
fi
# UART support
if [ "${ENABLE_UART}" = "1" ]; then
- echo "# Enable UART" >>${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
- echo "enable_uart=1" >>${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
+ echo "# Enable UART" >>$CONFIG
+ echo "enable_uart=1" >>$CONFIG
fi
# Infrared support
if [ "${ENABLE_IR}" = "1" ]; then
- echo "# Enable infrared" >>${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
- echo "dtoverlay=gpio-ir,gpio_pin=${GPIO_IR}" >>${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
- echo "dtoverlay=gpio-ir-tx,gpio_pin=${GPIO_IR_TX}" >>${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
+ echo "# Enable infrared" >>$CONFIG
+ echo "dtoverlay=gpio-ir,gpio_pin=${GPIO_IR}" >>$CONFIG
+ echo "dtoverlay=gpio-ir-tx,gpio_pin=${GPIO_IR_TX}" >>$CONFIG
fi
# VC4 Graphics support
if [ "${VC4GRAPHICS}" = "1" ]; then
- echo "# Enable VC4 Graphics" >> ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
- echo "dtoverlay=${VC4DTBO}" >> ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
+ echo "# Enable VC4 Graphics" >> $CONFIG
+ echo "dtoverlay=${VC4DTBO}" >> $CONFIG
fi
# Choose Camera Sensor to be used, default imx219 sensor
if [ "${RASPBERRYPI_CAMERA_V2}" = "1" ]; then
- echo "# Enable Sony RaspberryPi Camera" >> ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
- echo "dtoverlay=imx219" >> ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
+ echo "# Enable Sony RaspberryPi Camera" >> $CONFIG
+ echo "dtoverlay=imx219" >> $CONFIG
fi
# Waveshare "C" 1024x600 7" Rev2.1 IPS capacitive touch (http://www.waveshare.com/7inch-HDMI-LCD-C.htm)
if [ "${WAVESHARE_1024X600_C_2_1}" = "1" ]; then
- echo "# Waveshare \"C\" 1024x600 7\" Rev2.1 IPS capacitive touch screen" >> ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
- echo "max_usb_current=1" >> ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
- echo "hdmi_group=2" >> ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
- echo "hdmi_mode=87" >> ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
- echo "hdmi_cvt 1024 600 60 6 0 0 0" >> ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
- echo "hdmi_drive=1" >> ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
+ echo "# Waveshare \"C\" 1024x600 7\" Rev2.1 IPS capacitive touch screen" >> $CONFIG
+ echo "max_usb_current=1" >> $CONFIG
+ echo "hdmi_group=2" >> $CONFIG
+ echo "hdmi_mode=87" >> $CONFIG
+ echo "hdmi_cvt 1024 600 60 6 0 0 0" >> $CONFIG
+ echo "hdmi_drive=1" >> $CONFIG
fi
# DWC2 USB peripheral support
if [ "${ENABLE_DWC2_PERIPHERAL}" = "1" ]; then
- echo "# Enable USB peripheral mode" >> ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
- echo "dtoverlay=dwc2,dr_mode=peripheral" >> ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
+ echo "# Enable USB peripheral mode" >> $CONFIG
+ echo "dtoverlay=dwc2,dr_mode=peripheral" >> $CONFIG
+ fi
+
+ # DWC2 USB host mode support
+ if [ "${ENABLE_DWC2_HOST}" = "1" ]; then
+ echo "# Enable USB host mode" >> $CONFIG
+ echo "dtoverlay=dwc2,dr_mode=host" >> $CONFIG
fi
# AT86RF23X support
if [ "${ENABLE_AT86RF}" = "1" ]; then
- echo "# Enable AT86RF23X" >>${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
- echo "dtoverlay=at86rf233,speed=3000000" >>${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
+ echo "# Enable AT86RF23X" >>$CONFIG
+ echo "dtoverlay=at86rf233,speed=3000000" >>$CONFIG
fi
# ENABLE DUAL CAN
if [ "${ENABLE_DUAL_CAN}" = "1" ]; then
- echo "# Enable DUAL CAN" >>${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
- echo "dtoverlay=mcp2515-can0,oscillator=${CAN_OSCILLATOR},interrupt=25" >>${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
- echo "dtoverlay=mcp2515-can1,oscillator=${CAN_OSCILLATOR},interrupt=24" >>${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
+ echo "# Enable DUAL CAN" >>$CONFIG
+ echo "dtoverlay=mcp2515-can0,oscillator=${CAN_OSCILLATOR},interrupt=25" >>$CONFIG
+ echo "dtoverlay=mcp2515-can1,oscillator=${CAN_OSCILLATOR},interrupt=24" >>$CONFIG
# ENABLE CAN
elif [ "${ENABLE_CAN}" = "1" ]; then
- echo "# Enable CAN" >>${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
- echo "dtoverlay=mcp2515-can0,oscillator=${CAN_OSCILLATOR},interrupt=25" >>${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
+ echo "# Enable CAN" >>$CONFIG
+ echo "dtoverlay=mcp2515-can0,oscillator=${CAN_OSCILLATOR},interrupt=25" >>$CONFIG
fi
# Append extra config if the user has provided any
- printf "${RPI_EXTRA_CONFIG}\n" >> ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
+ printf "${RPI_EXTRA_CONFIG}\n" >> $CONFIG
# Handle setup with armstub file
if [ "${@bb.utils.contains("MACHINE_FEATURES", "armstub", "1", "0", d)}" = "1" ]; then
- echo "\n# ARM stub configuration" >> ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
- echo "armstub=${ARMSTUB}" >> ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
+ echo "\n# ARM stub configuration" >> $CONFIG
+ echo "armstub=${ARMSTUB}" >> $CONFIG
case "${ARMSTUB}" in
*-gic.bin)
- echo "enable_gic=1" >> ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
+ echo "enable_gic=1" >> $CONFIG
;;
esac
fi
}
do_deploy_append_raspberrypi3-64() {
- echo "# have a properly sized image" >> ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
- echo "disable_overscan=1" >> ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
+ echo "# have a properly sized image" >> $CONFIG
+ echo "disable_overscan=1" >> $CONFIG
- echo "# Enable audio (loads snd_bcm2835)" >> ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
- echo "dtparam=audio=on" >> ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
+ echo "# Enable audio (loads snd_bcm2835)" >> $CONFIG
+ echo "dtparam=audio=on" >> $CONFIG
}
addtask deploy before do_build after do_install
diff --git a/meta-raspberrypi/recipes-bsp/common/raspberrypi-firmware.inc b/meta-raspberrypi/recipes-bsp/common/raspberrypi-firmware.inc
index 649c7ea97..591c6157f 100644
--- a/meta-raspberrypi/recipes-bsp/common/raspberrypi-firmware.inc
+++ b/meta-raspberrypi/recipes-bsp/common/raspberrypi-firmware.inc
@@ -1,9 +1,9 @@
-RPIFW_DATE ?= "20201123"
-SRCREV ?= "8f13114b9ea29bd004151d4a8afa500b2df721be"
+RPIFW_DATE ?= "20210205"
+SRCREV ?= "7d91570f20378afc9414107dccdad70705a8a342"
RPIFW_SRC_URI ?= "https://github.com/raspberrypi/firmware/archive/${SRCREV}.tar.gz;downloadfilename=raspberrypi-firmware-${SRCREV}.tar.gz"
RPIFW_S ?= "${WORKDIR}/firmware-${SRCREV}"
SRC_URI = "${RPIFW_SRC_URI}"
-SRC_URI[sha256sum] = "f9be0cc177aae7dddaa0a2967d090ea33a95be9dd519d2eee3bc740af8ffb19e"
+SRC_URI[sha256sum] = "2cc9bf2cbcab8283db2eb53ed2a49372b70fe76538994c32f6d261e2da3e9ff4"
PV = "${RPIFW_DATE}"
diff --git a/meta-raspberrypi/recipes-devtools/python/python3-adafruit-blinka_6.2.2.bb b/meta-raspberrypi/recipes-devtools/python/python3-adafruit-blinka_6.2.2.bb
new file mode 100644
index 000000000..7d3120f76
--- /dev/null
+++ b/meta-raspberrypi/recipes-devtools/python/python3-adafruit-blinka_6.2.2.bb
@@ -0,0 +1,30 @@
+SUMMARY = "CircuitPython APIs for non-CircuitPython versions of Python such as CPython on Linux and MicroPython."
+HOMEPAGE = "https://github.com/adafruit/Adafruit_Blinka"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=660e614bc7efb0697cc793d8a22a55c2"
+
+SRC_URI = "git://github.com/adafruit/Adafruit_Blinka.git"
+SRCREV = "dc688f354fe779c9267c208b99f310af87e79272"
+
+S = "${WORKDIR}/git"
+
+inherit setuptools3
+
+DEPENDS += "python3-setuptools-scm-native"
+
+do_install_append() {
+# it ships ./bcm283x/pulseio/libgpiod_pulsein which is a prebuilt
+# 32bit binary therefore we should make this specific to 32bit rpi machines (based on bcm283x) only
+ if [ ${@bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', '1', '0', d)} = "0" ]; then
+ rm -rf ${D}${PYTHON_SITEPACKAGES_DIR}/adafruit_blinka/microcontroller/bcm283x
+ fi
+}
+
+RDEPENDS_${PN} += " \
+ libgpiod \
+ python3-adafruit-platformdetect \
+ python3-adafruit-pureio \
+ python3-core \
+"
+
+RDEPENDS_${PN}_append_rpi = " rpi-gpio"
diff --git a/meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-busdevice_5.0.5.bb b/meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-busdevice_5.0.5.bb
new file mode 100644
index 000000000..c14d6f3d6
--- /dev/null
+++ b/meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-busdevice_5.0.5.bb
@@ -0,0 +1,18 @@
+SUMMARY = "CircuitPython bus device classes to manage bus sharing."
+HOMEPAGE = "https://github.com/adafruit/Adafruit_CircuitPython_BusDevice"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=6ec69d6e9e6c85adfb7799d7f8cf044e"
+
+SRC_URI = "git://github.com/adafruit/Adafruit_CircuitPython_BusDevice.git"
+SRCREV = "1bfe8005293205e2f7b2cc498ab5a946f1133b40"
+
+S = "${WORKDIR}/git"
+
+inherit setuptools3
+
+DEPENDS += "python3-setuptools-scm-native"
+
+RDEPENDS_${PN} += " \
+ python3-adafruit-blinka \
+ python3-core \
+"
diff --git a/meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-motor_3.2.6.bb b/meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-motor_3.2.6.bb
new file mode 100644
index 000000000..e05e2ab5e
--- /dev/null
+++ b/meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-motor_3.2.6.bb
@@ -0,0 +1,18 @@
+SUMMARY = "CircuitPython helper library provides higher level objects to control motors and servos."
+HOMEPAGE = "https://github.com/adafruit/Adafruit_CircuitPython_Motor"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b72678307cc7c10910b5ef460216af07"
+
+SRC_URI = "git://github.com/adafruit/Adafruit_CircuitPython_Motor.git"
+SRCREV = "2251bfc0501d0acfb96c0a43f4f2b4c6a10ca14e"
+
+S = "${WORKDIR}/git"
+
+inherit setuptools3
+
+DEPENDS += "python3-setuptools-scm-native"
+
+RDEPENDS_${PN} += " \
+ python3-adafruit-blinka \
+ python3-core \
+"
diff --git a/meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-motorkit_1.6.1.bb b/meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-motorkit_1.6.1.bb
new file mode 100644
index 000000000..f35d48cf2
--- /dev/null
+++ b/meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-motorkit_1.6.1.bb
@@ -0,0 +1,22 @@
+SUMMARY = "CircuitPython helper library for DC & Stepper Motor FeatherWing, Shield, and Pi Hat kits."
+HOMEPAGE = "https://github.com/adafruit/Adafruit_CircuitPython_MotorKit"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=6ad4a8854b39ad474755ef1aea813bac"
+
+SRC_URI = "git://github.com/adafruit/Adafruit_CircuitPython_MotorKit.git"
+SRCREV = "8c1462b4129b21f6db156d1517abb017bb74b982"
+
+S = "${WORKDIR}/git"
+
+inherit setuptools3
+
+DEPENDS += "python3-setuptools-scm-native"
+
+RDEPENDS_${PN} += " \
+ python3-adafruit-blinka \
+ python3-adafruit-circuitpython-busdevice \
+ python3-adafruit-circuitpython-motor \
+ python3-adafruit-circuitpython-pca9685 \
+ python3-adafruit-circuitpython-register \
+ python3-core \
+"
diff --git a/meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-pca9685_3.3.4.bb b/meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-pca9685_3.3.4.bb
new file mode 100644
index 000000000..0b65c81ea
--- /dev/null
+++ b/meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-pca9685_3.3.4.bb
@@ -0,0 +1,20 @@
+SUMMARY = "CircuitPython driver for motor, stepper, and servo based on PCA9685."
+HOMEPAGE = "https://github.com/adafruit/Adafruit_CircuitPython_PCA9685"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e7eb6b599fb0cfb06485c64cd4242f62"
+
+SRC_URI = "git://github.com/adafruit/Adafruit_CircuitPython_PCA9685.git"
+SRCREV = "2780c4102f4c23fbab252aa1198b61ba7e2d1b2c"
+
+S = "${WORKDIR}/git"
+
+inherit setuptools3
+
+DEPENDS += "python3-setuptools-scm-native"
+
+RDEPENDS_${PN} += " \
+ python3-adafruit-blinka \
+ python3-adafruit-circuitpython-busdevice \
+ python3-adafruit-circuitpython-register \
+ python3-core \
+"
diff --git a/meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-register_1.9.4.bb b/meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-register_1.9.4.bb
new file mode 100644
index 000000000..f1af80bea
--- /dev/null
+++ b/meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-register_1.9.4.bb
@@ -0,0 +1,15 @@
+SUMMARY = "CircuitPython data descriptor classes to represent hardware registers on I2C and SPI devices."
+HOMEPAGE = "https://github.com/adafruit/Adafruit_CircuitPython_Register"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=6ec69d6e9e6c85adfb7799d7f8cf044e"
+
+SRC_URI = "git://github.com/adafruit/Adafruit_CircuitPython_Register.git"
+
+S = "${WORKDIR}/git"
+SRCREV = "5fee6e0c3878110844bc51e16063eeae7d94c457"
+
+DEPENDS += "python3-setuptools-scm-native"
+
+inherit setuptools3
+
+RDEPENDS_${PN} += "python3-core"
diff --git a/meta-raspberrypi/recipes-devtools/python/python3-adafruit-platformdetect_3.1.1.bb b/meta-raspberrypi/recipes-devtools/python/python3-adafruit-platformdetect_3.1.1.bb
new file mode 100644
index 000000000..4454d247d
--- /dev/null
+++ b/meta-raspberrypi/recipes-devtools/python/python3-adafruit-platformdetect_3.1.1.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Platform detection for use by libraries like Adafruit-Blinka."
+HOMEPAGE = "https://github.com/adafruit/Adafruit_Python_PlatformDetect"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=fccd531dce4b989c05173925f0bbb76c"
+
+SRC_URI = "git://github.com/adafruit/Adafruit_Python_PlatformDetect.git"
+SRCREV = "e0fe1b012898fa824944d6805ca74be0fa027968"
+
+S = "${WORKDIR}/git"
+
+inherit setuptools3
+
+DEPENDS += "python3-setuptools-scm-native"
+
+RDEPENDS_${PN} += "python3-core"
diff --git a/meta-raspberrypi/recipes-devtools/python/python3-adafruit-pureio_1.1.8.bb b/meta-raspberrypi/recipes-devtools/python/python3-adafruit-pureio_1.1.8.bb
new file mode 100644
index 000000000..82415f954
--- /dev/null
+++ b/meta-raspberrypi/recipes-devtools/python/python3-adafruit-pureio_1.1.8.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Pure python (i.e. no native extensions) access to Linux IO including I2C and SPI. Drop in replacement for smbus and spidev modules."
+HOMEPAGE = "https://github.com/adafruit/Adafruit_Python_PureIO"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=2a21fcca821a506d4c36f7bbecc0d009"
+
+SRC_URI = "git://github.com/adafruit/Adafruit_Python_PureIO.git"
+SRCREV = "f4d0973da05b8b21905ff6bab69cdb652128f342"
+
+S = "${WORKDIR}/git"
+
+inherit setuptools3
+
+DEPENDS += "python3-setuptools-scm-native"
+
+RDEPENDS_${PN} += " \
+ python3-core \
+ python3-ctypes \
+ python3-fcntl \
+"
diff --git a/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-dev.bb b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-dev.bb
index 9b2b6f322..ff8ce7993 100644
--- a/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-dev.bb
+++ b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-dev.bb
@@ -22,9 +22,7 @@ SRC_URI = " \
require linux-raspberrypi.inc
-LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
-
-KERNEL_EXTRA_ARGS += "DTC_FLAGS='-@ -H epapr'"
+KERNEL_DTC_FLAGS += "-@ -H epapr"
# Disable version check so that we don't have to edit this recipe every time
# upstream bumps the version
diff --git a/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi.inc b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi.inc
index db1dbdb85..5ad9b781b 100644
--- a/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi.inc
+++ b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi.inc
@@ -1,14 +1,14 @@
DESCRIPTION = "Linux Kernel for Raspberry Pi"
SECTION = "kernel"
LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
+LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
COMPATIBLE_MACHINE = "^rpi$"
PE = "1"
PV = "${LINUX_VERSION}+git${SRCPV}"
-inherit kernel siteinfo
+inherit siteinfo
require recipes-kernel/linux/linux-yocto.inc
SRC_URI += " \
diff --git a/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_5.10.bb b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_5.10.bb
new file mode 100644
index 000000000..6af434e07
--- /dev/null
+++ b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_5.10.bb
@@ -0,0 +1,18 @@
+LINUX_VERSION ?= "5.10.13"
+LINUX_RPI_BRANCH ?= "rpi-5.10.y"
+
+SRCREV_machine = "34263dc81a12862c66e2593bb26c09d5fd20f46d"
+SRCREV_meta = "5833ca701711d487c9094bd1efc671e8ef7d001e"
+
+KMETA = "kernel-meta"
+
+SRC_URI = " \
+ git://github.com/raspberrypi/linux.git;name=machine;branch=${LINUX_RPI_BRANCH} \
+ git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.10;destsuffix=${KMETA} \
+ file://powersave.cfg \
+ file://android-drivers.cfg \
+ "
+
+require linux-raspberrypi.inc
+
+KERNEL_DTC_FLAGS += "-@ -H epapr"
diff --git a/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_5.4.bb b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_5.4.bb
index 1d04c2fa7..ba97ed56e 100644
--- a/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_5.4.bb
+++ b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_5.4.bb
@@ -1,8 +1,8 @@
-LINUX_VERSION ?= "5.4.79"
+LINUX_VERSION ?= "5.4.83"
LINUX_RPI_BRANCH ?= "rpi-5.4.y"
-SRCREV_machine = "9797f1a4938c20139b00a25de93cc99efb5c291b"
-SRCREV_meta = "5d52d9eea95fa09d404053360c2351b2b91b323b"
+SRCREV_machine = "08ae2dd9e7dc89c20bff823a3ef045de09bfd090"
+SRCREV_meta = "d676bf5ff7b7071e14f44498d2482c0a596f14cd"
KMETA = "kernel-meta"
@@ -19,4 +19,4 @@ require linux-raspberrypi.inc
LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
-KERNEL_EXTRA_ARGS += "DTC_FLAGS='-@ -H epapr'"
+KERNEL_DTC_FLAGS += "-@ -H epapr"
diff --git a/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.18/0001-config-files-path.patch b/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.18/0001-config-files-path.patch
deleted file mode 100644
index 6903c1770..000000000
--- a/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.18/0001-config-files-path.patch
+++ /dev/null
@@ -1,150 +0,0 @@
-From 0dc88ed881eb8420dad4cf0934a900d85b6ef313 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 11 Feb 2016 12:53:20 -0800
-
----
- config/bellagio/gstomx.conf | 8 ++++----
- config/rpi/gstomx.conf | 22 +++++++++++-----------
- 2 files changed, 15 insertions(+), 15 deletions(-)
-
-diff --git a/config/bellagio/gstomx.conf b/config/bellagio/gstomx.conf
-index 5ca8ba6..8931255 100644
---- a/config/bellagio/gstomx.conf
-+++ b/config/bellagio/gstomx.conf
-@@ -1,6 +1,6 @@
- [omxmpeg4videodec]
- type-name=GstOMXMPEG4VideoDec
--core-name=/usr/local/lib/libomxil-bellagio.so.0
-+core-name=/usr/lib/libomxil-bellagio.so.0
- component-name=OMX.st.video_decoder.mpeg4
- rank=257
- in-port-index=0
-@@ -9,7 +9,7 @@ hacks=event-port-settings-changed-ndata-parameter-swap;event-port-settings-chang
-
- [omxh264dec]
- type-name=GstOMXH264Dec
--core-name=/usr/local/lib/libomxil-bellagio.so.0
-+core-name=/usr/lib/libomxil-bellagio.so.0
- component-name=OMX.st.video_decoder.avc
- rank=257
- in-port-index=0
-@@ -18,7 +18,7 @@ hacks=event-port-settings-changed-ndata-parameter-swap;event-port-settings-chang
-
- [omxmpeg4videoenc]
- type-name=GstOMXMPEG4VideoEnc
--core-name=/usr/local/lib/libomxil-bellagio.so.0
-+core-name=/usr/lib/libomxil-bellagio.so.0
- component-name=OMX.st.video_encoder.mpeg4
- rank=0
- in-port-index=0
-@@ -27,7 +27,7 @@ hacks=event-port-settings-changed-ndata-parameter-swap;video-framerate-integer;s
-
- [omxaacenc]
- type-name=GstOMXAACEnc
--core-name=/usr/local/lib/libomxil-bellagio.so.0
-+core-name=/usr/lib/libomxil-bellagio.so.0
- component-name=OMX.st.audio_encoder.aac
- rank=0
- in-port-index=0
-diff --git a/config/rpi/gstomx.conf b/config/rpi/gstomx.conf
-index d3ea56a..2508dae 100644
---- a/config/rpi/gstomx.conf
-+++ b/config/rpi/gstomx.conf
-@@ -1,6 +1,6 @@
- [omxmpeg2videodec]
- type-name=GstOMXMPEG2VideoDec
--core-name=/opt/vc/lib/libopenmaxil.so
-+core-name=/usr/lib/libopenmaxil.so
- component-name=OMX.broadcom.video_decode
- rank=257
- in-port-index=130
-@@ -9,7 +9,7 @@ hacks=no-component-role
-
- [omxmpeg4videodec]
- type-name=GstOMXMPEG4VideoDec
--core-name=/opt/vc/lib/libopenmaxil.so
-+core-name=/usr/lib/libopenmaxil.so
- component-name=OMX.broadcom.video_decode
- rank=257
- in-port-index=130
-@@ -18,7 +18,7 @@ hacks=no-component-role
-
- [omxh263dec]
- type-name=GstOMXH263Dec
--core-name=/opt/vc/lib/libopenmaxil.so
-+core-name=/usr/lib/libopenmaxil.so
- component-name=OMX.broadcom.video_decode
- rank=257
- in-port-index=130
-@@ -27,7 +27,7 @@ hacks=no-component-role
-
- [omxh264dec]
- type-name=GstOMXH264Dec
--core-name=/opt/vc/lib/libopenmaxil.so
-+core-name=/usr/lib/libopenmaxil.so
- component-name=OMX.broadcom.video_decode
- rank=257
- in-port-index=130
-@@ -36,7 +36,7 @@ hacks=no-component-role;signals-premature-eos
-
- [omxtheoradec]
- type-name=GstOMXTheoraDec
--core-name=/opt/vc/lib/libopenmaxil.so
-+core-name=/usr/lib/libopenmaxil.so
- component-name=OMX.broadcom.video_decode
- rank=257
- in-port-index=130
-@@ -45,7 +45,7 @@ hacks=no-component-role
-
- [omxvp8dec]
- type-name=GstOMXVP8Dec
--core-name=/opt/vc/lib/libopenmaxil.so
-+core-name=/usr/lib/libopenmaxil.so
- component-name=OMX.broadcom.video_decode
- rank=257
- in-port-index=130
-@@ -54,7 +54,7 @@ hacks=no-component-role
-
- [omxmjpegdec]
- type-name=GstOMXMJPEGDec
--core-name=/opt/vc/lib/libopenmaxil.so
-+core-name=/usr/lib/libopenmaxil.so
- component-name=OMX.broadcom.video_decode
- rank=257
- in-port-index=130
-@@ -63,7 +63,7 @@ hacks=no-component-role
-
- [omxvc1dec]
- type-name=GstOMXWMVDec
--core-name=/opt/vc/lib/libopenmaxil.so
-+core-name=/usr/lib/libopenmaxil.so
- component-name=OMX.broadcom.video_decode
- rank=257
- in-port-index=130
-@@ -73,7 +73,7 @@ sink-template-caps=video/x-wmv,wmvversion=(int)3,format=(string){WMV3,WVC1},widt
-
- [omxh264enc]
- type-name=GstOMXH264Enc
--core-name=/opt/vc/lib/libopenmaxil.so
-+core-name=/usr/lib/libopenmaxil.so
- component-name=OMX.broadcom.video_encode
- rank=257
- in-port-index=200
-@@ -82,7 +82,7 @@ hacks=no-component-role;no-component-reconfigure
-
- [omxanalogaudiosink]
- type-name=GstOMXAnalogAudioSink
--core-name=/opt/vc/lib/libopenmaxil.so
-+core-name=/usr/lib/libopenmaxil.so
- component-name=OMX.broadcom.audio_render
- rank=257
- in-port-index=100
-@@ -92,7 +92,7 @@ sink-template-caps=audio/x-raw,format=(string){S16LE,S32LE},layout=(string)inter
-
- [omxhdmiaudiosink]
- type-name=GstOMXHdmiAudioSink
--core-name=/opt/vc/lib/libopenmaxil.so
-+core-name=/usr/lib/libopenmaxil.so
- component-name=OMX.broadcom.audio_render
- rank=258
- in-port-index=100
diff --git a/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.18/0001-Don-t-try-to-acquire-buffer-when-src-pad-isn-t-activ.patch b/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx/0001-Don-t-try-to-acquire-buffer-when-src-pad-isn-t-activ.patch
index c8af7da0e..c8af7da0e 100644
--- a/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.18/0001-Don-t-try-to-acquire-buffer-when-src-pad-isn-t-activ.patch
+++ b/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx/0001-Don-t-try-to-acquire-buffer-when-src-pad-isn-t-activ.patch
diff --git a/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.18/0003-no-timeout-on-get-state.patch b/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx/0003-no-timeout-on-get-state.patch
index 434232661..434232661 100644
--- a/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.18/0003-no-timeout-on-get-state.patch
+++ b/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx/0003-no-timeout-on-get-state.patch
diff --git a/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.18/0004-Properly-handle-drain-requests-while-flushing.patch b/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx/0004-Properly-handle-drain-requests-while-flushing.patch
index 144ced6ab..144ced6ab 100644
--- a/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.18/0004-Properly-handle-drain-requests-while-flushing.patch
+++ b/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx/0004-Properly-handle-drain-requests-while-flushing.patch
diff --git a/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.18/0005-Don-t-abort-gst_omx_video_dec_set_format-if-there-s-.patch b/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx/0005-Don-t-abort-gst_omx_video_dec_set_format-if-there-s-.patch
index 3245294ea..3245294ea 100644
--- a/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.18/0005-Don-t-abort-gst_omx_video_dec_set_format-if-there-s-.patch
+++ b/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx/0005-Don-t-abort-gst_omx_video_dec_set_format-if-there-s-.patch
diff --git a/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx_%.bbappend b/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx_%.bbappend
index a7aa8d9c3..a971236f2 100644
--- a/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx_%.bbappend
+++ b/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx_%.bbappend
@@ -1,8 +1,12 @@
+FILESEXTRAPATHS_prepend_rpi := "${THISDIR}/${PN}:"
+
+SRC_URI_append_rpi = " \
+ file://0001-Don-t-try-to-acquire-buffer-when-src-pad-isn-t-activ.patch \
+ file://0003-no-timeout-on-get-state.patch \
+ file://0004-Properly-handle-drain-requests-while-flushing.patch \
+ file://0005-Don-t-abort-gst_omx_video_dec_set_format-if-there-s-.patch \
+"
+
GSTREAMER_1_0_OMX_TARGET_rpi = "rpi"
GSTREAMER_1_0_OMX_CORE_NAME_rpi = "${libdir}/libopenmaxil.so"
-EXTRA_OEMESON_append_rpi = " -Dheader_path=${STAGING_DIR_TARGET}/usr/include"
-CFLAGS_append_rpi = " \
- -I${STAGING_DIR_TARGET}/usr/include/IL \
- -I${STAGING_DIR_TARGET}/usr/include/interface/vcos/pthreads \
- -I${STAGING_DIR_TARGET}/usr/include/interface/vmcs_host/linux \
-"
+EXTRA_OEMESON_append_rpi = " -Dheader_path=${STAGING_DIR_TARGET}/usr/include/IL"
diff --git a/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.18%.bbappend b/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.18%.bbappend
deleted file mode 100644
index 56606553c..000000000
--- a/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.18%.bbappend
+++ /dev/null
@@ -1,12 +0,0 @@
-#
-# Need to make this conditional to gstreamer1
-#
-SRC_URI_append_rpi = " \
- file://0001-config-files-path.patch \
- file://0001-Don-t-try-to-acquire-buffer-when-src-pad-isn-t-activ.patch \
- file://0003-no-timeout-on-get-state.patch \
- file://0004-Properly-handle-drain-requests-while-flushing.patch \
- file://0005-Don-t-abort-gst_omx_video_dec_set_format-if-there-s-.patch \
-"
-
-FILESEXTRAPATHS_prepend_rpi := "${THISDIR}/gstreamer1.0-omx-1.18:"