meta-raspberrypi: subtree update:a7cc636d4e..f5fe02c30c

Aaron Shaw (5):
      overlays: reorder in alphabetical order
      overlays: add justboom overlays
      overlays: add overlay to allow 64 bit usage with CM3
      overlays: add overlays for pi 400 and cm4
      overlays: add missing device overlays

Aurelian Zanoschi (2):
      rpi-config: Add support for CM4 host USB
      [documentation]Add USB host support in documentation

Bartłomiej Burdukiewicz (1):
      rpi-cmdline: remove unnecessary spaces from cmdline.txt

Christopher Clark (1):
      machine: use weak default for kernel and KERNEL_DEVICETREE settings

Jonas Vautherin (1):
      linux-raspberrypi: Superfluous 'inherit kernel'

Martin Jansa (6):
      rpi-config: fix do_deploy
      rpi-config: use CONFIG shell variable
      linux-raspberrypi: add recipe for 5.10 version
      linux-raspberrypi: update LIC_FILES_CHKSUM in .inc file and drop from 5.10 and dev recipe
      rpi-default-versions: Switch default kernel to 5.10
      raspberrypi-firmware.inc: upgrade to latest for 5.10.13 kernel

Matt Spencer (1):
      linux-raspberrypi: Enable use of 'RPI_EXTRA_CONFIG += ...' in local.conf

Ovidiu Panait (1):
      linux-raspberrypi: pass dtc flags via KERNEL_DTC_FLAGS

Paul Barker (5):
      conf: Use unified u-boot config for 64-bit targets
      raspberrypi4-64: No need to force arm_64bit=1
      linux-raspberrypi: Uprev to v5.4.83
      linux-raspberrypi: Uprev yocto-kernel-cache
      kas-poky-rpi.yml: Make git ignore layers cloned by kas

SCVready (1):
      rpi-config: Relocated "start_x=1" in config.txt

Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
Change-Id: Ie1a8cd049694b5f3158b63cedc30c9df24f82120
diff --git a/meta-raspberrypi/.gitignore b/meta-raspberrypi/.gitignore
index 706144a..073cf06 100644
--- a/meta-raspberrypi/.gitignore
+++ b/meta-raspberrypi/.gitignore
@@ -5,3 +5,4 @@
 *.rej
 *.log
 docs/_build
+/layers
diff --git a/meta-raspberrypi/conf/machine/include/rpi-base.inc b/meta-raspberrypi/conf/machine/include/rpi-base.inc
index 18368c6..ac945f6 100644
--- a/meta-raspberrypi/conf/machine/include/rpi-base.inc
+++ b/meta-raspberrypi/conf/machine/include/rpi-base.inc
@@ -18,46 +18,54 @@
     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/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 181b936..c02d248 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 e57c702..17d5bd6 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 65e3302..5394132 100644
--- a/meta-raspberrypi/conf/machine/raspberrypi3-64.conf
+++ b/meta-raspberrypi/conf/machine/raspberrypi3-64.conf
@@ -18,11 +18,12 @@
     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 633d188..12c8954 100644
--- a/meta-raspberrypi/conf/machine/raspberrypi4-64.conf
+++ b/meta-raspberrypi/conf/machine/raspberrypi4-64.conf
@@ -15,12 +15,14 @@
 
 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_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 921dcc5..1caf904 100644
--- a/meta-raspberrypi/docs/extra-build-config.md
+++ b/meta-raspberrypi/docs/extra-build-config.md
@@ -269,6 +269,15 @@
 
     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 2d80a57..d629e81 100644
--- a/meta-raspberrypi/kas-poky-rpi.yml
+++ b/meta-raspberrypi/kas-poky-rpi.yml
@@ -11,6 +11,7 @@
 
   poky:
     url: https://git.yoctoproject.org/git/poky
+    path: layers/poky
     refspec: master
     layers:
       meta:
@@ -19,6 +20,7 @@
 
   meta-openembedded:
     url: http://git.openembedded.org/meta-openembedded
+    path: layers/meta-openembedded
     refspec: master
     layers:
       meta-oe:
@@ -28,6 +30,7 @@
 
   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 97db4e3..40a9949 100644
--- a/meta-raspberrypi/recipes-bsp/bootfiles/rpi-cmdline.bb
+++ b/meta-raspberrypi/recipes-bsp/bootfiles/rpi-cmdline.bb
@@ -37,7 +37,7 @@
     "
 
 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 e1c330d..de43c4b 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 @@
 
 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 649c7ea..591c615 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-kernel/linux/linux-raspberrypi-dev.bb b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-dev.bb
index 9b2b6f3..ff8ce79 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 @@
 
 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 db1dbdb..5ad9b78 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 0000000..6af434e
--- /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 1d04c2f..ba97ed5 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 @@
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
 
-KERNEL_EXTRA_ARGS += "DTC_FLAGS='-@ -H epapr'"
+KERNEL_DTC_FLAGS += "-@ -H epapr"