diff --git a/6.1/target/linux/mediatek/image/filogic.mk b/6.1/target/linux/mediatek/image/filogic.mk index c65ca2c8..4d868165 100644 --- a/6.1/target/linux/mediatek/image/filogic.mk +++ b/6.1/target/linux/mediatek/image/filogic.mk @@ -239,21 +239,6 @@ define Device/glinet_gl-mt3000 endef TARGET_DEVICES += glinet_gl-mt3000 -define Device/glinet_gl-mt6000 - DEVICE_VENDOR := GL.iNet - DEVICE_MODEL := GL-MT6000 - DEVICE_DTS := mt7986a-glinet-gl-mt6000 - DEVICE_DTS_DIR := ../dts - DEVICE_PACKAGES := e2fsprogs f2fsck mkf2fs kmod-usb3 kmod-mt7986-firmware mt7986-wo-firmware - IMAGES += factory.bin - IMAGE/factory.bin := append-kernel | pad-to 32M | append-rootfs - IMAGE/sysupgrade.bin := sysupgrade-tar | append-gl-metadata - ARTIFACTS := preloader.bin bl31-uboot.fip - ARTIFACT/preloader.bin := mt7986-bl2 emmc-ddr4 - ARTIFACT/bl31-uboot.fip := mt7986-bl31-uboot glinet_gl-mt6000 -endef -TARGET_DEVICES += glinet_gl-mt6000 - define Device/h3c_magic-nx30-pro DEVICE_VENDOR := H3C DEVICE_MODEL := Magic NX30 Pro diff --git a/6.12/include/kernel-6.12 b/6.12/include/kernel-6.12 deleted file mode 100644 index 69af3e25..00000000 --- a/6.12/include/kernel-6.12 +++ /dev/null @@ -1,2 +0,0 @@ -LINUX_VERSION-6.12 = .14 -LINUX_KERNEL_HASH-6.12.14 = 9423f4bfb4d875417e39cb0b017b5499fea47da56119f0cd28a201735d898f14 \ No newline at end of file diff --git a/6.12/include/kernel-defaults.mk b/6.12/include/kernel-defaults.mk deleted file mode 100644 index 1cc23270..00000000 --- a/6.12/include/kernel-defaults.mk +++ /dev/null @@ -1,195 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only -# -# Copyright (C) 2006-2020 OpenWrt.org - -ifdef CONFIG_STRIP_KERNEL_EXPORTS - KERNEL_MAKEOPTS_IMAGE += \ - EXTRA_LDSFLAGS="-I$(KERNEL_BUILD_DIR) -include symtab.h" -endif - -INITRAMFS_EXTRA_FILES ?= $(GENERIC_PLATFORM_DIR)/image/initramfs-base-files.txt - -export HOST_EXTRACFLAGS=-I$(STAGING_DIR_HOST)/include - -# defined in quilt.mk -Kernel/Patch:=$(Kernel/Patch/Default) - -ifneq (,$(findstring .xz,$(LINUX_SOURCE))) - LINUX_CAT:=xzcat -else - LINUX_CAT:=$(STAGING_DIR_HOST)/bin/libdeflate-gzip -dc -endif - -ifeq ($(strip $(CONFIG_EXTERNAL_KERNEL_TREE)),"") - ifeq ($(strip $(CONFIG_KERNEL_GIT_CLONE_URI)),"") - define Kernel/Prepare/Default - $(LINUX_CAT) $(DL_DIR)/$(LINUX_SOURCE) | $(TAR) -C $(KERNEL_BUILD_DIR) $(TAR_OPTIONS) - $(Kernel/Patch) - $(if $(QUILT),touch $(LINUX_DIR)/.quilt_used) - endef - else - define Kernel/Prepare/Default - $(LINUX_CAT) $(DL_DIR)/$(LINUX_SOURCE) | $(TAR) -C $(KERNEL_BUILD_DIR) $(TAR_OPTIONS) - $(Kernel/Patch) - $(if $(QUILT),touch $(LINUX_DIR)/.quilt_used) - endef - endif -else - define Kernel/Prepare/Default - mkdir -p $(KERNEL_BUILD_DIR) - if [ -d $(LINUX_DIR) ]; then \ - rmdir $(LINUX_DIR); \ - fi - ln -s $(CONFIG_EXTERNAL_KERNEL_TREE) $(LINUX_DIR) - if [ -d $(LINUX_DIR)/user_headers ]; then \ - rm -rf $(LINUX_DIR)/user_headers; \ - fi - endef -endif - -ifeq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),y) - ifeq ($(CONFIG_TARGET_ROOTFS_INITRAMFS_SEPARATE),y) - define Kernel/SetInitramfs/PreConfigure - grep -v -e CONFIG_BLK_DEV_INITRD $(LINUX_DIR)/.config.old > $(LINUX_DIR)/.config - echo 'CONFIG_BLK_DEV_INITRD=y' >> $(LINUX_DIR)/.config - echo 'CONFIG_INITRAMFS_SOURCE=""' >> $(LINUX_DIR)/.config - endef - else - ifeq ($(strip $(CONFIG_EXTERNAL_CPIO)),"") - define Kernel/SetInitramfs/PreConfigure - grep -v -e INITRAMFS -e CONFIG_RD_ -e CONFIG_BLK_DEV_INITRD $(LINUX_DIR)/.config.old > $(LINUX_DIR)/.config - echo 'CONFIG_BLK_DEV_INITRD=y' >> $(LINUX_DIR)/.config - echo 'CONFIG_INITRAMFS_SOURCE="$(strip $(TARGET_DIR) $(INITRAMFS_EXTRA_FILES))"' >> $(LINUX_DIR)/.config - endef - else - define Kernel/SetInitramfs/PreConfigure - grep -v INITRAMFS $(LINUX_DIR)/.config.old > $(LINUX_DIR)/.config - echo 'CONFIG_INITRAMFS_SOURCE="$(call qstrip,$(CONFIG_EXTERNAL_CPIO))"' >> $(LINUX_DIR)/.config - endef - endif -endif - - define Kernel/SetInitramfs - rm -f $(LINUX_DIR)/.config.prev - mv $(LINUX_DIR)/.config $(LINUX_DIR)/.config.old - $(call Kernel/SetInitramfs/PreConfigure) - echo "# CONFIG_INITRAMFS_PRESERVE_MTIME is not set" >> $(LINUX_DIR)/.config - ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS_SEPARATE),y) - echo 'CONFIG_INITRAMFS_ROOT_UID=$(shell id -u)' >> $(LINUX_DIR)/.config - echo 'CONFIG_INITRAMFS_ROOT_GID=$(shell id -g)' >> $(LINUX_DIR)/.config - echo "$(if $(CONFIG_TARGET_INITRAMFS_FORCE),CONFIG_INITRAMFS_FORCE=y,# CONFIG_INITRAMFS_FORCE is not set)" >> $(LINUX_DIR)/.config - else - echo "# CONFIG_INITRAMFS_FORCE is not set" >> $(LINUX_DIR)/.config - endif - echo "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_NONE),CONFIG_INITRAMFS_COMPRESSION_NONE=y,# CONFIG_INITRAMFS_COMPRESSION_NONE is not set)" >> $(LINUX_DIR)/.config - echo -e "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_GZIP),CONFIG_INITRAMFS_COMPRESSION_GZIP=y\nCONFIG_RD_GZIP=y,# CONFIG_INITRAMFS_COMPRESSION_GZIP is not set\n# CONFIG_RD_GZIP is not set)" >> $(LINUX_DIR)/.config - echo -e "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_BZIP2),CONFIG_INITRAMFS_COMPRESSION_BZIP2=y\nCONFIG_RD_BZIP2=y,# CONFIG_INITRAMFS_COMPRESSION_BZIP2 is not set\n# CONFIG_RD_BZIP2 is not set)" >> $(LINUX_DIR)/.config - echo -e "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_LZMA),CONFIG_INITRAMFS_COMPRESSION_LZMA=y\nCONFIG_RD_LZMA=y,# CONFIG_INITRAMFS_COMPRESSION_LZMA is not set\n# CONFIG_RD_LZMA is not set)" >> $(LINUX_DIR)/.config - echo -e "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_LZO),CONFIG_INITRAMFS_COMPRESSION_LZO=y\nCONFIG_RD_LZO=y,# CONFIG_INITRAMFS_COMPRESSION_LZO is not set\n# CONFIG_RD_LZO is not set)" >> $(LINUX_DIR)/.config - echo -e "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_XZ),CONFIG_INITRAMFS_COMPRESSION_XZ=y\nCONFIG_RD_XZ=y,# CONFIG_INITRAMFS_COMPRESSION_XZ is not set\n# CONFIG_RD_XZ is not set)" >> $(LINUX_DIR)/.config - echo -e "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_LZ4),CONFIG_INITRAMFS_COMPRESSION_LZ4=y\nCONFIG_RD_LZ4=y,# CONFIG_INITRAMFS_COMPRESSION_LZ4 is not set\n# CONFIG_RD_LZ4 is not set)" >> $(LINUX_DIR)/.config - echo -e "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_ZSTD),CONFIG_INITRAMFS_COMPRESSION_ZSTD=y\nCONFIG_RD_ZSTD=y,# CONFIG_INITRAMFS_COMPRESSION_ZSTD is not set\n# CONFIG_RD_ZSTD is not set)" >> $(LINUX_DIR)/.config - endef -else -endif - -define Kernel/SetNoInitramfs - mv $(LINUX_DIR)/.config.set $(LINUX_DIR)/.config.old - grep -v INITRAMFS $(LINUX_DIR)/.config.old > $(LINUX_DIR)/.config.set - echo 'CONFIG_INITRAMFS_SOURCE=""' >> $(LINUX_DIR)/.config.set - echo '# CONFIG_INITRAMFS_FORCE is not set' >> $(LINUX_DIR)/.config.set - echo "# CONFIG_INITRAMFS_PRESERVE_MTIME is not set" >> $(LINUX_DIR)/.config.set -endef - -define Kernel/Configure/Default - rm -f $(LINUX_DIR)/localversion - $(LINUX_CONF_CMD) > $(LINUX_DIR)/.config.target -# copy CONFIG_KERNEL_* settings over to .config.target - awk '/^(#[[:space:]]+)?CONFIG_KERNEL/{sub("CONFIG_KERNEL_","CONFIG_");print}' $(TOPDIR)/.config >> $(LINUX_DIR)/.config.target - echo "# CONFIG_KALLSYMS_EXTRA_PASS is not set" >> $(LINUX_DIR)/.config.target - echo "# CONFIG_KALLSYMS_ALL is not set" >> $(LINUX_DIR)/.config.target - echo "CONFIG_KALLSYMS_UNCOMPRESSED=y" >> $(LINUX_DIR)/.config.target - $(SCRIPT_DIR)/package-metadata.pl kconfig $(TMP_DIR)/.packageinfo $(TOPDIR)/.config $(KERNEL_PATCHVER) > $(LINUX_DIR)/.config.override - $(SCRIPT_DIR)/kconfig.pl 'm+' '+' $(LINUX_DIR)/.config.target /dev/null $(LINUX_DIR)/.config.override > $(LINUX_DIR)/.config.set - $(call Kernel/SetNoInitramfs) - rm -rf $(KERNEL_BUILD_DIR)/modules - cmp -s $(LINUX_DIR)/.config.set $(LINUX_DIR)/.config.prev || { \ - cp $(LINUX_DIR)/.config.set $(LINUX_DIR)/.config; \ - cp $(LINUX_DIR)/.config.set $(LINUX_DIR)/.config.prev; \ - } - $(_SINGLE) [ -d $(LINUX_DIR)/user_headers ] || $(KERNEL_MAKE) $(if $(findstring uml,$(BOARD)),ARCH=$(ARCH)) INSTALL_HDR_PATH=$(LINUX_DIR)/user_headers headers_install - grep '=[ym]' $(LINUX_DIR)/.config.set | LC_ALL=C sort | $(MKHASH) md5 > $(LINUX_DIR)/.vermagic -endef - -define Kernel/Configure/Initramfs - $(call Kernel/SetInitramfs) -endef - -define Kernel/CompileModules/Default - rm -f $(LINUX_DIR)/vmlinux $(LINUX_DIR)/System.map - +$(KERNEL_MAKE) $(if $(KERNELNAME),$(KERNELNAME),all) modules - # If .config did not change, use the previous timestamp to avoid package rebuilds - cmp -s $(LINUX_DIR)/.config $(LINUX_DIR)/.config.modules.save && \ - mv $(LINUX_DIR)/.config.modules.save $(LINUX_DIR)/.config; \ - $(CP) $(LINUX_DIR)/.config $(LINUX_DIR)/.config.modules.save -endef - -OBJCOPY_STRIP = -R .reginfo -R .notes -R .note -R .comment -R .mdebug -R .note.gnu.build-id - -# AMD64 shares the location with x86 -ifeq ($(LINUX_KARCH),x86_64) -IMAGES_DIR:=../../x86/boot -endif - -define Kernel/CopyImage - cmp -s $(LINUX_DIR)/vmlinux $(KERNEL_BUILD_DIR)/vmlinux$(1).debug || { \ - $(KERNEL_CROSS)objcopy -O binary $(OBJCOPY_STRIP) -S $(LINUX_DIR)/vmlinux $(LINUX_KERNEL)$(1); \ - $(KERNEL_CROSS)objcopy $(OBJCOPY_STRIP) -S $(LINUX_DIR)/vmlinux $(KERNEL_BUILD_DIR)/vmlinux$(1).elf; \ - $(CP) $(LINUX_DIR)/vmlinux $(KERNEL_BUILD_DIR)/vmlinux$(1).debug; \ - $(foreach k, \ - $(if $(KERNEL_IMAGES),$(KERNEL_IMAGES),$(filter-out vmlinux dtbs,$(KERNELNAME))), \ - $(CP) $(LINUX_DIR)/arch/$(LINUX_KARCH)/boot/$(IMAGES_DIR)/$(k) $(KERNEL_BUILD_DIR)/$(k)$(1); \ - ) \ - } -endef - -define Kernel/CompileImage/Default - rm -f $(TARGET_DIR)/init - +$(KERNEL_MAKE) $(KERNEL_MAKEOPTS_IMAGE) $(if $(KERNELNAME),$(KERNELNAME),all) - $(call Kernel/CopyImage) -endef - -ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),) -define Kernel/CompileImage/Initramfs - $(call Kernel/Configure/Initramfs) - $(CP) $(GENERIC_PLATFORM_DIR)/other-files/init $(TARGET_DIR)/init - $(if $(SOURCE_DATE_EPOCH),touch -hcd "@$(SOURCE_DATE_EPOCH)" $(TARGET_DIR) $(TARGET_DIR)/init) - rm -rf $(KERNEL_BUILD_DIR)/linux-$(LINUX_VERSION)/usr/initramfs_data.cpio* -ifeq ($(CONFIG_TARGET_ROOTFS_INITRAMFS_SEPARATE),y) -ifneq ($(call qstrip,$(CONFIG_EXTERNAL_CPIO)),) - $(CP) $(CONFIG_EXTERNAL_CPIO) $(KERNEL_BUILD_DIR)/initrd.cpio -else - ( cd $(TARGET_DIR); find . | LC_ALL=C sort | $(STAGING_DIR_HOST)/bin/cpio --reproducible -o -H newc -R 0:0 > $(KERNEL_BUILD_DIR)/initrd.cpio ) -endif - $(if $(SOURCE_DATE_EPOCH),touch -hcd "@$(SOURCE_DATE_EPOCH)" $(KERNEL_BUILD_DIR)/initrd.cpio) - $(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_BZIP2),$(STAGING_DIR_HOST)/bin/bzip2 -9 -c < $(KERNEL_BUILD_DIR)/initrd.cpio > $(KERNEL_BUILD_DIR)/initrd.cpio.bzip2) - $(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_GZIP),$(STAGING_DIR_HOST)/bin/libdeflate-gzip -n -f -S .gzip -12 $(KERNEL_BUILD_DIR)/initrd.cpio) - $(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_LZ4),$(STAGING_DIR_HOST)/bin/lz4c -l -c1 -fz --favor-decSpeed $(KERNEL_BUILD_DIR)/initrd.cpio) - $(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_LZMA),$(STAGING_DIR_HOST)/bin/lzma e -lc1 -lp2 -pb2 $(KERNEL_BUILD_DIR)/initrd.cpio $(KERNEL_BUILD_DIR)/initrd.cpio.lzma) - $(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_LZO),$(STAGING_DIR_HOST)/bin/lzop -9 -f $(KERNEL_BUILD_DIR)/initrd.cpio) - $(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_XZ),$(STAGING_DIR_HOST)/bin/xz -T$(if $(filter 1,$(NPROC)),2,0) -9 -fz --check=crc32 $(KERNEL_BUILD_DIR)/initrd.cpio) - $(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_ZSTD),$(STAGING_DIR_HOST)/bin/zstd -T0 -f -o $(KERNEL_BUILD_DIR)/initrd.cpio.zstd $(KERNEL_BUILD_DIR)/initrd.cpio) -endif - +$(KERNEL_MAKE) $(KERNEL_MAKEOPTS_IMAGE) $(if $(KERNELNAME),$(KERNELNAME),all) - $(call Kernel/CopyImage,-initramfs) -endef -else -define Kernel/CompileImage/Initramfs -endef -endif - -define Kernel/Clean/Default - rm -f $(KERNEL_BUILD_DIR)/linux-$(LINUX_VERSION)/.configured - rm -f $(LINUX_KERNEL) - $(_SINGLE)$(MAKE) -C $(KERNEL_BUILD_DIR)/linux-$(LINUX_VERSION) clean -endef diff --git a/6.12/package/boot/uboot-envtools/files/mediatek_filogic b/6.12/package/boot/uboot-envtools/files/mediatek_filogic deleted file mode 100644 index 6fea40f9..00000000 --- a/6.12/package/boot/uboot-envtools/files/mediatek_filogic +++ /dev/null @@ -1,127 +0,0 @@ -# -# Copyright (C) 2021 OpenWrt.org -# - -[ -e /etc/config/ubootenv ] && exit 0 - -touch /etc/config/ubootenv - -. /lib/uboot-envtools.sh -. /lib/functions.sh - -board=$(board_name) - -case "$board" in -asus,rt-ax59u) - ubootenv_add_uci_config "/dev/mtd0" "0x100000" "0x20000" "0x20000" - ;; -bananapi,bpi-r3) - rootdev="$(cmdline_get_var root)" - rootdev="${rootdev##*/}" - rootdev="${rootdev%%p[0-9]*}" - case "$rootdev" in - mmc*) - local envdev=$(find_mmc_part "ubootenv" $rootdev) - ubootenv_add_uci_config "$envdev" "0x0" "0x40000" "0x40000" "1" - ubootenv_add_uci_config "$envdev" "0x40000" "0x40000" "0x40000" "1" - ;; - mtd*) - local envdev=/dev/mtd$(find_mtd_index "u-boot-env") - ubootenv_add_uci_config "$envdev" "0x0" "0x20000" "0x20000" "1" - ubootenv_add_uci_config "$envdev" "0x20000" "0x20000" "0x20000" "1" - ;; - ubi*) - . /lib/upgrade/nand.sh - local envubi=$(nand_find_ubi ubi) - local envdev=/dev/$(nand_find_volume $envubi ubootenv) - local envdev2=/dev/$(nand_find_volume $envubi ubootenv2) - ubootenv_add_uci_config "$envdev" "0x0" "0x1f000" "0x1f000" "1" - ubootenv_add_uci_config "$envdev2" "0x0" "0x1f000" "0x1f000" "1" - ;; - esac - ;; -cmcc,rax3000m) - case "$(cmdline_get_var root)" in - /dev/mmc*) - local envdev=$(find_mmc_part "ubootenv" "mmcblk0") - ubootenv_add_uci_config "$envdev" "0x0" "0x40000" "0x40000" "1" - ubootenv_add_uci_config "$envdev" "0x40000" "0x40000" "0x40000" "1" - ;; - *) - . /lib/upgrade/nand.sh - local envubi=$(nand_find_ubi ubi) - local envdev=/dev/$(nand_find_volume $envubi ubootenv) - local envdev2=/dev/$(nand_find_volume $envubi ubootenv2) - ubootenv_add_uci_config "$envdev" "0x0" "0x1f000" "0x1f000" "1" - ubootenv_add_uci_config "$envdev2" "0x0" "0x1f000" "0x1f000" "1" - ;; - esac - ;; -cetron,ct3003|\ -netgear,wax220|\ -zbtlink,zbt-z8102ax|\ -z8102ax-128m|\ -z8102ax-64m|\ -zbtlink,zbt-z8103ax) - ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x20000" "0x20000" - ;; -h3c,magic-nx30-pro|\ -jcg,q30-pro|\ -qihoo,360t7|\ -tplink,tl-xdr4288|\ -tplink,tl-xdr6086|\ -tplink,tl-xdr6088|\ -xiaomi,mi-router-ax3000t-ubootmod|\ -xiaomi,mi-router-wr30u-ubootmod|\ -xiaomi,redmi-router-ax6000-ubootmod) - . /lib/upgrade/nand.sh - local envubi=$(nand_find_ubi ubi) - local envdev=/dev/$(nand_find_volume $envubi ubootenv) - local envdev2=/dev/$(nand_find_volume $envubi ubootenv2) - ubootenv_add_uci_config "$envdev" "0x0" "0x1f000" "0x20000" "1" - ubootenv_add_uci_config "$envdev2" "0x0" "0x1f000" "0x20000" "1" - ;; -glinet,gl-mt2500|\ -glinet,gl-mt6000) - local envdev=$(find_mmc_part "u-boot-env") - ubootenv_add_uci_config "$envdev" "0x0" "0x80000" - ;; -glinet,gl-mt3000) - ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x80000" "0x20000" - ;; -mercusys,mr90x-v1|\ -routerich,ax3000) - local envdev=/dev/mtd$(find_mtd_index "u-boot-env") - ubootenv_add_uci_config "$envdev" "0x0" "0x20000" "0x20000" "1" - ;; -ubnt,unifi-6-plus) - ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x80000" "0x10000" - ;; -xiaomi,mi-router-ax3000t|\ -xiaomi,mi-router-wr30u-112m-nmbm|\ -xiaomi,mi-router-wr30u-stock|\ -xiaomi,redmi-router-ax6000-stock) - ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x10000" "0x20000" - ubootenv_add_uci_sys_config "/dev/mtd2" "0x0" "0x10000" "0x20000" - ;; -zyxel,ex5601-t0) - local envdev=/dev/mtd$(find_mtd_index "u-boot-env") - ubootenv_add_uci_config "$envdev" "0x0" "0x20000" "0x40000" "2" - ;; -zyxel,ex5601-t0-ubootmod) - . /lib/upgrade/nand.sh - local envubi=$(nand_find_ubi ubi) - local envdev=/dev/$(nand_find_volume $envubi ubootenv) - local envdev2=/dev/$(nand_find_volume $envubi ubootenv2) - ubootenv_add_uci_config "$envdev" "0x0" "0x1f000" "0x20000" "1" - ubootenv_add_uci_config "$envdev2" "0x0" "0x1f000" "0x20000" "1" - ;; -zyxel,ex5700-telenor) - ubootenv_add_uci_config "/dev/ubootenv" "0x0" "0x4000" "0x4000" "1" - ;; -esac - -config_load ubootenv -config_foreach ubootenv_add_app_config - -exit 0 diff --git a/6.12/package/boot/uboot-mediatek/patches/900-add-z8102ax.patch b/6.12/package/boot/uboot-mediatek/patches/900-add-z8102ax.patch deleted file mode 100644 index 00b90aad..00000000 --- a/6.12/package/boot/uboot-mediatek/patches/900-add-z8102ax.patch +++ /dev/null @@ -1,1740 +0,0 @@ ---- /dev/null 2023-07-22 18:52:45.112763009 +0200 -+++ b/configs/mt7981b_zbtlink_zbt-z8102ax-128m_defconfig 2024-03-01 17:42:20.925929428 +0100 -@@ -0,0 +1,1737 @@ -+# -+# Automatically generated file; DO NOT EDIT. -+# U-Boot 2023.07 Configuration -+# -+ -+# -+# -+CONFIG_CREATE_ARCH_SYMLINK=y -+CONFIG_SYS_CACHE_SHIFT_6=y -+CONFIG_SYS_CACHELINE_SIZE=64 -+CONFIG_LINKER_LIST_ALIGN=8 -+# CONFIG_ARC is not set -+CONFIG_ARM=y -+# CONFIG_M68K is not set -+# CONFIG_MICROBLAZE is not set -+# CONFIG_MIPS is not set -+# CONFIG_NIOS2 is not set -+# CONFIG_PPC is not set -+# CONFIG_RISCV is not set -+# CONFIG_SANDBOX is not set -+# CONFIG_SH is not set -+# CONFIG_X86 is not set -+# CONFIG_XTENSA is not set -+CONFIG_SYS_ARCH="arm" -+CONFIG_SYS_CPU="armv8" -+CONFIG_SYS_SOC="mediatek" -+CONFIG_SYS_VENDOR="mediatek" -+CONFIG_SYS_BOARD="mt7981" -+CONFIG_SYS_CONFIG_NAME="mt7981" -+ -+# -+# Skipping low level initialization functions -+# -+# CONFIG_SKIP_LOWLEVEL_INIT is not set -+# CONFIG_SKIP_LOWLEVEL_INIT_ONLY is not set -+CONFIG_SYS_HAS_NONCACHED_MEMORY=y -+CONFIG_SYS_NONCACHED_MEMORY=0x100000 -+# CONFIG_SYS_ICACHE_OFF is not set -+# CONFIG_SYS_DCACHE_OFF is not set -+ -+# -+# ARM architecture -+# -+CONFIG_ARM64=y -+CONFIG_ARM64_CRC32=y -+CONFIG_COUNTER_FREQUENCY=0 -+CONFIG_POSITION_INDEPENDENT=y -+CONFIG_INIT_SP_RELATIVE=y -+CONFIG_SYS_INIT_SP_BSS_OFFSET=524288 -+# CONFIG_GIC_V3_ITS is not set -+CONFIG_STATIC_RELA=y -+CONFIG_DMA_ADDR_T_64BIT=y -+CONFIG_GPIO_EXTRA_HEADER=y -+CONFIG_ARM_ASM_UNIFIED=y -+# CONFIG_SYS_ARM_CACHE_CP15 is not set -+# CONFIG_SYS_ARM_MMU is not set -+# CONFIG_SYS_ARM_MPU is not set -+CONFIG_SYS_ARM_ARCH=8 -+CONFIG_SYS_ARM_CACHE_WRITEBACK=y -+# CONFIG_SYS_ARM_CACHE_WRITETHROUGH is not set -+# CONFIG_SYS_ARM_CACHE_WRITEALLOC is not set -+# CONFIG_ARCH_CPU_INIT is not set -+CONFIG_SYS_ARCH_TIMER=y -+CONFIG_ARM_SMCCC=y -+# CONFIG_SYS_L2_PL310 is not set -+# CONFIG_SPL_SYS_L2_PL310 is not set -+# CONFIG_SYS_L2CACHE_OFF is not set -+# CONFIG_ENABLE_ARM_SOC_BOOT0_HOOK is not set -+# CONFIG_USE_ARCH_MEMCPY is not set -+# CONFIG_USE_ARCH_MEMSET is not set -+CONFIG_ARM64_SUPPORT_AARCH32=y -+# CONFIG_ARCH_AT91 is not set -+# CONFIG_ARCH_DAVINCI is not set -+# CONFIG_ARCH_HISTB is not set -+# CONFIG_ARCH_KIRKWOOD is not set -+# CONFIG_ARCH_MVEBU is not set -+# CONFIG_ARCH_ORION5X is not set -+# CONFIG_TARGET_STV0991 is not set -+# CONFIG_ARCH_BCM283X is not set -+# CONFIG_ARCH_BCMSTB is not set -+# CONFIG_ARCH_BCMBCA is not set -+# CONFIG_TARGET_VEXPRESS_CA9X4 is not set -+# CONFIG_TARGET_BCMCYGNUS is not set -+# CONFIG_TARGET_BCMNS is not set -+# CONFIG_TARGET_BCMNS2 is not set -+# CONFIG_TARGET_BCMNS3 is not set -+# CONFIG_ARCH_EXYNOS is not set -+# CONFIG_ARCH_S5PC1XX is not set -+# CONFIG_ARCH_HIGHBANK is not set -+# CONFIG_ARCH_INTEGRATOR is not set -+# CONFIG_ARCH_IPQ40XX is not set -+# CONFIG_ARCH_KEYSTONE is not set -+# CONFIG_ARCH_K3 is not set -+# CONFIG_ARCH_OMAP2PLUS is not set -+# CONFIG_ARCH_MESON is not set -+CONFIG_ARCH_MEDIATEK=y -+# CONFIG_ARCH_LPC32XX is not set -+# CONFIG_ARCH_IMX8 is not set -+# CONFIG_ARCH_IMX8M is not set -+# CONFIG_ARCH_IMX8ULP is not set -+# CONFIG_ARCH_IMX9 is not set -+# CONFIG_ARCH_IMXRT is not set -+# CONFIG_ARCH_MX23 is not set -+# CONFIG_ARCH_MX28 is not set -+# CONFIG_ARCH_MX31 is not set -+# CONFIG_ARCH_MX7ULP is not set -+# CONFIG_ARCH_MX7 is not set -+# CONFIG_ARCH_MX6 is not set -+# CONFIG_ARCH_MX5 is not set -+# CONFIG_ARCH_NEXELL is not set -+# CONFIG_ARCH_NPCM is not set -+# CONFIG_ARCH_APPLE is not set -+# CONFIG_ARCH_OWL is not set -+# CONFIG_ARCH_QEMU is not set -+# CONFIG_ARCH_RMOBILE is not set -+# CONFIG_ARCH_SNAPDRAGON is not set -+# CONFIG_ARCH_SOCFPGA is not set -+# CONFIG_ARCH_SUNXI is not set -+# CONFIG_ARCH_U8500 is not set -+# CONFIG_ARCH_VERSAL is not set -+# CONFIG_ARCH_VERSAL_NET is not set -+# CONFIG_ARCH_VF610 is not set -+# CONFIG_ARCH_ZYNQ is not set -+# CONFIG_ARCH_ZYNQMP_R5 is not set -+# CONFIG_ARCH_ZYNQMP is not set -+# CONFIG_ARCH_TEGRA is not set -+# CONFIG_ARCH_VEXPRESS64 is not set -+# CONFIG_TARGET_CORSTONE1000 is not set -+# CONFIG_TARGET_TOTAL_COMPUTE is not set -+# CONFIG_TARGET_LS2080A_EMU is not set -+# CONFIG_TARGET_LS1088AQDS is not set -+# CONFIG_TARGET_LS2080AQDS is not set -+# CONFIG_TARGET_LS2080ARDB is not set -+# CONFIG_TARGET_LS2081ARDB is not set -+# CONFIG_TARGET_LX2160ARDB is not set -+# CONFIG_TARGET_LX2160AQDS is not set -+# CONFIG_TARGET_LX2162AQDS is not set -+# CONFIG_TARGET_HIKEY is not set -+# CONFIG_TARGET_HIKEY960 is not set -+# CONFIG_TARGET_POPLAR is not set -+# CONFIG_TARGET_LS1012AQDS is not set -+# CONFIG_TARGET_LS1012ARDB is not set -+# CONFIG_TARGET_LS1012A2G5RDB is not set -+# CONFIG_TARGET_LS1012AFRWY is not set -+# CONFIG_TARGET_LS1012AFRDM is not set -+# CONFIG_TARGET_LS1028AQDS is not set -+# CONFIG_TARGET_LS1028ARDB is not set -+# CONFIG_TARGET_LS1088ARDB is not set -+# CONFIG_TARGET_LS1021AQDS is not set -+# CONFIG_TARGET_LS1021ATWR is not set -+# CONFIG_TARGET_PG_WCOM_SELI8 is not set -+# CONFIG_TARGET_PG_WCOM_EXPU1 is not set -+# CONFIG_TARGET_LS1021ATSN is not set -+# CONFIG_TARGET_LS1021AIOT is not set -+# CONFIG_TARGET_LS1043AQDS is not set -+# CONFIG_TARGET_LS1043ARDB is not set -+# CONFIG_TARGET_LS1046AQDS is not set -+# CONFIG_TARGET_LS1046ARDB is not set -+# CONFIG_TARGET_LS1046AFRWY is not set -+# CONFIG_TARGET_SL28 is not set -+# CONFIG_TARGET_TEN64 is not set -+# CONFIG_ARCH_UNIPHIER is not set -+# CONFIG_ARCH_SYNQUACER is not set -+# CONFIG_ARCH_STM32 is not set -+# CONFIG_ARCH_STI is not set -+# CONFIG_ARCH_STM32MP is not set -+# CONFIG_ARCH_ROCKCHIP is not set -+# CONFIG_ARCH_OCTEONTX is not set -+# CONFIG_ARCH_OCTEONTX2 is not set -+# CONFIG_TARGET_THUNDERX_88XX is not set -+# CONFIG_ARCH_ASPEED is not set -+# CONFIG_TARGET_DURIAN is not set -+# CONFIG_TARGET_POMELO is not set -+# CONFIG_TARGET_PRESIDIO_ASIC is not set -+# CONFIG_TARGET_XENGUEST_ARM64 is not set -+# CONFIG_ARCH_GXP is not set -+# CONFIG_STATIC_MACH_TYPE is not set -+CONFIG_TEXT_BASE=0x41e00000 -+CONFIG_SYS_MALLOC_LEN=0x400000 -+CONFIG_SYS_MALLOC_F_LEN=0x4000 -+CONFIG_NR_DRAM_BANKS=1 -+CONFIG_ENV_SOURCE_FILE="" -+CONFIG_ENV_SIZE=0x80000 -+CONFIG_ENV_OFFSET=0x300000 -+CONFIG_DM_GPIO=y -+CONFIG_DEFAULT_DEVICE_TREE="mt7981-emmc-rfb" -+CONFIG_SYS_PROMPT="MT7981> " -+# CONFIG_OF_LIBFDT_OVERLAY is not set -+CONFIG_MULTI_DTB_FIT_UNCOMPRESS_SZ=0x8000 -+CONFIG_DM_RESET=y -+CONFIG_SYS_MONITOR_LEN=0 -+# CONFIG_MT8512 is not set -+# CONFIG_TARGET_MT7622 is not set -+# CONFIG_TARGET_MT7623 is not set -+# CONFIG_TARGET_MT7629 is not set -+CONFIG_TARGET_MT7981=y -+# CONFIG_TARGET_MT7986 is not set -+# CONFIG_TARGET_MT7988 is not set -+# CONFIG_TARGET_MT8183 is not set -+# CONFIG_TARGET_MT8512 is not set -+# CONFIG_TARGET_MT8516 is not set -+# CONFIG_TARGET_MT8518 is not set -+CONFIG_MTK_BROM_HEADER_INFO="media=snand;nandinfo=2k+64" -+CONFIG_ERR_PTR_OFFSET=0x0 -+# CONFIG_SPL is not set -+CONFIG_BOOTSTAGE_STASH_ADDR=0 -+CONFIG_DEBUG_UART_BASE=0x11002000 -+CONFIG_DEBUG_UART_CLOCK=40000000 -+# CONFIG_DEBUG_UART_BOARD_INIT is not set -+CONFIG_IDENT_STRING="" -+CONFIG_SYS_CLK_FREQ=0 -+# CONFIG_CHIP_DIP_SCAN is not set -+# CONFIG_CMO_BY_VA_ONLY is not set -+# CONFIG_ARMV8_MULTIENTRY is not set -+# CONFIG_ARMV8_SET_SMPEN is not set -+# CONFIG_ARMV8_SWITCH_TO_EL1 is not set -+ -+# -+# ARMv8 secure monitor firmware -+# -+# CONFIG_ARMV8_SEC_FIRMWARE_SUPPORT is not set -+CONFIG_PSCI_RESET=y -+# CONFIG_ARMV8_PSCI is not set -+# CONFIG_ARMV8_EA_EL3_FIRST is not set -+# CONFIG_ARMV8_CRYPTO is not set -+# CONFIG_CMD_DEKBLOB is not set -+# CONFIG_IMX_CAAM_DEK_ENCAP is not set -+# CONFIG_IMX_OPTEE_DEK_ENCAP is not set -+# CONFIG_IMX_SECO_DEK_ENCAP is not set -+# CONFIG_IMX_ELE_DEK_ENCAP is not set -+# CONFIG_CMD_HDMIDETECT is not set -+CONFIG_IMX_DCD_ADDR=0x00910000 -+CONFIG_SYS_MEM_TOP_HIDE=0x0 -+CONFIG_SYS_LOAD_ADDR=0x46000000 -+ -+# -+# ARM debug -+# -+CONFIG_BUILD_TARGET="" -+# CONFIG_SYS_PCI_64BIT is not set -+CONFIG_PCI=y -+CONFIG_FWU_NUM_BANKS=2 -+CONFIG_FWU_NUM_IMAGES_PER_BANK=2 -+CONFIG_DEBUG_UART=y -+# CONFIG_AHCI is not set -+# CONFIG_OF_BOARD_FIXUP is not set -+ -+# -+# Functionality shared between NXP SoCs -+# -+# CONFIG_NXP_ESBC is not set -+ -+# -+# MediaTek specific configurations -+# -+CONFIG_MEDIATEK_BOOTMENU=y -+CONFIG_MTK_BOOTMENU_DEFAULT=y -+# CONFIG_MTK_BOOTMENU_MTD is not set -+CONFIG_MTK_BOOTMENU_MMC=y -+CONFIG_MTK_BOOTMENU_MMC_DEV_INDEX=0 -+CONFIG_MEDIATEK_BOOTMENU_COUNTDOWN=y -+CONFIG_MEDIATEK_BOOTMENU_DELAY=4 -+# CONFIG_MTK_LOAD_FROM_SD is not set -+# CONFIG_MEDIATEK_LOAD_FROM_RAM is not set -+CONFIG_MTK_WEB_FAILSAFE=y -+CONFIG_MTK_WEB_FAILSAFE_AFTER_BOOT_FAILURE=y -+# CONFIG_MTK_UBI_SUPPORT is not set -+# CONFIG_MTK_SECURE_BOOT is not set -+CONFIG_MTK_DUAL_BOOT=y -+CONFIG_MTK_BOARDINFO=y -+CONFIG_MTK_FIP_SUPPORT=y -+CONFIG_MTK_UPGRADE_BL2_VERIFY=y -+CONFIG_MTK_UPGRADE_FIP_VERIFY=y -+CONFIG_MTK_UPGRADE_IMAGE_VERIFY=y -+# CONFIG_MTK_UPGRADE_IMAGE_ROOTFS_VERIFY is not set -+# CONFIG_ENABLE_NAND_NMBM is not set -+# CONFIG_MTK_MISC_CUSTOMIZED is not set -+ -+# -+# General setup -+# -+CONFIG_LOCALVERSION="" -+CONFIG_LOCALVERSION_AUTO=y -+CONFIG_CC_IS_GCC=y -+CONFIG_GCC_VERSION=130201 -+CONFIG_CLANG_VERSION=0 -+CONFIG_CC_OPTIMIZE_FOR_SIZE=y -+# CONFIG_CC_OPTIMIZE_FOR_SPEED is not set -+# CONFIG_CC_OPTIMIZE_FOR_DEBUG is not set -+# CONFIG_OPTIMIZE_INLINING is not set -+CONFIG_ARCH_SUPPORTS_LTO=y -+# CONFIG_LTO is not set -+CONFIG_CC_HAS_ASM_INLINE=y -+# CONFIG_XEN is not set -+# CONFIG_ENV_VARS_UBOOT_CONFIG is not set -+# CONFIG_SYS_BOOT_GET_CMDLINE is not set -+# CONFIG_SYS_BOOT_GET_KBD is not set -+CONFIG_SYS_MALLOC_F=y -+# CONFIG_VALGRIND is not set -+CONFIG_EXPERT=y -+CONFIG_SYS_MALLOC_CLEAR_ON_INIT=y -+# CONFIG_SYS_MALLOC_DEFAULT_TO_INIT is not set -+# CONFIG_TOOLS_DEBUG is not set -+CONFIG_PHYS_64BIT=y -+CONFIG_FDT_64BIT=y -+# CONFIG_REMAKE_ELF is not set -+# CONFIG_HAS_BOARD_SIZE_LIMIT is not set -+# CONFIG_SYS_CUSTOM_LDSCRIPT is not set -+CONFIG_PLATFORM_ELFENTRY="_start" -+CONFIG_STACK_SIZE=0x1000000 -+CONFIG_SYS_SRAM_BASE=0x0 -+CONFIG_SYS_SRAM_SIZE=0x0 -+# CONFIG_MP is not set -+# CONFIG_API is not set -+ -+# -+# Boot options -+# -+ -+# -+# Boot images -+# -+# CONFIG_ANDROID_BOOT_IMAGE is not set -+CONFIG_FIT=y -+# CONFIG_TIMESTAMP is not set -+# CONFIG_IMAGE_FORCED_VERIFY is not set -+CONFIG_FIT_EXTERNAL_OFFSET=0x0 -+CONFIG_FIT_FULL_CHECK=y -+# CONFIG_FIT_SIGNATURE is not set -+# CONFIG_FIT_CIPHER is not set -+# CONFIG_FIT_VERBOSE is not set -+# CONFIG_FIT_BEST_MATCH is not set -+CONFIG_FIT_PRINT=y -+# CONFIG_SPL_LOAD_FIT_FULL is not set -+CONFIG_PXE_UTILS=y -+CONFIG_BOOTSTD=y -+# CONFIG_BOOTSTD_FULL is not set -+# CONFIG_BOOTSTD_DEFAULTS is not set -+CONFIG_BOOTSTD_BOOTCOMMAND=y -+CONFIG_BOOTMETH_GLOBAL=y -+CONFIG_BOOTMETH_EXTLINUX=y -+CONFIG_BOOTMETH_VBE=y -+CONFIG_BOOTMETH_VBE_REQUEST=y -+CONFIG_BOOTMETH_VBE_SIMPLE=y -+CONFIG_BOOTMETH_VBE_SIMPLE_OS=y -+# CONFIG_BOOTMETH_SCRIPT is not set -+CONFIG_LEGACY_IMAGE_FORMAT=y -+# CONFIG_SUPPORT_RAW_INITRD is not set -+# CONFIG_OF_BOARD_SETUP is not set -+# CONFIG_OF_SYSTEM_SETUP is not set -+# CONFIG_OF_STDOUT_VIA_ALIAS is not set -+CONFIG_HAVE_TEXT_BASE=y -+# CONFIG_DYNAMIC_SYS_CLK_FREQ is not set -+CONFIG_ARCH_FIXUP_FDT_MEMORY=y -+# CONFIG_CHROMEOS is not set -+# CONFIG_CHROMEOS_VBOOT is not set -+# CONFIG_RAMBOOT_PBL is not set -+CONFIG_SYS_BOOT_RAMDISK_HIGH=y -+# CONFIG_DISTRO_DEFAULTS is not set -+ -+# -+# Boot timing -+# -+# CONFIG_BOOTSTAGE is not set -+CONFIG_BOOTSTAGE_STASH_SIZE=0x1000 -+# CONFIG_SHOW_BOOT_PROGRESS is not set -+ -+# -+# Boot media -+# -+# CONFIG_NAND_BOOT is not set -+# CONFIG_ONENAND_BOOT is not set -+# CONFIG_QSPI_BOOT is not set -+# CONFIG_SATA_BOOT is not set -+# CONFIG_SD_BOOT is not set -+# CONFIG_SD_BOOT_QSPI is not set -+# CONFIG_SPI_BOOT is not set -+ -+# -+# Autoboot options -+# -+CONFIG_AUTOBOOT=y -+CONFIG_BOOTDELAY=2 -+# CONFIG_AUTOBOOT_KEYED is not set -+# CONFIG_AUTOBOOT_USE_MENUKEY is not set -+CONFIG_AUTOBOOT_MENU_SHOW=y -+CONFIG_AUTOBOOT_MENU_MTK_SHOW=y -+# CONFIG_BOOTMENU_DISABLE_UBOOT_CONSOLE is not set -+# CONFIG_BOOT_RETRY is not set -+ -+# -+# Image support -+# -+# CONFIG_IMAGE_PRE_LOAD is not set -+# CONFIG_USE_BOOTARGS is not set -+# CONFIG_BOOTARGS_SUBST is not set -+# CONFIG_USE_BOOTCOMMAND is not set -+# CONFIG_USE_PREBOOT is not set -+CONFIG_DEFAULT_FDT_FILE="mt7981-emmc-rfb" -+# CONFIG_SAVE_PREV_BL_FDT_ADDR is not set -+# CONFIG_SAVE_PREV_BL_INITRAMFS_START_ADDR is not set -+ -+# -+# Configuration editor -+# -+# CONFIG_CEDIT is not set -+ -+# -+# Console -+# -+CONFIG_MENU=y -+# CONFIG_CONSOLE_RECORD is not set -+# CONFIG_DISABLE_CONSOLE is not set -+CONFIG_LOGLEVEL=7 -+# CONFIG_SILENT_CONSOLE is not set -+# CONFIG_SPL_SILENT_CONSOLE is not set -+# CONFIG_TPL_SILENT_CONSOLE is not set -+# CONFIG_PRE_CONSOLE_BUFFER is not set -+CONFIG_CONSOLE_FLUSH_SUPPORT=y -+# CONFIG_CONSOLE_MUX is not set -+# CONFIG_SYS_CONSOLE_IS_IN_ENV is not set -+# CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE is not set -+# CONFIG_SYS_CONSOLE_INFO_QUIET is not set -+# CONFIG_SYS_STDIO_DEREGISTER is not set -+# CONFIG_SPL_SYS_STDIO_DEREGISTER is not set -+# CONFIG_SYS_DEVICE_NULLDEV is not set -+ -+# -+# Logging -+# -+CONFIG_LOG=y -+CONFIG_LOG_MAX_LEVEL=6 -+CONFIG_LOG_DEFAULT_LEVEL=6 -+CONFIG_LOG_CONSOLE=y -+# CONFIG_LOGF_FILE is not set -+# CONFIG_LOGF_LINE is not set -+# CONFIG_LOGF_FUNC is not set -+CONFIG_LOGF_FUNC_PAD=20 -+# CONFIG_LOG_SYSLOG is not set -+# CONFIG_LOG_ERROR_RETURN is not set -+ -+# -+# Init options -+# -+# CONFIG_BOARD_TYPES is not set -+CONFIG_DISPLAY_CPUINFO=y -+CONFIG_DISPLAY_BOARDINFO=y -+# CONFIG_DISPLAY_BOARDINFO_LATE is not set -+ -+# -+# Start-up hooks -+# -+# CONFIG_CYCLIC is not set -+CONFIG_EVENT=y -+# CONFIG_EVENT_DEBUG is not set -+# CONFIG_ARCH_MISC_INIT is not set -+# CONFIG_BOARD_EARLY_INIT_F is not set -+# CONFIG_BOARD_EARLY_INIT_R is not set -+# CONFIG_BOARD_POSTCLK_INIT is not set -+# CONFIG_BOARD_LATE_INIT is not set -+# CONFIG_CLOCKS is not set -+# CONFIG_HWCONFIG is not set -+# CONFIG_LAST_STAGE_INIT is not set -+# CONFIG_MISC_INIT_R is not set -+# CONFIG_SYS_MALLOC_BOOTPARAMS is not set -+# CONFIG_ID_EEPROM is not set -+# CONFIG_PCI_INIT_R is not set -+# CONFIG_RESET_PHY_R is not set -+ -+# -+# Security support -+# -+CONFIG_HASH=y -+# CONFIG_STACKPROTECTOR is not set -+# CONFIG_BOARD_RNG_SEED is not set -+ -+# -+# Update support -+# -+# CONFIG_UPDATE_TFTP is not set -+# CONFIG_ANDROID_AB is not set -+ -+# -+# Blob list -+# -+# CONFIG_BLOBLIST is not set -+CONFIG_SUPPORT_SPL=y -+# CONFIG_VPL is not set -+# CONFIG_FDT_SIMPLEFB is not set -+# CONFIG_FDT_NO_BOOTARGS_OVERRIDE is not set -+# CONFIG_BMP is not set -+CONFIG_POLLER=y -+ -+# -+# Command line interface -+# -+CONFIG_CMDLINE=y -+CONFIG_HUSH_PARSER=y -+CONFIG_CMDLINE_EDITING=y -+# CONFIG_CMDLINE_PS_SUPPORT is not set -+CONFIG_AUTO_COMPLETE=y -+CONFIG_SYS_LONGHELP=y -+CONFIG_SYS_PROMPT_HUSH_PS2="> " -+CONFIG_SYS_MAXARGS=16 -+CONFIG_SYS_CBSIZE=512 -+CONFIG_SYS_PBSIZE=1049 -+CONFIG_SYS_XTRACE=y -+ -+# -+# Commands -+# -+ -+# -+# Info commands -+# -+CONFIG_CMD_BDI=y -+# CONFIG_CMD_BDINFO_EXTRA is not set -+# CONFIG_CMD_CONFIG is not set -+CONFIG_CMD_CONSOLE=y -+# CONFIG_CMD_CPU is not set -+# CONFIG_CMD_LICENSE is not set -+# CONFIG_CMD_PMC is not set -+ -+# -+# Boot commands -+# -+CONFIG_CMD_BOOTD=y -+CONFIG_CMD_BOOTM=y -+# CONFIG_CMD_BOOTDEV is not set -+CONFIG_CMD_BOOTFLOW=y -+# CONFIG_CMD_BOOTMETH is not set -+# CONFIG_CMD_BOOTZ is not set -+CONFIG_CMD_BOOTI=y -+CONFIG_BOOTM_LINUX=y -+# CONFIG_BOOTM_NETBSD is not set -+# CONFIG_BOOTM_OPENRTOS is not set -+# CONFIG_BOOTM_OSE is not set -+# CONFIG_BOOTM_PLAN9 is not set -+# CONFIG_BOOTM_RTEMS is not set -+# CONFIG_CMD_VBE is not set -+# CONFIG_BOOTM_VXWORKS is not set -+CONFIG_SYS_BOOTM_LEN=0x4000000 -+CONFIG_CMD_BOOTMENU=y -+# CONFIG_CMD_ADTIMG is not set -+# CONFIG_CMD_ELF is not set -+CONFIG_CMD_FDT=y -+CONFIG_CMD_GO=y -+CONFIG_CMD_RUN=y -+CONFIG_CMD_IMI=y -+# CONFIG_CMD_IMLS is not set -+CONFIG_CMD_XIMG=y -+# CONFIG_CMD_XXD is not set -+# CONFIG_CMD_THOR_DOWNLOAD is not set -+# CONFIG_CMD_ZBOOT is not set -+ -+# -+# Environment commands -+# -+# CONFIG_CMD_ASKENV is not set -+CONFIG_CMD_EXPORTENV=y -+CONFIG_CMD_IMPORTENV=y -+CONFIG_CMD_EDITENV=y -+# CONFIG_CMD_GREPENV is not set -+CONFIG_CMD_SAVEENV=y -+# CONFIG_CMD_ERASEENV is not set -+CONFIG_CMD_ENV_EXISTS=y -+# CONFIG_CMD_ENV_CALLBACK is not set -+# CONFIG_CMD_ENV_FLAGS is not set -+# CONFIG_CMD_NVEDIT_INDIRECT is not set -+# CONFIG_CMD_NVEDIT_INFO is not set -+# CONFIG_CMD_NVEDIT_LOAD is not set -+# CONFIG_CMD_NVEDIT_SELECT is not set -+ -+# -+# Memory commands -+# -+# CONFIG_CMD_BINOP is not set -+# CONFIG_CMD_BLOBLIST is not set -+CONFIG_CMD_CRC32=y -+# CONFIG_CRC32_VERIFY is not set -+# CONFIG_CMD_EEPROM is not set -+# CONFIG_LOOPW is not set -+# CONFIG_CMD_MD5SUM is not set -+CONFIG_CMD_MEMINFO=y -+CONFIG_CMD_MEMORY=y -+# CONFIG_CMD_MEM_SEARCH is not set -+# CONFIG_CMD_MX_CYCLIC is not set -+CONFIG_CMD_RANDOM=y -+# CONFIG_CMD_MEMTEST is not set -+# CONFIG_CMD_SHA1SUM is not set -+# CONFIG_CMD_STRINGS is not set -+ -+# -+# Compression commands -+# -+CONFIG_CMD_LZMADEC=y -+# CONFIG_CMD_UNLZ4 is not set -+# CONFIG_CMD_UNZIP is not set -+# CONFIG_CMD_ZIP is not set -+ -+# -+# Device access commands -+# -+# CONFIG_CMD_ARMFLASH is not set -+# CONFIG_CMD_ADC is not set -+# CONFIG_CMD_BCB is not set -+# CONFIG_CMD_BIND is not set -+# CONFIG_CMD_CLK is not set -+# CONFIG_CMD_DEMO is not set -+# CONFIG_CMD_DFU is not set -+# CONFIG_CMD_DM is not set -+# CONFIG_CMD_FPGAD is not set -+# CONFIG_CMD_FUSE is not set -+CONFIG_CMD_GPIO=y -+CONFIG_CMD_GPIO_READ=y -+CONFIG_CMD_PWM=y -+CONFIG_CMD_GPT=y -+CONFIG_RANDOM_UUID=y -+CONFIG_CMD_GPT_RENAME=y -+# CONFIG_CMD_IDE is not set -+# CONFIG_CMD_IO is not set -+# CONFIG_CMD_IOTRACE is not set -+# CONFIG_CMD_I2C is not set -+CONFIG_CMD_LOADB=y -+# CONFIG_CMD_LOADM is not set -+CONFIG_CMD_LOADS=y -+# CONFIG_LOADS_ECHO is not set -+# CONFIG_CMD_SAVES is not set -+# CONFIG_SYS_LOADS_BAUD_CHANGE is not set -+CONFIG_CMD_LOADXY_TIMEOUT=90 -+CONFIG_CMD_LSBLK=y -+# CONFIG_CMD_MBR is not set -+CONFIG_CMD_MMC=y -+# CONFIG_CMD_BKOPS_ENABLE is not set -+# CONFIG_CMD_MMC_SWRITE is not set -+# CONFIG_CMD_CLONE is not set -+# CONFIG_CMD_NAND_EXT is not set -+# CONFIG_CMD_OSD is not set -+CONFIG_CMD_PART=y -+CONFIG_CMD_PCI=y -+# CONFIG_CMD_PCI_MPS is not set -+CONFIG_CMD_PINMUX=y -+# CONFIG_CMD_POWEROFF is not set -+CONFIG_CMD_READ=y -+# CONFIG_CMD_SATA is not set -+# CONFIG_CMD_SDRAM is not set -+# CONFIG_CMD_TSI148 is not set -+# CONFIG_CMD_UNIVERSE is not set -+# CONFIG_CMD_USB_SDP is not set -+# CONFIG_CMD_WRITE is not set -+ -+# -+# Shell scripting commands -+# -+# CONFIG_CMD_CAT is not set -+CONFIG_CMD_ECHO=y -+CONFIG_CMD_ITEST=y -+CONFIG_CMD_SOURCE=y -+CONFIG_CMD_SETEXPR=y -+# CONFIG_CMD_SETEXPR_FMT is not set -+ -+# -+# Android support commands -+# -+CONFIG_CMD_NET=y -+CONFIG_CMD_BOOTP=y -+# CONFIG_CMD_DHCP is not set -+# CONFIG_BOOTP_MAY_FAIL is not set -+CONFIG_BOOTP_BOOTPATH=y -+# CONFIG_BOOTP_VENDOREX is not set -+# CONFIG_BOOTP_BOOTFILESIZE is not set -+CONFIG_BOOTP_DNS=y -+# CONFIG_BOOTP_DNS2 is not set -+CONFIG_BOOTP_GATEWAY=y -+CONFIG_BOOTP_HOSTNAME=y -+# CONFIG_BOOTP_PREFER_SERVERIP is not set -+CONFIG_BOOTP_SUBNETMASK=y -+# CONFIG_BOOTP_NISDOMAIN is not set -+# CONFIG_BOOTP_NTPSERVER is not set -+# CONFIG_CMD_PCAP is not set -+CONFIG_BOOTP_VCI_STRING="U-Boot.armv8" -+CONFIG_CMD_TFTPBOOT=y -+CONFIG_CMD_TFTPPUT=y -+# CONFIG_CMD_TFTPSRV is not set -+CONFIG_NET_TFTP_VARS=y -+# CONFIG_CMD_RARP is not set -+# CONFIG_CMD_NFS is not set -+# CONFIG_SYS_DISABLE_AUTOLOAD is not set -+# CONFIG_CMD_WGET is not set -+# CONFIG_CMD_MII is not set -+# CONFIG_CMD_MDIO is not set -+CONFIG_CMD_PING=y -+# CONFIG_CMD_CDP is not set -+# CONFIG_CMD_SNTP is not set -+# CONFIG_CMD_DNS is not set -+# CONFIG_CMD_LINK_LOCAL is not set -+# CONFIG_CMD_ETHSW is not set -+# CONFIG_CMD_PXE is not set -+# CONFIG_CMD_WOL is not set -+ -+# -+# Misc commands -+# -+# CONFIG_CMD_2048 is not set -+# CONFIG_CMD_BSP is not set -+CONFIG_CMD_BLOCK_CACHE=y -+CONFIG_CMD_BUTTON=y -+# CONFIG_CMD_CACHE is not set -+# CONFIG_CMD_CONITRACE is not set -+# CONFIG_CMD_CLS is not set -+# CONFIG_CMD_EXCEPTION is not set -+# CONFIG_CMD_INI is not set -+# CONFIG_CMD_DATE is not set -+# CONFIG_CMD_TIME is not set -+# CONFIG_CMD_GETTIME is not set -+# CONFIG_CMD_PAUSE is not set -+CONFIG_CMD_SLEEP=y -+# CONFIG_CMD_TIMER is not set -+# CONFIG_CMD_SYSBOOT is not set -+# CONFIG_CMD_QFW is not set -+# CONFIG_CMD_PSTORE is not set -+# CONFIG_CMD_TERMINAL is not set -+# CONFIG_CMD_UUID is not set -+ -+# -+# TI specific command line interface -+# -+# CONFIG_CMD_DDR3 is not set -+ -+# -+# Power commands -+# -+# CONFIG_CMD_REGULATOR is not set -+ -+# -+# Security commands -+# -+# CONFIG_CMD_AES is not set -+# CONFIG_CMD_BLOB is not set -+# CONFIG_CMD_HASH is not set -+# CONFIG_CMD_HVC is not set -+CONFIG_CMD_SMC=y -+ -+# -+# Firmware commands -+# -+ -+# -+# Filesystem commands -+# -+# CONFIG_CMD_BTRFS is not set -+# CONFIG_CMD_EROFS is not set -+# CONFIG_CMD_EXT2 is not set -+# CONFIG_CMD_EXT4 is not set -+CONFIG_CMD_FAT=y -+# CONFIG_CMD_SQUASHFS is not set -+CONFIG_CMD_FS_GENERIC=y -+# CONFIG_CMD_FS_UUID is not set -+# CONFIG_CMD_JFFS2 is not set -+# CONFIG_CMD_REISER is not set -+# CONFIG_CMD_ZFS is not set -+ -+# -+# Debug commands -+# -+# CONFIG_CMD_DIAG is not set -+# CONFIG_CMD_EVENT is not set -+# CONFIG_CMD_LOG is not set -+# CONFIG_CMD_UBI is not set -+# CONFIG_MMC_SPEED_MODE_SET is not set -+CONFIG_CMD_GL_BTN=y -+# CONFIG_CMD_SHOW_MTD_LAYOUT is not set -+ -+# -+# Partition Types -+# -+CONFIG_PARTITIONS=y -+# CONFIG_MAC_PARTITION is not set -+CONFIG_DOS_PARTITION=y -+# CONFIG_ISO_PARTITION is not set -+# CONFIG_AMIGA_PARTITION is not set -+CONFIG_EFI_PARTITION=y -+CONFIG_EFI_PARTITION_ENTRIES_NUMBERS=128 -+CONFIG_EFI_PARTITION_ENTRIES_OFF=0 -+CONFIG_PARTITION_UUIDS=y -+CONFIG_PARTITION_TYPE_GUID=y -+CONFIG_SUPPORT_OF_CONTROL=y -+ -+# -+# Device Tree Control -+# -+CONFIG_OF_CONTROL=y -+CONFIG_OF_REAL=y -+# CONFIG_OF_LIVE is not set -+CONFIG_OF_SEPARATE=y -+# CONFIG_OF_EMBED is not set -+# CONFIG_OF_BOARD is not set -+# CONFIG_OF_OMIT_DTB is not set -+CONFIG_DEVICE_TREE_INCLUDES="" -+CONFIG_OF_LIST="mt7981-emmc-rfb" -+# CONFIG_MULTI_DTB_FIT is not set -+CONFIG_OF_TAG_MIGRATE=y -+# CONFIG_OF_DTB_PROPS_REMOVE is not set -+ -+# -+# Environment -+# -+CONFIG_ENV_SUPPORT=y -+CONFIG_SAVEENV=y -+CONFIG_ENV_OVERWRITE=y -+CONFIG_ENV_MIN_ENTRIES=64 -+CONFIG_ENV_MAX_ENTRIES=512 -+# CONFIG_ENV_IS_NOWHERE is not set -+# CONFIG_ENV_IS_IN_EEPROM is not set -+# CONFIG_ENV_IS_IN_FAT is not set -+# CONFIG_ENV_IS_IN_EXT4 is not set -+# CONFIG_ENV_IS_IN_FLASH is not set -+CONFIG_ENV_IS_IN_MMC=y -+# CONFIG_ENV_IS_IN_NAND is not set -+# CONFIG_ENV_IS_IN_NVRAM is not set -+# CONFIG_ENV_IS_IN_ONENAND is not set -+# CONFIG_ENV_IS_IN_REMOTE is not set -+# CONFIG_SYS_REDUNDAND_ENVIRONMENT is not set -+# CONFIG_SYS_RELOC_GD_ENV_ADDR is not set -+CONFIG_SYS_MMC_ENV_DEV=0 -+CONFIG_SYS_MMC_ENV_PART=0 -+# CONFIG_USE_ENV_MMC_PARTITION is not set -+# CONFIG_ENV_MMC_USE_DT is not set -+# CONFIG_USE_DEFAULT_ENV_FILE is not set -+CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y -+# CONFIG_ENV_IMPORT_FDT is not set -+# CONFIG_ENV_APPEND is not set -+# CONFIG_ENV_WRITEABLE_LIST is not set -+# CONFIG_ENV_ACCESS_IGNORE_FORCE is not set -+# CONFIG_USE_BOOTFILE is not set -+# CONFIG_USE_ENTERPRISEAUTHORIZATION is not set -+# CONFIG_USE_ETHPRIME is not set -+# CONFIG_USE_HOSTNAME is not set -+# CONFIG_VERSION_VARIABLE is not set -+CONFIG_NET=y -+CONFIG_ARP_TIMEOUT=5000 -+CONFIG_NET_RETRY_COUNT=5 -+# CONFIG_PROT_UDP is not set -+CONFIG_BOOTDEV_ETH=y -+# CONFIG_BOOTP_SEND_HOSTNAME is not set -+CONFIG_NET_RANDOM_ETHADDR=y -+# CONFIG_NETCONSOLE is not set -+# CONFIG_IP_DEFRAG is not set -+# CONFIG_SYS_FAULT_ECHO_LINK_DOWN is not set -+CONFIG_TFTP_BLOCKSIZE=1468 -+# CONFIG_TFTP_PORT is not set -+CONFIG_TFTP_WINDOWSIZE=1 -+# CONFIG_TFTP_TSIZE is not set -+# CONFIG_SERVERIP_FROM_PROXYDHCP is not set -+CONFIG_SERVERIP_FROM_PROXYDHCP_DELAY_MS=100 -+# CONFIG_KEEP_SERVERADDR is not set -+# CONFIG_UDP_CHECKSUM is not set -+# CONFIG_BOOTP_SERVERIP is not set -+CONFIG_BOOTP_MAX_ROOT_PATH_LEN=64 -+# CONFIG_USE_GATEWAYIP is not set -+CONFIG_USE_IPADDR=y -+CONFIG_IPADDR="192.168.1.1" -+CONFIG_USE_NETMASK=y -+CONFIG_NETMASK="255.255.255.0" -+# CONFIG_USE_ROOTPATH is not set -+CONFIG_USE_SERVERIP=y -+CONFIG_SERVERIP="192.168.1.2" -+CONFIG_PROT_TCP=y -+# CONFIG_PROT_TCP_SACK is not set -+# CONFIG_IPV6 is not set -+CONFIG_MTK_TCP=y -+CONFIG_MTK_HTTPD=y -+# CONFIG_NET_FORCE_IPADDR is not set -+CONFIG_SYS_RX_ETH_BUFFER=4 -+ -+# -+# Device Drivers -+# -+ -+# -+# Generic Driver Options -+# -+CONFIG_DM=y -+CONFIG_DM_WARN=y -+# CONFIG_DM_DEBUG is not set -+# CONFIG_DM_STATS is not set -+CONFIG_DM_DEVICE_REMOVE=y -+CONFIG_DM_STDIO=y -+CONFIG_DM_SEQ_ALIAS=y -+# CONFIG_DM_DMA is not set -+CONFIG_REGMAP=y -+CONFIG_SYSCON=y -+# CONFIG_DEVRES is not set -+CONFIG_SIMPLE_BUS=y -+# CONFIG_SIMPLE_BUS_CORRECT_RANGE is not set -+# CONFIG_SIMPLE_PM_BUS is not set -+CONFIG_OF_TRANSLATE=y -+# CONFIG_TRANSLATION_OFFSET is not set -+CONFIG_DM_DEV_READ_INLINE=y -+# CONFIG_OFNODE_MULTI_TREE is not set -+# CONFIG_BOUNCE_BUFFER is not set -+# CONFIG_ADC is not set -+# CONFIG_ADC_EXYNOS is not set -+# CONFIG_ADC_SANDBOX is not set -+# CONFIG_SARADC_MESON is not set -+# CONFIG_SARADC_ROCKCHIP is not set -+# CONFIG_ADC_IMX93 is not set -+# CONFIG_SATA is not set -+# CONFIG_SCSI_AHCI is not set -+ -+# -+# SATA/SCSI device support -+# -+# CONFIG_AXI is not set -+ -+# -+# Bus devices -+# -+CONFIG_BLK=y -+CONFIG_BLOCK_CACHE=y -+# CONFIG_BLKMAP is not set -+# CONFIG_EFI_MEDIA is not set -+# CONFIG_IDE is not set -+# CONFIG_LBA48 is not set -+# CONFIG_SYS_64BIT_LBA is not set -+# CONFIG_BOOTCOUNT_LIMIT is not set -+ -+# -+# Button Support -+# -+CONFIG_BUTTON=y -+# CONFIG_BUTTON_ADC is not set -+CONFIG_BUTTON_GPIO=y -+ -+# -+# Cache Controller drivers -+# -+# CONFIG_CACHE is not set -+# CONFIG_L2X0_CACHE is not set -+# CONFIG_V5L2_CACHE is not set -+# CONFIG_NCORE_CACHE is not set -+# CONFIG_SIFIVE_CCACHE is not set -+ -+# -+# Clock -+# -+CONFIG_CLK=y -+# CONFIG_CLK_CCF is not set -+# CONFIG_CLK_CDCE9XX is not set -+# CONFIG_CLK_ICS8N3QV01 is not set -+# CONFIG_CLK_K210 is not set -+# CONFIG_CLK_MPC83XX is not set -+# CONFIG_CLK_XLNX_CLKWZRD is not set -+# CONFIG_CLK_AT91 is not set -+# CONFIG_CLK_RCAR is not set -+# CONFIG_CLK_RCAR_CPG_LIB is not set -+# CONFIG_CLK_SIFIVE is not set -+# CONFIG_CLK_TI_AM3_DPLL is not set -+# CONFIG_CLK_TI_CTRL is not set -+# CONFIG_CLK_TI_GATE is not set -+# CONFIG_CLK_K3 is not set -+CONFIG_CPU=y -+# CONFIG_CPU_IMX is not set -+ -+# -+# Hardware crypto devices -+# -+# CONFIG_DM_HASH is not set -+# CONFIG_FSL_CAAM is not set -+CONFIG_CAAM_64BIT=y -+# CONFIG_SYS_FSL_SEC_BE is not set -+# CONFIG_SYS_FSL_SEC_LE is not set -+# CONFIG_NPCM_AES is not set -+# CONFIG_NPCM_SHA is not set -+# CONFIG_DDR_SPD is not set -+# CONFIG_IMX_SNPS_DDR_PHY is not set -+ -+# -+# Demo for driver model -+# -+# CONFIG_DM_DEMO is not set -+ -+# -+# DFU support -+# -+ -+# -+# DMA Support -+# -+# CONFIG_DMA is not set -+# CONFIG_DMA_LPC32XX is not set -+# CONFIG_TI_EDMA3 is not set -+# CONFIG_DMA_LEGACY is not set -+ -+# -+# Extcon Support -+# -+# CONFIG_EXTCON is not set -+ -+# -+# Fastboot support -+# -+# CONFIG_UDP_FUNCTION_FASTBOOT is not set -+# CONFIG_TCP_FUNCTION_FASTBOOT is not set -+CONFIG_FIRMWARE=y -+CONFIG_ARM_PSCI_FW=y -+# CONFIG_ZYNQMP_FIRMWARE is not set -+# CONFIG_ARM_SMCCC_FEATURES is not set -+# CONFIG_SCMI_FIRMWARE is not set -+# CONFIG_DM_FUZZING_ENGINE is not set -+ -+# -+# FPGA support -+# -+# CONFIG_FPGA_ALTERA is not set -+# CONFIG_FPGA_SOCFPGA is not set -+# CONFIG_FPGA_LATTICE is not set -+# CONFIG_FPGA_XILINX is not set -+# CONFIG_DM_FPGA is not set -+# CONFIG_FWU_MDATA is not set -+CONFIG_GPIO=y -+# CONFIG_GPIO_HOG is not set -+# CONFIG_DM_GPIO_LOOKUP_LABEL is not set -+# CONFIG_ALTERA_PIO is not set -+# CONFIG_BCM2835_GPIO is not set -+# CONFIG_DWAPB_GPIO is not set -+# CONFIG_AT91_GPIO is not set -+# CONFIG_ATMEL_PIO4 is not set -+# CONFIG_ASPEED_GPIO is not set -+# CONFIG_DA8XX_GPIO is not set -+# CONFIG_FXL6408_GPIO is not set -+# CONFIG_HIKEY_GPIO is not set -+# CONFIG_INTEL_BROADWELL_GPIO is not set -+# CONFIG_INTEL_GPIO is not set -+# CONFIG_INTEL_ICH6_GPIO is not set -+# CONFIG_IMX_RGPIO2P is not set -+# CONFIG_IPROC_GPIO is not set -+# CONFIG_HSDK_CREG_GPIO is not set -+# CONFIG_KIRKWOOD_GPIO is not set -+# CONFIG_LPC32XX_GPIO is not set -+# CONFIG_MAX7320_GPIO is not set -+# CONFIG_MCP230XX_GPIO is not set -+# CONFIG_MSM_GPIO is not set -+# CONFIG_MXC_GPIO is not set -+# CONFIG_MXS_GPIO is not set -+# CONFIG_NPCM_GPIO is not set -+# CONFIG_CMD_PCA953X is not set -+# CONFIG_PCF8575_GPIO is not set -+# CONFIG_ROCKCHIP_GPIO is not set -+# CONFIG_XILINX_GPIO is not set -+# CONFIG_TCA642X is not set -+# CONFIG_TEGRA_GPIO is not set -+# CONFIG_TEGRA186_GPIO is not set -+# CONFIG_VYBRID_GPIO is not set -+# CONFIG_SIFIVE_GPIO is not set -+# CONFIG_ZYNQ_GPIO is not set -+# CONFIG_DM_74X164 is not set -+# CONFIG_DM_PCA953X is not set -+# CONFIG_PCA953X is not set -+# CONFIG_MPC8XXX_GPIO is not set -+# CONFIG_MPC8XX_GPIO is not set -+# CONFIG_NX_GPIO is not set -+# CONFIG_NOMADIK_GPIO is not set -+# CONFIG_ZYNQMP_GPIO_MODEPIN is not set -+# CONFIG_SLG7XL45106_I2C_GPO is not set -+# CONFIG_TURRIS_OMNIA_MCU is not set -+# CONFIG_FTGPIO010 is not set -+# CONFIG_ADP5585_GPIO is not set -+ -+# -+# Hardware Spinlock Support -+# -+# CONFIG_DM_HWSPINLOCK is not set -+CONFIG_I2C=y -+CONFIG_DM_I2C=y -+# CONFIG_SPL_SYS_I2C_LEGACY is not set -+# CONFIG_I2C_SET_DEFAULT_BUS_NUM is not set -+# CONFIG_DM_I2C_GPIO is not set -+# CONFIG_SYS_I2C_IPROC is not set -+# CONFIG_SYS_I2C_FSL is not set -+# CONFIG_SYS_I2C_CADENCE is not set -+# CONFIG_SYS_I2C_DW is not set -+# CONFIG_SYS_I2C_INTEL is not set -+# CONFIG_SYS_I2C_IMX_LPI2C is not set -+CONFIG_SYS_I2C_MTK=y -+# CONFIG_SYS_I2C_MICROCHIP is not set -+# CONFIG_SYS_I2C_MXC is not set -+# CONFIG_SYS_I2C_NEXELL is not set -+# CONFIG_SYS_I2C_NPCM is not set -+# CONFIG_SYS_I2C_OCORES is not set -+# CONFIG_SYS_I2C_ROCKCHIP is not set -+# CONFIG_SYS_I2C_SOFT is not set -+# CONFIG_SYS_I2C_MV is not set -+# CONFIG_SYS_I2C_MVTWSI is not set -+# CONFIG_SYS_I2C_XILINX_XIIC is not set -+# CONFIG_SYS_I2C_IHS is not set -+# CONFIG_I2C_MUX is not set -+CONFIG_INPUT=y -+# CONFIG_DM_KEYBOARD is not set -+# CONFIG_CROS_EC_KEYB is not set -+# CONFIG_TEGRA_KEYBOARD is not set -+# CONFIG_TWL4030_INPUT is not set -+ -+# -+# IOMMU device drivers -+# -+# CONFIG_IOMMU is not set -+ -+# -+# LED Support -+# -+# CONFIG_LED is not set -+# CONFIG_LED_STATUS is not set -+ -+# -+# Mailbox Controller Support -+# -+# CONFIG_DM_MAILBOX is not set -+ -+# -+# Memory Controller drivers -+# -+# CONFIG_MEMORY is not set -+# CONFIG_ATMEL_EBI is not set -+# CONFIG_MFD_ATMEL_SMC is not set -+ -+# -+# Multifunction device drivers -+# -+# CONFIG_MISC is not set -+# CONFIG_NVMEM is not set -+# CONFIG_SPL_NVMEM is not set -+# CONFIG_SMSC_LPC47M is not set -+# CONFIG_SMSC_SIO1007 is not set -+# CONFIG_CROS_EC is not set -+# CONFIG_DS4510 is not set -+# CONFIG_FSL_SEC_MON is not set -+# CONFIG_IRQ is not set -+# CONFIG_NPCM_HOST is not set -+# CONFIG_NUVOTON_NCT6102D is not set -+# CONFIG_PWRSEQ is not set -+# CONFIG_PCA9551_LED is not set -+# CONFIG_TEST_DRV is not set -+# CONFIG_USB_HUB_USB251XB is not set -+# CONFIG_TWL4030_LED is not set -+# CONFIG_WINBOND_W83627 is not set -+# CONFIG_FS_LOADER is not set -+# CONFIG_SL28CPLD is not set -+ -+# -+# MMC Host controller Support -+# -+CONFIG_MMC=y -+CONFIG_MMC_WRITE=y -+# CONFIG_MMC_BROKEN_CD is not set -+CONFIG_DM_MMC=y -+# CONFIG_ARM_PL180_MMCI is not set -+CONFIG_MMC_QUIRKS=y -+CONFIG_SYS_MMC_MAX_BLK_COUNT=65535 -+CONFIG_MMC_HW_PARTITIONING=y -+# CONFIG_SUPPORT_EMMC_RPMB is not set -+CONFIG_SUPPORT_EMMC_BOOT=y -+# CONFIG_MMC_IO_VOLTAGE is not set -+# CONFIG_MMC_HS400_ES_SUPPORT is not set -+# CONFIG_MMC_HS400_SUPPORT is not set -+CONFIG_MMC_HS200_SUPPORT=y -+CONFIG_MMC_VERBOSE=y -+# CONFIG_MMC_TRACE is not set -+# CONFIG_MMC_DW is not set -+# CONFIG_MMC_MXC is not set -+# CONFIG_MMC_OMAP_HS is not set -+# CONFIG_MMC_SDHCI is not set -+# CONFIG_MMC_PITON is not set -+# CONFIG_STM32_SDMMC2 is not set -+# CONFIG_FTSDC010 is not set -+CONFIG_MMC_MTK=y -+# CONFIG_MMC_MTK_DEBUG is not set -+# CONFIG_FSL_ESDHC is not set -+# CONFIG_FSL_ESDHC_IMX is not set -+ -+# -+# MTD Support -+# -+# CONFIG_MTD is not set -+# CONFIG_DM_MTD is not set -+# CONFIG_MTD_NOR_FLASH is not set -+# CONFIG_FLASH_CFI_DRIVER is not set -+# CONFIG_HBMC_AM654 is not set -+# CONFIG_SAMSUNG_ONENAND is not set -+# CONFIG_USE_SYS_MAX_FLASH_BANKS is not set -+# CONFIG_MTK_SPI_NAND is not set -+# CONFIG_MTD_RAW_NAND is not set -+# CONFIG_NMBM is not set -+ -+# -+# SPI Flash Support -+# -+# CONFIG_SPI_FLASH is not set -+ -+# -+# UBI support -+# -+# CONFIG_UBI_SILENCE_MSG is not set -+# CONFIG_MTD_UBI is not set -+# CONFIG_NVMXIP is not set -+# CONFIG_NVMXIP_QSPI is not set -+ -+# -+# Multiplexer drivers -+# -+# CONFIG_MULTIPLEXER is not set -+# CONFIG_BITBANGMII is not set -+# CONFIG_MV88E6352_SWITCH is not set -+CONFIG_PHYLIB=y -+# CONFIG_PHY_ADDR_ENABLE is not set -+# CONFIG_B53_SWITCH is not set -+# CONFIG_MV88E61XX_SWITCH is not set -+# CONFIG_PHYLIB_10G is not set -+# CONFIG_PHY_ADIN is not set -+# CONFIG_PHY_AIROHA is not set -+# CONFIG_PHY_AQUANTIA is not set -+# CONFIG_PHY_ATHEROS is not set -+# CONFIG_SPL_PHY_ATHEROS is not set -+# CONFIG_PHY_BROADCOM is not set -+# CONFIG_PHY_CORTINA is not set -+# CONFIG_PHY_DAVICOM is not set -+# CONFIG_PHY_ET1011C is not set -+# CONFIG_PHY_LXT is not set -+# CONFIG_PHY_MARVELL is not set -+# CONFIG_PHY_MARVELL_10G is not set -+# CONFIG_PHY_MESON_GXL is not set -+# CONFIG_PHY_MICREL is not set -+# CONFIG_PHY_MOTORCOMM is not set -+# CONFIG_PHY_MSCC is not set -+# CONFIG_PHY_NATSEMI is not set -+# CONFIG_PHY_NXP_C45_TJA11XX is not set -+# CONFIG_PHY_NXP_TJA11XX is not set -+# CONFIG_PHY_REALTEK is not set -+# CONFIG_PHY_SMSC is not set -+# CONFIG_PHY_TERANETICS is not set -+# CONFIG_PHY_TI is not set -+# CONFIG_PHY_TI_DP83867 is not set -+# CONFIG_PHY_TI_DP83869 is not set -+# CONFIG_PHY_TI_GENERIC is not set -+# CONFIG_PHY_VITESSE is not set -+# CONFIG_PHY_XILINX is not set -+# CONFIG_PHY_XILINX_GMII2RGMII is not set -+# CONFIG_PHY_XWAY is not set -+# CONFIG_PHY_ETHERNET_ID is not set -+CONFIG_PHY_FIXED=y -+# CONFIG_PHY_NCSI is not set -+# CONFIG_FSL_MEMAC is not set -+CONFIG_PHY_RESET_DELAY=0 -+# CONFIG_FSL_PFE is not set -+CONFIG_ETH=y -+CONFIG_DM_ETH=y -+# CONFIG_DM_MDIO is not set -+# CONFIG_DM_ETH_PHY is not set -+CONFIG_NETDEVICES=y -+# CONFIG_PHY_GIGE is not set -+# CONFIG_ALTERA_TSE is not set -+# CONFIG_BCM_SF2_ETH is not set -+# CONFIG_BCMGENET is not set -+# CONFIG_BNXT_ETH is not set -+# CONFIG_CALXEDA_XGMAC is not set -+# CONFIG_DRIVER_DM9000 is not set -+# CONFIG_DWC_ETH_QOS is not set -+# CONFIG_E1000 is not set -+# CONFIG_EEPRO100 is not set -+# CONFIG_ETH_DESIGNWARE is not set -+# CONFIG_ETH_DESIGNWARE_MESON8B is not set -+# CONFIG_ETHOC is not set -+# CONFIG_FMAN_ENET is not set -+# CONFIG_FTMAC100 is not set -+# CONFIG_FTGMAC100 is not set -+# CONFIG_MCFFEC is not set -+# CONFIG_FSLDMAFEC is not set -+# CONFIG_KS8851_MLL is not set -+# CONFIG_LITEETH is not set -+# CONFIG_MACB is not set -+# CONFIG_NET_NPCM750 is not set -+# CONFIG_PCH_GBE is not set -+# CONFIG_RGMII is not set -+# CONFIG_MII is not set -+# CONFIG_RMII is not set -+# CONFIG_PCNET is not set -+# CONFIG_QE_UEC is not set -+# CONFIG_RTL8139 is not set -+# CONFIG_RTL8169 is not set -+# CONFIG_SMC911X is not set -+# CONFIG_SUN7I_GMAC is not set -+# CONFIG_SUN4I_EMAC is not set -+# CONFIG_SUN8I_EMAC is not set -+# CONFIG_SH_ETHER is not set -+# CONFIG_DRIVER_TI_CPSW is not set -+# CONFIG_DRIVER_TI_EMAC is not set -+# CONFIG_DRIVER_TI_KEYSTONE_NET is not set -+# CONFIG_TULIP is not set -+# CONFIG_XILINX_AXIEMAC is not set -+# CONFIG_VSC7385_ENET is not set -+# CONFIG_XILINX_EMACLITE is not set -+# CONFIG_ZYNQ_GEM is not set -+# CONFIG_SYS_DPAA_QBMAN is not set -+# CONFIG_TSEC_ENET is not set -+CONFIG_MEDIATEK_ETH=y -+# CONFIG_HIGMACV300_ETH is not set -+# CONFIG_NVME is not set -+# CONFIG_NVME_APPLE is not set -+# CONFIG_NVME_PCI is not set -+# CONFIG_DM_PCI_COMPAT is not set -+CONFIG_PCI_PNP=y -+# CONFIG_SPL_PCI_PNP is not set -+# CONFIG_PCI_REGION_MULTI_ENTRY is not set -+# CONFIG_PCI_CONFIG_HOST_BRIDGE is not set -+# CONFIG_PCI_SRIOV is not set -+CONFIG_PCI_ENHANCED_ALLOCATION=y -+# CONFIG_PCI_ARID is not set -+# CONFIG_PCIE_ECAM_GENERIC is not set -+# CONFIG_PCIE_ECAM_SYNQUACER is not set -+# CONFIG_PCI_PHYTIUM is not set -+# CONFIG_PCIE_FSL is not set -+# CONFIG_PCI_MPC85XX is not set -+# CONFIG_PCI_XILINX is not set -+# CONFIG_PCIE_LAYERSCAPE_RC is not set -+# CONFIG_PCIE_LAYERSCAPE_EP is not set -+# CONFIG_PCIE_LAYERSCAPE_GEN4 is not set -+# CONFIG_PCIE_INTEL_FPGA is not set -+# CONFIG_PCIE_IPROC is not set -+# CONFIG_PCI_KEYSTONE is not set -+CONFIG_PCIE_MEDIATEK=y -+ -+# -+# PCI Endpoint -+# -+# CONFIG_PCI_ENDPOINT is not set -+# CONFIG_X86_PCH7 is not set -+# CONFIG_X86_PCH9 is not set -+ -+# -+# PHY Subsystem -+# -+# CONFIG_PHY is not set -+# CONFIG_MIPI_DPHY_HELPERS is not set -+ -+# -+# Rockchip PHY driver -+# -+# CONFIG_PHY_CADENCE_SIERRA is not set -+# CONFIG_PHY_CADENCE_TORRENT is not set -+# CONFIG_MVEBU_COMPHY_SUPPORT is not set -+ -+# -+# Pin controllers -+# -+CONFIG_PINCTRL=y -+CONFIG_PINCTRL_FULL=y -+CONFIG_PINCTRL_GENERIC=y -+CONFIG_PINMUX=y -+CONFIG_PINCONF=y -+CONFIG_PINCONF_RECURSIVE=y -+# CONFIG_PINCTRL_AT91 is not set -+# CONFIG_PINCTRL_AT91PIO4 is not set -+# CONFIG_PINCTRL_INTEL is not set -+# CONFIG_PINCTRL_QE is not set -+# CONFIG_PINCTRL_ROCKCHIP_RV1108 is not set -+# CONFIG_PINCTRL_SINGLE is not set -+# CONFIG_PINCTRL_STM32 is not set -+# CONFIG_PINCTRL_STMFX is not set -+# CONFIG_PINCTRL_K210 is not set -+CONFIG_PINCTRL_MTK=y -+# CONFIG_PINCTRL_MT7622 is not set -+# CONFIG_PINCTRL_MT7623 is not set -+# CONFIG_PINCTRL_MT7629 is not set -+CONFIG_PINCTRL_MT7981=y -+# CONFIG_PINCTRL_MT7986 is not set -+# CONFIG_PINCTRL_MT7988 is not set -+# CONFIG_PINCTRL_MT8512 is not set -+# CONFIG_PINCTRL_MT8516 is not set -+# CONFIG_PINCTRL_MT8518 is not set -+CONFIG_POWER=y -+# CONFIG_POWER_LEGACY is not set -+# CONFIG_ACPI_PMC is not set -+ -+# -+# Power Domain Support -+# -+CONFIG_POWER_DOMAIN=y -+# CONFIG_APPLE_PMGR_POWER_DOMAIN is not set -+CONFIG_MTK_POWER_DOMAIN=y -+# CONFIG_DM_PMIC is not set -+# CONFIG_PMIC_TPS65217 is not set -+# CONFIG_POWER_TPS65218 is not set -+# CONFIG_POWER_TPS62362 is not set -+CONFIG_DM_REGULATOR=y -+# CONFIG_REGULATOR_PWM is not set -+CONFIG_DM_REGULATOR_COMMON=y -+CONFIG_DM_REGULATOR_FIXED=y -+CONFIG_DM_REGULATOR_GPIO=y -+# CONFIG_DM_REGULATOR_PBIAS is not set -+# CONFIG_DM_REGULATOR_TPS62360 is not set -+# CONFIG_DM_REGULATOR_ANATOP is not set -+# CONFIG_DM_REGULATOR_SCMI is not set -+# CONFIG_TPS6586X_POWER is not set -+# CONFIG_POWER_MT6323 is not set -+CONFIG_DM_PWM=y -+# CONFIG_PWM_ASPEED is not set -+# CONFIG_PWM_CADENCE_TTC is not set -+# CONFIG_PWM_CROS_EC is not set -+# CONFIG_PWM_EXYNOS is not set -+# CONFIG_PWM_IMX is not set -+# CONFIG_PWM_MESON is not set -+CONFIG_PWM_MTK=y -+# CONFIG_PWM_ROCKCHIP is not set -+# CONFIG_PWM_SANDBOX is not set -+# CONFIG_PWM_SIFIVE is not set -+# CONFIG_PWM_TEGRA is not set -+# CONFIG_PWM_SUNXI is not set -+# CONFIG_U_QE is not set -+# CONFIG_RAM is not set -+ -+# -+# Reboot Mode Support -+# -+# CONFIG_DM_REBOOT_MODE is not set -+ -+# -+# Remote Processor drivers -+# -+ -+# -+# Reset Controller Support -+# -+# CONFIG_RESET_AST2500 is not set -+# CONFIG_RESET_AST2600 is not set -+CONFIG_RESET_MEDIATEK=y -+# CONFIG_RESET_HISILICON is not set -+# CONFIG_RESET_SYSCON is not set -+# CONFIG_RESET_SCMI is not set -+# CONFIG_RESET_DRA7 is not set -+# CONFIG_DM_RNG is not set -+ -+# -+# Real Time Clock -+# -+# CONFIG_DM_RTC is not set -+# CONFIG_RTC_ENABLE_32KHZ_OUTPUT is not set -+# CONFIG_RTC_DS1337 is not set -+# CONFIG_RTC_DS1338 is not set -+# CONFIG_RTC_DS1374 is not set -+# CONFIG_RTC_DS3231 is not set -+# CONFIG_RTC_PCF8563 is not set -+# CONFIG_RTC_PT7C4338 is not set -+# CONFIG_RTC_PL031 is not set -+# CONFIG_RTC_S35392A is not set -+# CONFIG_RTC_MC13XXX is not set -+# CONFIG_RTC_MC146818 is not set -+# CONFIG_RTC_M41T62 is not set -+# CONFIG_SCSI is not set -+# CONFIG_DM_SCSI is not set -+CONFIG_SERIAL=y -+CONFIG_BAUDRATE=115200 -+CONFIG_REQUIRE_SERIAL_CONSOLE=y -+# CONFIG_SPECIFY_CONSOLE_INDEX is not set -+CONFIG_SERIAL_PRESENT=y -+CONFIG_DM_SERIAL=y -+# CONFIG_SERIAL_RX_BUFFER is not set -+# CONFIG_SERIAL_PUTS is not set -+# CONFIG_SERIAL_SEARCH_ALL is not set -+# CONFIG_SERIAL_PROBE_ALL is not set -+# CONFIG_VPL_DM_SERIAL is not set -+CONFIG_DEBUG_UART_MTK=y -+CONFIG_DEBUG_UART_SHIFT=0 -+# CONFIG_DEBUG_UART_ANNOUNCE is not set -+# CONFIG_DEBUG_UART_SKIP_INIT is not set -+# CONFIG_ALTERA_JTAG_UART is not set -+# CONFIG_ALTERA_UART is not set -+# CONFIG_ARC_SERIAL is not set -+# CONFIG_ARM_DCC is not set -+# CONFIG_ATMEL_USART is not set -+# CONFIG_BCM6345_SERIAL is not set -+# CONFIG_COREBOOT_SERIAL is not set -+# CONFIG_CORTINA_UART is not set -+# CONFIG_FSL_LINFLEXUART is not set -+# CONFIG_FSL_LPUART is not set -+# CONFIG_MVEBU_A3700_UART is not set -+# CONFIG_MCFUART is not set -+# CONFIG_NULLDEV_SERIAL is not set -+# CONFIG_SYS_NS16550 is not set -+# CONFIG_PL01X_SERIAL is not set -+# CONFIG_ROCKCHIP_SERIAL is not set -+# CONFIG_XILINX_UARTLITE is not set -+# CONFIG_MSM_SERIAL is not set -+# CONFIG_MSM_GENI_SERIAL is not set -+# CONFIG_MXS_AUART_SERIAL is not set -+# CONFIG_OMAP_SERIAL is not set -+# CONFIG_SIFIVE_SERIAL is not set -+# CONFIG_ZYNQ_SERIAL is not set -+CONFIG_MTK_SERIAL=y -+# CONFIG_MT7620_SERIAL is not set -+# CONFIG_NPCM_SERIAL is not set -+# CONFIG_SMEM is not set -+ -+# -+# Sound support -+# -+# CONFIG_SOUND is not set -+# CONFIG_SOUND_MAX98357A is not set -+ -+# -+# SOC (System On Chip) specific Drivers -+# -+# CONFIG_SOC_DEVICE is not set -+# CONFIG_SOC_TI is not set -+# CONFIG_SPI is not set -+ -+# -+# SPMI support -+# -+# CONFIG_SPMI is not set -+# CONFIG_SYSINFO is not set -+ -+# -+# System reset device drivers -+# -+# CONFIG_SYSRESET is not set -+# CONFIG_TEE is not set -+# CONFIG_DM_THERMAL is not set -+ -+# -+# Timer Support -+# -+CONFIG_TIMER=y -+# CONFIG_TIMER_EARLY is not set -+# CONFIG_ALTERA_TIMER is not set -+# CONFIG_ARM_TWD_TIMER is not set -+# CONFIG_AST_TIMER is not set -+# CONFIG_ATCPIT100_TIMER is not set -+# CONFIG_ATMEL_PIT_TIMER is not set -+# CONFIG_CADENCE_TTC_TIMER is not set -+# CONFIG_DESIGNWARE_APB_TIMER is not set -+# CONFIG_FTTMR010_TIMER is not set -+# CONFIG_GXP_TIMER is not set -+# CONFIG_MPC83XX_TIMER is not set -+# CONFIG_RENESAS_OSTM_TIMER is not set -+# CONFIG_NOMADIK_MTU_TIMER is not set -+# CONFIG_NPCM_TIMER is not set -+# CONFIG_OMAP_TIMER is not set -+# CONFIG_ORION_TIMER is not set -+# CONFIG_ROCKCHIP_TIMER is not set -+# CONFIG_ARM_GLOBAL_TIMER is not set -+# CONFIG_SP804_TIMER is not set -+# CONFIG_STM32_TIMER is not set -+# CONFIG_TEGRA_TIMER is not set -+CONFIG_MTK_TIMER=y -+# CONFIG_MCHP_PIT64B_TIMER is not set -+# CONFIG_IMX_GPT_TIMER is not set -+# CONFIG_XILINX_TIMER is not set -+ -+# -+# TPM support -+# -+# CONFIG_USB is not set -+ -+# -+# UFS Host Controller Support -+# -+# CONFIG_TI_J721E_UFS is not set -+ -+# -+# Graphics support -+# -+# CONFIG_VIDEO is not set -+ -+# -+# VirtIO Drivers -+# -+# CONFIG_VIRTIO_MMIO is not set -+# CONFIG_VIRTIO_PCI is not set -+# CONFIG_VIRTIO_PCI_LEGACY is not set -+ -+# -+# 1-Wire support -+# -+# CONFIG_W1 is not set -+ -+# -+# 1-wire EEPROM support -+# -+# CONFIG_W1_EEPROM is not set -+ -+# -+# Watchdog Timer Support -+# -+# CONFIG_WATCHDOG is not set -+CONFIG_WATCHDOG_TIMEOUT_MSECS=60000 -+# CONFIG_IMX_WATCHDOG is not set -+# CONFIG_ULP_WATCHDOG is not set -+# CONFIG_WDT is not set -+# CONFIG_PHYS_TO_BUS is not set -+ -+# -+# File systems -+# -+# CONFIG_FS_BTRFS is not set -+# CONFIG_FS_CBFS is not set -+# CONFIG_FS_EXT4 is not set -+CONFIG_FS_FAT=y -+CONFIG_FAT_WRITE=y -+CONFIG_FS_FAT_MAX_CLUSTSIZE=65536 -+# CONFIG_FS_JFFS2 is not set -+# CONFIG_UBIFS_SILENCE_MSG is not set -+# CONFIG_UBIFS_SILENCE_DEBUG_DUMP is not set -+# CONFIG_FS_CRAMFS is not set -+# CONFIG_YAFFS2 is not set -+# CONFIG_FS_SQUASHFS is not set -+# CONFIG_FS_EROFS is not set -+ -+# -+# Library routines -+# -+# CONFIG_ADDR_MAP is not set -+# CONFIG_SYS_TIMER_COUNTS_DOWN is not set -+# CONFIG_PHYSMEM is not set -+# CONFIG_BCH is not set -+# CONFIG_CC_OPTIMIZE_LIBS_FOR_SPEED is not set -+CONFIG_CHARSET=y -+# CONFIG_DYNAMIC_CRC_TABLE is not set -+CONFIG_LIB_UUID=y -+# CONFIG_SEMIHOSTING is not set -+CONFIG_PRINTF=y -+CONFIG_SPRINTF=y -+CONFIG_STRTO=y -+CONFIG_SYS_HZ=1000 -+# CONFIG_PANIC_HANG is not set -+CONFIG_REGEX=y -+CONFIG_LIB_RAND=y -+# CONFIG_LIB_HW_RAND is not set -+CONFIG_SUPPORT_ACPI=y -+# CONFIG_ACPI is not set -+# CONFIG_BITREVERSE is not set -+# CONFIG_TRACE is not set -+# CONFIG_CIRCBUF is not set -+# CONFIG_CMD_DHRYSTONE is not set -+ -+# -+# Security support -+# -+# CONFIG_AES is not set -+# CONFIG_ECDSA is not set -+# CONFIG_RSA is not set -+# CONFIG_TPM is not set -+ -+# -+# Android Verified Boot -+# -+ -+# -+# Hashing Support -+# -+# CONFIG_BLAKE2 is not set -+CONFIG_SHA1=y -+CONFIG_SHA256=y -+# CONFIG_SHA512 is not set -+# CONFIG_SHA384 is not set -+# CONFIG_SHA_HW_ACCEL is not set -+CONFIG_MD5=y -+CONFIG_CRC8=y -+CONFIG_CRC32=y -+ -+# -+# Compression Support -+# -+# CONFIG_LZ4 is not set -+CONFIG_LZMA=y -+# CONFIG_LZO is not set -+CONFIG_GZIP=y -+# CONFIG_ZLIB_UNCOMPRESS is not set -+# CONFIG_BZIP2 is not set -+CONFIG_ZLIB=y -+# CONFIG_ZSTD is not set -+CONFIG_VPL_LZMA=y -+# CONFIG_SPL_GZIP is not set -+# CONFIG_ERRNO_STR is not set -+CONFIG_HEXDUMP=y -+# CONFIG_GETOPT is not set -+CONFIG_OF_LIBFDT=y -+CONFIG_OF_LIBFDT_ASSUME_MASK=0 -+CONFIG_SYS_FDT_PAD=0x3000 -+ -+# -+# System tables -+# -+# CONFIG_LIB_RATIONAL is not set -+# CONFIG_SMBIOS_PARSER is not set -+# CONFIG_EFI_LOADER is not set -+# CONFIG_OPTEE_LIB is not set -+# CONFIG_OPTEE_IMAGE is not set -+# CONFIG_BOOTM_OPTEE is not set -+# CONFIG_TEST_FDTDEC is not set -+CONFIG_LMB=y -+CONFIG_LMB_USE_MAX_REGIONS=y -+CONFIG_LMB_MAX_REGIONS=64 -+# CONFIG_PHANDLE_CHECK_SEQ is not set -+ -+# -+# FWU Multi Bank Updates -+# -+# CONFIG_POST is not set -+ -+# -+# Unit tests -+# -+# CONFIG_UNIT_TEST is not set -+ -+# -+# Tools options -+# -+CONFIG_MKIMAGE_DTC_PATH="dtc" -+CONFIG_TOOLS_CRC32=y -+CONFIG_TOOLS_LIBCRYPTO=y -+CONFIG_TOOLS_FIT=y -+CONFIG_TOOLS_FIT_FULL_CHECK=y -+CONFIG_TOOLS_FIT_PRINT=y -+CONFIG_TOOLS_FIT_RSASSA_PSS=y -+CONFIG_TOOLS_FIT_SIGNATURE=y -+CONFIG_TOOLS_FIT_SIGNATURE_MAX_SIZE=0x10000000 -+CONFIG_TOOLS_FIT_VERBOSE=y -+CONFIG_TOOLS_MD5=y -+CONFIG_TOOLS_OF_LIBFDT=y -+CONFIG_TOOLS_SHA1=y -+CONFIG_TOOLS_SHA256=y -+CONFIG_TOOLS_SHA384=y -+CONFIG_TOOLS_SHA512=y -+# CONFIG_TOOLS_MKEFICAPSULE is not set -+# CONFIG_FSPI_CONF_HEADER is not set -+# CONFIG_TOOLS_MKFWUMDATA is not set -+CONFIG_WEBUI_FAILSAFE=y diff --git a/6.12/package/kernel/gpio-button-hotplug/patches/999-fix-kernel-6.12.patch b/6.12/package/kernel/gpio-button-hotplug/patches/999-fix-kernel-6.12.patch deleted file mode 100644 index 8438c883..00000000 --- a/6.12/package/kernel/gpio-button-hotplug/patches/999-fix-kernel-6.12.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/package/kernel/gpio-button-hotplug/src/gpio-button-hotplug.c b/package/kernel/gpio-button-hotplug/src/gpio-button-hotplug.c -index 1dd0ff2a1a1abf..8537a93d6a8d2f 100644 ---- a/package/kernel/gpio-button-hotplug/src/gpio-button-hotplug.c -+++ b/package/kernel/gpio-button-hotplug/src/gpio-button-hotplug.c -@@ -674,7 +674,11 @@ static void gpio_keys_irq_close(struct gpio_keys_button_dev *bdev) - } - } - -+#if LINUX_VERSION_CODE < KERNEL_VERSION(6,11,0) - static int gpio_keys_remove(struct platform_device *pdev) -+#else -+static void gpio_keys_remove(struct platform_device *pdev) -+#endif - { - struct gpio_keys_button_dev *bdev = platform_get_drvdata(pdev); - -@@ -685,7 +689,9 @@ static int gpio_keys_remove(struct platform_device *pdev) - else - gpio_keys_irq_close(bdev); - -+#if LINUX_VERSION_CODE < KERNEL_VERSION(6,11,0) - return 0; -+#endif - } - - static struct platform_driver gpio_keys_driver = { diff --git a/6.12/package/kernel/gpio-nct5104d/patches/999-fix-kernel-6.12.patch b/6.12/package/kernel/gpio-nct5104d/patches/999-fix-kernel-6.12.patch deleted file mode 100644 index b088ca3e..00000000 --- a/6.12/package/kernel/gpio-nct5104d/patches/999-fix-kernel-6.12.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/package/kernel/gpio-nct5104d/src/gpio-nct5104d.c b/package/kernel/gpio-nct5104d/src/gpio-nct5104d.c -index eb1cf8494abe2..00dc4dcd9424f 100644 ---- a/package/kernel/gpio-nct5104d/src/gpio-nct5104d.c -+++ b/package/kernel/gpio-nct5104d/src/gpio-nct5104d.c -@@ -300,7 +300,11 @@ static int nct5104d_gpio_probe(struct platform_device *pdev) - return err; - } - -+#if LINUX_VERSION_CODE < KERNEL_VERSION(6,11,0) - static int nct5104d_gpio_remove(struct platform_device *pdev) -+#else -+static void nct5104d_gpio_remove(struct platform_device *pdev) -+#endif - { - int i; - struct nct5104d_gpio_data *data = platform_get_drvdata(pdev); -@@ -311,7 +315,9 @@ static int nct5104d_gpio_remove(struct platform_device *pdev) - gpiochip_remove (&bank->chip); - } - -+#if LINUX_VERSION_CODE < KERNEL_VERSION(6,11,0) - return 0; -+#endif - } - - static int __init nct5104d_find(int addr, struct nct5104d_sio *sio) diff --git a/6.12/package/kernel/linux/modules/fs.mk b/6.12/package/kernel/linux/modules/fs.mk deleted file mode 100644 index be5d322f..00000000 --- a/6.12/package/kernel/linux/modules/fs.mk +++ /dev/null @@ -1,723 +0,0 @@ -# -# Copyright (C) 2006-2011 OpenWrt.org -# -# This is free software, licensed under the GNU General Public License v2. -# See /LICENSE for more information. -# - -FS_MENU:=Filesystems - -define KernelPackage/fs-9p - SUBMENU:=$(FS_MENU) - TITLE:=Plan 9 Resource Sharing Support - DEPENDS:=+kmod-9pnet +LINUX_6_1:kmod-fs-netfs +LINUX_6_6:kmod-fs-netfs - KCONFIG:=\ - CONFIG_9P_FS \ - CONFIG_9P_FS_POSIX_ACL=n \ - CONFIG_9P_FS_SECURITY=n \ - CONFIG_9P_FSCACHE=n - FILES:=$(LINUX_DIR)/fs/9p/9p.ko - AUTOLOAD:=$(call AutoLoad,30,9p) -endef - -define KernelPackage/fs-9p/description - Kernel module for Plan 9 Resource Sharing Support support -endef - -$(eval $(call KernelPackage,fs-9p)) - - -define KernelPackage/fs-afs - SUBMENU:=$(FS_MENU) - TITLE:=Andrew FileSystem client - DEFAULT:=n - DEPENDS:=+kmod-rxrpc +kmod-dnsresolver +kmod-fs-fscache - KCONFIG:=\ - CONFIG_AFS_FS=m \ - CONFIG_AFS_DEBUG=n \ - CONFIG_AFS_FSCACHE=y - FILES:=$(LINUX_DIR)/fs/afs/kafs.ko - AUTOLOAD:=$(call AutoLoad,30,kafs) -endef - -define KernelPackage/fs-afs/description - Kernel module for Andrew FileSystem client support -endef - -$(eval $(call KernelPackage,fs-afs)) - -define KernelPackage/fs-autofs4 - SUBMENU:=$(FS_MENU) - TITLE:=AUTOFS4 filesystem support - KCONFIG:= \ - CONFIG_AUTOFS4_FS \ - CONFIG_AUTOFS_FS - FILES:= \ - $(LINUX_DIR)/fs/autofs/autofs4.ko - AUTOLOAD:=$(call AutoLoad,30,autofs4) -endef - -define KernelPackage/fs-autofs4/description - Kernel module for AutoFS4 support -endef - -$(eval $(call KernelPackage,fs-autofs4)) - - -define KernelPackage/fs-btrfs - SUBMENU:=$(FS_MENU) - TITLE:=BTRFS filesystem support - DEPENDS:=+kmod-lib-crc32c +kmod-lib-lzo +kmod-lib-zlib-inflate +kmod-lib-zlib-deflate +kmod-lib-raid6 +kmod-lib-xor +kmod-lib-zstd - KCONFIG:=\ - CONFIG_BTRFS_FS \ - CONFIG_BTRFS_FS_CHECK_INTEGRITY=n - FILES:=\ - $(LINUX_DIR)/fs/btrfs/btrfs.ko - AUTOLOAD:=$(call AutoLoad,30,btrfs,1) -endef - -define KernelPackage/fs-btrfs/description - Kernel module for BTRFS support -endef - -$(eval $(call KernelPackage,fs-btrfs)) - - -define KernelPackage/fs-smbfs-common - SUBMENU:=$(FS_MENU) - TITLE:=SMBFS common dependencies support - HIDDEN:=1 - DEPENDS:=+LINUX_6_6:kmod-fs-netfs +LINUX_6_6:kmod-nls-ucs2-utils - KCONFIG:=\ - CONFIG_SMBFS_COMMON@lt6.1 \ - CONFIG_SMBFS@ge6.1 - FILES:= \ - $(LINUX_DIR)/fs/smbfs_common/cifs_arc4.ko@lt6.1 \ - $(LINUX_DIR)/fs/smbfs_common/cifs_md4.ko@lt6.1 \ - $(LINUX_DIR)/fs/smb/common/cifs_arc4.ko@ge6.1 \ - $(LINUX_DIR)/fs/smb/common/cifs_md4.ko@ge6.1 -endef - -define KernelPackage/fs-smbfs-common/description - Kernel module dependency for CIFS or SMB_SERVER support -endef - -$(eval $(call KernelPackage,fs-smbfs-common)) - - -define KernelPackage/fs-cifs - SUBMENU:=$(FS_MENU) - TITLE:=CIFS support - KCONFIG:= \ - CONFIG_CIFS \ - CONFIG_CIFS_DFS_UPCALL=n \ - CONFIG_CIFS_UPCALL=n - FILES:= \ - $(LINUX_DIR)/fs/cifs/cifs.ko@lt6.1 \ - $(LINUX_DIR)/fs/smb/client/cifs.ko@ge6.1 - AUTOLOAD:=$(call AutoLoad,30,cifs) - $(call AddDepends/nls) - DEPENDS+= \ - +kmod-fs-smbfs-common \ - +kmod-crypto-md5 \ - +kmod-crypto-sha256 \ - +kmod-crypto-sha512 \ - +kmod-crypto-cmac \ - +kmod-crypto-hmac \ - +kmod-crypto-aead \ - +kmod-crypto-ccm \ - +kmod-crypto-ecb \ - +kmod-crypto-des \ - +kmod-asn1-decoder \ - +kmod-oid-registry \ - +kmod-dnsresolver -endef - -define KernelPackage/fs-cifs/description - Kernel module for CIFS support -endef - -$(eval $(call KernelPackage,fs-cifs)) - - -define KernelPackage/fs-configfs - SUBMENU:=$(FS_MENU) - TITLE:=Configuration filesystem support - KCONFIG:= \ - CONFIG_CONFIGFS_FS - FILES:=$(LINUX_DIR)/fs/configfs/configfs.ko - AUTOLOAD:=$(call AutoLoad,30,configfs) -endef - -define KernelPackage/fs-configfs/description - Kernel module for configfs support -endef - -$(eval $(call KernelPackage,fs-configfs)) - - -define KernelPackage/fs-cramfs - SUBMENU:=$(FS_MENU) - TITLE:=Compressed RAM/ROM filesystem support - DEPENDS:=+kmod-lib-zlib-inflate - KCONFIG:= \ - CONFIG_CRAMFS - FILES:=$(LINUX_DIR)/fs/cramfs/cramfs.ko - AUTOLOAD:=$(call AutoLoad,30,cramfs) -endef - -define KernelPackage/fs-cramfs/description - Kernel module for cramfs support -endef - -$(eval $(call KernelPackage,fs-cramfs)) - - -define KernelPackage/fs-efivarfs - SUBMENU:=$(FS_MENU) - TITLE:=efivar filesystem support - KCONFIG:=CONFIG_EFIVAR_FS - FILES:=$(LINUX_DIR)/fs/efivarfs/efivarfs.ko - DEPENDS:=@(x86_64||x86) - AUTOLOAD:=$(call Autoload,90,efivarfs) -endef - -define KernelPackage/fs-efivarfs/description - Kernel module to support efivarfs file system mountpoint. -endef - -$(eval $(call KernelPackage,fs-efivarfs)) - - -define KernelPackage/fs-exfat - SUBMENU:=$(FS_MENU) - TITLE:=exFAT filesystem support - KCONFIG:= \ - CONFIG_EXFAT_FS \ - CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8" - FILES:= $(LINUX_DIR)/fs/exfat/exfat.ko - AUTOLOAD:=$(call AutoLoad,30,exfat,1) - DEPENDS:=+kmod-nls-base -endef - -define KernelPackage/fs-exfat/description - Kernel module for exFAT filesystem support -endef - -$(eval $(call KernelPackage,fs-exfat)) - - -define KernelPackage/fs-exportfs - SUBMENU:=$(FS_MENU) - TITLE:=exportfs kernel server support - KCONFIG:=CONFIG_EXPORTFS - FILES=$(LINUX_DIR)/fs/exportfs/exportfs.ko - AUTOLOAD:=$(call AutoLoad,20,exportfs,1) -endef - -define KernelPackage/fs-exportfs/description - Kernel module for exportfs. Needed for some other modules. -endef - -$(eval $(call KernelPackage,fs-exportfs)) - - -define KernelPackage/fs-ext4 - SUBMENU:=$(FS_MENU) - TITLE:=EXT4 filesystem support - DEPENDS := \ - +kmod-lib-crc16 \ - +kmod-crypto-hash \ - +kmod-crypto-crc32c - KCONFIG:= \ - CONFIG_EXT4_FS \ - CONFIG_EXT4_ENCRYPTION=n \ - CONFIG_JBD2 - FILES:= \ - $(LINUX_DIR)/fs/ext4/ext4.ko \ - $(LINUX_DIR)/fs/jbd2/jbd2.ko \ - $(LINUX_DIR)/fs/mbcache.ko - AUTOLOAD:=$(call AutoLoad,30,mbcache jbd2 ext4,1) -endef - -define KernelPackage/fs-ext4/description - Kernel module for EXT4 filesystem support -endef - -$(eval $(call KernelPackage,fs-ext4)) - - -define KernelPackage/fs-f2fs - SUBMENU:=$(FS_MENU) - TITLE:=F2FS filesystem support - DEPENDS:= +kmod-crypto-hash +kmod-crypto-crc32 +kmod-nls-base - KCONFIG:=CONFIG_F2FS_FS - FILES:=$(LINUX_DIR)/fs/f2fs/f2fs.ko - AUTOLOAD:=$(call AutoLoad,30,f2fs,1) -endef - -define KernelPackage/fs-f2fs/description - Kernel module for F2FS filesystem support -endef - -$(eval $(call KernelPackage,fs-f2fs)) - - -#define KernelPackage/fs-fscache -# SUBMENU:=$(FS_MENU) -# TITLE:=General filesystem local cache manager -# DEPENDS:=+kmod-fs-netfs -# KCONFIG:=\ -# CONFIG_FSCACHE \ -# CONFIG_FSCACHE_STATS=y \ -# CONFIG_FSCACHE_HISTOGRAM=n \ -# CONFIG_FSCACHE_DEBUG=n \ -# CONFIG_FSCACHE_OBJECT_LIST=n \ -# CONFIG_CACHEFILES \ -# CONFIG_CACHEFILES_DEBUG=n \ -# CONFIG_CACHEFILES_HISTOGRAM=n \ -# CONFIG_CACHEFILES_ERROR_INJECTION=n@ge5.17 \ -# CONFIG_CACHEFILES_ONDEMAND=n@ge5.19 -# FILES:= \ -# $(LINUX_DIR)/fs/fscache/fscache.ko \ -# $(LINUX_DIR)/fs/cachefiles/cachefiles.ko -# AUTOLOAD:=$(call AutoLoad,29,fscache cachefiles) -#endef - -#$(eval $(call KernelPackage,fs-fscache)) - - -define KernelPackage/fs-hfs - SUBMENU:=$(FS_MENU) - TITLE:=HFS filesystem support - DEPENDS:=+kmod-cdrom - KCONFIG:=CONFIG_HFS_FS - FILES:=$(LINUX_DIR)/fs/hfs/hfs.ko - AUTOLOAD:=$(call AutoLoad,30,hfs) - $(call AddDepends/nls) -endef - -define KernelPackage/fs-hfs/description - Kernel module for HFS filesystem support -endef - -$(eval $(call KernelPackage,fs-hfs)) - - -define KernelPackage/fs-hfsplus - SUBMENU:=$(FS_MENU) - TITLE:=HFS+ filesystem support - DEPENDS:=+kmod-cdrom - KCONFIG:=CONFIG_HFSPLUS_FS - FILES:=$(LINUX_DIR)/fs/hfsplus/hfsplus.ko - AUTOLOAD:=$(call AutoLoad,30,hfsplus) - $(call AddDepends/nls,utf8) -endef - -define KernelPackage/fs-hfsplus/description - Kernel module for HFS+ filesystem support -endef - -$(eval $(call KernelPackage,fs-hfsplus)) - - -define KernelPackage/fs-isofs - SUBMENU:=$(FS_MENU) - TITLE:=ISO9660 filesystem support - DEPENDS:=+kmod-lib-zlib-inflate +kmod-cdrom - KCONFIG:=CONFIG_ISO9660_FS CONFIG_JOLIET=y CONFIG_ZISOFS=n - FILES:=$(LINUX_DIR)/fs/isofs/isofs.ko - AUTOLOAD:=$(call AutoLoad,30,isofs) - $(call AddDepends/nls) -endef - -define KernelPackage/fs-isofs/description - Kernel module for ISO9660 filesystem support -endef - -$(eval $(call KernelPackage,fs-isofs)) - - -define KernelPackage/fs-jfs - SUBMENU:=$(FS_MENU) - TITLE:=JFS filesystem support - KCONFIG:=CONFIG_JFS_FS - FILES:=$(LINUX_DIR)/fs/jfs/jfs.ko - AUTOLOAD:=$(call AutoLoad,30,jfs,1) - DEPENDS:=+LINUX_6_6:kmod-nls-ucs2-utils - $(call AddDepends/nls) -endef - -define KernelPackage/fs-jfs/description - Kernel module for JFS support -endef - -$(eval $(call KernelPackage,fs-jfs)) - - -define KernelPackage/fs-ksmbd - SUBMENU:=$(FS_MENU) - TITLE:=SMB kernel server support - DEPENDS:= \ - +kmod-nls-base \ - +kmod-nls-utf8 \ - +kmod-crypto-md5 \ - +kmod-crypto-hmac \ - +kmod-crypto-ecb \ - +kmod-crypto-des \ - +kmod-crypto-sha256 \ - +kmod-crypto-cmac \ - +kmod-crypto-sha512 \ - +kmod-crypto-aead \ - +kmod-crypto-ccm \ - +kmod-crypto-gcm \ - +kmod-asn1-decoder \ - +kmod-oid-registry \ - +kmod-fs-smbfs-common - KCONFIG:= \ - CONFIG_SMB_SERVER \ - CONFIG_SMB_SERVER_SMBDIRECT=n \ - CONFIG_SMB_SERVER_CHECK_CAP_NET_ADMIN=n \ - CONFIG_SMB_SERVER_KERBEROS5=n - FILES:= \ - $(LINUX_DIR)/fs/ksmbd/ksmbd.ko@lt6.1 \ - $(LINUX_DIR)/fs/smb/server/ksmbd.ko@ge6.1 - AUTOLOAD:=$(call AutoLoad,41,ksmbd) -endef - -define KernelPackage/fs-ksmbd/description - Kernel module for SMB kernel server support -endef - -$(eval $(call KernelPackage,fs-ksmbd)) - - -define KernelPackage/fs-minix - SUBMENU:=$(FS_MENU) - TITLE:=Minix filesystem support - KCONFIG:=CONFIG_MINIX_FS - FILES:=$(LINUX_DIR)/fs/minix/minix.ko - AUTOLOAD:=$(call AutoLoad,30,minix) -endef - -define KernelPackage/fs-minix/description - Kernel module for Minix filesystem support -endef - -$(eval $(call KernelPackage,fs-minix)) - - -define KernelPackage/fs-msdos - SUBMENU:=$(FS_MENU) - TITLE:=MSDOS filesystem support - DEPENDS:=+kmod-fs-vfat - KCONFIG:=CONFIG_MSDOS_FS - FILES:=$(LINUX_DIR)/fs/fat/msdos.ko - AUTOLOAD:=$(call AutoLoad,40,msdos) - $(call AddDepends/nls) -endef - -define KernelPackage/fs-msdos/description - Kernel module for MSDOS filesystem support -endef - -$(eval $(call KernelPackage,fs-msdos)) - - -define KernelPackage/fs-netfs - SUBMENU:=$(FS_MENU) - TITLE:=Network Filesystems support - KCONFIG:= CONFIG_NETFS_SUPPORT - FILES:=$(LINUX_DIR)/fs/netfs/netfs.ko - AUTOLOAD:=$(call AutoLoad,28,netfs) -endef - -$(eval $(call KernelPackage,fs-netfs)) - - -define KernelPackage/fs-nfs - SUBMENU:=$(FS_MENU) - TITLE:=NFS filesystem client support - DEPENDS:=+kmod-fs-nfs-common +kmod-dnsresolver - KCONFIG:= \ - CONFIG_NFS_FS \ - CONFIG_NFS_USE_LEGACY_DNS=n \ - CONFIG_NFS_USE_NEW_IDMAPPER=n - FILES:= \ - $(LINUX_DIR)/fs/nfs/nfs.ko - AUTOLOAD:=$(call AutoLoad,40,nfs) -endef - -define KernelPackage/fs-nfs/description - Kernel module for NFS client support -endef - -$(eval $(call KernelPackage,fs-nfs)) - - -define KernelPackage/fs-nfs-common - SUBMENU:=$(FS_MENU) - TITLE:=Common NFS filesystem modules - DEPENDS:=+kmod-oid-registry - KCONFIG:= \ - CONFIG_LOCKD \ - CONFIG_SUNRPC \ - CONFIG_GRACE_PERIOD \ - CONFIG_NFS_V4=y \ - CONFIG_NFS_V4_1=y \ - CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org" \ - CONFIG_NFS_V4_1_MIGRATION=n \ - CONFIG_NFS_V4_2=y \ - CONFIG_NFS_V4_2_READ_PLUS=n - FILES:= \ - $(LINUX_DIR)/fs/lockd/lockd.ko \ - $(LINUX_DIR)/net/sunrpc/sunrpc.ko \ - $(LINUX_DIR)/fs/nfs_common/grace.ko - AUTOLOAD:=$(call AutoLoad,30,grace sunrpc lockd) -endef - -$(eval $(call KernelPackage,fs-nfs-common)) - - -define KernelPackage/fs-nfs-common-rpcsec - SUBMENU:=$(FS_MENU) - TITLE:=NFS Secure RPC - DEPENDS:= \ - +kmod-fs-nfs-common \ - +kmod-crypto-des \ - +kmod-crypto-cbc \ - +kmod-crypto-cts \ - +kmod-crypto-md5 \ - +kmod-crypto-sha1 \ - +kmod-crypto-hmac \ - +kmod-crypto-ecb \ - +kmod-crypto-arc4 - KCONFIG:= \ - CONFIG_SUNRPC_GSS \ - CONFIG_RPCSEC_GSS_KRB5 - FILES:= \ - $(LINUX_DIR)/net/sunrpc/auth_gss/auth_rpcgss.ko \ - $(LINUX_DIR)/net/sunrpc/auth_gss/rpcsec_gss_krb5.ko - AUTOLOAD:=$(call AutoLoad,31,auth_rpcgss rpcsec_gss_krb5) -endef - -define KernelPackage/fs-nfs-common-rpcsec/description - Kernel modules for NFS Secure RPC -endef - -$(eval $(call KernelPackage,fs-nfs-common-rpcsec)) - - -define KernelPackage/fs-nfs-v3 - SUBMENU:=$(FS_MENU) - TITLE:=NFS3 filesystem client support - DEPENDS:=+kmod-fs-nfs - FILES:= \ - $(LINUX_DIR)/fs/nfs/nfsv3.ko - AUTOLOAD:=$(call AutoLoad,41,nfsv3) -endef - -define KernelPackage/fs-nfs-v3/description - Kernel module for NFS v3 client support -endef - -$(eval $(call KernelPackage,fs-nfs-v3)) - - -define KernelPackage/fs-nfs-v4 - SUBMENU:=$(FS_MENU) - TITLE:=NFS4 filesystem client support - DEPENDS:=+kmod-fs-nfs - KCONFIG:= \ - CONFIG_NFS_V4=y - FILES:= \ - $(LINUX_DIR)/fs/nfs/nfsv4.ko - AUTOLOAD:=$(call AutoLoad,41,nfsv4) -endef - -define KernelPackage/fs-nfs-v4/description - Kernel module for NFS v4 client support -endef - -$(eval $(call KernelPackage,fs-nfs-v4)) - - -define KernelPackage/fs-nfsd - SUBMENU:=$(FS_MENU) - TITLE:=NFS kernel server support - DEPENDS:=+kmod-fs-nfs-common +kmod-fs-exportfs +kmod-fs-nfs-common-rpcsec - KCONFIG:= \ - CONFIG_NFSD \ - CONFIG_NFSD_V4=y \ - CONFIG_NFSD_V4_SECURITY_LABEL=n \ - CONFIG_NFSD_BLOCKLAYOUT=n \ - CONFIG_NFSD_SCSILAYOUT=n \ - CONFIG_NFSD_FLEXFILELAYOUT=n \ - CONFIG_NFSD_FAULT_INJECTION=n \ - CONFIG_NFSD_V4_2_INTER_SSC=n - FILES:=$(LINUX_DIR)/fs/nfsd/nfsd.ko - AUTOLOAD:=$(call AutoLoad,40,nfsd) -endef - -define KernelPackage/fs-nfsd/description - Kernel module for NFS kernel server support -endef - -$(eval $(call KernelPackage,fs-nfsd)) - - -#define KernelPackage/fs-ntfs -# SUBMENU:=$(FS_MENU) -# TITLE:=NTFS filesystem read-only (old driver) support -# KCONFIG:=CONFIG_NTFS_FS -# FILES:=$(LINUX_DIR)/fs/ntfs/ntfs.ko -# AUTOLOAD:=$(call AutoLoad,30,ntfs) -# $(call AddDepends/nls) -#endef - -#define KernelPackage/fs-ntfs/description -# Kernel module for limited NTFS filesystem support. Support for writing -# is extremely limited and disabled as a result. -#endef - -#$(eval $(call KernelPackage,fs-ntfs)) - - -define KernelPackage/fs-ntfs3 - SUBMENU:=$(FS_MENU) - TITLE:=NTFS filesystem read & write (new driver) support - KCONFIG:= CONFIG_NTFS3_FS CONFIG_NTFS3_FS_POSIX_ACL=y - FILES:=$(LINUX_DIR)/fs/ntfs3/ntfs3.ko - $(call AddDepends/nls) - AUTOLOAD:=$(call AutoLoad,80,ntfs3) -endef - -define KernelPackage/fs-ntfs3/description - Kernel module for fully functional NTFS filesystem support. It allows - reading as well as writing. - - It supports NTFS versions up to 3.1. -endef - -$(eval $(call KernelPackage,fs-ntfs3)) - - -define KernelPackage/fs-reiserfs - SUBMENU:=$(FS_MENU) - TITLE:=ReiserFS filesystem support - KCONFIG:=CONFIG_REISERFS_FS - FILES:=$(LINUX_DIR)/fs/reiserfs/reiserfs.ko - AUTOLOAD:=$(call AutoLoad,30,reiserfs,1) -endef - -define KernelPackage/fs-reiserfs/description - Kernel module for ReiserFS support -endef - -$(eval $(call KernelPackage,fs-reiserfs)) - - -define KernelPackage/fs-squashfs - SUBMENU:=$(FS_MENU) - TITLE:=SquashFS 4.0 filesystem support - KCONFIG:=CONFIG_SQUASHFS \ - CONFIG_SQUASHFS_XZ=y - FILES:=$(LINUX_DIR)/fs/squashfs/squashfs.ko - AUTOLOAD:=$(call AutoLoad,30,squashfs,1) -endef - -define KernelPackage/fs-squashfs/description - Kernel module for SquashFS 4.0 support -endef - -$(eval $(call KernelPackage,fs-squashfs)) - - -define KernelPackage/fs-udf - SUBMENU:=$(FS_MENU) - TITLE:=UDF filesystem support - KCONFIG:=CONFIG_UDF_FS - FILES:=$(LINUX_DIR)/fs/udf/udf.ko - AUTOLOAD:=$(call AutoLoad,30,udf) - DEPENDS:=+kmod-lib-crc-itu-t +kmod-cdrom - $(call AddDepends/nls) -endef - -define KernelPackage/fs-udf/description - Kernel module for UDF filesystem support -endef - -$(eval $(call KernelPackage,fs-udf)) - - -define KernelPackage/fs-vfat - SUBMENU:=$(FS_MENU) - TITLE:=VFAT filesystem support - KCONFIG:= \ - CONFIG_FAT_FS \ - CONFIG_VFAT_FS - FILES:= \ - $(LINUX_DIR)/fs/fat/fat.ko \ - $(LINUX_DIR)/fs/fat/vfat.ko - AUTOLOAD:=$(call AutoLoad,30,fat vfat,1) - $(call AddDepends/nls,cp437 iso8859-1 utf8) -endef - -define KernelPackage/fs-vfat/description - Kernel module for VFAT filesystem support -endef - -$(eval $(call KernelPackage,fs-vfat)) - - -define KernelPackage/fs-xfs - SUBMENU:=$(FS_MENU) - TITLE:=XFS filesystem support - KCONFIG:=CONFIG_XFS_FS - DEPENDS:= +kmod-fs-exportfs +kmod-lib-crc32c - FILES:=$(LINUX_DIR)/fs/xfs/xfs.ko - AUTOLOAD:=$(call AutoLoad,30,xfs,1) -endef - -define KernelPackage/fs-xfs/description - Kernel module for XFS support -endef - -$(eval $(call KernelPackage,fs-xfs)) - - -define KernelPackage/fuse - SUBMENU:=$(FS_MENU) - TITLE:=FUSE (Filesystem in Userspace) support - KCONFIG:= CONFIG_FUSE_FS - FILES:=$(LINUX_DIR)/fs/fuse/fuse.ko - AUTOLOAD:=$(call AutoLoad,80,fuse) -endef - -define KernelPackage/fuse/description - Kernel module for userspace filesystem support -endef - -$(eval $(call KernelPackage,fuse)) - - -define KernelPackage/pstore - SUBMENU:=$(FS_MENU) - TITLE:=Pstore file system - DEFAULT:=m if ALL_KMODS - KCONFIG:= \ - CONFIG_PSTORE \ - CONFIG_PSTORE_COMPRESS=y \ - CONFIG_PSTORE_COMPRESS_DEFAULT="deflate" \ - CONFIG_PSTORE_DEFLATE_COMPRESS=y \ - CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y - FILES:= $(LINUX_DIR)/fs/pstore/pstore.ko - AUTOLOAD:=$(call AutoLoad,30,pstore,1) - DEPENDS:=+LINUX_6_6:kmod-lib-zlib-deflate +LINUX_6_6:kmod-lib-zlib-inflate -endef - -define KernelPackage/pstore/description - Kernel module for pstore filesystem support -endef - -$(eval $(call KernelPackage,pstore)) diff --git a/6.12/package/kernel/linux/modules/other.mk b/6.12/package/kernel/linux/modules/other.mk deleted file mode 100644 index e04840df..00000000 --- a/6.12/package/kernel/linux/modules/other.mk +++ /dev/null @@ -1,1153 +0,0 @@ -# -# Copyright (C) 2006-2015 OpenWrt.org -# -# This is free software, licensed under the GNU General Public License v2. -# See /LICENSE for more information. -# - -OTHER_MENU:=Other modules - -WATCHDOG_DIR:=watchdog - - -define KernelPackage/6lowpan - SUBMENU:=$(OTHER_MENU) - TITLE:=6LoWPAN shared code - KCONFIG:= \ - CONFIG_6LOWPAN \ - CONFIG_6LOWPAN_NHC=n - FILES:=$(LINUX_DIR)/net/6lowpan/6lowpan.ko - AUTOLOAD:=$(call AutoProbe,6lowpan) -endef - -define KernelPackage/6lowpan/description - Shared 6lowpan code for IEEE 802.15.4 and Bluetooth. -endef - -$(eval $(call KernelPackage,6lowpan)) - - -define KernelPackage/bluetooth - SUBMENU:=$(OTHER_MENU) - TITLE:=Bluetooth support - DEPENDS:=@USB_SUPPORT +kmod-usb-core +kmod-crypto-hash +kmod-crypto-ecb +kmod-lib-crc16 +kmod-hid +kmod-crypto-cmac +kmod-regmap-core +kmod-crypto-ecdh - KCONFIG:= \ - CONFIG_BT \ - CONFIG_BT_BREDR=y \ - CONFIG_BT_DEBUGFS=n \ - CONFIG_BT_LE=y \ - CONFIG_BT_RFCOMM \ - CONFIG_BT_BNEP \ - CONFIG_BT_HCIBTUSB \ - CONFIG_BT_HCIBTUSB_BCM=n \ - CONFIG_BT_HCIBTUSB_MTK=y \ - CONFIG_BT_HCIBTUSB_RTL=y \ - CONFIG_BT_HCIUART \ - CONFIG_BT_HCIUART_BCM=n \ - CONFIG_BT_HCIUART_INTEL=n \ - CONFIG_BT_HCIUART_H4 \ - CONFIG_BT_HCIUART_NOKIA=n \ - CONFIG_BT_HIDP - $(call AddDepends/rfkill) - FILES:= \ - $(LINUX_DIR)/net/bluetooth/bluetooth.ko \ - $(LINUX_DIR)/net/bluetooth/rfcomm/rfcomm.ko \ - $(LINUX_DIR)/net/bluetooth/bnep/bnep.ko \ - $(LINUX_DIR)/net/bluetooth/hidp/hidp.ko \ - $(LINUX_DIR)/drivers/bluetooth/hci_uart.ko \ - $(LINUX_DIR)/drivers/bluetooth/btusb.ko \ - $(LINUX_DIR)/drivers/bluetooth/btintel.ko \ - $(LINUX_DIR)/drivers/bluetooth/btrtl.ko \ - $(LINUX_DIR)/drivers/bluetooth/btmtk.ko@ge5.17 - AUTOLOAD:=$(call AutoProbe,bluetooth rfcomm bnep hidp hci_uart btusb) -endef - -define KernelPackage/bluetooth/description - Kernel support for Bluetooth devices -endef - -$(eval $(call KernelPackage,bluetooth)) - -define KernelPackage/ath3k - SUBMENU:=$(OTHER_MENU) - TITLE:=ATH3K Kernel Module support - DEPENDS:=+kmod-bluetooth +ar3k-firmware - KCONFIG:= \ - CONFIG_BT_ATH3K \ - CONFIG_BT_HCIUART_ATH3K=y - FILES:= \ - $(LINUX_DIR)/drivers/bluetooth/ath3k.ko - AUTOLOAD:=$(call AutoProbe,ath3k) -endef - -define KernelPackage/ath3k/description - Kernel support for ATH3K Module -endef - -$(eval $(call KernelPackage,ath3k)) - - -define KernelPackage/bluetooth-6lowpan - SUBMENU:=$(OTHER_MENU) - TITLE:=Bluetooth 6LoWPAN support - DEPENDS:=+kmod-6lowpan +kmod-bluetooth - KCONFIG:=CONFIG_BT_6LOWPAN - FILES:=$(LINUX_DIR)/net/bluetooth/bluetooth_6lowpan.ko - AUTOLOAD:=$(call AutoProbe,bluetooth_6lowpan) -endef - -define KernelPackage/bluetooth-6lowpan/description - Kernel support for 6LoWPAN over Bluetooth Low Energy devices -endef - -$(eval $(call KernelPackage,bluetooth-6lowpan)) - - -define KernelPackage/btmrvl - SUBMENU:=$(OTHER_MENU) - TITLE:=Marvell Bluetooth Kernel Module support - DEPENDS:=+kmod-mmc +kmod-bluetooth +mwifiex-sdio-firmware - KCONFIG:= \ - CONFIG_BT_MRVL \ - CONFIG_BT_MRVL_SDIO - FILES:= \ - $(LINUX_DIR)/drivers/bluetooth/btmrvl.ko \ - $(LINUX_DIR)/drivers/bluetooth/btmrvl_sdio.ko - AUTOLOAD:=$(call AutoProbe,btmrvl btmrvl_sdio) -endef - -define KernelPackage/btmrvl/description - Kernel support for Marvell SDIO Bluetooth Module -endef - -$(eval $(call KernelPackage,btmrvl)) - - -define KernelPackage/btsdio - SUBMENU:=$(OTHER_MENU) - TITLE:=Bluetooth HCI SDIO driver - DEPENDS:=+kmod-bluetooth +kmod-mmc - KCONFIG:= \ - CONFIG_BT_HCIBTSDIO - FILES:= \ - $(LINUX_DIR)/drivers/bluetooth/btsdio.ko - AUTOLOAD:=$(call AutoProbe,btsdio) -endef - -define KernelPackage/btsdio/description - Kernel support for Bluetooth device with SDIO interface -endef - -$(eval $(call KernelPackage,btsdio)) - - -#define KernelPackage/dma-buf -# SUBMENU:=$(OTHER_MENU) -# TITLE:=DMA shared buffer support -# HIDDEN:=1 -# KCONFIG:=CONFIG_DMA_SHARED_BUFFER -# ifeq ($(strip $(CONFIG_EXTERNAL_KERNEL_TREE)),"") -# ifeq ($(strip $(CONFIG_KERNEL_GIT_CLONE_URI)),"") -# FILES:=$(LINUX_DIR)/drivers/dma-buf/dma-shared-buffer.ko -# endif -# endif -# AUTOLOAD:=$(call AutoLoad,20,dma-shared-buffer) -#endef -#$(eval $(call KernelPackage,dma-buf)) - - -define KernelPackage/eeprom-93cx6 - SUBMENU:=$(OTHER_MENU) - TITLE:=EEPROM 93CX6 support - KCONFIG:=CONFIG_EEPROM_93CX6 - FILES:=$(LINUX_DIR)/drivers/misc/eeprom/eeprom_93cx6.ko - AUTOLOAD:=$(call AutoLoad,20,eeprom_93cx6) -endef - -define KernelPackage/eeprom-93cx6/description - Kernel module for EEPROM 93CX6 support -endef - -$(eval $(call KernelPackage,eeprom-93cx6)) - - -define KernelPackage/eeprom-at24 - SUBMENU:=$(OTHER_MENU) - TITLE:=EEPROM AT24 support - KCONFIG:=CONFIG_EEPROM_AT24 - DEPENDS:=+kmod-i2c-core +kmod-regmap-i2c - FILES:=$(LINUX_DIR)/drivers/misc/eeprom/at24.ko - AUTOLOAD:=$(call AutoProbe,at24) -endef - -define KernelPackage/eeprom-at24/description - Kernel module for most I2C EEPROMs -endef - -$(eval $(call KernelPackage,eeprom-at24)) - - -define KernelPackage/eeprom-at25 - SUBMENU:=$(OTHER_MENU) - TITLE:=EEPROM AT25 support - KCONFIG:=CONFIG_EEPROM_AT25 - FILES:=$(LINUX_DIR)/drivers/misc/eeprom/at25.ko - AUTOLOAD:=$(call AutoProbe,at25) -endef - -define KernelPackage/eeprom-at25/description - Kernel module for most SPI EEPROMs -endef - -$(eval $(call KernelPackage,eeprom-at25)) - - -define KernelPackage/google-firmware - SUBMENU:=$(OTHER_MENU) - TITLE:=Google firmware drivers (Coreboot, VPD, Memconsole) - KCONFIG:= \ - CONFIG_GOOGLE_FIRMWARE=y \ - CONFIG_GOOGLE_COREBOOT_TABLE \ - CONFIG_GOOGLE_MEMCONSOLE \ - CONFIG_GOOGLE_MEMCONSOLE_COREBOOT \ - CONFIG_GOOGLE_VPD - FILES:= \ - $(LINUX_DIR)/drivers/firmware/google/coreboot_table.ko \ - $(LINUX_DIR)/drivers/firmware/google/memconsole.ko \ - $(LINUX_DIR)/drivers/firmware/google/memconsole-coreboot.ko \ - $(LINUX_DIR)/drivers/firmware/google/vpd-sysfs.ko - AUTOLOAD:=$(call AutoProbe,coreboot_table memconsole-coreboot vpd-sysfs) -endef - -define KernelPackage/google-firmware/description - Kernel modules for Google firmware drivers. Useful for examining firmware and - boot details on devices using a Google bootloader based on Coreboot. Provides - files like /sys/firmware/log and /sys/firmware/vpd. -endef - -$(eval $(call KernelPackage,google-firmware)) - - -define KernelPackage/lkdtm - SUBMENU:=$(OTHER_MENU) - TITLE:=Linux Kernel Dump Test Tool Module - KCONFIG:=CONFIG_LKDTM - FILES:=$(LINUX_DIR)/drivers/misc/lkdtm/lkdtm.ko - AUTOLOAD:=$(call AutoProbe,lkdtm) -endef - -define KernelPackage/lkdtm/description - This module enables testing of the different dumping mechanisms by inducing - system failures at predefined crash points. -endef - -$(eval $(call KernelPackage,lkdtm)) - - -define KernelPackage/mlx_wdt - SUBMENU:=$(OTHER_MENU) - TITLE:=Mellanox Watchdog - DEPENDS:=@TARGET_x86 +kmod-regmap-core - KCONFIG:= \ - CONFIG_MELLANOX_PLATFORM=y \ - CONFIG_MLX_WDT - FILES:=$(LINUX_DIR)/drivers/watchdog/mlx_wdt.ko - AUTOLOAD:=$(call AutoProbe,mlx_wdt) -endef - -define KernelPackage/mlx_wdt/description - This is the driver for the hardware watchdog on Mellanox systems. - This driver can be used together with the watchdog daemon. - It can also watch your kernel to make sure it doesn't freeze, - and if it does, it reboots your system after a certain amount of - time. -endef - -$(eval $(call KernelPackage,mlx_wdt)) - - -define KernelPackage/mlxreg - SUBMENU:=$(OTHER_MENU) - TITLE:=Mellanox platform register access - DEPENDS:=@TARGET_x86 +kmod-i2c-mux-mlxcpld - KCONFIG:= \ - CONFIG_MELLANOX_PLATFORM=y \ - CONFIG_MLX_PLATFORM \ - CONFIG_MLXREG_HOTPLUG \ - CONFIG_MLXREG_IO \ - CONFIG_SENSORS_MLXREG_FAN \ - CONFIG_LEDS_MLXREG - FILES:= \ - $(LINUX_DIR)/drivers/platform/x86/mlx-platform.ko \ - $(LINUX_DIR)/drivers/platform/mellanox/mlxreg-hotplug.ko \ - $(LINUX_DIR)/drivers/platform/mellanox/mlxreg-io.ko \ - $(LINUX_DIR)/drivers/hwmon/mlxreg-fan.ko \ - $(LINUX_DIR)/drivers/leds/leds-mlxreg.ko - AUTOLOAD:=$(call AutoProbe,mlx-platform mlxreg-hotplug mlxreg-io mlxreg-fan leds-mlxreg) -endef - -define KernelPackage/mlxreg/description - Allows access to Mellanox programmable device register - space through sysfs interface. The sets of registers for sysfs access - are defined per system type bases and include the registers related - to system resets operation, system reset causes monitoring and some - kinds of mux selection. -endef - -$(eval $(call KernelPackage,mlxreg)) - - -define KernelPackage/mlxreg-lc - SUBMENU:=$(OTHER_MENU) - TITLE:=Mellanox line card platform support - DEPENDS:=kmod-mlxreg +kmod-regmap-i2c - KCONFIG:=CONFIG_MLXREG_LC - FILES:=$(LINUX_DIR)/drivers/platform/mellanox/mlxreg-lc.ko - AUTOLOAD:=$(call AutoProbe,mlxreg-lc) -endef - -define KernelPackage/mlxreg-lc/description - Provides support for the Mellanox MSN4800-XX line cards, - which are the part of MSN4800 Ethernet modular switch systems. -endef - -$(eval $(call KernelPackage,mlxreg-lc)) - - -define KernelPackage/mlxreg-sn2201 - SUBMENU:=$(OTHER_MENU) - TITLE:=Nvidia SN2201 platform support - DEPENDS:=kmod-mlxreg +kmod-regmap-i2c - KCONFIG:=CONFIG_NVSW_SN2201 - FILES:=$(LINUX_DIR)/drivers/platform/mellanox/nvsw-sn2201.ko - AUTOLOAD:=$(call AutoProbe,nvsw-sn2201) -endef - -define KernelPackage/mlxreg-sn2201/description - Provides support for the Nvidia SN2201 platform. -endef - -$(eval $(call KernelPackage,mlxreg-sn2201)) - - -define KernelPackage/pinctrl-mcp23s08 - SUBMENU:=$(OTHER_MENU) - TITLE:=Microchip MCP23xxx I/O expander - HIDDEN:=1 - DEPENDS:=@GPIO_SUPPORT +kmod-regmap-core - KCONFIG:=CONFIG_PINCTRL_MCP23S08 - FILES:=$(LINUX_DIR)/drivers/pinctrl/pinctrl-mcp23s08.ko - AUTOLOAD:=$(call AutoLoad,40,pinctrl-mcp23s08) -endef - -define KernelPackage/pinctrl-mcp23s08/description - Kernel module for Microchip MCP23xxx I/O expander -endef - -$(eval $(call KernelPackage,pinctrl-mcp23s08)) - - -define KernelPackage/pinctrl-mcp23s08-i2c - SUBMENU:=$(OTHER_MENU) - TITLE:=Microchip MCP23xxx I/O expander (I2C) - DEPENDS:=@GPIO_SUPPORT \ - +kmod-pinctrl-mcp23s08 \ - +kmod-i2c-core \ - +kmod-regmap-i2c - KCONFIG:=CONFIG_PINCTRL_MCP23S08_I2C - FILES:=$(LINUX_DIR)/drivers/pinctrl/pinctrl-mcp23s08_i2c.ko - AUTOLOAD:=$(call AutoLoad,40,pinctrl-mcp23s08-i2c) -endef - -define KernelPackage/pinctrl-mcp23s08-i2c/description - Kernel module for Microchip MCP23xxx I/O expander via I2C -endef - -$(eval $(call KernelPackage,pinctrl-mcp23s08-i2c)) - - -define KernelPackage/pinctrl-mcp23s08-spi - SUBMENU:=$(OTHER_MENU) - TITLE:=Microchip MCP23xxx I/O expander (SPI) - DEPENDS:=@GPIO_SUPPORT +kmod-pinctrl-mcp23s08 - KCONFIG:=CONFIG_PINCTRL_MCP23S08_SPI - FILES:=$(LINUX_DIR)/drivers/pinctrl/pinctrl-mcp23s08_spi.ko - AUTOLOAD:=$(call AutoLoad,40,pinctrl-mcp23s08-spi) -endef - -define KernelPackage/pinctrl-mcp23s08-spi/description - Kernel module for Microchip MCP23xxx I/O expander via SPI -endef - -$(eval $(call KernelPackage,pinctrl-mcp23s08-spi)) - - -define KernelPackage/ppdev - SUBMENU:=$(OTHER_MENU) - TITLE:=Parallel port support - KCONFIG:= \ - CONFIG_PARPORT \ - CONFIG_PPDEV - FILES:= \ - $(LINUX_DIR)/drivers/parport/parport.ko \ - $(LINUX_DIR)/drivers/char/ppdev.ko - AUTOLOAD:=$(call AutoLoad,50,parport ppdev) -endef - -$(eval $(call KernelPackage,ppdev)) - - -define KernelPackage/parport-pc - SUBMENU:=$(OTHER_MENU) - TITLE:=Parallel port interface (PC-style) support - DEPENDS:=+kmod-ppdev - KCONFIG:= \ - CONFIG_KS0108=n \ - CONFIG_PARPORT_PC \ - CONFIG_PARPORT_1284=y \ - CONFIG_PARPORT_PC_FIFO=y \ - CONFIG_PARPORT_PC_PCMCIA=n \ - CONFIG_PARPORT_PC_SUPERIO=y \ - CONFIG_PARPORT_SERIAL=n \ - CONFIG_PARIDE=n \ - CONFIG_SCSI_IMM=n \ - CONFIG_SCSI_PPA=n - FILES:= \ - $(LINUX_DIR)/drivers/parport/parport_pc.ko - AUTOLOAD:=$(call AutoLoad,51,parport_pc) -endef - -$(eval $(call KernelPackage,parport-pc)) - - -define KernelPackage/lp - SUBMENU:=$(OTHER_MENU) - TITLE:=Parallel port line printer device support - DEPENDS:=+kmod-ppdev - KCONFIG:= \ - CONFIG_PRINTER - FILES:= \ - $(LINUX_DIR)/drivers/char/lp.ko - AUTOLOAD:=$(call AutoLoad,52,lp) -endef - -$(eval $(call KernelPackage,lp)) - - -define KernelPackage/mmc - SUBMENU:=$(OTHER_MENU) - TITLE:=MMC/SD Card Support - DEPENDS:=@!TARGET_uml - KCONFIG:= \ - CONFIG_MMC \ - CONFIG_MMC_BLOCK \ - CONFIG_MMC_DEBUG=n \ - CONFIG_MMC_UNSAFE_RESUME=n \ - CONFIG_MMC_TIFM_SD=n \ - CONFIG_MMC_WBSD=n \ - CONFIG_SDIO_UART=n - FILES:= \ - $(LINUX_DIR)/drivers/mmc/core/mmc_core.ko \ - $(LINUX_DIR)/drivers/mmc/core/mmc_block.ko - AUTOLOAD:=$(call AutoProbe,mmc_core mmc_block,1) -endef - -define KernelPackage/mmc/description - Kernel support for MMC/SD cards -endef - -$(eval $(call KernelPackage,mmc)) - - -define KernelPackage/sdhci - SUBMENU:=$(OTHER_MENU) - TITLE:=Secure Digital Host Controller Interface support - DEPENDS:=+kmod-mmc - KCONFIG:= \ - CONFIG_MMC_SDHCI \ - CONFIG_MMC_SDHCI_PLTFM \ - CONFIG_MMC_SDHCI_PCI=n - FILES:= \ - $(LINUX_DIR)/drivers/mmc/host/sdhci.ko \ - $(LINUX_DIR)/drivers/mmc/host/sdhci-pltfm.ko - - AUTOLOAD:=$(call AutoProbe,sdhci-pltfm,1) -endef - -define KernelPackage/sdhci/description - Kernel support for SDHCI Hosts -endef - -$(eval $(call KernelPackage,sdhci)) - - -define KernelPackage/rfkill - SUBMENU:=$(OTHER_MENU) - TITLE:=RF switch subsystem support - DEPENDS:=@USE_RFKILL +kmod-input-core - KCONFIG:= \ - CONFIG_RFKILL_FULL \ - CONFIG_RFKILL_INPUT=y \ - CONFIG_RFKILL_LEDS=y - FILES:= \ - $(LINUX_DIR)/net/rfkill/rfkill.ko - AUTOLOAD:=$(call AutoLoad,20,rfkill) -endef - -define KernelPackage/rfkill/description - Say Y here if you want to have control over RF switches - found on many WiFi and Bluetooth cards -endef - -$(eval $(call KernelPackage,rfkill)) - - -define KernelPackage/softdog - SUBMENU:=$(OTHER_MENU) - TITLE:=Software watchdog driver - KCONFIG:=CONFIG_SOFT_WATCHDOG \ - CONFIG_SOFT_WATCHDOG_PRETIMEOUT=n - FILES:=$(LINUX_DIR)/drivers/$(WATCHDOG_DIR)/softdog.ko - AUTOLOAD:=$(call AutoLoad,50,softdog,1) -endef - -define KernelPackage/softdog/description - Software watchdog driver -endef - -$(eval $(call KernelPackage,softdog)) - - -define KernelPackage/ssb - SUBMENU:=$(OTHER_MENU) - TITLE:=Silicon Sonics Backplane glue code - DEPENDS:=@PCI_SUPPORT @!TARGET_bcm47xx @!TARGET_bcm63xx - KCONFIG:=\ - CONFIG_SSB \ - CONFIG_SSB_B43_PCI_BRIDGE=y \ - CONFIG_SSB_DRIVER_MIPS=n \ - CONFIG_SSB_DRIVER_PCICORE=y \ - CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y \ - CONFIG_SSB_FALLBACK_SPROM=y \ - CONFIG_SSB_PCIHOST=y \ - CONFIG_SSB_PCIHOST_POSSIBLE=y \ - CONFIG_SSB_POSSIBLE=y \ - CONFIG_SSB_SPROM=y \ - CONFIG_SSB_SILENT=y - FILES:=$(LINUX_DIR)/drivers/ssb/ssb.ko - AUTOLOAD:=$(call AutoLoad,18,ssb,1) -endef - -define KernelPackage/ssb/description - Silicon Sonics Backplane glue code. -endef - -$(eval $(call KernelPackage,ssb)) - - -define KernelPackage/bcma - SUBMENU:=$(OTHER_MENU) - TITLE:=BCMA support - DEPENDS:=@PCI_SUPPORT @!TARGET_bcm47xx @!TARGET_bcm53xx - KCONFIG:=\ - CONFIG_BCMA \ - CONFIG_BCMA_POSSIBLE=y \ - CONFIG_BCMA_BLOCKIO=y \ - CONFIG_BCMA_FALLBACK_SPROM=y \ - CONFIG_BCMA_HOST_PCI_POSSIBLE=y \ - CONFIG_BCMA_HOST_PCI=y \ - CONFIG_BCMA_HOST_SOC=n \ - CONFIG_BCMA_DRIVER_MIPS=n \ - CONFIG_BCMA_DRIVER_PCI_HOSTMODE=n \ - CONFIG_BCMA_DRIVER_GMAC_CMN=n \ - CONFIG_BCMA_DEBUG=n - FILES:=$(LINUX_DIR)/drivers/bcma/bcma.ko - AUTOLOAD:=$(call AutoLoad,29,bcma) -endef - -define KernelPackage/bcma/description - Bus driver for Broadcom specific Advanced Microcontroller Bus Architecture -endef - -$(eval $(call KernelPackage,bcma)) - - -define KernelPackage/mfd - SUBMENU:=$(OTHER_MENU) - TITLE:=Multifunction device drivers - HIDDEN:=1 - KCONFIG:=CONFIG_MFD_CORE - FILES:=$(LINUX_DIR)/drivers/mfd/mfd-core.ko - AUTOLOAD:=$(call AutoLoad,10,mfd-core) -endef - -$(eval $(call KernelPackage,mfd)) - - -define KernelPackage/mtdtests - SUBMENU:=$(OTHER_MENU) - TITLE:=MTD subsystem tests - KCONFIG:=CONFIG_MTD_TESTS - FILES:=\ - $(LINUX_DIR)/drivers/mtd/tests/mtd_nandbiterrs.ko \ - $(LINUX_DIR)/drivers/mtd/tests/mtd_nandecctest.ko \ - $(LINUX_DIR)/drivers/mtd/tests/mtd_oobtest.ko \ - $(LINUX_DIR)/drivers/mtd/tests/mtd_pagetest.ko \ - $(LINUX_DIR)/drivers/mtd/tests/mtd_readtest.ko \ - $(LINUX_DIR)/drivers/mtd/tests/mtd_speedtest.ko \ - $(LINUX_DIR)/drivers/mtd/tests/mtd_stresstest.ko \ - $(LINUX_DIR)/drivers/mtd/tests/mtd_subpagetest.ko \ - $(LINUX_DIR)/drivers/mtd/tests/mtd_test.ko@ge6.1 \ - $(LINUX_DIR)/drivers/mtd/tests/mtd_torturetest.ko -endef - -define KernelPackage/mtdtests/description - Kernel modules for MTD subsystem/driver testing -endef - -$(eval $(call KernelPackage,mtdtests)) - - -define KernelPackage/mtdoops - SUBMENU:=$(OTHER_MENU) - TITLE:=Log panic/oops to an MTD buffer - KCONFIG:=CONFIG_MTD_OOPS - FILES:=$(LINUX_DIR)/drivers/mtd/mtdoops.ko -endef - -define KernelPackage/mtdoops/description - Kernel modules for Log panic/oops to an MTD buffer -endef - -$(eval $(call KernelPackage,mtdoops)) - - -define KernelPackage/mtdram - SUBMENU:=$(OTHER_MENU) - TITLE:=Test MTD driver using RAM - KCONFIG:=CONFIG_MTD_MTDRAM \ - CONFIG_MTDRAM_TOTAL_SIZE=4096 \ - CONFIG_MTDRAM_ERASE_SIZE=128 - FILES:=$(LINUX_DIR)/drivers/mtd/devices/mtdram.ko -endef - -define KernelPackage/mtdram/description - Test MTD driver using RAM -endef - -$(eval $(call KernelPackage,mtdram)) - - -define KernelPackage/ramoops - SUBMENU:=$(OTHER_MENU) - TITLE:=Ramoops (pstore-ram) - DEFAULT:=m if ALL_KMODS - KCONFIG:=CONFIG_PSTORE_RAM \ - CONFIG_PSTORE_CONSOLE=y - DEPENDS:=+kmod-pstore +kmod-reed-solomon - FILES:= $(LINUX_DIR)/fs/pstore/ramoops.ko - AUTOLOAD:=$(call AutoLoad,30,ramoops,1) -endef - -define KernelPackage/ramoops/description - Kernel module for pstore-ram (ramoops) crash log storage -endef - -$(eval $(call KernelPackage,ramoops)) - - -define KernelPackage/reed-solomon - SUBMENU:=$(OTHER_MENU) - TITLE:=Reed-Solomon error correction - DEFAULT:=m if ALL_KMODS - KCONFIG:=CONFIG_REED_SOLOMON \ - CONFIG_REED_SOLOMON_DEC8=y \ - CONFIG_REED_SOLOMON_ENC8=y - FILES:= $(LINUX_DIR)/lib/reed_solomon/reed_solomon.ko - AUTOLOAD:=$(call AutoLoad,30,reed_solomon,1) -endef - -define KernelPackage/reed-solomon/description - Kernel module for Reed-Solomon error correction -endef - -$(eval $(call KernelPackage,reed-solomon)) - - -define KernelPackage/serial-8250 - SUBMENU:=$(OTHER_MENU) - TITLE:=8250 UARTs - KCONFIG:= CONFIG_SERIAL_8250 \ - CONFIG_SERIAL_8250_PCI \ - CONFIG_SERIAL_8250_NR_UARTS=16 \ - CONFIG_SERIAL_8250_RUNTIME_UARTS=16 \ - CONFIG_SERIAL_8250_EXTENDED=y \ - CONFIG_SERIAL_8250_MANY_PORTS=y \ - CONFIG_SERIAL_8250_SHARE_IRQ=y \ - CONFIG_SERIAL_8250_DETECT_IRQ=n \ - CONFIG_SERIAL_8250_RSA=n - FILES:= \ - $(LINUX_DIR)/drivers/tty/serial/8250/8250.ko \ - $(LINUX_DIR)/drivers/tty/serial/8250/8250_base.ko \ - $(if $(CONFIG_PCI),$(LINUX_DIR)/drivers/tty/serial/8250/8250_pci.ko) \ - $(if $(CONFIG_GPIOLIB),$(LINUX_DIR)/drivers/tty/serial/serial_mctrl_gpio.ko) - AUTOLOAD:=$(call AutoProbe,8250 8250_base 8250_pci) -endef - -define KernelPackage/serial-8250/description - Kernel module for 8250 UART based serial ports -endef - -$(eval $(call KernelPackage,serial-8250)) - - -define KernelPackage/serial-8250-exar - SUBMENU:=$(OTHER_MENU) - TITLE:=Exar 8250 UARTs - KCONFIG:= CONFIG_SERIAL_8250_EXAR - FILES:=$(LINUX_DIR)/drivers/tty/serial/8250/8250_exar.ko - AUTOLOAD:=$(call AutoProbe,8250 8250_base 8250_exar) - DEPENDS:=@PCI_SUPPORT +kmod-serial-8250 -endef - -define KernelPackage/serial-8250-exar/description - Kernel module for Exar serial ports -endef - -$(eval $(call KernelPackage,serial-8250-exar)) - - -define KernelPackage/regmap-core - SUBMENU:=$(OTHER_MENU) - TITLE:=Generic register map support - HIDDEN:=1 - KCONFIG:=CONFIG_REGMAP -ifneq ($(wildcard $(LINUX_DIR)/drivers/base/regmap/regmap-core.ko),) - FILES:=$(LINUX_DIR)/drivers/base/regmap/regmap-core.ko -endif -endef - -define KernelPackage/regmap-core/description - Generic register map support -endef - -$(eval $(call KernelPackage,regmap-core)) - - -define KernelPackage/regmap-spi - SUBMENU:=$(OTHER_MENU) - TITLE:=SPI register map support - DEPENDS:=+kmod-regmap-core - HIDDEN:=1 - KCONFIG:=CONFIG_REGMAP_SPI \ - CONFIG_SPI=y - FILES:=$(LINUX_DIR)/drivers/base/regmap/regmap-spi.ko -endef - -define KernelPackage/regmap-spi/description - SPI register map support -endef - -$(eval $(call KernelPackage,regmap-spi)) - - -define KernelPackage/regmap-i2c - SUBMENU:=$(OTHER_MENU) - TITLE:=I2C register map support - DEPENDS:=+kmod-regmap-core +kmod-i2c-core - HIDDEN:=1 - KCONFIG:=CONFIG_REGMAP_I2C - FILES:=$(LINUX_DIR)/drivers/base/regmap/regmap-i2c.ko -endef - -define KernelPackage/regmap-i2c/description - I2C register map support -endef - -$(eval $(call KernelPackage,regmap-i2c)) - - -define KernelPackage/regmap-mmio - SUBMENU:=$(OTHER_MENU) - TITLE:=MMIO register map support - DEPENDS:=+kmod-regmap-core - HIDDEN:=1 - KCONFIG:=CONFIG_REGMAP_MMIO - FILES:=$(LINUX_DIR)/drivers/base/regmap/regmap-mmio.ko -endef - -define KernelPackage/regmap-mmio/description - MMIO register map support -endef - -$(eval $(call KernelPackage,regmap-mmio)) - - -define KernelPackage/ikconfig - SUBMENU:=$(OTHER_MENU) - TITLE:=Kernel configuration via /proc/config.gz - KCONFIG:=CONFIG_IKCONFIG \ - CONFIG_IKCONFIG_PROC=y - FILES:=$(LINUX_DIR)/kernel/configs.ko - AUTOLOAD:=$(call AutoLoad,70,configs) -endef - -define KernelPackage/ikconfig/description - Kernel configuration via /proc/config.gz -endef - -$(eval $(call KernelPackage,ikconfig)) - - -define KernelPackage/zram - SUBMENU:=$(OTHER_MENU) - TITLE:=ZRAM - KCONFIG:= \ - CONFIG_ZSMALLOC \ - CONFIG_ZRAM \ - CONFIG_ZRAM_DEBUG=n \ - CONFIG_ZRAM_WRITEBACK=n \ - CONFIG_ZSMALLOC_STAT=n - FILES:= \ - $(LINUX_DIR)/mm/zsmalloc.ko \ - $(LINUX_DIR)/drivers/block/zram/zram.ko - AUTOLOAD:=$(call AutoLoad,20,zsmalloc zram) -endef - -define KernelPackage/zram/description - Compressed RAM block device support -endef - -define KernelPackage/zram/config - if PACKAGE_kmod-zram - choice - prompt "ZRAM Default compressor" - default ZRAM_DEF_COMP_LZORLE - - config ZRAM_DEF_COMP_LZORLE - bool "lzo-rle" - select PACKAGE_kmod-lib-lzo - - config ZRAM_DEF_COMP_LZO - bool "lzo" - select PACKAGE_kmod-lib-lzo - - config ZRAM_DEF_COMP_LZ4 - bool "lz4" - select PACKAGE_kmod-lib-lz4 - - config ZRAM_DEF_COMP_LZ4HC - bool "lz4-hc" - select PACKAGE_kmod-lib-lz4hc - - config ZRAM_DEF_COMP_ZSTD - bool "zstd" - select PACKAGE_kmod-lib-zstd - - endchoice - endif -endef - -$(eval $(call KernelPackage,zram)) - -define KernelPackage/pps - SUBMENU:=$(OTHER_MENU) - TITLE:=PPS support - KCONFIG:=CONFIG_PPS - FILES:=$(LINUX_DIR)/drivers/pps/pps_core.ko - AUTOLOAD:=$(call AutoLoad,17,pps_core,1) -endef - -define KernelPackage/pps/description - PPS (Pulse Per Second) is a special pulse provided by some GPS - antennae. Userland can use it to get a high-precision time - reference. -endef - -$(eval $(call KernelPackage,pps)) - - -define KernelPackage/pps-gpio - SUBMENU:=$(OTHER_MENU) - TITLE:=PPS client using GPIO - DEPENDS:=+kmod-pps - KCONFIG:=CONFIG_PPS_CLIENT_GPIO - FILES:=$(LINUX_DIR)/drivers/pps/clients/pps-gpio.ko - AUTOLOAD:=$(call AutoLoad,18,pps-gpio,1) -endef - -define KernelPackage/pps-gpio/description - Support for a PPS source using GPIO. To be useful you must - also register a platform device specifying the GPIO pin and - other options, usually in your board setup. -endef - -$(eval $(call KernelPackage,pps-gpio)) - - -define KernelPackage/pps-ldisc - SUBMENU:=$(OTHER_MENU) - TITLE:=PPS line discipline - DEPENDS:=+kmod-pps - KCONFIG:=CONFIG_PPS_CLIENT_LDISC - FILES:=$(LINUX_DIR)/drivers/pps/clients/pps-ldisc.ko - AUTOLOAD:=$(call AutoLoad,18,pps-ldisc,1) -endef - -define KernelPackage/pps-ldisc/description - Support for a PPS source connected with the CD (Carrier - Detect) pin of your serial port. -endef - -$(eval $(call KernelPackage,pps-ldisc)) - - -define KernelPackage/ptp - SUBMENU:=$(OTHER_MENU) - TITLE:=PTP clock support - DEPENDS:=+kmod-pps - KCONFIG:= \ - CONFIG_PTP_1588_CLOCK \ - CONFIG_NET_PTP_CLASSIFY=y - FILES:=$(LINUX_DIR)/drivers/ptp/ptp.ko - AUTOLOAD:=$(call AutoLoad,18,ptp,1) -endef - -define KernelPackage/ptp/description - The IEEE 1588 standard defines a method to precisely - synchronize distributed clocks over Ethernet networks. -endef - -$(eval $(call KernelPackage,ptp)) - - -define KernelPackage/ptp-qoriq - SUBMENU:=$(OTHER_MENU) - TITLE:=Freescale QorIQ PTP support - DEPENDS:=@(TARGET_mpc85xx||TARGET_qoriq) +kmod-ptp - KCONFIG:=CONFIG_PTP_1588_CLOCK_QORIQ - FILES:=$(LINUX_DIR)/drivers/ptp/ptp-qoriq.ko - AUTOLOAD:=$(call AutoProbe,ptp-qoriq) -endef - - -define KernelPackage/ptp-qoriq/description - Kernel module for IEEE 1588 support for Freescale - QorIQ Ethernet drivers -endef - -$(eval $(call KernelPackage,ptp-qoriq)) - -define KernelPackage/random-core - SUBMENU:=$(OTHER_MENU) - TITLE:=Hardware Random Number Generator Core support - KCONFIG:=CONFIG_HW_RANDOM - FILES:=$(LINUX_DIR)/drivers/char/hw_random/rng-core.ko -endef - -define KernelPackage/random-core/description - Kernel module for the HW random number generator core infrastructure -endef - -$(eval $(call KernelPackage,random-core)) - - -define KernelPackage/thermal - SUBMENU:=$(OTHER_MENU) - TITLE:=Thermal driver - DEPENDS:=+kmod-hwmon-core - HIDDEN:=1 - KCONFIG:= \ - CONFIG_THERMAL=y \ - CONFIG_THERMAL_OF=y \ - CONFIG_CPU_THERMAL=y \ - CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y \ - CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE=n \ - CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE=n \ - CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 \ - CONFIG_THERMAL_GOV_FAIR_SHARE=n \ - CONFIG_THERMAL_GOV_STEP_WISE=y \ - CONFIG_THERMAL_GOV_USER_SPACE=n \ - CONFIG_THERMAL_HWMON=y \ - CONFIG_THERMAL_EMULATION=n -endef - -define KernelPackage/thermal/description - Thermal driver offers a generic mechanism for thermal management. - Usually it's made up of one or more thermal zone and cooling device. -endef - -$(eval $(call KernelPackage,thermal)) - - -define KernelPackage/echo - SUBMENU:=$(OTHER_MENU) - TITLE:=Line Echo Canceller - KCONFIG:=CONFIG_ECHO - FILES:=$(LINUX_DIR)/drivers/misc/echo/echo.ko - AUTOLOAD:=$(call AutoLoad,50,echo) -endef - -define KernelPackage/echo/description - This driver provides line echo cancelling support for mISDN and - DAHDI drivers -endef - -$(eval $(call KernelPackage,echo)) - - -define KernelPackage/keys-encrypted - SUBMENU:=$(OTHER_MENU) - TITLE:=encrypted keys on kernel keyring - DEPENDS:=@KERNEL_KEYS +kmod-crypto-cbc +kmod-crypto-hmac +kmod-crypto-rng \ - +kmod-crypto-sha256 +kmod-keys-trusted - KCONFIG:=CONFIG_ENCRYPTED_KEYS - FILES:=$(LINUX_DIR)/security/keys/encrypted-keys/encrypted-keys.ko - AUTOLOAD:=$(call AutoLoad,01,encrypted-keys,1) -endef - -define KernelPackage/keys-encrypted/description - This module provides support for create/encrypting/decrypting keys - in the kernel. Encrypted keys are kernel generated random numbers, - which are encrypted/decrypted with a 'master' symmetric key. The - 'master' key can be either a trusted-key or user-key type. - Userspace only ever sees/stores encrypted blobs. -endef - -$(eval $(call KernelPackage,keys-encrypted)) - - -define KernelPackage/keys-trusted - SUBMENU:=$(OTHER_MENU) - TITLE:=TPM trusted keys on kernel keyring - DEPENDS:=@KERNEL_KEYS +kmod-crypto-hash +kmod-crypto-hmac +kmod-crypto-sha1 +kmod-tpm - KCONFIG:=CONFIG_TRUSTED_KEYS - FILES:= $(LINUX_DIR)/security/keys/trusted-keys/trusted.ko - AUTOLOAD:=$(call AutoLoad,01,trusted-keys,1) -endef - -define KernelPackage/keys-trusted/description - This module provides support for creating, sealing, and unsealing - keys in the kernel. Trusted keys are random number symmetric keys, - generated and RSA-sealed by the TPM. The TPM only unseals the keys, - if the boot PCRs and other criteria match. Userspace will only ever - see encrypted blobs. -endef - -$(eval $(call KernelPackage,keys-trusted)) - - -define KernelPackage/tpm - SUBMENU:=$(OTHER_MENU) - TITLE:=TPM Hardware Support - DEPENDS:= +kmod-random-core +kmod-asn1-decoder \ - +kmod-asn1-encoder +kmod-oid-registry - KCONFIG:= CONFIG_TCG_TPM - FILES:= $(LINUX_DIR)/drivers/char/tpm/tpm.ko - AUTOLOAD:=$(call AutoLoad,10,tpm,1) -endef - -define KernelPackage/tpm/description - This enables TPM Hardware Support. -endef - -$(eval $(call KernelPackage,tpm)) - -define KernelPackage/tpm-tis - SUBMENU:=$(OTHER_MENU) - TITLE:=TPM TIS 1.2 Interface / TPM 2.0 FIFO Interface - DEPENDS:= @TARGET_x86 +kmod-tpm - KCONFIG:= CONFIG_TCG_TIS - FILES:= \ - $(LINUX_DIR)/drivers/char/tpm/tpm_tis.ko \ - $(LINUX_DIR)/drivers/char/tpm/tpm_tis_core.ko - AUTOLOAD:=$(call AutoLoad,20,tpm_tis,1) -endef - -define KernelPackage/tpm-tis/description - If you have a TPM security chip that is compliant with the - TCG TIS 1.2 TPM specification (TPM1.2) or the TCG PTP FIFO - specification (TPM2.0) say Yes and it will be accessible from - within Linux. -endef - -$(eval $(call KernelPackage,tpm-tis)) - -define KernelPackage/tpm-i2c-atmel - SUBMENU:=$(OTHER_MENU) - TITLE:=TPM I2C Atmel Support - DEPENDS:= +kmod-tpm +kmod-i2c-core - KCONFIG:= CONFIG_TCG_TIS_I2C_ATMEL - FILES:= $(LINUX_DIR)/drivers/char/tpm/tpm_i2c_atmel.ko - AUTOLOAD:=$(call AutoLoad,40,tpm_i2c_atmel,1) -endef - -define KernelPackage/tpm-i2c-atmel/description - This enables the TPM Interface Specification 1.2 Interface (I2C - Atmel) -endef - -$(eval $(call KernelPackage,tpm-i2c-atmel)) - -define KernelPackage/tpm-i2c-infineon - SUBMENU:=$(OTHER_MENU) - TITLE:= TPM I2C Infineon driver - DEPENDS:= +kmod-tpm +kmod-i2c-core - KCONFIG:= CONFIG_TCG_TIS_I2C_INFINEON - FILES:= $(LINUX_DIR)/drivers/char/tpm/tpm_i2c_infineon.ko - AUTOLOAD:= $(call AutoLoad,40,tpm_i2c_infineon,1) -endef - -define KernelPackage/tpm-i2c-infineon/description - This enables the TPM Interface Specification 1.2 Interface (I2C - Infineon) -endef - -$(eval $(call KernelPackage,tpm-i2c-infineon)) - - -define KernelPackage/i6300esb-wdt - SUBMENU:=$(OTHER_MENU) - TITLE:=Intel 6300ESB Timer/Watchdog - DEPENDS:=@PCI_SUPPORT @!SMALL_FLASH - KCONFIG:=CONFIG_I6300ESB_WDT \ - CONFIG_WATCHDOG_CORE=y - FILES:=$(LINUX_DIR)/drivers/$(WATCHDOG_DIR)/i6300esb.ko - AUTOLOAD:=$(call AutoLoad,50,i6300esb,1) -endef - -define KernelPackage/i6300esb-wdt/description - Kernel module for the watchdog timer built into the Intel - 6300ESB controller hub. Also used by QEMU/libvirt. -endef - -$(eval $(call KernelPackage,i6300esb-wdt)) - - -define KernelPackage/mhi-bus - SUBMENU:=$(OTHER_MENU) - TITLE:=MHI bus - KCONFIG:=CONFIG_MHI_BUS \ - CONFIG_MHI_BUS_DEBUG=y - FILES:=$(LINUX_DIR)/drivers/bus/mhi/host/mhi.ko - AUTOLOAD:=$(call AutoProbe,mhi) -endef - -define KernelPackage/mhi-bus/description - Kernel module for the Qualcomm MHI bus. -endef - -$(eval $(call KernelPackage,mhi-bus)) - -define KernelPackage/mhi-pci-generic - SUBMENU:=$(OTHER_MENU) - TITLE:=MHI PCI controller driver - DEPENDS:=@PCI_SUPPORT +kmod-mhi-bus - KCONFIG:=CONFIG_MHI_BUS_PCI_GENERIC - FILES:=$(LINUX_DIR)/drivers/bus/mhi/host/mhi_pci_generic.ko - AUTOLOAD:=$(call AutoProbe,mhi_pci_generic) -endef - -define KernelPackage/mhi-pci-generic/description - Kernel module for the MHI PCI controller driver. -endef - -$(eval $(call KernelPackage,mhi-pci-generic)) diff --git a/6.12/package/kernel/linux/modules/video.mk b/6.12/package/kernel/linux/modules/video.mk deleted file mode 100644 index d28bb012..00000000 --- a/6.12/package/kernel/linux/modules/video.mk +++ /dev/null @@ -1,1269 +0,0 @@ -# -# Copyright (C) 2009 David Cooper -# Copyright (C) 2006-2010 OpenWrt.org -# -# This is free software, licensed under the GNU General Public License v2. -# See /LICENSE for more information. -# - -VIDEO_MENU:=Video Support - -V4L2_DIR=v4l2-core -V4L2_USB_DIR=usb -V4L2_MEM2MEM_DIR=platform - -# -# Video Display -# - -define KernelPackage/acpi-video - SUBMENU:=$(VIDEO_MENU) - TITLE:=ACPI Extensions For Display Adapters - DEPENDS:=@TARGET_x86||TARGET_loongarch64 +kmod-backlight - HIDDEN:=1 - KCONFIG:=CONFIG_ACPI_VIDEO - FILES:=$(LINUX_DIR)/drivers/acpi/video.ko - AUTOLOAD:=$(call AutoProbe,video) -endef - -define KernelPackage/acpi-video/description - Kernel support for integrated graphics devices. -endef - -define KernelPackage/acpi-video/x86 - KCONFIG+=CONFIG_ACPI_WMI - FILES+=$(LINUX_DIR)/drivers/platform/x86/wmi.ko - AUTOLOAD:=$(call AutoProbe,wmi video) -endef - -$(eval $(call KernelPackage,acpi-video)) - -define KernelPackage/backlight - SUBMENU:=$(VIDEO_MENU) - TITLE:=Backlight support - DEPENDS:=@DISPLAY_SUPPORT - HIDDEN:=1 - KCONFIG:=CONFIG_BACKLIGHT_CLASS_DEVICE \ - CONFIG_BACKLIGHT_LCD_SUPPORT=y \ - CONFIG_LCD_CLASS_DEVICE=n \ - CONFIG_BACKLIGHT_GENERIC=n \ - CONFIG_BACKLIGHT_ADP8860=n \ - CONFIG_BACKLIGHT_ADP8870=n \ - CONFIG_BACKLIGHT_OT200=n \ - CONFIG_BACKLIGHT_PM8941_WLED=n - FILES:=$(LINUX_DIR)/drivers/video/backlight/backlight.ko - AUTOLOAD:=$(call AutoProbe,video backlight) -endef - -define KernelPackage/backlight/description - Kernel module for Backlight support. -endef - -$(eval $(call KernelPackage,backlight)) - -define KernelPackage/backlight-pwm - SUBMENU:=$(VIDEO_MENU) - TITLE:=PWM Backlight support - DEPENDS:=+kmod-backlight - KCONFIG:=CONFIG_BACKLIGHT_PWM - FILES:=$(LINUX_DIR)/drivers/video/backlight/pwm_bl.ko - AUTOLOAD:=$(call AutoProbe,video pwm_bl) -endef - -define KernelPackage/backlight-pwm/description - Kernel module for PWM based Backlight support. -endef - -$(eval $(call KernelPackage,backlight-pwm)) - - -#define KernelPackage/fb -# SUBMENU:=$(VIDEO_MENU) -# TITLE:=Framebuffer and framebuffer console support -# DEPENDS:=@DISPLAY_SUPPORT -# KCONFIG:= \ -# CONFIG_FB \ -# CONFIG_FB_DEVICE=y \ -# CONFIG_FB_MXS=n \ -# CONFIG_FB_SM750=n \ -# CONFIG_FRAMEBUFFER_CONSOLE=y \ -# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y \ -# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y \ -# CONFIG_FONTS=y \ -# CONFIG_FONT_8x8=y \ -# CONFIG_FONT_8x16=y \ -# CONFIG_FONT_6x11=n \ -# CONFIG_FONT_7x14=n \ -# CONFIG_FONT_PEARL_8x8=n \ -# CONFIG_FONT_ACORN_8x8=n \ -# CONFIG_FONT_MINI_4x6=n \ -# CONFIG_FONT_6x10=n \ -# CONFIG_FONT_SUN8x16=n \ -# CONFIG_FONT_SUN12x22=n \ -# CONFIG_FONT_10x18=n \ -# CONFIG_VT=y \ -# CONFIG_CONSOLE_TRANSLATIONS=y \ -# CONFIG_VT_CONSOLE=y \ -# CONFIG_VT_HW_CONSOLE_BINDING=y -# FILES:=$(LINUX_DIR)/drivers/video/fbdev/core/fb.ko \ -# $(LINUX_DIR)/lib/fonts/font.ko \ -# $(LINUX_DIR)/drivers/video/fbdev/core/fb_io_fops.ko@ge6.6 -# AUTOLOAD:=$(call AutoLoad,06,fb font) -#endef - -#define KernelPackage/fb/description -# Kernel support for framebuffers and framebuffer console. -#endef - -#define KernelPackage/fb/x86 -# FILES+=$(LINUX_DIR)/arch/x86/video/fbdev.ko -# AUTOLOAD:=$(call AutoLoad,06,fbdev fb font) -#endef - -#$(eval $(call KernelPackage,fb)) - - -define KernelPackage/fb-cfb-fillrect - SUBMENU:=$(VIDEO_MENU) - TITLE:=Framebuffer software rectangle filling support - DEPENDS:=+kmod-fb - KCONFIG:=CONFIG_FB_CFB_FILLRECT - FILES:=$(LINUX_DIR)/drivers/video/fbdev/core/cfbfillrect.ko - AUTOLOAD:=$(call AutoLoad,07,cfbfillrect) -endef - -define KernelPackage/fb-cfb-fillrect/description - Kernel support for software rectangle filling -endef - -$(eval $(call KernelPackage,fb-cfb-fillrect)) - - -define KernelPackage/fb-cfb-copyarea - SUBMENU:=$(VIDEO_MENU) - TITLE:=Framebuffer software copy area support - DEPENDS:=+kmod-fb - KCONFIG:=CONFIG_FB_CFB_COPYAREA - FILES:=$(LINUX_DIR)/drivers/video/fbdev/core/cfbcopyarea.ko - AUTOLOAD:=$(call AutoLoad,07,cfbcopyarea) -endef - -define KernelPackage/fb-cfb-copyarea/description - Kernel support for software copy area -endef - -$(eval $(call KernelPackage,fb-cfb-copyarea)) - -define KernelPackage/fb-cfb-imgblt - SUBMENU:=$(VIDEO_MENU) - TITLE:=Framebuffer software image blit support - DEPENDS:=+kmod-fb - KCONFIG:=CONFIG_FB_CFB_IMAGEBLIT - FILES:=$(LINUX_DIR)/drivers/video/fbdev/core/cfbimgblt.ko - AUTOLOAD:=$(call AutoLoad,07,cfbimgblt) -endef - -define KernelPackage/fb-cfb-imgblt/description - Kernel support for software image blitting -endef - -$(eval $(call KernelPackage,fb-cfb-imgblt)) - - -define KernelPackage/fb-sys-fops - SUBMENU:=$(VIDEO_MENU) - TITLE:=Framebuffer software sys ops support - DEPENDS:=+kmod-fb - KCONFIG:=CONFIG_FB_SYS_FOPS - FILES:=$(LINUX_DIR)/drivers/video/fbdev/core/fb_sys_fops.ko - AUTOLOAD:=$(call AutoLoad,07,fb_sys_fops) -endef - -define KernelPackage/fb-sys-fops/description - Kernel support for framebuffer sys ops -endef - -$(eval $(call KernelPackage,fb-sys-fops)) - - -define KernelPackage/fb-sys-ram - SUBMENU:=$(VIDEO_MENU) - TITLE:=Framebuffer in system RAM support - DEPENDS:=+kmod-fb - KCONFIG:= \ - CONFIG_FB_SYS_COPYAREA \ - CONFIG_FB_SYS_FILLRECT \ - CONFIG_FB_SYS_IMAGEBLIT - FILES:= \ - $(LINUX_DIR)/drivers/video/fbdev/core/syscopyarea.ko \ - $(LINUX_DIR)/drivers/video/fbdev/core/sysfillrect.ko \ - $(LINUX_DIR)/drivers/video/fbdev/core/sysimgblt.ko - AUTOLOAD:=$(call AutoLoad,07,syscopyarea sysfillrect sysimgblt) -endef - -define KernelPackage/fb-sys-ram/description - Kernel support for framebuffers in system RAM -endef - -$(eval $(call KernelPackage,fb-sys-ram)) - - -define KernelPackage/fb-tft - SUBMENU:=$(VIDEO_MENU) - TITLE:=Support for small TFT LCD display modules - DEPENDS:= \ - @GPIO_SUPPORT +kmod-backlight \ - +kmod-fb +kmod-fb-sys-fops +kmod-fb-sys-ram +kmod-spi-bitbang - KCONFIG:= \ - CONFIG_FB_BACKLIGHT=y \ - CONFIG_FB_DEFERRED_IO=y \ - CONFIG_FB_TFT - FILES:= \ - $(LINUX_DIR)/drivers/staging/fbtft/fbtft.ko - AUTOLOAD:=$(call AutoLoad,08,fbtft) -endef - -define KernelPackage/fb-tft/description - Support for small TFT LCD display modules -endef - -$(eval $(call KernelPackage,fb-tft)) - - -define KernelPackage/fb-tft-ili9486 - SUBMENU:=$(VIDEO_MENU) - TITLE:=FB driver for the ILI9486 LCD Controller - DEPENDS:=+kmod-fb-tft - KCONFIG:=CONFIG_FB_TFT_ILI9486 - FILES:=$(LINUX_DIR)/drivers/staging/fbtft/fb_ili9486.ko - AUTOLOAD:=$(call AutoLoad,09,fb_ili9486) -endef - -define KernelPackage/fb-tft-ili9486/description - FB driver for the ILI9486 LCD Controller -endef - -$(eval $(call KernelPackage,fb-tft-ili9486)) - - -define KernelPackage/drm - SUBMENU:=$(VIDEO_MENU) - TITLE:=Direct Rendering Manager (DRM) support - HIDDEN:=1 - DEPENDS:=+kmod-dma-buf +kmod-i2c-core +PACKAGE_kmod-backlight:kmod-backlight \ - +kmod-fb - KCONFIG:=CONFIG_DRM - FILES:= \ - $(LINUX_DIR)/drivers/gpu/drm/drm.ko \ - $(LINUX_DIR)/drivers/gpu/drm/drm_panel_orientation_quirks.ko - AUTOLOAD:=$(call AutoLoad,05,drm) -endef - -define KernelPackage/drm/description - Direct Rendering Manager (DRM) core support -endef - -$(eval $(call KernelPackage,drm)) - -define KernelPackage/drm-buddy - SUBMENU:=$(VIDEO_MENU) - TITLE:=A page based buddy allocator - DEPENDS:=@DISPLAY_SUPPORT +kmod-drm @LINUX_6_1||LINUX_6_6 - KCONFIG:=CONFIG_DRM_BUDDY - FILES:= $(LINUX_DIR)/drivers/gpu/drm/drm_buddy.ko - AUTOLOAD:=$(call AutoProbe,drm_buddy) -endef - -define KernelPackage/drm-buddy/description - A page based buddy allocator -endef - -$(eval $(call KernelPackage,drm-buddy)) - -define KernelPackage/drm-display-helper - SUBMENU:=$(VIDEO_MENU) - TITLE:=DRM helpers for display adapters drivers - DEPENDS:=@DISPLAY_SUPPORT +kmod-drm-kms-helper @LINUX_6_1||LINUX_6_6 - KCONFIG:=CONFIG_DRM_DISPLAY_HELPER - FILES:=$(LINUX_DIR)/drivers/gpu/drm/display/drm_display_helper.ko - AUTOLOAD:=$(call AutoProbe,drm_display_helper) -endef - -define KernelPackage/drm-display-helper/description - DRM helpers for display adapters drivers. -endef - -$(eval $(call KernelPackage,drm-display-helper)) - -define KernelPackage/drm-exec - SUBMENU:=$(VIDEO_MENU) - HIDDEN:=1 - TITLE:=Execution context for command submissions - DEPENDS:=@DISPLAY_SUPPORT +kmod-drm @LINUX_6_6 - KCONFIG:=CONFIG_DRM_EXEC - FILES:=$(LINUX_DIR)/drivers/gpu/drm/drm_exec.ko - AUTOLOAD:=$(call AutoProbe,drm_exec) -endef - -define KernelPackage/drm-exec/description - Execution context for command submissions. -endef - -$(eval $(call KernelPackage,drm-exec)) - -define KernelPackage/drm-ttm - SUBMENU:=$(VIDEO_MENU) - TITLE:=GPU memory management subsystem - DEPENDS:=@DISPLAY_SUPPORT +kmod-drm - KCONFIG:=CONFIG_DRM_TTM - FILES:=$(LINUX_DIR)/drivers/gpu/drm/ttm/ttm.ko - AUTOLOAD:=$(call AutoProbe,ttm) -endef - -define KernelPackage/drm-ttm/description - GPU memory management subsystem for devices with multiple GPU memory types. - Will be enabled automatically if a device driver uses it. -endef - -$(eval $(call KernelPackage,drm-ttm)) - - -define KernelPackage/drm-ttm-helper - SUBMENU:=$(VIDEO_MENU) - TITLE:=Helpers for ttm-based gem objects - HIDDEN:=1 - DEPENDS:=@DISPLAY_SUPPORT +kmod-drm-ttm - KCONFIG:=CONFIG_DRM_TTM_HELPER - FILES:=$(LINUX_DIR)/drivers/gpu/drm/drm_ttm_helper.ko - AUTOLOAD:=$(call AutoProbe,drm_ttm_helper) -endef - -$(eval $(call KernelPackage,drm-ttm-helper)) - - -define KernelPackage/drm-kms-helper - SUBMENU:=$(VIDEO_MENU) - TITLE:=CRTC helpers for KMS drivers - DEPENDS:=@DISPLAY_SUPPORT +kmod-drm +kmod-fb +kmod-fb-sys-fops +kmod-fb-cfb-copyarea \ - +kmod-fb-cfb-fillrect +kmod-fb-cfb-imgblt +kmod-fb-sys-ram - KCONFIG:= \ - CONFIG_DRM_KMS_HELPER \ - CONFIG_DRM_KMS_FB_HELPER=y - FILES:=$(LINUX_DIR)/drivers/gpu/drm/drm_kms_helper.ko - AUTOLOAD:=$(call AutoProbe,drm_kms_helper) -endef - -define KernelPackage/drm-kms-helper/description - CRTC helpers for KMS drivers. -endef - -$(eval $(call KernelPackage,drm-kms-helper)) - -define KernelPackage/drm-suballoc-helper - SUBMENU:=$(VIDEO_MENU) - HIDDEN:=1 - TITLE:=DRM suballocation helper - DEPENDS:=@DISPLAY_SUPPORT +kmod-drm @LINUX_6_6 - KCONFIG:=CONFIG_DRM_SUBALLOC_HELPER - FILES:=$(LINUX_DIR)/drivers/gpu/drm/drm_suballoc_helper.ko - AUTOLOAD:=$(call AutoProbe,drm_suballoc_helper) -endef - -define KernelPackage/drm-suballoc-helper/description - DRM suballocation helper. -endef - -$(eval $(call KernelPackage,drm-suballoc-helper)) - -define KernelPackage/drm-amdgpu - SUBMENU:=$(VIDEO_MENU) - TITLE:=AMDGPU DRM support - DEPENDS:=@TARGET_x86||TARGET_loongarch64 @DISPLAY_SUPPORT +kmod-backlight +kmod-drm-ttm \ - +kmod-drm-ttm-helper +kmod-drm-kms-helper +kmod-i2c-algo-bit +amdgpu-firmware \ - +kmod-drm-display-helper +kmod-drm-buddy +kmod-acpi-video \ - +LINUX_6_6:kmod-drm-exec +LINUX_6_6:kmod-drm-suballoc-helper - KCONFIG:=CONFIG_DRM_AMDGPU \ - CONFIG_DRM_AMDGPU_SI=y \ - CONFIG_DRM_AMDGPU_CIK=y \ - CONFIG_DRM_AMD_DC=y \ - CONFIG_DEBUG_KERNEL_DC=n - FILES:=$(LINUX_DIR)/drivers/gpu/drm/amd/amdgpu/amdgpu.ko \ - $(LINUX_DIR)/drivers/gpu/drm/scheduler/gpu-sched.ko \ - $(LINUX_DIR)/drivers/gpu/drm/amd/amdxcp/amdxcp.ko@ge6.5 - AUTOLOAD:=$(call AutoProbe,amdgpu) -endef - -define KernelPackage/drm-amdgpu/description - Direct Rendering Manager (DRM) support for AMDGPU Cards -endef - -define KernelPackage/drm-amdgpu/loongarch64 - KCONFIG+=CONFIG_DRM_AMDGPU_USERPTR=y \ - CONFIG_DRM_AMD_DC=y \ - CONFIG_DRM_AMD_DC_FP=y \ - CONFIG_DRM_AMD_DC_SI=y -endef - -$(eval $(call KernelPackage,drm-amdgpu)) - - -define KernelPackage/drm-imx - SUBMENU:=$(VIDEO_MENU) - TITLE:=Freescale i.MX DRM support - DEPENDS:=@TARGET_imx +kmod-drm-kms-helper - KCONFIG:=CONFIG_DRM_IMX \ - CONFIG_DRM_FBDEV_EMULATION=y \ - CONFIG_DRM_FBDEV_OVERALLOC=100 \ - CONFIG_IMX_IPUV3_CORE \ - CONFIG_RESET_CONTROLLER=y \ - CONFIG_DRM_IMX_IPUV3 \ - CONFIG_IMX_IPUV3 \ - CONFIG_DRM_GEM_CMA_HELPER=y \ - CONFIG_DRM_KMS_CMA_HELPER=y \ - CONFIG_DRM_IMX_FB_HELPER \ - CONFIG_DRM_IMX_PARALLEL_DISPLAY=n \ - CONFIG_DRM_IMX_TVE=n \ - CONFIG_DRM_IMX_LDB=n \ - CONFIG_DRM_IMX_HDMI=n - FILES:= \ - $(LINUX_DIR)/drivers/gpu/drm/imx/imxdrm.ko@lt6.6 \ - $(LINUX_DIR)/drivers/gpu/drm/imx/ipuv3/imxdrm.ko@ge6.6 \ - $(LINUX_DIR)/drivers/gpu/drm/drm_dma_helper.ko@ge6.1 \ - $(LINUX_DIR)/drivers/gpu/ipu-v3/imx-ipu-v3.ko - AUTOLOAD:=$(call AutoLoad,08,imxdrm imx-ipu-v3 imx-ipuv3-crtc) -endef - -define KernelPackage/drm-imx/description - Direct Rendering Manager (DRM) support for Freescale i.MX -endef - -$(eval $(call KernelPackage,drm-imx)) - -define KernelPackage/drm-imx-hdmi - SUBMENU:=$(VIDEO_MENU) - TITLE:=Freescale i.MX HDMI DRM support - DEPENDS:=+kmod-sound-core kmod-drm-imx kmod-drm-display-helper - KCONFIG:=CONFIG_DRM_IMX_HDMI \ - CONFIG_DRM_DW_HDMI_AHB_AUDIO \ - CONFIG_DRM_DW_HDMI_I2S_AUDIO - FILES:= \ - $(LINUX_DIR)/drivers/gpu/drm/bridge/synopsys/dw-hdmi.ko \ - $(LINUX_DIR)/drivers/gpu/drm/bridge/synopsys/dw-hdmi-ahb-audio.ko \ - $(LINUX_DIR)/drivers/gpu/drm/imx/dw_hdmi-imx.ko@lt6.6 \ - $(LINUX_DIR)/drivers/gpu/drm/imx/ipuv3/dw_hdmi-imx.ko@ge6.6 - AUTOLOAD:=$(call AutoLoad,08,dw-hdmi dw-hdmi-ahb-audio.ko dw_hdmi-imx) -endef - -define KernelPackage/drm-imx-hdmi/description - Direct Rendering Manager (DRM) support for Freescale i.MX HDMI -endef - -$(eval $(call KernelPackage,drm-imx-hdmi)) - -define KernelPackage/drm-imx-ldb - SUBMENU:=$(VIDEO_MENU) - TITLE:=Freescale i.MX LVDS DRM support - DEPENDS:=@(TARGET_imx&&TARGET_imx_cortexa9) +kmod-backlight kmod-drm-imx - KCONFIG:=CONFIG_DRM_IMX_LDB \ - CONFIG_DRM_PANEL_SIMPLE \ - CONFIG_DRM_PANEL=y \ - CONFIG_DRM_PANEL_SAMSUNG_LD9040=n \ - CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0=n \ - CONFIG_DRM_PANEL_LG_LG4573=n \ - CONFIG_DRM_PANEL_LD9040=n \ - CONFIG_DRM_PANEL_LVDS=n \ - CONFIG_DRM_PANEL_S6E8AA0=n \ - CONFIG_DRM_PANEL_SITRONIX_ST7789V=n - FILES:=$(LINUX_DIR)/drivers/gpu/drm/imx/imx-ldb.ko@lt6.6 \ - $(LINUX_DIR)/drivers/gpu/drm/imx/ipuv3/imx-ldb.ko@ge6.6 \ - $(LINUX_DIR)/drivers/gpu/drm/panel/panel-simple.ko \ - $(LINUX_DIR)/drivers/gpu/drm/drm_dp_aux_bus.ko@lt6.1 - AUTOLOAD:=$(call AutoLoad,08,imx-ldb) -endef - -define KernelPackage/drm-imx-ldb/description - Direct Rendering Manager (DRM) support for Freescale i.MX LVDS -endef - -$(eval $(call KernelPackage,drm-imx-ldb)) - -define KernelPackage/drm-radeon - SUBMENU:=$(VIDEO_MENU) - TITLE:=Radeon DRM support - DEPENDS:=@TARGET_x86 @DISPLAY_SUPPORT +kmod-backlight +kmod-drm-kms-helper \ - +kmod-drm-ttm +kmod-drm-ttm-helper +kmod-i2c-algo-bit +radeon-firmware \ - +kmod-drm-display-helper +kmod-acpi-video +LINUX_6_6:kmod-drm-suballoc-helper - KCONFIG:=CONFIG_DRM_RADEON - FILES:=$(LINUX_DIR)/drivers/gpu/drm/radeon/radeon.ko - AUTOLOAD:=$(call AutoProbe,radeon) -endef - -define KernelPackage/drm-radeon/description - Direct Rendering Manager (DRM) support for Radeon Cards -endef - -$(eval $(call KernelPackage,drm-radeon)) - -# -# Video Capture -# - -define KernelPackage/video-core - SUBMENU:=$(VIDEO_MENU) - TITLE=Video4Linux support - DEPENDS:=+PACKAGE_kmod-i2c-core:kmod-i2c-core - KCONFIG:= \ - CONFIG_MEDIA_SUPPORT \ - CONFIG_MEDIA_CAMERA_SUPPORT=y \ - CONFIG_VIDEO_DEV \ - CONFIG_V4L_PLATFORM_DRIVERS=y \ - CONFIG_MEDIA_PLATFORM_DRIVERS=y@ge6.1 - FILES:= \ - $(LINUX_DIR)/drivers/media/$(V4L2_DIR)/videodev.ko - AUTOLOAD:=$(call AutoLoad,60,videodev) -endef - -define KernelPackage/video-core/description - Kernel modules for Video4Linux support -endef - -$(eval $(call KernelPackage,video-core)) - - -define AddDepends/video - SUBMENU:=$(VIDEO_MENU) - DEPENDS+=kmod-video-core $(1) -endef - -define AddDepends/camera -$(AddDepends/video) - KCONFIG+=CONFIG_MEDIA_USB_SUPPORT=y \ - CONFIG_MEDIA_CAMERA_SUPPORT=y -endef - -define AddDepends/framegrabber -$(AddDepends/video) - KCONFIG+=CONFIG_MEDIA_PCI_SUPPORT=y -endef - -define KernelPackage/video-videobuf2 - TITLE:=videobuf2 lib - DEPENDS:=+kmod-dma-buf - KCONFIG:= \ - CONFIG_VIDEOBUF2_CORE \ - CONFIG_VIDEOBUF2_MEMOPS \ - CONFIG_VIDEOBUF2_V4L2 \ - CONFIG_VIDEOBUF2_VMALLOC - FILES:= \ - $(LINUX_DIR)/drivers/media/common/videobuf2/videobuf2-common.ko \ - $(LINUX_DIR)/drivers/media/common/videobuf2/videobuf2-v4l2.ko \ - $(LINUX_DIR)/drivers/media/common/videobuf2/videobuf2-memops.ko \ - $(LINUX_DIR)/drivers/media/common/videobuf2/videobuf2-vmalloc.ko - AUTOLOAD:=$(call AutoLoad,65,videobuf2-core videobuf-v4l2 videobuf2-memops videobuf2-vmalloc) - $(call AddDepends/video) -endef - -define KernelPackage/video-videobuf2/description - Kernel modules that implements three basic types of media buffers. -endef - -$(eval $(call KernelPackage,video-videobuf2)) - - -define KernelPackage/video-cpia2 - TITLE:=CPIA2 video driver - DEPENDS:=@USB_SUPPORT +kmod-usb-core @LINUX_5_15 - KCONFIG:=CONFIG_VIDEO_CPIA2 - FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/cpia2/cpia2.ko - AUTOLOAD:=$(call AutoProbe,cpia2) - $(call AddDepends/camera) -endef - -define KernelPackage/video-cpia2/description - Kernel modules for supporting CPIA2 USB based cameras -endef - -$(eval $(call KernelPackage,video-cpia2)) - - -define KernelPackage/video-pwc - TITLE:=Philips USB webcam support - DEPENDS:=@USB_SUPPORT +kmod-usb-core +kmod-video-videobuf2 - KCONFIG:= \ - CONFIG_USB_PWC \ - CONFIG_USB_PWC_DEBUG=n - FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/pwc/pwc.ko - AUTOLOAD:=$(call AutoProbe,pwc) - $(call AddDepends/camera) -endef - -define KernelPackage/video-pwc/description - Kernel modules for supporting Philips USB based cameras -endef - -$(eval $(call KernelPackage,video-pwc)) - - -define KernelPackage/video-uvc - TITLE:=USB Video Class (UVC) support - DEPENDS:=@USB_SUPPORT +kmod-usb-core +kmod-video-videobuf2 +kmod-input-core - KCONFIG:= CONFIG_USB_VIDEO_CLASS CONFIG_UVC_COMMON@ge6.3 - FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/uvc/uvcvideo.ko \ - $(LINUX_DIR)/drivers/media/common/uvc.ko@ge6.3 - AUTOLOAD:=$(call AutoProbe,uvc@ge6.3 uvcvideo) - $(call AddDepends/camera) -endef - -define KernelPackage/video-uvc/description - Kernel modules for supporting USB Video Class (UVC) devices -endef - -$(eval $(call KernelPackage,video-uvc)) - - -define KernelPackage/video-gspca-core - MENU:=1 - TITLE:=GSPCA webcam core support framework - DEPENDS:=@USB_SUPPORT +kmod-usb-core +kmod-input-core +kmod-video-videobuf2 - KCONFIG:=CONFIG_USB_GSPCA - FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_main.ko - AUTOLOAD:=$(call AutoProbe,gspca_main) - $(call AddDepends/camera) -endef - -define KernelPackage/video-gspca-core/description - Kernel modules for supporting GSPCA based webcam devices. Note this is just - the core of the driver, please select a submodule that supports your webcam. -endef - -$(eval $(call KernelPackage,video-gspca-core)) - - -define AddDepends/camera-gspca - SUBMENU:=$(VIDEO_MENU) - DEPENDS+=kmod-video-gspca-core $(1) -endef - - -define KernelPackage/video-gspca-conex - TITLE:=conex webcam support - KCONFIG:=CONFIG_USB_GSPCA_CONEX - FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_conex.ko - AUTOLOAD:=$(call AutoProbe,gspca_conex) - $(call AddDepends/camera-gspca) -endef - -define KernelPackage/video-gspca-conex/description - The Conexant Camera Driver (conex) kernel module -endef - -$(eval $(call KernelPackage,video-gspca-conex)) - - -define KernelPackage/video-gspca-etoms - TITLE:=etoms webcam support - KCONFIG:=CONFIG_USB_GSPCA_ETOMS - FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_etoms.ko - AUTOLOAD:=$(call AutoProbe,gspca_etoms) - $(call AddDepends/camera-gspca) -endef - -define KernelPackage/video-gspca-etoms/description - The Etoms USB Camera Driver (etoms) kernel module -endef - -$(eval $(call KernelPackage,video-gspca-etoms)) - - -define KernelPackage/video-gspca-finepix - TITLE:=finepix webcam support - KCONFIG:=CONFIG_USB_GSPCA_FINEPIX - FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_finepix.ko - AUTOLOAD:=$(call AutoProbe,gspca_finepix) - $(call AddDepends/camera-gspca) -endef - -define KernelPackage/video-gspca-finepix/description - The Fujifilm FinePix USB V4L2 driver (finepix) kernel module -endef - -$(eval $(call KernelPackage,video-gspca-finepix)) - - -define KernelPackage/video-gspca-mars - TITLE:=mars webcam support - KCONFIG:=CONFIG_USB_GSPCA_MARS - FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_mars.ko - AUTOLOAD:=$(call AutoProbe,gspca_mars) - $(call AddDepends/camera-gspca) -endef - -define KernelPackage/video-gspca-mars/description - The Mars USB Camera Driver (mars) kernel module -endef - -$(eval $(call KernelPackage,video-gspca-mars)) - - -define KernelPackage/video-gspca-mr97310a - TITLE:=mr97310a webcam support - KCONFIG:=CONFIG_USB_GSPCA_MR97310A - FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_mr97310a.ko - AUTOLOAD:=$(call AutoProbe,gspca_mr97310a) - $(call AddDepends/camera-gspca) -endef - -define KernelPackage/video-gspca-mr97310a/description - The Mars-Semi MR97310A USB Camera Driver (mr97310a) kernel module -endef - -$(eval $(call KernelPackage,video-gspca-mr97310a)) - - -define KernelPackage/video-gspca-ov519 - TITLE:=ov519 webcam support - KCONFIG:=CONFIG_USB_GSPCA_OV519 - FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_ov519.ko - AUTOLOAD:=$(call AutoProbe,gspca_ov519) - $(call AddDepends/camera-gspca) -endef - -define KernelPackage/video-gspca-ov519/description - The OV519 USB Camera Driver (ov519) kernel module -endef - -$(eval $(call KernelPackage,video-gspca-ov519)) - - -define KernelPackage/video-gspca-ov534 - TITLE:=ov534 webcam support - KCONFIG:=CONFIG_USB_GSPCA_OV534 - FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_ov534.ko - AUTOLOAD:=$(call AutoProbe,gspca_ov534) - $(call AddDepends/camera-gspca) -endef - -define KernelPackage/video-gspca-ov534/description - The OV534 USB Camera Driver (ov534) kernel module -endef - -$(eval $(call KernelPackage,video-gspca-ov534)) - - -define KernelPackage/video-gspca-ov534-9 - TITLE:=ov534-9 webcam support - KCONFIG:=CONFIG_USB_GSPCA_OV534_9 - FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_ov534_9.ko - AUTOLOAD:=$(call AutoProbe,gspca_ov534_9) - $(call AddDepends/camera-gspca) -endef - -define KernelPackage/video-gspca-ov534-9/description - The OV534-9 USB Camera Driver (ov534_9) kernel module -endef - -$(eval $(call KernelPackage,video-gspca-ov534-9)) - - -define KernelPackage/video-gspca-pac207 - TITLE:=pac207 webcam support - KCONFIG:=CONFIG_USB_GSPCA_PAC207 - FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_pac207.ko - AUTOLOAD:=$(call AutoProbe,gspca_pac207) - $(call AddDepends/camera-gspca) -endef - -define KernelPackage/video-gspca-pac207/description - The Pixart PAC207 USB Camera Driver (pac207) kernel module -endef - -$(eval $(call KernelPackage,video-gspca-pac207)) - - -define KernelPackage/video-gspca-pac7311 - TITLE:=pac7311 webcam support - KCONFIG:=CONFIG_USB_GSPCA_PAC7311 - FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_pac7311.ko - AUTOLOAD:=$(call AutoProbe,gspca_pac7311) - $(call AddDepends/camera-gspca) -endef - -define KernelPackage/video-gspca-pac7311/description - The Pixart PAC7311 USB Camera Driver (pac7311) kernel module -endef - -$(eval $(call KernelPackage,video-gspca-pac7311)) - - -define KernelPackage/video-gspca-se401 - TITLE:=se401 webcam support - KCONFIG:=CONFIG_USB_GSPCA_SE401 - FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_se401.ko - AUTOLOAD:=$(call AutoProbe,gspca_se401) - $(call AddDepends/camera-gspca) -endef - -define KernelPackage/video-gspca-se401/description - The SE401 USB Camera Driver kernel module -endef - -$(eval $(call KernelPackage,video-gspca-se401)) - - -define KernelPackage/video-gspca-sn9c20x - TITLE:=sn9c20x webcam support - KCONFIG:=CONFIG_USB_GSPCA_SN9C20X - FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_sn9c20x.ko - AUTOLOAD:=$(call AutoProbe,gspca_sn9c20x) - $(call AddDepends/camera-gspca) -endef - -define KernelPackage/video-gspca-sn9c20x/description - The SN9C20X USB Camera Driver (sn9c20x) kernel module -endef - -$(eval $(call KernelPackage,video-gspca-sn9c20x)) - - -define KernelPackage/video-gspca-sonixb - TITLE:=sonixb webcam support - KCONFIG:=CONFIG_USB_GSPCA_SONIXB - FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_sonixb.ko - AUTOLOAD:=$(call AutoProbe,gspca_sonixb) - $(call AddDepends/camera-gspca) -endef - -define KernelPackage/video-gspca-sonixb/description - The SONIX Bayer USB Camera Driver (sonixb) kernel module -endef - -$(eval $(call KernelPackage,video-gspca-sonixb)) - - -define KernelPackage/video-gspca-sonixj - TITLE:=sonixj webcam support - KCONFIG:=CONFIG_USB_GSPCA_SONIXJ - FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_sonixj.ko - AUTOLOAD:=$(call AutoProbe,gspca_sonixj) - $(call AddDepends/camera-gspca) -endef - -define KernelPackage/video-gspca-sonixj/description - The SONIX JPEG USB Camera Driver (sonixj) kernel module -endef - -$(eval $(call KernelPackage,video-gspca-sonixj)) - - -define KernelPackage/video-gspca-spca500 - TITLE:=spca500 webcam support - KCONFIG:=CONFIG_USB_GSPCA_SPCA500 - FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_spca500.ko - AUTOLOAD:=$(call AutoProbe,gspca_spca500) - $(call AddDepends/camera-gspca) -endef - -define KernelPackage/video-gspca-spca500/description - The SPCA500 USB Camera Driver (spca500) kernel module -endef - -$(eval $(call KernelPackage,video-gspca-spca500)) - - -define KernelPackage/video-gspca-spca501 - TITLE:=spca501 webcam support - KCONFIG:=CONFIG_USB_GSPCA_SPCA501 - FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_spca501.ko - AUTOLOAD:=$(call AutoProbe,gspca_spca501) - $(call AddDepends/camera-gspca) -endef - -define KernelPackage/video-gspca-spca501/description - The SPCA501 USB Camera Driver (spca501) kernel module -endef - -$(eval $(call KernelPackage,video-gspca-spca501)) - - -define KernelPackage/video-gspca-spca505 - TITLE:=spca505 webcam support - KCONFIG:=CONFIG_USB_GSPCA_SPCA505 - FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_spca505.ko - AUTOLOAD:=$(call AutoProbe,gspca_spca505) - $(call AddDepends/camera-gspca) -endef - -define KernelPackage/video-gspca-spca505/description - The SPCA505 USB Camera Driver (spca505) kernel module -endef - -$(eval $(call KernelPackage,video-gspca-spca505)) - - -define KernelPackage/video-gspca-spca506 - TITLE:=spca506 webcam support - KCONFIG:=CONFIG_USB_GSPCA_SPCA506 - FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_spca506.ko - AUTOLOAD:=$(call AutoProbe,gspca_spca506) - $(call AddDepends/camera-gspca) -endef - -define KernelPackage/video-gspca-spca506/description - The SPCA506 USB Camera Driver (spca506) kernel module -endef - -$(eval $(call KernelPackage,video-gspca-spca506)) - - -define KernelPackage/video-gspca-spca508 - TITLE:=spca508 webcam support - KCONFIG:=CONFIG_USB_GSPCA_SPCA508 - FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_spca508.ko - AUTOLOAD:=$(call AutoProbe,gspca_spca508) - $(call AddDepends/camera-gspca) -endef - -define KernelPackage/video-gspca-spca508/description - The SPCA508 USB Camera Driver (spca508) kernel module -endef - -$(eval $(call KernelPackage,video-gspca-spca508)) - - -define KernelPackage/video-gspca-spca561 - TITLE:=spca561 webcam support - KCONFIG:=CONFIG_USB_GSPCA_SPCA561 - FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_spca561.ko - AUTOLOAD:=$(call AutoProbe,gspca_spca561) - $(call AddDepends/camera-gspca) -endef - -define KernelPackage/video-gspca-spca561/description - The SPCA561 USB Camera Driver (spca561) kernel module -endef - -$(eval $(call KernelPackage,video-gspca-spca561)) - - -define KernelPackage/video-gspca-sq905 - TITLE:=sq905 webcam support - KCONFIG:=CONFIG_USB_GSPCA_SQ905 - FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_sq905.ko - AUTOLOAD:=$(call AutoProbe,gspca_sq905) - $(call AddDepends/camera-gspca) -endef - -define KernelPackage/video-gspca-sq905/description - The SQ Technologies SQ905 based USB Camera Driver (sq905) kernel module -endef - -$(eval $(call KernelPackage,video-gspca-sq905)) - - -define KernelPackage/video-gspca-sq905c - TITLE:=sq905c webcam support - KCONFIG:=CONFIG_USB_GSPCA_SQ905C - FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_sq905c.ko - AUTOLOAD:=$(call AutoProbe,gspca_sq905c) - $(call AddDepends/camera-gspca) -endef - -define KernelPackage/video-gspca-sq905c/description - The SQ Technologies SQ905C based USB Camera Driver (sq905c) kernel module -endef - -$(eval $(call KernelPackage,video-gspca-sq905c)) - - -define KernelPackage/video-gspca-sq930x - TITLE:=sq930x webcam support - KCONFIG:=CONFIG_USB_GSPCA_SQ930X - FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_sq930x.ko - AUTOLOAD:=$(call AutoProbe,gspca_sq930x) - $(call AddDepends/camera-gspca) -endef - -define KernelPackage/video-gspca-sq930x/description - The SQ Technologies SQ930X based USB Camera Driver (sq930x) kernel module -endef - -$(eval $(call KernelPackage,video-gspca-sq930x)) - - -define KernelPackage/video-gspca-stk014 - TITLE:=stk014 webcam support - KCONFIG:=CONFIG_USB_GSPCA_STK014 - FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_stk014.ko - AUTOLOAD:=$(call AutoProbe,gspca_stk014) - $(call AddDepends/camera-gspca) -endef - -define KernelPackage/video-gspca-stk014/description - The Syntek DV4000 (STK014) USB Camera Driver (stk014) kernel module -endef - -$(eval $(call KernelPackage,video-gspca-stk014)) - - -define KernelPackage/video-gspca-sunplus - TITLE:=sunplus webcam support - KCONFIG:=CONFIG_USB_GSPCA_SUNPLUS - FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_sunplus.ko - AUTOLOAD:=$(call AutoProbe,gspca_sunplus) - $(call AddDepends/camera-gspca) -endef - -define KernelPackage/video-gspca-sunplus/description - The SUNPLUS USB Camera Driver (sunplus) kernel module -endef - -$(eval $(call KernelPackage,video-gspca-sunplus)) - - -define KernelPackage/video-gspca-t613 - TITLE:=t613 webcam support - KCONFIG:=CONFIG_USB_GSPCA_T613 - FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_t613.ko - AUTOLOAD:=$(call AutoProbe,gspca_t613) - $(call AddDepends/camera-gspca) -endef - -define KernelPackage/video-gspca-t613/description - The T613 (JPEG Compliance) USB Camera Driver (t613) kernel module -endef - -$(eval $(call KernelPackage,video-gspca-t613)) - - -define KernelPackage/video-gspca-tv8532 - TITLE:=tv8532 webcam support - KCONFIG:=CONFIG_USB_GSPCA_TV8532 - FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_tv8532.ko - AUTOLOAD:=$(call AutoProbe,gspca_tv8532) - $(call AddDepends/camera-gspca) -endef - -define KernelPackage/video-gspca-tv8532/description - The TV8532 USB Camera Driver (tv8532) kernel module -endef - -$(eval $(call KernelPackage,video-gspca-tv8532)) - - -define KernelPackage/video-gspca-vc032x - TITLE:=vc032x webcam support - KCONFIG:=CONFIG_USB_GSPCA_VC032X - FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_vc032x.ko - AUTOLOAD:=$(call AutoProbe,gspca_vc032x) - $(call AddDepends/camera-gspca) -endef - -define KernelPackage/video-gspca-vc032x/description - The VC032X USB Camera Driver (vc032x) kernel module -endef - -$(eval $(call KernelPackage,video-gspca-vc032x)) - - -define KernelPackage/video-gspca-zc3xx - TITLE:=zc3xx webcam support - KCONFIG:=CONFIG_USB_GSPCA_ZC3XX - FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_zc3xx.ko - AUTOLOAD:=$(call AutoProbe,gspca_zc3xx) - $(call AddDepends/camera-gspca) -endef - -define KernelPackage/video-gspca-zc3xx/description - The ZC3XX USB Camera Driver (zc3xx) kernel module -endef - -$(eval $(call KernelPackage,video-gspca-zc3xx)) - - -define KernelPackage/video-gspca-m5602 - TITLE:=m5602 webcam support - KCONFIG:=CONFIG_USB_M5602 - FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/m5602/gspca_m5602.ko - AUTOLOAD:=$(call AutoProbe,gspca_m5602) - $(call AddDepends/camera-gspca) -endef - -define KernelPackage/video-gspca-m5602/description - The ALi USB m5602 Camera Driver (m5602) kernel module -endef - -$(eval $(call KernelPackage,video-gspca-m5602)) - - -define KernelPackage/video-gspca-stv06xx - TITLE:=stv06xx webcam support - KCONFIG:=CONFIG_USB_STV06XX - FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/stv06xx/gspca_stv06xx.ko - AUTOLOAD:=$(call AutoProbe,gspca_stv06xx) - $(call AddDepends/camera-gspca) -endef - -define KernelPackage/video-gspca-stv06xx/description - The STV06XX USB Camera Driver (stv06xx) kernel module -endef - -$(eval $(call KernelPackage,video-gspca-stv06xx)) - - -define KernelPackage/video-gspca-gl860 - TITLE:=gl860 webcam support - KCONFIG:=CONFIG_USB_GL860 - FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gl860/gspca_gl860.ko - AUTOLOAD:=$(call AutoProbe,gspca_gl860) - $(call AddDepends/camera-gspca) -endef - -define KernelPackage/video-gspca-gl860/description - The GL860 USB Camera Driver (gl860) kernel module -endef - -$(eval $(call KernelPackage,video-gspca-gl860)) - - -define KernelPackage/video-gspca-jeilinj - TITLE:=jeilinj webcam support - KCONFIG:=CONFIG_USB_GSPCA_JEILINJ - FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_jeilinj.ko - AUTOLOAD:=$(call AutoProbe,gspca_jeilinj) - $(call AddDepends/camera-gspca) -endef - -define KernelPackage/video-gspca-jeilinj/description - The JEILINJ USB Camera Driver (jeilinj) kernel module -endef - -$(eval $(call KernelPackage,video-gspca-jeilinj)) - - -define KernelPackage/video-gspca-konica - TITLE:=konica webcam support - KCONFIG:=CONFIG_USB_GSPCA_KONICA - FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_konica.ko - AUTOLOAD:=$(call AutoProbe,gspca_konica) - $(call AddDepends/camera-gspca) -endef - -define KernelPackage/video-gspca-konica/description - The Konica USB Camera Driver (konica) kernel module -endef - -$(eval $(call KernelPackage,video-gspca-konica)) - -# -# Video Processing -# - -define KernelPackage/video-mem2mem - SUBMENU:=$(VIDEO_MENU) - TITLE:=Memory 2 Memory device support - HIDDEN:=1 - DEPENDS:=+kmod-video-videobuf2 - KCONFIG:= \ - CONFIG_V4L_MEM2MEM_DRIVERS=y \ - CONFIG_V4L2_MEM2MEM_DEV - FILES:= $(LINUX_DIR)/drivers/media/$(V4L2_DIR)/v4l2-mem2mem.ko - AUTOLOAD:=$(call AutoLoad,66,v4l2-mem2mem) - $(call AddDepends/video) -endef - -define KernelPackage/video-mem2mem/description - Memory 2 memory device support -endef - -$(eval $(call KernelPackage,video-mem2mem)) - -define KernelPackage/video-dma-contig - SUBMENU:=$(VIDEO_MENU) - TITLE:=Video DMA support - HIDDEN:=1 - DEPENDS:=+kmod-video-videobuf2 - KCONFIG:=CONFIG_VIDEOBUF2_DMA_CONTIG - FILES:=$(LINUX_DIR)/drivers/media/common/videobuf2/videobuf2-dma-contig.ko - AUTOLOAD:=$(call AutoLoad,66,videobuf2-dma-contig) - $(call AddDepends/video) -endef - -define KernelPackage/video-dma-contig/description - Video DMA support Contig -endef - - -$(eval $(call KernelPackage,video-dma-contig)) - -define KernelPackage/video-dma-sg - SUBMENU:=$(VIDEO_MENU) - TITLE:=Video DMA support - HIDDEN:=1 - DEPENDS:=+kmod-video-videobuf2 - KCONFIG:=CONFIG_VIDEOBUF2_DMA_SG - FILES:=$(LINUX_DIR)/drivers/media/common/videobuf2/videobuf2-dma-sg.ko - AUTOLOAD:=$(call AutoLoad,66,videobuf2-dma-sg) - $(call AddDepends/video) -endef - -define KernelPackage/video-dma-sg/description - Video DMA support SG -endef - -$(eval $(call KernelPackage,video-dma-sg)) - -define KernelPackage/video-coda - TITLE:=i.MX VPU support - DEPENDS:=@(TARGET_imx&&TARGET_imx_cortexa9) +kmod-video-mem2mem +kmod-video-dma-contig - KCONFIG:= \ - CONFIG_VIDEO_CODA \ - CONFIG_VIDEO_IMX_VDOA - FILES:= \ - $(LINUX_DIR)/drivers/media/$(V4L2_MEM2MEM_DIR)/coda/coda-vpu.ko@lt6.1 \ - $(LINUX_DIR)/drivers/media/$(V4L2_MEM2MEM_DIR)/chips-media/coda-vpu.ko@ge6.1 \ - $(LINUX_DIR)/drivers/media/$(V4L2_MEM2MEM_DIR)/coda/imx-vdoa.ko@lt6.1 \ - $(LINUX_DIR)/drivers/media/$(V4L2_MEM2MEM_DIR)/chips-media/imx-vdoa.ko@ge6.1 \ - $(LINUX_DIR)/drivers/media/$(V4L2_DIR)/v4l2-jpeg.ko - AUTOLOAD:=$(call AutoProbe,coda-vpu imx-vdoa v4l2-jpeg) - $(call AddDepends/video) -endef - -define KernelPackage/video-coda/description - The i.MX Video Processing Unit (VPU) kernel module -endef - -$(eval $(call KernelPackage,video-coda)) - -define KernelPackage/video-pxp - TITLE:=i.MX PXP support - DEPENDS:=@TARGET_imx +kmod-video-mem2mem +kmod-video-dma-contig - KCONFIG:= CONFIG_VIDEO_IMX_PXP - FILES:= $(LINUX_DIR)/drivers/media/$(V4L2_MEM2MEM_DIR)/imx-pxp.ko@lt6.1 \ - $(LINUX_DIR)/drivers/media/platform/nxp/imx-pxp.ko@ge6.1 - AUTOLOAD:=$(call AutoProbe,imx-pxp) - $(call AddDepends/video) -endef - -define KernelPackage/video-pxp/description - The i.MX Pixel Pipeline (PXP) kernel module - This enables hardware accelerated support for image - Colour Conversion, Scaling and Rotation -endef - -$(eval $(call KernelPackage,video-pxp)) - -define KernelPackage/video-tw686x - TITLE:=TW686x support - DEPENDS:=@PCIE_SUPPORT +kmod-video-dma-contig +kmod-video-dma-sg +kmod-sound-core - KCONFIG:= CONFIG_VIDEO_TW686X - FILES:= $(LINUX_DIR)/drivers/media/pci/tw686x/tw686x.ko - AUTOLOAD:=$(call AutoProbe,tw686x) - MODPARAMS.tw686x:=dma_mode=contig - $(call AddDepends/framegrabber) -endef - -define KernelPackage/video-tw686x/description - The Intersil/Techwell TW686x kernel module -endef - -$(eval $(call KernelPackage,video-tw686x)) diff --git a/6.12/package/kernel/mac80211/patches/ath9k/551-ath9k_ubnt_uap_plus_hsr.patch b/6.12/package/kernel/mac80211/patches/ath9k/551-ath9k_ubnt_uap_plus_hsr.patch deleted file mode 100644 index 1a8073d0..00000000 --- a/6.12/package/kernel/mac80211/patches/ath9k/551-ath9k_ubnt_uap_plus_hsr.patch +++ /dev/null @@ -1,403 +0,0 @@ ---- a/drivers/net/wireless/ath/ath9k/channel.c -+++ b/drivers/net/wireless/ath/ath9k/channel.c -@@ -15,6 +15,7 @@ - */ - - #include "ath9k.h" -+#include "hsr.h" - - /* Set/change channels. If the channel is really being changed, it's done - * by reseting the chip. To accomplish this we must first cleanup any pending -@@ -22,6 +23,7 @@ - */ - static int ath_set_channel(struct ath_softc *sc) - { -+ struct device_node *np = sc->dev->of_node; - struct ath_hw *ah = sc->sc_ah; - struct ath_common *common = ath9k_hw_common(ah); - struct ieee80211_hw *hw = sc->hw; -@@ -42,6 +44,11 @@ static int ath_set_channel(struct ath_so - ath_dbg(common, CONFIG, "Set channel: %d MHz width: %d\n", - chan->center_freq, chandef->width); - -+ if (of_property_read_bool(np, "ubnt,hsr")) { -+ ath9k_hsr_enable(ah, chandef->width, chan->center_freq); -+ ath9k_hsr_status(ah); -+ } -+ - /* update survey stats for the old channel before switching */ - spin_lock_irqsave(&common->cc_lock, flags); - ath_update_survey_stats(sc); ---- /dev/null -+++ b/drivers/net/wireless/ath/ath9k/hsr.c -@@ -0,0 +1,247 @@ -+/* -+ * -+ * The MIT License (MIT) -+ * -+ * Copyright (c) 2015 Kirill Berezin -+ * -+ * Permission is hereby granted, free of charge, to any person obtaining a copy -+ * of this software and associated documentation files (the "Software"), to deal -+ * in the Software without restriction, including without limitation the rights -+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -+ * copies of the Software, and to permit persons to whom the Software is -+ * furnished to do so, subject to the following conditions: -+ * -+ * The above copyright notice and this permission notice shall be included in -+ * all copies or substantial portions of the Software. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -+ * SOFTWARE. -+ * -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include "hw.h" -+#include "ath9k.h" -+ -+#define HSR_GPIO_CSN 8 -+#define HSR_GPIO_CLK 6 -+#define HSR_GPIO_DOUT 7 -+#define HSR_GPIO_DIN 5 -+ -+/* delays are in useconds */ -+#define HSR_DELAY_HALF_TICK 100 -+#define HSR_DELAY_PRE_WRITE 75 -+#define HSR_DELAY_FINAL 20000 -+#define HSR_DELAY_TRAILING 200 -+ -+void ath9k_hsr_init(struct ath_hw *ah) -+{ -+ ath9k_hw_gpio_request_in(ah, HSR_GPIO_DIN, NULL); -+ ath9k_hw_gpio_request_out(ah, HSR_GPIO_CSN, NULL, -+ AR_GPIO_OUTPUT_MUX_AS_OUTPUT); -+ ath9k_hw_gpio_request_out(ah, HSR_GPIO_CLK, NULL, -+ AR_GPIO_OUTPUT_MUX_AS_OUTPUT); -+ ath9k_hw_gpio_request_out(ah, HSR_GPIO_DOUT, NULL, -+ AR_GPIO_OUTPUT_MUX_AS_OUTPUT); -+ -+ ath9k_hw_set_gpio(ah, HSR_GPIO_CSN, 1); -+ ath9k_hw_set_gpio(ah, HSR_GPIO_CLK, 0); -+ ath9k_hw_set_gpio(ah, HSR_GPIO_DOUT, 0); -+ -+ udelay(HSR_DELAY_TRAILING); -+} -+ -+static u32 ath9k_hsr_write_byte(struct ath_hw *ah, int delay, u32 value) -+{ -+ struct ath_common *common = ath9k_hw_common(ah); -+ int i; -+ u32 rval = 0; -+ -+ udelay(delay); -+ -+ ath9k_hw_set_gpio(ah, HSR_GPIO_CLK, 0); -+ udelay(HSR_DELAY_HALF_TICK); -+ -+ ath9k_hw_set_gpio(ah, HSR_GPIO_CSN, 0); -+ udelay(HSR_DELAY_HALF_TICK); -+ -+ for (i = 0; i < 8; ++i) { -+ rval = rval << 1; -+ -+ /* pattern is left to right, that is 7-th bit runs first */ -+ ath9k_hw_set_gpio(ah, HSR_GPIO_DOUT, (value >> (7 - i)) & 0x1); -+ udelay(HSR_DELAY_HALF_TICK); -+ -+ ath9k_hw_set_gpio(ah, HSR_GPIO_CLK, 1); -+ udelay(HSR_DELAY_HALF_TICK); -+ -+ rval |= ath9k_hw_gpio_get(ah, HSR_GPIO_DIN); -+ -+ ath9k_hw_set_gpio(ah, HSR_GPIO_CLK, 0); -+ udelay(HSR_DELAY_HALF_TICK); -+ } -+ -+ ath9k_hw_set_gpio(ah, HSR_GPIO_CSN, 1); -+ udelay(HSR_DELAY_HALF_TICK); -+ -+ ath_dbg(common, CONFIG, "ath9k_hsr_write_byte: write byte %d return value is %d %c\n", -+ value, rval, rval > 32 ? rval : '-'); -+ -+ return rval & 0xff; -+} -+ -+static int ath9k_hsr_write_a_chain(struct ath_hw *ah, char *chain, int items) -+{ -+ int status = 0; -+ int i = 0; -+ int err; -+ -+ /* a preamble */ -+ ath9k_hsr_write_byte(ah, HSR_DELAY_PRE_WRITE, 0); -+ status = ath9k_hsr_write_byte(ah, HSR_DELAY_PRE_WRITE, 0); -+ -+ /* clear HSR's reply buffer */ -+ if (status) { -+ int loop = 0; -+ -+ for (loop = 0; (loop < 42) && status; ++loop) -+ status = ath9k_hsr_write_byte(ah, HSR_DELAY_PRE_WRITE, -+ 0); -+ -+ if (loop >= 42) { -+ ATH_DBG_WARN(1, -+ "ath9k_hsr_write_a_chain: can't clear an output buffer after a 42 cycles.\n"); -+ return -1; -+ } -+ } -+ -+ for (i = 0; (i < items) && (chain[i] != 0); ++i) -+ ath9k_hsr_write_byte(ah, HSR_DELAY_PRE_WRITE, (u32)chain[i]); -+ -+ ath9k_hsr_write_byte(ah, HSR_DELAY_PRE_WRITE, 0); -+ mdelay(HSR_DELAY_FINAL / 1000); -+ -+ /* reply */ -+ memset(chain, 0, items); -+ -+ ath9k_hsr_write_byte(ah, HSR_DELAY_PRE_WRITE, 0); -+ udelay(HSR_DELAY_TRAILING); -+ -+ for (i = 0; i < (items - 1); ++i) { -+ u32 ret; -+ -+ ret = ath9k_hsr_write_byte(ah, HSR_DELAY_PRE_WRITE, 0); -+ if (ret != 0) -+ chain[i] = (char)ret; -+ else -+ break; -+ -+ udelay(HSR_DELAY_TRAILING); -+ } -+ -+ if (i <= 1) -+ return 0; -+ -+ err = kstrtoint(chain + 1, 10, &i); -+ if (err) -+ return err; -+ -+ return i; -+} -+ -+int ath9k_hsr_disable(struct ath_hw *ah) -+{ -+ char cmd[10] = {'b', '4', '0', 0, 0, 0, 0, 0, 0, 0}; -+ int ret; -+ -+ ret = ath9k_hsr_write_a_chain(ah, cmd, sizeof(cmd)); -+ if ((ret > 0) && (*cmd == 'B')) -+ return 0; -+ -+ return -1; -+} -+ -+int ath9k_hsr_enable(struct ath_hw *ah, int bw, int fq) -+{ -+ char cmd[10]; -+ int ret; -+ -+ /* Bandwidth argument is 0 sometimes. Assume default 802.11bgn -+ * 20MHz on invalid values -+ */ -+ if ((bw != 5) && (bw != 10) && (bw != 20) && (bw != 40)) -+ bw = 20; -+ -+ memset(cmd, 0, sizeof(cmd)); -+ *cmd = 'b'; -+ snprintf(cmd + 1, 3, "%02d", bw); -+ -+ ret = ath9k_hsr_write_a_chain(ah, cmd, sizeof(cmd)); -+ if ((*cmd != 'B') || (ret != bw)) { -+ ATH_DBG_WARN(1, -+ "ath9k_hsr_enable: failed changing bandwidth -> set (%d,%d) reply (%d, %d)\n", -+ 'b', bw, *cmd, ret); -+ return -1; -+ } -+ -+ memset(cmd, 0, sizeof(cmd)); -+ *cmd = 'x'; -+ ret = ath9k_hsr_write_a_chain(ah, cmd, sizeof(cmd)); -+ if (*cmd != 'X') { -+ ATH_DBG_WARN(1, -+ "ath9k_hsr_enable: failed 'x' command -> reply (%d, %d)\n", -+ *cmd, ret); -+ return -1; -+ } -+ -+ memset(cmd, 0, sizeof(cmd)); -+ *cmd = 'm'; -+ ret = ath9k_hsr_write_a_chain(ah, cmd, sizeof(cmd)); -+ if (*cmd != 'M') { -+ ATH_DBG_WARN(1, -+ "ath9k_hsr_enable: failed 'm' command -> reply (%d, %d)\n", -+ *cmd, ret); -+ return -1; -+ } -+ -+ memset(cmd, 0, sizeof(cmd)); -+ *cmd = 'f'; -+ snprintf(cmd + 1, 6, "%05d", fq); -+ ret = ath9k_hsr_write_a_chain(ah, cmd, sizeof(cmd)); -+ if ((*cmd != 'F') && (ret != fq)) { -+ ATH_DBG_WARN(1, -+ "ath9k_hsr_enable: failed set frequency -> reply (%d, %d)\n", -+ *cmd, ret); -+ return -1; -+ } -+ -+ return 0; -+} -+ -+int ath9k_hsr_status(struct ath_hw *ah) -+{ -+ char cmd[10] = {'s', 0, 0, 0, 0, 0, 0, 0, 0, 0}; -+ int ret; -+ -+ ret = ath9k_hsr_write_a_chain(ah, cmd, sizeof(cmd)); -+ if (*cmd != 'S') { -+ ATH_DBG_WARN(1, "ath9k_hsr_status: returned %d,%d\n", *cmd, -+ ret); -+ return -1; -+ } -+ -+ return 0; -+} ---- /dev/null -+++ b/drivers/net/wireless/ath/ath9k/hsr.h -@@ -0,0 +1,48 @@ -+/* -+ * The MIT License (MIT) -+ * -+ * Copyright (c) 2015 Kirill Berezin -+ * -+ * Permission is hereby granted, free of charge, to any person obtaining a copy -+ * of this software and associated documentation files (the "Software"), to deal -+ * in the Software without restriction, including without limitation the rights -+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -+ * copies of the Software, and to permit persons to whom the Software is -+ * furnished to do so, subject to the following conditions: -+ * -+ * The above copyright notice and this permission notice shall be included in -+ * all copies or substantial portions of the Software. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -+ * SOFTWARE. -+ */ -+ -+#ifndef HSR_H -+#define HSR_H -+ -+#ifdef CPTCFG_ATH9K_UBNTHSR -+ -+void ath9k_hsr_init(struct ath_hw *ah); -+int ath9k_hsr_disable(struct ath_hw *ah); -+int ath9k_hsr_enable(struct ath_hw *ah, int bw, int fq); -+int ath9k_hsr_status(struct ath_hw *ah); -+ -+#else -+static inline void ath9k_hsr_init(struct ath_hw *ah) {} -+ -+static inline int ath9k_hsr_enable(struct ath_hw *ah, int bw, int fq) -+{ -+ return 0; -+} -+ -+static inline int ath9k_hsr_disable(struct ath_hw *ah) { return 0; } -+static inline int ath9k_hsr_status(struct ath_hw *ah) { return 0; } -+ -+#endif -+ -+#endif /* HSR_H */ ---- a/drivers/net/wireless/ath/ath9k/main.c -+++ b/drivers/net/wireless/ath/ath9k/main.c -@@ -18,6 +18,7 @@ - #include - #include "ath9k.h" - #include "btcoex.h" -+#include "hsr.h" - - static void ath9k_flush(struct ieee80211_hw *hw, struct ieee80211_vif *vif, - u32 queues, bool drop); -@@ -658,6 +659,7 @@ void ath_reset_work(struct work_struct * - static int ath9k_start(struct ieee80211_hw *hw) - { - struct ath_softc *sc = hw->priv; -+ struct device_node *np = sc->dev->of_node; - struct ath_hw *ah = sc->sc_ah; - struct ath_common *common = ath9k_hw_common(ah); - struct ieee80211_channel *curchan = sc->cur_chan->chandef.chan; -@@ -736,6 +738,11 @@ static int ath9k_start(struct ieee80211_ - AR_GPIO_OUTPUT_MUX_AS_OUTPUT); - } - -+ if (of_property_read_bool(np, "ubnt,hsr")) { -+ ath9k_hsr_init(ah); -+ ath9k_hsr_disable(ah); -+ } -+ - /* - * Reset key cache to sane defaults (all entries cleared) instead of - * semi-random values after suspend/resume. ---- a/drivers/net/wireless/ath/ath9k/Makefile -+++ b/drivers/net/wireless/ath/ath9k/Makefile -@@ -17,6 +17,7 @@ ath9k-$(CPTCFG_ATH9K_DFS_CERTIFIED) += d - ath9k-$(CPTCFG_ATH9K_TX99) += tx99.o - ath9k-$(CPTCFG_ATH9K_WOW) += wow.o - ath9k-$(CPTCFG_ATH9K_HWRNG) += rng.o -+ath9k-$(CPTCFG_ATH9K_UBNTHSR) += hsr.o - - ath9k-$(CPTCFG_ATH9K_DEBUGFS) += debug.o - ---- a/local-symbols -+++ b/local-symbols -@@ -121,6 +121,7 @@ ATH9K_WOW= - ATH9K_RFKILL= - ATH9K_CHANNEL_CONTEXT= - ATH9K_PCOEM= -+ATH9K_UBNTHSR= - ATH9K_PCI_NO_EEPROM= - ATH9K_HTC= - ATH9K_HTC_DEBUGFS= ---- a/drivers/net/wireless/ath/ath9k/Kconfig -+++ b/drivers/net/wireless/ath/ath9k/Kconfig -@@ -58,6 +58,19 @@ config ATH9K_AHB - Say Y, if you have a SoC with a compatible built-in - wireless MAC. Say N if unsure. - -+config ATH9K_UBNTHSR -+ bool "Ubiquiti UniFi Outdoor Plus HSR support" -+ depends on ATH9K -+ ---help--- -+ This options enables code to control the HSR RF -+ filter in the receive path of the Ubiquiti UniFi -+ Outdoor Plus access point. -+ -+ Say Y if you want to use the access point. The -+ code will only be used if the device is detected, -+ so it does not harm other setup other than occupying -+ a bit of memory. -+ - config ATH9K_DEBUGFS - bool "Atheros ath9k debugging" - depends on ATH9K && DEBUG_FS && MAC80211_DEBUGFS diff --git a/6.12/package/kernel/mac80211/patches/ath9k/999-ath9k_kernel-6.11.patch b/6.12/package/kernel/mac80211/patches/ath9k/999-ath9k_kernel-6.11.patch deleted file mode 100644 index 9d763488..00000000 --- a/6.12/package/kernel/mac80211/patches/ath9k/999-ath9k_kernel-6.11.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/drivers/net/wireless/ath/ath9k/gpio.c 2024-09-16 14:38:11.938379419 +0200 -+++ b/drivers/net/wireless/ath/ath9k/gpio.c 2024-09-16 14:38:30.390115635 +0200 -@@ -111,7 +111,7 @@ - gc->gchip.get = ath9k_gpio_pin_get; - gc->gchip.set = ath9k_gpio_pin_set; - -- if (gpiochip_add(&gc->gchip)) { -+ if (gpiochip_add_data(&gc->gchip, NULL)) { - kfree(gc); - return; - } diff --git a/6.12/package/kernel/mac80211/patches/rt2x00/999-rt2x00-fix-compilation.patch b/6.12/package/kernel/mac80211/patches/rt2x00/999-rt2x00-fix-compilation.patch deleted file mode 100644 index 63a798b0..00000000 --- a/6.12/package/kernel/mac80211/patches/rt2x00/999-rt2x00-fix-compilation.patch +++ /dev/null @@ -1,19 +0,0 @@ ---- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.h 2024-07-03 20:09:49.622279338 +0200 -+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.h 2024-07-03 20:10:26.157677785 +0200 -@@ -294,4 +294,5 @@ - unsigned short *rxwi_size); - void rt2800_pre_reset_hw(struct rt2x00_dev *rt2x00dev); - -+void rt6352_enable_pa_pin(struct rt2x00_dev *rt2x00dev, int enable); - #endif /* RT2800LIB_H */ ---- a/drivers/net/wireless/ralink/rt2x00/rt2x00.h 2024-11-05 16:54:09.625006944 +0100 -+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00.h 2024-11-05 16:54:26.280764117 +0100 -@@ -1504,6 +1504,8 @@ - u32 *tx, u32 *tx_max, u32 *rx, u32 *rx_max); - bool rt2x00mac_tx_frames_pending(struct ieee80211_hw *hw); - -+int rt2x00lib_read_eeprom(struct rt2x00_dev *rt2x00dev); -+ - /* - * Driver allocation handlers. - */ diff --git a/6.12/package/kernel/mwlwifi/patches/999-fix-compilation.patch b/6.12/package/kernel/mwlwifi/patches/999-fix-compilation.patch deleted file mode 100644 index a0a553c3..00000000 --- a/6.12/package/kernel/mwlwifi/patches/999-fix-compilation.patch +++ /dev/null @@ -1,38 +0,0 @@ ---- a/debugfs.c 2024-09-06 11:08:19.656939190 +0200 -+++ b/debugfs.c 2024-09-06 11:09:04.772324072 +0200 -@@ -331,15 +331,19 @@ - size_t count, loff_t *ppos) - { - struct mwl_priv *priv = (struct mwl_priv *)file->private_data; -+#if defined AARCH64 - struct pcie_priv *pcie_priv = priv->hif.priv; - unsigned long flags; -+#endif - unsigned long page = get_zeroed_page(GFP_KERNEL); - int tx_num = 4, rx_num = 4; - char *p = (char *)page; - int len = 0, size = PAGE_SIZE; - ssize_t ret; - const struct hostcmd_get_hw_spec *get_hw_spec; -+#if defined AARCH64 - int i; -+#endif - - if (!p) - return -ENOMEM; -@@ -359,6 +359,7 @@ - len += scnprintf(p + len, size - len, - "num_wcb: %d\n", le32_to_cpu(get_hw_spec->num_wcb)); - -+#if defined AARCH64 - if (priv->chip_type == MWL8864) { - len += scnprintf(p + len, size - len, - "-----------------------=> address| address|qlen|fw_desc_cnt\n"); -@@ -370,6 +371,7 @@ - "wcb_base[%2d]: %x => %8x|%8p|%4d|%d\n", i, get_hw_spec->wcb_base[i], *((unsigned int *)le32_to_cpu(get_hw_spec->wcb_base[i])),(void *)*((unsigned int *)le32_to_cpu(get_hw_spec->wcb_base[i])),skb_queue_len(&pcie_priv->txq[i + 1]),pcie_priv->fw_desc_cnt[i + 1]); - spin_unlock_irqrestore(&pcie_priv->tx_desc_lock, flags); - } -+#endif - - len += scnprintf(p + len, size - len, - "num_mcast_addr: %X\n", le16_to_cpu(get_hw_spec->num_mcast_addr)); diff --git a/6.12/package/kernel/nat46/Makefile b/6.12/package/kernel/nat46/Makefile deleted file mode 100644 index 12b376f8..00000000 --- a/6.12/package/kernel/nat46/Makefile +++ /dev/null @@ -1,34 +0,0 @@ -include $(TOPDIR)/rules.mk -include $(INCLUDE_DIR)/kernel.mk - -PKG_NAME:=nat46 - -PKG_SOURCE_URL:=https://github.com/ayourtch/nat46.git -PKG_SOURCE_DATE:=2024-07-02 -PKG_SOURCE_PROTO:=git -PKG_SOURCE_VERSION:=f367088db99c9235e16dea8164eb82cbd0d299ba - -PKG_MAINTAINER:=Hans Dedecker -PKG_LICENSE:=GPL-2.0 - -include $(INCLUDE_DIR)/package.mk - -define KernelPackage/nat46 - DEPENDS:=@IPV6 +kmod-nf-conntrack6 - TITLE:=Stateless NAT46 translation kernel module - SECTION:=kernel - SUBMENU:=Network Support - FILES:=$(PKG_BUILD_DIR)/nat46/modules/nat46.ko - AUTOLOAD:=$(call AutoLoad,33,nat46) -endef - -include $(INCLUDE_DIR)/kernel-defaults.mk - -define Build/Compile - $(KERNEL_MAKE) M="$(PKG_BUILD_DIR)/nat46/modules" \ - MODFLAGS="-DMODULE -mlong-calls" \ - EXTRA_CFLAGS="-DNAT46_VERSION=\\\"$(PKG_SOURCE_VERSION)\\\"" \ - modules -endef - -$(eval $(call KernelPackage,nat46)) diff --git a/6.12/package/kernel/nat46/patches/001-fix-kernel-6.10.patch b/6.12/package/kernel/nat46/patches/001-fix-kernel-6.10.patch deleted file mode 100644 index 03e052bc..00000000 --- a/6.12/package/kernel/nat46/patches/001-fix-kernel-6.10.patch +++ /dev/null @@ -1,99 +0,0 @@ ---- a/nat46/modules/nat46-netdev.c 2024-08-14 16:36:59.249437588 +0200 -+++ b/nat46/modules/nat46-netdev.c 2024-08-14 16:39:28.523016026 +0200 -@@ -193,7 +193,6 @@ - return NULL; - } - -- read_lock(&dev_base_lock); - dev = first_net_device(net); - while (dev) { - if((0 == strcmp(dev->name, name)) && is_nat46(dev)) { -@@ -205,7 +204,6 @@ - } - dev = next_net_device(dev); - } -- read_unlock(&dev_base_lock); - return out; - } - -@@ -300,7 +298,6 @@ - - void nat64_show_all_configs(struct net *net, struct seq_file *m) { - struct net_device *dev; -- read_lock(&dev_base_lock); - dev = first_net_device(net); - while (dev) { - if(is_nat46(dev)) { -@@ -323,7 +320,6 @@ - } - dev = next_net_device(dev); - } -- read_unlock(&dev_base_lock); - - } - -@@ -331,7 +327,6 @@ - struct net_device *dev; - struct net_device *nat46dev; - do { -- read_lock(&dev_base_lock); - nat46dev = NULL; - dev = first_net_device(net); - while (dev) { -@@ -340,7 +335,6 @@ - } - dev = next_net_device(dev); - } -- read_unlock(&dev_base_lock); - if(nat46dev) { - nat46_netdev_destroy(nat46dev); - } ---- a/nat46/modules/nat46-netdev.h 2024-08-14 16:39:50.726655831 +0200 -+++ b/nat46/modules/nat46-netdev.h 2024-08-14 16:40:25.954084361 +0200 -@@ -25,4 +25,5 @@ - void nat64_show_all_configs(struct net *net, struct seq_file *m); - void nat46_netdev_count_xmit(struct sk_buff *skb, struct net_device *dev); - void *netdev_nat46_instance(struct net_device *dev); -- -+int nat46_netdev_create(struct net *net, char *basename, struct net_device **dev); -+void nat46_netdev_destroy(struct net_device *dev); ---- a/nat46/modules/nat46-core.h 2024-08-14 16:44:24.686211571 +0200 -+++ b/nat46/modules/nat46-core.h 2024-08-14 16:50:42.464086457 +0200 -@@ -82,4 +82,37 @@ - nat46_instance_t *alloc_nat46_instance(int npairs, nat46_instance_t *old, int from_ipair, int to_ipair, int remove_ipair); - void release_nat46_instance(nat46_instance_t *nat46); - -+void nat46debug_dump(nat46_instance_t *nat46, int level, void *addr, int len); -+int try_parse_ipv6_prefix(struct in6_addr *pref, int *pref_len, char *arg); -+int try_parse_ipv4_prefix(u32 *v4addr, int *pref_len, char *arg); -+int try_parse_rule_arg(nat46_xlate_rule_t *rule, char *arg_name, char **ptail); -+char *xlate_style_to_string(nat46_xlate_style_t style); -+void xlate_v4_to_nat64(nat46_instance_t *nat46, nat46_xlate_rule_t *rule, void *pipv4, void *pipv6); -+int xlate_nat64_to_v4(nat46_instance_t *nat46, nat46_xlate_rule_t *rule, void *pipv6, void *pipv4); -+int xlate_map_v4_to_v6(nat46_instance_t *nat46, nat46_xlate_rule_t *rule, void *pipv4, void *pipv6, uint16_t *pl4id, int map_version); -+int xlate_map_v6_to_v4(nat46_instance_t *nat46, nat46_xlate_rule_t *rule, void *pipv6, void *pipv4, int version); -+int xlate_v4_to_v6(nat46_instance_t *nat46, nat46_xlate_rule_t *rule, void *pipv4, void *pipv6, uint16_t *pl4id); -+int xlate_v6_to_v4(nat46_instance_t *nat46, nat46_xlate_rule_t *rule, void *pipv6, void *pipv4); -+__sum16 csum16_upd(__sum16 csum, u16 old, u16 new); -+__sum16 csum_tcpudp_remagic(__be32 saddr, __be32 daddr, u32 len, unsigned char proto, u16 csum); -+__sum16 csum_ipv6_unmagic(nat46_instance_t *nat46, const struct in6_addr *saddr, const struct in6_addr *daddr, __u32 len, unsigned short proto, __sum16 csum); -+void update_icmp6_type_code(nat46_instance_t *nat46, struct icmp6hdr *icmp6h, u8 type, u8 code); -+u16 get_next_ip_id(void); -+u16 fold_ipv6_frag_id(u32 v6id); -+void *add_offset(void *ptr, u16 offset); -+void *get_next_header_ptr6(void *pv6, int v6_len); -+void fill_v4hdr_from_v6hdr(struct iphdr * iph, struct ipv6hdr *ip6h, __u32 v4saddr, __u32 v4daddr, __u16 id, __u16 frag_off, __u16 proto, int l3_payload_len); -+u16 unchecksum16(void *p, int count, u16 csum); -+u16 rechecksum16(void *p, int count, u16 csum); -+int is_last_pair_in_group(nat46_xlate_rulepair_t *apair); -+void pairs_xlate_v6_to_v4_inner(nat46_instance_t *nat46, struct ipv6hdr *ip6h, __u32 *pv4saddr, __u32 *pv4daddr); -+int xlate_payload6_to4(nat46_instance_t *nat46, void *pv6, void *ptrans_hdr, int v6_len, u16 *ul_sum, int *ptailTruncSize); -+u8 *icmp_parameter_ptr(struct icmphdr *icmph); -+u32 *icmp6_parameter_ptr(struct icmp6hdr *icmp6h); -+int ip6_input_not_interested(nat46_instance_t *nat46, struct ipv6hdr *ip6h, struct sk_buff *old_skb); -+int pairs_xlate_v6_to_v4_outer(nat46_instance_t *nat46, struct ipv6hdr *ip6h, uint16_t proto, __u32 *pv4saddr, __u32 *pv4daddr); -+void ip6_update_csum(struct sk_buff * skb, struct ipv6hdr * ip6hdr, int do_atomic_frag); -+int ip4_input_not_interested(nat46_instance_t *nat46, struct iphdr *iph, struct sk_buff *old_skb); -+int pairs_xlate_v4_to_v6_outer(nat46_instance_t *nat46, struct iphdr *hdr4, uint16_t *sport, uint16_t *dport, void *v6saddr, void *v6daddr); -+int is_valid_nat46(nat46_instance_t *nat46); - #endif diff --git a/6.12/package/kernel/nat46/patches/002-fix-kernel-6.11.patch b/6.12/package/kernel/nat46/patches/002-fix-kernel-6.11.patch deleted file mode 100644 index 244c6da1..00000000 --- a/6.12/package/kernel/nat46/patches/002-fix-kernel-6.11.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/nat46/modules/nat46-netdev.c 2024-09-13 09:39:48.960815094 +0200 -+++ b/nat46/modules/nat46-netdev.c 2024-09-13 09:40:11.128500472 +0200 -@@ -110,7 +110,6 @@ - dev->hard_header_len = 0; - dev->addr_len = 0; - dev->mtu = 16384; /* iptables does reassembly. Rather than using ETH_DATA_LEN, let's try to get as much mileage as we can with the Linux stack */ -- dev->features = NETIF_F_NETNS_LOCAL; - dev->flags = IFF_NOARP | IFF_POINTOPOINT; - } - diff --git a/6.12/package/kernel/qca-nss-dp/patches/0012-nss-dp-disable-warnings-to-support-linux-6.12.patch b/6.12/package/kernel/qca-nss-dp/patches/0012-nss-dp-disable-warnings-to-support-linux-6.12.patch deleted file mode 100644 index 305d62ee..00000000 --- a/6.12/package/kernel/qca-nss-dp/patches/0012-nss-dp-disable-warnings-to-support-linux-6.12.patch +++ /dev/null @@ -1,20 +0,0 @@ -From 078b67683613d8f066a2955802b46a4b27eb642e Mon Sep 17 00:00:00 2001 -From: Mantas Pucka -Date: Tue, 10 Dec 2024 13:24:39 +0200 -Subject: [PATCH 16/17] nss-dp: disable warnings to support linux-6.12 - -Linux 6.12 adds these new warnings which become build errors - -Signed-off-by: Mantas Pucka ---- - Makefile | 1 + - 1 file changed, 1 insertion(+) - ---- a/Makefile -+++ b/Makefile -@@ -90,4 +90,5 @@ endif - - ccflags-y += $(NSS_DP_INCLUDE) - ccflags-y += -Wall -Werror -+ccflags-y += -Wno-missing-prototypes -Wno-missing-declarations - ccflags-y += -DEDMA_DEBUG_LEVEL=2 diff --git a/6.12/package/kernel/qca-nss-dp/patches/0013-nss-dp-adapt-to-linux-6.12-API.patch b/6.12/package/kernel/qca-nss-dp/patches/0013-nss-dp-adapt-to-linux-6.12-API.patch deleted file mode 100644 index 772541f7..00000000 --- a/6.12/package/kernel/qca-nss-dp/patches/0013-nss-dp-adapt-to-linux-6.12-API.patch +++ /dev/null @@ -1,74 +0,0 @@ -From cdfdb0fd6407bb3a3a3c7bf9602d40928d950641 Mon Sep 17 00:00:00 2001 -From: Mantas Pucka -Date: Tue, 10 Dec 2024 13:32:04 +0200 -Subject: [PATCH 17/18] nss-dp: adapt to linux 6.12 API - -Add compatibility with 6.12 - -Signed-off-by: Mantas Pucka ---- - nss_dp_main.c | 10 ++++------ - 2 files changed, 10 insertions(+), 8 deletions(-) - ---- a/nss_dp_main.c -+++ b/nss_dp_main.c -@@ -34,6 +34,10 @@ - #if (LINUX_VERSION_CODE > KERNEL_VERSION(6, 6, 0)) - #include - #endif -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 12, 0)) -+#include -+#include -+#endif - #if defined(NSS_DP_MAC_POLL_SUPPORT) - #include - #endif -@@ -496,14 +500,22 @@ static int nss_dp_rx_flow_steer(struct n - rxflow = &flow_table->flows[hash & flow_table->mask]; - rxcpu = (uint32_t)rxflow->cpu; - -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 12, 0)) -+ sock_flow_table = rcu_dereference(net_hotdata.rps_sock_flow_table); -+#else - sock_flow_table = rcu_dereference(rps_sock_flow_table); -+#endif - if (!sock_flow_table) { - netdev_dbg(netdev, "Global RPS flow table not found\n"); - return -EINVAL; - } - - rfscpu = sock_flow_table->ents[hash & sock_flow_table->mask]; -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 12, 0)) -+ rfscpu &= net_hotdata.rps_cpu_mask; -+#else - rfscpu &= rps_cpu_mask; -+#endif - - if (rxcpu == rfscpu) - return 0; -@@ -998,6 +1010,13 @@ static int nss_dp_remove(struct platform - return 0; - } - -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,12,0) -+static void nss_dp_remove_new(struct platform_device *pdev) -+{ -+ nss_dp_remove(pdev); -+} -+#endif -+ - static struct of_device_id nss_dp_dt_ids[] = { - { .compatible = "qcom,nss-dp" }, - {}, -@@ -1006,7 +1025,11 @@ MODULE_DEVICE_TABLE(of, nss_dp_dt_ids); - - static struct platform_driver nss_dp_drv = { - .probe = nss_dp_probe, -+#if LINUX_VERSION_CODE < KERNEL_VERSION(6,12,0) - .remove = nss_dp_remove, -+#else -+ .remove_new = nss_dp_remove_new, -+#endif - .driver = { - .name = "nss-dp", - .owner = THIS_MODULE, diff --git a/6.12/package/kernel/qca-nss-dp/patches/0014-nss-dp-update-EEE-support-for-6.12.patch b/6.12/package/kernel/qca-nss-dp/patches/0014-nss-dp-update-EEE-support-for-6.12.patch deleted file mode 100644 index 5003e99a..00000000 --- a/6.12/package/kernel/qca-nss-dp/patches/0014-nss-dp-update-EEE-support-for-6.12.patch +++ /dev/null @@ -1,155 +0,0 @@ -From cdfdb0fd6407bb3a3a3c7bf9602d40928d950641 Mon Sep 17 00:00:00 2001 -From: Mantas Pucka -Date: Tue, 10 Dec 2024 13:32:04 +0200 -Subject: [PATCH 18/18] nss-dp: update EEE support for 6.12 - -Linux 6.12 changed API for EEE link modes - -Signed-off-by: Mantas Pucka ---- - nss_dp_ethtools.c | 8 ++++++-- - 2 files changed, 10 insertions(+), 8 deletions(-) - ---- a/nss_dp_ethtools.c -+++ b/nss_dp_ethtools.c -@@ -206,6 +206,7 @@ static int32_t nss_dp_set_pauseparam(str - * nss_dp_fal_to_ethtool_linkmode_xlate() - * Translate linkmode from FAL type to ethtool type. - */ -+#if (LINUX_VERSION_CODE < KERNEL_VERSION(6, 12, 0)) - static inline void nss_dp_fal_to_ethtool_linkmode_xlate(uint32_t *xlate_to, uint32_t *xlate_from) - { - uint32_t pos; -@@ -243,12 +244,26 @@ static inline void nss_dp_fal_to_ethtool - *xlate_from &= (~(1 << (pos - 1))); - } - } -+#else -+static inline void nss_dp_fal_to_ethtool_linkmode_xlate(unsigned long *to, uint32_t from) -+{ -+ linkmode_mod_bit(ETHTOOL_LINK_MODE_10baseT_Full_BIT, to, from & FAL_PHY_EEE_10BASE_T); -+ linkmode_mod_bit(ETHTOOL_LINK_MODE_100baseT_Full_BIT, to, from & FAL_PHY_EEE_100BASE_T); -+ linkmode_mod_bit(ETHTOOL_LINK_MODE_1000baseT_Full_BIT, to, from & FAL_PHY_EEE_1000BASE_T); -+ linkmode_mod_bit(ETHTOOL_LINK_MODE_2500baseX_Full_BIT, to, from & FAL_PHY_EEE_2500BASE_T); -+ linkmode_mod_bit(ETHTOOL_LINK_MODE_10000baseT_Full_BIT, to, from & FAL_PHY_EEE_10000BASE_T); -+} -+#endif - - /* - * nss_dp_get_eee() - * Get EEE settings. - */ --static int32_t nss_dp_get_eee(struct net_device *netdev, struct ethtool_eee *eee) -+#if (LINUX_VERSION_CODE < KERNEL_VERSION(6, 12, 0)) -+static int nss_dp_get_eee(struct net_device *netdev, struct ethtool_eee *eee) -+#else -+static int nss_dp_get_eee(struct net_device *netdev, struct ethtool_keee *eee) -+#endif - { - struct nss_dp_dev *dp_priv = (struct nss_dp_dev *)netdev_priv(netdev); - fal_port_eee_cfg_t port_eee_cfg; -@@ -266,9 +281,15 @@ static int32_t nss_dp_get_eee(struct net - /* - * Translate the FAL linkmode types to ethtool linkmode types. - */ -+#if (LINUX_VERSION_CODE < KERNEL_VERSION(6, 12, 0)) - nss_dp_fal_to_ethtool_linkmode_xlate(&eee->supported, &port_eee_cfg.capability); - nss_dp_fal_to_ethtool_linkmode_xlate(&eee->advertised, &port_eee_cfg.advertisement); - nss_dp_fal_to_ethtool_linkmode_xlate(&eee->lp_advertised, &port_eee_cfg.link_partner_advertisement); -+#else -+ nss_dp_fal_to_ethtool_linkmode_xlate(eee->supported, port_eee_cfg.capability); -+ nss_dp_fal_to_ethtool_linkmode_xlate(eee->advertised, port_eee_cfg.advertisement); -+ nss_dp_fal_to_ethtool_linkmode_xlate(eee->lp_advertised, port_eee_cfg.link_partner_advertisement); -+#endif - eee->eee_enabled = port_eee_cfg.enable; - eee->eee_active = port_eee_cfg.eee_status; - eee->tx_lpi_enabled = port_eee_cfg.lpi_tx_enable; -@@ -281,11 +302,15 @@ static int32_t nss_dp_get_eee(struct net - * nss_dp_set_eee() - * Set EEE settings. - */ --static int32_t nss_dp_set_eee(struct net_device *netdev, struct ethtool_eee *eee) -+#if (LINUX_VERSION_CODE < KERNEL_VERSION(6, 12, 0)) -+static int nss_dp_set_eee(struct net_device *netdev, struct ethtool_eee *eee) -+#else -+static int nss_dp_set_eee(struct net_device *netdev, struct ethtool_keee *eee) -+#endif - { - struct nss_dp_dev *dp_priv = (struct nss_dp_dev *)netdev_priv(netdev); - fal_port_eee_cfg_t port_eee_cfg, port_eee_cur_cfg; -- uint32_t port_id, pos; -+ uint32_t port_id; - sw_error_t ret; - - memset(&port_eee_cfg, 0, sizeof(fal_port_eee_cfg_t)); -@@ -306,8 +331,9 @@ static int32_t nss_dp_set_eee(struct net - /* - * Translate the ethtool speed types to FAL speed types. - */ -+#if (LINUX_VERSION_CODE < KERNEL_VERSION(6, 12, 0)) - while (eee->advertised) { -- pos = ffs(eee->advertised); -+ uint32_t pos = ffs(eee->advertised); - switch (1 << (pos - 1)) { - case ADVERTISED_10baseT_Full: - if (port_eee_cur_cfg.capability & FAL_PHY_EEE_10BASE_T) { -@@ -361,6 +387,48 @@ static int32_t nss_dp_set_eee(struct net - - eee->advertised &= (~(1 << (pos - 1))); - } -+#else -+ if (linkmode_test_bit(ETHTOOL_LINK_MODE_10baseT_Full_BIT, eee->advertised)) { -+ if (port_eee_cur_cfg.capability & FAL_PHY_EEE_10BASE_T) { -+ port_eee_cfg.advertisement |= FAL_PHY_EEE_10BASE_T; -+ } else { -+ netdev_dbg(netdev, "Advertised value 10baseT_Full is not supported\n"); -+ return -EIO; -+ } -+ } -+ if (linkmode_test_bit(ETHTOOL_LINK_MODE_100baseT_Full_BIT, eee->advertised)) { -+ if (port_eee_cur_cfg.capability & FAL_PHY_EEE_100BASE_T) { -+ port_eee_cfg.advertisement |= FAL_PHY_EEE_100BASE_T; -+ } else { -+ netdev_dbg(netdev, "Advertised value 100baseT_Full is not supported\n"); -+ return -EIO; -+ } -+ } -+ if (linkmode_test_bit(ETHTOOL_LINK_MODE_1000baseT_Full_BIT, eee->advertised)) { -+ if (port_eee_cur_cfg.capability & FAL_PHY_EEE_1000BASE_T) { -+ port_eee_cfg.advertisement |= FAL_PHY_EEE_1000BASE_T; -+ } else { -+ netdev_dbg(netdev, "Advertised value 1000baseT_Full is not supported\n"); -+ return -EIO; -+ } -+ } -+ if (linkmode_test_bit(ETHTOOL_LINK_MODE_2500baseX_Full_BIT, eee->advertised)) { -+ if (port_eee_cur_cfg.capability & FAL_PHY_EEE_2500BASE_T) { -+ port_eee_cfg.advertisement |= FAL_PHY_EEE_2500BASE_T; -+ } else { -+ netdev_dbg(netdev, "Advertised value 2500baseX_Full is not supported\n"); -+ return -EIO; -+ } -+ } -+ if (linkmode_test_bit(ETHTOOL_LINK_MODE_10000baseT_Full_BIT, eee->advertised)) { -+ if (port_eee_cur_cfg.capability & FAL_PHY_EEE_10000BASE_T) { -+ port_eee_cfg.advertisement |= FAL_PHY_EEE_10000BASE_T; -+ } else { -+ netdev_dbg(netdev, "Advertised value 1000baseT_Full is not supported\n"); -+ return -EIO; -+ } -+ } -+#endif - - port_eee_cfg.lpi_tx_enable = eee->tx_lpi_enabled; - port_eee_cfg.lpi_sleep_timer = eee->tx_lpi_timer; -@@ -482,8 +550,10 @@ struct ethtool_ops nss_dp_ethtool_ops = - #endif - .get_pauseparam = &nss_dp_get_pauseparam, - .set_pauseparam = &nss_dp_set_pauseparam, -+ - .get_eee = &nss_dp_get_eee, - .set_eee = &nss_dp_set_eee, -+ - .get_priv_flags = nss_dp_get_priv_flags, - .set_priv_flags = nss_dp_set_priv_flags, - }; diff --git a/6.12/package/kernel/qca-ssdk/patches/104-ssdk-replace-deprecated-strlcpy-with-strscpy.patch b/6.12/package/kernel/qca-ssdk/patches/104-ssdk-replace-deprecated-strlcpy-with-strscpy.patch deleted file mode 100644 index 9c8056a0..00000000 --- a/6.12/package/kernel/qca-ssdk/patches/104-ssdk-replace-deprecated-strlcpy-with-strscpy.patch +++ /dev/null @@ -1,72 +0,0 @@ -From ef91390278b98b48adf65e6d3b772ddecfc4f6b0 Mon Sep 17 00:00:00 2001 -From: Mantas Pucka -Date: Tue, 10 Dec 2024 13:05:30 +0200 -Subject: [PATCH 7/9] ssdk: replace deprecated strlcpy() with strscpy() - -Since linux-6.12 strlcpy() is no longer available - -Signed-off-by: Mantas Pucka ---- - src/shell_lib/shell_io.c | 16 ++++++++-------- - 1 file changed, 8 insertions(+), 8 deletions(-) - ---- a/src/shell_lib/shell_io.c -+++ b/src/shell_lib/shell_io.c -@@ -951,16 +951,16 @@ cmd_sscanf(const char *buf, const char * - if(buf[0] == '0' && (buf[1] == 'x' || buf[1] == 'X')) - { - if(!fmt) -- strlcpy(fmt_tmp, "%x", sizeof(fmt_tmp)); -+ strscpy(fmt_tmp, "%x", sizeof(fmt_tmp)); - else - { - if(strspn(fmt, "%lLxXhH") != strlen(fmt)) - return SW_BAD_VALUE; - if(fmt[0] == '%' && ((fmt[1] == 'l' || fmt[1] == 'L') && - (fmt[2] == 'l' || fmt[2] == 'L'))) -- strlcpy(fmt_tmp, "%llx", sizeof(fmt_tmp)); -+ strscpy(fmt_tmp, "%llx", sizeof(fmt_tmp)); - else -- strlcpy(fmt_tmp, fmt, sizeof(fmt_tmp)); -+ strscpy(fmt_tmp, fmt, sizeof(fmt_tmp)); - } - } - else -@@ -968,16 +968,16 @@ cmd_sscanf(const char *buf, const char * - if(strspn(buf, "1234567890") != strlen(buf)) - return SW_BAD_VALUE; - if(!fmt) -- strlcpy(fmt_tmp, "%d", sizeof(fmt_tmp)); -+ strscpy(fmt_tmp, "%d", sizeof(fmt_tmp)); - else - { - if(strspn(fmt, "%lLdD") != strlen(fmt)) - return SW_BAD_VALUE; - if(fmt[0] == '%' && ((fmt[1] == 'l' || fmt[1] == 'L') && - (fmt[2] == 'l' || fmt[2] == 'L'))) -- strlcpy(fmt_tmp, "%lld", sizeof(fmt_tmp)); -+ strscpy(fmt_tmp, "%lld", sizeof(fmt_tmp)); - else -- strlcpy(fmt_tmp, fmt, sizeof(fmt_tmp)); -+ strscpy(fmt_tmp, fmt, sizeof(fmt_tmp)); - } - } - if(sscanf(buf, fmt_tmp, arg_val) != 1) -@@ -2736,7 +2736,7 @@ cmd_data_check_portmap(char *cmdstr, fal - return SW_OK; - } - -- strlcpy(tmp_str, cmdstr, sizeof(tmp_str)); -+ strscpy(tmp_str, cmdstr, sizeof(tmp_str)); - tmp = (void *) strsep(&cmdstr, ","); - while (tmp) - { -@@ -12818,7 +12818,7 @@ cmd_data_check_tunnel_encap_entry(char * - break; - } - /* copy 2 chars from cmd */ -- strlcpy(cmd_byte, cmd, sizeof(cmd_byte)); -+ strscpy(cmd_byte, cmd, sizeof(cmd_byte)); - sscanf(cmd_byte, "%hhx", - &(entry.pkt_header.pkt_header_data[bytes])); - cmd += 2; diff --git a/6.12/package/kernel/qca-ssdk/patches/105-ssdk-disable-warnings-to-support-linux-6.12.patch b/6.12/package/kernel/qca-ssdk/patches/105-ssdk-disable-warnings-to-support-linux-6.12.patch deleted file mode 100644 index 2ff87c55..00000000 --- a/6.12/package/kernel/qca-ssdk/patches/105-ssdk-disable-warnings-to-support-linux-6.12.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 85c328ef31f3da7b2dab82c5a1c8559295620f76 Mon Sep 17 00:00:00 2001 -From: Mantas Pucka -Date: Tue, 10 Dec 2024 13:10:07 +0200 -Subject: [PATCH 8/9] ssdk: disable warnings to support linux-6.12 - -Linux 6.12 adds these new warnings which become build errors with -default -Werror. - -Signed-off-by: Mantas Pucka ---- - make/linux_opt.mk | 3 +++ - 1 file changed, 3 insertions(+) - ---- a/make/linux_opt.mk -+++ b/make/linux_opt.mk -@@ -314,6 +314,9 @@ endif - - MODULE_CFLAG += $(OPT_FLAG) -Wall -DVERSION=\"$(VERSION)\" -DBUILD_DATE=\"$(BUILD_DATE)\" -DOS=\"$(OS)\" -D"KBUILD_STR(s)=\#s" - -+# Linux 6.12 compatibility -+MODULE_CFLAG += -Wno-missing-prototypes -Wno-missing-declarations -Wno-discarded-qualifiers -+ - MODULE_INC += -I$(PRJ_PATH)/include \ - -I$(PRJ_PATH)/include/common \ - -I$(PRJ_PATH)/include/api \ diff --git a/6.12/package/kernel/qca-ssdk/patches/106-ssdk-add-missing-include.patch b/6.12/package/kernel/qca-ssdk/patches/106-ssdk-add-missing-include.patch deleted file mode 100644 index c1036f1d..00000000 --- a/6.12/package/kernel/qca-ssdk/patches/106-ssdk-add-missing-include.patch +++ /dev/null @@ -1,22 +0,0 @@ -From 01e7ad1b785b0662e9a2f41cb7dffbcea35ed0c1 Mon Sep 17 00:00:00 2001 -From: Mantas Pucka -Date: Tue, 10 Dec 2024 13:13:16 +0200 -Subject: [PATCH 9/9] ssdk: add missing include - -Fixes build with linux 6.12 - -Signed-off-by: Mantas Pucka ---- - src/init/ssdk_dts.c | 1 + - 1 file changed, 1 insertion(+) - ---- a/src/init/ssdk_dts.c -+++ b/src/init/ssdk_dts.c -@@ -38,6 +38,7 @@ - #include - #include - #include -+#include - - static ssdk_dt_global_t ssdk_dt_global = {0}; - #ifdef HPPE diff --git a/6.12/package/kernel/qca-ssdk/patches/200-allow-parallel-build.patch b/6.12/package/kernel/qca-ssdk/patches/200-allow-parallel-build.patch deleted file mode 100644 index 2bef6b2a..00000000 --- a/6.12/package/kernel/qca-ssdk/patches/200-allow-parallel-build.patch +++ /dev/null @@ -1,50 +0,0 @@ ---- a/Makefile -+++ b/Makefile -@@ -1,17 +1,19 @@ --include ./config -- - ifndef PRJ_PATH - PRJ_PATH=$(shell pwd) - endif - export PRJ_PATH - --include ./make/config.mk --include ./make/tools.mk --include ./make/$(OS)_opt.mk -+include $(PRJ_PATH)/config -+ -+include $(PRJ_PATH)/make/config.mk -+include $(PRJ_PATH)/make/tools.mk -+include $(PRJ_PATH)/make/$(OS)_opt.mk - - SUB_DIR=$(patsubst %/, %, $(dir $(wildcard src/*/Makefile))) - SUB_LIB=$(subst src/, , $(SUB_DIR)) - -+include $(PRJ_PATH)/Makefile.modules -+ - #################################################################### - # SSDK-Style Makefile - #################################################################### -@@ -27,11 +29,7 @@ all: $(BIN_DIR) kslib - # LNX Modules-Style Makefile - #################################################################### - modules: $(BIN_DIR) kslib_c -- mkdir -p ./temp/;cp * ./temp -a;cd ./temp;cp ../Makefile.modules ./Makefile; -- make -C $(SYS_PATH) M=$(PRJ_PATH)/temp $(LNX_MAKEOPTS) modules -- cp $(PRJ_PATH)/temp/Module.symvers $(PRJ_PATH)/Module.symvers; -- cp temp/*.ko build/bin; -- rm -Rf ./temp/*.o ./temp/*.ko ./temp/*.a -+ @$(MAKE) -C $(SYS_PATH) M=$(PRJ_PATH) $(LNX_MAKEOPTS) modules - @echo "---Build [SSDK-$(VERSION)] at $(BUILD_DATE) finished." - - kslib_c: ---- a/make/linux_opt.mk -+++ b/make/linux_opt.mk -@@ -785,6 +785,6 @@ LOCAL_CFLAGS += $(CPU_CFLAG) -D"KBUILD_M - #################################################################### - # cflags for LNX Modules-Style Makefile - #################################################################### --LNX_LOCAL_CFLAGS += $(MODULE_INC) $(MODULE_CFLAG) ${EXTRA_INC} -DFALLTHROUGH -+LNX_LOCAL_CFLAGS = $(MODULE_INC) $(MODULE_CFLAG) ${EXTRA_INC} -DFALLTHROUGH - export LNX_LOCAL_CFLAGS - diff --git a/6.12/package/kernel/ubootenv-nvram/patches/010-make-ubootenv_remove-return-void-for-linux-6.12.patch b/6.12/package/kernel/ubootenv-nvram/patches/010-make-ubootenv_remove-return-void-for-linux-6.12.patch deleted file mode 100644 index c23f6395..00000000 --- a/6.12/package/kernel/ubootenv-nvram/patches/010-make-ubootenv_remove-return-void-for-linux-6.12.patch +++ /dev/null @@ -1,42 +0,0 @@ ---- a/ubootenv-nvram.c -+++ b/ubootenv-nvram.c -@@ -13,6 +13,7 @@ - #include - #include - #include -+#include - - #define NAME "ubootenv" - -@@ -132,18 +133,30 @@ static int ubootenv_probe(struct platfor - return misc_register(&data->misc); - } - --static int ubootenv_remove(struct platform_device *pdev) -+static -+#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 11, 0) -+int -+#else -+void -+#endif -+ubootenv_remove(struct platform_device *pdev) - { - struct ubootenv_drvdata *data = platform_get_drvdata(pdev); - - data->env = NULL; - misc_deregister(&data->misc); -+#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 11, 0) - return 0; -+#endif - } - - static struct platform_driver ubootenv_driver = { - .probe = ubootenv_probe, -+#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 11, 0) - .remove = ubootenv_remove, -+#else -+ .remove_new = ubootenv_remove, -+#endif - .driver = { - .name = NAME, - .owner = THIS_MODULE, diff --git a/6.12/package/libs/libnftnl/Makefile b/6.12/package/libs/libnftnl/Makefile deleted file mode 100644 index 038ed1bf..00000000 --- a/6.12/package/libs/libnftnl/Makefile +++ /dev/null @@ -1,76 +0,0 @@ -# -# Copyright (C) 2014 OpenWrt.org -# -# This is free software, licensed under the GNU General Public License v2. -# See /LICENSE for more information. -# - -include $(TOPDIR)/rules.mk - -PKG_NAME:=libnftnl -PKG_CPE_ID:=cpe:/a:netfilter:libnftnl -PKG_VERSION:=1.2.6 -PKG_RELEASE:=2 - -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz -PKG_SOURCE_URL:=https://netfilter.org/projects/$(PKG_NAME)/files -PKG_HASH:=ceeaea2cd92147da19f13a35a7f1a4bc2767ff897e838e4b479cf54b59c777f4 - -PKG_MAINTAINER:=Steven Barth -PKG_LICENSE:=GPL-2.0-or-later -PKG_LICENSE_FILES:=COPYING - -PKG_INSTALL:=1 -PKG_BUILD_PARALLEL:=1 -PKG_BUILD_FLAGS:=lto -PKG_FIXUP:=autoreconf - -include $(INCLUDE_DIR)/package.mk - -DISABLE_NLS:= - -define Package/libnftnl - SECTION:=libs - CATEGORY:=Libraries - DEPENDS:=+libmnl - TITLE:=Low-level netlink library for the nf_tables subsystem - URL:=http://www.netfilter.org/projects/libnftnl - ABI_VERSION:=11 -endef - -define Package/libnftnl/description - libnftnl is a userspace library providing a low-level netlink - programming interface (API) to the in-kernel nf_tables subsystem. -endef - -TARGET_CFLAGS += $(FPIC) - -CONFIGURE_ARGS += \ - --enable-static \ - --enable-shared - -define Build/InstallDev - $(INSTALL_DIR) $(1)/usr/include/libnftnl - $(CP) \ - $(PKG_INSTALL_DIR)/usr/include/libnftnl/*.h \ - $(1)/usr/include/libnftnl/ - - $(INSTALL_DIR) $(1)/usr/lib - $(CP) \ - $(PKG_INSTALL_DIR)/usr/lib/libnftnl.{so*,a,la} \ - $(1)/usr/lib/ - - $(INSTALL_DIR) $(1)/usr/lib/pkgconfig - $(CP) \ - $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libnftnl.pc \ - $(1)/usr/lib/pkgconfig/ -endef - -define Package/libnftnl/install - $(INSTALL_DIR) $(1)/usr/lib - $(CP) \ - $(PKG_INSTALL_DIR)/usr/lib/libnftnl.so.* \ - $(1)/usr/lib/ -endef - -$(eval $(call BuildPackage,libnftnl)) diff --git a/6.12/package/libs/libnftnl/patches/999-01-libnftnl-add-fullcone-expression-support.patch b/6.12/package/libs/libnftnl/patches/999-01-libnftnl-add-fullcone-expression-support.patch deleted file mode 100644 index 0e8b349c..00000000 --- a/6.12/package/libs/libnftnl/patches/999-01-libnftnl-add-fullcone-expression-support.patch +++ /dev/null @@ -1,254 +0,0 @@ -From 6c39f04febd7cfdbd474233379416babcd0fc341 Mon Sep 17 00:00:00 2001 -From: Syrone Wong -Date: Fri, 8 Apr 2022 23:52:11 +0800 -Subject: [PATCH] libnftnl: add fullcone expression support - -Signed-off-by: Syrone Wong ---- - include/libnftnl/expr.h | 6 + - include/linux/netfilter/nf_tables.h | 16 +++ - src/Makefile.am | 1 + - src/expr/fullcone.c | 167 ++++++++++++++++++++++++++++ - src/expr_ops.c | 2 + - 5 files changed, 192 insertions(+) - create mode 100644 src/expr/fullcone.c - ---- a/include/libnftnl/expr.h -+++ b/include/libnftnl/expr.h -@@ -245,6 +245,12 @@ enum { - }; - - enum { -+ NFTNL_EXPR_FULLCONE_FLAGS = NFTNL_EXPR_BASE, -+ NFTNL_EXPR_FULLCONE_REG_PROTO_MIN, -+ NFTNL_EXPR_FULLCONE_REG_PROTO_MAX, -+}; -+ -+enum { - NFTNL_EXPR_REDIR_REG_PROTO_MIN = NFTNL_EXPR_BASE, - NFTNL_EXPR_REDIR_REG_PROTO_MAX, - NFTNL_EXPR_REDIR_FLAGS, ---- a/include/linux/netfilter/nf_tables.h -+++ b/include/linux/netfilter/nf_tables.h -@@ -1434,6 +1434,22 @@ enum nft_masq_attributes { - #define NFTA_MASQ_MAX (__NFTA_MASQ_MAX - 1) - - /** -+ * enum nft_fullcone_attributes - nf_tables fullcone expression attributes -+ * -+ * @NFTA_FULLCONE_FLAGS: NAT flags (see NF_NAT_RANGE_* in linux/netfilter/nf_nat.h) (NLA_U32) -+ * @NFTA_FULLCONE_REG_PROTO_MIN: source register of proto range start (NLA_U32: nft_registers) -+ * @NFTA_FULLCONE_REG_PROTO_MAX: source register of proto range end (NLA_U32: nft_registers) -+ */ -+enum nft_fullcone_attributes { -+ NFTA_FULLCONE_UNSPEC, -+ NFTA_FULLCONE_FLAGS, -+ NFTA_FULLCONE_REG_PROTO_MIN, -+ NFTA_FULLCONE_REG_PROTO_MAX, -+ __NFTA_FULLCONE_MAX -+}; -+#define NFTA_FULLCONE_MAX (__NFTA_FULLCONE_MAX - 1) -+ -+/** - * enum nft_redir_attributes - nf_tables redirect expression netlink attributes - * - * @NFTA_REDIR_REG_PROTO_MIN: source register of proto range start (NLA_U32: nft_registers) ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -54,6 +54,7 @@ libnftnl_la_SOURCES = utils.c \ - expr/target.c \ - expr/tunnel.c \ - expr/masq.c \ -+ expr/fullcone.c \ - expr/redir.c \ - expr/hash.c \ - expr/socket.c \ ---- /dev/null -+++ b/src/expr/fullcone.c -@@ -0,0 +1,168 @@ -+/* -+ * (C) 2022 wongsyrone -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published -+ * by the Free Software Foundation; either version 2 of the License, or -+ * (at your option) any later version. -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+ -+#include -+ -+#include "internal.h" -+#include -+#include -+#include -+ -+struct nftnl_expr_fullcone { -+ uint32_t flags; -+ enum nft_registers sreg_proto_min; -+ enum nft_registers sreg_proto_max; -+}; -+ -+static int -+nftnl_expr_fullcone_set(struct nftnl_expr *e, uint16_t type, -+ const void *data, uint32_t data_len) -+{ -+ struct nftnl_expr_fullcone *fullcone = nftnl_expr_data(e); -+ -+ switch (type) { -+ case NFTNL_EXPR_FULLCONE_FLAGS: -+ memcpy(&fullcone->flags, data, sizeof(fullcone->flags)); -+ break; -+ case NFTNL_EXPR_FULLCONE_REG_PROTO_MIN: -+ memcpy(&fullcone->sreg_proto_min, data, sizeof(fullcone->sreg_proto_min)); -+ break; -+ case NFTNL_EXPR_FULLCONE_REG_PROTO_MAX: -+ memcpy(&fullcone->sreg_proto_max, data, sizeof(fullcone->sreg_proto_max)); -+ break; -+ default: -+ return -1; -+ } -+ return 0; -+} -+ -+static const void * -+nftnl_expr_fullcone_get(const struct nftnl_expr *e, uint16_t type, -+ uint32_t *data_len) -+{ -+ struct nftnl_expr_fullcone *fullcone = nftnl_expr_data(e); -+ -+ switch (type) { -+ case NFTNL_EXPR_FULLCONE_FLAGS: -+ *data_len = sizeof(fullcone->flags); -+ return &fullcone->flags; -+ case NFTNL_EXPR_FULLCONE_REG_PROTO_MIN: -+ *data_len = sizeof(fullcone->sreg_proto_min); -+ return &fullcone->sreg_proto_min; -+ case NFTNL_EXPR_FULLCONE_REG_PROTO_MAX: -+ *data_len = sizeof(fullcone->sreg_proto_max); -+ return &fullcone->sreg_proto_max; -+ } -+ return NULL; -+} -+ -+static int nftnl_expr_fullcone_cb(const struct nlattr *attr, void *data) -+{ -+ const struct nlattr **tb = data; -+ int type = mnl_attr_get_type(attr); -+ -+ if (mnl_attr_type_valid(attr, NFTA_FULLCONE_MAX) < 0) -+ return MNL_CB_OK; -+ -+ switch (type) { -+ case NFTA_FULLCONE_REG_PROTO_MIN: -+ case NFTA_FULLCONE_REG_PROTO_MAX: -+ case NFTA_FULLCONE_FLAGS: -+ if (mnl_attr_validate(attr, MNL_TYPE_U32) < 0) -+ abi_breakage(); -+ break; -+ } -+ -+ tb[type] = attr; -+ return MNL_CB_OK; -+} -+ -+static void -+nftnl_expr_fullcone_build(struct nlmsghdr *nlh, const struct nftnl_expr *e) -+{ -+ struct nftnl_expr_fullcone *fullcone = nftnl_expr_data(e); -+ -+ if (e->flags & (1 << NFTNL_EXPR_FULLCONE_FLAGS)) -+ mnl_attr_put_u32(nlh, NFTA_FULLCONE_FLAGS, htobe32(fullcone->flags)); -+ if (e->flags & (1 << NFTNL_EXPR_FULLCONE_REG_PROTO_MIN)) -+ mnl_attr_put_u32(nlh, NFTA_FULLCONE_REG_PROTO_MIN, -+ htobe32(fullcone->sreg_proto_min)); -+ if (e->flags & (1 << NFTNL_EXPR_FULLCONE_REG_PROTO_MAX)) -+ mnl_attr_put_u32(nlh, NFTA_FULLCONE_REG_PROTO_MAX, -+ htobe32(fullcone->sreg_proto_max)); -+} -+ -+static int -+nftnl_expr_fullcone_parse(struct nftnl_expr *e, struct nlattr *attr) -+{ -+ struct nftnl_expr_fullcone *fullcone = nftnl_expr_data(e); -+ struct nlattr *tb[NFTA_FULLCONE_MAX+1] = {}; -+ -+ if (mnl_attr_parse_nested(attr, nftnl_expr_fullcone_cb, tb) < 0) -+ return -1; -+ -+ if (tb[NFTA_FULLCONE_FLAGS]) { -+ fullcone->flags = be32toh(mnl_attr_get_u32(tb[NFTA_FULLCONE_FLAGS])); -+ e->flags |= (1 << NFTNL_EXPR_FULLCONE_FLAGS); -+ } -+ if (tb[NFTA_FULLCONE_REG_PROTO_MIN]) { -+ fullcone->sreg_proto_min = -+ be32toh(mnl_attr_get_u32(tb[NFTA_FULLCONE_REG_PROTO_MIN])); -+ e->flags |= (1 << NFTNL_EXPR_FULLCONE_REG_PROTO_MIN); -+ } -+ if (tb[NFTA_FULLCONE_REG_PROTO_MAX]) { -+ fullcone->sreg_proto_max = -+ be32toh(mnl_attr_get_u32(tb[NFTA_FULLCONE_REG_PROTO_MAX])); -+ e->flags |= (1 << NFTNL_EXPR_FULLCONE_REG_PROTO_MAX); -+ } -+ -+ return 0; -+} -+ -+static int nftnl_expr_fullcone_snprintf(char *buf, size_t remain, -+ uint32_t flags, const struct nftnl_expr *e) -+{ -+ struct nftnl_expr_fullcone *fullcone = nftnl_expr_data(e); -+ int offset = 0, ret = 0; -+ -+ if (e->flags & (1 << NFTNL_EXPR_FULLCONE_REG_PROTO_MIN)) { -+ ret = snprintf(buf + offset, remain, "proto_min reg %u ", -+ fullcone->sreg_proto_min); -+ SNPRINTF_BUFFER_SIZE(ret, remain, offset); -+ } -+ if (e->flags & (1 << NFTNL_EXPR_FULLCONE_REG_PROTO_MAX)) { -+ ret = snprintf(buf + offset, remain, "proto_max reg %u ", -+ fullcone->sreg_proto_max); -+ SNPRINTF_BUFFER_SIZE(ret, remain, offset); -+ } -+ if (e->flags & (1 << NFTNL_EXPR_FULLCONE_FLAGS)) { -+ ret = snprintf(buf + offset, remain, "flags 0x%x ", fullcone->flags); -+ SNPRINTF_BUFFER_SIZE(ret, remain, offset); -+ } -+ -+ return offset; -+} -+ -+struct expr_ops expr_ops_fullcone = { -+ .name = "fullcone", -+ .alloc_len = sizeof(struct nftnl_expr_fullcone), -+ .max_attr = NFTA_FULLCONE_MAX, -+ .set = nftnl_expr_fullcone_set, -+ .get = nftnl_expr_fullcone_get, -+ .parse = nftnl_expr_fullcone_parse, -+ .build = nftnl_expr_fullcone_build, -+ .output = nftnl_expr_fullcone_snprintf, -+}; -+ ---- a/src/expr_ops.c -+++ b/src/expr_ops.c -@@ -19,6 +19,7 @@ extern struct expr_ops expr_ops_limit; - extern struct expr_ops expr_ops_log; - extern struct expr_ops expr_ops_lookup; - extern struct expr_ops expr_ops_masq; -+extern struct expr_ops expr_ops_fullcone; - extern struct expr_ops expr_ops_match; - extern struct expr_ops expr_ops_meta; - extern struct expr_ops expr_ops_ng; -@@ -63,6 +64,7 @@ static struct expr_ops *expr_ops[] = { - &expr_ops_log, - &expr_ops_lookup, - &expr_ops_masq, -+ &expr_ops_fullcone, - &expr_ops_match, - &expr_ops_meta, - &expr_ops_ng, diff --git a/6.12/package/libs/libpcap/patches/999-fix-compilation.patch b/6.12/package/libs/libpcap/patches/999-fix-compilation.patch deleted file mode 100644 index c4a7b1bf..00000000 --- a/6.12/package/libs/libpcap/patches/999-fix-compilation.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/CMakeLists.txt 2024-10-08 08:04:55.220966217 +0200 -+++ b/CMakeLists.txt 2024-10-08 08:09:03.593429433 +0200 -@@ -350,7 +350,7 @@ - if(NOT ${CMAKE_C_COMPILER} MATCHES "clang*") - set(C_ADDITIONAL_FLAGS "${C_ADDITIONAL_FLAGS} /utf-8") - endif(NOT ${CMAKE_C_COMPILER} MATCHES "clang*") --else(MSVC) -+elseif(FALSE) - # - # For checking if a compiler flag works, failing if it doesn't, - # and adding it otherwise. diff --git a/6.12/package/network/config/firewall4/patches/000-kernel-version.patch b/6.12/package/network/config/firewall4/patches/000-kernel-version.patch deleted file mode 100644 index 759586d2..00000000 --- a/6.12/package/network/config/firewall4/patches/000-kernel-version.patch +++ /dev/null @@ -1,34 +0,0 @@ -From e10fccfeb45e49cbad3a1d05f3029504b742f514 Mon Sep 17 00:00:00 2001 -From: Mieczyslaw Nalewaj -Date: Wed, 20 Nov 2024 18:16:08 +0100 -Subject: [PATCH] firewall4: fix reading kernel version - -Fix reading kernel version for kernels with revision 0 e.g. 6.12 -Repair incorrect shift of the revision number causing incorrect value for > 256. - -Signed-off-by: Mieczyslaw Nalewaj ---- - .../firewall4/patches/000-kernel-version.patch | 14 ++++++++++++++ - 1 file changed, 14 insertions(+) - create mode 100644 package/network/config/firewall4/patches/000-kernel-version.patch - -diff --git a/package/network/config/firewall4/patches/000-kernel-version.patch b/package/network/config/firewall4/patches/000-kernel-version.patch -new file mode 100644 -index 00000000000000..e997f693f0bc2e ---- /dev/null -+++ b/package/network/config/firewall4/patches/000-kernel-version.patch -@@ -0,0 +1,14 @@ -+--- a/root/usr/share/ucode/fw4.uc -++++ b/root/usr/share/ucode/fw4.uc -+@@ -496,9 +496,9 @@ return { -+ v = 0; -+ -+ if (fd) { -+- let m = match(fd.read("line"), /^Linux version ([0-9]+)\.([0-9]+)\.([0-9]+)/); -++ let m = match(fd.read("line"), /^Linux version ([0-9]+)\.([0-9]+)(\.([0-9]+))?/); -+ -+- v = m ? (+m[1] << 24) | (+m[2] << 16) | (+m[3] << 8) : 0; -++ v = m ? (+m[1] << 24) | (+m[2] << 16) | (+m[4]) : 0; -+ fd.close(); -+ } -+ diff --git a/6.12/package/network/config/firewall4/patches/990-unconditionally-allow-ct-status-dnat.patch b/6.12/package/network/config/firewall4/patches/990-unconditionally-allow-ct-status-dnat.patch deleted file mode 100644 index 6ca5d232..00000000 --- a/6.12/package/network/config/firewall4/patches/990-unconditionally-allow-ct-status-dnat.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- a/root/usr/share/firewall4/templates/ruleset.uc 2023-07-28 18:55:05.492297782 +0200 -+++ b/root/usr/share/firewall4/templates/ruleset.uc 2023-07-28 18:58:52.300598623 +0200 -@@ -218,9 +218,7 @@ - {% for (let rule in fw4.rules(`input_${zone.name}`)): %} - {%+ include("rule.uc", { fw4, rule }) %} - {% endfor %} --{% if (zone.dflags.dnat): %} - ct status dnat accept comment "!fw4: Accept port redirections" --{% endif %} - {% fw4.includes('chain-append', `input_${zone.name}`) %} - jump {{ zone.input }}_from_{{ zone.name }} - } -@@ -239,9 +237,7 @@ - {% for (let rule in fw4.rules(`forward_${zone.name}`)): %} - {%+ include("rule.uc", { fw4, rule }) %} - {% endfor %} --{% if (zone.dflags.dnat): %} - ct status dnat accept comment "!fw4: Accept port forwards" --{% endif %} - {% fw4.includes('chain-append', `forward_${zone.name}`) %} - jump {{ zone.forward }}_to_{{ zone.name }} - {% if (fw4.forward_policy() != "accept" && (zone.log & 1)): %} diff --git a/6.12/package/network/config/firewall4/patches/999-01-firewall4-add-fullcone-support.patch b/6.12/package/network/config/firewall4/patches/999-01-firewall4-add-fullcone-support.patch deleted file mode 100644 index aad83c53..00000000 --- a/6.12/package/network/config/firewall4/patches/999-01-firewall4-add-fullcone-support.patch +++ /dev/null @@ -1,248 +0,0 @@ -From d4081c498ddca184578903fe5199d390bbc0707b Mon Sep 17 00:00:00 2001 -From: Syrone Wong -Date: Sat, 9 Apr 2022 13:24:19 +0800 -Subject: [PATCH] firewall4: add fullcone support - -fullcone is drop-in replacement of masq for non-udp traffic - -add runtime fullcone rule check, disable it globally if fullcone expr is -invalid - -defaults.fullcone is the global switch, while zone.fullcone4 and -zone.fullcone6 are switches for IPv4 and IPv6 respectively, most -IPv6 traffic do NOT need this FullCone NAT functionality. ---- - root/etc/config/firewall | 3 + - root/usr/share/firewall4/templates/ruleset.uc | 16 +++- - .../firewall4/templates/zone-fullcone.uc | 4 + - root/usr/share/ucode/fw4.uc | 76 ++++++++++++++++++- - 4 files changed, 96 insertions(+), 3 deletions(-) - create mode 100644 root/usr/share/firewall4/templates/zone-fullcone.uc - -diff --git a/root/etc/config/firewall b/root/etc/config/firewall -index b9a4647..7187723 100644 ---- a/root/etc/config/firewall -+++ b/root/etc/config/firewall -@@ -5,6 +5,7 @@ config defaults - option forward REJECT - # Uncomment this line to disable ipv6 rules - # option disable_ipv6 1 -+ option fullcone '0' - - config zone - option name lan -@@ -20,6 +21,8 @@ config zone - option input REJECT - option output ACCEPT - option forward REJECT -+ option fullcone4 '0' -+ option fullcone6 '0' - option masq 1 - option mtu_fix 1 - -diff --git a/root/usr/share/firewall4/templates/ruleset.uc b/root/usr/share/firewall4/templates/ruleset.uc -index eaa1f04..e29eae6 100644 ---- a/root/usr/share/firewall4/templates/ruleset.uc -+++ b/root/usr/share/firewall4/templates/ruleset.uc -@@ -310,6 +310,12 @@ table inet fw4 { - {% for (let redirect in fw4.redirects(`dstnat_${zone.name}`)): %} - {%+ include("redirect.uc", { fw4, redirect }) %} - {% endfor %} -+{% if (zone.fullcone4): %} -+ {%+ include("zone-fullcone.uc", { fw4, zone, family: 4, direction: "dstnat" }) %} -+{% endif %} -+{% if (zone.fullcone6): %} -+ {%+ include("zone-fullcone.uc", { fw4, zone, family: 6, direction: "dstnat" }) %} -+{% endif %} - {% fw4.includes('chain-append', `dstnat_${zone.name}`) %} - } - -@@ -320,20 +326,26 @@ table inet fw4 { - {% for (let redirect in fw4.redirects(`srcnat_${zone.name}`)): %} - {%+ include("redirect.uc", { fw4, redirect }) %} - {% endfor %} --{% if (zone.masq): %} -+{% if (zone.masq && !zone.fullcone4): %} - {% for (let saddrs in zone.masq4_src_subnets): %} - {% for (let daddrs in zone.masq4_dest_subnets): %} - {%+ include("zone-masq.uc", { fw4, zone, family: 4, saddrs, daddrs }) %} - {% endfor %} - {% endfor %} - {% endif %} --{% if (zone.masq6): %} -+{% if (zone.masq6 && !zone.fullcone6): %} - {% for (let saddrs in zone.masq6_src_subnets): %} - {% for (let daddrs in zone.masq6_dest_subnets): %} - {%+ include("zone-masq.uc", { fw4, zone, family: 6, saddrs, daddrs }) %} - {% endfor %} - {% endfor %} - {% endif %} -+{% if (zone.fullcone4): %} -+ {%+ include("zone-fullcone.uc", { fw4, zone, family: 4, direction: "srcnat" }) %} -+{% endif %} -+{% if (zone.fullcone6): %} -+ {%+ include("zone-fullcone.uc", { fw4, zone, family: 6, direction: "srcnat" }) %} -+{% endif %} - {% fw4.includes('chain-append', `srcnat_${zone.name}`) %} - } - -diff --git a/root/usr/share/firewall4/templates/zone-fullcone.uc b/root/usr/share/firewall4/templates/zone-fullcone.uc -new file mode 100644 -index 0000000..77d9806 ---- /dev/null -+++ b/root/usr/share/firewall4/templates/zone-fullcone.uc -@@ -0,0 +1,4 @@ -+{# /usr/share/firewall4/templates/zone-fullcone.uc #} -+ meta nfproto {{ fw4.nfproto(family) }} fullcone comment "!fw4: Handle {{ -+ zone.name -+}} {{ fw4.nfproto(family, true) }} fullcone NAT {{ direction }} traffic" -diff --git a/root/usr/share/ucode/fw4.uc b/root/usr/share/ucode/fw4.uc -index 1b4764c..c5716da 100644 ---- a/root/usr/share/ucode/fw4.uc -+++ b/root/usr/share/ucode/fw4.uc -@@ -1,3 +1,5 @@ -+// /usr/share/ucode/fw4.uc -+ - const fs = require("fs"); - const uci = require("uci"); - const ubus = require("ubus"); -@@ -428,6 +430,25 @@ function nft_try_hw_offload(devices) { - return (rc == 0); - } - -+function nft_try_fullcone() { -+ let nft_test = -+ 'add table inet fw4-fullcone-test; ' + -+ 'add chain inet fw4-fullcone-test dstnat { ' + -+ 'type nat hook prerouting priority -100; policy accept; ' + -+ 'fullcone; ' + -+ '}; ' + -+ 'add chain inet fw4-fullcone-test srcnat { ' + -+ 'type nat hook postrouting priority -100; policy accept; ' + -+ 'fullcone; ' + -+ '}; '; -+ let cmd = sprintf("/usr/sbin/nft -c '%s' 2>/dev/null", replace(nft_test, "'", "'\\''")); -+ let ok = system(cmd) == 0; -+ //if (!ok) { -+ // warn("nft_try_fullcone: cmd "+ cmd + "\n"); -+ //} -+ return ok; -+} -+ - - return { - read_kernel_version: function() { -@@ -765,6 +786,18 @@ return { - warn(`[!] ${msg}\n`); - }, - -+ myinfo: function(fmt, ...args) { -+ if (getenv("QUIET")) -+ return; -+ -+ let msg = sprintf(fmt, ...args); -+ -+ if (getenv("TTY")) -+ warn(`\033[32m${msg}\033[m\n`); -+ else -+ warn(`[I] ${msg}\n`); -+ }, -+ - get: function(sid, opt) { - return this.cursor.get("firewall", sid, opt); - }, -@@ -946,6 +979,21 @@ return { - } - }, - -+ myinfo_section: function(s, msg) { -+ if (s[".name"]) { -+ if (s.name) -+ this.myinfo("Section %s (%s) %s", this.section_id(s[".name"]), s.name, msg); -+ else -+ this.myinfo("Section %s %s", this.section_id(s[".name"]), msg); -+ } -+ else { -+ if (s.name) -+ this.myinfo("ubus %s (%s) %s", s.type || "rule", s.name, msg); -+ else -+ this.myinfo("ubus %s %s", s.type || "rule", msg); -+ } -+ }, -+ - parse_policy: function(val) { - return this.parse_enum(val, [ - "accept", -@@ -1385,6 +1433,7 @@ return { - "dnat", - "snat", - "masquerade", -+ "fullcone", - "accept", - "reject", - "drop" -@@ -1852,6 +1901,7 @@ return { - } - - let defs = this.parse_options(data, { -+ fullcone: [ "bool", "0" ], - input: [ "policy", "drop" ], - output: [ "policy", "drop" ], - forward: [ "policy", "drop" ], -@@ -1884,6 +1934,11 @@ return { - - delete defs.syn_flood; - -+ if (!nft_try_fullcone()) { -+ delete defs.fullcone; -+ //warn("nft_try_fullcone failed, disable fullcone globally\n"); -+ } -+ - this.state.defaults = defs; - }, - -@@ -1908,6 +1963,8 @@ return { - masq_dest: [ "network", null, PARSE_LIST ], - - masq6: [ "bool" ], -+ fullcone4: [ "bool", "0" ], -+ fullcone6: [ "bool", "0" ], - - extra: [ "string", null, UNSUPPORTED ], - extra_src: [ "string", null, UNSUPPORTED ], -@@ -1940,6 +1997,18 @@ return { - } - } - -+ if (this.state.defaults && !this.state.defaults.fullcone) { -+ //this.warn_section(data, "fullcone in defaults not enabled, ignore zone fullcone settings"); -+ zone.fullcone4 = false; -+ zone.fullcone6 = false; -+ } -+ if (zone.fullcone4) { -+ this.myinfo_section(data, "IPv4 fullcone enabled for zone '" + zone.name + "'"); -+ } -+ if (zone.fullcone6) { -+ this.myinfo_section(data, "IPv6 fullcone enabled for zone '" + zone.name + "'"); -+ } -+ - if (zone.mtu_fix && this.kernel < 0x040a0000) { - this.warn_section(data, "option 'mtu_fix' requires kernel 4.10 or later"); - return; -@@ -2110,10 +2179,15 @@ return { - zone.related_subnets = related_subnets; - zone.related_physdevs = related_physdevs; - -+ if (zone.fullcone4 || zone.fullcone6) { -+ zone.dflags.snat = true; -+ zone.dflags.dnat = true; -+ } -+ - if (zone.masq || zone.masq6) - zone.dflags.snat = true; - -- if ((zone.auto_helper && !(zone.masq || zone.masq6)) || length(zone.helper)) { -+ if ((zone.auto_helper && !(zone.masq || zone.masq6 || zone.fullcone4 || zone.fullcone6)) || length(zone.helper)) { - zone.dflags.helper = true; - - for (let helper in (length(zone.helper) ? zone.helper : this.state.helpers)) { diff --git a/6.12/package/network/config/firewall4/patches/999-10-forward-rules-in-prerouting.patch b/6.12/package/network/config/firewall4/patches/999-10-forward-rules-in-prerouting.patch deleted file mode 100644 index 3810a121..00000000 --- a/6.12/package/network/config/firewall4/patches/999-10-forward-rules-in-prerouting.patch +++ /dev/null @@ -1,17 +0,0 @@ ---- a/root/usr/share/firewall4/templates/ruleset.uc.old -+++ b/root/usr/share/firewall4/templates/ruleset.uc -@@ -181,7 +181,14 @@ - - chain prerouting { - type filter hook prerouting priority filter; policy accept; -+{% for (let rule in fw4.rules("forward")): %} -+ {%+ include("rule.uc", { fw4, zone: (rule.src?.zone?.log_limit ? rule.src.zone : rule.dest?.zone), rule }) %} -+{% endfor %} -+ - {% for (let zone in fw4.zones()): %} -+{% for (let rule in fw4.rules(`forward_${zone.name}`)): %} -+ {%+ include("rule.uc", { fw4, zone, rule }) %} -+{% endfor %} - {% if (zone.dflags.helper): %} - {% for (let rule in zone.match_rules): %} - {% let devices_pos = fw4.filter_loopback_devs(rule.devices_pos, false); %} diff --git a/6.12/package/network/services/dnsmasq/files/dnsmasq.init b/6.12/package/network/services/dnsmasq/files/dnsmasq.init deleted file mode 100755 index 540da7bb..00000000 --- a/6.12/package/network/services/dnsmasq/files/dnsmasq.init +++ /dev/null @@ -1,1347 +0,0 @@ -#!/bin/sh /etc/rc.common -# Copyright (C) 2007-2012 OpenWrt.org - -START=19 - -USE_PROCD=1 -PROG=/usr/sbin/dnsmasq - -ADD_LOCAL_DOMAIN=1 -ADD_LOCAL_HOSTNAME=1 -ADD_WAN_FQDN=0 -ADD_LOCAL_FQDN="" - -BASECONFIGFILE="/var/etc/dnsmasq.conf" -BASEHOSTFILE="/tmp/hosts/dhcp" -TRUSTANCHORSFILE="/usr/share/dnsmasq/trust-anchors.conf" -TIMEVALIDFILE="/var/state/dnsmasqsec" -BASEDHCPSTAMPFILE="/var/run/dnsmasq" -DHCPBOGUSHOSTNAMEFILE="/usr/share/dnsmasq/dhcpbogushostname.conf" -RFC6761FILE="/usr/share/dnsmasq/rfc6761.conf" -DHCPSCRIPT="/usr/lib/dnsmasq/dhcp-script.sh" -DHCPSCRIPT_DEPENDS="/usr/share/libubox/jshn.sh /usr/bin/jshn /bin/ubus" - -DNSMASQ_DHCP_VER=4 - -dnsmasq_ignore_opt() { - local opt="$1" - - if [ -z "$dnsmasq_features" ]; then - dnsmasq_features="$(dnsmasq --version | grep -m1 'Compile time options:' | cut -d: -f2) " - [ "${dnsmasq_features#* DHCP }" = "$dnsmasq_features" ] || dnsmasq_has_dhcp=1 - [ "${dnsmasq_features#* DHCPv6 }" = "$dnsmasq_features" ] || dnsmasq_has_dhcp6=1 - [ "${dnsmasq_features#* DNSSEC }" = "$dnsmasq_features" ] || dnsmasq_has_dnssec=1 - [ "${dnsmasq_features#* TFTP }" = "$dnsmasq_features" ] || dnsmasq_has_tftp=1 - [ "${dnsmasq_features#* ipset }" = "$dnsmasq_features" ] || dnsmasq_has_ipset=1 - [ "${dnsmasq_features#* nftset }" = "$dnsmasq_features" ] || dnsmasq_has_nftset=1 - fi - - case "$opt" in - dhcp-duid|\ - ra-param) - [ -z "$dnsmasq_has_dhcp6" ] ;; - dhcp-*|\ - bootp-*|\ - pxe-*) - [ -z "$dnsmasq_has_dhcp" ] ;; - dnssec*|\ - trust-anchor) - if [ -z "$dnsmasq_has_dnssec" ]; then - echo "dnsmasq: \"$opt\" requested, but dnssec support is not available" >&2 - exit 1 - fi - return 1 - ;; - tftp-*) - [ -z "$dnsmasq_has_tftp" ] ;; - ipset) - [ -z "$dnsmasq_has_ipset" ] ;; - nftset) - [ -z "$dnsmasq_has_nftset" ] ;; - *) - return 1 - esac -} - -xappend() { - local value="${1#--}" - local opt="${value%%=*}" - - if ! dnsmasq_ignore_opt "$opt"; then - echo "$value" >>$CONFIGFILE_TMP - fi -} - -hex_to_hostid() { - local var="$1" - local hex="${2#0x}" # strip optional "0x" prefix - - if [ -n "${hex//[0-9a-fA-F]/}" ]; then - # is invalid hex literal - return 1 - fi - - # convert into host id - export "$var=$( - printf "%0x:%0x" \ - $(((0x$hex >> 16) % 65536)) \ - $(( 0x$hex % 65536)) - )" - - return 0 -} - -dhcp_calc() { - local ip="$1" - local res=0 - - while [ -n "$ip" ]; do - part="${ip%%.*}" - res="$(($res * 256))" - res="$(($res + $part))" - [ "${ip%.*}" != "$ip" ] && ip="${ip#*.}" || ip= - done - echo "$res" -} - -dhcp_check() { - local ifname="$1" - local stamp="${BASEDHCPSTAMPFILE_CFG}.${ifname}.dhcp" - local rv=0 - - [ -s "$stamp" ] && return $(cat "$stamp") - - # If interface is down, skip it. - # The init script will be called again once the link is up - case "$(devstatus "$ifname" | jsonfilter -e @.up)" in - false) return 1;; - esac - - udhcpc -n -q -s /bin/true -t 1 -i "$ifname" >&- && rv=1 || rv=0 - - echo $rv > "$stamp" - return $rv -} - -log_once() { - pidof dnsmasq >/dev/null || \ - logger -t dnsmasq "$@" -} - -has_handler() { - local file - - for file in /etc/hotplug.d/dhcp/* /etc/hotplug.d/tftp/* /etc/hotplug.d/neigh/*; do - [ -f "$file" ] && return 0 - done - - return 1 -} - -append_bool() { - local section="$1" - local option="$2" - local value="$3" - local default="$4" - local _loctmp - [ -z "$default" ] && default="0" - config_get_bool _loctmp "$section" "$option" "$default" - [ $_loctmp -gt 0 ] && xappend "$value" -} - -append_parm() { - local section="$1" - local option="$2" - local switch="$3" - local default="$4" - local _loctmp - config_get _loctmp "$section" "$option" "$default" - [ -z "$_loctmp" ] && return 0 - xappend "$switch=$_loctmp" -} - -append_server() { - xappend "--server=$1" -} - -append_rev_server() { - xappend "--rev-server=$1" -} - -append_address() { - xappend "--address=$1" -} - -append_connmark_allowlist() { - xappend "--connmark-allowlist=$1" -} - -append_interface() { - network_get_device ifname "$1" || ifname="$1" - xappend "--interface=$ifname" -} - -append_listenaddress() { - xappend "--listen-address=$1" -} - -append_notinterface() { - network_get_device ifname "$1" || ifname="$1" - xappend "--except-interface=$ifname" -} - -ismounted() { - local filename="$1" - local dirname - for dirname in $EXTRA_MOUNT ; do - case "$filename" in - "${dirname}/"* | "${dirname}" ) - return 0 - ;; - esac - done - - return 1 -} - -append_extramount() { - ismounted "$1" || append EXTRA_MOUNT "$1" -} - -append_addnhosts() { - append_extramount "$1" - xappend "--addn-hosts=$1" -} - -append_bogusnxdomain() { - xappend "--bogus-nxdomain=$1" -} - -append_pxe_service() { - xappend "--pxe-service=$1" -} - -append_interface_name() { - xappend "--interface-name=$1,$2" -} - -filter_dnsmasq() { - local cfg="$1" func="$2" match_cfg="$3" found_cfg - - # use entry when no instance entry set, or if it matches - config_get found_cfg "$cfg" "instance" - if [ -z "$found_cfg" ] || [ "$found_cfg" = "$match_cfg" ]; then - $func $cfg - fi -} - -dhcp_subscrid_add() { - local cfg="$1" - - config_get networkid "$cfg" networkid - [ -n "$networkid" ] || return 0 - - config_get subscriberid "$cfg" subscriberid - [ -n "$subscriberid" ] || return 0 - - xappend "--dhcp-subscrid=set:$networkid,$subscriberid" - - config_get_bool force "$cfg" force 0 - - dhcp_option_add "$cfg" "$networkid" "$force" -} - -dhcp_remoteid_add() { - local cfg="$1" - - config_get networkid "$cfg" networkid - [ -n "$networkid" ] || return 0 - - config_get remoteid "$cfg" remoteid - [ -n "$remoteid" ] || return 0 - - xappend "--dhcp-remoteid=set:$networkid,$remoteid" - - config_get_bool force "$cfg" force 0 - - dhcp_option_add "$cfg" "$networkid" "$force" -} - -dhcp_circuitid_add() { - # TODO: DHCPV6 does not have circuitid; catch "option6:" - local cfg="$1" - - config_get networkid "$cfg" networkid - [ -n "$networkid" ] || return 0 - - config_get circuitid "$cfg" circuitid - [ -n "$circuitid" ] || return 0 - - xappend "--dhcp-circuitid=set:$networkid,$circuitid" - - config_get_bool force "$cfg" force 0 - - dhcp_option_add "$cfg" "$networkid" "$force" -} - -dhcp_userclass_add() { - local cfg="$1" - - config_get networkid "$cfg" networkid - [ -n "$networkid" ] || return 0 - - config_get userclass "$cfg" userclass - [ -n "$userclass" ] || return 0 - - xappend "--dhcp-userclass=set:$networkid,$userclass" - - config_get_bool force "$cfg" force 0 - - dhcp_option_add "$cfg" "$networkid" "$force" -} - -dhcp_vendorclass_add() { - # TODO: DHCPV6 vendor class has stricter definitions; catch? fixup? - local cfg="$1" - - config_get networkid "$cfg" networkid - [ -n "$networkid" ] || return 0 - - config_get vendorclass "$cfg" vendorclass - [ -n "$vendorclass" ] || return 0 - - xappend "--dhcp-vendorclass=set:$networkid,$vendorclass" - - config_get_bool force "$cfg" force 0 - - dhcp_option_add "$cfg" "$networkid" "$force" -} - -dhcp_match_add() { - local cfg="$1" - - config_get networkid "$cfg" networkid - [ -n "$networkid" ] || return 0 - - config_get match "$cfg" match - [ -n "$match" ] || return 0 - - xappend "--dhcp-match=set:$networkid,$match" - - config_get_bool force "$cfg" force 0 - - dhcp_option_add "$cfg" "$networkid" "$force" -} - -dhcp_host_add() { - local cfg="$1" - local hosttag nametime addrs duids macs tags mtags - - config_get_bool force "$cfg" force 0 - - config_get networkid "$cfg" networkid - [ -n "$networkid" ] && dhcp_option_add "$cfg" "$networkid" "$force" - - config_get_bool enable "$cfg" enable 1 - [ "$enable" = "0" ] && return 0 - - config_get name "$cfg" name - config_get ip "$cfg" ip - config_get hostid "$cfg" hostid - - [ -z "$ip" ] && [ -z "$name" ] && [ -z "$hostid" ] && return 0 - - config_get_bool dns "$cfg" dns 0 - [ "$dns" = "1" ] && [ -n "$ip" ] && [ -n "$name" ] && { - echo "$ip $name${DOMAIN:+.$DOMAIN}" >> $HOSTFILE_TMP - } - - config_get mac "$cfg" mac - config_get duid "$cfg" duid - config_get tag "$cfg" tag - - add_tag() { - mtags="${mtags}tag:$1," - } - config_list_foreach "$cfg" match_tag add_tag - - if [ -n "$mac" ]; then - # --dhcp-host=00:20:e0:3b:13:af,192.168.0.199,lap - # many MAC are possible to track a laptop ON/OFF dock - for m in $mac; do append macs "$m" ","; done - fi - - if [ $DNSMASQ_DHCP_VER -eq 6 ] && [ -n "$duid" ]; then - # --dhcp-host=id:00:03:00:01:12:00:00:01:02:03,[::beef],lap - # one (virtual) machine gets one DUID per RFC3315 - duids="id:${duid// */}" - fi - - if [ -z "$macs" ] && [ -z "$duids" ]; then - # --dhcp-host=lap,192.168.0.199,[::beef] - [ -n "$name" ] || return 0 - macs="$name" - name="" - fi - - if [ -n "$hostid" ]; then - hex_to_hostid hostid "$hostid" - fi - - if [ -n "$tag" ]; then - for t in $tag; do append tags "$t" ",set:"; done - fi - - config_get_bool broadcast "$cfg" broadcast 0 - config_get leasetime "$cfg" leasetime - - [ "$broadcast" = "0" ] && broadcast= || broadcast=",set:needs-broadcast" - - hosttag="${networkid:+,set:${networkid}}${tags:+,set:${tags}}$broadcast" - nametime="${name:+,$name}${leasetime:+,$leasetime}" - - if [ $DNSMASQ_DHCP_VER -eq 6 ]; then - addrs="${ip:+,$ip}${hostid:+,[::$hostid]}" - xappend "--dhcp-host=$mtags$macs${duids:+,$duids}$hosttag$addrs$nametime" - else - xappend "--dhcp-host=$mtags$macs$hosttag${ip:+,$ip}$nametime" - fi -} - -dhcp_this_host_add() { - local net="$1" - local ifname="$2" - local mode="$3" - local routerstub routername ifdashname - local lanaddr lanaddr6 lanaddrs6 ulaprefix - - if [ "$mode" -gt 0 ] ; then - ifdashname="${ifname//./-}" - routerstub="$( md5sum /etc/os-release )" - routerstub="router-${routerstub// */}" - routername="$( uci_get system @system[0] hostname $routerstub )" - - if [ "$mode" -gt 1 ] ; then - if [ "$mode" -gt 2 ] ; then - if [ "$mode" -gt 3 ] ; then - append_interface_name "$ifdashname.$routername.$DOMAIN" "$ifname" - fi - - append_interface_name "$routername.$DOMAIN" "$ifname" - fi - - # All IP addresses discovered by dnsmasq will be labeled (except fe80::) - append_interface_name "$routername" "$ifname" - - else - # This uses a static host file entry for only limited addresses. - # Use dnsmasq option "--expandhosts" to enable FQDN on host files. - ulaprefix="$(uci_get network @globals[0] ula_prefix)" - network_get_ipaddr lanaddr "$net" - network_get_ipaddrs6 lanaddrs6 "$net" - - if [ -n "$lanaddr" ] ; then - dhcp_domain_add "" "$routername" "$lanaddr" - fi - - if [ -n "$ulaprefix" ] && [ -n "$lanaddrs6" ] ; then - for lanaddr6 in $lanaddrs6 ; do - case "$lanaddr6" in - "${ulaprefix%%:/*}"*) - dhcp_domain_add "" "$routername" "$lanaddr6" - ;; - esac - done - fi - fi - fi -} - -dhcp_tag_add() { - # NOTE: dnsmasq has explicit "option6:" prefix for DHCPv6 so no collisions - local cfg="$1" - - tag="$cfg" - - [ -n "$tag" ] || return 0 - - config_get_bool force "$cfg" force 0 - [ "$force" = "0" ] && force= - - config_get option "$cfg" dhcp_option - for o in $option; do - xappend "--dhcp-option${force:+-force}=tag:$tag,$o" - done -} - -dhcp_mac_add() { - local cfg="$1" - - config_get networkid "$cfg" networkid - [ -n "$networkid" ] || return 0 - - config_get mac "$cfg" mac - [ -n "$mac" ] || return 0 - - xappend "--dhcp-mac=$networkid,$mac" - - dhcp_option_add "$cfg" "$networkid" -} - -dhcp_boot_add() { - # TODO: BOOTURL is different between DHCPv4 and DHCPv6 - local cfg="$1" - - config_get networkid "$cfg" networkid - - config_get filename "$cfg" filename - [ -n "$filename" ] || return 0 - - config_get servername "$cfg" servername - config_get serveraddress "$cfg" serveraddress - - [ -n "$serveraddress" ] && [ ! -n "$servername" ] && return 0 - - xappend "--dhcp-boot=${networkid:+tag:$networkid,}${filename}${servername:+,$servername}${serveraddress:+,$serveraddress}" - - config_get_bool force "$cfg" force 0 - - dhcp_option_add "$cfg" "$networkid" "$force" -} - -dhcp_add() { - local cfg="$1" - local dhcp6range="::" - local nettag - local tags - - config_get net "$cfg" interface - [ -n "$net" ] || return 0 - - config_get networkid "$cfg" networkid - [ -n "$networkid" ] || networkid="$net" - - network_get_device ifname "$net" || return 0 - - [ "$cachelocal" = "0" ] && network_get_dnsserver dnsserver "$net" && { - DNS_SERVERS="$DNS_SERVERS $dnsserver" - } - - append_bool "$cfg" ignore "--no-dhcp-interface=$ifname" && { - # Many ISP do not have useful names for DHCP customers (your WAN). - dhcp_this_host_add "$net" "$ifname" "$ADD_WAN_FQDN" - return 0 - } - - network_get_subnet subnet "$net" || return 0 - network_get_protocol proto "$net" || return 0 - - # Do not support non-static interfaces for now - [ static = "$proto" ] || return 0 - - ipaddr="${subnet%%/*}" - prefix_or_netmask="${subnet##*/}" - - # Override interface netmask with dhcp config if applicable - config_get netmask "$cfg" netmask - - [ -n "$netmask" ] && prefix_or_netmask="$netmask" - - #check for an already active dhcp server on the interface, unless 'force' is set - config_get_bool force "$cfg" force 0 - [ $force -gt 0 ] || dhcp_check "$ifname" || { - logger -t dnsmasq \ - "found already running DHCP-server on interface '$ifname'" \ - "refusing to start, use 'option force 1' to override" - return 0 - } - - config_get start "$cfg" start 100 - config_get limit "$cfg" limit 150 - config_get leasetime "$cfg" leasetime 12h - config_get options "$cfg" options - config_get_bool dynamicdhcp "$cfg" dynamicdhcp 1 - config_get_bool dynamicdhcpv4 "$cfg" dynamicdhcpv4 $dynamicdhcp - config_get_bool dynamicdhcpv6 "$cfg" dynamicdhcpv6 $dynamicdhcp - - config_get dhcpv4 "$cfg" dhcpv4 - config_get dhcpv6 "$cfg" dhcpv6 - - config_get ra "$cfg" ra - config_get ra_management "$cfg" ra_management - config_get ra_preference "$cfg" ra_preference - config_get dns "$cfg" dns - config_get dns_sl "$cfg" domain - - config_list_foreach "$cfg" "interface_name" append_interface_name "$ifname" - - # Put the router host name on this DHCP served interface address(es) - dhcp_this_host_add "$net" "$ifname" "$ADD_LOCAL_FQDN" - - start="$( dhcp_calc "$start" )" - - add_tag() { - tags="${tags}tag:$1," - } - config_list_foreach "$cfg" tag add_tag - - nettag="${networkid:+set:${networkid},}" - - # make sure the DHCP range is not empty - if [ "$dhcpv4" != "disabled" ] && ipcalc "$ipaddr/$prefix_or_netmask" "$start" "$limit" ; then - [ "$dynamicdhcpv4" = "0" ] && END="static" - - xappend "--dhcp-range=$tags$nettag$START,$END,$NETMASK,$leasetime${options:+ $options}" - fi - - if [ "$dynamicdhcpv6" = "0" ] ; then - dhcp6range="::,static" - else - dhcp6range="::1000,::ffff" - fi - - - if [ $DNSMASQ_DHCP_VER -eq 6 ] && [ "$ra" = "server" ] ; then - # Note: dnsmasq cannot just be a DHCPv6 server (all-in-1) - # and let some other machine(s) send RA pointing to it. - - case $ra_preference in - *high*) - xappend "--ra-param=$ifname,high,0,7200" - ;; - *low*) - xappend "--ra-param=$ifname,low,0,7200" - ;; - *) - # Send UNSOLICITED RA at default interval and live for 2 hours. - # TODO: convert flexible lease time into route life time (only seconds). - xappend "--ra-param=$ifname,0,7200" - ;; - esac - - if [ "$dhcpv6" = "disabled" ] ; then - ra_management="3" - fi - - - case $ra_management in - 0) - # SLACC with DCHP for extended options - xappend "--dhcp-range=$nettag::,constructor:$ifname,ra-stateless,ra-names" - ;; - 2) - # DHCP address and RA only for management redirection - xappend "--dhcp-range=$nettag$dhcp6range,constructor:$ifname,$leasetime" - ;; - 3) - # SLAAC only but dnsmasq attempts to link HOSTNAME, DHCPv4 MAC, and SLAAC - xappend "--dhcp-range=$nettag::,constructor:$ifname,ra-only,ra-names" - ;; - *) - # SLAAC and full DHCP - xappend "--dhcp-range=$nettag$dhcp6range,constructor:$ifname,slaac,ra-names,$leasetime" - ;; - esac - - if [ -n "$dns" ]; then - dnss="" - for d in $dns; do append dnss "[$d]" ","; done - else - dnss="[::]" - fi - - dhcp_option_append "option6:dns-server,$dnss" "$networkid" - - if [ -n "$dns_sl" ]; then - ddssl="" - for dd in $dns_sl; do append ddssl "$dd" ","; done - fi - - dhcp_option_append "option6:domain-search,$ddssl" "$networkid" - fi - - dhcp_option_add "$cfg" "$networkid" 0 - dhcp_option_add "$cfg" "$networkid" 2 -} - -dhcp_option_append() { - local option="$1" - local networkid="$2" - local force="$3" - - xappend "--dhcp-option${force:+-force}=${networkid:+$networkid,}$option" -} - -dhcp_option_add() { - # NOTE: dnsmasq has explicit "option6:" prefix for DHCPv6 so no collisions - local cfg="$1" - local networkid="$2" - local force="$3" - local opt="dhcp_option" - - [ "$force" = "0" ] && force= - [ "$force" = "2" ] && opt="dhcp_option_force" - - local list_len - config_get list_len "$cfg" "${opt}_LENGTH" - - if [ -n "$list_len" ]; then - config_list_foreach "$cfg" "$opt" dhcp_option_append "$networkid" "$force" - else - config_get dhcp_option "$cfg" "$opt" - - [ -n "$dhcp_option" ] && echo "Warning: the 'option $opt' syntax is deprecated, use 'list $opt'" >&2 - - local option - for option in $dhcp_option; do - dhcp_option_append "$option" "$networkid" "$force" - done - fi -} - -dhcp_domain_add() { - local cfg="$1" - local ip name names record - - config_get names "$cfg" name "$2" - [ -n "$names" ] || return 0 - - config_get ip "$cfg" ip "$3" - [ -n "$ip" ] || return 0 - - for name in $names; do - record="${record:+$record }$name" - done - - echo "$ip $record" >> $HOSTFILE_TMP -} - -dhcp_srv_add() { - local cfg="$1" - - config_get srv "$cfg" srv - [ -n "$srv" ] || return 0 - - config_get target "$cfg" target - [ -n "$target" ] || return 0 - - config_get port "$cfg" port - [ -n "$port" ] || return 0 - - config_get class "$cfg" class - config_get weight "$cfg" weight - - local service="$srv,$target,$port${class:+,$class${weight:+,$weight}}" - - xappend "--srv-host=$service" -} - -dhcp_mx_add() { - local cfg="$1" - local domain relay pref - - config_get domain "$cfg" domain - [ -n "$domain" ] || return 0 - - config_get relay "$cfg" relay - [ -n "$relay" ] || return 0 - - config_get pref "$cfg" pref 0 - - local service="$domain,$relay,$pref" - - xappend "--mx-host=$service" -} - -dhcp_cname_add() { - local cfg="$1" - local cname target - - config_get cname "$cfg" cname - [ -n "$cname" ] || return 0 - - config_get target "$cfg" target - [ -n "$target" ] || return 0 - - xappend "--cname=${cname},${target}" -} - -dhcp_hostrecord_add() { - local cfg="$1" - local names addresses record val - - config_get names "$cfg" name "$2" - if [ -z "$names" ]; then - return 0 - fi - - config_get addresses "$cfg" ip "$3" - if [ -z "$addresses" ]; then - return 0 - fi - - for val in $names $addresses; do - record="${record:+$record,}$val" - done - - xappend "--host-record=$record" -} - -dhcp_relay_add() { - local cfg="$1" - local local_addr server_addr interface - - config_get local_addr "$cfg" local_addr - [ -n "$local_addr" ] || return 0 - - config_get server_addr "$cfg" server_addr - [ -n "$server_addr" ] || return 0 - - config_get interface "$cfg" interface - if [ -z "$interface" ]; then - xappend "--dhcp-relay=$local_addr,$server_addr" - else - network_get_device ifname "$interface" || return - xappend "--dhcp-relay=$local_addr,$server_addr,$ifname" - fi -} - -dnsmasq_ipset_add() { - local cfg="$1" - local ipsets nftsets domains - - add_ipset() { - ipsets="${ipsets:+$ipsets,}$1" - } - - add_nftset() { - local IFS=, - for set in $1; do - local fam="$family" - [ -n "$fam" ] || fam=$(echo "$set" | sed -nre \ - 's#^.*[^0-9]([46])$|^.*[-_]([46])[-_].*$|^([46])[^0-9].*$#\1\2\3#p') - [ -n "$fam" ] || \ - fam=$(nft -t list set "$table_family" "$table" "$set" 2>&1 | sed -nre \ - 's#^\t\ttype .*\bipv([46])_addr\b.*$#\1#p') - - [ -n "$fam" ] || \ - logger -t dnsmasq "Cannot infer address family from non-existent nftables set '$set'" - - nftsets="${nftsets:+$nftsets,}${fam:+$fam#}$table_family#$table#$set" - done - } - - add_domain() { - # leading '/' is expected - domains="$domains/$1" - if [ "$(echo $domains | wc -m)" -gt 600 ]; then - xappend "--ipset=$domains/$ipsets" - xappend "--nftset=$domains/$nftsets" - domains="" - fi - } - - config_get table "$cfg" table 'fw4' - config_get table_family "$cfg" table_family 'inet' - if [ "$table_family" = "ip" ] ; then - family="4" - elif [ "$table_family" = "ip6" ] ; then - family="6" - else - config_get family "$cfg" family - fi - - config_list_foreach "$cfg" "name" add_ipset - config_list_foreach "$cfg" "name" add_nftset - config_list_foreach "$cfg" "domain" add_domain - - if [ -z "$ipsets" ] || [ -z "$nftsets" ] || [ -z "$domains" ]; then - return 0 - fi - - xappend "--ipset=$domains/$ipsets" - xappend "--nftset=$domains/$nftsets" -} - -dnsmasq_start() -{ - local cfg="$1" - local disabled user_dhcpscript logfacility - local resolvfile resolvdir localuse=1 - - config_get_bool disabled "$cfg" disabled 0 - [ "$disabled" -gt 0 ] && return 0 - - # reset list of DOMAINS, DNS servers and EXTRA mounts (for each dnsmasq instance) - DNS_SERVERS="" - DOMAIN="" - EXTRA_MOUNT="" - CONFIGFILE="${BASECONFIGFILE}.${cfg}" - CONFIGFILE_TMP="${CONFIGFILE}.$$" - HOSTFILE="${BASEHOSTFILE}.${cfg}" - HOSTFILE_TMP="${HOSTFILE}.$$" - HOSTFILE_DIR="$(dirname "$HOSTFILE")" - BASEDHCPSTAMPFILE_CFG="${BASEDHCPSTAMPFILE}.${cfg}" - - # before we can call xappend - umask u=rwx,g=rx,o=rx - mkdir -p /var/run/dnsmasq/ - mkdir -p $(dirname $CONFIGFILE) - mkdir -p "$HOSTFILE_DIR" - mkdir -p /var/lib/misc - chown dnsmasq:dnsmasq /var/run/dnsmasq - - echo "# auto-generated config file from /etc/config/dhcp" > $CONFIGFILE_TMP - echo "# auto-generated config file from /etc/config/dhcp" > $HOSTFILE_TMP - - local dnsmasqconffile="/etc/dnsmasq.${cfg}.conf" - if [ ! -r "$dnsmasqconffile" ]; then - dnsmasqconffile=/etc/dnsmasq.conf - fi - - # if we did this last, we could override auto-generated config - [ -f "${dnsmasqconffile}" ] && { - xappend "--conf-file=${dnsmasqconffile}" - } - - $PROG --version | grep -osqE "^Compile time options:.* DHCPv6( |$)" && DHCPv6CAPABLE=1 || DHCPv6CAPABLE=0 - - - if [ -x /usr/sbin/odhcpd ] && [ -x /etc/init.d/odhcpd ] ; then - local odhcpd_is_main odhcpd_is_enabled - config_get odhcpd_is_main odhcpd maindhcp 0 - /etc/init.d/odhcpd enabled && odhcpd_is_enabled=1 || odhcpd_is_enabled=0 - - - if [ "$odhcpd_is_enabled" -eq 0 ] && [ "$DHCPv6CAPABLE" -eq 1 ] ; then - # DHCP V4 and V6 in DNSMASQ - DNSMASQ_DHCP_VER=6 - elif [ "$odhcpd_is_main" -gt 0 ] ; then - # ODHCPD is doing it all - DNSMASQ_DHCP_VER=0 - else - # You have ODHCPD but use DNSMASQ for DHCPV4 - DNSMASQ_DHCP_VER=4 - fi - - elif [ "$DHCPv6CAPABLE" -eq 1 ] ; then - # DHCP V4 and V6 in DNSMASQ - DNSMASQ_DHCP_VER=6 - else - DNSMASQ_DHCP_VER=4 - fi - - # Allow DHCP/DHCPv6 to be handled by ISC DHCPD - if [ -x /usr/sbin/dhcpd ] ; then - if [ -x /etc/init.d/dhcpd ] ; then - /etc/init.d/dhcpd enabled && DNSMASQ_DHCP_VER=0 - fi - if [ -x /etc/init.d/dhcpd6 ] && [ "$DNSMASQ_DHCP_VER" -gt 0 ] ; then - /etc/init.d/dhcpd6 enabled && DNSMASQ_DHCP_VER=4 - fi - fi - - append_bool "$cfg" authoritative "--dhcp-authoritative" - append_bool "$cfg" nodaemon "--no-daemon" - append_bool "$cfg" domainneeded "--domain-needed" - append_bool "$cfg" filterwin2k "--filterwin2k" - append_bool "$cfg" nohosts "--no-hosts" - append_bool "$cfg" nonegcache "--no-negcache" - append_bool "$cfg" strictorder "--strict-order" - append_bool "$cfg" logqueries "--log-queries=extra" - append_bool "$cfg" noresolv "--no-resolv" - append_bool "$cfg" localise_queries "--localise-queries" - append_bool "$cfg" readethers "--read-ethers" - - local instance_name="dnsmasq.$cfg" - if [ "$cfg" = "$DEFAULT_INSTANCE" ]; then - instance_name="dnsmasq" - fi - config_get_bool dbus "$cfg" "dbus" 0 - [ $dbus -gt 0 ] && xappend "--enable-dbus=uk.org.thekelleys.$instance_name" - config_get_bool ubus "$cfg" "ubus" 1 - [ $ubus -gt 0 ] && xappend "--enable-ubus=$instance_name" - - append_bool "$cfg" expandhosts "--expand-hosts" - config_get tftp_root "$cfg" "tftp_root" - [ -n "$tftp_root" ] && mkdir -p "$tftp_root" && append_bool "$cfg" enable_tftp "--enable-tftp" - append_bool "$cfg" tftp_no_fail "--tftp-no-fail" - append_bool "$cfg" nonwildcard "--bind-dynamic" 1 - append_bool "$cfg" fqdn "--dhcp-fqdn" - append_bool "$cfg" proxydnssec "--proxy-dnssec" - append_bool "$cfg" localservice "--local-service" - append_bool "$cfg" logdhcp "--log-dhcp" - append_bool "$cfg" quietdhcp "--quiet-dhcp" - append_bool "$cfg" sequential_ip "--dhcp-sequential-ip" - append_bool "$cfg" allservers "--all-servers" - append_bool "$cfg" noping "--no-ping" - append_bool "$cfg" rapidcommit "--dhcp-rapid-commit" - append_bool "$cfg" scriptarp "--script-arp" - - append_bool "$cfg" filter_aaaa "--filter-AAAA" - append_bool "$cfg" filter_a "--filter-A" - - append_parm "$cfg" logfacility "--log-facility" - config_get logfacility "$cfg" "logfacility" - append_parm "$cfg" cachesize "--cache-size" - append_parm "$cfg" dnsforwardmax "--dns-forward-max" - append_parm "$cfg" port "--port" - append_parm "$cfg" ednspacket_max "--edns-packet-max" - append_parm "$cfg" dhcpleasemax "--dhcp-lease-max" - append_parm "$cfg" "queryport" "--query-port" - append_parm "$cfg" "minport" "--min-port" - append_parm "$cfg" "maxport" "--max-port" - append_parm "$cfg" "domain" "--domain" - append_parm "$cfg" "local" "--local" - config_list_foreach "$cfg" "listen_address" append_listenaddress - config_list_foreach "$cfg" "server" append_server - config_list_foreach "$cfg" "rev_server" append_rev_server - config_list_foreach "$cfg" "address" append_address - - local connmark_allowlist_enable - config_get connmark_allowlist_enable "$cfg" connmark_allowlist_enable 0 - [ "$connmark_allowlist_enable" -gt 0 ] && { - append_parm "$cfg" "connmark_allowlist_enable" "--connmark-allowlist-enable" - config_list_foreach "$cfg" "connmark_allowlist" append_connmark_allowlist - } - - [ -n "$BOOT" ] || { - config_list_foreach "$cfg" "interface" append_interface - config_list_foreach "$cfg" "notinterface" append_notinterface - } - config_get_bool ignore_hosts_dir "$cfg" ignore_hosts_dir 0 - if [ "$ignore_hosts_dir" = "1" ]; then - xappend "--addn-hosts=$HOSTFILE" - append EXTRA_MOUNT "$HOSTFILE" - else - xappend "--addn-hosts=$HOSTFILE_DIR" - append EXTRA_MOUNT "$HOSTFILE_DIR" - fi - config_list_foreach "$cfg" "addnhosts" append_addnhosts - config_list_foreach "$cfg" "bogusnxdomain" append_bogusnxdomain - append_parm "$cfg" "leasefile" "--dhcp-leasefile" "/tmp/dhcp.leases" - - local serversfile - config_get serversfile "$cfg" "serversfile" - [ -n "$serversfile" ] && { - xappend "--servers-file=$serversfile" - append EXTRA_MOUNT "$serversfile" - } - - append_parm "$cfg" "tftp_root" "--tftp-root" - append_parm "$cfg" "dhcp_boot" "--dhcp-boot" - append_parm "$cfg" "local_ttl" "--local-ttl" - append_parm "$cfg" "max_ttl" "--max-ttl" - append_parm "$cfg" "min_cache_ttl" "--min-cache-ttl" - append_parm "$cfg" "max_cache_ttl" "--max-cache-ttl" - append_parm "$cfg" "pxe_prompt" "--pxe-prompt" - append_parm "$cfg" "tftp_unique_root" "--tftp-unique-root" - config_list_foreach "$cfg" "pxe_service" append_pxe_service - config_get DOMAIN "$cfg" domain - - config_get_bool ADD_LOCAL_DOMAIN "$cfg" add_local_domain 1 - config_get_bool ADD_LOCAL_HOSTNAME "$cfg" add_local_hostname 1 - config_get ADD_LOCAL_FQDN "$cfg" add_local_fqdn "" - config_get ADD_WAN_FQDN "$cfg" add_wan_fqdn 0 - - if [ -z "$ADD_LOCAL_FQDN" ] ; then - # maintain support for previous UCI - ADD_LOCAL_FQDN="$ADD_LOCAL_HOSTNAME" - fi - - config_get user_dhcpscript $cfg dhcpscript - if has_handler || [ -n "$user_dhcpscript" ]; then - xappend "--dhcp-script=$DHCPSCRIPT" - xappend "--script-arp" - fi - - config_get leasefile $cfg leasefile "/tmp/dhcp.leases" - [ -n "$leasefile" ] && [ ! -e "$leasefile" ] && touch "$leasefile" - config_get_bool cachelocal "$cfg" cachelocal 1 - - config_get_bool noresolv "$cfg" noresolv 0 - if [ "$noresolv" != "1" ]; then - config_get resolvfile "$cfg" resolvfile /tmp/resolv.conf.d/resolv.conf.auto - [ -n "$resolvfile" ] && [ ! -e "$resolvfile" ] && touch "$resolvfile" - xappend "--resolv-file=$resolvfile" - [ "$resolvfile" != "/tmp/resolv.conf.d/resolv.conf.auto" ] && localuse=0 - resolvdir="$(dirname "$resolvfile")" - fi - config_get_bool localuse "$cfg" localuse "$localuse" - - config_get hostsfile "$cfg" dhcphostsfile - [ -e "$hostsfile" ] && xappend "--dhcp-hostsfile=$hostsfile" - - local rebind - config_get_bool rebind "$cfg" rebind_protection 1 - [ $rebind -gt 0 ] && { - log_once \ - "DNS rebinding protection is active," \ - "will discard upstream RFC1918 responses!" - xappend "--stop-dns-rebind" - - local rebind_localhost - config_get_bool rebind_localhost "$cfg" rebind_localhost 0 - [ $rebind_localhost -gt 0 ] && { - log_once "Allowing 127.0.0.0/8 responses" - xappend "--rebind-localhost-ok" - } - - append_rebind_domain() { - log_once "Allowing RFC1918 responses for domain $1" - xappend "--rebind-domain-ok=$1" - } - - config_list_foreach "$cfg" rebind_domain append_rebind_domain - } - - config_get_bool dnssec "$cfg" dnssec 0 - [ "$dnssec" -gt 0 ] && { - xappend "--conf-file=$TRUSTANCHORSFILE" - xappend "--dnssec" - [ -x /etc/init.d/sysntpd ] && { - if /etc/init.d/sysntpd enabled || [ "$(uci_get system.ntp.enabled)" = "1" ] ; then - [ -f "$TIMEVALIDFILE" ] || xappend "--dnssec-no-timecheck" - fi - } - config_get_bool dnsseccheckunsigned "$cfg" dnsseccheckunsigned 1 - [ "$dnsseccheckunsigned" -eq 0 ] && xappend "--dnssec-check-unsigned=no" - } - - config_get addmac "$cfg" addmac 0 - [ "$addmac" != "0" ] && { - [ "$addmac" = "1" ] && addmac= - xappend "--add-mac${addmac:+="$addmac"}" - } - - dhcp_option_add "$cfg" "" 0 - dhcp_option_add "$cfg" "" 2 - - xappend "--dhcp-broadcast=tag:needs-broadcast" - - - config_get dnsmasqconfdir "$cfg" confdir "/tmp/dnsmasq.d" - xappend "--conf-dir=$dnsmasqconfdir" - dnsmasqconfdir="${dnsmasqconfdir%%,*}" - [ ! -d "$dnsmasqconfdir" ] && mkdir -p $dnsmasqconfdir - xappend "--user=dnsmasq" - xappend "--group=dnsmasq" - echo >> $CONFIGFILE_TMP - - config_get_bool enable_tftp "$cfg" enable_tftp 0 - [ "$enable_tftp" -gt 0 ] && { - config_get tftp_root "$cfg" tftp_root - append EXTRA_MOUNT $tftp_root - } - - config_foreach filter_dnsmasq host dhcp_host_add "$cfg" - echo >> $CONFIGFILE_TMP - - config_get_bool dhcpbogushostname "$cfg" dhcpbogushostname 1 - [ "$dhcpbogushostname" -gt 0 ] && { - xappend "--dhcp-ignore-names=tag:dhcp_bogus_hostname" - [ -r "$DHCPBOGUSHOSTNAMEFILE" ] && xappend "--conf-file=$DHCPBOGUSHOSTNAMEFILE" - } - - config_foreach filter_dnsmasq boot dhcp_boot_add "$cfg" - config_foreach filter_dnsmasq mac dhcp_mac_add "$cfg" - config_foreach filter_dnsmasq tag dhcp_tag_add "$cfg" - config_foreach filter_dnsmasq vendorclass dhcp_vendorclass_add "$cfg" - config_foreach filter_dnsmasq userclass dhcp_userclass_add "$cfg" - config_foreach filter_dnsmasq circuitid dhcp_circuitid_add "$cfg" - config_foreach filter_dnsmasq remoteid dhcp_remoteid_add "$cfg" - config_foreach filter_dnsmasq subscrid dhcp_subscrid_add "$cfg" - config_foreach filter_dnsmasq match dhcp_match_add "$cfg" - config_foreach filter_dnsmasq domain dhcp_domain_add "$cfg" - config_foreach filter_dnsmasq hostrecord dhcp_hostrecord_add "$cfg" - [ -n "$BOOT" ] || config_foreach filter_dnsmasq relay dhcp_relay_add "$cfg" - - echo >> $CONFIGFILE_TMP - config_foreach filter_dnsmasq srvhost dhcp_srv_add "$cfg" - config_foreach filter_dnsmasq mxhost dhcp_mx_add "$cfg" - echo >> $CONFIGFILE_TMP - - config_get_bool boguspriv "$cfg" boguspriv 1 - [ "$boguspriv" -gt 0 ] && { - xappend "--bogus-priv" - [ -r "$RFC6761FILE" ] && xappend "--conf-file=$RFC6761FILE" - } - - if [ "$DNSMASQ_DHCP_VER" -gt 4 ] ; then - # Enable RA feature for when/if it is constructed, - # and RA is selected per interface pool (RA, DHCP, or both), - # but no one (should) want RA broadcast in syslog - [ -n "$BOOT" ] || config_foreach filter_dnsmasq dhcp dhcp_add "$cfg" - xappend "--enable-ra" - xappend "--quiet-ra" - append_bool "$cfg" quietdhcp "--quiet-dhcp6" - - elif [ "$DNSMASQ_DHCP_VER" -gt 0 ] ; then - [ -n "$BOOT" ] || config_foreach filter_dnsmasq dhcp dhcp_add "$cfg" - fi - - - echo >> $CONFIGFILE_TMP - config_foreach filter_dnsmasq cname dhcp_cname_add "$cfg" - echo >> $CONFIGFILE_TMP - - echo >> $CONFIGFILE_TMP - config_foreach filter_dnsmasq ipset dnsmasq_ipset_add "$cfg" - echo >> $CONFIGFILE_TMP - - mv -f $CONFIGFILE_TMP $CONFIGFILE - mv -f $HOSTFILE_TMP $HOSTFILE - - [ "$localuse" -gt 0 ] && { - rm -f /tmp/resolv.conf - [ $ADD_LOCAL_DOMAIN -eq 1 ] && [ -n "$DOMAIN" ] && { - echo "search $DOMAIN" >> /tmp/resolv.conf - } - DNS_SERVERS="$DNS_SERVERS 127.0.0.1" - [ -e /proc/sys/net/ipv6 ] && DNS_SERVERS="$DNS_SERVERS ::1" - for DNS_SERVER in $DNS_SERVERS ; do - echo "nameserver $DNS_SERVER" >> /tmp/resolv.conf - done - } - - config_list_foreach "$cfg" addnmount append_extramount - - procd_open_instance $cfg - procd_set_param command $PROG -C $CONFIGFILE -k -x /var/run/dnsmasq/dnsmasq."${cfg}".pid - procd_set_param file $CONFIGFILE - [ -n "$user_dhcpscript" ] && procd_set_param env USER_DHCPSCRIPT="$user_dhcpscript" - procd_set_param respawn - - local instance_ifc instance_netdev - config_get instance_ifc "$cfg" interface - [ -n "$instance_ifc" ] && network_get_device instance_netdev "$instance_ifc" && - [ -n "$instance_netdev" ] && procd_set_param netdev $instance_netdev - - procd_add_jail dnsmasq ubus log - procd_add_jail_mount $CONFIGFILE $DHCPBOGUSHOSTNAMEFILE $DHCPSCRIPT $DHCPSCRIPT_DEPENDS - procd_add_jail_mount $EXTRA_MOUNT $RFC6761FILE $TRUSTANCHORSFILE - procd_add_jail_mount $dnsmasqconffile $dnsmasqconfdir $resolvdir $user_dhcpscript - procd_add_jail_mount /etc/passwd /etc/group /etc/TZ /etc/hosts /etc/ethers - procd_add_jail_mount_rw /var/run/dnsmasq/ $leasefile - case "$logfacility" in */*) - [ ! -e "$logfacility" ] && touch "$logfacility" - procd_add_jail_mount_rw "$logfacility" - esac - [ -e "$hostsfile" ] && procd_add_jail_mount $hostsfile - - procd_close_instance -} - -dnsmasq_stop() -{ - local cfg="$1" - local noresolv resolvfile localuse=1 - - config_get_bool noresolv "$cfg" noresolv 0 - config_get resolvfile "$cfg" "resolvfile" - - [ "$noresolv" = 0 ] && [ "$resolvfile" != "/tmp/resolv.conf.d/resolv.conf.auto" ] && localuse=0 - config_get_bool localuse "$cfg" localuse "$localuse" - [ "$localuse" -gt 0 ] && ln -sf "/tmp/resolv.conf.d/resolv.conf.auto" /tmp/resolv.conf - - rm -f ${BASEDHCPSTAMPFILE}.${cfg}.*.dhcp -} - -add_interface_trigger() -{ - local interface ifname ignore - - config_get interface "$1" interface - config_get_bool ignore "$1" ignore 0 - network_get_device ifname "$interface" || ignore=0 - - [ -n "$interface" ] && [ $ignore -eq 0 ] && procd_add_interface_trigger "interface.*" "$interface" /etc/init.d/dnsmasq reload -} - -service_triggers() -{ - procd_add_reload_trigger "dhcp" "system" - - config_load dhcp - config_foreach add_interface_trigger dhcp - config_foreach add_interface_trigger relay -} - -boot() -{ - BOOT=1 - start "$@" -} - -start_service() { - local instance="$1" - local instance_found=0 - local first_instance="" - - . /lib/functions/network.sh - - config_cb() { - local type="$1" - local name="$2" - if [ "$type" = "dnsmasq" ]; then - if [ -n "$instance" ] && [ "$instance" = "$name" ]; then - instance_found=1 - fi - if [ -z "$DEFAULT_INSTANCE" ]; then - local disabled - config_get_bool disabled "$name" disabled 0 - if [ "$disabled" -eq 0 ]; then - # First enabled section will be assigned default instance name. - # Unnamed sections get precedence over named sections. - if expr "$cfg" : 'cfg[0-9a-f]*$' >/dev/null = "9"; then # See uci_fixup_section. - DEFAULT_INSTANCE="$name" # Unnamed config section. - elif [ -z "$first_instance" ]; then - first_instance="$name" - fi - fi - fi - fi - } - - DEFAULT_INSTANCE="" - config_load dhcp - if [ -z "$DEFAULT_INSTANCE" ]; then - DEFAULT_INSTANCE="$first_instance" # No unnamed config section was found. - fi - - if [ -n "$instance" ]; then - [ "$instance_found" -gt 0 ] || return - dnsmasq_start "$instance" - else - config_foreach dnsmasq_start dnsmasq - fi -} - -reload_service() { - rc_procd start_service "$@" - procd_send_signal dnsmasq "$@" -} - -stop_service() { - local instance="$1" - local instance_found=0 - - config_cb() { - local type="$1" - local name="$2" - if [ "$type" = "dnsmasq" ]; then - if [ -n "$instance" ] && [ "$instance" = "$name" ]; then - instance_found=1 - fi - fi - } - - config_load dhcp - - if [ -n "$instance" ]; then - [ "$instance_found" -gt 0 ] || return - dnsmasq_stop "$instance" - else - config_foreach dnsmasq_stop dnsmasq - fi -} diff --git a/6.12/package/network/utils/nftables/Makefile b/6.12/package/network/utils/nftables/Makefile deleted file mode 100644 index 55a6a4bc..00000000 --- a/6.12/package/network/utils/nftables/Makefile +++ /dev/null @@ -1,85 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only -# -# Copyright (C) 2015 OpenWrt.org -# - -include $(TOPDIR)/rules.mk - -PKG_NAME:=nftables -PKG_VERSION:=1.0.7 -PKG_RELEASE:=1 - -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz -PKG_SOURCE_URL:=https://netfilter.org/projects/$(PKG_NAME)/files -PKG_HASH:=c12ac941fff9adaedf17367d5ce213789b98a0d314277bc22b3d71e10891f412 - -PKG_MAINTAINER:= -PKG_LICENSE:=GPL-2.0 -PKG_LICENSE_FILES:=COPYING - -PKG_FIXUP:=autoreconf -PKG_INSTALL:=1 - -PKG_BUILD_FLAGS:=lto - -include $(INCLUDE_DIR)/package.mk - -DISABLE_NLS:= - -CONFIGURE_ARGS += \ - --disable-debug \ - --disable-man-doc \ - --with-mini-gmp \ - --without-cli \ - --disable-python - -define Package/nftables/Default - SECTION:=net - CATEGORY:=Network - SUBMENU:=Firewall - TITLE:=nftables userspace utility - DEPENDS:=+kmod-nft-core +libnftnl - URL:=http://netfilter.org/projects/nftables/ - PROVIDES:=nftables -endef - -define Package/nftables-nojson - $(Package/nftables/Default) - TITLE+= no JSON support - VARIANT:=nojson - DEFAULT_VARIANT:=1 - CONFLICTS:=nftables-json -endef - -define Package/nftables-json - $(Package/nftables/Default) - TITLE+= with JSON support - VARIANT:=json - DEPENDS+=+jansson -endef - -ifeq ($(BUILD_VARIANT),json) - CONFIGURE_ARGS += --with-json -endif - -define Build/InstallDev - $(INSTALL_DIR) $(1)/usr/lib $(1)/usr/include - $(CP) $(PKG_INSTALL_DIR)/usr/lib/*.so* $(1)/usr/lib/ - $(CP) $(PKG_INSTALL_DIR)/usr/include/nftables $(1)/usr/include/ - $(INSTALL_DIR) $(1)/usr/lib/pkgconfig - $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libnftables.pc \ - $(1)/usr/lib/pkgconfig/ -endef - -define Package/nftables/install/Default - $(INSTALL_DIR) $(1)/usr/sbin - $(CP) $(PKG_INSTALL_DIR)/usr/sbin/nft $(1)/usr/sbin/ - $(INSTALL_DIR) $(1)/usr/lib - $(CP) $(PKG_INSTALL_DIR)/usr/lib/*.so* $(1)/usr/lib/ -endef - -Package/nftables-nojson/install = $(Package/nftables/install/Default) -Package/nftables-json/install = $(Package/nftables/install/Default) - -$(eval $(call BuildPackage,nftables-nojson)) -$(eval $(call BuildPackage,nftables-json)) diff --git a/6.12/package/network/utils/nftables/patches/002-nftables-add-fullcone-expression-support.patch b/6.12/package/network/utils/nftables/patches/002-nftables-add-fullcone-expression-support.patch deleted file mode 100644 index 8a7c57e4..00000000 --- a/6.12/package/network/utils/nftables/patches/002-nftables-add-fullcone-expression-support.patch +++ /dev/null @@ -1,223 +0,0 @@ -From 58c89e8768711a959fdc6e953df3ea2254ff93c1 Mon Sep 17 00:00:00 2001 -From: Syrone Wong -Date: Sat, 9 Apr 2022 00:38:51 +0800 -Subject: [PATCH] nftables: add fullcone expression support - -Signed-off-by: Syrone Wong ---- - include/linux/netfilter/nf_tables.h | 16 ++++++++++ - include/statement.h | 1 + - src/netlink_delinearize.c | 48 +++++++++++++++++++++++++++++ - src/netlink_linearize.c | 7 +++++ - src/parser_bison.y | 28 +++++++++++++++-- - src/scanner.l | 1 + - src/statement.c | 1 + - 7 files changed, 100 insertions(+), 2 deletions(-) - -diff --git a/include/linux/netfilter/nf_tables.h b/include/linux/netfilter/nf_tables.h -index 75df968..beab9d8 100644 ---- a/include/linux/netfilter/nf_tables.h -+++ b/include/linux/netfilter/nf_tables.h -@@ -1409,6 +1409,22 @@ enum nft_masq_attributes { - }; - #define NFTA_MASQ_MAX (__NFTA_MASQ_MAX - 1) - -+/** -+ * enum nft_fullcone_attributes - nf_tables fullcone expression attributes -+ * -+ * @NFTA_FULLCONE_FLAGS: NAT flags (see NF_NAT_RANGE_* in linux/netfilter/nf_nat.h) (NLA_U32) -+ * @NFTA_FULLCONE_REG_PROTO_MIN: source register of proto range start (NLA_U32: nft_registers) -+ * @NFTA_FULLCONE_REG_PROTO_MAX: source register of proto range end (NLA_U32: nft_registers) -+ */ -+enum nft_fullcone_attributes { -+ NFTA_FULLCONE_UNSPEC, -+ NFTA_FULLCONE_FLAGS, -+ NFTA_FULLCONE_REG_PROTO_MIN, -+ NFTA_FULLCONE_REG_PROTO_MAX, -+ __NFTA_FULLCONE_MAX -+}; -+#define NFTA_FULLCONE_MAX (__NFTA_FULLCONE_MAX - 1) -+ - /** - * enum nft_redir_attributes - nf_tables redirect expression netlink attributes - * -diff --git a/include/statement.h b/include/statement.h -index 2a2d300..cbd48dd 100644 ---- a/include/statement.h -+++ b/include/statement.h -@@ -122,6 +122,7 @@ enum nft_nat_etypes { - __NFT_NAT_SNAT = NFT_NAT_SNAT, - __NFT_NAT_DNAT = NFT_NAT_DNAT, - NFT_NAT_MASQ, -+ NFT_NAT_FULLCONE, - NFT_NAT_REDIR, - }; - -diff --git a/src/netlink_delinearize.c b/src/netlink_delinearize.c -index 068c3bb..8513113 100644 ---- a/src/netlink_delinearize.c -+++ b/src/netlink_delinearize.c -@@ -1369,6 +1369,53 @@ static void netlink_parse_masq(struct netlink_parse_ctx *ctx, - stmt_free(stmt); - } - -+static void netlink_parse_fullcone(struct netlink_parse_ctx *ctx, -+ const struct location *loc, -+ const struct nftnl_expr *nle) -+{ -+ enum nft_registers reg1, reg2; -+ struct expr *proto; -+ struct stmt *stmt; -+ uint32_t flags = 0; -+ -+ if (nftnl_expr_is_set(nle, NFTNL_EXPR_FULLCONE_FLAGS)) -+ flags = nftnl_expr_get_u32(nle, NFTNL_EXPR_FULLCONE_FLAGS); -+ -+ stmt = nat_stmt_alloc(loc, NFT_NAT_FULLCONE); -+ stmt->nat.flags = flags; -+ -+ reg1 = netlink_parse_register(nle, NFTNL_EXPR_FULLCONE_REG_PROTO_MIN); -+ if (reg1) { -+ proto = netlink_get_register(ctx, loc, reg1); -+ if (proto == NULL) { -+ netlink_error(ctx, loc, -+ "fullcone statement has no proto expression"); -+ goto out_err; -+ } -+ expr_set_type(proto, &inet_service_type, BYTEORDER_BIG_ENDIAN); -+ stmt->nat.proto = proto; -+ } -+ -+ reg2 = netlink_parse_register(nle, NFTNL_EXPR_FULLCONE_REG_PROTO_MAX); -+ if (reg2 && reg2 != reg1) { -+ proto = netlink_get_register(ctx, loc, reg2); -+ if (proto == NULL) { -+ netlink_error(ctx, loc, -+ "fullcone statement has no proto expression"); -+ goto out_err; -+ } -+ expr_set_type(proto, &inet_service_type, BYTEORDER_BIG_ENDIAN); -+ if (stmt->nat.proto != NULL) -+ proto = range_expr_alloc(loc, stmt->nat.proto, proto); -+ stmt->nat.proto = proto; -+ } -+ -+ ctx->stmt = stmt; -+ return; -+out_err: -+ stmt_free(stmt); -+} -+ - static void netlink_parse_redir(struct netlink_parse_ctx *ctx, - const struct location *loc, - const struct nftnl_expr *nle) -@@ -1787,6 +1834,7 @@ static const struct expr_handler netlink_parsers[] = { - { .name = "tproxy", .parse = netlink_parse_tproxy }, - { .name = "notrack", .parse = netlink_parse_notrack }, - { .name = "masq", .parse = netlink_parse_masq }, -+ { .name = "fullcone", .parse = netlink_parse_fullcone }, - { .name = "redir", .parse = netlink_parse_redir }, - { .name = "dup", .parse = netlink_parse_dup }, - { .name = "queue", .parse = netlink_parse_queue }, -diff --git a/src/netlink_linearize.c b/src/netlink_linearize.c -index c8bbcb7..505eafa 100644 ---- a/src/netlink_linearize.c -+++ b/src/netlink_linearize.c -@@ -1140,6 +1140,13 @@ static void netlink_gen_nat_stmt(struct netlink_linearize_ctx *ctx, - nftnl_reg_pmin = NFTNL_EXPR_MASQ_REG_PROTO_MIN; - nftnl_reg_pmax = NFTNL_EXPR_MASQ_REG_PROTO_MAX; - break; -+ case NFT_NAT_FULLCONE: -+ nle = alloc_nft_expr("fullcone"); -+ -+ nftnl_flag_attr = NFTNL_EXPR_FULLCONE_FLAGS; -+ nftnl_reg_pmin = NFTNL_EXPR_FULLCONE_REG_PROTO_MIN; -+ nftnl_reg_pmax = NFTNL_EXPR_FULLCONE_REG_PROTO_MAX; -+ break; - case NFT_NAT_REDIR: - nle = alloc_nft_expr("redir"); - -diff --git a/src/parser_bison.y b/src/parser_bison.y -index ca5c488..ec9fc9b 100644 ---- a/src/parser_bison.y -+++ b/src/parser_bison.y -@@ -571,6 +571,7 @@ int nft_lex(void *, void *, void *); - %token SNAT "snat" - %token DNAT "dnat" - %token MASQUERADE "masquerade" -+%token FULLCONE "fullcone" - %token REDIRECT "redirect" - %token RANDOM "random" - %token FULLY_RANDOM "fully-random" -@@ -703,8 +704,8 @@ int nft_lex(void *, void *, void *); - %type limit_burst_pkts limit_burst_bytes limit_mode limit_bytes time_unit quota_mode - %type reject_stmt reject_stmt_alloc - %destructor { stmt_free($$); } reject_stmt reject_stmt_alloc --%type nat_stmt nat_stmt_alloc masq_stmt masq_stmt_alloc redir_stmt redir_stmt_alloc --%destructor { stmt_free($$); } nat_stmt nat_stmt_alloc masq_stmt masq_stmt_alloc redir_stmt redir_stmt_alloc -+%type nat_stmt nat_stmt_alloc masq_stmt masq_stmt_alloc fullcone_stmt fullcone_stmt_alloc redir_stmt redir_stmt_alloc -+%destructor { stmt_free($$); } nat_stmt nat_stmt_alloc masq_stmt masq_stmt_alloc fullcone_stmt fullcone_stmt_alloc redir_stmt redir_stmt_alloc - %type nf_nat_flags nf_nat_flag offset_opt - %type tproxy_stmt - %destructor { stmt_free($$); } tproxy_stmt -@@ -2853,6 +2854,7 @@ stmt : verdict_stmt - | queue_stmt - | ct_stmt - | masq_stmt close_scope_nat -+ | fullcone_stmt close_scope_nat - | redir_stmt close_scope_nat - | dup_stmt close_scope_dup - | fwd_stmt close_scope_fwd -@@ -3753,6 +3755,28 @@ masq_stmt_args : TO COLON stmt_expr - } - ; - -+fullcone_stmt : fullcone_stmt_alloc fullcone_stmt_args -+ | fullcone_stmt_alloc -+ ; -+ -+fullcone_stmt_alloc : FULLCONE { $$ = nat_stmt_alloc(&@$, NFT_NAT_FULLCONE); } -+ ; -+ -+fullcone_stmt_args : TO COLON stmt_expr -+ { -+ $0->nat.proto = $3; -+ } -+ | TO COLON stmt_expr nf_nat_flags -+ { -+ $0->nat.proto = $3; -+ $0->nat.flags = $4; -+ } -+ | nf_nat_flags -+ { -+ $0->nat.flags = $1; -+ } -+ ; -+ - redir_stmt : redir_stmt_alloc redir_stmt_arg - | redir_stmt_alloc - ; -diff --git a/src/scanner.l b/src/scanner.l -index 2154281..c389860 100644 ---- a/src/scanner.l -+++ b/src/scanner.l -@@ -453,6 +453,7 @@ addrstring ({macaddr}|{ip4addr}|{ip6addr}) - "snat" { scanner_push_start_cond(yyscanner, SCANSTATE_STMT_NAT); return SNAT; } - "dnat" { scanner_push_start_cond(yyscanner, SCANSTATE_STMT_NAT); return DNAT; } - "masquerade" { scanner_push_start_cond(yyscanner, SCANSTATE_STMT_NAT); return MASQUERADE; } -+"fullcone" { scanner_push_start_cond(yyscanner, SCANSTATE_STMT_NAT); return FULLCONE; } - "redirect" { scanner_push_start_cond(yyscanner, SCANSTATE_STMT_NAT); return REDIRECT; } - "random" { return RANDOM; } - { -diff --git a/src/statement.c b/src/statement.c -index 30caf9c..f4866c2 100644 ---- a/src/statement.c -+++ b/src/statement.c -@@ -650,6 +650,7 @@ const char *nat_etype2str(enum nft_nat_etypes type) - [NFT_NAT_SNAT] = "snat", - [NFT_NAT_DNAT] = "dnat", - [NFT_NAT_MASQ] = "masquerade", -+ [NFT_NAT_FULLCONE] = "fullcone", - [NFT_NAT_REDIR] = "redirect", - }; - diff --git a/6.12/package/system/apk/patches/0090-remove-test.patch b/6.12/package/system/apk/patches/0090-remove-test.patch deleted file mode 100644 index a88fe792..00000000 --- a/6.12/package/system/apk/patches/0090-remove-test.patch +++ /dev/null @@ -1,7 +0,0 @@ ---- a/meson.build 2024-12-06 09:22:04.231554103 +0100 -+++ b/meson.build 2024-12-06 09:22:10.239461416 +0100 -@@ -45,4 +45,3 @@ - if(lua_dep.found()) - subdir('lua') - endif --subdir('test') diff --git a/6.12/target/linux/bcm27xx/bcm2708/config-6.12 b/6.12/target/linux/bcm27xx/bcm2708/config-6.12 deleted file mode 100644 index 68ccc71e..00000000 --- a/6.12/target/linux/bcm27xx/bcm2708/config-6.12 +++ /dev/null @@ -1,379 +0,0 @@ -# CONFIG_AIO is not set -CONFIG_ALIGNMENT_TRAP=y -# CONFIG_AMD_QDMA is not set -CONFIG_APERTURE_HELPERS=y -CONFIG_ARCH_32BIT_OFF_T=y -CONFIG_ARCH_BCM=y -CONFIG_ARCH_BCM2835=y -CONFIG_ARCH_HIBERNATION_POSSIBLE=y -CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y -CONFIG_ARCH_MMAP_RND_BITS=16 -CONFIG_ARCH_MMAP_RND_BITS_MAX=16 -CONFIG_ARCH_MMAP_RND_BITS_MIN=8 -CONFIG_ARCH_MULTIPLATFORM=y -CONFIG_ARCH_MULTI_V6=y -CONFIG_ARCH_MULTI_V6_V7=y -CONFIG_ARCH_OPTIONAL_KERNEL_RWX=y -CONFIG_ARCH_SELECT_MEMORY_MODEL=y -CONFIG_ARM=y -CONFIG_ARM_CPU_SUSPEND=y -# CONFIG_ARM_DEBUG_WX is not set -CONFIG_ARM_ERRATA_411920=y -CONFIG_ARM_HAS_GROUP_RELOCS=y -CONFIG_ARM_L1_CACHE_SHIFT=5 -# CONFIG_ARM_MHU_V2 is not set -CONFIG_ARM_PAN=y -CONFIG_ARM_PATCH_PHYS_VIRT=y -CONFIG_ARM_RASPBERRYPI_CPUFREQ=y -CONFIG_ARM_THUMB=y -CONFIG_ARM_TIMER_SP804=y -CONFIG_ARM_UNWIND=y -CONFIG_AUTO_ZRELADDR=y -# CONFIG_BATTERY_MAX1720X is not set -CONFIG_BCM2708_VCMEM=y -# CONFIG_BCM2711_THERMAL is not set -CONFIG_BCM2835_FAST_MEMCPY=y -CONFIG_BCM2835_MBOX=y -CONFIG_BCM2835_POWER=y -# CONFIG_BCM2835_SMI is not set -CONFIG_BCM2835_THERMAL=y -CONFIG_BCM2835_TIMER=y -CONFIG_BCM2835_VCHIQ=y -# CONFIG_BCM2835_VCHIQ_MMAL is not set -CONFIG_BCM2835_WDT=y -CONFIG_BCM_VCIO=y -# CONFIG_BCM_VC_SM_CMA is not set -CONFIG_BCM_VIDEOCORE=y -CONFIG_BINFMT_FLAT_ARGVP_ENVP_ON_STACK=y -# CONFIG_BLK_DEV_INITRD is not set -CONFIG_BLK_DEV_LOOP=y -CONFIG_BLK_DEV_RAM=y -CONFIG_BLK_DEV_RAM_COUNT=16 -CONFIG_BLK_DEV_RAM_SIZE=4096 -CONFIG_BLK_DEV_SD=y -CONFIG_BLK_PM=y -CONFIG_BRCMSTB_L2_IRQ=y -CONFIG_BRCM_CHAR_DRIVERS=y -CONFIG_BUFFER_HEAD=y -# CONFIG_CACHE_L2X0 is not set -CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y -CONFIG_CLKSRC_MMIO=y -CONFIG_CLK_BCM2711_DVP=y -CONFIG_CLK_BCM2835=y -CONFIG_CLK_RASPBERRYPI=y -CONFIG_CMA=y -CONFIG_CMA_ALIGNMENT=8 -CONFIG_CMA_AREAS=7 -# CONFIG_CMA_DEBUGFS is not set -CONFIG_CMA_SIZE_MBYTES=5 -# CONFIG_CMA_SIZE_SEL_MAX is not set -CONFIG_CMA_SIZE_SEL_MBYTES=y -# CONFIG_CMA_SIZE_SEL_MIN is not set -# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set -# CONFIG_CMA_SYSFS is not set -CONFIG_COMPAT_32BIT_TIME=y -CONFIG_CONFIGFS_FS=y -CONFIG_CONSOLE_TRANSLATIONS=y -CONFIG_CONTIG_ALLOC=y -CONFIG_CPUFREQ_DT=y -CONFIG_CPUFREQ_DT_PLATDEV=y -CONFIG_CPU_32v6=y -CONFIG_CPU_32v6K=y -CONFIG_CPU_ABRT_EV6=y -# CONFIG_CPU_BIG_ENDIAN is not set -CONFIG_CPU_CACHE_V6=y -CONFIG_CPU_CACHE_VIPT=y -CONFIG_CPU_COPY_V6=y -CONFIG_CPU_CP15=y -CONFIG_CPU_CP15_MMU=y -CONFIG_CPU_FREQ=y -CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y -# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set -CONFIG_CPU_FREQ_GOV_ATTR_SET=y -CONFIG_CPU_FREQ_GOV_COMMON=y -CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y -CONFIG_CPU_FREQ_GOV_ONDEMAND=y -CONFIG_CPU_FREQ_GOV_PERFORMANCE=y -CONFIG_CPU_FREQ_GOV_POWERSAVE=y -CONFIG_CPU_FREQ_GOV_USERSPACE=y -CONFIG_CPU_FREQ_STAT=y -CONFIG_CPU_HAS_ASID=y -CONFIG_CPU_IDLE=y -CONFIG_CPU_IDLE_GOV_LADDER=y -CONFIG_CPU_IDLE_GOV_MENU=y -CONFIG_CPU_LITTLE_ENDIAN=y -CONFIG_CPU_PABRT_V6=y -CONFIG_CPU_PM=y -CONFIG_CPU_THUMB_CAPABLE=y -CONFIG_CPU_TLB_V6=y -CONFIG_CPU_V6K=y -CONFIG_CRC16=y -CONFIG_CRYPTO_CRC32=y -CONFIG_CRYPTO_CRC32C=y -CONFIG_CURRENT_POINTER_IN_TPIDRURO=y -CONFIG_DEBUG_BUGVERBOSE=y -CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S" -CONFIG_DMABUF_HEAPS=y -CONFIG_DMABUF_HEAPS_CMA=y -CONFIG_DMABUF_HEAPS_SYSTEM=y -CONFIG_DMADEVICES=y -CONFIG_DMA_BCM2708=y -CONFIG_DMA_BCM2835=y -CONFIG_DMA_CMA=y -CONFIG_DMA_ENGINE=y -CONFIG_DMA_OF=y -CONFIG_DMA_OPS_HELPERS=y -CONFIG_DMA_SHARED_BUFFER=y -CONFIG_DMA_VIRTUAL_CHANNELS=y -CONFIG_DNOTIFY=y -# CONFIG_DP83TG720_PHY is not set -CONFIG_DUMMY_CONSOLE=y -CONFIG_EDAC_ATOMIC_SCRUB=y -CONFIG_EXT4_FS=y -CONFIG_EXTCON=y -CONFIG_F2FS_FS=y -CONFIG_FB=y -CONFIG_FB_BCM2708=y -CONFIG_FB_CFB_COPYAREA=y -CONFIG_FB_CFB_FILLRECT=y -CONFIG_FB_CFB_IMAGEBLIT=y -CONFIG_FB_CORE=y -CONFIG_FB_DEVICE=y -CONFIG_FB_IOMEM_FOPS=y -CONFIG_FB_IOMEM_HELPERS=y -# CONFIG_FB_RPISENSE is not set -CONFIG_FB_SIMPLE=y -CONFIG_FIQ=y -CONFIG_FIXED_PHY=y -CONFIG_FONT_8x16=y -CONFIG_FONT_8x8=y -CONFIG_FONT_SUPPORT=y -CONFIG_FORCE_NR_CPUS=y -CONFIG_FRAMEBUFFER_CONSOLE=y -# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set -CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y -CONFIG_FREEZER=y -CONFIG_FS_MBCACHE=y -# CONFIG_FUEL_GAUGE_MM8013 is not set -CONFIG_FUNCTION_ALIGNMENT=0 -CONFIG_FWNODE_MDIO=y -CONFIG_FW_CACHE=y -CONFIG_GENERIC_IRQ_CHIP=y -CONFIG_GENERIC_IRQ_MULTI_HANDLER=y -CONFIG_GENERIC_PINCONF=y -CONFIG_GENERIC_PINCTRL_GROUPS=y -CONFIG_GENERIC_PINMUX_FUNCTIONS=y -CONFIG_GPIOLIB_IRQCHIP=y -# CONFIG_GPIO_BCM_VIRT is not set -# CONFIG_GPIO_PWM is not set -CONFIG_GPIO_RASPBERRYPI_EXP=y -CONFIG_HAS_IOPORT_MAP=y -CONFIG_HW_RANDOM=y -CONFIG_HW_RANDOM_BCM2835=y -CONFIG_HZ_FIXED=0 -# CONFIG_HZ_PERIODIC is not set -CONFIG_I2C=y -# CONFIG_I2C_BCM2708 is not set -CONFIG_I2C_BOARDINFO=y -# CONFIG_I2C_DESIGNWARE_CORE is not set -CONFIG_INPUT=y -CONFIG_INPUT_MOUSEDEV=y -# CONFIG_INPUT_MOUSEDEV_PSAUX is not set -CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 -CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 -CONFIG_IRQSTACKS=y -CONFIG_JBD2=y -CONFIG_KERNEL_GZIP=y -# CONFIG_KERNEL_XZ is not set -CONFIG_LEDS_GPIO=y -# CONFIG_LEDS_KTD202X is not set -# CONFIG_LEDS_NCP5623 is not set -CONFIG_LEDS_PWM=y -CONFIG_LEDS_TRIGGER_ACTPWR=y -CONFIG_LEDS_TRIGGER_INPUT=y -# CONFIG_LEDS_TRIGGER_INPUT_EVENTS is not set -CONFIG_LOGO=y -CONFIG_LOGO_LINUX_CLUT224=y -# CONFIG_LOGO_LINUX_MONO is not set -# CONFIG_LOGO_LINUX_VGA16 is not set -CONFIG_MAC_PARTITION=y -CONFIG_MAGIC_SYSRQ=y -CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1f6 -CONFIG_MAILBOX=y -# CONFIG_MAILBOX_TEST is not set -CONFIG_MDIO_BUS=y -CONFIG_MDIO_DEVICE=y -CONFIG_MDIO_DEVRES=y -CONFIG_MEDIA_CAMERA_SUPPORT=y -CONFIG_MEDIA_CONTROLLER=y -CONFIG_MEDIA_PLATFORM_DRIVERS=y -CONFIG_MEDIA_PLATFORM_SUPPORT=y -CONFIG_MEDIA_SUPPORT=y -CONFIG_MEDIA_SUPPORT_FILTER=y -CONFIG_MEMORY_ISOLATION=y -# CONFIG_MFD_88PM886_PMIC is not set -# CONFIG_MFD_ADP5585 is not set -CONFIG_MFD_CORE=y -# CONFIG_MFD_CS40L50_I2C is not set -# CONFIG_MFD_CS40L50_SPI is not set -# CONFIG_MFD_RASPBERRYPI_POE_HAT is not set -# CONFIG_MFD_ROHM_BD96801 is not set -CONFIG_MFD_SYSCON=y -CONFIG_MIGHT_HAVE_CACHE_L2X0=y -CONFIG_MMC=y -# CONFIG_MMC_BCM2835 is not set -CONFIG_MMC_BCM2835_DMA=y -CONFIG_MMC_BCM2835_MMC=y -CONFIG_MMC_BCM2835_PIO_DMA_BARRIER=2 -CONFIG_MMC_BCM2835_SDHOST=y -CONFIG_MMC_BLOCK=y -CONFIG_MMC_BLOCK_MINORS=32 -CONFIG_MMC_HSQ=y -CONFIG_MMC_SDHCI=y -CONFIG_MMC_SDHCI_PLTFM=y -CONFIG_MODULES_USE_ELF_REL=y -# CONFIG_MTD is not set -CONFIG_NEED_PER_CPU_KM=y -CONFIG_NET_DEVMEM=y -CONFIG_NET_SELFTESTS=y -CONFIG_NLS=y -CONFIG_NLS_ASCII=y -CONFIG_NOP_USB_XCEIV=y -CONFIG_NO_HZ=y -CONFIG_NO_HZ_COMMON=y -CONFIG_NO_HZ_IDLE=y -CONFIG_NVMEM=y -CONFIG_NVMEM_LAYOUTS=y -CONFIG_NVMEM_RASPBERRYPI_OTP=y -CONFIG_OF_CONFIGFS=y -CONFIG_OF_DYNAMIC=y -CONFIG_OF_MDIO=y -CONFIG_OF_OVERLAY=y -CONFIG_OF_RESOLVE=y -CONFIG_OLD_SIGACTION=y -CONFIG_OLD_SIGSUSPEND3=y -CONFIG_PAGE_OFFSET=0xC0000000 -CONFIG_PERF_USE_VMALLOC=y -CONFIG_PGTABLE_LEVELS=2 -CONFIG_PHYLIB=y -CONFIG_PHYLIB_LEDS=y -CONFIG_PINCTRL=y -# CONFIG_PINCTRL_AW9523 is not set -# CONFIG_PINCTRL_BCM2712 is not set -CONFIG_PINCTRL_BCM2835=y -# CONFIG_PINCTRL_RP1 is not set -CONFIG_PM=y -CONFIG_PM_CLK=y -CONFIG_PM_GENERIC_DOMAINS=y -CONFIG_PM_GENERIC_DOMAINS_OF=y -CONFIG_PM_GENERIC_DOMAINS_SLEEP=y -CONFIG_PM_OPP=y -CONFIG_PM_SLEEP=y -CONFIG_PRINTK_TIME=y -# CONFIG_PTP_1588_CLOCK_FC3W is not set -# CONFIG_PTP_1588_CLOCK_IDT82P33 is not set -# CONFIG_PTP_1588_CLOCK_IDTCM is not set -CONFIG_PWM=y -CONFIG_PWM_BCM2835=y -# CONFIG_PWM_GPIO is not set -# CONFIG_PWM_RP1 is not set -CONFIG_RASPBERRYPI_FIRMWARE=y -CONFIG_RASPBERRYPI_GPIOMEM=y -CONFIG_RASPBERRYPI_POWER=y -# CONFIG_RAVE_SP_CORE is not set -CONFIG_REGMAP=y -CONFIG_REGMAP_MMIO=y -CONFIG_REGULATOR=y -CONFIG_REGULATOR_FIXED_VOLTAGE=y -# CONFIG_REGULATOR_MAX77503 is not set -# CONFIG_REGULATOR_NETLINK_EVENTS is not set -# CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_V2 is not set -CONFIG_RESET_CONTROLLER=y -# CONFIG_RESET_GPIO is not set -# CONFIG_RESET_RASPBERRYPI is not set -CONFIG_RESET_SIMPLE=y -# CONFIG_RPI_POE_POWER is not set -# CONFIG_RPMB is not set -# CONFIG_RTC_DRV_MAX31335 is not set -# CONFIG_RTC_DRV_RX8111 is not set -# CONFIG_RTC_DRV_SD2405AL is not set -CONFIG_SCSI=y -CONFIG_SCSI_COMMON=y -# CONFIG_SCSI_LOWLEVEL is not set -# CONFIG_SCSI_PROC_FS is not set -# CONFIG_SENSORS_CHIPCAP2 is not set -# CONFIG_SENSORS_LTC2991 is not set -# CONFIG_SENSORS_LTC4282 is not set -# CONFIG_SENSORS_POWERZ is not set -# CONFIG_SENSORS_PT5161L is not set -# CONFIG_SENSORS_SPD5118 is not set -CONFIG_SERIAL_8250_BCM2835AUX=y -# CONFIG_SERIAL_8250_DMA is not set -CONFIG_SERIAL_8250_EXTENDED=y -CONFIG_SERIAL_8250_NR_UARTS=1 -CONFIG_SERIAL_8250_RUNTIME_UARTS=0 -CONFIG_SERIAL_8250_SHARE_IRQ=y -CONFIG_SERIAL_AMBA_PL011=y -CONFIG_SERIAL_AMBA_PL011_CONSOLE=y -CONFIG_SERIAL_DEV_BUS=y -# CONFIG_SERIAL_DEV_CTRL_TTYPORT is not set -CONFIG_SERIAL_OF_PLATFORM=y -CONFIG_SG_POOL=y -CONFIG_SMSC_PHY=y -# CONFIG_STRIP_ASM_SYMS is not set -CONFIG_SUSPEND=y -CONFIG_SUSPEND_FREEZER=y -CONFIG_SWPHY=y -CONFIG_SYS_SUPPORTS_APM_EMULATION=y -# CONFIG_TEXTSEARCH is not set -CONFIG_THERMAL=y -# CONFIG_THERMAL_CORE_TESTING is not set -# CONFIG_THERMAL_DEBUGFS is not set -CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y -CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 -CONFIG_THERMAL_GOV_STEP_WISE=y -CONFIG_THERMAL_OF=y -CONFIG_TINY_SRCU=y -CONFIG_UEVENT_HELPER_PATH="" -# CONFIG_UID16 is not set -CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h" -CONFIG_UNWINDER_ARM=y -CONFIG_USB=y -CONFIG_USB_ANNOUNCE_NEW_DEVICES=y -CONFIG_USB_COMMON=y -CONFIG_USB_DEFAULT_AUTHORIZATION_MODE=1 -CONFIG_USB_DWCOTG=y -CONFIG_USB_NET_DRIVERS=y -CONFIG_USB_NET_SMSC95XX=y -# CONFIG_USB_ONBOARD_DEV is not set -CONFIG_USB_PHY=y -CONFIG_USB_STORAGE=y -CONFIG_USB_SUPPORT=y -CONFIG_USB_UAS=y -CONFIG_USB_USBNET=y -CONFIG_USE_OF=y -CONFIG_VCHIQ_CDEV=y -CONFIG_VFP=y -CONFIG_VIDEO=y -# CONFIG_VIDEO_AD5398 is not set -# CONFIG_VIDEO_BCM2835_UNICAM is not set -# CONFIG_VIDEO_BCM2835_UNICAM_LEGACY is not set -# CONFIG_VIDEO_BU64754 is not set -# CONFIG_VIDEO_CODEC_BCM2835 is not set -CONFIG_VIDEO_DEV=y -# CONFIG_VIDEO_IRS1125 is not set -# CONFIG_VIDEO_ISP_BCM2835 is not set -# CONFIG_VIDEO_MAX96714 is not set -# CONFIG_VIDEO_MAX96717 is not set -# CONFIG_VIDEO_RASPBERRYPI_PISP_BE is not set -# CONFIG_VIDEO_RP1_CFE is not set -# CONFIG_VIDEO_THP7312 is not set -CONFIG_VIDEO_V4L2_I2C=y -CONFIG_VT=y -CONFIG_VT_CONSOLE=y -CONFIG_VT_CONSOLE_SLEEP=y -CONFIG_VT_HW_CONSOLE_BINDING=y -CONFIG_WATCHDOG_CORE=y -CONFIG_XZ_DEC_ARM=y -CONFIG_ZBOOT_ROM_BSS=0x0 -CONFIG_ZBOOT_ROM_TEXT=0x0 diff --git a/6.12/target/linux/bcm27xx/bcm2709/config-6.12 b/6.12/target/linux/bcm27xx/bcm2709/config-6.12 deleted file mode 100644 index 0329efb2..00000000 --- a/6.12/target/linux/bcm27xx/bcm2709/config-6.12 +++ /dev/null @@ -1,457 +0,0 @@ -# CONFIG_AIO is not set -CONFIG_ALIGNMENT_TRAP=y -# CONFIG_AMD_QDMA is not set -CONFIG_APERTURE_HELPERS=y -CONFIG_ARCH_32BIT_OFF_T=y -CONFIG_ARCH_BCM=y -CONFIG_ARCH_BCM2835=y -CONFIG_ARCH_HIBERNATION_POSSIBLE=y -CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y -CONFIG_ARCH_MMAP_RND_BITS=16 -CONFIG_ARCH_MMAP_RND_BITS_MAX=16 -CONFIG_ARCH_MMAP_RND_BITS_MIN=8 -CONFIG_ARCH_MULTIPLATFORM=y -CONFIG_ARCH_MULTI_V6_V7=y -CONFIG_ARCH_MULTI_V7=y -CONFIG_ARCH_OPTIONAL_KERNEL_RWX=y -CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT=y -CONFIG_ARCH_SELECT_MEMORY_MODEL=y -CONFIG_ARM=y -CONFIG_ARM_CPU_SUSPEND=y -# CONFIG_ARM_DEBUG_WX is not set -CONFIG_ARM_HAS_GROUP_RELOCS=y -CONFIG_ARM_L1_CACHE_SHIFT=6 -CONFIG_ARM_L1_CACHE_SHIFT_6=y -CONFIG_ARM_LPAE=y -# CONFIG_ARM_MHU_V2 is not set -CONFIG_ARM_PAN=y -CONFIG_ARM_PATCH_IDIV=y -CONFIG_ARM_PATCH_PHYS_VIRT=y -CONFIG_ARM_RASPBERRYPI_CPUFREQ=y -CONFIG_ARM_THUMB=y -CONFIG_ARM_TIMER_SP804=y -CONFIG_ARM_UNWIND=y -CONFIG_ARM_VIRT_EXT=y -CONFIG_ASSOCIATIVE_ARRAY=y -CONFIG_AUTO_ZRELADDR=y -# CONFIG_BATTERY_MAX1720X is not set -CONFIG_BCM2708_VCMEM=y -CONFIG_BCM2711_THERMAL=y -CONFIG_BCM2835_MBOX=y -CONFIG_BCM2835_POWER=y -# CONFIG_BCM2835_SMI is not set -CONFIG_BCM2835_THERMAL=y -CONFIG_BCM2835_TIMER=y -CONFIG_BCM2835_VCHIQ=y -# CONFIG_BCM2835_VCHIQ_MMAL is not set -CONFIG_BCM2835_WDT=y -CONFIG_BCM7XXX_PHY=y -CONFIG_BCMGENET=y -CONFIG_BCM_NET_PHYLIB=y -CONFIG_BCM_VCIO=y -# CONFIG_BCM_VC_SM_CMA is not set -CONFIG_BCM_VIDEOCORE=y -CONFIG_BINFMT_FLAT_ARGVP_ENVP_ON_STACK=y -# CONFIG_BLK_DEV_INITRD is not set -CONFIG_BLK_DEV_LOOP=y -CONFIG_BLK_DEV_RAM=y -CONFIG_BLK_DEV_RAM_COUNT=16 -CONFIG_BLK_DEV_RAM_SIZE=4096 -CONFIG_BLK_DEV_SD=y -CONFIG_BLK_MQ_PCI=y -CONFIG_BLK_PM=y -CONFIG_BOUNCE=y -CONFIG_BRCMSTB_L2_IRQ=y -CONFIG_BRCM_CHAR_DRIVERS=y -CONFIG_BROADCOM_PHY=y -CONFIG_BUFFER_HEAD=y -# CONFIG_CACHE_L2X0 is not set -CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y -CONFIG_CLKSRC_MMIO=y -CONFIG_CLK_BCM2711_DVP=y -CONFIG_CLK_BCM2835=y -CONFIG_CLK_RASPBERRYPI=y -CONFIG_CMA=y -CONFIG_CMA_ALIGNMENT=8 -CONFIG_CMA_AREAS=7 -# CONFIG_CMA_DEBUGFS is not set -CONFIG_CMA_SIZE_MBYTES=5 -# CONFIG_CMA_SIZE_SEL_MAX is not set -CONFIG_CMA_SIZE_SEL_MBYTES=y -# CONFIG_CMA_SIZE_SEL_MIN is not set -# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set -# CONFIG_CMA_SYSFS is not set -# CONFIG_COMMON_CLK_RP1 is not set -CONFIG_COMPAT_32BIT_TIME=y -CONFIG_CONFIGFS_FS=y -CONFIG_CONSOLE_TRANSLATIONS=y -CONFIG_CONTIG_ALLOC=y -CONFIG_CPUFREQ_DT=y -CONFIG_CPUFREQ_DT_PLATDEV=y -CONFIG_CPU_32v6K=y -CONFIG_CPU_32v7=y -CONFIG_CPU_ABRT_EV7=y -# CONFIG_CPU_BIG_ENDIAN is not set -CONFIG_CPU_CACHE_V7=y -CONFIG_CPU_CACHE_VIPT=y -CONFIG_CPU_COPY_V6=y -CONFIG_CPU_CP15=y -CONFIG_CPU_CP15_MMU=y -CONFIG_CPU_FREQ=y -CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y -# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set -CONFIG_CPU_FREQ_GOV_ATTR_SET=y -CONFIG_CPU_FREQ_GOV_COMMON=y -CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y -CONFIG_CPU_FREQ_GOV_ONDEMAND=y -CONFIG_CPU_FREQ_GOV_PERFORMANCE=y -CONFIG_CPU_FREQ_GOV_POWERSAVE=y -CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y -CONFIG_CPU_FREQ_GOV_USERSPACE=y -CONFIG_CPU_FREQ_STAT=y -CONFIG_CPU_HAS_ASID=y -CONFIG_CPU_IDLE=y -CONFIG_CPU_IDLE_GOV_LADDER=y -CONFIG_CPU_IDLE_GOV_MENU=y -CONFIG_CPU_LITTLE_ENDIAN=y -CONFIG_CPU_PABRT_V7=y -CONFIG_CPU_PM=y -CONFIG_CPU_SPECTRE=y -CONFIG_CPU_THUMB_CAPABLE=y -CONFIG_CPU_TLB_V7=y -CONFIG_CPU_TTBR0_PAN=y -CONFIG_CPU_V7=y -CONFIG_CRC16=y -CONFIG_CRYPTO_CBC=y -CONFIG_CRYPTO_CRC32=y -CONFIG_CRYPTO_CRC32C=y -CONFIG_CRYPTO_CTS=y -CONFIG_CRYPTO_DRBG=y -CONFIG_CRYPTO_DRBG_HMAC=y -CONFIG_CRYPTO_DRBG_MENU=y -CONFIG_CRYPTO_GENIV=y -CONFIG_CRYPTO_HMAC=y -CONFIG_CRYPTO_JITTERENTROPY=y -CONFIG_CRYPTO_JITTERENTROPY_MEMORY_BLOCKS=64 -CONFIG_CRYPTO_JITTERENTROPY_MEMORY_BLOCKSIZE=32 -CONFIG_CRYPTO_JITTERENTROPY_OSR=1 -CONFIG_CRYPTO_LIB_SHA256=y -CONFIG_CRYPTO_RNG=y -CONFIG_CRYPTO_RNG2=y -CONFIG_CRYPTO_RNG_DEFAULT=y -CONFIG_CRYPTO_SEQIV=y -CONFIG_CRYPTO_SHA256=y -CONFIG_CRYPTO_SHA3=y -CONFIG_CRYPTO_SHA512=y -CONFIG_CRYPTO_XTS=y -CONFIG_CURRENT_POINTER_IN_TPIDRURO=y -CONFIG_DEBUG_BUGVERBOSE=y -CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S" -CONFIG_DMABUF_HEAPS=y -CONFIG_DMABUF_HEAPS_CMA=y -CONFIG_DMABUF_HEAPS_SYSTEM=y -CONFIG_DMADEVICES=y -CONFIG_DMA_BCM2708=y -CONFIG_DMA_BCM2835=y -CONFIG_DMA_CMA=y -CONFIG_DMA_ENGINE=y -CONFIG_DMA_OF=y -CONFIG_DMA_OPS_HELPERS=y -CONFIG_DMA_SHARED_BUFFER=y -CONFIG_DMA_VIRTUAL_CHANNELS=y -CONFIG_DNOTIFY=y -# CONFIG_DP83TG720_PHY is not set -CONFIG_DUMMY_CONSOLE=y -CONFIG_EDAC_ATOMIC_SCRUB=y -CONFIG_EXT4_FS=y -CONFIG_EXTCON=y -CONFIG_F2FS_FS=y -CONFIG_FB=y -CONFIG_FB_BCM2708=y -CONFIG_FB_CFB_COPYAREA=y -CONFIG_FB_CFB_FILLRECT=y -CONFIG_FB_CFB_IMAGEBLIT=y -CONFIG_FB_CORE=y -CONFIG_FB_DEVICE=y -CONFIG_FB_IOMEM_FOPS=y -CONFIG_FB_IOMEM_HELPERS=y -# CONFIG_FB_RPISENSE is not set -CONFIG_FB_SIMPLE=y -CONFIG_FIQ=y -CONFIG_FIXED_PHY=y -CONFIG_FONT_8x16=y -CONFIG_FONT_8x8=y -CONFIG_FONT_SUPPORT=y -CONFIG_FRAMEBUFFER_CONSOLE=y -# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set -CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y -CONFIG_FREEZER=y -CONFIG_FS_ENCRYPTION=y -CONFIG_FS_ENCRYPTION_ALGS=y -CONFIG_FS_MBCACHE=y -# CONFIG_FUEL_GAUGE_MM8013 is not set -CONFIG_FUNCTION_ALIGNMENT=0 -CONFIG_FWNODE_MDIO=y -CONFIG_FW_CACHE=y -CONFIG_GENERIC_IRQ_CHIP=y -CONFIG_GENERIC_IRQ_MIGRATION=y -CONFIG_GENERIC_IRQ_MULTI_HANDLER=y -CONFIG_GENERIC_PHY=y -CONFIG_GENERIC_PINCONF=y -CONFIG_GENERIC_PINCTRL_GROUPS=y -CONFIG_GENERIC_PINMUX_FUNCTIONS=y -CONFIG_GENERIC_VDSO_32=y -CONFIG_GPIOLIB_IRQCHIP=y -CONFIG_GPIO_BCM_VIRT=y -# CONFIG_GPIO_PWM is not set -CONFIG_GPIO_RASPBERRYPI_EXP=y -# CONFIG_HARDEN_BRANCH_HISTORY is not set -# CONFIG_HARDEN_BRANCH_PREDICTOR is not set -CONFIG_HAS_IOPORT_MAP=y -CONFIG_HAVE_SMP=y -CONFIG_HIGHMEM=y -CONFIG_HIGHPTE=y -CONFIG_HOTPLUG_CORE_SYNC=y -CONFIG_HOTPLUG_CORE_SYNC_DEAD=y -CONFIG_HOTPLUG_CPU=y -CONFIG_HW_RANDOM=y -CONFIG_HW_RANDOM_BCM2835=y -CONFIG_HW_RANDOM_IPROC_RNG200=y -CONFIG_HZ_FIXED=0 -# CONFIG_HZ_PERIODIC is not set -CONFIG_I2C=y -# CONFIG_I2C_BCM2708 is not set -CONFIG_I2C_BOARDINFO=y -# CONFIG_I2C_DESIGNWARE_CORE is not set -# CONFIG_IDPF is not set -CONFIG_INPUT=y -CONFIG_INPUT_MOUSEDEV=y -# CONFIG_INPUT_MOUSEDEV_PSAUX is not set -CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 -CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 -CONFIG_IRQSTACKS=y -CONFIG_JBD2=y -# CONFIG_KEBA_CP500 is not set -CONFIG_KEYS=y -CONFIG_KMAP_LOCAL=y -CONFIG_KMAP_LOCAL_NON_LINEAR_PTE_ARRAY=y -CONFIG_LEDS_GPIO=y -# CONFIG_LEDS_KTD202X is not set -# CONFIG_LEDS_NCP5623 is not set -CONFIG_LEDS_PWM=y -CONFIG_LEDS_TRIGGER_ACTPWR=y -CONFIG_LEDS_TRIGGER_INPUT=y -# CONFIG_LEDS_TRIGGER_INPUT_EVENTS is not set -CONFIG_LOGO=y -CONFIG_LOGO_LINUX_CLUT224=y -# CONFIG_LOGO_LINUX_MONO is not set -# CONFIG_LOGO_LINUX_VGA16 is not set -CONFIG_MAC_PARTITION=y -CONFIG_MAGIC_SYSRQ=y -CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1f6 -CONFIG_MAILBOX=y -# CONFIG_MAILBOX_TEST is not set -CONFIG_MDIO_BCM_UNIMAC=y -CONFIG_MDIO_BUS=y -CONFIG_MDIO_DEVICE=y -CONFIG_MDIO_DEVRES=y -CONFIG_MEDIA_CAMERA_SUPPORT=y -CONFIG_MEDIA_CONTROLLER=y -CONFIG_MEDIA_PLATFORM_DRIVERS=y -CONFIG_MEDIA_PLATFORM_SUPPORT=y -CONFIG_MEDIA_SUPPORT=y -CONFIG_MEDIA_SUPPORT_FILTER=y -CONFIG_MEMORY_ISOLATION=y -# CONFIG_MFD_88PM886_PMIC is not set -# CONFIG_MFD_ADP5585 is not set -CONFIG_MFD_CORE=y -# CONFIG_MFD_CS40L50_I2C is not set -# CONFIG_MFD_RASPBERRYPI_POE_HAT is not set -# CONFIG_MFD_ROHM_BD96801 is not set -# CONFIG_MFD_RP1 is not set -CONFIG_MFD_SYSCON=y -CONFIG_MICROCHIP_PHY=y -CONFIG_MIGHT_HAVE_CACHE_L2X0=y -CONFIG_MMC=y -# CONFIG_MMC_BCM2835 is not set -CONFIG_MMC_BCM2835_DMA=y -CONFIG_MMC_BCM2835_MMC=y -CONFIG_MMC_BCM2835_PIO_DMA_BARRIER=2 -CONFIG_MMC_BCM2835_SDHOST=y -CONFIG_MMC_BLOCK=y -CONFIG_MMC_BLOCK_MINORS=32 -CONFIG_MMC_HSQ=y -CONFIG_MMC_SDHCI=y -CONFIG_MMC_SDHCI_IO_ACCESSORS=y -CONFIG_MMC_SDHCI_IPROC=y -# CONFIG_MMC_SDHCI_PCI is not set -CONFIG_MMC_SDHCI_PLTFM=y -CONFIG_MODULES_USE_ELF_REL=y -# CONFIG_MTD is not set -CONFIG_NEED_SRCU_NMI_SAFE=y -CONFIG_NEON=y -CONFIG_NET_DEVMEM=y -CONFIG_NET_PTP_CLASSIFY=y -CONFIG_NET_SELFTESTS=y -CONFIG_NLS=y -CONFIG_NLS_ASCII=y -CONFIG_NOP_USB_XCEIV=y -CONFIG_NO_HZ=y -CONFIG_NO_HZ_COMMON=y -CONFIG_NO_HZ_IDLE=y -CONFIG_NR_CPUS=4 -CONFIG_NVMEM=y -CONFIG_NVMEM_LAYOUTS=y -CONFIG_NVMEM_RASPBERRYPI_OTP=y -CONFIG_OF_CONFIGFS=y -CONFIG_OF_DYNAMIC=y -CONFIG_OF_MDIO=y -CONFIG_OF_OVERLAY=y -CONFIG_OF_RESOLVE=y -CONFIG_OLD_SIGACTION=y -CONFIG_OLD_SIGSUSPEND3=y -CONFIG_PAGE_OFFSET=0xC0000000 -CONFIG_PCI=y -CONFIG_PCIEAER=y -CONFIG_PCIEPORTBUS=y -CONFIG_PCIE_BRCMSTB=y -CONFIG_PCIE_PME=y -CONFIG_PCI_DOMAINS=y -CONFIG_PCI_DOMAINS_GENERIC=y -CONFIG_PCI_MSI=y -# CONFIG_PCI_NPEM is not set -CONFIG_PERF_USE_VMALLOC=y -CONFIG_PGTABLE_LEVELS=3 -CONFIG_PHYLIB=y -CONFIG_PHYLIB_LEDS=y -CONFIG_PINCTRL=y -# CONFIG_PINCTRL_AW9523 is not set -# CONFIG_PINCTRL_BCM2712 is not set -CONFIG_PINCTRL_BCM2835=y -# CONFIG_PINCTRL_RP1 is not set -CONFIG_PM=y -CONFIG_PM_CLK=y -CONFIG_PM_GENERIC_DOMAINS=y -CONFIG_PM_GENERIC_DOMAINS_OF=y -CONFIG_PM_GENERIC_DOMAINS_SLEEP=y -CONFIG_PM_OPP=y -CONFIG_PM_SLEEP=y -CONFIG_PM_SLEEP_SMP=y -CONFIG_PPS=y -CONFIG_PRINTK_TIME=y -CONFIG_PTP_1588_CLOCK=y -# CONFIG_PTP_1588_CLOCK_FC3W is not set -CONFIG_PWM=y -CONFIG_PWM_BCM2835=y -# CONFIG_PWM_GPIO is not set -# CONFIG_PWM_RP1 is not set -CONFIG_RAS=y -CONFIG_RASPBERRYPI_FIRMWARE=y -CONFIG_RASPBERRYPI_GPIOMEM=y -CONFIG_RASPBERRYPI_POWER=y -# CONFIG_RAVE_SP_CORE is not set -CONFIG_REGMAP=y -CONFIG_REGMAP_MMIO=y -CONFIG_REGULATOR=y -CONFIG_REGULATOR_FIXED_VOLTAGE=y -CONFIG_REGULATOR_GPIO=y -# CONFIG_REGULATOR_MAX77503 is not set -# CONFIG_REGULATOR_NETLINK_EVENTS is not set -CONFIG_RESET_CONTROLLER=y -# CONFIG_RESET_GPIO is not set -CONFIG_RESET_RASPBERRYPI=y -CONFIG_RESET_SIMPLE=y -# CONFIG_RPI_POE_POWER is not set -# CONFIG_RPMB is not set -# CONFIG_RTASE is not set -CONFIG_SCSI=y -CONFIG_SCSI_COMMON=y -# CONFIG_SCSI_LOWLEVEL is not set -# CONFIG_SCSI_PROC_FS is not set -# CONFIG_SENSORS_CHIPCAP2 is not set -# CONFIG_SENSORS_LTC2991 is not set -# CONFIG_SENSORS_LTC4282 is not set -# CONFIG_SENSORS_POWERZ is not set -# CONFIG_SENSORS_PT5161L is not set -# CONFIG_SENSORS_SPD5118 is not set -CONFIG_SERIAL_8250_BCM2835AUX=y -# CONFIG_SERIAL_8250_DMA is not set -CONFIG_SERIAL_8250_EXTENDED=y -CONFIG_SERIAL_8250_NR_UARTS=1 -CONFIG_SERIAL_8250_RUNTIME_UARTS=0 -CONFIG_SERIAL_8250_SHARE_IRQ=y -CONFIG_SERIAL_AMBA_PL011=y -CONFIG_SERIAL_AMBA_PL011_CONSOLE=y -CONFIG_SERIAL_DEV_BUS=y -# CONFIG_SERIAL_DEV_CTRL_TTYPORT is not set -CONFIG_SERIAL_OF_PLATFORM=y -CONFIG_SG_POOL=y -CONFIG_SMP_ON_UP=y -CONFIG_SMSC_PHY=y -# CONFIG_STRIP_ASM_SYMS is not set -CONFIG_SUSPEND=y -CONFIG_SUSPEND_FREEZER=y -CONFIG_SWPHY=y -CONFIG_SWP_EMULATE=y -CONFIG_SYS_SUPPORTS_APM_EMULATION=y -# CONFIG_TEHUTI_TN40 is not set -# CONFIG_TEXTSEARCH is not set -CONFIG_THERMAL=y -# CONFIG_THERMAL_CORE_TESTING is not set -# CONFIG_THERMAL_DEBUGFS is not set -CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y -CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 -CONFIG_THERMAL_GOV_STEP_WISE=y -CONFIG_THERMAL_OF=y -# CONFIG_UCLAMP_TASK is not set -CONFIG_UEVENT_HELPER_PATH="" -# CONFIG_UID16 is not set -CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h" -CONFIG_UNWINDER_ARM=y -CONFIG_USB=y -CONFIG_USB_ANNOUNCE_NEW_DEVICES=y -CONFIG_USB_COMMON=y -CONFIG_USB_DEFAULT_AUTHORIZATION_MODE=1 -CONFIG_USB_DWCOTG=y -CONFIG_USB_GADGET=y -CONFIG_USB_LAN78XX=y -CONFIG_USB_NET_DRIVERS=y -CONFIG_USB_NET_SMSC95XX=y -# CONFIG_USB_ONBOARD_DEV is not set -CONFIG_USB_PCI=y -# CONFIG_USB_PCI_AMD is not set -CONFIG_USB_PHY=y -CONFIG_USB_STORAGE=y -CONFIG_USB_SUPPORT=y -CONFIG_USB_UAS=y -# CONFIG_USB_UHCI_HCD is not set -CONFIG_USB_USBNET=y -CONFIG_USB_XHCI_HCD=y -CONFIG_USB_XHCI_PCI=y -CONFIG_USB_XHCI_PLATFORM=y -CONFIG_USE_OF=y -CONFIG_VCHIQ_CDEV=y -CONFIG_VFP=y -CONFIG_VFPv3=y -CONFIG_VIDEO=y -# CONFIG_VIDEO_AD5398 is not set -# CONFIG_VIDEO_BCM2835_UNICAM is not set -# CONFIG_VIDEO_BCM2835_UNICAM_LEGACY is not set -# CONFIG_VIDEO_BU64754 is not set -# CONFIG_VIDEO_CODEC_BCM2835 is not set -CONFIG_VIDEO_DEV=y -# CONFIG_VIDEO_IRS1125 is not set -# CONFIG_VIDEO_ISP_BCM2835 is not set -# CONFIG_VIDEO_MAX96714 is not set -# CONFIG_VIDEO_MAX96717 is not set -# CONFIG_VIDEO_RP1_CFE is not set -# CONFIG_VIDEO_THP7312 is not set -CONFIG_VIDEO_V4L2_I2C=y -CONFIG_VT=y -CONFIG_VT_CONSOLE=y -CONFIG_VT_CONSOLE_SLEEP=y -CONFIG_VT_HW_CONSOLE_BINDING=y -CONFIG_WATCHDOG_CORE=y -CONFIG_XZ_DEC_ARM=y -CONFIG_ZBOOT_ROM_BSS=0 -CONFIG_ZBOOT_ROM_TEXT=0 diff --git a/6.12/target/linux/bcm27xx/bcm2710/config-6.12 b/6.12/target/linux/bcm27xx/bcm2710/config-6.12 deleted file mode 100644 index 4f9ae5c7..00000000 --- a/6.12/target/linux/bcm27xx/bcm2710/config-6.12 +++ /dev/null @@ -1,380 +0,0 @@ -# CONFIG_AIO is not set -# CONFIG_AMD_QDMA is not set -CONFIG_APERTURE_HELPERS=y -CONFIG_ARCH_BCM=y -CONFIG_ARCH_BCM2835=y -CONFIG_ARCH_HIBERNATION_POSSIBLE=y -CONFIG_ARM64_ERRATUM_819472=y -CONFIG_ARM64_ERRATUM_824069=y -CONFIG_ARM64_ERRATUM_826319=y -CONFIG_ARM64_ERRATUM_827319=y -CONFIG_ARM64_ERRATUM_832075=y -CONFIG_ARM64_ERRATUM_843419=y -CONFIG_ARM64_HW_AFDBM=y -CONFIG_ARM64_PTR_AUTH=y -CONFIG_ARM64_PTR_AUTH_KERNEL=y -CONFIG_ARM64_SVE=y -CONFIG_ARM64_WORKAROUND_CLEAN_CACHE=y -CONFIG_ARM_ARCH_TIMER_OOL_WORKAROUND=y -CONFIG_ARM_GIC_V2M=y -# CONFIG_ARM_MHU_V2 is not set -# CONFIG_ARM_MHU_V3 is not set -CONFIG_ARM_RASPBERRYPI_CPUFREQ=y -CONFIG_ARM_TIMER_SP804=y -CONFIG_ASSOCIATIVE_ARRAY=y -# CONFIG_BATTERY_MAX1720X is not set -CONFIG_BCM2708_VCMEM=y -# CONFIG_BCM2711_THERMAL is not set -CONFIG_BCM2835_MBOX=y -CONFIG_BCM2835_POWER=y -# CONFIG_BCM2835_SMI is not set -CONFIG_BCM2835_THERMAL=y -CONFIG_BCM2835_VCHIQ=y -# CONFIG_BCM2835_VCHIQ_MMAL is not set -CONFIG_BCM2835_WDT=y -CONFIG_BCM_VCIO=y -# CONFIG_BCM_VC_SM_CMA is not set -CONFIG_BCM_VIDEOCORE=y -# CONFIG_BLK_DEV_INITRD is not set -CONFIG_BLK_DEV_LOOP=y -CONFIG_BLK_DEV_RAM=y -CONFIG_BLK_DEV_RAM_COUNT=16 -CONFIG_BLK_DEV_RAM_SIZE=4096 -CONFIG_BLK_DEV_SD=y -CONFIG_BLK_MQ_PCI=y -CONFIG_BLK_PM=y -CONFIG_BRCMSTB_L2_IRQ=y -CONFIG_BRCM_CHAR_DRIVERS=y -CONFIG_BUFFER_HEAD=y -CONFIG_CAVIUM_ERRATUM_22375=y -CONFIG_CAVIUM_ERRATUM_23154=y -CONFIG_CAVIUM_ERRATUM_27456=y -CONFIG_CLKSRC_MMIO=y -CONFIG_CLK_BCM2711_DVP=y -CONFIG_CLK_BCM2835=y -CONFIG_CLK_RASPBERRYPI=y -CONFIG_CMA=y -CONFIG_CMA_ALIGNMENT=8 -CONFIG_CMA_AREAS=7 -# CONFIG_CMA_DEBUGFS is not set -CONFIG_CMA_SIZE_MBYTES=5 -# CONFIG_CMA_SIZE_SEL_MAX is not set -CONFIG_CMA_SIZE_SEL_MBYTES=y -# CONFIG_CMA_SIZE_SEL_MIN is not set -# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set -# CONFIG_CMA_SYSFS is not set -# CONFIG_COMMON_CLK_RP1 is not set -CONFIG_COMMON_CLK_XGENE=y -CONFIG_CONFIGFS_FS=y -CONFIG_CONSOLE_TRANSLATIONS=y -CONFIG_CONTIG_ALLOC=y -CONFIG_CPUFREQ_DT=y -CONFIG_CPUFREQ_DT_PLATDEV=y -# CONFIG_CPU_BIG_ENDIAN is not set -CONFIG_CPU_FREQ=y -CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y -# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set -CONFIG_CPU_FREQ_GOV_ATTR_SET=y -CONFIG_CPU_FREQ_GOV_COMMON=y -CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y -CONFIG_CPU_FREQ_GOV_ONDEMAND=y -CONFIG_CPU_FREQ_GOV_PERFORMANCE=y -CONFIG_CPU_FREQ_GOV_POWERSAVE=y -CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y -CONFIG_CPU_FREQ_GOV_USERSPACE=y -CONFIG_CPU_FREQ_STAT=y -CONFIG_CPU_IDLE=y -CONFIG_CPU_IDLE_GOV_LADDER=y -CONFIG_CPU_IDLE_GOV_MENU=y -CONFIG_CPU_LITTLE_ENDIAN=y -CONFIG_CPU_PM=y -CONFIG_CRC16=y -CONFIG_CRYPTO_AES_ARM64=y -CONFIG_CRYPTO_AES_ARM64_BS=y -CONFIG_CRYPTO_AES_ARM64_NEON_BLK=y -CONFIG_CRYPTO_CBC=y -CONFIG_CRYPTO_CRC32=y -CONFIG_CRYPTO_CRC32C=y -CONFIG_CRYPTO_CRYPTD=y -CONFIG_CRYPTO_CTS=y -CONFIG_CRYPTO_DRBG=y -CONFIG_CRYPTO_DRBG_HMAC=y -CONFIG_CRYPTO_DRBG_MENU=y -CONFIG_CRYPTO_GENIV=y -CONFIG_CRYPTO_HMAC=y -CONFIG_CRYPTO_JITTERENTROPY=y -CONFIG_CRYPTO_JITTERENTROPY_MEMORY_BLOCKS=64 -CONFIG_CRYPTO_JITTERENTROPY_MEMORY_BLOCKSIZE=32 -CONFIG_CRYPTO_JITTERENTROPY_OSR=1 -CONFIG_CRYPTO_LIB_SHA256=y -CONFIG_CRYPTO_RNG=y -CONFIG_CRYPTO_RNG2=y -CONFIG_CRYPTO_RNG_DEFAULT=y -CONFIG_CRYPTO_SEQIV=y -CONFIG_CRYPTO_SHA256=y -CONFIG_CRYPTO_SHA256_ARM64=y -CONFIG_CRYPTO_SHA3=y -CONFIG_CRYPTO_SHA512=y -CONFIG_CRYPTO_SHA512_ARM64=y -CONFIG_CRYPTO_XTS=y -CONFIG_DEBUG_BUGVERBOSE=y -CONFIG_DMABUF_HEAPS=y -CONFIG_DMABUF_HEAPS_CMA=y -CONFIG_DMABUF_HEAPS_SYSTEM=y -CONFIG_DMADEVICES=y -CONFIG_DMA_BCM2708=y -CONFIG_DMA_BCM2835=y -CONFIG_DMA_CMA=y -CONFIG_DMA_ENGINE=y -CONFIG_DMA_OF=y -CONFIG_DMA_SHARED_BUFFER=y -CONFIG_DMA_VIRTUAL_CHANNELS=y -CONFIG_DNOTIFY=y -# CONFIG_DP83TG720_PHY is not set -CONFIG_DUMMY_CONSOLE=y -CONFIG_EXT4_FS=y -CONFIG_EXTCON=y -CONFIG_F2FS_FS=y -CONFIG_FB=y -CONFIG_FB_BCM2708=y -CONFIG_FB_CFB_COPYAREA=y -CONFIG_FB_CFB_FILLRECT=y -CONFIG_FB_CFB_IMAGEBLIT=y -CONFIG_FB_CORE=y -CONFIG_FB_DEVICE=y -CONFIG_FB_IOMEM_FOPS=y -CONFIG_FB_IOMEM_HELPERS=y -# CONFIG_FB_RPISENSE is not set -CONFIG_FB_SIMPLE=y -CONFIG_FIXED_PHY=y -CONFIG_FONT_8x16=y -CONFIG_FONT_8x8=y -CONFIG_FONT_SUPPORT=y -CONFIG_FRAMEBUFFER_CONSOLE=y -# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set -CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y -CONFIG_FREEZER=y -CONFIG_FSL_ERRATUM_A008585=y -CONFIG_FS_ENCRYPTION=y -CONFIG_FS_ENCRYPTION_ALGS=y -CONFIG_FS_MBCACHE=y -# CONFIG_FUEL_GAUGE_MM8013 is not set -CONFIG_FWNODE_MDIO=y -CONFIG_FW_CACHE=y -CONFIG_GENERIC_IRQ_CHIP=y -CONFIG_GENERIC_IRQ_MIGRATION=y -CONFIG_GENERIC_PINCONF=y -CONFIG_GENERIC_PINCTRL_GROUPS=y -CONFIG_GENERIC_PINMUX_FUNCTIONS=y -CONFIG_GPIOLIB_IRQCHIP=y -CONFIG_GPIO_BCM_VIRT=y -# CONFIG_GPIO_PWM is not set -CONFIG_GPIO_RASPBERRYPI_EXP=y -CONFIG_HAS_IOPORT_MAP=y -CONFIG_HOTPLUG_CORE_SYNC=y -CONFIG_HOTPLUG_CORE_SYNC_DEAD=y -CONFIG_HOTPLUG_CPU=y -CONFIG_HW_RANDOM=y -CONFIG_HW_RANDOM_BCM2835=y -# CONFIG_HZ_PERIODIC is not set -CONFIG_I2C=y -# CONFIG_I2C_BCM2708 is not set -CONFIG_I2C_BOARDINFO=y -# CONFIG_I2C_DESIGNWARE_CORE is not set -# CONFIG_IDPF is not set -CONFIG_INPUT=y -CONFIG_INPUT_MOUSEDEV=y -# CONFIG_INPUT_MOUSEDEV_PSAUX is not set -CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 -CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 -CONFIG_JBD2=y -# CONFIG_KEBA_CP500 is not set -CONFIG_KEYS=y -CONFIG_LEDS_GPIO=y -# CONFIG_LEDS_KTD202X is not set -# CONFIG_LEDS_NCP5623 is not set -CONFIG_LEDS_PWM=y -CONFIG_LEDS_TRIGGER_ACTPWR=y -CONFIG_LEDS_TRIGGER_INPUT=y -# CONFIG_LEDS_TRIGGER_INPUT_EVENTS is not set -CONFIG_LOGO=y -CONFIG_LOGO_LINUX_CLUT224=y -# CONFIG_LOGO_LINUX_MONO is not set -# CONFIG_LOGO_LINUX_VGA16 is not set -CONFIG_MAC_PARTITION=y -CONFIG_MAGIC_SYSRQ=y -CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1f6 -CONFIG_MAILBOX=y -# CONFIG_MAILBOX_TEST is not set -CONFIG_MDIO_BUS=y -CONFIG_MDIO_DEVICE=y -CONFIG_MDIO_DEVRES=y -CONFIG_MEDIA_CAMERA_SUPPORT=y -CONFIG_MEDIA_CONTROLLER=y -CONFIG_MEDIA_PLATFORM_DRIVERS=y -CONFIG_MEDIA_PLATFORM_SUPPORT=y -CONFIG_MEDIA_SUPPORT=y -CONFIG_MEDIA_SUPPORT_FILTER=y -CONFIG_MEMORY_ISOLATION=y -# CONFIG_MFD_88PM886_PMIC is not set -# CONFIG_MFD_ADP5585 is not set -CONFIG_MFD_CORE=y -# CONFIG_MFD_CS40L50_I2C is not set -# CONFIG_MFD_RASPBERRYPI_POE_HAT is not set -# CONFIG_MFD_ROHM_BD96801 is not set -# CONFIG_MFD_RP1 is not set -CONFIG_MFD_SYSCON=y -CONFIG_MICROCHIP_PHY=y -# CONFIG_MITIGATE_SPECTRE_BRANCH_HISTORY is not set -CONFIG_MMC=y -# CONFIG_MMC_BCM2835 is not set -CONFIG_MMC_BCM2835_DMA=y -CONFIG_MMC_BCM2835_MMC=y -CONFIG_MMC_BCM2835_PIO_DMA_BARRIER=2 -CONFIG_MMC_BCM2835_SDHOST=y -CONFIG_MMC_BLOCK=y -CONFIG_MMC_BLOCK_MINORS=32 -CONFIG_MMC_HSQ=y -CONFIG_MMC_SDHCI=y -CONFIG_MMC_SDHCI_IO_ACCESSORS=y -CONFIG_MMC_SDHCI_IPROC=y -# CONFIG_MMC_SDHCI_PCI is not set -CONFIG_MMC_SDHCI_PLTFM=y -# CONFIG_MTD is not set -CONFIG_NET_DEVMEM=y -CONFIG_NET_SELFTESTS=y -CONFIG_NLS=y -CONFIG_NLS_ASCII=y -CONFIG_NOP_USB_XCEIV=y -CONFIG_NO_HZ=y -CONFIG_NO_HZ_COMMON=y -CONFIG_NO_HZ_IDLE=y -CONFIG_NR_CPUS=4 -CONFIG_NVMEM=y -CONFIG_NVMEM_LAYOUTS=y -CONFIG_NVMEM_RASPBERRYPI_OTP=y -# CONFIG_OCTEON_EP_VF is not set -CONFIG_OF_CONFIGFS=y -CONFIG_OF_DYNAMIC=y -CONFIG_OF_MDIO=y -CONFIG_OF_OVERLAY=y -CONFIG_OF_RESOLVE=y -CONFIG_PCI=y -# CONFIG_PCIE_BRCMSTB is not set -CONFIG_PCI_DOMAINS=y -CONFIG_PCI_DOMAINS_GENERIC=y -CONFIG_PCI_MSI=y -# CONFIG_PCI_NPEM is not set -CONFIG_PHYLIB=y -CONFIG_PHYLIB_LEDS=y -CONFIG_PINCTRL=y -# CONFIG_PINCTRL_AW9523 is not set -# CONFIG_PINCTRL_BCM2712 is not set -CONFIG_PINCTRL_BCM2835=y -# CONFIG_PINCTRL_RP1 is not set -CONFIG_PM=y -CONFIG_PM_CLK=y -CONFIG_PM_GENERIC_DOMAINS=y -CONFIG_PM_GENERIC_DOMAINS_OF=y -CONFIG_PM_GENERIC_DOMAINS_SLEEP=y -CONFIG_PM_OPP=y -CONFIG_PM_SLEEP=y -CONFIG_PM_SLEEP_SMP=y -CONFIG_PRINTK_TIME=y -CONFIG_PWM=y -CONFIG_PWM_BCM2835=y -# CONFIG_PWM_GPIO is not set -# CONFIG_PWM_RP1 is not set -CONFIG_RASPBERRYPI_FIRMWARE=y -CONFIG_RASPBERRYPI_GPIOMEM=y -CONFIG_RASPBERRYPI_POWER=y -# CONFIG_RAVE_SP_CORE is not set -CONFIG_REGMAP=y -CONFIG_REGMAP_MMIO=y -CONFIG_REGULATOR=y -CONFIG_REGULATOR_FIXED_VOLTAGE=y -CONFIG_REGULATOR_GPIO=y -# CONFIG_REGULATOR_MAX77503 is not set -# CONFIG_REGULATOR_NETLINK_EVENTS is not set -CONFIG_RESET_CONTROLLER=y -# CONFIG_RESET_GPIO is not set -# CONFIG_RESET_RASPBERRYPI is not set -CONFIG_RESET_SIMPLE=y -# CONFIG_RPI_POE_POWER is not set -# CONFIG_RPMB is not set -# CONFIG_RTASE is not set -CONFIG_RUSTC_SUPPORTS_ARM64=y -CONFIG_SCSI=y -CONFIG_SCSI_COMMON=y -# CONFIG_SCSI_LOWLEVEL is not set -# CONFIG_SCSI_PROC_FS is not set -# CONFIG_SENSORS_CHIPCAP2 is not set -# CONFIG_SENSORS_LTC2991 is not set -# CONFIG_SENSORS_LTC4282 is not set -# CONFIG_SENSORS_POWERZ is not set -# CONFIG_SENSORS_PT5161L is not set -# CONFIG_SENSORS_SPD5118 is not set -CONFIG_SERIAL_8250_BCM2835AUX=y -# CONFIG_SERIAL_8250_DMA is not set -CONFIG_SERIAL_8250_EXTENDED=y -CONFIG_SERIAL_8250_NR_UARTS=1 -CONFIG_SERIAL_8250_RUNTIME_UARTS=0 -CONFIG_SERIAL_8250_SHARE_IRQ=y -CONFIG_SERIAL_AMBA_PL011=y -CONFIG_SERIAL_AMBA_PL011_CONSOLE=y -CONFIG_SERIAL_DEV_BUS=y -# CONFIG_SERIAL_DEV_CTRL_TTYPORT is not set -CONFIG_SERIAL_OF_PLATFORM=y -CONFIG_SG_POOL=y -CONFIG_SMSC_PHY=y -# CONFIG_STRIP_ASM_SYMS is not set -CONFIG_SUSPEND=y -CONFIG_SUSPEND_FREEZER=y -CONFIG_SWPHY=y -# CONFIG_TEHUTI_TN40 is not set -# CONFIG_TEXTSEARCH is not set -CONFIG_THERMAL=y -# CONFIG_THERMAL_CORE_TESTING is not set -# CONFIG_THERMAL_DEBUGFS is not set -CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y -CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 -CONFIG_THERMAL_GOV_STEP_WISE=y -CONFIG_THERMAL_OF=y -# CONFIG_UCLAMP_TASK is not set -CONFIG_UEVENT_HELPER_PATH="" -CONFIG_USB=y -CONFIG_USB_ANNOUNCE_NEW_DEVICES=y -CONFIG_USB_COMMON=y -CONFIG_USB_DEFAULT_AUTHORIZATION_MODE=1 -CONFIG_USB_DWCOTG=y -CONFIG_USB_LAN78XX=y -CONFIG_USB_NET_DRIVERS=y -CONFIG_USB_NET_SMSC95XX=y -# CONFIG_USB_ONBOARD_DEV is not set -CONFIG_USB_PHY=y -CONFIG_USB_STORAGE=y -CONFIG_USB_SUPPORT=y -CONFIG_USB_UAS=y -CONFIG_USB_USBNET=y -CONFIG_VCHIQ_CDEV=y -CONFIG_VIDEO=y -# CONFIG_VIDEO_AD5398 is not set -# CONFIG_VIDEO_BCM2835_UNICAM is not set -# CONFIG_VIDEO_BCM2835_UNICAM_LEGACY is not set -# CONFIG_VIDEO_BU64754 is not set -# CONFIG_VIDEO_CODEC_BCM2835 is not set -CONFIG_VIDEO_DEV=y -# CONFIG_VIDEO_IRS1125 is not set -# CONFIG_VIDEO_ISP_BCM2835 is not set -# CONFIG_VIDEO_MAX96714 is not set -# CONFIG_VIDEO_MAX96717 is not set -# CONFIG_VIDEO_RP1_CFE is not set -# CONFIG_VIDEO_THP7312 is not set -CONFIG_VIDEO_V4L2_I2C=y -CONFIG_VMAP_STACK=y -CONFIG_VT=y -CONFIG_VT_CONSOLE=y -CONFIG_VT_CONSOLE_SLEEP=y -CONFIG_VT_HW_CONSOLE_BINDING=y -CONFIG_WATCHDOG_CORE=y -CONFIG_XZ_DEC_ARM=y diff --git a/6.12/target/linux/bcm27xx/bcm2711/config-6.12 b/6.12/target/linux/bcm27xx/bcm2711/config-6.12 deleted file mode 100644 index ff1a170b..00000000 --- a/6.12/target/linux/bcm27xx/bcm2711/config-6.12 +++ /dev/null @@ -1,400 +0,0 @@ -# CONFIG_AIO is not set -# CONFIG_AMD_QDMA is not set -CONFIG_APERTURE_HELPERS=y -CONFIG_ARCH_BCM=y -CONFIG_ARCH_BCM2835=y -CONFIG_ARCH_HIBERNATION_POSSIBLE=y -CONFIG_ARM64_ERRATUM_1319367=y -CONFIG_ARM64_HW_AFDBM=y -CONFIG_ARM64_PTR_AUTH=y -CONFIG_ARM64_PTR_AUTH_KERNEL=y -CONFIG_ARM64_SVE=y -CONFIG_ARM64_WORKAROUND_SPECULATIVE_AT=y -CONFIG_ARM_ARCH_TIMER_OOL_WORKAROUND=y -CONFIG_ARM_GIC_V2M=y -# CONFIG_ARM_MHU_V2 is not set -# CONFIG_ARM_MHU_V3 is not set -CONFIG_ARM_RASPBERRYPI_CPUFREQ=y -CONFIG_ARM_TIMER_SP804=y -CONFIG_ASSOCIATIVE_ARRAY=y -# CONFIG_BATTERY_MAX1720X is not set -CONFIG_BCM2708_VCMEM=y -CONFIG_BCM2711_THERMAL=y -CONFIG_BCM2835_MBOX=y -CONFIG_BCM2835_POWER=y -# CONFIG_BCM2835_SMI is not set -# CONFIG_BCM2835_THERMAL is not set -CONFIG_BCM2835_VCHIQ=y -# CONFIG_BCM2835_VCHIQ_MMAL is not set -CONFIG_BCM2835_WDT=y -CONFIG_BCM7XXX_PHY=y -CONFIG_BCMGENET=y -CONFIG_BCM_NET_PHYLIB=y -CONFIG_BCM_VCIO=y -# CONFIG_BCM_VC_SM_CMA is not set -CONFIG_BCM_VIDEOCORE=y -# CONFIG_BLK_DEV_INITRD is not set -CONFIG_BLK_DEV_LOOP=y -CONFIG_BLK_DEV_RAM=y -CONFIG_BLK_DEV_RAM_COUNT=16 -CONFIG_BLK_DEV_RAM_SIZE=4096 -CONFIG_BLK_DEV_SD=y -CONFIG_BLK_MQ_PCI=y -CONFIG_BLK_PM=y -CONFIG_BRCMSTB_L2_IRQ=y -CONFIG_BRCM_CHAR_DRIVERS=y -CONFIG_BROADCOM_PHY=y -CONFIG_BUFFER_HEAD=y -CONFIG_CAVIUM_ERRATUM_22375=y -CONFIG_CAVIUM_ERRATUM_23154=y -CONFIG_CAVIUM_ERRATUM_27456=y -CONFIG_CLKSRC_MMIO=y -CONFIG_CLK_BCM2711_DVP=y -CONFIG_CLK_BCM2835=y -CONFIG_CLK_RASPBERRYPI=y -CONFIG_CMA=y -CONFIG_CMA_ALIGNMENT=8 -CONFIG_CMA_AREAS=7 -# CONFIG_CMA_DEBUGFS is not set -CONFIG_CMA_SIZE_MBYTES=5 -# CONFIG_CMA_SIZE_SEL_MAX is not set -CONFIG_CMA_SIZE_SEL_MBYTES=y -# CONFIG_CMA_SIZE_SEL_MIN is not set -# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set -# CONFIG_CMA_SYSFS is not set -# CONFIG_COMMON_CLK_RP1 is not set -CONFIG_COMMON_CLK_XGENE=y -CONFIG_CONFIGFS_FS=y -CONFIG_CONSOLE_TRANSLATIONS=y -CONFIG_CONTIG_ALLOC=y -CONFIG_CPUFREQ_DT=y -CONFIG_CPUFREQ_DT_PLATDEV=y -# CONFIG_CPU_BIG_ENDIAN is not set -CONFIG_CPU_FREQ=y -CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y -# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set -CONFIG_CPU_FREQ_GOV_ATTR_SET=y -CONFIG_CPU_FREQ_GOV_COMMON=y -CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y -CONFIG_CPU_FREQ_GOV_ONDEMAND=y -CONFIG_CPU_FREQ_GOV_PERFORMANCE=y -CONFIG_CPU_FREQ_GOV_POWERSAVE=y -CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y -CONFIG_CPU_FREQ_GOV_USERSPACE=y -CONFIG_CPU_FREQ_STAT=y -CONFIG_CPU_IDLE=y -CONFIG_CPU_IDLE_GOV_LADDER=y -CONFIG_CPU_IDLE_GOV_MENU=y -CONFIG_CPU_LITTLE_ENDIAN=y -CONFIG_CPU_PM=y -CONFIG_CRC16=y -CONFIG_CRYPTO_AES_ARM64=y -CONFIG_CRYPTO_AES_ARM64_BS=y -CONFIG_CRYPTO_AES_ARM64_NEON_BLK=y -CONFIG_CRYPTO_CBC=y -CONFIG_CRYPTO_CRC32=y -CONFIG_CRYPTO_CRC32C=y -CONFIG_CRYPTO_CRYPTD=y -CONFIG_CRYPTO_CTS=y -CONFIG_CRYPTO_DRBG=y -CONFIG_CRYPTO_DRBG_HMAC=y -CONFIG_CRYPTO_DRBG_MENU=y -CONFIG_CRYPTO_GENIV=y -CONFIG_CRYPTO_HMAC=y -CONFIG_CRYPTO_JITTERENTROPY=y -CONFIG_CRYPTO_JITTERENTROPY_MEMORY_BLOCKS=64 -CONFIG_CRYPTO_JITTERENTROPY_MEMORY_BLOCKSIZE=32 -CONFIG_CRYPTO_JITTERENTROPY_OSR=1 -CONFIG_CRYPTO_LIB_SHA256=y -CONFIG_CRYPTO_RNG=y -CONFIG_CRYPTO_RNG2=y -CONFIG_CRYPTO_RNG_DEFAULT=y -CONFIG_CRYPTO_SEQIV=y -CONFIG_CRYPTO_SHA256=y -CONFIG_CRYPTO_SHA256_ARM64=y -CONFIG_CRYPTO_SHA3=y -CONFIG_CRYPTO_SHA512=y -CONFIG_CRYPTO_SHA512_ARM64=y -CONFIG_CRYPTO_XTS=y -CONFIG_DEBUG_BUGVERBOSE=y -CONFIG_DMABUF_HEAPS=y -CONFIG_DMABUF_HEAPS_CMA=y -CONFIG_DMABUF_HEAPS_SYSTEM=y -CONFIG_DMADEVICES=y -CONFIG_DMA_BCM2708=y -CONFIG_DMA_BCM2835=y -CONFIG_DMA_CMA=y -CONFIG_DMA_ENGINE=y -# CONFIG_DMA_NUMA_CMA is not set -CONFIG_DMA_OF=y -CONFIG_DMA_SHARED_BUFFER=y -CONFIG_DMA_VIRTUAL_CHANNELS=y -CONFIG_DNOTIFY=y -# CONFIG_DP83TG720_PHY is not set -CONFIG_DUMMY_CONSOLE=y -CONFIG_EXT4_FS=y -CONFIG_EXTCON=y -CONFIG_F2FS_FS=y -CONFIG_FB=y -CONFIG_FB_BCM2708=y -CONFIG_FB_CFB_COPYAREA=y -CONFIG_FB_CFB_FILLRECT=y -CONFIG_FB_CFB_IMAGEBLIT=y -CONFIG_FB_CORE=y -CONFIG_FB_DEVICE=y -CONFIG_FB_IOMEM_FOPS=y -CONFIG_FB_IOMEM_HELPERS=y -# CONFIG_FB_RPISENSE is not set -CONFIG_FB_SIMPLE=y -CONFIG_FIXED_PHY=y -CONFIG_FONT_8x16=y -CONFIG_FONT_8x8=y -CONFIG_FONT_SUPPORT=y -CONFIG_FRAMEBUFFER_CONSOLE=y -# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set -CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y -CONFIG_FREEZER=y -CONFIG_FSL_ERRATUM_A008585=y -CONFIG_FS_ENCRYPTION=y -CONFIG_FS_ENCRYPTION_ALGS=y -CONFIG_FS_MBCACHE=y -# CONFIG_FUEL_GAUGE_MM8013 is not set -CONFIG_FWNODE_MDIO=y -CONFIG_FW_CACHE=y -CONFIG_GENERIC_ARCH_NUMA=y -CONFIG_GENERIC_IRQ_CHIP=y -CONFIG_GENERIC_IRQ_MIGRATION=y -CONFIG_GENERIC_PHY=y -CONFIG_GENERIC_PINCONF=y -CONFIG_GENERIC_PINCTRL_GROUPS=y -CONFIG_GENERIC_PINMUX_FUNCTIONS=y -CONFIG_GPIOLIB_IRQCHIP=y -CONFIG_GPIO_BCM_VIRT=y -# CONFIG_GPIO_PWM is not set -CONFIG_GPIO_RASPBERRYPI_EXP=y -CONFIG_HAS_IOPORT_MAP=y -CONFIG_HOTPLUG_CORE_SYNC=y -CONFIG_HOTPLUG_CORE_SYNC_DEAD=y -CONFIG_HOTPLUG_CPU=y -CONFIG_HW_RANDOM=y -CONFIG_HW_RANDOM_IPROC_RNG200=y -# CONFIG_HZ_PERIODIC is not set -CONFIG_I2C=y -# CONFIG_I2C_BCM2708 is not set -CONFIG_I2C_BOARDINFO=y -# CONFIG_I2C_DESIGNWARE_CORE is not set -# CONFIG_IDPF is not set -CONFIG_INPUT=y -CONFIG_INPUT_MOUSEDEV=y -# CONFIG_INPUT_MOUSEDEV_PSAUX is not set -CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 -CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 -CONFIG_JBD2=y -# CONFIG_KEBA_CP500 is not set -CONFIG_KEYS=y -CONFIG_LEDS_GPIO=y -# CONFIG_LEDS_KTD202X is not set -# CONFIG_LEDS_NCP5623 is not set -CONFIG_LEDS_PWM=y -CONFIG_LEDS_TRIGGER_ACTPWR=y -CONFIG_LEDS_TRIGGER_INPUT=y -# CONFIG_LEDS_TRIGGER_INPUT_EVENTS is not set -CONFIG_LOGO=y -CONFIG_LOGO_LINUX_CLUT224=y -# CONFIG_LOGO_LINUX_MONO is not set -# CONFIG_LOGO_LINUX_VGA16 is not set -CONFIG_MAC_PARTITION=y -CONFIG_MAGIC_SYSRQ=y -CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1f6 -CONFIG_MAILBOX=y -# CONFIG_MAILBOX_TEST is not set -CONFIG_MDIO_BCM_UNIMAC=y -CONFIG_MDIO_BUS=y -CONFIG_MDIO_DEVICE=y -CONFIG_MDIO_DEVRES=y -CONFIG_MEDIA_CAMERA_SUPPORT=y -CONFIG_MEDIA_CONTROLLER=y -CONFIG_MEDIA_PLATFORM_DRIVERS=y -CONFIG_MEDIA_PLATFORM_SUPPORT=y -CONFIG_MEDIA_SUPPORT=y -CONFIG_MEDIA_SUPPORT_FILTER=y -CONFIG_MEMORY_ISOLATION=y -# CONFIG_MFD_88PM886_PMIC is not set -# CONFIG_MFD_ADP5585 is not set -CONFIG_MFD_CORE=y -# CONFIG_MFD_CS40L50_I2C is not set -# CONFIG_MFD_RASPBERRYPI_POE_HAT is not set -# CONFIG_MFD_ROHM_BD96801 is not set -# CONFIG_MFD_RP1 is not set -CONFIG_MFD_SYSCON=y -CONFIG_MMC=y -# CONFIG_MMC_BCM2835 is not set -CONFIG_MMC_BCM2835_DMA=y -CONFIG_MMC_BCM2835_MMC=y -CONFIG_MMC_BCM2835_PIO_DMA_BARRIER=2 -CONFIG_MMC_BCM2835_SDHOST=y -CONFIG_MMC_BLOCK=y -CONFIG_MMC_BLOCK_MINORS=32 -CONFIG_MMC_HSQ=y -CONFIG_MMC_SDHCI=y -CONFIG_MMC_SDHCI_IO_ACCESSORS=y -CONFIG_MMC_SDHCI_IPROC=y -# CONFIG_MMC_SDHCI_PCI is not set -CONFIG_MMC_SDHCI_PLTFM=y -# CONFIG_MTD is not set -CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y -CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y -CONFIG_NET_DEVMEM=y -CONFIG_NET_PTP_CLASSIFY=y -CONFIG_NET_SELFTESTS=y -CONFIG_NLS=y -CONFIG_NLS_ASCII=y -CONFIG_NODES_SHIFT=4 -CONFIG_NOP_USB_XCEIV=y -CONFIG_NO_HZ=y -CONFIG_NO_HZ_COMMON=y -CONFIG_NO_HZ_IDLE=y -CONFIG_NR_CPUS=4 -CONFIG_NUMA=y -# CONFIG_NUMA_BALANCING is not set -# CONFIG_NUMA_EMU is not set -CONFIG_NUMA_MEMBLKS=y -CONFIG_NVMEM=y -CONFIG_NVMEM_LAYOUTS=y -CONFIG_NVMEM_RASPBERRYPI_OTP=y -# CONFIG_OCTEON_EP_VF is not set -CONFIG_OF_CONFIGFS=y -CONFIG_OF_DYNAMIC=y -CONFIG_OF_MDIO=y -CONFIG_OF_NUMA=y -CONFIG_OF_OVERLAY=y -CONFIG_OF_RESOLVE=y -CONFIG_PCI=y -CONFIG_PCIEAER=y -CONFIG_PCIEPORTBUS=y -CONFIG_PCIE_BRCMSTB=y -CONFIG_PCIE_PME=y -CONFIG_PCI_DOMAINS=y -CONFIG_PCI_DOMAINS_GENERIC=y -CONFIG_PCI_MSI=y -# CONFIG_PCI_NPEM is not set -CONFIG_PHYLIB=y -CONFIG_PHYLIB_LEDS=y -CONFIG_PINCTRL=y -# CONFIG_PINCTRL_AW9523 is not set -# CONFIG_PINCTRL_BCM2712 is not set -CONFIG_PINCTRL_BCM2835=y -# CONFIG_PINCTRL_RP1 is not set -CONFIG_PM=y -CONFIG_PM_CLK=y -CONFIG_PM_GENERIC_DOMAINS=y -CONFIG_PM_GENERIC_DOMAINS_OF=y -CONFIG_PM_GENERIC_DOMAINS_SLEEP=y -CONFIG_PM_OPP=y -CONFIG_PM_SLEEP=y -CONFIG_PM_SLEEP_SMP=y -CONFIG_PPS=y -CONFIG_PRINTK_TIME=y -CONFIG_PTP_1588_CLOCK=y -# CONFIG_PTP_1588_CLOCK_FC3W is not set -CONFIG_PWM=y -CONFIG_PWM_BCM2835=y -# CONFIG_PWM_GPIO is not set -# CONFIG_PWM_RP1 is not set -CONFIG_RAS=y -CONFIG_RASPBERRYPI_FIRMWARE=y -CONFIG_RASPBERRYPI_GPIOMEM=y -CONFIG_RASPBERRYPI_POWER=y -# CONFIG_RAVE_SP_CORE is not set -CONFIG_REGMAP=y -CONFIG_REGMAP_MMIO=y -CONFIG_REGULATOR=y -CONFIG_REGULATOR_FIXED_VOLTAGE=y -CONFIG_REGULATOR_GPIO=y -# CONFIG_REGULATOR_MAX77503 is not set -# CONFIG_REGULATOR_NETLINK_EVENTS is not set -CONFIG_RESET_CONTROLLER=y -# CONFIG_RESET_GPIO is not set -CONFIG_RESET_RASPBERRYPI=y -CONFIG_RESET_SIMPLE=y -# CONFIG_RPI_POE_POWER is not set -# CONFIG_RPMB is not set -# CONFIG_RTASE is not set -CONFIG_RUSTC_SUPPORTS_ARM64=y -CONFIG_SCSI=y -CONFIG_SCSI_COMMON=y -# CONFIG_SCSI_LOWLEVEL is not set -# CONFIG_SCSI_PROC_FS is not set -# CONFIG_SENSORS_CHIPCAP2 is not set -# CONFIG_SENSORS_LTC2991 is not set -# CONFIG_SENSORS_LTC4282 is not set -# CONFIG_SENSORS_POWERZ is not set -# CONFIG_SENSORS_PT5161L is not set -# CONFIG_SENSORS_SPD5118 is not set -CONFIG_SERIAL_8250_BCM2835AUX=y -# CONFIG_SERIAL_8250_DMA is not set -CONFIG_SERIAL_8250_EXTENDED=y -CONFIG_SERIAL_8250_NR_UARTS=1 -CONFIG_SERIAL_8250_RUNTIME_UARTS=0 -CONFIG_SERIAL_8250_SHARE_IRQ=y -CONFIG_SERIAL_AMBA_PL011=y -CONFIG_SERIAL_AMBA_PL011_CONSOLE=y -CONFIG_SERIAL_DEV_BUS=y -# CONFIG_SERIAL_DEV_CTRL_TTYPORT is not set -CONFIG_SERIAL_OF_PLATFORM=y -CONFIG_SG_POOL=y -# CONFIG_STRIP_ASM_SYMS is not set -CONFIG_SUSPEND=y -CONFIG_SUSPEND_FREEZER=y -CONFIG_SWPHY=y -# CONFIG_TEHUTI_TN40 is not set -# CONFIG_TEXTSEARCH is not set -CONFIG_THERMAL=y -# CONFIG_THERMAL_CORE_TESTING is not set -# CONFIG_THERMAL_DEBUGFS is not set -CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y -CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 -CONFIG_THERMAL_GOV_STEP_WISE=y -CONFIG_THERMAL_OF=y -# CONFIG_UCLAMP_TASK is not set -CONFIG_UEVENT_HELPER_PATH="" -CONFIG_USB=y -CONFIG_USB_ANNOUNCE_NEW_DEVICES=y -CONFIG_USB_COMMON=y -CONFIG_USB_DEFAULT_AUTHORIZATION_MODE=1 -CONFIG_USB_DWCOTG=y -CONFIG_USB_GADGET=y -# CONFIG_USB_ONBOARD_DEV is not set -CONFIG_USB_PCI=y -# CONFIG_USB_PCI_AMD is not set -CONFIG_USB_PHY=y -CONFIG_USB_STORAGE=y -CONFIG_USB_SUPPORT=y -CONFIG_USB_UAS=y -# CONFIG_USB_UHCI_HCD is not set -CONFIG_USB_XHCI_HCD=y -CONFIG_USB_XHCI_PCI=y -CONFIG_USB_XHCI_PLATFORM=y -CONFIG_USE_PERCPU_NUMA_NODE_ID=y -CONFIG_VCHIQ_CDEV=y -CONFIG_VIDEO=y -# CONFIG_VIDEO_AD5398 is not set -# CONFIG_VIDEO_BCM2835_UNICAM is not set -# CONFIG_VIDEO_BCM2835_UNICAM_LEGACY is not set -# CONFIG_VIDEO_BU64754 is not set -# CONFIG_VIDEO_CODEC_BCM2835 is not set -CONFIG_VIDEO_DEV=y -# CONFIG_VIDEO_IRS1125 is not set -# CONFIG_VIDEO_ISP_BCM2835 is not set -# CONFIG_VIDEO_MAX96714 is not set -# CONFIG_VIDEO_MAX96717 is not set -# CONFIG_VIDEO_RP1_CFE is not set -# CONFIG_VIDEO_THP7312 is not set -CONFIG_VIDEO_V4L2_I2C=y -CONFIG_VMAP_STACK=y -CONFIG_VT=y -CONFIG_VT_CONSOLE=y -CONFIG_VT_CONSOLE_SLEEP=y -CONFIG_VT_HW_CONSOLE_BINDING=y -CONFIG_WATCHDOG_CORE=y -CONFIG_XZ_DEC_ARM=y diff --git a/6.12/target/linux/bcm27xx/bcm2712/config-6.12 b/6.12/target/linux/bcm27xx/bcm2712/config-6.12 deleted file mode 100644 index 61970fa7..00000000 --- a/6.12/target/linux/bcm27xx/bcm2712/config-6.12 +++ /dev/null @@ -1,529 +0,0 @@ -# CONFIG_AIO is not set -# CONFIG_AMD_QDMA is not set -CONFIG_APERTURE_HELPERS=y -CONFIG_ARCH_BCM=y -CONFIG_ARCH_BCM2835=y -CONFIG_ARCH_BRCMSTB=y -CONFIG_ARCH_HIBERNATION_POSSIBLE=y -CONFIG_ARM64_ERRATUM_1165522=y -CONFIG_ARM64_ERRATUM_1286807=y -CONFIG_ARM64_ERRATUM_1463225=y -CONFIG_ARM64_ERRATUM_3194386=y -CONFIG_ARM64_HW_AFDBM=y -CONFIG_ARM64_PTR_AUTH=y -CONFIG_ARM64_PTR_AUTH_KERNEL=y -CONFIG_ARM64_SVE=y -CONFIG_ARM64_WORKAROUND_REPEAT_TLBI=y -CONFIG_ARM64_WORKAROUND_SPECULATIVE_AT=y -CONFIG_ARM_ARCH_TIMER_OOL_WORKAROUND=y -CONFIG_ARM_BRCMSTB_AVS_CPUFREQ=y -CONFIG_ARM_GIC_V2M=y -# CONFIG_ARM_MHU_V2 is not set -# CONFIG_ARM_MHU_V3 is not set -# CONFIG_ARM_PL172_MPMC is not set -CONFIG_ARM_RASPBERRYPI_CPUFREQ=y -# CONFIG_ARM_SMMU is not set -# CONFIG_ARM_SMMU_V3 is not set -CONFIG_ARM_TIMER_SP804=y -CONFIG_ASSOCIATIVE_ARRAY=y -# CONFIG_BATTERY_MAX1720X is not set -CONFIG_BCM2708_VCMEM=y -CONFIG_BCM2711_THERMAL=y -CONFIG_BCM2712_IOMMU=y -CONFIG_BCM2712_MIP=y -CONFIG_BCM2835_MBOX=y -CONFIG_BCM2835_POWER=y -CONFIG_BCM2835_SMI=y -CONFIG_BCM2835_SMI_DEV=m -CONFIG_BCM2835_THERMAL=y -CONFIG_BCM2835_VCHIQ=y -# CONFIG_BCM2835_VCHIQ_MMAL is not set -CONFIG_BCM2835_WDT=y -CONFIG_BCM7038_L1_IRQ=y -CONFIG_BCM7120_L2_IRQ=y -CONFIG_BCM7XXX_PHY=y -CONFIG_BCMA=y -CONFIG_BCMASP=y -CONFIG_BCMA_BLOCKIO=y -# CONFIG_BCMA_DEBUG is not set -# CONFIG_BCMA_DRIVER_GMAC_CMN is not set -CONFIG_BCMA_DRIVER_PCI=y -CONFIG_BCMA_FALLBACK_SPROM=y -CONFIG_BCMA_HOST_PCI=y -CONFIG_BCMA_HOST_PCI_POSSIBLE=y -# CONFIG_BCMA_HOST_SOC is not set -CONFIG_BCMGENET=y -CONFIG_BCM_NET_PHYLIB=y -CONFIG_BCM_VCIO=y -# CONFIG_BCM_VC_SM_CMA is not set -CONFIG_BCM_VIDEOCORE=y -# CONFIG_BLK_DEV_INITRD is not set -CONFIG_BLK_DEV_LOOP=y -CONFIG_BLK_DEV_NVME=y -CONFIG_BLK_DEV_RAM=y -CONFIG_BLK_DEV_RAM_COUNT=16 -CONFIG_BLK_DEV_RAM_SIZE=4096 -CONFIG_BLK_DEV_SD=y -CONFIG_BLK_MQ_PCI=y -CONFIG_BLK_PM=y -CONFIG_BRCMSTB_DPFE=y -CONFIG_BRCMSTB_L2_IRQ=y -CONFIG_BRCMSTB_MEMC=y -# CONFIG_BRCMSTB_THERMAL is not set -CONFIG_BRCM_CHAR_DRIVERS=y -CONFIG_BRCM_USB_PINMAP=y -CONFIG_BROADCOM_PHY=y -CONFIG_BUFFER_HEAD=y -CONFIG_CLKSRC_MMIO=y -CONFIG_CLK_BCM2711_DVP=y -CONFIG_CLK_BCM2835=y -CONFIG_CLK_RASPBERRYPI=y -CONFIG_CMA=y -CONFIG_CMA_ALIGNMENT=8 -CONFIG_CMA_AREAS=7 -# CONFIG_CMA_DEBUGFS is not set -CONFIG_CMA_SIZE_MBYTES=5 -# CONFIG_CMA_SIZE_SEL_MAX is not set -CONFIG_CMA_SIZE_SEL_MBYTES=y -# CONFIG_CMA_SIZE_SEL_MIN is not set -# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set -# CONFIG_CMA_SYSFS is not set -CONFIG_COMMON_CLK_RP1=y -# CONFIG_COMMON_CLK_RP1_SDIO is not set -CONFIG_COMMON_CLK_XGENE=y -CONFIG_CONFIGFS_FS=y -CONFIG_CONSOLE_TRANSLATIONS=y -CONFIG_CONTIG_ALLOC=y -CONFIG_CPUFREQ_DT=y -CONFIG_CPUFREQ_DT_PLATDEV=y -# CONFIG_CPU_BIG_ENDIAN is not set -CONFIG_CPU_FREQ=y -CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y -# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set -CONFIG_CPU_FREQ_GOV_ATTR_SET=y -CONFIG_CPU_FREQ_GOV_COMMON=y -CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y -CONFIG_CPU_FREQ_GOV_ONDEMAND=y -CONFIG_CPU_FREQ_GOV_PERFORMANCE=y -CONFIG_CPU_FREQ_GOV_POWERSAVE=y -CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y -CONFIG_CPU_FREQ_GOV_USERSPACE=y -CONFIG_CPU_FREQ_STAT=y -CONFIG_CPU_IDLE=y -CONFIG_CPU_IDLE_GOV_LADDER=y -CONFIG_CPU_IDLE_GOV_MENU=y -CONFIG_CPU_LITTLE_ENDIAN=y -CONFIG_CPU_PM=y -CONFIG_CRC16=y -CONFIG_CRYPTO_AES_ARM64=y -CONFIG_CRYPTO_AES_ARM64_BS=y -CONFIG_CRYPTO_AES_ARM64_CE=y -CONFIG_CRYPTO_AES_ARM64_CE_BLK=y -CONFIG_CRYPTO_AES_ARM64_CE_CCM=y -CONFIG_CRYPTO_AES_ARM64_NEON_BLK=y -CONFIG_CRYPTO_CBC=y -CONFIG_CRYPTO_CRC32=y -CONFIG_CRYPTO_CRC32C=y -CONFIG_CRYPTO_CRYPTD=y -CONFIG_CRYPTO_CTS=y -CONFIG_CRYPTO_DRBG=y -CONFIG_CRYPTO_DRBG_HMAC=y -CONFIG_CRYPTO_DRBG_MENU=y -CONFIG_CRYPTO_GENIV=y -CONFIG_CRYPTO_GHASH_ARM64_CE=y -CONFIG_CRYPTO_HMAC=y -CONFIG_CRYPTO_JITTERENTROPY=y -CONFIG_CRYPTO_JITTERENTROPY_MEMORY_BLOCKS=64 -CONFIG_CRYPTO_JITTERENTROPY_MEMORY_BLOCKSIZE=32 -CONFIG_CRYPTO_JITTERENTROPY_OSR=1 -CONFIG_CRYPTO_LIB_SHA256=y -CONFIG_CRYPTO_RNG=y -CONFIG_CRYPTO_RNG2=y -CONFIG_CRYPTO_RNG_DEFAULT=y -CONFIG_CRYPTO_SEQIV=y -CONFIG_CRYPTO_SHA1=y -CONFIG_CRYPTO_SHA1_ARM64_CE=y -CONFIG_CRYPTO_SHA256=y -CONFIG_CRYPTO_SHA256_ARM64=y -CONFIG_CRYPTO_SHA2_ARM64_CE=y -CONFIG_CRYPTO_SHA3=y -CONFIG_CRYPTO_SHA3_ARM64=y -CONFIG_CRYPTO_SHA512=y -CONFIG_CRYPTO_SHA512_ARM64=y -CONFIG_CRYPTO_SHA512_ARM64_CE=y -CONFIG_CRYPTO_SM3=y -CONFIG_CRYPTO_SM3_ARM64_CE=y -CONFIG_CRYPTO_SM4=y -CONFIG_CRYPTO_SM4_ARM64_CE=y -CONFIG_CRYPTO_SM4_ARM64_CE_BLK=y -CONFIG_CRYPTO_XTS=y -CONFIG_DEBUG_BUGVERBOSE=y -CONFIG_DMABUF_HEAPS=y -CONFIG_DMABUF_HEAPS_CMA=y -CONFIG_DMABUF_HEAPS_SYSTEM=y -CONFIG_DMADEVICES=y -CONFIG_DMA_BCM2708=y -CONFIG_DMA_BCM2835=y -CONFIG_DMA_CMA=y -CONFIG_DMA_ENGINE=y -# CONFIG_DMA_NUMA_CMA is not set -CONFIG_DMA_OF=y -CONFIG_DMA_OPS_HELPERS=y -CONFIG_DMA_SHARED_BUFFER=y -CONFIG_DMA_VIRTUAL_CHANNELS=y -CONFIG_DNOTIFY=y -# CONFIG_DP83TG720_PHY is not set -CONFIG_DUMMY_CONSOLE=y -CONFIG_EXT4_FS=y -CONFIG_EXTCON=y -CONFIG_F2FS_FS=y -CONFIG_FB=y -CONFIG_FB_BCM2708=y -CONFIG_FB_CFB_COPYAREA=y -CONFIG_FB_CFB_FILLRECT=y -CONFIG_FB_CFB_IMAGEBLIT=y -CONFIG_FB_CORE=y -CONFIG_FB_DEVICE=y -CONFIG_FB_IOMEM_FOPS=y -CONFIG_FB_IOMEM_HELPERS=y -# CONFIG_FB_RPISENSE is not set -CONFIG_FB_SIMPLE=y -CONFIG_FIXED_PHY=y -CONFIG_FONT_8x16=y -CONFIG_FONT_8x8=y -CONFIG_FONT_SUPPORT=y -CONFIG_FRAMEBUFFER_CONSOLE=y -# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set -CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y -CONFIG_FREEZER=y -CONFIG_FSL_ERRATUM_A008585=y -CONFIG_FS_ENCRYPTION=y -CONFIG_FS_ENCRYPTION_ALGS=y -CONFIG_FS_MBCACHE=y -# CONFIG_FUEL_GAUGE_MM8013 is not set -CONFIG_FWNODE_MDIO=y -CONFIG_FW_CACHE=y -CONFIG_GENERIC_ARCH_NUMA=y -CONFIG_GENERIC_IRQ_CHIP=y -CONFIG_GENERIC_IRQ_INJECTION=y -CONFIG_GENERIC_IRQ_MIGRATION=y -CONFIG_GENERIC_PHY=y -CONFIG_GENERIC_PINCONF=y -CONFIG_GENERIC_PINCTRL_GROUPS=y -CONFIG_GENERIC_PINMUX_FUNCTIONS=y -CONFIG_GLOB=y -CONFIG_GPIOLIB_IRQCHIP=y -CONFIG_GPIO_BCM_VIRT=y -CONFIG_GPIO_BRCMSTB=y -CONFIG_GPIO_GENERIC=y -# CONFIG_GPIO_PWM is not set -CONFIG_GPIO_RASPBERRYPI_EXP=y -CONFIG_HAS_IOPORT_MAP=y -CONFIG_HOTPLUG_CORE_SYNC=y -CONFIG_HOTPLUG_CORE_SYNC_DEAD=y -CONFIG_HOTPLUG_CPU=y -CONFIG_HOTPLUG_PCI=y -# CONFIG_HOTPLUG_PCI_CPCI is not set -# CONFIG_HOTPLUG_PCI_PCIE is not set -CONFIG_HOTPLUG_PCI_SHPC=y -CONFIG_HWMON=y -CONFIG_HW_RANDOM=y -CONFIG_HW_RANDOM_IPROC_RNG200=y -# CONFIG_HZ_PERIODIC is not set -CONFIG_I2C=y -CONFIG_I2C_ALGOBIT=y -# CONFIG_I2C_BCM2708 is not set -CONFIG_I2C_BCM2835=y -CONFIG_I2C_BOARDINFO=y -CONFIG_I2C_BRCMSTB=y -CONFIG_I2C_DESIGNWARE_CORE=y -CONFIG_I2C_DESIGNWARE_PLATFORM=y -# CONFIG_IDPF is not set -CONFIG_INPUT=y -CONFIG_INPUT_MOUSEDEV=y -# CONFIG_INPUT_MOUSEDEV_PSAUX is not set -CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 -CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 -# CONFIG_IOMMUFD is not set -CONFIG_IOMMU_API=y -# CONFIG_IOMMU_DEBUGFS is not set -# CONFIG_IOMMU_DEFAULT_DMA_LAZY is not set -CONFIG_IOMMU_DEFAULT_DMA_STRICT=y -# CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set -CONFIG_IOMMU_DMA=y -CONFIG_IOMMU_IOVA=y -# CONFIG_IOMMU_IO_PGTABLE_ARMV7S is not set -# CONFIG_IOMMU_IO_PGTABLE_DART is not set -# CONFIG_IOMMU_IO_PGTABLE_LPAE is not set -CONFIG_IOMMU_SUPPORT=y -CONFIG_IRQ_MSI_IOMMU=y -CONFIG_JBD2=y -# CONFIG_KEBA_CP500 is not set -CONFIG_KEYS=y -CONFIG_LEDS_GPIO=y -# CONFIG_LEDS_KTD202X is not set -# CONFIG_LEDS_NCP5623 is not set -CONFIG_LEDS_PWM=y -CONFIG_LEDS_TRIGGER_ACTPWR=y -CONFIG_LEDS_TRIGGER_INPUT=y -# CONFIG_LEDS_TRIGGER_INPUT_EVENTS is not set -CONFIG_LOGO=y -CONFIG_LOGO_LINUX_CLUT224=y -# CONFIG_LOGO_LINUX_MONO is not set -# CONFIG_LOGO_LINUX_VGA16 is not set -CONFIG_MACB=y -CONFIG_MACB_PCI=y -CONFIG_MACB_USE_HWSTAMP=y -CONFIG_MAC_PARTITION=y -CONFIG_MAGIC_SYSRQ=y -CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1f6 -CONFIG_MAILBOX=y -# CONFIG_MAILBOX_TEST is not set -# CONFIG_MBOX_RP1 is not set -CONFIG_MDIO_BCM_UNIMAC=y -CONFIG_MDIO_BUS=y -CONFIG_MDIO_DEVICE=y -CONFIG_MDIO_DEVRES=y -CONFIG_MEDIA_CAMERA_SUPPORT=y -CONFIG_MEDIA_CONTROLLER=y -CONFIG_MEDIA_PLATFORM_DRIVERS=y -CONFIG_MEDIA_PLATFORM_SUPPORT=y -CONFIG_MEDIA_SUPPORT=y -CONFIG_MEDIA_SUPPORT_FILTER=y -CONFIG_MEMORY=y -CONFIG_MEMORY_ISOLATION=y -# CONFIG_MFD_88PM886_PMIC is not set -# CONFIG_MFD_ADP5585 is not set -CONFIG_MFD_CORE=y -# CONFIG_MFD_CS40L50_I2C is not set -# CONFIG_MFD_CS40L50_SPI is not set -# CONFIG_MFD_RASPBERRYPI_POE_HAT is not set -# CONFIG_MFD_ROHM_BD96801 is not set -CONFIG_MFD_RP1=y -CONFIG_MFD_SYSCON=y -CONFIG_MICROCHIP_PHY=y -CONFIG_MMC=y -# CONFIG_MMC_BCM2835 is not set -CONFIG_MMC_BCM2835_DMA=y -CONFIG_MMC_BCM2835_MMC=y -CONFIG_MMC_BCM2835_PIO_DMA_BARRIER=2 -CONFIG_MMC_BCM2835_SDHOST=y -CONFIG_MMC_BLOCK=y -CONFIG_MMC_BLOCK_MINORS=32 -CONFIG_MMC_CQHCI=y -CONFIG_MMC_HSQ=y -CONFIG_MMC_SDHCI=y -CONFIG_MMC_SDHCI_BRCMSTB=y -CONFIG_MMC_SDHCI_IO_ACCESSORS=y -CONFIG_MMC_SDHCI_IPROC=y -CONFIG_MMC_SDHCI_OF_DWCMSHC=y -# CONFIG_MMC_SDHCI_PCI is not set -CONFIG_MMC_SDHCI_PLTFM=y -CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y -CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y -CONFIG_NEED_SG_DMA_FLAGS=y -CONFIG_NET_DEVMEM=y -CONFIG_NET_PTP_CLASSIFY=y -CONFIG_NET_SELFTESTS=y -CONFIG_NLS=y -CONFIG_NLS_ASCII=y -CONFIG_NODES_SHIFT=4 -CONFIG_NOP_USB_XCEIV=y -CONFIG_NO_HZ=y -CONFIG_NO_HZ_COMMON=y -CONFIG_NO_HZ_IDLE=y -CONFIG_NR_CPUS=4 -CONFIG_NUMA=y -# CONFIG_NUMA_BALANCING is not set -# CONFIG_NUMA_EMU is not set -CONFIG_NUMA_MEMBLKS=y -CONFIG_NVMEM=y -CONFIG_NVMEM_LAYOUTS=y -CONFIG_NVMEM_RASPBERRYPI_OTP=y -CONFIG_NVME_CORE=y -# CONFIG_NVME_HWMON is not set -# CONFIG_NVME_MULTIPATH is not set -# CONFIG_OCTEON_EP_VF is not set -CONFIG_OF_CONFIGFS=y -CONFIG_OF_DYNAMIC=y -CONFIG_OF_IOMMU=y -CONFIG_OF_MDIO=y -CONFIG_OF_NUMA=y -CONFIG_OF_OVERLAY=y -CONFIG_OF_RESOLVE=y -CONFIG_PCI=y -CONFIG_PCIEAER=y -CONFIG_PCIEAER_INJECT=y -CONFIG_PCIEASPM=y -# CONFIG_PCIEASPM_DEFAULT is not set -# CONFIG_PCIEASPM_PERFORMANCE is not set -CONFIG_PCIEASPM_POWERSAVE=y -# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set -CONFIG_PCIEPORTBUS=y -CONFIG_PCIE_BRCMSTB=y -CONFIG_PCIE_DPC=y -CONFIG_PCIE_DW=y -CONFIG_PCIE_DW_HOST=y -CONFIG_PCIE_DW_PLAT=y -CONFIG_PCIE_DW_PLAT_HOST=y -CONFIG_PCIE_MICROCHIP_HOST=y -CONFIG_PCIE_PLDA_HOST=y -CONFIG_PCIE_PME=y -CONFIG_PCI_DOMAINS=y -CONFIG_PCI_DOMAINS_GENERIC=y -CONFIG_PCI_ECAM=y -CONFIG_PCI_HOST_COMMON=y -CONFIG_PCI_HOST_GENERIC=y -CONFIG_PCI_MSI=y -# CONFIG_PCI_NPEM is not set -CONFIG_PCI_STUB=y -CONFIG_PHYLIB=y -CONFIG_PHYLIB_LEDS=y -CONFIG_PHYLINK=y -# CONFIG_PHY_BRCM_SATA is not set -CONFIG_PHY_BRCM_USB=y -CONFIG_PINCTRL=y -# CONFIG_PINCTRL_AW9523 is not set -CONFIG_PINCTRL_BCM2712=y -CONFIG_PINCTRL_BCM2835=y -CONFIG_PINCTRL_RP1=y -CONFIG_PM=y -CONFIG_PM_CLK=y -CONFIG_PM_GENERIC_DOMAINS=y -CONFIG_PM_GENERIC_DOMAINS_OF=y -CONFIG_PM_GENERIC_DOMAINS_SLEEP=y -CONFIG_PM_OPP=y -CONFIG_PM_SLEEP=y -CONFIG_PM_SLEEP_SMP=y -CONFIG_POWER_RESET_GPIO=y -CONFIG_PPS=y -CONFIG_PRINTK_TIME=y -CONFIG_PTP_1588_CLOCK=y -# CONFIG_PTP_1588_CLOCK_FC3W is not set -CONFIG_PWM=y -CONFIG_PWM_BCM2835=y -CONFIG_PWM_BRCMSTB=y -# CONFIG_PWM_GPIO is not set -CONFIG_PWM_RP1=y -CONFIG_RAS=y -CONFIG_RASPBERRYPI_FIRMWARE=y -CONFIG_RASPBERRYPI_GPIOMEM=y -CONFIG_RASPBERRYPI_POWER=y -# CONFIG_RAVE_SP_CORE is not set -CONFIG_REGMAP=y -CONFIG_REGMAP_MMIO=y -CONFIG_REGULATOR=y -CONFIG_REGULATOR_FIXED_VOLTAGE=y -CONFIG_REGULATOR_GPIO=y -# CONFIG_REGULATOR_MAX77503 is not set -# CONFIG_REGULATOR_NETLINK_EVENTS is not set -# CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_V2 is not set -CONFIG_RESET_BRCMSTB=y -CONFIG_RESET_BRCMSTB_RESCAL=y -CONFIG_RESET_CONTROLLER=y -# CONFIG_RESET_GPIO is not set -CONFIG_RESET_RASPBERRYPI=y -CONFIG_RESET_SIMPLE=y -# CONFIG_RPI_POE_POWER is not set -# CONFIG_RPMB is not set -# CONFIG_RTASE is not set -CONFIG_RTC_CLASS=y -CONFIG_RTC_DRV_BRCMSTB=y -# CONFIG_RTC_DRV_MAX31335 is not set -CONFIG_RTC_DRV_RPI=y -# CONFIG_RTC_DRV_RX8111 is not set -# CONFIG_RTC_DRV_SD2405AL is not set -CONFIG_RTC_I2C_AND_SPI=y -CONFIG_RUSTC_SUPPORTS_ARM64=y -CONFIG_SCSI=y -CONFIG_SCSI_COMMON=y -# CONFIG_SCSI_LOWLEVEL is not set -# CONFIG_SCSI_PROC_FS is not set -# CONFIG_SENSORS_CHIPCAP2 is not set -# CONFIG_SENSORS_LTC2991 is not set -# CONFIG_SENSORS_LTC4282 is not set -# CONFIG_SENSORS_POWERZ is not set -# CONFIG_SENSORS_PT5161L is not set -CONFIG_SENSORS_RASPBERRYPI_HWMON=y -CONFIG_SENSORS_RP1_ADC=y -# CONFIG_SENSORS_SPD5118 is not set -CONFIG_SERIAL_8250_BCM2835AUX=y -CONFIG_SERIAL_8250_BCM7271=y -# CONFIG_SERIAL_8250_DMA is not set -CONFIG_SERIAL_8250_EXTENDED=y -CONFIG_SERIAL_8250_NR_UARTS=1 -CONFIG_SERIAL_8250_RUNTIME_UARTS=0 -CONFIG_SERIAL_8250_SHARE_IRQ=y -CONFIG_SERIAL_AMBA_PL011=y -CONFIG_SERIAL_AMBA_PL011_CONSOLE=y -CONFIG_SERIAL_DEV_BUS=y -# CONFIG_SERIAL_DEV_CTRL_TTYPORT is not set -CONFIG_SERIAL_OF_PLATFORM=y -# CONFIG_SERIAL_RPI_FW is not set -CONFIG_SG_POOL=y -CONFIG_SMSC_PHY=y -CONFIG_SOC_BRCMSTB=y -CONFIG_SOC_BUS=y -# CONFIG_STRIP_ASM_SYMS is not set -CONFIG_SUSPEND=y -CONFIG_SUSPEND_FREEZER=y -CONFIG_SWPHY=y -# CONFIG_TEHUTI_TN40 is not set -# CONFIG_TEXTSEARCH is not set -CONFIG_THERMAL=y -# CONFIG_THERMAL_CORE_TESTING is not set -# CONFIG_THERMAL_DEBUGFS is not set -CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y -CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 -CONFIG_THERMAL_GOV_STEP_WISE=y -CONFIG_THERMAL_OF=y -# CONFIG_UCLAMP_TASK is not set -CONFIG_UEVENT_HELPER_PATH="" -CONFIG_USB=y -CONFIG_USB_ANNOUNCE_NEW_DEVICES=y -# CONFIG_USB_BRCMSTB is not set -CONFIG_USB_COMMON=y -CONFIG_USB_DEFAULT_AUTHORIZATION_MODE=1 -CONFIG_USB_DWC3=y -# CONFIG_USB_DWC3_DUAL_ROLE is not set -# CONFIG_USB_DWC3_GADGET is not set -CONFIG_USB_DWC3_HOST=y -CONFIG_USB_DWCOTG=y -CONFIG_USB_GADGET=y -# CONFIG_USB_HCD_BCMA is not set -# CONFIG_USB_ONBOARD_DEV is not set -CONFIG_USB_PCI=y -# CONFIG_USB_PCI_AMD is not set -CONFIG_USB_PHY=y -CONFIG_USB_STORAGE=y -CONFIG_USB_SUPPORT=y -CONFIG_USB_UAS=y -# CONFIG_USB_UHCI_HCD is not set -CONFIG_USB_XHCI_HCD=y -CONFIG_USB_XHCI_PCI=y -CONFIG_USB_XHCI_PLATFORM=y -CONFIG_USE_PERCPU_NUMA_NODE_ID=y -CONFIG_VCHIQ_CDEV=y -CONFIG_VIDEO=y -# CONFIG_VIDEO_AD5398 is not set -# CONFIG_VIDEO_BCM2835_UNICAM is not set -# CONFIG_VIDEO_BCM2835_UNICAM_LEGACY is not set -# CONFIG_VIDEO_BU64754 is not set -# CONFIG_VIDEO_CODEC_BCM2835 is not set -CONFIG_VIDEO_DEV=y -# CONFIG_VIDEO_IRS1125 is not set -# CONFIG_VIDEO_ISP_BCM2835 is not set -# CONFIG_VIDEO_MAX96714 is not set -# CONFIG_VIDEO_MAX96717 is not set -# CONFIG_VIDEO_MGB4 is not set -# CONFIG_VIDEO_RASPBERRYPI_PISP_BE is not set -# CONFIG_VIDEO_RP1_CFE is not set -# CONFIG_VIDEO_THP7312 is not set -CONFIG_VIDEO_V4L2_I2C=y -CONFIG_VMAP_STACK=y -CONFIG_VT=y -CONFIG_VT_CONSOLE=y -CONFIG_VT_CONSOLE_SLEEP=y -CONFIG_VT_HW_CONSOLE_BINDING=y -CONFIG_WATCHDOG_CORE=y -CONFIG_XZ_DEC_ARM=y diff --git a/6.12/target/linux/bcm27xx/config-6.12 b/6.12/target/linux/bcm27xx/config-6.12 deleted file mode 100644 index 81e04c00..00000000 --- a/6.12/target/linux/bcm27xx/config-6.12 +++ /dev/null @@ -1,259 +0,0 @@ -CONFIG_64BIT=y -# CONFIG_AF8133J is not set -CONFIG_ARCH_BINFMT_ELF_EXTRA_PHDRS=y -CONFIG_ARCH_CORRECT_STACKTRACE_ON_KRETPROBE=y -CONFIG_ARCH_DEFAULT_KEXEC_IMAGE_VERIFY_SIG=y -CONFIG_ARCH_DMA_ADDR_T_64BIT=y -CONFIG_ARCH_FORCE_MAX_ORDER=10 -CONFIG_ARCH_KEEP_MEMBLOCK=y -CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y -CONFIG_ARCH_MMAP_RND_BITS=18 -CONFIG_ARCH_MMAP_RND_BITS_MAX=18 -CONFIG_ARCH_MMAP_RND_BITS_MIN=18 -CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=11 -# CONFIG_ARCH_PENSANDO is not set -CONFIG_ARCH_PKEY_BITS=3 -CONFIG_ARCH_PROC_KCORE_TEXT=y -CONFIG_ARCH_SPARSEMEM_ENABLE=y -CONFIG_ARCH_STACKWALK=y -CONFIG_ARCH_SUSPEND_POSSIBLE=y -CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y -CONFIG_ARCH_WANTS_EXECMEM_LATE=y -CONFIG_ARCH_WANTS_NO_INSTR=y -CONFIG_ARCH_WANTS_THP_SWAP=y -CONFIG_ARM64=y -CONFIG_ARM64_4K_PAGES=y -# CONFIG_ARM64_FORCE_52BIT is not set -CONFIG_ARM64_LD_HAS_FIX_ERRATUM_843419=y -CONFIG_ARM64_LPA2=y -CONFIG_ARM64_PA_BITS=52 -CONFIG_ARM64_PA_BITS_52=y -CONFIG_ARM64_PLATFORM_DEVICES=y -CONFIG_ARM64_POE=y -CONFIG_ARM64_TAGGED_ADDR_ABI=y -CONFIG_ARM64_VA_BITS=52 -# CONFIG_ARM64_VA_BITS_39 is not set -CONFIG_ARM64_VA_BITS_52=y -CONFIG_ARM_AMBA=y -CONFIG_ARM_ARCH_TIMER=y -CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y -CONFIG_ARM_GIC=y -CONFIG_ARM_GIC_V3=y -CONFIG_ARM_GIC_V3_ITS=y -# CONFIG_ARM_NI is not set -CONFIG_ARM_PSCI_FW=y -CONFIG_AUDIT_ARCH_COMPAT_GENERIC=y -# CONFIG_BACKLIGHT_KTD2801 is not set -# CONFIG_BACKLIGHT_LM3509 is not set -# CONFIG_BACKLIGHT_MP3309C is not set -# CONFIG_BACKLIGHT_RPI is not set -# CONFIG_BASE_SMALL is not set -# CONFIG_BCACHEFS_FS is not set -# CONFIG_BCM2712_MIP is not set -# CONFIG_BRCM_CHAR_DRIVERS is not set -# CONFIG_BT_HCIUART_AML is not set -CONFIG_BUILTIN_RETURN_ADDRESS_STRIPS_PAC=y -CONFIG_CC_HAVE_SHADOW_CALL_STACK=y -CONFIG_CC_HAVE_STACKPROTECTOR_SYSREG=y -CONFIG_CLONE_BACKWARDS=y -CONFIG_COMMON_CLK=y -CONFIG_COMPACT_UNEVICTABLE_DEFAULT=1 -# CONFIG_COMPAT_32BIT_TIME is not set -# CONFIG_COMPRESSED_INSTALL is not set -CONFIG_CONTEXT_TRACKING=y -CONFIG_CONTEXT_TRACKING_IDLE=y -CONFIG_CPUMASK_OFFSTACK=y -# CONFIG_CPUSETS_V1 is not set -CONFIG_CPU_BIG_ENDIAN=y -CONFIG_CPU_MITIGATIONS=y -CONFIG_CPU_RMAP=y -CONFIG_CRYPTO_ECB=y -CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y -CONFIG_CRYPTO_LIB_GF128MUL=y -CONFIG_CRYPTO_LIB_SHA1=y -CONFIG_CRYPTO_LIB_UTILS=y -CONFIG_DCACHE_WORD_ACCESS=y -CONFIG_DEBUG_INFO=y -CONFIG_DMA_DIRECT_REMAP=y -CONFIG_DMA_NEED_SYNC=y -# CONFIG_DRM_DISPLAY_DP_AUX_CEC is not set -# CONFIG_DRM_DISPLAY_DP_AUX_CHARDEV is not set -# CONFIG_DRM_PANEL_BOE_TH101MB31UIG002_28A is not set -# CONFIG_DRM_PANEL_BOE_TV101WUM_LL2 is not set -# CONFIG_DRM_PANEL_HIMAX_HX83102 is not set -# CONFIG_DRM_PANEL_HIMAX_HX83112A is not set -# CONFIG_DRM_PANEL_ILITEK_ILI9805 is not set -# CONFIG_DRM_PANEL_ILITEK_ILI9806E is not set -# CONFIG_DRM_PANEL_ILITEK_ILI9882T is not set -# CONFIG_DRM_PANEL_JDI_LPM102A188A is not set -# CONFIG_DRM_PANEL_LG_SW43408 is not set -# CONFIG_DRM_PANEL_LINCOLNTECH_LCD197 is not set -# CONFIG_DRM_PANEL_NOVATEK_NT36672E is not set -# CONFIG_DRM_PANEL_RAYDIUM_RM692E5 is not set -# CONFIG_DRM_PANEL_RAYDIUM_RM69380 is not set -# CONFIG_DRM_PANEL_SAMSUNG_S6E3FA7 is not set -# CONFIG_DRM_PANEL_SYNAPTICS_R63353 is not set -# CONFIG_DRM_PANEL_TPO_Y17P is not set -# CONFIG_DRM_PANEL_WAVESHARE_TOUCHSCREEN is not set -# CONFIG_DRM_PANIC is not set -# CONFIG_DRM_PANTHOR is not set -# CONFIG_DRM_POWERVR is not set -# CONFIG_DRM_RP1_DPI is not set -# CONFIG_DRM_RP1_DSI is not set -# CONFIG_DRM_RP1_VEC is not set -# CONFIG_DRM_XE is not set -CONFIG_DTC=y -# CONFIG_DWC_PCIE_PMU is not set -CONFIG_EDAC_SUPPORT=y -CONFIG_EXCLUSIVE_SYSTEM_RAM=y -CONFIG_FIX_EARLYCON_MEM=y -CONFIG_FRAME_POINTER=y -CONFIG_FS_IOMAP=y -CONFIG_FUNCTION_ALIGNMENT=4 -CONFIG_FUNCTION_ALIGNMENT_4B=y -CONFIG_FW_LOADER_PAGED_BUF=y -CONFIG_FW_LOADER_SYSFS=y -CONFIG_GCC_SUPPORTS_DYNAMIC_FTRACE_WITH_ARGS=y -CONFIG_GENERIC_ALLOCATOR=y -CONFIG_GENERIC_ARCH_TOPOLOGY=y -CONFIG_GENERIC_BUG=y -CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y -CONFIG_GENERIC_CLOCKEVENTS=y -CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y -CONFIG_GENERIC_CPU_AUTOPROBE=y -CONFIG_GENERIC_CPU_DEVICES=y -CONFIG_GENERIC_CPU_VULNERABILITIES=y -CONFIG_GENERIC_CSUM=y -CONFIG_GENERIC_EARLY_IOREMAP=y -CONFIG_GENERIC_GETTIMEOFDAY=y -CONFIG_GENERIC_IDLE_POLL_SETUP=y -CONFIG_GENERIC_IOREMAP=y -CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y -CONFIG_GENERIC_IRQ_SHOW=y -CONFIG_GENERIC_IRQ_SHOW_LEVEL=y -CONFIG_GENERIC_LIB_DEVMEM_IS_ALLOWED=y -CONFIG_GENERIC_MSI_IRQ=y -CONFIG_GENERIC_PCI_IOMAP=y -CONFIG_GENERIC_SCHED_CLOCK=y -CONFIG_GENERIC_SMP_IDLE_THREAD=y -CONFIG_GENERIC_STRNCPY_FROM_USER=y -CONFIG_GENERIC_STRNLEN_USER=y -CONFIG_GENERIC_TIME_VSYSCALL=y -CONFIG_GPIO_CDEV=y -# CONFIG_GPIO_FSM is not set -# CONFIG_GPIO_SLOPPY_LOGIC_ANALYZER is not set -# CONFIG_GPIO_VIRTUSER is not set -CONFIG_HARDIRQS_SW_RESEND=y -CONFIG_HAS_DMA=y -CONFIG_HAS_IOMEM=y -CONFIG_HAS_IOPORT=y -CONFIG_HISILICON_ERRATUM_162100801=y -CONFIG_HZ_PERIODIC=y -CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 -CONFIG_INITRAMFS_SOURCE="" -CONFIG_IRQCHIP=y -CONFIG_IRQ_DOMAIN=y -CONFIG_IRQ_DOMAIN_HIERARCHY=y -CONFIG_IRQ_FORCED_THREADING=y -CONFIG_IRQ_MSI_LIB=y -CONFIG_IRQ_WORK=y -# CONFIG_LAN966X_OIC is not set -# CONFIG_LEDS_LP5569 is not set -# CONFIG_LEDS_TRIGGER_ACTPWR is not set -# CONFIG_LEDS_TRIGGER_INPUT is not set -CONFIG_LIBFDT=y -CONFIG_LOCK_DEBUGGING_SUPPORT=y -CONFIG_LOCK_SPIN_ON_OWNER=y -CONFIG_LRU_GEN_WALKS_MMU=y -# CONFIG_LWQ_TEST is not set -# CONFIG_MEDIA_PCI_HAILO is not set -# CONFIG_MEMCG_V1 is not set -# CONFIG_MEM_ALLOC_PROFILING is not set -CONFIG_MIGRATION=y -CONFIG_MMU_LAZY_TLB_REFCOUNT=y -CONFIG_MODULES_USE_ELF_RELA=y -# CONFIG_MODULE_COMPRESS is not set -CONFIG_MUTEX_SPIN_ON_OWNER=y -CONFIG_NEED_DMA_MAP_STATE=y -CONFIG_NEED_SG_DMA_LENGTH=y -# CONFIG_NETKIT is not set -# CONFIG_NET_9P_USBG is not set -CONFIG_NET_EGRESS=y -CONFIG_NET_FLOW_LIMIT=y -CONFIG_NET_INGRESS=y -CONFIG_NET_XGRESS=y -CONFIG_NO_IOPORT_MAP=y -CONFIG_NR_CPUS=512 -CONFIG_OF=y -CONFIG_OF_ADDRESS=y -# CONFIG_OF_CONFIGFS is not set -CONFIG_OF_EARLY_FLATTREE=y -CONFIG_OF_FLATTREE=y -CONFIG_OF_GPIO=y -CONFIG_OF_IRQ=y -CONFIG_OF_KOBJ=y -CONFIG_PADATA=y -CONFIG_PAGE_POOL=y -CONFIG_PAGE_SIZE_LESS_THAN_256KB=y -CONFIG_PAGE_SIZE_LESS_THAN_64KB=y -CONFIG_PAHOLE_HAS_LANG_EXCLUDE=y -CONFIG_PARTITION_PERCPU=y -CONFIG_PER_VMA_LOCK=y -# CONFIG_PFCP is not set -CONFIG_PGTABLE_LEVELS=5 -CONFIG_PHYS_ADDR_T_64BIT=y -CONFIG_POSIX_CPU_TIMERS_TASK_WORK=y -CONFIG_POWER_RESET=y -# CONFIG_POWER_SEQUENCING is not set -CONFIG_POWER_SUPPLY=y -CONFIG_PREEMPT_NONE_BUILD=y -# CONFIG_PREEMPT_RT is not set -CONFIG_PTP_1588_CLOCK_OPTIONAL=y -CONFIG_QUEUED_RWLOCKS=y -CONFIG_QUEUED_SPINLOCKS=y -CONFIG_RANDSTRUCT_NONE=y -# CONFIG_RASPBERRYPI_GPIOMEM is not set -CONFIG_RATIONAL=y -CONFIG_RFS_ACCEL=y -CONFIG_RODATA_FULL_DEFAULT_ENABLED=y -# CONFIG_RP1_PIO is not set -CONFIG_RPS=y -CONFIG_RWSEM_SPIN_ON_OWNER=y -# CONFIG_SENSORS_ASUS_ROG_RYUJIN is not set -CONFIG_SERIAL_8250_FSL=y -CONFIG_SERIAL_MCTRL_GPIO=y -# CONFIG_SERIAL_RPI_FW is not set -CONFIG_SMP=y -# CONFIG_SND_PIMIDI is not set -CONFIG_SOCK_RX_QUEUE_MAPPING=y -CONFIG_SOFTIRQ_ON_OWN_STACK=y -CONFIG_SPARSEMEM=y -CONFIG_SPARSEMEM_EXTREME=y -CONFIG_SPARSEMEM_VMEMMAP=y -CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y -CONFIG_SPARSE_IRQ=y -# CONFIG_SPI_RP2040_GPIO_BRIDGE is not set -CONFIG_SPLIT_PMD_PTLOCKS=y -CONFIG_SPLIT_PTE_PTLOCKS=y -CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y -CONFIG_SWIOTLB=y -CONFIG_SYSCTL_EXCEPTION_TRACE=y -# CONFIG_TCP_AO is not set -# CONFIG_TEST_FPU is not set -# CONFIG_TEST_MULDIV64 is not set -# CONFIG_TEST_OBJPOOL is not set -CONFIG_THREAD_INFO_IN_TASK=y -CONFIG_TICK_CPU_ACCOUNTING=y -CONFIG_TIMER_OF=y -CONFIG_TIMER_PROBE=y -CONFIG_TOOLS_SUPPORT_RELR=y -CONFIG_TRACE_IRQFLAGS_NMI_SUPPORT=y -CONFIG_TREE_RCU=y -CONFIG_TREE_SRCU=y -CONFIG_UNMAP_KERNEL_AT_EL0=y -CONFIG_USER_STACKTRACE_SUPPORT=y -CONFIG_VDSO_GETRANDOM=y -# CONFIG_W1_MASTER_UART is not set -CONFIG_XPS=y -CONFIG_XZ_DEC_BCJ=y -CONFIG_ZONE_DMA32=y diff --git a/6.12/target/linux/bcm27xx/image/Makefile b/6.12/target/linux/bcm27xx/image/Makefile deleted file mode 100644 index 3a0ab2c1..00000000 --- a/6.12/target/linux/bcm27xx/image/Makefile +++ /dev/null @@ -1,223 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only -# -# Copyright (C) 2012-2019 OpenWrt.org -# Copyright (C) 2016-2017 LEDE project - -include $(TOPDIR)/rules.mk -include $(INCLUDE_DIR)/image.mk - -FAT32_BLOCK_SIZE=1024 -FAT32_BLOCKS=$(shell echo $$(($(CONFIG_TARGET_KERNEL_PARTSIZE)*1024*1024/$(FAT32_BLOCK_SIZE)))) - -define Build/Compile - $(CP) $(LINUX_DIR)/COPYING $(KDIR)/COPYING.linux -endef - -### Image scripts ### -define Build/boot-common - echo $(IMG_PART_SIGNATURE) > $@-partuuid.txt - sed \ - -e 's#@ROOT@#PARTUUID=$(IMG_PART_SIGNATURE)-02#g' \ - cmdline.txt > $@-cmdline.txt - - rm -f $@.boot - mkfs.fat -n boot -C $@.boot $(FAT32_BLOCKS) - mcopy -i $@.boot $(KDIR)/COPYING.linux :: - mcopy -i $@.boot $(KDIR)/LICENCE.broadcom :: - mcopy -i $@.boot $@-cmdline.txt ::cmdline.txt - mcopy -i $@.boot config.txt :: - mcopy -i $@.boot distroconfig.txt :: - mcopy -i $@.boot $@-partuuid.txt ::partuuid.txt - mcopy -i $@.boot $(IMAGE_KERNEL) ::$(KERNEL_IMG) - $(foreach dts,$(shell echo $(DEVICE_DTS)),mcopy -i $@.boot $(DTS_DIR)/$(dts).dtb ::;) - mmd -i $@.boot ::/overlays - mcopy -i $@.boot $(DTS_DIR)/overlays/*.dtbo ::/overlays/ - mcopy -i $@.boot $(DTS_DIR)/overlays/README ::/overlays/ -endef - -define Build/boot-2708 - mcopy -i $@.boot $(KDIR)/bootcode.bin :: - mcopy -i $@.boot $(KDIR)/start.elf :: - mcopy -i $@.boot $(KDIR)/start_cd.elf :: - mcopy -i $@.boot $(KDIR)/start_x.elf :: - mcopy -i $@.boot $(KDIR)/fixup.dat :: - mcopy -i $@.boot $(KDIR)/fixup_cd.dat :: - mcopy -i $@.boot $(KDIR)/fixup_x.dat :: -endef - -define Build/boot-2711 - mcopy -i $@.boot $(KDIR)/start4.elf :: - mcopy -i $@.boot $(KDIR)/start4cd.elf :: - mcopy -i $@.boot $(KDIR)/start4x.elf :: - mcopy -i $@.boot $(KDIR)/fixup4.dat :: - mcopy -i $@.boot $(KDIR)/fixup4cd.dat :: - mcopy -i $@.boot $(KDIR)/fixup4x.dat :: -endef - -define Build/sdcard-img - SIGNATURE="$(IMG_PART_SIGNATURE)" \ - ./gen_rpi_sdcard_img.sh $@ $@.boot $(IMAGE_ROOTFS) \ - $(CONFIG_TARGET_KERNEL_PARTSIZE) $(CONFIG_TARGET_ROOTFS_PARTSIZE) -endef - -### Devices ### -define Device/Default - DEVICE_VENDOR := Raspberry Pi - KERNEL := kernel-bin - KERNEL_IMG := kernel.img - IMAGES := factory.img.gz sysupgrade.img.gz - IMAGE/sysupgrade.img.gz := boot-common | boot-2708 | sdcard-img | gzip | append-metadata - IMAGE/factory.img.gz := boot-common | boot-2708 | sdcard-img | gzip -endef - -define Device/rpi - DEVICE_MODEL := A/A+/B/B+/CM/Zero/ZeroW - DEVICE_DTS := \ - broadcom/bcm2708-rpi-b broadcom/bcm2708-rpi-b-rev1 broadcom/bcm2708-rpi-b-plus \ - broadcom/bcm2708-rpi-cm \ - broadcom/bcm2708-rpi-zero broadcom/bcm2708-rpi-zero-w - SUPPORTED_DEVICES := \ - rpi-a rpi-a-plus \ - rpi-b rpi-b-plus \ - rpi-cm \ - rpi-zero rpi-zero-w \ - raspberrypi,model-a raspberrypi,model-a-plus \ - raspberrypi,model-b raspberrypi,model-b-plus raspberrypi,model-b-rev2 \ - raspberrypi,compute-module raspberrypi,compute-module-1 \ - raspberrypi,model-zero raspberrypi,model-zero-w - DEVICE_PACKAGES := \ - cypress-firmware-43430-sdio \ - brcmfmac-nvram-43430-sdio \ - kmod-brcmfmac wpad-basic-mbedtls -endef -ifeq ($(SUBTARGET),bcm2708) - TARGET_DEVICES += rpi -endif - -define Device/rpi-2 - DEVICE_MODEL := 2B/2B 1.2 - DEVICE_VARIANT := (32bit) - DEVICE_ALT0_VENDOR := Raspberry Pi - DEVICE_ALT0_MODEL := 3A+/3B/3B+/CM3/Zero2/Zero2W - DEVICE_ALT0_VARIANT := (32bit) - DEVICE_ALT1_VENDOR := Raspberry Pi - DEVICE_ALT1_MODEL := 4B/400/CM4 - DEVICE_ALT1_VARIANT := (32bit) - DEVICE_DTS := \ - broadcom/bcm2709-rpi-2-b broadcom/bcm2710-rpi-2-b \ - broadcom/bcm2710-rpi-3-b broadcom/bcm2710-rpi-3-b-plus \ - broadcom/bcm2711-rpi-4-b broadcom/bcm2711-rpi-400 \ - broadcom/bcm2710-rpi-cm3 broadcom/bcm2711-rpi-cm4 \ - broadcom/bcm2710-rpi-zero-2 broadcom/bcm2710-rpi-zero-2-w - SUPPORTED_DEVICES := \ - rpi-2-b \ - rpi-3-a-plus \ - rpi-3-b rpi-3-b-plus \ - rpi-4-b rpi-400 \ - rpi-cm \ - rpi-zero-2 rpi-zero-2-w \ - raspberrypi,2-model-b raspberrypi,2-model-b-rev2 \ - raspberrypi,3-model-a-plus \ - raspberrypi,3-model-b raspberrypi,3-model-b-plus \ - raspberrypi,3-compute-module raspberrypi,compute-module-3 \ - raspberrypi,400 raspberrypi,4-compute-module raspberrypi,4-model-b \ - raspberrypi,model-zero-2 raspberrypi,model-zero-2-w - DEVICE_PACKAGES := \ - cypress-firmware-43430-sdio \ - brcmfmac-nvram-43430-sdio \ - cypress-firmware-43455-sdio \ - brcmfmac-nvram-43455-sdio \ - kmod-brcmfmac wpad-basic-mbedtls - IMAGE/sysupgrade.img.gz := boot-common | boot-2708 | boot-2711 | sdcard-img | gzip | append-metadata - IMAGE/factory.img.gz := boot-common | boot-2708 | boot-2711 | sdcard-img | gzip -endef -ifeq ($(SUBTARGET),bcm2709) - TARGET_DEVICES += rpi-2 -endif - -define Device/rpi-3 - DEVICE_MODEL := 3A+/3B/3B+/CM3/Zero2/Zero2W - DEVICE_VARIANT := (64bit) - DEVICE_ALT0_VENDOR := Raspberry Pi - DEVICE_ALT0_MODEL := 2B-1.2 - DEVICE_ALT0_VARIANT := (64bit) - KERNEL_IMG := kernel8.img - DEVICE_DTS := \ - broadcom/bcm2710-rpi-2-b \ - broadcom/bcm2710-rpi-3-b broadcom/bcm2710-rpi-3-b-plus \ - broadcom/bcm2710-rpi-cm3 \ - broadcom/bcm2710-rpi-zero-2 broadcom/bcm2710-rpi-zero-2-w - SUPPORTED_DEVICES := \ - rpi-3-a-plus \ - rpi-3-b rpi-3-b-plus \ - rpi-zero-2 rpi-zero-2-w \ - raspberrypi,2-model-b-rev2 \ - raspberrypi,3-model-a-plus \ - raspberrypi,3-model-b raspberrypi,3-model-b-plus \ - raspberrypi,3-compute-module raspberrypi,compute-module-3 \ - raspberrypi,model-zero-2 raspberrypi,model-zero-2-w - DEVICE_PACKAGES := \ - cypress-firmware-43430-sdio \ - brcmfmac-nvram-43430-sdio \ - cypress-firmware-43455-sdio \ - brcmfmac-nvram-43455-sdio \ - kmod-brcmfmac wpad-basic-mbedtls -endef -ifeq ($(SUBTARGET),bcm2710) - TARGET_DEVICES += rpi-3 -endif - -define Device/rpi-4 - DEVICE_MODEL := 4B/400/CM4 - DEVICE_VARIANT := (64bit) - KERNEL_IMG := kernel8.img - DEVICE_DTS := \ - broadcom/bcm2711-rpi-400 \ - broadcom/bcm2711-rpi-4-b \ - broadcom/bcm2711-rpi-cm4 \ - broadcom/bcm2711-rpi-cm4s \ - broadcom/bcm2711-rpi-cm4-io - SUPPORTED_DEVICES := \ - raspberrypi,400 \ - raspberrypi,4-compute-module \ - raspberrypi,4-model-b - DEVICE_PACKAGES := \ - cypress-firmware-43455-sdio \ - brcmfmac-nvram-43455-sdio \ - kmod-brcmfmac wpad-basic-mbedtls \ - kmod-usb-net-lan78xx \ - kmod-r8169 - IMAGE/sysupgrade.img.gz := boot-common | boot-2711 | sdcard-img | gzip | append-metadata - IMAGE/factory.img.gz := boot-common | boot-2711 | sdcard-img | gzip -endef -ifeq ($(SUBTARGET),bcm2711) - TARGET_DEVICES += rpi-4 -endif - -define Device/rpi-5 - DEVICE_MODEL := 5/CM5 - KERNEL_IMG := kernel_2712.img - DEVICE_DTS := \ - broadcom/bcm2712-rpi-500 \ - broadcom/bcm2712-rpi-5-b \ - broadcom/bcm2712-rpi-cm5-cm4io \ - broadcom/bcm2712-rpi-cm5-cm5io \ - broadcom/bcm2712-rpi-cm5l-cm4io \ - broadcom/bcm2712-rpi-cm5l-cm5io - SUPPORTED_DEVICES := \ - raspberrypi,500 \ - raspberrypi,5-compute-module \ - raspberrypi,5-model-b - DEVICE_PACKAGES := \ - cypress-firmware-43455-sdio \ - brcmfmac-nvram-43455-sdio \ - kmod-brcmfmac wpad-basic-mbedtls \ - kmod-hwmon-pwmfan kmod-thermal - IMAGE/sysupgrade.img.gz := boot-common | sdcard-img | gzip | append-metadata - IMAGE/factory.img.gz := boot-common | sdcard-img | gzip -endef -ifeq ($(SUBTARGET),bcm2712) - TARGET_DEVICES += rpi-5 -endif - -$(eval $(call BuildImage)) diff --git a/6.12/target/linux/bcm27xx/patches-6.12/950-0004-Revert-spi-spidev-Fix-CS-polarity-if-GPIO-descriptor.patch b/6.12/target/linux/bcm27xx/patches-6.12/950-0004-Revert-spi-spidev-Fix-CS-polarity-if-GPIO-descriptor.patch deleted file mode 100644 index 7795f60e..00000000 --- a/6.12/target/linux/bcm27xx/patches-6.12/950-0004-Revert-spi-spidev-Fix-CS-polarity-if-GPIO-descriptor.patch +++ /dev/null @@ -1,22 +0,0 @@ -From 99b87b80f2e12dfecaa0d63267769203ebb04d04 Mon Sep 17 00:00:00 2001 -From: Phil Elwell -Date: Mon, 20 Apr 2020 13:41:10 +0100 -Subject: [PATCH 004/697] Revert "spi: spidev: Fix CS polarity if GPIO - descriptors are used" - -This reverts commit 83b2a8fe43bda0c11981ad6afa5dd0104d78be28. ---- - drivers/spi/spidev.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/drivers/spi/spidev.c -+++ b/drivers/spi/spidev.c -@@ -428,7 +428,7 @@ spidev_ioctl(struct file *filp, unsigned - } - - if (ctlr->use_gpio_descriptors && spi_get_csgpiod(spi, 0)) -- tmp |= SPI_CS_HIGH; -+ { /*tmp |= SPI_CS_HIGH;*/ } - - tmp |= spi->mode & ~SPI_MODE_MASK; - spi->mode = tmp & SPI_MODE_USER_MASK; diff --git a/6.12/target/linux/bcm27xx/patches-6.12/950-0005-Revert-net-bcmgenet-Request-APD-DLL-disable-and-IDDQ.patch b/6.12/target/linux/bcm27xx/patches-6.12/950-0005-Revert-net-bcmgenet-Request-APD-DLL-disable-and-IDDQ.patch deleted file mode 100644 index 04bd164b..00000000 --- a/6.12/target/linux/bcm27xx/patches-6.12/950-0005-Revert-net-bcmgenet-Request-APD-DLL-disable-and-IDDQ.patch +++ /dev/null @@ -1,29 +0,0 @@ -From d1f6582242f7b5ee85a46b10c496957ee38e62b5 Mon Sep 17 00:00:00 2001 -From: Phil Elwell -Date: Mon, 7 Mar 2022 16:18:55 +0000 -Subject: [PATCH 005/697] Revert "net: bcmgenet: Request APD, DLL disable and - IDDQ-SR" - -This reverts commit c3a4c69360ab43560f212eed326c9d8bde35b14c, which -broke rebooting when network booting. - -See: https://github.com/raspberrypi/rpi-eeprom/issues/417 - -Signed-off-by: Phil Elwell ---- - drivers/net/ethernet/broadcom/genet/bcmmii.c | 4 +--- - 1 file changed, 1 insertion(+), 3 deletions(-) - ---- a/drivers/net/ethernet/broadcom/genet/bcmmii.c -+++ b/drivers/net/ethernet/broadcom/genet/bcmmii.c -@@ -304,9 +304,7 @@ int bcmgenet_mii_probe(struct net_device - struct device_node *dn = kdev->of_node; - phy_interface_t phy_iface = priv->phy_interface; - struct phy_device *phydev; -- u32 phy_flags = PHY_BRCM_AUTO_PWRDWN_ENABLE | -- PHY_BRCM_DIS_TXCRXC_NOENRGY | -- PHY_BRCM_IDDQ_SUSPEND; -+ u32 phy_flags = 0; - int ret; - - /* Communicate the integrated PHY revision */ diff --git a/6.12/target/linux/bcm27xx/patches-6.12/950-0006-Revert-Revert-xhci-add-quirk-for-host-controllers-th.patch b/6.12/target/linux/bcm27xx/patches-6.12/950-0006-Revert-Revert-xhci-add-quirk-for-host-controllers-th.patch deleted file mode 100644 index b3d402d6..00000000 --- a/6.12/target/linux/bcm27xx/patches-6.12/950-0006-Revert-Revert-xhci-add-quirk-for-host-controllers-th.patch +++ /dev/null @@ -1,69 +0,0 @@ -From f7aff06f3804aef99910922397bf196cfaa5479e Mon Sep 17 00:00:00 2001 -From: Dom Cobley -Date: Mon, 31 Jul 2023 13:47:10 +0100 -Subject: [PATCH 006/697] Revert "Revert "xhci: add quirk for host controllers - that don't update endpoint DCS"" - -This reverts commit 5bef4b3cb95a5b883dfec8b3ffc0d671323d55bb. - -We don't agree with upstream revert so undo it. ---- - drivers/usb/host/xhci-pci.c | 4 +++- - drivers/usb/host/xhci-ring.c | 23 ++++++++++++++++++++++- - 2 files changed, 25 insertions(+), 2 deletions(-) - ---- a/drivers/usb/host/xhci-pci.c -+++ b/drivers/usb/host/xhci-pci.c -@@ -424,8 +424,10 @@ static void xhci_pci_quirks(struct devic - pdev->device == 0x3432) - xhci->quirks |= XHCI_BROKEN_STREAMS; - -- if (pdev->vendor == PCI_VENDOR_ID_VIA && pdev->device == 0x3483) -+ if (pdev->vendor == PCI_VENDOR_ID_VIA && pdev->device == 0x3483) { - xhci->quirks |= XHCI_LPM_SUPPORT; -+ xhci->quirks |= XHCI_EP_CTX_BROKEN_DCS; -+ } - - if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA && - pdev->device == PCI_DEVICE_ID_ASMEDIA_1042_XHCI) { ---- a/drivers/usb/host/xhci-ring.c -+++ b/drivers/usb/host/xhci-ring.c -@@ -637,8 +637,11 @@ static int xhci_move_dequeue_past_td(str - struct xhci_ring *ep_ring; - struct xhci_command *cmd; - struct xhci_segment *new_seg; -+ struct xhci_segment *halted_seg = NULL; - union xhci_trb *new_deq; - int new_cycle; -+ union xhci_trb *halted_trb; -+ int index = 0; - dma_addr_t addr; - u64 hw_dequeue; - bool cycle_found = false; -@@ -657,7 +660,25 @@ static int xhci_move_dequeue_past_td(str - hw_dequeue = xhci_get_hw_deq(xhci, dev, ep_index, stream_id); - new_seg = ep_ring->deq_seg; - new_deq = ep_ring->dequeue; -- new_cycle = hw_dequeue & 0x1; -+ -+ /* -+ * Quirk: xHC write-back of the DCS field in the hardware dequeue -+ * pointer is wrong - use the cycle state of the TRB pointed to by -+ * the dequeue pointer. -+ */ -+ if (xhci->quirks & XHCI_EP_CTX_BROKEN_DCS && -+ !(ep->ep_state & EP_HAS_STREAMS)) -+ halted_seg = trb_in_td(xhci, td, hw_dequeue & ~0xf, false); -+ if (halted_seg) { -+ index = ((dma_addr_t)(hw_dequeue & ~0xf) - halted_seg->dma) / -+ sizeof(*halted_trb); -+ halted_trb = &halted_seg->trbs[index]; -+ new_cycle = halted_trb->generic.field[3] & 0x1; -+ xhci_dbg(xhci, "Endpoint DCS = %d TRB index = %d cycle = %d\n", -+ (u8)(hw_dequeue & 0x1), index, new_cycle); -+ } else { -+ new_cycle = hw_dequeue & 0x1; -+ } - - /* - * We want to find the pointer, segment and cycle state of the new trb diff --git a/6.12/target/linux/bcm27xx/patches-6.12/950-0007-Revert-PCI-brcmstb-Configure-HW-CLKREQ-mode-appropri.patch b/6.12/target/linux/bcm27xx/patches-6.12/950-0007-Revert-PCI-brcmstb-Configure-HW-CLKREQ-mode-appropri.patch deleted file mode 100644 index d372dbf2..00000000 --- a/6.12/target/linux/bcm27xx/patches-6.12/950-0007-Revert-PCI-brcmstb-Configure-HW-CLKREQ-mode-appropri.patch +++ /dev/null @@ -1,156 +0,0 @@ -From faa6f87df4d488431743607a8158f15bdcb2afdd Mon Sep 17 00:00:00 2001 -From: Dom Cobley -Date: Fri, 2 Feb 2024 13:04:00 +0000 -Subject: [PATCH 007/697] Revert "PCI: brcmstb: Configure HW CLKREQ# mode - appropriate for downstream device" - -This reverts commit e2596dcf1e9dfd5904d50f796c19b03c94a3b8b4. ---- - drivers/pci/controller/pcie-brcmstb.c | 100 +++----------------------- - 1 file changed, 10 insertions(+), 90 deletions(-) - ---- a/drivers/pci/controller/pcie-brcmstb.c -+++ b/drivers/pci/controller/pcie-brcmstb.c -@@ -48,9 +48,6 @@ - #define PCIE_RC_CFG_PRIV1_LINK_CAPABILITY 0x04dc - #define PCIE_RC_CFG_PRIV1_LINK_CAPABILITY_ASPM_SUPPORT_MASK 0xc00 - --#define PCIE_RC_CFG_PRIV1_ROOT_CAP 0x4f8 --#define PCIE_RC_CFG_PRIV1_ROOT_CAP_L1SS_MODE_MASK 0xf8 -- - #define PCIE_RC_DL_MDIO_ADDR 0x1100 - #define PCIE_RC_DL_MDIO_WR_DATA 0x1104 - #define PCIE_RC_DL_MDIO_RD_DATA 0x1108 -@@ -127,12 +124,9 @@ - PCIE_MISC_CPU_2_PCIE_MEM_WIN0_LIMIT_HI + ((win) * 8) - - #define PCIE_MISC_HARD_PCIE_HARD_DEBUG_CLKREQ_DEBUG_ENABLE_MASK 0x2 --#define PCIE_MISC_HARD_PCIE_HARD_DEBUG_L1SS_ENABLE_MASK 0x200000 - #define PCIE_MISC_HARD_PCIE_HARD_DEBUG_SERDES_IDDQ_MASK 0x08000000 - #define PCIE_BMIPS_MISC_HARD_PCIE_HARD_DEBUG_SERDES_IDDQ_MASK 0x00800000 --#define PCIE_CLKREQ_MASK \ -- (PCIE_MISC_HARD_PCIE_HARD_DEBUG_CLKREQ_DEBUG_ENABLE_MASK | \ -- PCIE_MISC_HARD_PCIE_HARD_DEBUG_L1SS_ENABLE_MASK) -+ - - #define PCIE_MISC_UBUS_BAR1_CONFIG_REMAP 0x40ac - #define PCIE_MISC_UBUS_BAR1_CONFIG_REMAP_ACCESS_EN_MASK BIT(0) -@@ -1187,93 +1181,13 @@ static int brcm_pcie_setup(struct brcm_p - return 0; - } - --/* -- * This extends the timeout period for an access to an internal bus. This -- * access timeout may occur during L1SS sleep periods, even without the -- * presence of a PCIe access. -- */ --static void brcm_extend_rbus_timeout(struct brcm_pcie *pcie) --{ -- /* TIMEOUT register is two registers before RGR1_SW_INIT_1 */ -- const unsigned int REG_OFFSET = PCIE_RGR1_SW_INIT_1(pcie) - 8; -- u32 timeout_us = 4000000; /* 4 seconds, our setting for L1SS */ -- -- /* 7712 does not have this (RGR1) timer */ -- if (pcie->soc_base == BCM7712) -- return; -- -- /* Each unit in timeout register is 1/216,000,000 seconds */ -- writel(216 * timeout_us, pcie->base + REG_OFFSET); --} -- --static void brcm_config_clkreq(struct brcm_pcie *pcie) --{ -- static const char err_msg[] = "invalid 'brcm,clkreq-mode' DT string\n"; -- const char *mode = "default"; -- u32 clkreq_cntl; -- int ret, tmp; -- -- ret = of_property_read_string(pcie->np, "brcm,clkreq-mode", &mode); -- if (ret && ret != -EINVAL) { -- dev_err(pcie->dev, err_msg); -- mode = "safe"; -- } -- -- /* Start out assuming safe mode (both mode bits cleared) */ -- clkreq_cntl = readl(pcie->base + HARD_DEBUG(pcie)); -- clkreq_cntl &= ~PCIE_CLKREQ_MASK; -- -- if (strcmp(mode, "no-l1ss") == 0) { -- /* -- * "no-l1ss" -- Provides Clock Power Management, L0s, and -- * L1, but cannot provide L1 substate (L1SS) power -- * savings. If the downstream device connected to the RC is -- * L1SS capable AND the OS enables L1SS, all PCIe traffic -- * may abruptly halt, potentially hanging the system. -- */ -- clkreq_cntl |= PCIE_MISC_HARD_PCIE_HARD_DEBUG_CLKREQ_DEBUG_ENABLE_MASK; -- /* -- * We want to un-advertise L1 substates because if the OS -- * tries to configure the controller into using L1 substate -- * power savings it may fail or hang when the RC HW is in -- * "no-l1ss" mode. -- */ -- tmp = readl(pcie->base + PCIE_RC_CFG_PRIV1_ROOT_CAP); -- u32p_replace_bits(&tmp, 2, PCIE_RC_CFG_PRIV1_ROOT_CAP_L1SS_MODE_MASK); -- writel(tmp, pcie->base + PCIE_RC_CFG_PRIV1_ROOT_CAP); -- -- } else if (strcmp(mode, "default") == 0) { -- /* -- * "default" -- Provides L0s, L1, and L1SS, but not -- * compliant to provide Clock Power Management; -- * specifically, may not be able to meet the Tclron max -- * timing of 400ns as specified in "Dynamic Clock Control", -- * section 3.2.5.2.2 of the PCIe spec. This situation is -- * atypical and should happen only with older devices. -- */ -- clkreq_cntl |= PCIE_MISC_HARD_PCIE_HARD_DEBUG_L1SS_ENABLE_MASK; -- brcm_extend_rbus_timeout(pcie); -- -- } else { -- /* -- * "safe" -- No power savings; refclk is driven by RC -- * unconditionally. -- */ -- if (strcmp(mode, "safe") != 0) -- dev_err(pcie->dev, err_msg); -- mode = "safe"; -- } -- writel(clkreq_cntl, pcie->base + HARD_DEBUG(pcie)); -- -- dev_info(pcie->dev, "clkreq-mode set to %s\n", mode); --} -- - static int brcm_pcie_start_link(struct brcm_pcie *pcie) - { - struct device *dev = pcie->dev; - void __iomem *base = pcie->base; - u16 nlw, cls, lnksta; - bool ssc_good = false; -+ u32 tmp; - int ret, i; - - /* Unassert the fundamental reset */ -@@ -1300,8 +1214,6 @@ static int brcm_pcie_start_link(struct b - return -ENODEV; - } - -- brcm_config_clkreq(pcie); -- - if (pcie->gen) - brcm_pcie_set_gen(pcie, pcie->gen); - -@@ -1320,6 +1232,14 @@ static int brcm_pcie_start_link(struct b - pci_speed_string(pcie_link_speed[cls]), nlw, - ssc_good ? "(SSC)" : "(!SSC)"); - -+ /* -+ * Refclk from RC should be gated with CLKREQ# input when ASPM L0s,L1 -+ * is enabled => setting the CLKREQ_DEBUG_ENABLE field to 1. -+ */ -+ tmp = readl(base + PCIE_MISC_HARD_PCIE_HARD_DEBUG); -+ tmp |= PCIE_MISC_HARD_PCIE_HARD_DEBUG_CLKREQ_DEBUG_ENABLE_MASK; -+ writel(tmp, base + PCIE_MISC_HARD_PCIE_HARD_DEBUG); -+ - return 0; - } - diff --git a/6.12/target/linux/bcm27xx/patches-6.12/950-0008-Revert-ARM-dts-bcm2711-Add-BCM2711-xHCI-support.patch b/6.12/target/linux/bcm27xx/patches-6.12/950-0008-Revert-ARM-dts-bcm2711-Add-BCM2711-xHCI-support.patch deleted file mode 100644 index 7173d912..00000000 --- a/6.12/target/linux/bcm27xx/patches-6.12/950-0008-Revert-ARM-dts-bcm2711-Add-BCM2711-xHCI-support.patch +++ /dev/null @@ -1,52 +0,0 @@ -From fee8daf3147a30ddbfe2ac759ee5b7481bace2ca Mon Sep 17 00:00:00 2001 -From: Dom Cobley -Date: Wed, 31 Jan 2024 19:47:39 +0000 -Subject: [PATCH 008/697] Revert "ARM: dts: bcm2711: Add BCM2711 xHCI support" - -This reverts commit 522c35e08b53f157ad3e51848caa861b258001e4. ---- - arch/arm/boot/dts/broadcom/bcm2711-rpi.dtsi | 5 ----- - arch/arm/boot/dts/broadcom/bcm2711.dtsi | 14 -------------- - 2 files changed, 19 deletions(-) - ---- a/arch/arm/boot/dts/broadcom/bcm2711-rpi.dtsi -+++ b/arch/arm/boot/dts/broadcom/bcm2711-rpi.dtsi -@@ -1,7 +1,6 @@ - // SPDX-License-Identifier: GPL-2.0 - #include "bcm2835-rpi.dtsi" - --#include - #include - - / { -@@ -101,7 +100,3 @@ - &vchiq { - interrupts = ; - }; -- --&xhci { -- power-domains = <&power RPI_POWER_DOMAIN_USB>; --}; ---- a/arch/arm/boot/dts/broadcom/bcm2711.dtsi -+++ b/arch/arm/boot/dts/broadcom/bcm2711.dtsi -@@ -604,20 +604,6 @@ - }; - }; - -- xhci: usb@7e9c0000 { -- compatible = "brcm,bcm2711-xhci", "brcm,xhci-brcm-v2"; -- reg = <0x0 0x7e9c0000 0x100000>; -- #address-cells = <1>; -- #size-cells = <0>; -- interrupts = ; -- /* DWC2 and this IP block share the same USB PHY, -- * enabling both at the same time results in lockups. -- * So keep this node disabled and let the bootloader -- * decide which interface should be enabled. -- */ -- status = "disabled"; -- }; -- - v3d: gpu@7ec00000 { - compatible = "brcm,2711-v3d"; - reg = <0x0 0x7ec00000 0x4000>, diff --git a/6.12/target/linux/bcm27xx/patches-6.12/950-0009-Revert-usb-phy-generic-Get-the-vbus-supply.patch b/6.12/target/linux/bcm27xx/patches-6.12/950-0009-Revert-usb-phy-generic-Get-the-vbus-supply.patch deleted file mode 100644 index 50c9e12c..00000000 --- a/6.12/target/linux/bcm27xx/patches-6.12/950-0009-Revert-usb-phy-generic-Get-the-vbus-supply.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 3063c20ced293f1f214fa77b71adac0ce3385d81 Mon Sep 17 00:00:00 2001 -From: Phil Elwell -Date: Thu, 28 Mar 2024 16:16:37 +0000 -Subject: [PATCH 009/697] Revert "usb: phy: generic: Get the vbus supply" - -This reverts commit 03e607cbb2931374db1825f371e9c7f28526d3f4. ---- - drivers/usb/phy/phy-generic.c | 7 ------- - 1 file changed, 7 deletions(-) - ---- a/drivers/usb/phy/phy-generic.c -+++ b/drivers/usb/phy/phy-generic.c -@@ -256,13 +256,6 @@ int usb_phy_gen_create_phy(struct device - return dev_err_probe(dev, PTR_ERR(nop->vcc), - "could not get vcc regulator\n"); - -- nop->vbus_draw = devm_regulator_get_exclusive(dev, "vbus"); -- if (PTR_ERR(nop->vbus_draw) == -ENODEV) -- nop->vbus_draw = NULL; -- if (IS_ERR(nop->vbus_draw)) -- return dev_err_probe(dev, PTR_ERR(nop->vbus_draw), -- "could not get vbus regulator\n"); -- - nop->dev = dev; - nop->phy.dev = nop->dev; - nop->phy.label = "nop-xceiv"; diff --git a/6.12/target/linux/bcm27xx/patches-6.12/950-0010-raspberrypi-firmware-Update-mailbox-commands.patch b/6.12/target/linux/bcm27xx/patches-6.12/950-0010-raspberrypi-firmware-Update-mailbox-commands.patch deleted file mode 100644 index f1a546f9..00000000 --- a/6.12/target/linux/bcm27xx/patches-6.12/950-0010-raspberrypi-firmware-Update-mailbox-commands.patch +++ /dev/null @@ -1,102 +0,0 @@ -From c1d90b3d7f207b203d8f8b32e02dbd1d7636cb6a Mon Sep 17 00:00:00 2001 -From: Dom Cobley -Date: Thu, 7 Apr 2022 18:23:07 +0100 -Subject: [PATCH 010/697] raspberrypi-firmware: Update mailbox commands - -Signed-off-by: Dom Cobley ---- - include/soc/bcm2835/raspberrypi-firmware.h | 28 +++++++++++++++++++++- - 1 file changed, 27 insertions(+), 1 deletion(-) - ---- a/include/soc/bcm2835/raspberrypi-firmware.h -+++ b/include/soc/bcm2835/raspberrypi-firmware.h -@@ -36,6 +36,8 @@ struct rpi_firmware_property_tag_header - enum rpi_firmware_property_tag { - RPI_FIRMWARE_PROPERTY_END = 0, - RPI_FIRMWARE_GET_FIRMWARE_REVISION = 0x00000001, -+ RPI_FIRMWARE_GET_FIRMWARE_VARIANT = 0x00000002, -+ RPI_FIRMWARE_GET_FIRMWARE_HASH = 0x00000003, - - RPI_FIRMWARE_SET_CURSOR_INFO = 0x00008010, - RPI_FIRMWARE_SET_CURSOR_STATE = 0x00008011, -@@ -71,6 +73,7 @@ enum rpi_firmware_property_tag { - RPI_FIRMWARE_GET_DISPMANX_RESOURCE_MEM_HANDLE = 0x00030014, - RPI_FIRMWARE_GET_EDID_BLOCK = 0x00030020, - RPI_FIRMWARE_GET_CUSTOMER_OTP = 0x00030021, -+ RPI_FIRMWARE_GET_EDID_BLOCK_DISPLAY = 0x00030023, - RPI_FIRMWARE_GET_DOMAIN_STATE = 0x00030030, - RPI_FIRMWARE_GET_THROTTLED = 0x00030046, - RPI_FIRMWARE_GET_CLOCK_MEASURED = 0x00030047, -@@ -89,8 +92,11 @@ enum rpi_firmware_property_tag { - RPI_FIRMWARE_GET_PERIPH_REG = 0x00030045, - RPI_FIRMWARE_SET_PERIPH_REG = 0x00038045, - RPI_FIRMWARE_GET_POE_HAT_VAL = 0x00030049, -- RPI_FIRMWARE_SET_POE_HAT_VAL = 0x00030050, -+ RPI_FIRMWARE_SET_POE_HAT_VAL = 0x00038049, -+ RPI_FIRMWARE_SET_POE_HAT_VAL_OLD = 0x00030050, - RPI_FIRMWARE_NOTIFY_XHCI_RESET = 0x00030058, -+ RPI_FIRMWARE_GET_REBOOT_FLAGS = 0x00030064, -+ RPI_FIRMWARE_SET_REBOOT_FLAGS = 0x00038064, - RPI_FIRMWARE_NOTIFY_DISPLAY_DONE = 0x00030066, - - /* Dispmanx TAGS */ -@@ -105,9 +111,16 @@ enum rpi_firmware_property_tag { - RPI_FIRMWARE_FRAMEBUFFER_GET_VIRTUAL_OFFSET = 0x00040009, - RPI_FIRMWARE_FRAMEBUFFER_GET_OVERSCAN = 0x0004000a, - RPI_FIRMWARE_FRAMEBUFFER_GET_PALETTE = 0x0004000b, -+ RPI_FIRMWARE_FRAMEBUFFER_GET_LAYER = 0x0004000c, -+ RPI_FIRMWARE_FRAMEBUFFER_GET_TRANSFORM = 0x0004000d, -+ RPI_FIRMWARE_FRAMEBUFFER_GET_VSYNC = 0x0004000e, - RPI_FIRMWARE_FRAMEBUFFER_GET_TOUCHBUF = 0x0004000f, - RPI_FIRMWARE_FRAMEBUFFER_GET_GPIOVIRTBUF = 0x00040010, - RPI_FIRMWARE_FRAMEBUFFER_RELEASE = 0x00048001, -+ RPI_FIRMWARE_FRAMEBUFFER_GET_DISPLAY_ID = 0x00040016, -+ RPI_FIRMWARE_FRAMEBUFFER_SET_DISPLAY_NUM = 0x00048013, -+ RPI_FIRMWARE_FRAMEBUFFER_GET_NUM_DISPLAYS = 0x00040013, -+ RPI_FIRMWARE_FRAMEBUFFER_GET_DISPLAY_SETTINGS = 0x00040014, - RPI_FIRMWARE_FRAMEBUFFER_TEST_PHYSICAL_WIDTH_HEIGHT = 0x00044003, - RPI_FIRMWARE_FRAMEBUFFER_TEST_VIRTUAL_WIDTH_HEIGHT = 0x00044004, - RPI_FIRMWARE_FRAMEBUFFER_TEST_DEPTH = 0x00044005, -@@ -116,22 +129,33 @@ enum rpi_firmware_property_tag { - RPI_FIRMWARE_FRAMEBUFFER_TEST_VIRTUAL_OFFSET = 0x00044009, - RPI_FIRMWARE_FRAMEBUFFER_TEST_OVERSCAN = 0x0004400a, - RPI_FIRMWARE_FRAMEBUFFER_TEST_PALETTE = 0x0004400b, -+ RPI_FIRMWARE_FRAMEBUFFER_TEST_LAYER = 0x0004400c, -+ RPI_FIRMWARE_FRAMEBUFFER_TEST_TRANSFORM = 0x0004400d, - RPI_FIRMWARE_FRAMEBUFFER_TEST_VSYNC = 0x0004400e, - RPI_FIRMWARE_FRAMEBUFFER_SET_PHYSICAL_WIDTH_HEIGHT = 0x00048003, - RPI_FIRMWARE_FRAMEBUFFER_SET_VIRTUAL_WIDTH_HEIGHT = 0x00048004, - RPI_FIRMWARE_FRAMEBUFFER_SET_DEPTH = 0x00048005, - RPI_FIRMWARE_FRAMEBUFFER_SET_PIXEL_ORDER = 0x00048006, - RPI_FIRMWARE_FRAMEBUFFER_SET_ALPHA_MODE = 0x00048007, -+ RPI_FIRMWARE_FRAMEBUFFER_SET_PITCH = 0x00048008, - RPI_FIRMWARE_FRAMEBUFFER_SET_VIRTUAL_OFFSET = 0x00048009, - RPI_FIRMWARE_FRAMEBUFFER_SET_OVERSCAN = 0x0004800a, - RPI_FIRMWARE_FRAMEBUFFER_SET_PALETTE = 0x0004800b, -+ - RPI_FIRMWARE_FRAMEBUFFER_SET_TOUCHBUF = 0x0004801f, - RPI_FIRMWARE_FRAMEBUFFER_SET_GPIOVIRTBUF = 0x00048020, - RPI_FIRMWARE_FRAMEBUFFER_SET_VSYNC = 0x0004800e, -+ RPI_FIRMWARE_FRAMEBUFFER_SET_LAYER = 0x0004800c, -+ RPI_FIRMWARE_FRAMEBUFFER_SET_TRANSFORM = 0x0004800d, - RPI_FIRMWARE_FRAMEBUFFER_SET_BACKLIGHT = 0x0004800f, - - RPI_FIRMWARE_VCHIQ_INIT = 0x00048010, - -+ RPI_FIRMWARE_SET_PLANE = 0x00048015, -+ RPI_FIRMWARE_GET_DISPLAY_TIMING = 0x00040017, -+ RPI_FIRMWARE_SET_TIMING = 0x00048017, -+ RPI_FIRMWARE_GET_DISPLAY_CFG = 0x00040018, -+ RPI_FIRMWARE_SET_DISPLAY_POWER = 0x00048019, - RPI_FIRMWARE_GET_COMMAND_LINE = 0x00050001, - RPI_FIRMWARE_GET_DMA_CHANNELS = 0x00060001, - }; -@@ -155,6 +179,8 @@ enum rpi_firmware_clk_id { - RPI_FIRMWARE_NUM_CLK_ID, - }; - -+#define GET_DISPLAY_SETTINGS_PAYLOAD_SIZE 64 -+ - /** - * struct rpi_firmware_clk_rate_request - Firmware Request for a rate - * @id: ID of the clock being queried diff --git a/6.12/target/linux/bcm27xx/patches-6.12/950-0011-drm-atomic-Don-t-fixup-modes-that-haven-t-been-reset.patch b/6.12/target/linux/bcm27xx/patches-6.12/950-0011-drm-atomic-Don-t-fixup-modes-that-haven-t-been-reset.patch deleted file mode 100644 index 5a0f1b3a..00000000 --- a/6.12/target/linux/bcm27xx/patches-6.12/950-0011-drm-atomic-Don-t-fixup-modes-that-haven-t-been-reset.patch +++ /dev/null @@ -1,24 +0,0 @@ -From fce77d9309edd4d813e45ea2868a6a3307787193 Mon Sep 17 00:00:00 2001 -From: Dave Stevenson -Date: Thu, 7 Jan 2021 16:30:55 +0000 -Subject: [PATCH 011/697] drm/atomic: Don't fixup modes that haven't been reset - -Signed-off-by: Dave Stevenson ---- - drivers/gpu/drm/drm_atomic_helper.c | 5 +++++ - 1 file changed, 5 insertions(+) - ---- a/drivers/gpu/drm/drm_atomic_helper.c -+++ b/drivers/gpu/drm/drm_atomic_helper.c -@@ -444,6 +444,11 @@ mode_fixup(struct drm_atomic_state *stat - new_crtc_state = - drm_atomic_get_new_crtc_state(state, new_conn_state->crtc); - -+ if (!new_crtc_state->mode_changed && -+ !new_crtc_state->connectors_changed) { -+ continue; -+ } -+ - /* - * Each encoder has at most one connector (since we always steal - * it away), so we won't call ->mode_fixup twice. diff --git a/6.12/target/linux/bcm27xx/patches-6.12/950-0012-drm-Check-whether-the-gamma-lut-has-changed-before-u.patch b/6.12/target/linux/bcm27xx/patches-6.12/950-0012-drm-Check-whether-the-gamma-lut-has-changed-before-u.patch deleted file mode 100644 index 808149b5..00000000 --- a/6.12/target/linux/bcm27xx/patches-6.12/950-0012-drm-Check-whether-the-gamma-lut-has-changed-before-u.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 6030529dd021bc882eb9ade9eec009c77c40316e Mon Sep 17 00:00:00 2001 -From: Dave Stevenson -Date: Tue, 2 Nov 2021 16:01:36 +0000 -Subject: [PATCH 012/697] drm: Check whether the gamma lut has changed before - updating - -drm_crtc_legacy_gamma_set updates the gamma_lut blob unconditionally, -which leads to unnecessary reprogramming of hardware. - -Check whether the blob contents has actually changed before -signalling that it has been updated. - -Signed-off-by: Dave Stevenson ---- - drivers/gpu/drm/drm_color_mgmt.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - ---- a/drivers/gpu/drm/drm_color_mgmt.c -+++ b/drivers/gpu/drm/drm_color_mgmt.c -@@ -330,7 +330,9 @@ static int drm_crtc_legacy_gamma_set(str - replaced = drm_property_replace_blob(&crtc_state->degamma_lut, - use_gamma_lut ? NULL : blob); - replaced |= drm_property_replace_blob(&crtc_state->ctm, NULL); -- replaced |= drm_property_replace_blob(&crtc_state->gamma_lut, -+ if (!crtc_state->gamma_lut || !crtc_state->gamma_lut->data || -+ memcmp(crtc_state->gamma_lut->data, blob_data, blob->length)) -+ replaced |= drm_property_replace_blob(&crtc_state->gamma_lut, - use_gamma_lut ? blob : NULL); - crtc_state->color_mgmt_changed |= replaced; - diff --git a/6.12/target/linux/bcm27xx/patches-6.12/950-0013-drm-dsi-Document-the-meaning-and-spec-references-for.patch b/6.12/target/linux/bcm27xx/patches-6.12/950-0013-drm-dsi-Document-the-meaning-and-spec-references-for.patch deleted file mode 100644 index 75f912e7..00000000 --- a/6.12/target/linux/bcm27xx/patches-6.12/950-0013-drm-dsi-Document-the-meaning-and-spec-references-for.patch +++ /dev/null @@ -1,76 +0,0 @@ -From 4d523d624f8ac39c56c431d411750c11492d5dbe Mon Sep 17 00:00:00 2001 -From: Dave Stevenson -Date: Fri, 17 Dec 2021 13:36:52 +0000 -Subject: [PATCH 013/697] drm/dsi: Document the meaning and spec references for - MIPI_DSI_MODE_* - -The MIPI_DSI_MODE_* flags have fairly terse descriptions and no reference -to the DSI specification as to their exact meaning. Usage has therefore -been rather fluid. - -Extend the descriptions and provide references to the part of the -MIPI DSI specification regarding what they mean. - -Signed-off-by: Dave Stevenson ---- - include/drm/drm_mipi_dsi.h | 38 ++++++++++++++++++++++++++------------ - 1 file changed, 26 insertions(+), 12 deletions(-) - ---- a/include/drm/drm_mipi_dsi.h -+++ b/include/drm/drm_mipi_dsi.h -@@ -114,29 +114,43 @@ struct mipi_dsi_host *of_find_mipi_dsi_h - - /* DSI mode flags */ - --/* video mode */ -+/* Video mode display. -+ * Not set denotes a command mode display. -+ */ - #define MIPI_DSI_MODE_VIDEO BIT(0) --/* video burst mode */ -+/* Video burst mode. -+ * Link frequency to be configured via platform configuration. -+ * This should always be set in conjunction with MIPI_DSI_MODE_VIDEO. -+ * (DSI spec V1.1 8.11.4) -+ */ - #define MIPI_DSI_MODE_VIDEO_BURST BIT(1) --/* video pulse mode */ -+/* Video pulse mode. -+ * Not set denotes sync event mode. (DSI spec V1.1 8.11.2) -+ */ - #define MIPI_DSI_MODE_VIDEO_SYNC_PULSE BIT(2) --/* enable auto vertical count mode */ -+/* Enable auto vertical count mode */ - #define MIPI_DSI_MODE_VIDEO_AUTO_VERT BIT(3) --/* enable hsync-end packets in vsync-pulse and v-porch area */ -+/* Enable hsync-end packets in vsync-pulse and v-porch area */ - #define MIPI_DSI_MODE_VIDEO_HSE BIT(4) --/* disable hfront-porch area */ -+/* Transmit NULL packets or LP mode during hfront-porch area. -+ * Not set denotes sending a blanking packet instead. (DSI spec V1.1 8.11.1) -+ */ - #define MIPI_DSI_MODE_VIDEO_NO_HFP BIT(5) --/* disable hback-porch area */ -+/* Transmit NULL packets or LP mode during hback-porch area. -+ * Not set denotes sending a blanking packet instead. (DSI spec V1.1 8.11.1) -+ */ - #define MIPI_DSI_MODE_VIDEO_NO_HBP BIT(6) --/* disable hsync-active area */ -+/* Transmit NULL packets or LP mode during hsync-active area. -+ * Not set denotes sending a blanking packet instead. (DSI spec V1.1 8.11.1) -+ */ - #define MIPI_DSI_MODE_VIDEO_NO_HSA BIT(7) --/* flush display FIFO on vsync pulse */ -+/* Flush display FIFO on vsync pulse */ - #define MIPI_DSI_MODE_VSYNC_FLUSH BIT(8) --/* disable EoT packets in HS mode */ -+/* Disable EoT packets in HS mode. (DSI spec V1.1 8.1) */ - #define MIPI_DSI_MODE_NO_EOT_PACKET BIT(9) --/* device supports non-continuous clock behavior (DSI spec 5.6.1) */ -+/* Device supports non-continuous clock behavior (DSI spec V1.1 5.6.1) */ - #define MIPI_DSI_CLOCK_NON_CONTINUOUS BIT(10) --/* transmit data in low power */ -+/* Transmit data in low power */ - #define MIPI_DSI_MODE_LPM BIT(11) - /* transmit data ending at the same time for all lanes within one hsync */ - #define MIPI_DSI_HS_PKT_END_ALIGNED BIT(12) diff --git a/6.12/target/linux/bcm27xx/patches-6.12/950-0014-drm-bridge-tc358762-Ignore-EPROBE_DEFER-when-logging.patch b/6.12/target/linux/bcm27xx/patches-6.12/950-0014-drm-bridge-tc358762-Ignore-EPROBE_DEFER-when-logging.patch deleted file mode 100644 index b96ffd59..00000000 --- a/6.12/target/linux/bcm27xx/patches-6.12/950-0014-drm-bridge-tc358762-Ignore-EPROBE_DEFER-when-logging.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 5be301d72c1923bf6fbcf43f6dea728f50702cee Mon Sep 17 00:00:00 2001 -From: Dave Stevenson -Date: Thu, 20 Jan 2022 17:29:36 +0000 -Subject: [PATCH 014/697] drm/bridge: tc358762: Ignore EPROBE_DEFER when - logging errors - -mipi_dsi_attach can fail due to resources not being available -yet, therefore do not log error messages should they occur. - -Signed-off-by: Dave Stevenson ---- - drivers/gpu/drm/bridge/tc358762.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/drivers/gpu/drm/bridge/tc358762.c -+++ b/drivers/gpu/drm/bridge/tc358762.c -@@ -294,7 +294,7 @@ static int tc358762_probe(struct mipi_ds - ret = mipi_dsi_attach(dsi); - if (ret < 0) { - drm_bridge_remove(&ctx->bridge); -- dev_err(dev, "failed to attach dsi\n"); -+ dev_err_probe(dev, ret, "failed to attach dsi\n"); - } - - return ret; diff --git a/6.12/target/linux/bcm27xx/patches-6.12/950-0015-drm-Add-chroma-siting-properties.patch b/6.12/target/linux/bcm27xx/patches-6.12/950-0015-drm-Add-chroma-siting-properties.patch deleted file mode 100644 index 6f3fa858..00000000 --- a/6.12/target/linux/bcm27xx/patches-6.12/950-0015-drm-Add-chroma-siting-properties.patch +++ /dev/null @@ -1,170 +0,0 @@ -From d234bb9caf5309340b7afdb7e8bf6f8ae346eab8 Mon Sep 17 00:00:00 2001 -From: Dom Cobley -Date: Wed, 26 Jan 2022 15:58:13 +0000 -Subject: [PATCH 015/697] drm: Add chroma siting properties - -Signed-off-by: Dom Cobley ---- - drivers/gpu/drm/drm_atomic_state_helper.c | 14 +++++++++ - drivers/gpu/drm/drm_atomic_uapi.c | 8 +++++ - drivers/gpu/drm/drm_color_mgmt.c | 36 +++++++++++++++++++++++ - include/drm/drm_color_mgmt.h | 3 ++ - include/drm/drm_plane.h | 35 ++++++++++++++++++++-- - 5 files changed, 94 insertions(+), 2 deletions(-) - ---- a/drivers/gpu/drm/drm_atomic_state_helper.c -+++ b/drivers/gpu/drm/drm_atomic_state_helper.c -@@ -267,6 +267,20 @@ void __drm_atomic_helper_plane_state_res - plane_state->color_range = val; - } - -+ if (plane->chroma_siting_h_property) { -+ if (!drm_object_property_get_default_value(&plane->base, -+ plane->chroma_siting_h_property, -+ &val)) -+ plane_state->chroma_siting_h = val; -+ } -+ -+ if (plane->chroma_siting_v_property) { -+ if (!drm_object_property_get_default_value(&plane->base, -+ plane->chroma_siting_v_property, -+ &val)) -+ plane_state->chroma_siting_v = val; -+ } -+ - if (plane->zpos_property) { - if (!drm_object_property_get_default_value(&plane->base, - plane->zpos_property, ---- a/drivers/gpu/drm/drm_atomic_uapi.c -+++ b/drivers/gpu/drm/drm_atomic_uapi.c -@@ -538,6 +538,10 @@ static int drm_atomic_plane_set_property - state->color_encoding = val; - } else if (property == plane->color_range_property) { - state->color_range = val; -+ } else if (property == plane->chroma_siting_h_property) { -+ state->chroma_siting_h = val; -+ } else if (property == plane->chroma_siting_v_property) { -+ state->chroma_siting_v = val; - } else if (property == config->prop_fb_damage_clips) { - ret = drm_property_replace_blob_from_id(dev, - &state->fb_damage_clips, -@@ -620,6 +624,10 @@ drm_atomic_plane_get_property(struct drm - *val = state->color_encoding; - } else if (property == plane->color_range_property) { - *val = state->color_range; -+ } else if (property == plane->chroma_siting_h_property) { -+ *val = state->chroma_siting_h; -+ } else if (property == plane->chroma_siting_v_property) { -+ *val = state->chroma_siting_v; - } else if (property == config->prop_fb_damage_clips) { - *val = (state->fb_damage_clips) ? - state->fb_damage_clips->base.id : 0; ---- a/drivers/gpu/drm/drm_color_mgmt.c -+++ b/drivers/gpu/drm/drm_color_mgmt.c -@@ -591,6 +591,42 @@ int drm_plane_create_color_properties(st - EXPORT_SYMBOL(drm_plane_create_color_properties); - - /** -+ * drm_plane_create_chroma_siting_properties - chroma siting related plane properties -+ * @plane: plane object -+ * -+ * Create and attach plane specific CHROMA_SITING -+ * properties to @plane. -+ */ -+int drm_plane_create_chroma_siting_properties(struct drm_plane *plane, -+ int32_t default_chroma_siting_h, -+ int32_t default_chroma_siting_v) -+{ -+ struct drm_device *dev = plane->dev; -+ struct drm_property *prop; -+ -+ prop = drm_property_create_range(dev, 0, "CHROMA_SITING_H", -+ 0, 1<<16); -+ if (!prop) -+ return -ENOMEM; -+ plane->chroma_siting_h_property = prop; -+ drm_object_attach_property(&plane->base, prop, default_chroma_siting_h); -+ -+ prop = drm_property_create_range(dev, 0, "CHROMA_SITING_V", -+ 0, 1<<16); -+ if (!prop) -+ return -ENOMEM; -+ plane->chroma_siting_v_property = prop; -+ drm_object_attach_property(&plane->base, prop, default_chroma_siting_v); -+ -+ if (plane->state) { -+ plane->state->chroma_siting_h = default_chroma_siting_h; -+ plane->state->chroma_siting_v = default_chroma_siting_v; -+ } -+ return 0; -+} -+EXPORT_SYMBOL(drm_plane_create_chroma_siting_properties); -+ -+/** - * drm_color_lut_check - check validity of lookup table - * @lut: property blob containing LUT to check - * @tests: bitmask of tests to run ---- a/include/drm/drm_color_mgmt.h -+++ b/include/drm/drm_color_mgmt.h -@@ -91,6 +91,9 @@ int drm_plane_create_color_properties(st - enum drm_color_encoding default_encoding, - enum drm_color_range default_range); - -+int drm_plane_create_chroma_siting_properties(struct drm_plane *plane, -+ int32_t default_chroma_siting_h, int32_t default_chroma_siting_v); -+ - /** - * enum drm_color_lut_tests - hw-specific LUT tests to perform - * ---- a/include/drm/drm_plane.h -+++ b/include/drm/drm_plane.h -@@ -184,6 +184,24 @@ struct drm_plane_state { - enum drm_color_range color_range; - - /** -+ * @chroma_siting_h: -+ * -+ * Location of chroma samples horizontally compared to luma -+ * 0 means chroma is sited with left luma -+ * 0x8000 is interstitial. 0x10000 is sited with right luma -+ */ -+ int32_t chroma_siting_h; -+ -+ /** -+ * @chroma_siting_v: -+ * -+ * Location of chroma samples vertically compared to luma -+ * 0 means chroma is sited with top luma -+ * 0x8000 is interstitial. 0x10000 is sited with bottom luma -+ */ -+ int32_t chroma_siting_v; -+ -+ /** - * @fb_damage_clips: - * - * Blob representing damage (area in plane framebuffer that changed -@@ -783,9 +801,22 @@ struct drm_plane { - struct drm_property *hotspot_y_property; - - /** -- * @kmsg_panic: Used to register a panic notifier for this plane -+ * @chroma_siting_h_property: -+ * -+ * Optional "CHROMA_SITING_H" property for specifying -+ * chroma siting for YUV formats. -+ * See drm_plane_create_chroma_siting_properties(). -+ */ -+ struct drm_property *chroma_siting_h_property; -+ -+ /** -+ * @chroma_siting_v_property: -+ * -+ * Optional "CHROMA_SITING_V" property for specifying -+ * chroma siting for YUV formats. -+ * See drm_plane_create_chroma_siting_properties(). - */ -- struct kmsg_dumper kmsg_panic; -+ struct drm_property *chroma_siting_v_property; - }; - - #define obj_to_plane(x) container_of(x, struct drm_plane, base) diff --git a/6.12/target/linux/bcm27xx/patches-6.12/950-0016-drm-atomic-helpers-remove-legacy_cursor_update-hacks.patch b/6.12/target/linux/bcm27xx/patches-6.12/950-0016-drm-atomic-helpers-remove-legacy_cursor_update-hacks.patch deleted file mode 100644 index f0814c06..00000000 --- a/6.12/target/linux/bcm27xx/patches-6.12/950-0016-drm-atomic-helpers-remove-legacy_cursor_update-hacks.patch +++ /dev/null @@ -1,121 +0,0 @@ -From fa34363447ef39ae5b02c350ae2650cd4c1308f6 Mon Sep 17 00:00:00 2001 -From: Daniel Vetter -Date: Fri, 23 Oct 2020 14:39:23 +0200 -Subject: [PATCH 016/697] drm/atomic-helpers: remove legacy_cursor_update hacks -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -The stuff never really worked, and leads to lots of fun because it -out-of-order frees atomic states. Which upsets KASAN, among other -things. - -For async updates we now have a more solid solution with the -->atomic_async_check and ->atomic_async_commit hooks. Support for that -for msm and vc4 landed. nouveau and i915 have their own commit -routines, doing something similar. - -For everyone else it's probably better to remove the use-after-free -bug, and encourage folks to use the async support instead. The -affected drivers which register a legacy cursor plane and don't either -use the new async stuff or their own commit routine are: amdgpu, -atmel, mediatek, qxl, rockchip, sti, sun4i, tegra, virtio, and vmwgfx. - -Inspired by an amdgpu bug report. - -v2: Drop RFC, I think with amdgpu converted over to use -atomic_async_check/commit done in - -commit 674e78acae0dfb4beb56132e41cbae5b60f7d662 -Author: Nicholas Kazlauskas -Date: Wed Dec 5 14:59:07 2018 -0500 - - drm/amd/display: Add fast path for cursor plane updates - -we don't have any driver anymore where we have userspace expecting -solid legacy cursor support _and_ they are using the atomic helpers in -their fully glory. So we can retire this. - -v3: Paper over msm and i915 regression. The complete_all is the only -thing missing afaict. - -v4: Rebased on recent kernel, added extra link for vc4 bug. - -Link: https://bugzilla.kernel.org/show_bug.cgi?id=199425 -Link: https://lore.kernel.org/all/20220221134155.125447-9-maxime@cerno.tech/ -Cc: mikita.lipski@amd.com -Cc: Michel Dänzer -Cc: harry.wentland@amd.com -Cc: Rob Clark -Cc: "Kazlauskas, Nicholas" -Tested-by: Maxime Ripard -Signed-off-by: Daniel Vetter -Signed-off-by: Maxime Ripard ---- - drivers/gpu/drm/drm_atomic_helper.c | 13 ------------- - drivers/gpu/drm/i915/display/intel_display.c | 13 +++++++++++++ - drivers/gpu/drm/msm/msm_atomic.c | 2 ++ - 3 files changed, 15 insertions(+), 13 deletions(-) - ---- a/drivers/gpu/drm/drm_atomic_helper.c -+++ b/drivers/gpu/drm/drm_atomic_helper.c -@@ -1656,13 +1656,6 @@ drm_atomic_helper_wait_for_vblanks(struc - int i, ret; - unsigned int crtc_mask = 0; - -- /* -- * Legacy cursor ioctls are completely unsynced, and userspace -- * relies on that (by doing tons of cursor updates). -- */ -- if (old_state->legacy_cursor_update) -- return; -- - for_each_oldnew_crtc_in_state(old_state, crtc, old_crtc_state, new_crtc_state, i) { - if (!new_crtc_state->active) - continue; -@@ -2311,12 +2304,6 @@ int drm_atomic_helper_setup_commit(struc - complete_all(&commit->flip_done); - continue; - } -- -- /* Legacy cursor updates are fully unsynced. */ -- if (state->legacy_cursor_update) { -- complete_all(&commit->flip_done); -- continue; -- } - - if (!new_crtc_state->event) { - commit->event = kzalloc(sizeof(*commit->event), ---- a/drivers/gpu/drm/i915/display/intel_display.c -+++ b/drivers/gpu/drm/i915/display/intel_display.c -@@ -7648,6 +7648,19 @@ int intel_atomic_commit(struct drm_devic - state->base.legacy_cursor_update = false; - } - -+ /* -+ * FIXME: Cut over to (async) commit helpers instead of hand-rolling -+ * everything. -+ */ -+ if (state->base.legacy_cursor_update) { -+ struct intel_crtc_state *new_crtc_state; -+ struct intel_crtc *crtc; -+ int i; -+ -+ for_each_new_intel_crtc_in_state(state, crtc, new_crtc_state, i) -+ complete_all(&new_crtc_state->uapi.commit->flip_done); -+ } -+ - ret = intel_atomic_prepare_commit(state); - if (ret) { - drm_dbg_atomic(&dev_priv->drm, ---- a/drivers/gpu/drm/msm/msm_atomic.c -+++ b/drivers/gpu/drm/msm/msm_atomic.c -@@ -242,6 +242,8 @@ void msm_atomic_commit_tail(struct drm_a - /* async updates are limited to single-crtc updates: */ - WARN_ON(crtc_mask != drm_crtc_mask(async_crtc)); - -+ complete_all(&async_crtc->state->commit->flip_done); -+ - /* - * Start timer if we don't already have an update pending - * on this crtc: diff --git a/6.12/target/linux/bcm27xx/patches-6.12/950-0017-drm-atomic-If-margins-are-updated-update-all-planes.patch b/6.12/target/linux/bcm27xx/patches-6.12/950-0017-drm-atomic-If-margins-are-updated-update-all-planes.patch deleted file mode 100644 index ee130181..00000000 --- a/6.12/target/linux/bcm27xx/patches-6.12/950-0017-drm-atomic-If-margins-are-updated-update-all-planes.patch +++ /dev/null @@ -1,60 +0,0 @@ -From 5350800c62c07a2f1e90332039a09d3be55b960b Mon Sep 17 00:00:00 2001 -From: Dave Stevenson -Date: Fri, 1 Apr 2022 17:10:37 +0100 -Subject: [PATCH 017/697] drm/atomic: If margins are updated, update all - planes. - -Margins may be implemented by scaling the planes, but as there -is no way of intercepting the set_property for a standard property, -and all planes are checked in drm_atomic_check_only before the -connectors, there's now way to add the planes into the state -from the driver. - -If the margin properties change, add all corresponding planes to -the state. - -Signed-off-by: Dave Stevenson ---- - drivers/gpu/drm/drm_atomic_uapi.c | 11 +++++++++++ - 1 file changed, 11 insertions(+) - ---- a/drivers/gpu/drm/drm_atomic_uapi.c -+++ b/drivers/gpu/drm/drm_atomic_uapi.c -@@ -679,6 +679,7 @@ static int drm_atomic_connector_set_prop - { - struct drm_device *dev = connector->dev; - struct drm_mode_config *config = &dev->mode_config; -+ bool margins_updated = false; - bool replaced = false; - int ret; - -@@ -707,12 +708,16 @@ static int drm_atomic_connector_set_prop - state->tv.subconnector = val; - } else if (property == config->tv_left_margin_property) { - state->tv.margins.left = val; -+ margins_updated = true; - } else if (property == config->tv_right_margin_property) { - state->tv.margins.right = val; -+ margins_updated = true; - } else if (property == config->tv_top_margin_property) { - state->tv.margins.top = val; -+ margins_updated = true; - } else if (property == config->tv_bottom_margin_property) { - state->tv.margins.bottom = val; -+ margins_updated = true; - } else if (property == config->legacy_tv_mode_property) { - state->tv.legacy_mode = val; - } else if (property == config->tv_mode_property) { -@@ -797,6 +802,12 @@ static int drm_atomic_connector_set_prop - return -EINVAL; - } - -+ if (margins_updated && state->crtc) { -+ ret = drm_atomic_add_affected_planes(state->state, state->crtc); -+ -+ return ret; -+ } -+ - return 0; - } - diff --git a/6.12/target/linux/bcm27xx/patches-6.12/950-0018-arm64-setup-Fix-build-warning.patch b/6.12/target/linux/bcm27xx/patches-6.12/950-0018-arm64-setup-Fix-build-warning.patch deleted file mode 100644 index bafeb767..00000000 --- a/6.12/target/linux/bcm27xx/patches-6.12/950-0018-arm64-setup-Fix-build-warning.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 4cdcf8e2c3eb6acfce367b06f0e3a82529ad8a20 Mon Sep 17 00:00:00 2001 -From: Maxime Ripard -Date: Mon, 6 Jun 2022 11:02:16 +0200 -Subject: [PATCH 018/697] arm64: setup: Fix build warning - -Signed-off-by: Maxime Ripard ---- - arch/arm64/kernel/setup.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - ---- a/arch/arm64/kernel/setup.c -+++ b/arch/arm64/kernel/setup.c -@@ -214,9 +214,9 @@ static void __init request_standard_reso - size_t res_size; - - kernel_code.start = __pa_symbol(_stext); -- kernel_code.end = __pa_symbol(__init_begin - 1); -+ kernel_code.end = __pa_symbol(__init_begin) - 1; - kernel_data.start = __pa_symbol(_sdata); -- kernel_data.end = __pa_symbol(_end - 1); -+ kernel_data.end = __pa_symbol(_end) - 1; - insert_resource(&iomem_resource, &kernel_code); - insert_resource(&iomem_resource, &kernel_data); - diff --git a/6.12/target/linux/bcm27xx/patches-6.12/950-0019-BCM2708-Add-core-Device-Tree-support.patch b/6.12/target/linux/bcm27xx/patches-6.12/950-0019-BCM2708-Add-core-Device-Tree-support.patch deleted file mode 100644 index d9774125..00000000 --- a/6.12/target/linux/bcm27xx/patches-6.12/950-0019-BCM2708-Add-core-Device-Tree-support.patch +++ /dev/null @@ -1,48839 +0,0 @@ -From 5f6c0206488177a698f006686b693eec62f8fe42 Mon Sep 17 00:00:00 2001 -From: Dom Cobley -Date: Mon, 30 Sep 2024 16:40:14 +0100 -Subject: [PATCH 019/697] BCM2708: Add core Device Tree support -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Add the bare minimum needed to boot BCM2708 from a Device Tree. - -Signed-off-by: Noralf Tronnes - -BCM2708: DT: change 'axi' nodename to 'soc' - -Change DT node named 'axi' to 'soc' so it matches ARCH_BCM2835. -The VC4 bootloader fills in certain properties in the 'axi' subtree, -but since this is part of an upstreaming effort, the name is changed. - -Signed-off-by: Noralf Tronnes notro@tronnes.org - -BCM2708_DT: Correct length of the peripheral space - -Use dts-dirs feature for overlays. - -The kernel makefiles have a dts-dirs target that is for vendor subdirectories. - -Using this fixes the install_dtbs target, which previously did not install the overlays. - -BCM270X_DT: configure I2S DMA channels - -Signed-off-by: Matthias Reichl - -BCM270X_DT: switch to bcm2835-i2s - -I2S soundcard drivers with proper devicetree support (i.e. not linking -to the cpu_dai/platform via name but to cpu/platform via of_node) -will work out of the box without any modifications. - -When the kernel is compiled without devicetree support the platform -code will instantiate the bcm2708-i2s driver and I2S soundcard drivers -will link to it via name, as before. - -Signed-off-by: Matthias Reichl - -SDIO-overlay: add poll_once-boolean parameter - -Add paramter to toggle sdio-device-polling -done every second or once at boot-time. - -Signed-off-by: Patrick Boettcher - -BCM270X_DT: Make mmc overlay compatible with current firmware - -The original DT overlay logic followed a merge-then-patch procedure, -i.e. parameters are applied to the loaded overlay before the overlay -is merged into the base DTB. This sequence has been changed to -patch-then-merge, in order to support parameterised node names, and -to protect against bad overlays. As a result, overrides (parameters) -must only target labels in the overlay, but the overlay can obviously target nodes in the base DTB. - -mmc-overlay.dts (that switches back to the original mmc sdcard -driver) is the only overlay violating that rule, and this patch -fixes it. - -bcm270x_dt: Use the sdhost MMC controller by default - -The "mmc" overlay reverts to using the other controller. - -squash: Add cprman to dt - -BCM270X_DT: Use clk_core for I2C interfaces - -BCM270X_DT: Use bcm283x.dtsi, bcm2835.dtsi and bcm2836.dtsi - -The mainline Device Tree files are quite close to downstream now. -Let's use bcm283x.dtsi, bcm2835.dtsi and bcm2836.dtsi as base files -for our dts files. - -Mainline dts files are based on these files: - - bcm2835-rpi.dtsi - bcm2835.dtsi bcm2836.dtsi - bcm283x.dtsi - -Current downstream are based on these: - - bcm2708.dtsi bcm2709.dtsi bcm2710.dtsi - bcm2708_common.dtsi - -This patch introduces this dependency: - - bcm2708.dtsi bcm2709.dtsi - bcm2708-rpi.dtsi - bcm270x.dtsi - bcm2835.dtsi bcm2836.dtsi - bcm283x.dtsi - -And: - bcm2710.dtsi - bcm2708-rpi.dtsi - bcm270x.dtsi - bcm283x.dtsi - -bcm270x.dtsi contains the downstream bcm283x.dtsi diff. -bcm2708-rpi.dtsi is the downstream version of bcm2835-rpi.dtsi. - -Other changes: -- The led node has moved from /soc/leds to /leds. This is not a problem - since the label is used to reference it. -- The clk_osc reg property changes from 6 to 3. -- The gpu nodes has their interrupt property set in the base file. -- the clocks label does not point to the /clocks node anymore, but - points to the cprman node. This is not a problem since the overlays - that use the clock node refer to it directly: target-path = "/clocks"; -- some nodes now have 2 labels since mainline and downstream differs in - this respect: cprman/clocks, spi0/spi, gpu/vc4. -- some nodes doesn't have an explicit status = "okay" since they're not - disabled in the base file: watchdog and random. -- gpiomem doesn't need an explicit status = "okay". -- bcm2708-rpi-cm.dts got the hpd-gpios property from bcm2708_common.dtsi, - it's now set directly in that file. -- bcm2709-rpi-2-b.dts has the timer node moved from /soc/timer to /timer. -- Removed clock-frequency property on the bcm{2709,2710}.dtsi timer nodes. - -Signed-off-by: Noralf Trønnes - -BCM270X_DT: Use raspberrypi-power to turn on USB power - -Use the raspberrypi-power driver to turn on USB power. - -Signed-off-by: Noralf Trønnes - -BCM270X_DT: Add a .dtbo target, use for overlays - -Change the filenames and extensions to keep the pre-DDT style of -overlay (-overlay.dtb) distinct from new ones that use a -different style of local fixups (.dtbo), and to match other -platforms. - -The RPi firmware uses the DDTK trailer atom to choose which type of -overlay to use for each kernel. - -Signed-off-by: Phil Elwell - -BCM270X_DT: Don't generate "linux,phandle" props - -The EPAPR standard says to use "phandle" properties to store phandles, -rather than the deprecated "linux,phandle" version. By default, dtc -generates both, but adding "-H epapr" causes it to only generate -"phandle"s, saving some space and clutter. - -Signed-off-by: Phil Elwell - -BCM270X_DT: Add overlay for enc28j60 on SPI2 - -Works on SPI2 for compute module - -BCM270X_DT: Add midi-uart0 overlay - -MIDI requires 31.25kbaud, a baudrate unsupported by Linux. The -midi-uart0 overlay configures uart0 (ttyAMA0) to use a fake clock -so that requesting 38.4kbaud actually gets 31.25kbaud. - -Signed-off-by: Phil Elwell - -BCM270X_DT: Add i2c-sensor overlay - -The i2c-sensor overlay is a container for various pressure and -temperature sensors, currently bmp085 and bmp280. The standalone -bmp085_i2c-sensor overlay is now deprecated. - -Signed-off-by: Phil Elwell - -BCM270X_DT: overlays/*-overlay.dtb -> overlays/*.dtbo (#1752) - -We now create overlays as .dtbo files. - -build: support for .dtbo files for dtb overlays - -Kernel 4.4.6+ on RaspberryPi support .dtbo files for overlays, instead of .dtb. -Patch the kernel, which has faulty rules to generate .dtbo the way yocto does - -Signed-off-by: Herve Jourdain -Signed-off-by: Khem Raj - -BCM270X: Drop position requirement for CMA in VC4 overlay. - -No longer necessary since 2aefcd576195a739a7a256099571c9c4a401005f, -and will probably let peeople that want to choose a larger CMA -allocation (particularly on pi0/1). - -Signed-off-by: Eric Anholt - -BCM270X_DT: RPi Device Tree tidy - -Use the upstream sdhost node, add thermal-zones, and factor out some -common elements. - -Signed-off-by: Phil Elwell - -kbuild: Silence unhelpful DTC warnings - -Signed-off-by: Phil Elwell - -BCM270X_DT: DT build rules no longer arch-specific - -Signed-off-by: Phil Elwell - -kbuild: Silence unavoidable dtc overlay warnings - -Much effort has been put into finding ways to avoid warnings from dtc -about overlays, usually to do with the presence of #address-cells and -size-cells, but not exclusively so. Since the issues being warned about -are harmless, suppress the warnings to declutter the build output and -to avoid alarming users. - -Signed-off-by: Phil Elwell - -overlays: Suppress another dtc warning - -I'm sure the dtc warnings mean well, but overlays don't have enough -context for the checkers to give meaningful results. - -Signed-off-by: Phil Elwell - -overlays: Use dtbs-list for overlay installation - -Update the overlay build rules to use the dtbs-list mechanism. Also -include the README, and don't set the executable bits. - -Signed-off-by: Phil Elwell ---- - arch/arm/boot/dts/Makefile | 5 + - arch/arm/boot/dts/broadcom/Makefile | 35 + - .../boot/dts/broadcom/bcm2708-rpi-b-plus.dts | 210 + - .../boot/dts/broadcom/bcm2708-rpi-b-rev1.dts | 223 + - arch/arm/boot/dts/broadcom/bcm2708-rpi-b.dts | 198 + - .../arm/boot/dts/broadcom/bcm2708-rpi-bt.dtsi | 42 + - arch/arm/boot/dts/broadcom/bcm2708-rpi-cm.dts | 174 + - .../arm/boot/dts/broadcom/bcm2708-rpi-cm.dtsi | 23 + - .../boot/dts/broadcom/bcm2708-rpi-zero-w.dts | 250 + - .../boot/dts/broadcom/bcm2708-rpi-zero.dts | 189 + - arch/arm/boot/dts/broadcom/bcm2708-rpi.dtsi | 63 + - arch/arm/boot/dts/broadcom/bcm2708.dtsi | 19 + - .../arm/boot/dts/broadcom/bcm2709-rpi-2-b.dts | 204 + - .../arm/boot/dts/broadcom/bcm2709-rpi-cm2.dts | 215 + - arch/arm/boot/dts/broadcom/bcm2709-rpi.dtsi | 8 + - arch/arm/boot/dts/broadcom/bcm2709.dtsi | 29 + - arch/arm/boot/dts/broadcom/bcm270x-rpi.dtsi | 201 + - arch/arm/boot/dts/broadcom/bcm270x.dtsi | 264 + - .../arm/boot/dts/broadcom/bcm2710-rpi-2-b.dts | 204 + - .../dts/broadcom/bcm2710-rpi-3-b-plus.dts | 295 + - .../arm/boot/dts/broadcom/bcm2710-rpi-3-b.dts | 293 + - .../arm/boot/dts/broadcom/bcm2710-rpi-cm3.dts | 215 + - .../dts/broadcom/bcm2710-rpi-zero-2-w.dts | 257 + - .../boot/dts/broadcom/bcm2710-rpi-zero-2.dts | 1 + - arch/arm/boot/dts/broadcom/bcm2710.dtsi | 32 + - .../arm/boot/dts/broadcom/bcm2711-rpi-4-b.dts | 266 +- - .../arm/boot/dts/broadcom/bcm2711-rpi-400.dts | 49 +- - .../arm/boot/dts/broadcom/bcm2711-rpi-cm4.dts | 499 ++ - .../boot/dts/broadcom/bcm2711-rpi-cm4s.dts | 293 + - .../arm/boot/dts/broadcom/bcm2711-rpi-ds.dtsi | 562 ++ - arch/arm/boot/dts/broadcom/bcm2711-rpi.dtsi | 13 + - arch/arm/boot/dts/broadcom/bcm2711.dtsi | 2 +- - .../arm/boot/dts/broadcom/bcm271x-rpi-bt.dtsi | 42 + - .../dts/broadcom/bcm283x-rpi-csi0-2lane.dtsi | 4 + - .../dts/broadcom/bcm283x-rpi-csi1-2lane.dtsi | 4 + - .../dts/broadcom/bcm283x-rpi-csi1-4lane.dtsi | 4 + - .../broadcom/bcm283x-rpi-i2c0mux_0_28.dtsi | 4 + - .../broadcom/bcm283x-rpi-i2c0mux_0_44.dtsi | 4 + - arch/arm/boot/dts/broadcom/bcm283x.dtsi | 8 +- - arch/arm/boot/dts/overlays/Makefile | 349 ++ - arch/arm/boot/dts/overlays/README | 5558 +++++++++++++++++ - .../arm/boot/dts/overlays/act-led-overlay.dts | 28 + - .../dts/overlays/adafruit-st7735r-overlay.dts | 83 + - .../boot/dts/overlays/adafruit18-overlay.dts | 55 + - .../dts/overlays/adau1977-adc-overlay.dts | 40 + - .../dts/overlays/adau7002-simple-overlay.dts | 52 + - .../arm/boot/dts/overlays/ads1015-overlay.dts | 98 + - .../arm/boot/dts/overlays/ads1115-overlay.dts | 135 + - .../arm/boot/dts/overlays/ads7846-overlay.dts | 89 + - .../boot/dts/overlays/adv7282m-overlay.dts | 73 + - .../boot/dts/overlays/adv728x-m-overlay.dts | 37 + - .../overlays/akkordion-iqdacplus-overlay.dts | 49 + - .../allo-boss-dac-pcm512x-audio-overlay.dts | 61 + - .../overlays/allo-boss2-dac-audio-overlay.dts | 57 + - .../dts/overlays/allo-digione-overlay.dts | 44 + - .../allo-katana-dac-audio-overlay.dts | 58 + - .../allo-piano-dac-pcm512x-audio-overlay.dts | 54 + - ...o-piano-dac-plus-pcm512x-audio-overlay.dts | 57 + - arch/arm/boot/dts/overlays/anyspi-overlay.dts | 205 + - .../boot/dts/overlays/apds9960-overlay.dts | 55 + - .../boot/dts/overlays/applepi-dac-overlay.dts | 57 + - .../dts/overlays/arducam-64mp-overlay.dts | 97 + - arch/arm/boot/dts/overlays/arducam-64mp.dtsi | 34 + - .../overlays/arducam-pivariety-overlay.dts | 100 + - .../boot/dts/overlays/at86rf233-overlay.dts | 57 + - .../overlays/audioinjector-addons-overlay.dts | 60 + - .../audioinjector-bare-i2s-overlay.dts | 50 + - ...dioinjector-isolated-soundcard-overlay.dts | 55 + - .../overlays/audioinjector-ultra-overlay.dts | 71 + - .../audioinjector-wm8731-audio-overlay.dts | 39 + - .../dts/overlays/audiosense-pi-overlay.dts | 82 + - .../boot/dts/overlays/audremap-overlay.dts | 38 + - .../boot/dts/overlays/balena-fin-overlay.dts | 125 + - .../boot/dts/overlays/bcm2712d0-overlay.dts | 75 + - .../dts/overlays/camera-mux-2port-overlay.dts | 545 ++ - .../dts/overlays/camera-mux-4port-overlay.dts | 954 +++ - .../arm/boot/dts/overlays/cap1106-overlay.dts | 52 + - .../boot/dts/overlays/chipcap2-overlay.dts | 66 + - .../boot/dts/overlays/chipdip-dac-overlay.dts | 46 + - .../dts/overlays/cirrus-wm5102-overlay.dts | 172 + - .../dts/overlays/cm-swap-i2c0-overlay.dts | 27 + - arch/arm/boot/dts/overlays/cma-overlay.dts | 36 + - .../crystalfontz-cfa050_pi_m-overlay.dts | 124 + - .../dts/overlays/cutiepi-panel-overlay.dts | 117 + - .../boot/dts/overlays/dacberry400-overlay.dts | 71 + - arch/arm/boot/dts/overlays/dht11-overlay.dts | 48 + - .../dts/overlays/dionaudio-kiwi-overlay.dts | 39 + - .../dts/overlays/dionaudio-loco-overlay.dts | 39 + - .../overlays/dionaudio-loco-v2-overlay.dts | 49 + - .../boot/dts/overlays/disable-bt-overlay.dts | 59 + - .../dts/overlays/disable-bt-pi5-overlay.dts | 17 + - .../dts/overlays/disable-emmc2-overlay.dts | 13 + - .../dts/overlays/disable-wifi-overlay.dts | 20 + - .../dts/overlays/disable-wifi-pi5-overlay.dts | 13 + - arch/arm/boot/dts/overlays/dpi18-overlay.dts | 39 + - .../boot/dts/overlays/dpi18cpadhi-overlay.dts | 26 + - arch/arm/boot/dts/overlays/dpi24-overlay.dts | 39 + - arch/arm/boot/dts/overlays/draws-overlay.dts | 208 + - .../arm/boot/dts/overlays/dwc-otg-overlay.dts | 14 + - arch/arm/boot/dts/overlays/dwc2-overlay.dts | 26 + - .../boot/dts/overlays/edt-ft5406-overlay.dts | 46 + - arch/arm/boot/dts/overlays/edt-ft5406.dtsi | 49 + - .../boot/dts/overlays/enc28j60-overlay.dts | 53 + - .../dts/overlays/enc28j60-spi2-overlay.dts | 47 + - .../arm/boot/dts/overlays/exc3000-overlay.dts | 48 + - arch/arm/boot/dts/overlays/fbtft-overlay.dts | 611 ++ - .../boot/dts/overlays/fe-pi-audio-overlay.dts | 70 + - .../boot/dts/overlays/fsm-demo-overlay.dts | 104 + - arch/arm/boot/dts/overlays/gc9a01-overlay.dts | 151 + - .../boot/dts/overlays/ghost-amp-overlay.dts | 145 + - arch/arm/boot/dts/overlays/goodix-overlay.dts | 46 + - .../googlevoicehat-soundcard-overlay.dts | 49 + - .../dts/overlays/gpio-charger-overlay.dts | 42 + - .../boot/dts/overlays/gpio-fan-overlay.dts | 89 + - .../boot/dts/overlays/gpio-hog-overlay.dts | 27 + - .../arm/boot/dts/overlays/gpio-ir-overlay.dts | 49 + - .../boot/dts/overlays/gpio-ir-tx-overlay.dts | 36 + - .../boot/dts/overlays/gpio-key-overlay.dts | 48 + - .../boot/dts/overlays/gpio-led-overlay.dts | 97 + - .../overlays/gpio-no-bank0-irq-overlay.dts | 14 + - .../boot/dts/overlays/gpio-no-irq-overlay.dts | 14 + - .../dts/overlays/gpio-poweroff-overlay.dts | 39 + - .../dts/overlays/gpio-shutdown-overlay.dts | 86 + - arch/arm/boot/dts/overlays/hat_map.dts | 124 + - .../dts/overlays/hd44780-i2c-lcd-overlay.dts | 57 + - .../boot/dts/overlays/hd44780-lcd-overlay.dts | 46 + - .../hdmi-backlight-hwhack-gpio-overlay.dts | 47 + - .../dts/overlays/hifiberry-adc-overlay.dts | 45 + - .../dts/overlays/hifiberry-adc8x-overlay.dts | 50 + - .../dts/overlays/hifiberry-amp-overlay.dts | 39 + - .../dts/overlays/hifiberry-amp100-overlay.dts | 67 + - .../dts/overlays/hifiberry-amp3-overlay.dts | 57 + - .../overlays/hifiberry-amp4pro-overlay.dts | 63 + - .../dts/overlays/hifiberry-dac-overlay.dts | 34 + - .../dts/overlays/hifiberry-dac8x-overlay.dts | 50 + - .../overlays/hifiberry-dacplus-overlay.dts | 68 + - .../hifiberry-dacplus-pro-overlay.dts | 64 + - .../hifiberry-dacplus-std-overlay.dts | 65 + - .../overlays/hifiberry-dacplusadc-overlay.dts | 72 + - .../hifiberry-dacplusadcpro-overlay.dts | 72 + - .../overlays/hifiberry-dacplusdsp-overlay.dts | 34 + - .../overlays/hifiberry-dacplushd-overlay.dts | 94 + - .../dts/overlays/hifiberry-digi-overlay.dts | 41 + - .../overlays/hifiberry-digi-pro-overlay.dts | 43 + - .../boot/dts/overlays/highperi-overlay.dts | 63 + - arch/arm/boot/dts/overlays/hy28a-overlay.dts | 93 + - .../boot/dts/overlays/hy28b-2017-overlay.dts | 152 + - arch/arm/boot/dts/overlays/hy28b-overlay.dts | 148 + - .../boot/dts/overlays/i-sabre-q2m-overlay.dts | 39 + - .../boot/dts/overlays/i2c-bcm2708-overlay.dts | 13 + - .../arm/boot/dts/overlays/i2c-fan-overlay.dts | 108 + - .../boot/dts/overlays/i2c-gpio-overlay.dts | 47 + - .../arm/boot/dts/overlays/i2c-mux-overlay.dts | 183 + - .../dts/overlays/i2c-pwm-pca9685a-overlay.dts | 61 + - .../arm/boot/dts/overlays/i2c-rtc-common.dtsi | 367 ++ - .../dts/overlays/i2c-rtc-gpio-overlay.dts | 31 + - .../arm/boot/dts/overlays/i2c-rtc-overlay.dts | 42 + - .../boot/dts/overlays/i2c-sensor-common.dtsi | 696 +++ - .../boot/dts/overlays/i2c-sensor-overlay.dts | 42 + - arch/arm/boot/dts/overlays/i2c0-overlay.dts | 83 + - .../boot/dts/overlays/i2c0-pi5-overlay.dts | 34 + - arch/arm/boot/dts/overlays/i2c1-overlay.dts | 44 + - .../boot/dts/overlays/i2c1-pi5-overlay.dts | 34 + - .../boot/dts/overlays/i2c2-pi5-overlay.dts | 21 + - arch/arm/boot/dts/overlays/i2c3-overlay.dts | 34 + - .../boot/dts/overlays/i2c3-pi5-overlay.dts | 22 + - arch/arm/boot/dts/overlays/i2c4-overlay.dts | 34 + - arch/arm/boot/dts/overlays/i2c5-overlay.dts | 34 + - arch/arm/boot/dts/overlays/i2c6-overlay.dts | 34 + - .../arm/boot/dts/overlays/i2s-dac-overlay.dts | 34 + - .../dts/overlays/i2s-gpio28-31-overlay.dts | 18 + - .../dts/overlays/i2s-master-dac-overlay.dts | 50 + - .../boot/dts/overlays/ilitek251x-overlay.dts | 45 + - arch/arm/boot/dts/overlays/imx219-overlay.dts | 95 + - arch/arm/boot/dts/overlays/imx219.dtsi | 27 + - arch/arm/boot/dts/overlays/imx258-overlay.dts | 137 + - arch/arm/boot/dts/overlays/imx258.dtsi | 27 + - arch/arm/boot/dts/overlays/imx290-overlay.dts | 32 + - .../boot/dts/overlays/imx290_327-overlay.dtsi | 118 + - arch/arm/boot/dts/overlays/imx290_327.dtsi | 24 + - arch/arm/boot/dts/overlays/imx296-overlay.dts | 120 + - arch/arm/boot/dts/overlays/imx327-overlay.dts | 33 + - arch/arm/boot/dts/overlays/imx378-overlay.dts | 17 + - arch/arm/boot/dts/overlays/imx462-overlay.dts | 39 + - arch/arm/boot/dts/overlays/imx477-overlay.dts | 17 + - .../boot/dts/overlays/imx477_378-overlay.dtsi | 98 + - arch/arm/boot/dts/overlays/imx477_378.dtsi | 24 + - arch/arm/boot/dts/overlays/imx500-overlay.dts | 122 + - .../boot/dts/overlays/imx500-pi5-overlay.dts | 127 + - arch/arm/boot/dts/overlays/imx500.dtsi | 28 + - arch/arm/boot/dts/overlays/imx519-overlay.dts | 99 + - arch/arm/boot/dts/overlays/imx519.dtsi | 34 + - arch/arm/boot/dts/overlays/imx708-overlay.dts | 111 + - arch/arm/boot/dts/overlays/imx708.dtsi | 35 + - .../interludeaudio-analog-overlay.dts | 73 + - .../interludeaudio-digital-overlay.dts | 49 + - .../dts/overlays/iqaudio-codec-overlay.dts | 42 + - .../boot/dts/overlays/iqaudio-dac-overlay.dts | 46 + - .../dts/overlays/iqaudio-dacplus-overlay.dts | 49 + - .../iqaudio-digi-wm8804-audio-overlay.dts | 47 + - arch/arm/boot/dts/overlays/iqs550-overlay.dts | 59 + - .../arm/boot/dts/overlays/irs1125-overlay.dts | 97 + - .../dts/overlays/jedec-spi-nor-overlay.dts | 136 + - .../dts/overlays/justboom-both-overlay.dts | 65 + - .../dts/overlays/justboom-dac-overlay.dts | 46 + - .../dts/overlays/justboom-digi-overlay.dts | 41 + - .../arm/boot/dts/overlays/ltc294x-overlay.dts | 86 + - .../boot/dts/overlays/max98357a-overlay.dts | 84 + - .../boot/dts/overlays/maxtherm-overlay.dts | 186 + - .../boot/dts/overlays/mbed-dac-overlay.dts | 64 + - .../boot/dts/overlays/mcp23017-overlay.dts | 103 + - .../boot/dts/overlays/mcp23s17-overlay.dts | 732 +++ - .../dts/overlays/mcp2515-can0-overlay.dts | 73 + - .../dts/overlays/mcp2515-can1-overlay.dts | 73 + - .../arm/boot/dts/overlays/mcp2515-overlay.dts | 156 + - .../boot/dts/overlays/mcp251xfd-overlay.dts | 226 + - .../arm/boot/dts/overlays/mcp3008-overlay.dts | 205 + - .../arm/boot/dts/overlays/mcp3202-overlay.dts | 205 + - .../arm/boot/dts/overlays/mcp342x-overlay.dts | 164 + - .../dts/overlays/media-center-overlay.dts | 86 + - .../boot/dts/overlays/merus-amp-overlay.dts | 59 + - .../boot/dts/overlays/midi-uart0-overlay.dts | 36 + - .../dts/overlays/midi-uart0-pi5-overlay.dts | 35 + - .../boot/dts/overlays/midi-uart1-overlay.dts | 43 + - .../dts/overlays/midi-uart1-pi5-overlay.dts | 35 + - .../boot/dts/overlays/midi-uart2-overlay.dts | 37 + - .../dts/overlays/midi-uart2-pi5-overlay.dts | 35 + - .../boot/dts/overlays/midi-uart3-overlay.dts | 38 + - .../dts/overlays/midi-uart3-pi5-overlay.dts | 35 + - .../boot/dts/overlays/midi-uart4-overlay.dts | 38 + - .../dts/overlays/midi-uart4-pi5-overlay.dts | 35 + - .../boot/dts/overlays/midi-uart5-overlay.dts | 38 + - .../boot/dts/overlays/minipitft13-overlay.dts | 70 + - .../boot/dts/overlays/miniuart-bt-overlay.dts | 83 + - .../dts/overlays/mipi-dbi-spi-overlay.dts | 175 + - .../boot/dts/overlays/mlx90640-overlay.dts | 22 + - arch/arm/boot/dts/overlays/mmc-overlay.dts | 46 + - .../arm/boot/dts/overlays/mz61581-overlay.dts | 117 + - arch/arm/boot/dts/overlays/ov2311-overlay.dts | 83 + - arch/arm/boot/dts/overlays/ov2311.dtsi | 26 + - arch/arm/boot/dts/overlays/ov5647-overlay.dts | 100 + - arch/arm/boot/dts/overlays/ov5647.dtsi | 25 + - .../arm/boot/dts/overlays/ov64a40-overlay.dts | 97 + - arch/arm/boot/dts/overlays/ov64a40.dtsi | 34 + - arch/arm/boot/dts/overlays/ov7251-overlay.dts | 83 + - arch/arm/boot/dts/overlays/ov7251.dtsi | 28 + - arch/arm/boot/dts/overlays/ov9281-overlay.dts | 84 + - arch/arm/boot/dts/overlays/ov9281.dtsi | 27 + - arch/arm/boot/dts/overlays/overlay_map.dts | 514 ++ - .../arm/boot/dts/overlays/papirus-overlay.dts | 84 + - .../arm/boot/dts/overlays/pca953x-overlay.dts | 240 + - .../arm/boot/dts/overlays/pcf857x-overlay.dts | 32 + - .../dts/overlays/pcie-32bit-dma-overlay.dts | 38 + - .../overlays/pcie-32bit-dma-pi5-overlay.dts | 26 + - .../overlays/pciex1-compat-pi5-overlay.dts | 60 + - arch/arm/boot/dts/overlays/pibell-overlay.dts | 81 + - .../dts/overlays/pifacedigital-overlay.dts | 144 + - .../arm/boot/dts/overlays/pifi-40-overlay.dts | 50 + - .../boot/dts/overlays/pifi-dac-hd-overlay.dts | 49 + - .../dts/overlays/pifi-dac-zero-overlay.dts | 49 + - .../dts/overlays/pifi-mini-210-overlay.dts | 42 + - arch/arm/boot/dts/overlays/piglow-overlay.dts | 97 + - .../overlays/pineboards-hat-ai-overlay.dts | 18 + - .../pineboards-hatdrive-poe-plus-overlay.dts | 19 + - .../boot/dts/overlays/piscreen-overlay.dts | 110 + - .../boot/dts/overlays/piscreen2r-overlay.dts | 106 + - .../arm/boot/dts/overlays/pisound-overlay.dts | 118 + - .../boot/dts/overlays/pisound-pi5-overlay.dts | 31 + - .../arm/boot/dts/overlays/pitft22-overlay.dts | 71 + - .../overlays/pitft28-capacitive-overlay.dts | 93 + - .../overlays/pitft28-resistive-overlay.dts | 126 + - .../overlays/pitft35-resistive-overlay.dts | 127 + - .../boot/dts/overlays/pps-gpio-overlay.dts | 39 + - .../boot/dts/overlays/proto-codec-overlay.dts | 39 + - .../boot/dts/overlays/pwm-2chan-overlay.dts | 48 + - .../boot/dts/overlays/pwm-gpio-overlay.dts | 38 + - .../boot/dts/overlays/pwm-ir-tx-overlay.dts | 40 + - arch/arm/boot/dts/overlays/pwm-overlay.dts | 44 + - arch/arm/boot/dts/overlays/pwm1-overlay.dts | 59 + - .../arm/boot/dts/overlays/qca7000-overlay.dts | 55 + - .../dts/overlays/qca7000-uart0-overlay.dts | 46 + - .../arm/boot/dts/overlays/ramoops-overlay.dts | 25 + - .../boot/dts/overlays/ramoops-pi4-overlay.dts | 25 + - .../dts/overlays/rotary-encoder-overlay.dts | 59 + - .../dts/overlays/rpi-backlight-overlay.dts | 21 + - .../dts/overlays/rpi-codeczero-overlay.dts | 9 + - .../boot/dts/overlays/rpi-dacplus-overlay.dts | 17 + - .../boot/dts/overlays/rpi-dacpro-overlay.dts | 17 + - .../dts/overlays/rpi-digiampplus-overlay.dts | 17 + - .../boot/dts/overlays/rpi-ft5406-overlay.dts | 25 + - .../arm/boot/dts/overlays/rpi-poe-overlay.dts | 154 + - .../dts/overlays/rpi-poe-plus-overlay.dts | 49 + - .../dts/overlays/rpi-rp2040-gpio-bridge.dtsi | 21 + - .../boot/dts/overlays/rpi-sense-overlay.dts | 69 + - .../dts/overlays/rpi-sense-v2-overlay.dts | 69 + - arch/arm/boot/dts/overlays/rpi-tv-overlay.dts | 34 + - .../rra-digidac1-wm8741-audio-overlay.dts | 49 + - .../boot/dts/overlays/sainsmart18-overlay.dts | 52 + - .../dts/overlays/sc16is750-i2c-overlay.dts | 57 + - .../dts/overlays/sc16is750-spi0-overlay.dts | 63 + - .../dts/overlays/sc16is752-i2c-overlay.dts | 57 + - .../dts/overlays/sc16is752-spi0-overlay.dts | 63 + - .../dts/overlays/sc16is752-spi1-overlay.dts | 76 + - arch/arm/boot/dts/overlays/sdhost-overlay.dts | 38 + - arch/arm/boot/dts/overlays/sdio-overlay.dts | 77 + - .../boot/dts/overlays/sdio-pi5-overlay.dts | 24 + - .../overlays/seeed-can-fd-hat-v1-overlay.dts | 138 + - .../overlays/seeed-can-fd-hat-v2-overlay.dts | 117 + - .../boot/dts/overlays/sh1106-spi-overlay.dts | 84 + - .../boot/dts/overlays/si446x-spi0-overlay.dts | 53 + - .../arm/boot/dts/overlays/smi-dev-overlay.dts | 20 + - .../boot/dts/overlays/smi-nand-overlay.dts | 66 + - arch/arm/boot/dts/overlays/smi-overlay.dts | 37 + - .../dts/overlays/spi-gpio35-39-overlay.dts | 31 + - .../dts/overlays/spi-gpio40-45-overlay.dts | 36 + - .../arm/boot/dts/overlays/spi-rtc-overlay.dts | 75 + - .../boot/dts/overlays/spi0-0cs-overlay.dts | 39 + - .../boot/dts/overlays/spi0-1cs-overlay.dts | 42 + - .../boot/dts/overlays/spi0-2cs-overlay.dts | 37 + - .../boot/dts/overlays/spi1-1cs-overlay.dts | 57 + - .../boot/dts/overlays/spi1-2cs-overlay.dts | 69 + - .../boot/dts/overlays/spi1-3cs-overlay.dts | 81 + - .../boot/dts/overlays/spi2-1cs-overlay.dts | 57 + - .../dts/overlays/spi2-1cs-pi5-overlay.dts | 33 + - .../boot/dts/overlays/spi2-2cs-overlay.dts | 69 + - .../dts/overlays/spi2-2cs-pi5-overlay.dts | 44 + - .../boot/dts/overlays/spi2-3cs-overlay.dts | 81 + - .../boot/dts/overlays/spi3-1cs-overlay.dts | 42 + - .../dts/overlays/spi3-1cs-pi5-overlay.dts | 33 + - .../boot/dts/overlays/spi3-2cs-overlay.dts | 54 + - .../dts/overlays/spi3-2cs-pi5-overlay.dts | 44 + - .../boot/dts/overlays/spi4-1cs-overlay.dts | 42 + - .../boot/dts/overlays/spi4-2cs-overlay.dts | 54 + - .../boot/dts/overlays/spi5-1cs-overlay.dts | 42 + - .../dts/overlays/spi5-1cs-pi5-overlay.dts | 33 + - .../boot/dts/overlays/spi5-2cs-overlay.dts | 54 + - .../dts/overlays/spi5-2cs-pi5-overlay.dts | 44 + - .../boot/dts/overlays/spi6-1cs-overlay.dts | 42 + - .../boot/dts/overlays/spi6-2cs-overlay.dts | 54 + - .../arm/boot/dts/overlays/ssd1306-overlay.dts | 36 + - .../boot/dts/overlays/ssd1306-spi-overlay.dts | 85 + - .../boot/dts/overlays/ssd1327-spi-overlay.dts | 70 + - .../boot/dts/overlays/ssd1331-spi-overlay.dts | 83 + - .../boot/dts/overlays/ssd1351-spi-overlay.dts | 83 + - .../overlays/sunfounder-pipower3-overlay.dts | 44 + - .../overlays/sunfounder-pironman5-overlay.dts | 55 + - .../dts/overlays/superaudioboard-overlay.dts | 73 + - arch/arm/boot/dts/overlays/sx150x-overlay.dts | 1706 +++++ - .../dts/overlays/tc358743-audio-overlay.dts | 52 + - .../boot/dts/overlays/tc358743-overlay.dts | 116 + - .../boot/dts/overlays/tinylcd35-overlay.dts | 222 + - .../boot/dts/overlays/tpm-slb9670-overlay.dts | 44 + - .../boot/dts/overlays/tpm-slb9673-overlay.dts | 50 + - arch/arm/boot/dts/overlays/uart0-overlay.dts | 32 + - .../boot/dts/overlays/uart0-pi5-overlay.dts | 18 + - arch/arm/boot/dts/overlays/uart1-overlay.dts | 38 + - .../boot/dts/overlays/uart1-pi5-overlay.dts | 18 + - arch/arm/boot/dts/overlays/uart2-overlay.dts | 25 + - .../boot/dts/overlays/uart2-pi5-overlay.dts | 18 + - arch/arm/boot/dts/overlays/uart3-overlay.dts | 25 + - .../boot/dts/overlays/uart3-pi5-overlay.dts | 18 + - arch/arm/boot/dts/overlays/uart4-overlay.dts | 25 + - .../boot/dts/overlays/uart4-pi5-overlay.dts | 18 + - arch/arm/boot/dts/overlays/uart5-overlay.dts | 25 + - arch/arm/boot/dts/overlays/udrc-overlay.dts | 128 + - .../dts/overlays/ugreen-dabboard-overlay.dts | 49 + - .../boot/dts/overlays/upstream-overlay.dts | 101 + - .../dts/overlays/upstream-pi4-overlay.dts | 137 + - .../dts/overlays/vc4-fkms-v3d-overlay.dts | 46 + - .../dts/overlays/vc4-fkms-v3d-pi4-overlay.dts | 50 + - .../overlays/vc4-kms-dpi-generic-overlay.dts | 82 + - .../dts/overlays/vc4-kms-dpi-hyperpixel.dtsi | 94 + - .../vc4-kms-dpi-hyperpixel2r-overlay.dts | 114 + - .../vc4-kms-dpi-hyperpixel4-overlay.dts | 57 + - .../vc4-kms-dpi-hyperpixel4sq-overlay.dts | 36 + - .../overlays/vc4-kms-dpi-panel-overlay.dts | 69 + - arch/arm/boot/dts/overlays/vc4-kms-dpi.dtsi | 111 + - .../overlays/vc4-kms-dsi-7inch-overlay.dts | 124 + - .../overlays/vc4-kms-dsi-generic-overlay.dts | 106 + - .../vc4-kms-dsi-ili9881-5inch-overlay.dts | 122 + - .../vc4-kms-dsi-ili9881-7inch-overlay.dts | 122 + - .../vc4-kms-dsi-lt070me05000-overlay.dts | 69 + - .../vc4-kms-dsi-lt070me05000-v2-overlay.dts | 64 + - .../vc4-kms-dsi-waveshare-800x480-overlay.dts | 119 + - .../vc4-kms-dsi-waveshare-panel-overlay.dts | 133 + - .../overlays/vc4-kms-kippah-7inch-overlay.dts | 26 + - .../boot/dts/overlays/vc4-kms-v3d-overlay.dts | 124 + - .../dts/overlays/vc4-kms-v3d-pi4-overlay.dts | 200 + - .../dts/overlays/vc4-kms-v3d-pi5-overlay.dts | 147 + - .../dts/overlays/vc4-kms-vga666-overlay.dts | 107 + - arch/arm/boot/dts/overlays/vga666-overlay.dts | 30 + - arch/arm/boot/dts/overlays/vl805-overlay.dts | 18 + - .../arm/boot/dts/overlays/w1-gpio-overlay.dts | 40 + - .../boot/dts/overlays/w1-gpio-pi5-overlay.dts | 15 + - .../dts/overlays/w1-gpio-pullup-overlay.dts | 42 + - .../overlays/w1-gpio-pullup-pi5-overlay.dts | 15 + - arch/arm/boot/dts/overlays/w5500-overlay.dts | 63 + - .../overlays/watterott-display-overlay.dts | 150 + - .../waveshare-can-fd-hat-mode-a-overlay.dts | 140 + - .../waveshare-can-fd-hat-mode-b-overlay.dts | 103 + - .../arm/boot/dts/overlays/wittypi-overlay.dts | 44 + - .../dts/overlays/wm8960-soundcard-overlay.dts | 82 + - arch/arm64/boot/dts/Makefile | 2 + - arch/arm64/boot/dts/broadcom/Makefile | 21 + - .../boot/dts/broadcom/bcm2710-rpi-2-b.dts | 1 + - .../dts/broadcom/bcm2710-rpi-3-b-plus.dts | 1 + - .../boot/dts/broadcom/bcm2710-rpi-3-b.dts | 1 + - .../boot/dts/broadcom/bcm2710-rpi-cm3.dts | 1 + - .../dts/broadcom/bcm2710-rpi-zero-2-w.dts | 1 + - .../boot/dts/broadcom/bcm2710-rpi-zero-2.dts | 1 + - .../boot/dts/broadcom/bcm2711-rpi-cm4.dts | 1 + - .../boot/dts/broadcom/bcm2711-rpi-cm4s.dts | 1 + - arch/arm64/boot/dts/broadcom/bcm2712-ds.dtsi | 808 +++ - .../boot/dts/broadcom/bcm2712-rpi-5-b.dts | 682 +- - .../boot/dts/broadcom/bcm2712-rpi-500.dts | 142 + - .../boot/dts/broadcom/bcm2712-rpi-cm4io.dtsi | 28 + - .../dts/broadcom/bcm2712-rpi-cm5-cm4io.dts | 5 + - .../dts/broadcom/bcm2712-rpi-cm5-cm5io.dts | 5 + - .../boot/dts/broadcom/bcm2712-rpi-cm5.dtsi | 712 +++ - .../boot/dts/broadcom/bcm2712-rpi-cm5io.dtsi | 14 + - .../dts/broadcom/bcm2712-rpi-cm5l-cm4io.dts | 5 + - .../dts/broadcom/bcm2712-rpi-cm5l-cm5io.dts | 5 + - .../boot/dts/broadcom/bcm2712-rpi-cm5l.dtsi | 22 + - arch/arm64/boot/dts/broadcom/bcm2712-rpi.dtsi | 466 ++ - .../boot/dts/broadcom/bcm2712d0-rpi-5-b.dts | 107 + - arch/arm64/boot/dts/broadcom/rp1.dtsi | 1291 ++++ - arch/arm64/boot/dts/overlays | 1 + - include/dt-bindings/gpio/gpio-fsm.h | 21 + - scripts/Makefile.build | 67 +- - scripts/Makefile.dtbinst | 9 +- - scripts/Makefile.lib | 156 +- - 431 files changed, 44814 insertions(+), 83 deletions(-) - create mode 100644 arch/arm/boot/dts/broadcom/bcm2708-rpi-b-plus.dts - create mode 100644 arch/arm/boot/dts/broadcom/bcm2708-rpi-b-rev1.dts - create mode 100644 arch/arm/boot/dts/broadcom/bcm2708-rpi-b.dts - create mode 100644 arch/arm/boot/dts/broadcom/bcm2708-rpi-bt.dtsi - create mode 100644 arch/arm/boot/dts/broadcom/bcm2708-rpi-cm.dts - create mode 100644 arch/arm/boot/dts/broadcom/bcm2708-rpi-cm.dtsi - create mode 100644 arch/arm/boot/dts/broadcom/bcm2708-rpi-zero-w.dts - create mode 100644 arch/arm/boot/dts/broadcom/bcm2708-rpi-zero.dts - create mode 100644 arch/arm/boot/dts/broadcom/bcm2708-rpi.dtsi - create mode 100644 arch/arm/boot/dts/broadcom/bcm2708.dtsi - create mode 100644 arch/arm/boot/dts/broadcom/bcm2709-rpi-2-b.dts - create mode 100644 arch/arm/boot/dts/broadcom/bcm2709-rpi-cm2.dts - create mode 100644 arch/arm/boot/dts/broadcom/bcm2709-rpi.dtsi - create mode 100644 arch/arm/boot/dts/broadcom/bcm2709.dtsi - create mode 100644 arch/arm/boot/dts/broadcom/bcm270x-rpi.dtsi - create mode 100644 arch/arm/boot/dts/broadcom/bcm270x.dtsi - create mode 100644 arch/arm/boot/dts/broadcom/bcm2710-rpi-2-b.dts - create mode 100644 arch/arm/boot/dts/broadcom/bcm2710-rpi-3-b-plus.dts - create mode 100644 arch/arm/boot/dts/broadcom/bcm2710-rpi-3-b.dts - create mode 100644 arch/arm/boot/dts/broadcom/bcm2710-rpi-cm3.dts - create mode 100644 arch/arm/boot/dts/broadcom/bcm2710-rpi-zero-2-w.dts - create mode 100644 arch/arm/boot/dts/broadcom/bcm2710-rpi-zero-2.dts - create mode 100644 arch/arm/boot/dts/broadcom/bcm2710.dtsi - create mode 100644 arch/arm/boot/dts/broadcom/bcm2711-rpi-cm4.dts - create mode 100644 arch/arm/boot/dts/broadcom/bcm2711-rpi-cm4s.dts - create mode 100644 arch/arm/boot/dts/broadcom/bcm2711-rpi-ds.dtsi - create mode 100644 arch/arm/boot/dts/broadcom/bcm271x-rpi-bt.dtsi - create mode 100644 arch/arm/boot/dts/broadcom/bcm283x-rpi-csi0-2lane.dtsi - create mode 100644 arch/arm/boot/dts/broadcom/bcm283x-rpi-csi1-2lane.dtsi - create mode 100644 arch/arm/boot/dts/broadcom/bcm283x-rpi-csi1-4lane.dtsi - create mode 100644 arch/arm/boot/dts/broadcom/bcm283x-rpi-i2c0mux_0_28.dtsi - create mode 100644 arch/arm/boot/dts/broadcom/bcm283x-rpi-i2c0mux_0_44.dtsi - create mode 100644 arch/arm/boot/dts/overlays/Makefile - create mode 100644 arch/arm/boot/dts/overlays/README - create mode 100644 arch/arm/boot/dts/overlays/act-led-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/adafruit-st7735r-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/adafruit18-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/adau1977-adc-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/adau7002-simple-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/ads1015-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/ads1115-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/ads7846-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/adv7282m-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/adv728x-m-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/akkordion-iqdacplus-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/allo-boss-dac-pcm512x-audio-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/allo-boss2-dac-audio-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/allo-digione-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/allo-katana-dac-audio-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/allo-piano-dac-pcm512x-audio-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/allo-piano-dac-plus-pcm512x-audio-overlay.dts - create mode 100755 arch/arm/boot/dts/overlays/anyspi-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/apds9960-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/applepi-dac-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/arducam-64mp-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/arducam-64mp.dtsi - create mode 100644 arch/arm/boot/dts/overlays/arducam-pivariety-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/at86rf233-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/audioinjector-addons-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/audioinjector-bare-i2s-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/audioinjector-isolated-soundcard-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/audioinjector-ultra-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/audioinjector-wm8731-audio-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/audiosense-pi-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/audremap-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/balena-fin-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/bcm2712d0-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/camera-mux-2port-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/camera-mux-4port-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/cap1106-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/chipcap2-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/chipdip-dac-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/cirrus-wm5102-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/cm-swap-i2c0-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/cma-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/crystalfontz-cfa050_pi_m-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/cutiepi-panel-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/dacberry400-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/dht11-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/dionaudio-kiwi-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/dionaudio-loco-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/dionaudio-loco-v2-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/disable-bt-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/disable-bt-pi5-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/disable-emmc2-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/disable-wifi-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/disable-wifi-pi5-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/dpi18-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/dpi18cpadhi-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/dpi24-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/draws-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/dwc-otg-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/dwc2-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/edt-ft5406-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/edt-ft5406.dtsi - create mode 100644 arch/arm/boot/dts/overlays/enc28j60-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/enc28j60-spi2-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/exc3000-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/fbtft-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/fe-pi-audio-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/fsm-demo-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/gc9a01-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/ghost-amp-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/goodix-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/googlevoicehat-soundcard-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/gpio-charger-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/gpio-fan-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/gpio-hog-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/gpio-ir-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/gpio-ir-tx-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/gpio-key-overlay.dts - create mode 100755 arch/arm/boot/dts/overlays/gpio-led-overlay.dts - create mode 100755 arch/arm/boot/dts/overlays/gpio-no-bank0-irq-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/gpio-no-irq-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/gpio-poweroff-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/gpio-shutdown-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/hat_map.dts - create mode 100644 arch/arm/boot/dts/overlays/hd44780-i2c-lcd-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/hd44780-lcd-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/hdmi-backlight-hwhack-gpio-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/hifiberry-adc-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/hifiberry-adc8x-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/hifiberry-amp-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/hifiberry-amp100-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/hifiberry-amp3-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/hifiberry-amp4pro-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/hifiberry-dac-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/hifiberry-dac8x-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/hifiberry-dacplus-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/hifiberry-dacplus-pro-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/hifiberry-dacplus-std-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/hifiberry-dacplusadc-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/hifiberry-dacplusadcpro-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/hifiberry-dacplusdsp-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/hifiberry-dacplushd-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/hifiberry-digi-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/hifiberry-digi-pro-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/highperi-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/hy28a-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/hy28b-2017-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/hy28b-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/i-sabre-q2m-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/i2c-bcm2708-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/i2c-fan-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/i2c-gpio-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/i2c-mux-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/i2c-pwm-pca9685a-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/i2c-rtc-common.dtsi - create mode 100644 arch/arm/boot/dts/overlays/i2c-rtc-gpio-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/i2c-rtc-overlay.dts - create mode 100755 arch/arm/boot/dts/overlays/i2c-sensor-common.dtsi - create mode 100755 arch/arm/boot/dts/overlays/i2c-sensor-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/i2c0-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/i2c0-pi5-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/i2c1-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/i2c1-pi5-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/i2c2-pi5-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/i2c3-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/i2c3-pi5-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/i2c4-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/i2c5-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/i2c6-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/i2s-dac-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/i2s-gpio28-31-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/i2s-master-dac-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/ilitek251x-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/imx219-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/imx219.dtsi - create mode 100644 arch/arm/boot/dts/overlays/imx258-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/imx258.dtsi - create mode 100644 arch/arm/boot/dts/overlays/imx290-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/imx290_327-overlay.dtsi - create mode 100644 arch/arm/boot/dts/overlays/imx290_327.dtsi - create mode 100644 arch/arm/boot/dts/overlays/imx296-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/imx327-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/imx378-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/imx462-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/imx477-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/imx477_378-overlay.dtsi - create mode 100644 arch/arm/boot/dts/overlays/imx477_378.dtsi - create mode 100644 arch/arm/boot/dts/overlays/imx500-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/imx500-pi5-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/imx500.dtsi - create mode 100644 arch/arm/boot/dts/overlays/imx519-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/imx519.dtsi - create mode 100644 arch/arm/boot/dts/overlays/imx708-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/imx708.dtsi - create mode 100644 arch/arm/boot/dts/overlays/interludeaudio-analog-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/interludeaudio-digital-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/iqaudio-codec-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/iqaudio-dac-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/iqaudio-dacplus-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/iqaudio-digi-wm8804-audio-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/iqs550-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/irs1125-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/jedec-spi-nor-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/justboom-both-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/justboom-dac-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/justboom-digi-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/ltc294x-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/max98357a-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/maxtherm-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/mbed-dac-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/mcp23017-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/mcp23s17-overlay.dts - create mode 100755 arch/arm/boot/dts/overlays/mcp2515-can0-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/mcp2515-can1-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/mcp2515-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/mcp251xfd-overlay.dts - create mode 100755 arch/arm/boot/dts/overlays/mcp3008-overlay.dts - create mode 100755 arch/arm/boot/dts/overlays/mcp3202-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/mcp342x-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/media-center-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/merus-amp-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/midi-uart0-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/midi-uart0-pi5-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/midi-uart1-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/midi-uart1-pi5-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/midi-uart2-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/midi-uart2-pi5-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/midi-uart3-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/midi-uart3-pi5-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/midi-uart4-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/midi-uart4-pi5-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/midi-uart5-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/minipitft13-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/miniuart-bt-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/mipi-dbi-spi-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/mlx90640-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/mmc-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/mz61581-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/ov2311-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/ov2311.dtsi - create mode 100644 arch/arm/boot/dts/overlays/ov5647-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/ov5647.dtsi - create mode 100644 arch/arm/boot/dts/overlays/ov64a40-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/ov64a40.dtsi - create mode 100644 arch/arm/boot/dts/overlays/ov7251-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/ov7251.dtsi - create mode 100644 arch/arm/boot/dts/overlays/ov9281-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/ov9281.dtsi - create mode 100644 arch/arm/boot/dts/overlays/overlay_map.dts - create mode 100644 arch/arm/boot/dts/overlays/papirus-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/pca953x-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/pcf857x-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/pcie-32bit-dma-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/pcie-32bit-dma-pi5-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/pciex1-compat-pi5-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/pibell-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/pifacedigital-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/pifi-40-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/pifi-dac-hd-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/pifi-dac-zero-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/pifi-mini-210-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/piglow-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/pineboards-hat-ai-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/pineboards-hatdrive-poe-plus-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/piscreen-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/piscreen2r-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/pisound-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/pisound-pi5-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/pitft22-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/pitft28-capacitive-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/pitft28-resistive-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/pitft35-resistive-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/pps-gpio-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/proto-codec-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/pwm-2chan-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/pwm-gpio-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/pwm-ir-tx-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/pwm-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/pwm1-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/qca7000-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/qca7000-uart0-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/ramoops-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/ramoops-pi4-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/rotary-encoder-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/rpi-backlight-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/rpi-codeczero-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/rpi-dacplus-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/rpi-dacpro-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/rpi-digiampplus-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/rpi-ft5406-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/rpi-poe-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/rpi-poe-plus-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/rpi-rp2040-gpio-bridge.dtsi - create mode 100644 arch/arm/boot/dts/overlays/rpi-sense-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/rpi-sense-v2-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/rpi-tv-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/rra-digidac1-wm8741-audio-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/sainsmart18-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/sc16is750-i2c-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/sc16is750-spi0-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/sc16is752-i2c-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/sc16is752-spi0-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/sc16is752-spi1-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/sdhost-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/sdio-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/sdio-pi5-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/seeed-can-fd-hat-v1-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/seeed-can-fd-hat-v2-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/sh1106-spi-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/si446x-spi0-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/smi-dev-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/smi-nand-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/smi-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/spi-gpio35-39-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/spi-gpio40-45-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/spi-rtc-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/spi0-0cs-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/spi0-1cs-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/spi0-2cs-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/spi1-1cs-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/spi1-2cs-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/spi1-3cs-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/spi2-1cs-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/spi2-1cs-pi5-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/spi2-2cs-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/spi2-2cs-pi5-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/spi2-3cs-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/spi3-1cs-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/spi3-1cs-pi5-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/spi3-2cs-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/spi3-2cs-pi5-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/spi4-1cs-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/spi4-2cs-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/spi5-1cs-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/spi5-1cs-pi5-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/spi5-2cs-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/spi5-2cs-pi5-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/spi6-1cs-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/spi6-2cs-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/ssd1306-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/ssd1306-spi-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/ssd1327-spi-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/ssd1331-spi-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/ssd1351-spi-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/sunfounder-pipower3-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/sunfounder-pironman5-overlay.dts - create mode 100755 arch/arm/boot/dts/overlays/superaudioboard-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/sx150x-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/tc358743-audio-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/tc358743-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/tinylcd35-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/tpm-slb9670-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/tpm-slb9673-overlay.dts - create mode 100755 arch/arm/boot/dts/overlays/uart0-overlay.dts - create mode 100755 arch/arm/boot/dts/overlays/uart0-pi5-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/uart1-overlay.dts - create mode 100755 arch/arm/boot/dts/overlays/uart1-pi5-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/uart2-overlay.dts - create mode 100755 arch/arm/boot/dts/overlays/uart2-pi5-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/uart3-overlay.dts - create mode 100755 arch/arm/boot/dts/overlays/uart3-pi5-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/uart4-overlay.dts - create mode 100755 arch/arm/boot/dts/overlays/uart4-pi5-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/uart5-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/udrc-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/ugreen-dabboard-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/upstream-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/upstream-pi4-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/vc4-fkms-v3d-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/vc4-fkms-v3d-pi4-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/vc4-kms-dpi-generic-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/vc4-kms-dpi-hyperpixel.dtsi - create mode 100644 arch/arm/boot/dts/overlays/vc4-kms-dpi-hyperpixel2r-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/vc4-kms-dpi-hyperpixel4-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/vc4-kms-dpi-hyperpixel4sq-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/vc4-kms-dpi-panel-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/vc4-kms-dpi.dtsi - create mode 100644 arch/arm/boot/dts/overlays/vc4-kms-dsi-7inch-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/vc4-kms-dsi-generic-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/vc4-kms-dsi-ili9881-5inch-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/vc4-kms-dsi-ili9881-7inch-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/vc4-kms-dsi-lt070me05000-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/vc4-kms-dsi-lt070me05000-v2-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/vc4-kms-dsi-waveshare-800x480-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/vc4-kms-dsi-waveshare-panel-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/vc4-kms-kippah-7inch-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/vc4-kms-v3d-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/vc4-kms-v3d-pi4-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/vc4-kms-v3d-pi5-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/vc4-kms-vga666-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/vga666-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/vl805-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/w1-gpio-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/w1-gpio-pi5-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/w1-gpio-pullup-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/w1-gpio-pullup-pi5-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/w5500-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/watterott-display-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/waveshare-can-fd-hat-mode-a-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/waveshare-can-fd-hat-mode-b-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/wittypi-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/wm8960-soundcard-overlay.dts - create mode 100644 arch/arm64/boot/dts/broadcom/bcm2710-rpi-2-b.dts - create mode 100644 arch/arm64/boot/dts/broadcom/bcm2710-rpi-3-b-plus.dts - create mode 100644 arch/arm64/boot/dts/broadcom/bcm2710-rpi-3-b.dts - create mode 100644 arch/arm64/boot/dts/broadcom/bcm2710-rpi-cm3.dts - create mode 100644 arch/arm64/boot/dts/broadcom/bcm2710-rpi-zero-2-w.dts - create mode 100644 arch/arm64/boot/dts/broadcom/bcm2710-rpi-zero-2.dts - create mode 100644 arch/arm64/boot/dts/broadcom/bcm2711-rpi-cm4.dts - create mode 100644 arch/arm64/boot/dts/broadcom/bcm2711-rpi-cm4s.dts - create mode 100644 arch/arm64/boot/dts/broadcom/bcm2712-ds.dtsi - create mode 100644 arch/arm64/boot/dts/broadcom/bcm2712-rpi-500.dts - create mode 100644 arch/arm64/boot/dts/broadcom/bcm2712-rpi-cm4io.dtsi - create mode 100644 arch/arm64/boot/dts/broadcom/bcm2712-rpi-cm5-cm4io.dts - create mode 100644 arch/arm64/boot/dts/broadcom/bcm2712-rpi-cm5-cm5io.dts - create mode 100644 arch/arm64/boot/dts/broadcom/bcm2712-rpi-cm5.dtsi - create mode 100644 arch/arm64/boot/dts/broadcom/bcm2712-rpi-cm5io.dtsi - create mode 100644 arch/arm64/boot/dts/broadcom/bcm2712-rpi-cm5l-cm4io.dts - create mode 100644 arch/arm64/boot/dts/broadcom/bcm2712-rpi-cm5l-cm5io.dts - create mode 100644 arch/arm64/boot/dts/broadcom/bcm2712-rpi-cm5l.dtsi - create mode 100644 arch/arm64/boot/dts/broadcom/bcm2712-rpi.dtsi - create mode 100644 arch/arm64/boot/dts/broadcom/bcm2712d0-rpi-5-b.dts - create mode 100644 arch/arm64/boot/dts/broadcom/rp1.dtsi - create mode 120000 arch/arm64/boot/dts/overlays - create mode 100644 include/dt-bindings/gpio/gpio-fsm.h - -diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile -index efe38eb25301..a2a407fb5b28 100644 ---- a/arch/arm/boot/dts/Makefile -+++ b/arch/arm/boot/dts/Makefile -@@ -39,3 +39,8 @@ subdir-y += unisoc - subdir-y += vt8500 - subdir-y += xen - subdir-y += xilinx -+ -+targets += dtbs dtbs_install -+targets += $(dtb-y) -+ -+subdir-y += overlays -diff --git a/arch/arm/boot/dts/broadcom/Makefile b/arch/arm/boot/dts/broadcom/Makefile -index 5881bcc95eba..79d83e8a214d 100644 ---- a/arch/arm/boot/dts/broadcom/Makefile -+++ b/arch/arm/boot/dts/broadcom/Makefile -@@ -35,6 +35,41 @@ dtb-$(CONFIG_ARCH_BCM2835) += \ - bcm2711-rpi-cm4-io.dtb \ - bcm2835-rpi-zero.dtb \ - bcm2835-rpi-zero-w.dtb -+ -+DTC_FLAGS_bcm2708-rpi-b := -@ -+DTC_FLAGS_bcm2708-rpi-b-rev1 := -@ -+DTC_FLAGS_bcm2708-rpi-b-plus := -@ -+DTC_FLAGS_bcm2708-rpi-cm := -@ -+DTC_FLAGS_bcm2708-rpi-zero := -@ -+DTC_FLAGS_bcm2708-rpi-zero-w := -@ -+DTC_FLAGS_bcm2710-rpi-zero-2 := -@ -+DTC_FLAGS_bcm2710-rpi-zero-2-w := -@ -+DTC_FLAGS_bcm2709-rpi-2-b := -@ -+DTC_FLAGS_bcm2710-rpi-2-b := -@ -+DTC_FLAGS_bcm2710-rpi-3-b := -@ -+DTC_FLAGS_bcm2710-rpi-3-b-plus := -@ -+DTC_FLAGS_bcm2709-rpi-cm2 := -@ -+DTC_FLAGS_bcm2710-rpi-cm3 := -@ -+DTC_FLAGS_bcm2711-rpi-cm4 := -@ -+DTC_FLAGS_bcm2711-rpi-cm4s := -@ -+dtb-$(CONFIG_ARCH_BCM2835) += \ -+ bcm2708-rpi-b.dtb \ -+ bcm2708-rpi-b-rev1.dtb \ -+ bcm2708-rpi-b-plus.dtb \ -+ bcm2708-rpi-cm.dtb \ -+ bcm2708-rpi-zero.dtb \ -+ bcm2708-rpi-zero-w.dtb \ -+ bcm2710-rpi-zero-2.dtb \ -+ bcm2710-rpi-zero-2-w.dtb \ -+ bcm2709-rpi-2-b.dtb \ -+ bcm2710-rpi-2-b.dtb \ -+ bcm2710-rpi-3-b.dtb \ -+ bcm2710-rpi-3-b-plus.dtb \ -+ bcm2709-rpi-cm2.dtb \ -+ bcm2710-rpi-cm3.dtb \ -+ bcm2711-rpi-cm4.dtb \ -+ bcm2711-rpi-cm4s.dtb -+ - dtb-$(CONFIG_ARCH_BCMBCA) += \ - bcm947622.dtb \ - bcm963138.dtb \ -diff --git a/arch/arm/boot/dts/broadcom/bcm2708-rpi-b-plus.dts b/arch/arm/boot/dts/broadcom/bcm2708-rpi-b-plus.dts -new file mode 100644 -index 000000000000..ee72fdac6663 ---- /dev/null -+++ b/arch/arm/boot/dts/broadcom/bcm2708-rpi-b-plus.dts -@@ -0,0 +1,210 @@ -+/dts-v1/; -+ -+#include "bcm2708.dtsi" -+#include "bcm2708-rpi.dtsi" -+#include "bcm283x-rpi-smsc9514.dtsi" -+#include "bcm283x-rpi-csi1-2lane.dtsi" -+#include "bcm283x-rpi-i2c0mux_0_28.dtsi" -+#include "bcm283x-rpi-led-deprecated.dtsi" -+ -+/ { -+ compatible = "raspberrypi,model-b-plus", "brcm,bcm2835"; -+ model = "Raspberry Pi Model B+"; -+}; -+ -+&gpio { -+ /* -+ * Taken from Raspberry-Pi-B-Plus-V1.2-Schematics.pdf -+ * RPI-BPLUS sheet 1 -+ * -+ * Legend: -+ * "NC" = not connected (no rail from the SoC) -+ * "FOO" = GPIO line named "FOO" on the schematic -+ * "FOO_N" = GPIO line named "FOO" on schematic, active low -+ */ -+ gpio-line-names = "ID_SDA", -+ "ID_SCL", -+ "GPIO2", -+ "GPIO3", -+ "GPIO4", -+ "GPIO5", -+ "GPIO6", -+ "GPIO7", -+ "GPIO8", -+ "GPIO9", -+ "GPIO10", -+ "GPIO11", -+ "GPIO12", -+ "GPIO13", -+ "GPIO14", -+ "GPIO15", -+ "GPIO16", -+ "GPIO17", -+ "GPIO18", -+ "GPIO19", -+ "GPIO20", -+ "GPIO21", -+ "GPIO22", -+ "GPIO23", -+ "GPIO24", -+ "GPIO25", -+ "GPIO26", -+ "GPIO27", -+ "SDA0", -+ "SCL0", -+ "NC", /* GPIO30 */ -+ "LAN_RUN", /* GPIO31 */ -+ "CAM_GPIO1", /* GPIO32 */ -+ "NC", /* GPIO33 */ -+ "NC", /* GPIO34 */ -+ "PWR_LOW_N", /* GPIO35 */ -+ "NC", /* GPIO36 */ -+ "NC", /* GPIO37 */ -+ "USB_LIMIT", /* GPIO38 */ -+ "NC", /* GPIO39 */ -+ "PWM0_OUT", /* GPIO40 */ -+ "CAM_GPIO0", /* GPIO41 */ -+ "NC", /* GPIO42 */ -+ "NC", /* GPIO43 */ -+ "ETH_CLK", /* GPIO44 */ -+ "PWM1_OUT", /* GPIO45 */ -+ "HDMI_HPD_N", -+ "STATUS_LED", -+ /* Used by SD Card */ -+ "SD_CLK_R", -+ "SD_CMD_R", -+ "SD_DATA0_R", -+ "SD_DATA1_R", -+ "SD_DATA2_R", -+ "SD_DATA3_R"; -+ -+ spi0_pins: spi0_pins { -+ brcm,pins = <9 10 11>; -+ brcm,function = <4>; /* alt0 */ -+ }; -+ -+ spi0_cs_pins: spi0_cs_pins { -+ brcm,pins = <8 7>; -+ brcm,function = <1>; /* output */ -+ }; -+ -+ i2c0_pins: i2c0 { -+ brcm,pins = <0 1>; -+ brcm,function = <4>; -+ }; -+ -+ i2c1_pins: i2c1 { -+ brcm,pins = <2 3>; -+ brcm,function = <4>; -+ }; -+ -+ i2s_pins: i2s { -+ brcm,pins = <18 19 20 21>; -+ brcm,function = <4>; /* alt0 */ -+ }; -+ -+ audio_pins: audio_pins { -+ brcm,pins = <40 45>; -+ brcm,function = <4>; -+ brcm,pull = <0>; -+ }; -+}; -+ -+&uart0 { -+ status = "okay"; -+}; -+ -+&spi0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&spi0_pins &spi0_cs_pins>; -+ cs-gpios = <&gpio 8 1>, <&gpio 7 1>; -+ -+ spidev0: spidev@0{ -+ compatible = "spidev"; -+ reg = <0>; /* CE0 */ -+ #address-cells = <1>; -+ #size-cells = <0>; -+ spi-max-frequency = <125000000>; -+ }; -+ -+ spidev1: spidev@1{ -+ compatible = "spidev"; -+ reg = <1>; /* CE1 */ -+ #address-cells = <1>; -+ #size-cells = <0>; -+ spi-max-frequency = <125000000>; -+ }; -+}; -+ -+&i2c0if { -+ clock-frequency = <100000>; -+}; -+ -+&i2c1 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&i2c1_pins>; -+ clock-frequency = <100000>; -+}; -+ -+&i2c2 { -+ clock-frequency = <100000>; -+}; -+ -+&i2s { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&i2s_pins>; -+}; -+ -+&led_act { -+ gpios = <&gpio 47 GPIO_ACTIVE_HIGH>; -+ default-state = "off"; -+ linux,default-trigger = "mmc0"; -+}; -+ -+&leds { -+ led_pwr: led-pwr { -+ label = "PWR"; -+ gpios = <&gpio 35 GPIO_ACTIVE_HIGH>; -+ default-state = "off"; -+ linux,default-trigger = "input"; -+ }; -+}; -+ -+&hdmi { -+ hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>; -+}; -+ -+&vchiq { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&audio_pins>; -+}; -+ -+&cam1_reg { -+ gpio = <&gpio 41 GPIO_ACTIVE_HIGH>; -+}; -+ -+cam0_reg: &cam_dummy_reg { -+}; -+ -+i2c_arm: &i2c1 { -+}; -+ -+i2c_vc: &i2c0 { -+}; -+ -+i2c_csi_dsi0: &i2c0 { -+}; -+ -+/ { -+ __overrides__ { -+ audio = <&chosen>,"bootargs{on='snd_bcm2835.enable_headphones=1 snd_bcm2835.enable_hdmi=1',off='snd_bcm2835.enable_headphones=0 snd_bcm2835.enable_hdmi=0'}"; -+ -+ act_led_gpio = <&led_act>,"gpios:4"; -+ act_led_activelow = <&led_act>,"gpios:8"; -+ act_led_trigger = <&led_act>,"linux,default-trigger"; -+ -+ pwr_led_gpio = <&led_pwr>,"gpios:4"; -+ pwr_led_activelow = <&led_pwr>,"gpios:8"; -+ pwr_led_trigger = <&led_pwr>,"linux,default-trigger"; -+ }; -+}; -diff --git a/arch/arm/boot/dts/broadcom/bcm2708-rpi-b-rev1.dts b/arch/arm/boot/dts/broadcom/bcm2708-rpi-b-rev1.dts -new file mode 100644 -index 000000000000..9301e345aea2 ---- /dev/null -+++ b/arch/arm/boot/dts/broadcom/bcm2708-rpi-b-rev1.dts -@@ -0,0 +1,223 @@ -+/dts-v1/; -+ -+#include "bcm2708.dtsi" -+#include "bcm2708-rpi.dtsi" -+#include "bcm283x-rpi-smsc9512.dtsi" -+#include "bcm283x-rpi-csi1-2lane.dtsi" -+#include "bcm283x-rpi-led-deprecated.dtsi" -+ -+/ { -+ compatible = "raspberrypi,model-b", "brcm,bcm2835"; -+ model = "Raspberry Pi Model B"; -+}; -+ -+&gpio { -+ /* -+ * Taken from Raspberry-Pi-Rev-1.0-Model-AB-Schematics.pdf -+ * RPI00021 sheet 02 -+ * -+ * Legend: -+ * "NC" = not connected (no rail from the SoC) -+ * "FOO" = GPIO line named "FOO" on the schematic -+ * "FOO_N" = GPIO line named "FOO" on schematic, active low -+ */ -+ gpio-line-names = "SDA0", -+ "SCL0", -+ "SDA1", -+ "SCL1", -+ "GPIO_GCLK", -+ "CAM_GPIO1", -+ "LAN_RUN", -+ "SPI_CE1_N", -+ "SPI_CE0_N", -+ "SPI_MISO", -+ "SPI_MOSI", -+ "SPI_SCLK", -+ "NC", /* GPIO12 */ -+ "NC", /* GPIO13 */ -+ /* Serial port */ -+ "TXD0", -+ "RXD0", -+ "STATUS_LED_N", -+ "GPIO17", -+ "GPIO18", -+ "NC", /* GPIO19 */ -+ "NC", /* GPIO20 */ -+ "GPIO21", -+ "GPIO22", -+ "GPIO23", -+ "GPIO24", -+ "GPIO25", -+ "NC", /* GPIO26 */ -+ "CAM_GPIO0", -+ /* Binary number representing build/revision */ -+ "CONFIG0", -+ "CONFIG1", -+ "CONFIG2", -+ "CONFIG3", -+ "NC", /* GPIO32 */ -+ "NC", /* GPIO33 */ -+ "NC", /* GPIO34 */ -+ "NC", /* GPIO35 */ -+ "NC", /* GPIO36 */ -+ "NC", /* GPIO37 */ -+ "NC", /* GPIO38 */ -+ "NC", /* GPIO39 */ -+ "PWM0_OUT", -+ "NC", /* GPIO41 */ -+ "NC", /* GPIO42 */ -+ "NC", /* GPIO43 */ -+ "NC", /* GPIO44 */ -+ "PWM1_OUT", -+ "HDMI_HPD_P", -+ "SD_CARD_DET", -+ /* Used by SD Card */ -+ "SD_CLK_R", -+ "SD_CMD_R", -+ "SD_DATA0_R", -+ "SD_DATA1_R", -+ "SD_DATA2_R", -+ "SD_DATA3_R"; -+ -+ spi0_pins: spi0_pins { -+ brcm,pins = <9 10 11>; -+ brcm,function = <4>; /* alt0 */ -+ }; -+ -+ spi0_cs_pins: spi0_cs_pins { -+ brcm,pins = <8 7>; -+ brcm,function = <1>; /* output */ -+ }; -+ -+ i2c0_pins: i2c0 { -+ brcm,pins = <0 1>; -+ brcm,function = <4>; -+ }; -+ -+ i2c1_pins: i2c1 { -+ brcm,pins = <2 3>; -+ brcm,function = <4>; -+ }; -+ -+ i2s_pins: i2s { -+ brcm,pins = <28 29 30 31>; -+ brcm,function = <6>; /* alt2 */ -+ }; -+ -+ audio_pins: audio_pins { -+ brcm,pins = <40 45>; -+ brcm,function = <4>; -+ brcm,pull = <0>; -+ }; -+}; -+ -+&uart0 { -+ status = "okay"; -+}; -+ -+&spi0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&spi0_pins &spi0_cs_pins>; -+ cs-gpios = <&gpio 8 1>, <&gpio 7 1>; -+ -+ spidev0: spidev@0{ -+ compatible = "spidev"; -+ reg = <0>; /* CE0 */ -+ #address-cells = <1>; -+ #size-cells = <0>; -+ spi-max-frequency = <125000000>; -+ }; -+ -+ spidev1: spidev@1{ -+ compatible = "spidev"; -+ reg = <1>; /* CE1 */ -+ #address-cells = <1>; -+ #size-cells = <0>; -+ spi-max-frequency = <125000000>; -+ }; -+}; -+ -+/delete-node/ &i2c0mux; -+ -+i2c0: &i2c0if { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&i2c0_pins>; -+ clock-frequency = <100000>; -+}; -+ -+i2c_csi_dsi: &i2c1 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&i2c1_pins>; -+ clock-frequency = <100000>; -+}; -+ -+/ { -+ aliases { -+ i2c0 = &i2c0; -+ }; -+ -+ /* Provide an i2c0mux label to avoid undefined symbols in overlays */ -+ i2c0mux: i2c0mux { -+ }; -+ -+ __overrides__ { -+ i2c0 = <&i2c0>, "status"; -+ }; -+}; -+ -+&i2c2 { -+ clock-frequency = <100000>; -+}; -+ -+&i2s { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&i2s_pins>; -+}; -+ -+&led_act { -+ gpios = <&gpio 16 GPIO_ACTIVE_LOW>; -+ default-state = "off"; -+ linux,default-trigger = "mmc0"; -+}; -+ -+&hdmi { -+ hpd-gpios = <&gpio 46 GPIO_ACTIVE_HIGH>; -+}; -+ -+&vchiq { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&audio_pins>; -+}; -+ -+&cam1_reg { -+ gpio = <&gpio 27 GPIO_ACTIVE_HIGH>; -+}; -+ -+cam0_reg: &cam_dummy_reg { -+}; -+ -+i2c_arm: &i2c0 { -+}; -+ -+i2c_vc: &i2c1 { -+}; -+ -+i2c_csi_dsi0: &i2c0 { -+}; -+ -+/ { -+ __overrides__ { -+ audio = <&chosen>,"bootargs{on='snd_bcm2835.enable_headphones=1 snd_bcm2835.enable_hdmi=1',off='snd_bcm2835.enable_headphones=0 snd_bcm2835.enable_hdmi=0'}"; -+ -+ act_led_gpio = <&led_act>,"gpios:4"; -+ act_led_activelow = <&led_act>,"gpios:8"; -+ act_led_trigger = <&led_act>,"linux,default-trigger"; -+ -+ i2c = <&i2c0>,"status"; -+ i2c_arm = <&i2c0>,"status"; -+ i2c_vc = <&i2c1>,"status"; -+ i2c_baudrate = <&i2c0>,"clock-frequency:0"; -+ i2c_arm_baudrate = <&i2c0>,"clock-frequency:0"; -+ i2c_vc_baudrate = <&i2c1>,"clock-frequency:0"; -+ }; -+}; -diff --git a/arch/arm/boot/dts/broadcom/bcm2708-rpi-b.dts b/arch/arm/boot/dts/broadcom/bcm2708-rpi-b.dts -new file mode 100644 -index 000000000000..b8459fd0f497 ---- /dev/null -+++ b/arch/arm/boot/dts/broadcom/bcm2708-rpi-b.dts -@@ -0,0 +1,198 @@ -+/dts-v1/; -+ -+#include "bcm2708.dtsi" -+#include "bcm2708-rpi.dtsi" -+#include "bcm283x-rpi-smsc9512.dtsi" -+#include "bcm283x-rpi-csi1-2lane.dtsi" -+#include "bcm283x-rpi-i2c0mux_0_28.dtsi" -+#include "bcm283x-rpi-led-deprecated.dtsi" -+ -+/ { -+ compatible = "raspberrypi,model-b", "brcm,bcm2835"; -+ model = "Raspberry Pi Model B"; -+}; -+ -+&gpio { -+ /* -+ * Taken from Raspberry-Pi-Rev-2.0-Model-AB-Schematics.pdf -+ * RPI00022 sheet 02 -+ * -+ * Legend: -+ * "NC" = not connected (no rail from the SoC) -+ * "FOO" = GPIO line named "FOO" on the schematic -+ * "FOO_N" = GPIO line named "FOO" on schematic, active low -+ */ -+ gpio-line-names = "SDA0", -+ "SCL0", -+ "SDA1", -+ "SCL1", -+ "GPIO_GCLK", -+ "CAM_GPIO1", -+ "LAN_RUN", -+ "SPI_CE1_N", -+ "SPI_CE0_N", -+ "SPI_MISO", -+ "SPI_MOSI", -+ "SPI_SCLK", -+ "NC", /* GPIO12 */ -+ "NC", /* GPIO13 */ -+ /* Serial port */ -+ "TXD0", -+ "RXD0", -+ "STATUS_LED_N", -+ "GPIO17", -+ "GPIO18", -+ "NC", /* GPIO19 */ -+ "NC", /* GPIO20 */ -+ "CAM_GPIO0", -+ "GPIO22", -+ "GPIO23", -+ "GPIO24", -+ "GPIO25", -+ "NC", /* GPIO26 */ -+ "GPIO27", -+ "GPIO28", -+ "GPIO29", -+ "GPIO30", -+ "GPIO31", -+ "NC", /* GPIO32 */ -+ "NC", /* GPIO33 */ -+ "NC", /* GPIO34 */ -+ "NC", /* GPIO35 */ -+ "NC", /* GPIO36 */ -+ "NC", /* GPIO37 */ -+ "NC", /* GPIO38 */ -+ "NC", /* GPIO39 */ -+ "PWM0_OUT", -+ "NC", /* GPIO41 */ -+ "NC", /* GPIO42 */ -+ "NC", /* GPIO43 */ -+ "NC", /* GPIO44 */ -+ "PWM1_OUT", -+ "HDMI_HPD_P", -+ "SD_CARD_DET", -+ /* Used by SD Card */ -+ "SD_CLK_R", -+ "SD_CMD_R", -+ "SD_DATA0_R", -+ "SD_DATA1_R", -+ "SD_DATA2_R", -+ "SD_DATA3_R"; -+ -+ spi0_pins: spi0_pins { -+ brcm,pins = <9 10 11>; -+ brcm,function = <4>; /* alt0 */ -+ }; -+ -+ spi0_cs_pins: spi0_cs_pins { -+ brcm,pins = <8 7>; -+ brcm,function = <1>; /* output */ -+ }; -+ -+ i2c0_pins: i2c0 { -+ brcm,pins = <0 1>; -+ brcm,function = <4>; -+ }; -+ -+ i2c1_pins: i2c1 { -+ brcm,pins = <2 3>; -+ brcm,function = <4>; -+ }; -+ -+ i2s_pins: i2s { -+ brcm,pins = <28 29 30 31>; -+ brcm,function = <6>; /* alt2 */ -+ }; -+ -+ audio_pins: audio_pins { -+ brcm,pins = <40 45>; -+ brcm,function = <4>; -+ brcm,pull = <0>; -+ }; -+}; -+ -+&uart0 { -+ status = "okay"; -+}; -+ -+&spi0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&spi0_pins &spi0_cs_pins>; -+ cs-gpios = <&gpio 8 1>, <&gpio 7 1>; -+ -+ spidev0: spidev@0{ -+ compatible = "spidev"; -+ reg = <0>; /* CE0 */ -+ #address-cells = <1>; -+ #size-cells = <0>; -+ spi-max-frequency = <125000000>; -+ }; -+ -+ spidev1: spidev@1{ -+ compatible = "spidev"; -+ reg = <1>; /* CE1 */ -+ #address-cells = <1>; -+ #size-cells = <0>; -+ spi-max-frequency = <125000000>; -+ }; -+}; -+ -+&i2c0if { -+ clock-frequency = <100000>; -+}; -+ -+&i2c1 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&i2c1_pins>; -+ clock-frequency = <100000>; -+}; -+ -+&i2c2 { -+ clock-frequency = <100000>; -+}; -+ -+&i2s { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&i2s_pins>; -+}; -+ -+&led_act { -+ gpios = <&gpio 16 GPIO_ACTIVE_LOW>; -+ default-state = "off"; -+ linux,default-trigger = "mmc0"; -+}; -+ -+&hdmi { -+ hpd-gpios = <&gpio 46 GPIO_ACTIVE_HIGH>; -+}; -+ -+&vchiq { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&audio_pins>; -+}; -+ -+&cam1_reg { -+ gpio = <&gpio 21 GPIO_ACTIVE_HIGH>; -+}; -+ -+cam0_reg: &cam_dummy_reg { -+}; -+ -+i2c_arm: &i2c1 { -+}; -+ -+i2c_vc: &i2c0 { -+}; -+ -+i2c_csi_dsi0: &i2c0 { -+}; -+ -+/ { -+ __overrides__ { -+ audio = <&chosen>,"bootargs{on='snd_bcm2835.enable_headphones=1 snd_bcm2835.enable_hdmi=1',off='snd_bcm2835.enable_headphones=0 snd_bcm2835.enable_hdmi=0'}"; -+ -+ act_led_gpio = <&led_act>,"gpios:4"; -+ act_led_activelow = <&led_act>,"gpios:8"; -+ act_led_trigger = <&led_act>,"linux,default-trigger"; -+ }; -+}; -diff --git a/arch/arm/boot/dts/broadcom/bcm2708-rpi-bt.dtsi b/arch/arm/boot/dts/broadcom/bcm2708-rpi-bt.dtsi -new file mode 100644 -index 000000000000..87a6c00bd056 ---- /dev/null -+++ b/arch/arm/boot/dts/broadcom/bcm2708-rpi-bt.dtsi -@@ -0,0 +1,42 @@ -+// SPDX-License-Identifier: GPL-2.0 -+ -+&uart0 { -+ bt: bluetooth { -+ compatible = "brcm,bcm43438-bt"; -+ max-speed = <3000000>; -+ shutdown-gpios = <&gpio 45 GPIO_ACTIVE_HIGH>; -+ local-bd-address = [ 00 00 00 00 00 00 ]; -+ fallback-bd-address; // Don't override a valid address -+ status = "okay"; -+ }; -+}; -+ -+&uart1 { -+ minibt: bluetooth { -+ compatible = "brcm,bcm43438-bt"; -+ max-speed = <230400>; -+ shutdown-gpios = <&gpio 45 GPIO_ACTIVE_HIGH>; -+ local-bd-address = [ 00 00 00 00 00 00 ]; -+ fallback-bd-address; // Don't override a valid address -+ status = "disabled"; -+ }; -+}; -+ -+/ { -+ chosen { -+ bootargs = "coherent_pool=1M 8250.nr_uarts=1 snd_bcm2835.enable_headphones=0 cgroup_disable=memory"; -+ }; -+ -+ aliases { -+ bluetooth = &bt; -+ }; -+ -+ __overrides__ { -+ bdaddr = <&bt>,"local-bd-address[", -+ <&bt>,"fallback-bd-address?=0", -+ <&minibt>,"local-bd-address[", -+ <&minibt>,"fallback-bd-address?=0"; -+ krnbt = <&bt>,"status"; -+ krnbt_baudrate = <&bt>,"max-speed:0", <&minibt>,"max-speed:0"; -+ }; -+}; -diff --git a/arch/arm/boot/dts/broadcom/bcm2708-rpi-cm.dts b/arch/arm/boot/dts/broadcom/bcm2708-rpi-cm.dts -new file mode 100644 -index 000000000000..fde85c8c7dca ---- /dev/null -+++ b/arch/arm/boot/dts/broadcom/bcm2708-rpi-cm.dts -@@ -0,0 +1,174 @@ -+/dts-v1/; -+ -+#include "bcm2708-rpi-cm.dtsi" -+#include "bcm283x-rpi-csi0-2lane.dtsi" -+#include "bcm283x-rpi-csi1-4lane.dtsi" -+#include "bcm283x-rpi-i2c0mux_0_28.dtsi" -+ -+/ { -+ compatible = "raspberrypi,compute-module", "brcm,bcm2835"; -+ model = "Raspberry Pi Compute Module"; -+}; -+ -+&cam1_reg { -+ gpio = <&gpio 3 GPIO_ACTIVE_HIGH>; -+ status = "disabled"; -+}; -+ -+cam0_reg: &cam0_regulator { -+ gpio = <&gpio 31 GPIO_ACTIVE_HIGH>; -+}; -+ -+i2c_csi_dsi0: &i2c0 { -+}; -+ -+&uart0 { -+ status = "okay"; -+}; -+ -+&gpio { -+ /* -+ * This is based on the official GPU firmware DT blob. -+ * -+ * Legend: -+ * "NC" = not connected (no rail from the SoC) -+ * "FOO" = GPIO line named "FOO" on the schematic -+ * "FOO_N" = GPIO line named "FOO" on schematic, active low -+ */ -+ gpio-line-names = "GPIO0", -+ "GPIO1", -+ "GPIO2", -+ "GPIO3", -+ "GPIO4", -+ "GPIO5", -+ "GPIO6", -+ "GPIO7", -+ "GPIO8", -+ "GPIO9", -+ "GPIO10", -+ "GPIO11", -+ "GPIO12", -+ "GPIO13", -+ "GPIO14", -+ "GPIO15", -+ "GPIO16", -+ "GPIO17", -+ "GPIO18", -+ "GPIO19", -+ "GPIO20", -+ "GPIO21", -+ "GPIO22", -+ "GPIO23", -+ "GPIO24", -+ "GPIO25", -+ "GPIO26", -+ "GPIO27", -+ "GPIO28", -+ "GPIO29", -+ "GPIO30", -+ "GPIO31", -+ "GPIO32", -+ "GPIO33", -+ "GPIO34", -+ "GPIO35", -+ "GPIO36", -+ "GPIO37", -+ "GPIO38", -+ "GPIO39", -+ "GPIO40", -+ "GPIO41", -+ "GPIO42", -+ "GPIO43", -+ "GPIO44", -+ "GPIO45", -+ "HDMI_HPD_N", -+ /* Also used as ACT LED */ -+ "EMMC_EN_N", -+ /* Used by eMMC */ -+ "SD_CLK_R", -+ "SD_CMD_R", -+ "SD_DATA0_R", -+ "SD_DATA1_R", -+ "SD_DATA2_R", -+ "SD_DATA3_R"; -+ -+ spi0_pins: spi0_pins { -+ brcm,pins = <9 10 11>; -+ brcm,function = <4>; /* alt0 */ -+ }; -+ -+ spi0_cs_pins: spi0_cs_pins { -+ brcm,pins = <8 7>; -+ brcm,function = <1>; /* output */ -+ }; -+ -+ i2c0_pins: i2c0 { -+ brcm,pins = <0 1>; -+ brcm,function = <4>; -+ }; -+ -+ i2c1_pins: i2c1 { -+ brcm,pins = <2 3>; -+ brcm,function = <4>; -+ }; -+ -+ i2s_pins: i2s { -+ brcm,pins = <18 19 20 21>; -+ brcm,function = <4>; /* alt0 */ -+ }; -+ -+ audio_pins: audio_pins { -+ brcm,pins; -+ brcm,function; -+ }; -+}; -+ -+&spi0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&spi0_pins &spi0_cs_pins>; -+ cs-gpios = <&gpio 8 1>, <&gpio 7 1>; -+ -+ spidev0: spidev@0{ -+ compatible = "spidev"; -+ reg = <0>; /* CE0 */ -+ #address-cells = <1>; -+ #size-cells = <0>; -+ spi-max-frequency = <125000000>; -+ }; -+ -+ spidev1: spidev@1{ -+ compatible = "spidev"; -+ reg = <1>; /* CE1 */ -+ #address-cells = <1>; -+ #size-cells = <0>; -+ spi-max-frequency = <125000000>; -+ }; -+}; -+ -+&i2c0if { -+ clock-frequency = <100000>; -+}; -+ -+&i2c1 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&i2c1_pins>; -+ clock-frequency = <100000>; -+}; -+ -+&i2c2 { -+ clock-frequency = <100000>; -+}; -+ -+&i2s { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&i2s_pins>; -+}; -+ -+&vchiq { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&audio_pins>; -+}; -+ -+&hdmi { -+ hpd-gpios = <&gpio 46 GPIO_ACTIVE_HIGH>; -+}; -diff --git a/arch/arm/boot/dts/broadcom/bcm2708-rpi-cm.dtsi b/arch/arm/boot/dts/broadcom/bcm2708-rpi-cm.dtsi -new file mode 100644 -index 000000000000..8d3e42bfe4f0 ---- /dev/null -+++ b/arch/arm/boot/dts/broadcom/bcm2708-rpi-cm.dtsi -@@ -0,0 +1,23 @@ -+#include "bcm2708.dtsi" -+#include "bcm2708-rpi.dtsi" -+#include "bcm283x-rpi-led-deprecated.dtsi" -+ -+&led_act { -+ gpios = <&gpio 47 GPIO_ACTIVE_HIGH>; -+ default-state = "off"; -+ linux,default-trigger = "mmc0"; -+}; -+ -+i2c_arm: &i2c1 { -+}; -+ -+i2c_vc: &i2c0 { -+}; -+ -+/ { -+ __overrides__ { -+ act_led_gpio = <&led_act>,"gpios:4"; -+ act_led_activelow = <&led_act>,"gpios:8"; -+ act_led_trigger = <&led_act>,"linux,default-trigger"; -+ }; -+}; -diff --git a/arch/arm/boot/dts/broadcom/bcm2708-rpi-zero-w.dts b/arch/arm/boot/dts/broadcom/bcm2708-rpi-zero-w.dts -new file mode 100644 -index 000000000000..f6d4e2c73df9 ---- /dev/null -+++ b/arch/arm/boot/dts/broadcom/bcm2708-rpi-zero-w.dts -@@ -0,0 +1,250 @@ -+/dts-v1/; -+ -+#include "bcm2708.dtsi" -+#include "bcm2708-rpi.dtsi" -+#include "bcm283x-rpi-csi1-2lane.dtsi" -+#include "bcm283x-rpi-i2c0mux_0_28.dtsi" -+#include "bcm2708-rpi-bt.dtsi" -+#include "bcm283x-rpi-led-deprecated.dtsi" -+ -+/ { -+ compatible = "raspberrypi,model-zero-w", "brcm,bcm2835"; -+ model = "Raspberry Pi Zero W"; -+ -+ aliases { -+ serial0 = &uart1; -+ serial1 = &uart0; -+ mmc1 = &mmcnr; -+ }; -+}; -+ -+&gpio { -+ /* -+ * This is based on the official GPU firmware DT blob. -+ * -+ * Legend: -+ * "NC" = not connected (no rail from the SoC) -+ * "FOO" = GPIO line named "FOO" on the schematic -+ * "FOO_N" = GPIO line named "FOO" on schematic, active low -+ */ -+ gpio-line-names = "ID_SDA", -+ "ID_SCL", -+ "GPIO2", -+ "GPIO3", -+ "GPIO4", -+ "GPIO5", -+ "GPIO6", -+ "GPIO7", -+ "GPIO8", -+ "GPIO9", -+ "GPIO10", -+ "GPIO11", -+ "GPIO12", -+ "GPIO13", -+ "GPIO14", -+ "GPIO15", -+ "GPIO16", -+ "GPIO17", -+ "GPIO18", -+ "GPIO19", -+ "GPIO20", -+ "GPIO21", -+ "GPIO22", -+ "GPIO23", -+ "GPIO24", -+ "GPIO25", -+ "GPIO26", -+ "GPIO27", -+ "SDA0", -+ "SCL0", -+ /* Used by BT module */ -+ "CTS0", -+ "RTS0", -+ "TXD0", -+ "RXD0", -+ /* Used by Wifi */ -+ "SD1_CLK", -+ "SD1_CMD", -+ "SD1_DATA0", -+ "SD1_DATA1", -+ "SD1_DATA2", -+ "SD1_DATA3", -+ "CAM_GPIO1", /* GPIO40 */ -+ "WL_ON", /* GPIO41 */ -+ "NC", /* GPIO42 */ -+ "WIFI_CLK", /* GPIO43 */ -+ "CAM_GPIO0", /* GPIO44 */ -+ "BT_ON", /* GPIO45 */ -+ "HDMI_HPD_N", -+ "STATUS_LED_N", -+ /* Used by SD Card */ -+ "SD_CLK_R", -+ "SD_CMD_R", -+ "SD_DATA0_R", -+ "SD_DATA1_R", -+ "SD_DATA2_R", -+ "SD_DATA3_R"; -+ -+ spi0_pins: spi0_pins { -+ brcm,pins = <9 10 11>; -+ brcm,function = <4>; /* alt0 */ -+ }; -+ -+ spi0_cs_pins: spi0_cs_pins { -+ brcm,pins = <8 7>; -+ brcm,function = <1>; /* output */ -+ }; -+ -+ i2c0_pins: i2c0 { -+ brcm,pins = <0 1>; -+ brcm,function = <4>; -+ }; -+ -+ i2c1_pins: i2c1 { -+ brcm,pins = <2 3>; -+ brcm,function = <4>; -+ }; -+ -+ i2s_pins: i2s { -+ brcm,pins = <18 19 20 21>; -+ brcm,function = <4>; /* alt0 */ -+ }; -+ -+ sdio_pins: sdio_pins { -+ brcm,pins = <34 35 36 37 38 39>; -+ brcm,function = <7>; /* ALT3 = SD1 */ -+ brcm,pull = <0 2 2 2 2 2>; -+ }; -+ -+ bt_pins: bt_pins { -+ brcm,pins = <43>; -+ brcm,function = <4>; /* alt0:GPCLK2 */ -+ brcm,pull = <0>; /* none */ -+ }; -+ -+ uart0_pins: uart0_pins { -+ brcm,pins = <30 31 32 33>; -+ brcm,function = <7>; /* alt3=UART0 */ -+ brcm,pull = <2 0 0 2>; /* up none none up */ -+ }; -+ -+ uart1_pins: uart1_pins { -+ brcm,pins; -+ brcm,function; -+ brcm,pull; -+ }; -+ -+ uart1_bt_pins: uart1_bt_pins { -+ brcm,pins = <32 33 30 31>; -+ brcm,function = ; /* alt5=UART1 */ -+ brcm,pull = <0 2 2 0>; -+ }; -+ -+ audio_pins: audio_pins { -+ brcm,pins = <>; -+ brcm,function = <>; -+ }; -+}; -+ -+&mmcnr { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&sdio_pins>; -+ bus-width = <4>; -+ status = "okay"; -+ #address-cells = <1>; -+ #size-cells = <0>; -+ -+ brcmf: wifi@1 { -+ reg = <1>; -+ compatible = "brcm,bcm4329-fmac"; -+ }; -+}; -+ -+&uart0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&uart0_pins &bt_pins>; -+ status = "okay"; -+}; -+ -+&uart1 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&uart1_pins>; -+ status = "okay"; -+}; -+ -+&spi0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&spi0_pins &spi0_cs_pins>; -+ cs-gpios = <&gpio 8 1>, <&gpio 7 1>; -+ -+ spidev0: spidev@0{ -+ compatible = "spidev"; -+ reg = <0>; /* CE0 */ -+ #address-cells = <1>; -+ #size-cells = <0>; -+ spi-max-frequency = <125000000>; -+ }; -+ -+ spidev1: spidev@1{ -+ compatible = "spidev"; -+ reg = <1>; /* CE1 */ -+ #address-cells = <1>; -+ #size-cells = <0>; -+ spi-max-frequency = <125000000>; -+ }; -+}; -+ -+&i2c0if { -+ clock-frequency = <100000>; -+}; -+ -+&i2c1 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&i2c1_pins>; -+ clock-frequency = <100000>; -+}; -+ -+&i2c2 { -+ clock-frequency = <100000>; -+}; -+ -+&i2s { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&i2s_pins>; -+}; -+ -+&led_act { -+ gpios = <&gpio 47 GPIO_ACTIVE_LOW>; -+ default-state = "off"; -+ linux,default-trigger = "actpwr"; -+}; -+ -+&hdmi { -+ hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>; -+}; -+ -+&vchiq { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&audio_pins>; -+}; -+ -+&cam1_reg { -+ gpio = <&gpio 44 GPIO_ACTIVE_HIGH>; -+}; -+ -+cam0_reg: &cam_dummy_reg { -+}; -+ -+i2c_arm: &i2c1 {}; -+i2c_vc: &i2c0 {}; -+i2c_csi_dsi0: &i2c0 {}; -+ -+/ { -+ __overrides__ { -+ audio = <&chosen>,"bootargs{on='snd_bcm2835.enable_hdmi=1',off='snd_bcm2835.enable_hdmi=0'}"; -+ -+ act_led_gpio = <&led_act>,"gpios:4"; -+ act_led_activelow = <&led_act>,"gpios:8"; -+ act_led_trigger = <&led_act>,"linux,default-trigger"; -+ }; -+}; -diff --git a/arch/arm/boot/dts/broadcom/bcm2708-rpi-zero.dts b/arch/arm/boot/dts/broadcom/bcm2708-rpi-zero.dts -new file mode 100644 -index 000000000000..1721be8dbe20 ---- /dev/null -+++ b/arch/arm/boot/dts/broadcom/bcm2708-rpi-zero.dts -@@ -0,0 +1,189 @@ -+/dts-v1/; -+ -+#include "bcm2708.dtsi" -+#include "bcm2708-rpi.dtsi" -+#include "bcm283x-rpi-csi1-2lane.dtsi" -+#include "bcm283x-rpi-i2c0mux_0_28.dtsi" -+#include "bcm283x-rpi-led-deprecated.dtsi" -+ -+/ { -+ compatible = "raspberrypi,model-zero", "brcm,bcm2835"; -+ model = "Raspberry Pi Zero"; -+}; -+ -+&gpio { -+ /* -+ * This is based on the official GPU firmware DT blob. -+ * -+ * Legend: -+ * "NC" = not connected (no rail from the SoC) -+ * "FOO" = GPIO line named "FOO" on the schematic -+ * "FOO_N" = GPIO line named "FOO" on schematic, active low -+ */ -+ gpio-line-names = "ID_SDA", -+ "ID_SCL", -+ "GPIO2", -+ "GPIO3", -+ "GPIO4", -+ "GPIO5", -+ "GPIO6", -+ "GPIO7", -+ "GPIO8", -+ "GPIO9", -+ "GPIO10", -+ "GPIO11", -+ "GPIO12", -+ "GPIO13", -+ "GPIO14", -+ "GPIO15", -+ "GPIO16", -+ "GPIO17", -+ "GPIO18", -+ "GPIO19", -+ "GPIO20", -+ "GPIO21", -+ "GPIO22", -+ "GPIO23", -+ "GPIO24", -+ "GPIO25", -+ "GPIO26", -+ "GPIO27", -+ "SDA0", -+ "SCL0", -+ "NC", /* GPIO30 */ -+ "NC", /* GPIO31 */ -+ "CAM_GPIO1", /* GPIO32 */ -+ "NC", /* GPIO33 */ -+ "NC", /* GPIO34 */ -+ "NC", /* GPIO35 */ -+ "NC", /* GPIO36 */ -+ "NC", /* GPIO37 */ -+ "NC", /* GPIO38 */ -+ "NC", /* GPIO39 */ -+ "NC", /* GPIO40 */ -+ "CAM_GPIO0", /* GPIO41 */ -+ "NC", /* GPIO42 */ -+ "NC", /* GPIO43 */ -+ "NC", /* GPIO44 */ -+ "NC", /* GPIO45 */ -+ "HDMI_HPD_N", -+ "STATUS_LED_N", -+ /* Used by SD Card */ -+ "SD_CLK_R", -+ "SD_CMD_R", -+ "SD_DATA0_R", -+ "SD_DATA1_R", -+ "SD_DATA2_R", -+ "SD_DATA3_R"; -+ -+ spi0_pins: spi0_pins { -+ brcm,pins = <9 10 11>; -+ brcm,function = <4>; /* alt0 */ -+ }; -+ -+ spi0_cs_pins: spi0_cs_pins { -+ brcm,pins = <8 7>; -+ brcm,function = <1>; /* output */ -+ }; -+ -+ i2c0_pins: i2c0 { -+ brcm,pins = <0 1>; -+ brcm,function = <4>; -+ }; -+ -+ i2c1_pins: i2c1 { -+ brcm,pins = <2 3>; -+ brcm,function = <4>; -+ }; -+ -+ i2s_pins: i2s { -+ brcm,pins = <18 19 20 21>; -+ brcm,function = <4>; /* alt0 */ -+ }; -+ -+ audio_pins: audio_pins { -+ brcm,pins = <>; -+ brcm,function = <>; -+ }; -+}; -+ -+&uart0 { -+ status = "okay"; -+}; -+ -+&spi0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&spi0_pins &spi0_cs_pins>; -+ cs-gpios = <&gpio 8 1>, <&gpio 7 1>; -+ -+ spidev0: spidev@0{ -+ compatible = "spidev"; -+ reg = <0>; /* CE0 */ -+ #address-cells = <1>; -+ #size-cells = <0>; -+ spi-max-frequency = <125000000>; -+ }; -+ -+ spidev1: spidev@1{ -+ compatible = "spidev"; -+ reg = <1>; /* CE1 */ -+ #address-cells = <1>; -+ #size-cells = <0>; -+ spi-max-frequency = <125000000>; -+ }; -+}; -+ -+&i2c0if { -+ clock-frequency = <100000>; -+}; -+ -+&i2c1 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&i2c1_pins>; -+ clock-frequency = <100000>; -+}; -+ -+&i2c2 { -+ clock-frequency = <100000>; -+}; -+ -+&i2s { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&i2s_pins>; -+}; -+ -+&led_act { -+ gpios = <&gpio 47 GPIO_ACTIVE_LOW>; -+ default-state = "off"; -+ linux,default-trigger = "actpwr"; -+}; -+ -+&hdmi { -+ hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>; -+}; -+ -+&vchiq { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&audio_pins>; -+}; -+ -+&cam1_reg { -+ gpio = <&gpio 41 GPIO_ACTIVE_HIGH>; -+}; -+ -+cam0_reg: &cam_dummy_reg { -+}; -+ -+i2c_arm: &i2c1 {}; -+i2c_vc: &i2c0 {}; -+i2c_csi_dsi0: &i2c0 {}; -+ -+/ { -+ __overrides__ { -+ audio = <&chosen>,"bootargs{on='snd_bcm2835.enable_hdmi=1',off='snd_bcm2835.enable_hdmi=0'}"; -+ -+ act_led_gpio = <&led_act>,"gpios:4"; -+ act_led_activelow = <&led_act>,"gpios:8"; -+ act_led_trigger = <&led_act>,"linux,default-trigger"; -+ }; -+}; -diff --git a/arch/arm/boot/dts/broadcom/bcm2708-rpi.dtsi b/arch/arm/boot/dts/broadcom/bcm2708-rpi.dtsi -new file mode 100644 -index 000000000000..f4aedb5c532b ---- /dev/null -+++ b/arch/arm/boot/dts/broadcom/bcm2708-rpi.dtsi -@@ -0,0 +1,63 @@ -+/* Downstream modifications common to bcm2835, bcm2836, bcm2837 */ -+ -+#define i2c0 i2c0mux -+#include "bcm2835-rpi.dtsi" -+#undef i2c0 -+#include "bcm270x-rpi.dtsi" -+ -+/ { -+ memory@0 { -+ device_type = "memory"; -+ reg = <0x0 0x0>; -+ }; -+ -+ aliases { -+ i2c2 = &i2c2; -+ }; -+ -+ __overrides__ { -+ hdmi = <&hdmi>,"status"; -+ i2c2_iknowwhatimdoing = <&i2c2>,"status"; -+ i2c2_baudrate = <&i2c2>,"clock-frequency:0"; -+ nvmem_cust_rw = <&nvmem_cust>,"rw?"; -+ sd = <&sdhost>,"status"; -+ sd_poll_once = <&sdhost>,"non-removable?"; -+ }; -+}; -+ -+&soc { -+ nvmem { -+ compatible = "simple-bus"; -+ #address-cells = <1>; -+ #size-cells = <1>; -+ -+ nvmem_otp: nvmem_otp { -+ compatible = "raspberrypi,rpi-otp"; -+ firmware = <&firmware>; -+ reg = <0 192>; -+ status = "okay"; -+ }; -+ -+ nvmem_cust: nvmem_cust { -+ compatible = "raspberrypi,rpi-otp"; -+ firmware = <&firmware>; -+ reg = <1 8>; -+ status = "okay"; -+ }; -+ }; -+}; -+ -+&sdhost { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&sdhost_gpio48>; -+ status = "okay"; -+}; -+ -+&hdmi { -+ power-domains = <&power RPI_POWER_DOMAIN_HDMI>; -+ status = "disabled"; -+}; -+ -+&i2c2 { -+ status = "disabled"; -+}; -diff --git a/arch/arm/boot/dts/broadcom/bcm2708.dtsi b/arch/arm/boot/dts/broadcom/bcm2708.dtsi -new file mode 100644 -index 000000000000..fdc7f2423bbe ---- /dev/null -+++ b/arch/arm/boot/dts/broadcom/bcm2708.dtsi -@@ -0,0 +1,19 @@ -+#define i2c0 i2c0if -+#include "bcm2835.dtsi" -+#undef i2c0 -+#include "bcm270x.dtsi" -+ -+/ { -+ __overrides__ { -+ arm_freq; -+ }; -+}; -+ -+&soc { -+ dma-ranges = <0x80000000 0x00000000 0x20000000>, -+ <0x7e000000 0x20000000 0x02000000>; -+}; -+ -+&vc4 { -+ status = "disabled"; -+}; -diff --git a/arch/arm/boot/dts/broadcom/bcm2709-rpi-2-b.dts b/arch/arm/boot/dts/broadcom/bcm2709-rpi-2-b.dts -new file mode 100644 -index 000000000000..7796e545da43 ---- /dev/null -+++ b/arch/arm/boot/dts/broadcom/bcm2709-rpi-2-b.dts -@@ -0,0 +1,204 @@ -+/dts-v1/; -+ -+#include "bcm2709.dtsi" -+#include "bcm2709-rpi.dtsi" -+#include "bcm283x-rpi-smsc9514.dtsi" -+#include "bcm283x-rpi-csi1-2lane.dtsi" -+#include "bcm283x-rpi-i2c0mux_0_28.dtsi" -+#include "bcm283x-rpi-led-deprecated.dtsi" -+ -+/ { -+ compatible = "raspberrypi,2-model-b", "brcm,bcm2836"; -+ model = "Raspberry Pi 2 Model B"; -+}; -+ -+&gpio { -+ /* -+ * Taken from rpi_SCH_2b_1p2_reduced.pdf and -+ * the official GPU firmware DT blob. -+ * -+ * Legend: -+ * "NC" = not connected (no rail from the SoC) -+ * "FOO" = GPIO line named "FOO" on the schematic -+ * "FOO_N" = GPIO line named "FOO" on schematic, active low -+ */ -+ gpio-line-names = "ID_SDA", -+ "ID_SCL", -+ "GPIO2", -+ "GPIO3", -+ "GPIO4", -+ "GPIO5", -+ "GPIO6", -+ "GPIO7", -+ "GPIO8", -+ "GPIO9", -+ "GPIO10", -+ "GPIO11", -+ "GPIO12", -+ "GPIO13", -+ "GPIO14", -+ "GPIO15", -+ "GPIO16", -+ "GPIO17", -+ "GPIO18", -+ "GPIO19", -+ "GPIO20", -+ "GPIO21", -+ "GPIO22", -+ "GPIO23", -+ "GPIO24", -+ "GPIO25", -+ "GPIO26", -+ "GPIO27", -+ "SDA0", -+ "SCL0", -+ "NC", /* GPIO30 */ -+ "LAN_RUN", -+ "CAM_GPIO1", -+ "NC", /* GPIO33 */ -+ "NC", /* GPIO34 */ -+ "PWR_LOW_N", -+ "NC", /* GPIO36 */ -+ "NC", /* GPIO37 */ -+ "USB_LIMIT", -+ "NC", /* GPIO39 */ -+ "PWM0_OUT", -+ "CAM_GPIO0", -+ "SMPS_SCL", -+ "SMPS_SDA", -+ "ETH_CLK", -+ "PWM1_OUT", -+ "HDMI_HPD_N", -+ "STATUS_LED", -+ /* Used by SD Card */ -+ "SD_CLK_R", -+ "SD_CMD_R", -+ "SD_DATA0_R", -+ "SD_DATA1_R", -+ "SD_DATA2_R", -+ "SD_DATA3_R"; -+ -+ spi0_pins: spi0_pins { -+ brcm,pins = <9 10 11>; -+ brcm,function = <4>; /* alt0 */ -+ }; -+ -+ spi0_cs_pins: spi0_cs_pins { -+ brcm,pins = <8 7>; -+ brcm,function = <1>; /* output */ -+ }; -+ -+ i2c0_pins: i2c0 { -+ brcm,pins = <0 1>; -+ brcm,function = <4>; -+ }; -+ -+ i2c1_pins: i2c1 { -+ brcm,pins = <2 3>; -+ brcm,function = <4>; -+ }; -+ -+ i2s_pins: i2s { -+ brcm,pins = <18 19 20 21>; -+ brcm,function = <4>; /* alt0 */ -+ }; -+ -+ audio_pins: audio_pins { -+ brcm,pins = <40 45>; -+ brcm,function = <4>; -+ brcm,pull = <0>; -+ }; -+}; -+ -+&uart0 { -+ status = "okay"; -+}; -+ -+&spi0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&spi0_pins &spi0_cs_pins>; -+ cs-gpios = <&gpio 8 1>, <&gpio 7 1>; -+ -+ spidev0: spidev@0{ -+ compatible = "spidev"; -+ reg = <0>; /* CE0 */ -+ #address-cells = <1>; -+ #size-cells = <0>; -+ spi-max-frequency = <125000000>; -+ }; -+ -+ spidev1: spidev@1{ -+ compatible = "spidev"; -+ reg = <1>; /* CE1 */ -+ #address-cells = <1>; -+ #size-cells = <0>; -+ spi-max-frequency = <125000000>; -+ }; -+}; -+ -+&i2c0if { -+ clock-frequency = <100000>; -+}; -+ -+&i2c1 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&i2c1_pins>; -+ clock-frequency = <100000>; -+}; -+ -+&i2c2 { -+ clock-frequency = <100000>; -+}; -+ -+&i2s { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&i2s_pins>; -+}; -+ -+&led_act { -+ gpios = <&gpio 47 GPIO_ACTIVE_HIGH>; -+ default-state = "off"; -+ linux,default-trigger = "mmc0"; -+}; -+ -+&leds { -+ led_pwr: led-pwr { -+ label = "PWR"; -+ gpios = <&gpio 35 GPIO_ACTIVE_HIGH>; -+ default-state = "off"; -+ linux,default-trigger = "input"; -+ }; -+}; -+ -+&hdmi { -+ hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>; -+}; -+ -+&vchiq { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&audio_pins>; -+}; -+ -+&cam1_reg { -+ gpio = <&gpio 41 GPIO_ACTIVE_HIGH>; -+}; -+ -+cam0_reg: &cam_dummy_reg { -+}; -+ -+i2c_csi_dsi0: &i2c0 { -+}; -+ -+/ { -+ __overrides__ { -+ audio = <&chosen>,"bootargs{on='snd_bcm2835.enable_headphones=1 snd_bcm2835.enable_hdmi=1',off='snd_bcm2835.enable_headphones=0 snd_bcm2835.enable_hdmi=0'}"; -+ -+ act_led_gpio = <&led_act>,"gpios:4"; -+ act_led_activelow = <&led_act>,"gpios:8"; -+ act_led_trigger = <&led_act>,"linux,default-trigger"; -+ -+ pwr_led_gpio = <&led_pwr>,"gpios:4"; -+ pwr_led_activelow = <&led_pwr>,"gpios:8"; -+ pwr_led_trigger = <&led_pwr>,"linux,default-trigger"; -+ }; -+}; -diff --git a/arch/arm/boot/dts/broadcom/bcm2709-rpi-cm2.dts b/arch/arm/boot/dts/broadcom/bcm2709-rpi-cm2.dts -new file mode 100644 -index 000000000000..36d00aa889a3 ---- /dev/null -+++ b/arch/arm/boot/dts/broadcom/bcm2709-rpi-cm2.dts -@@ -0,0 +1,215 @@ -+/dts-v1/; -+ -+#include "bcm2709.dtsi" -+#include "bcm2709-rpi.dtsi" -+#include "bcm283x-rpi-csi0-2lane.dtsi" -+#include "bcm283x-rpi-csi1-4lane.dtsi" -+#include "bcm283x-rpi-i2c0mux_0_28.dtsi" -+#include "bcm283x-rpi-led-deprecated.dtsi" -+ -+/ { -+ compatible = "raspberrypi,2-compute-module", "brcm,bcm2836"; -+ model = "Raspberry Pi Compute Module 2"; -+}; -+ -+&cam1_reg { -+ gpio = <&gpio 2 GPIO_ACTIVE_HIGH>; -+ status = "disabled"; -+}; -+ -+cam0_reg: &cam0_regulator { -+ gpio = <&gpio 30 GPIO_ACTIVE_HIGH>; -+}; -+ -+i2c_csi_dsi0: &i2c0 { -+}; -+ -+&uart0 { -+ status = "okay"; -+}; -+ -+&gpio { -+ /* -+ * This is based on the official GPU firmware DT blob. -+ * -+ * Legend: -+ * "NC" = not connected (no rail from the SoC) -+ * "FOO" = GPIO line named "FOO" on the schematic -+ * "FOO_N" = GPIO line named "FOO" on schematic, active low -+ */ -+ gpio-line-names = "GPIO0", -+ "GPIO1", -+ "GPIO2", -+ "GPIO3", -+ "GPIO4", -+ "GPIO5", -+ "GPIO6", -+ "GPIO7", -+ "GPIO8", -+ "GPIO9", -+ "GPIO10", -+ "GPIO11", -+ "GPIO12", -+ "GPIO13", -+ "GPIO14", -+ "GPIO15", -+ "GPIO16", -+ "GPIO17", -+ "GPIO18", -+ "GPIO19", -+ "GPIO20", -+ "GPIO21", -+ "GPIO22", -+ "GPIO23", -+ "GPIO24", -+ "GPIO25", -+ "GPIO26", -+ "GPIO27", -+ "GPIO28", -+ "GPIO29", -+ "GPIO30", -+ "GPIO31", -+ "GPIO32", -+ "GPIO33", -+ "GPIO34", -+ "GPIO35", -+ "GPIO36", -+ "GPIO37", -+ "GPIO38", -+ "GPIO39", -+ "GPIO40", -+ "GPIO41", -+ "GPIO42", -+ "GPIO43", -+ "GPIO44", -+ "GPIO45", -+ "SMPS_SCL", -+ "SMPS_SDA", -+ /* Used by eMMC */ -+ "SD_CLK_R", -+ "SD_CMD_R", -+ "SD_DATA0_R", -+ "SD_DATA1_R", -+ "SD_DATA2_R", -+ "SD_DATA3_R"; -+ -+ spi0_pins: spi0_pins { -+ brcm,pins = <9 10 11>; -+ brcm,function = <4>; /* alt0 */ -+ }; -+ -+ spi0_cs_pins: spi0_cs_pins { -+ brcm,pins = <8 7>; -+ brcm,function = <1>; /* output */ -+ }; -+ -+ i2c0_pins: i2c0 { -+ brcm,pins = <0 1>; -+ brcm,function = <4>; -+ }; -+ -+ i2c1_pins: i2c1 { -+ brcm,pins = <2 3>; -+ brcm,function = <4>; -+ }; -+ -+ i2s_pins: i2s { -+ brcm,pins = <18 19 20 21>; -+ brcm,function = <4>; /* alt0 */ -+ }; -+ -+ audio_pins: audio_pins { -+ brcm,pins; -+ brcm,function; -+ }; -+}; -+ -+&firmware { -+ expgpio: expgpio { -+ compatible = "raspberrypi,firmware-gpio"; -+ gpio-controller; -+ #gpio-cells = <2>; -+ gpio-line-names = "HDMI_HPD_N", -+ "EMMC_EN_N", -+ "NC", -+ "NC", -+ "NC", -+ "NC", -+ "NC", -+ "NC"; -+ status = "okay"; -+ }; -+ -+ virtgpio: virtgpio { -+ compatible = "brcm,bcm2835-virtgpio"; -+ gpio-controller; -+ #gpio-cells = <2>; -+ status = "okay"; -+ }; -+}; -+ -+&spi0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&spi0_pins &spi0_cs_pins>; -+ cs-gpios = <&gpio 8 1>, <&gpio 7 1>; -+ -+ spidev0: spidev@0{ -+ compatible = "spidev"; -+ reg = <0>; /* CE0 */ -+ #address-cells = <1>; -+ #size-cells = <0>; -+ spi-max-frequency = <125000000>; -+ }; -+ -+ spidev1: spidev@1{ -+ compatible = "spidev"; -+ reg = <1>; /* CE1 */ -+ #address-cells = <1>; -+ #size-cells = <0>; -+ spi-max-frequency = <125000000>; -+ }; -+}; -+ -+&i2c0if { -+ clock-frequency = <100000>; -+}; -+ -+&i2c1 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&i2c1_pins>; -+ clock-frequency = <100000>; -+}; -+ -+&i2c2 { -+ clock-frequency = <100000>; -+}; -+ -+&i2s { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&i2s_pins>; -+}; -+ -+&led_act { -+ gpios = <&virtgpio 0 GPIO_ACTIVE_HIGH>; -+ default-state = "off"; -+ linux,default-trigger = "mmc0"; -+}; -+ -+&hdmi { -+ hpd-gpios = <&expgpio 0 GPIO_ACTIVE_LOW>; -+}; -+ -+&vchiq { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&audio_pins>; -+}; -+ -+/ { -+ __overrides__ { -+ audio = <&chosen>,"bootargs{on='snd_bcm2835.enable_hdmi=1',off='snd_bcm2835.enable_hdmi=0'}"; -+ -+ act_led_gpio = <&led_act>,"gpios:4"; -+ act_led_activelow = <&led_act>,"gpios:8"; -+ act_led_trigger = <&led_act>,"linux,default-trigger"; -+ }; -+}; -diff --git a/arch/arm/boot/dts/broadcom/bcm2709-rpi.dtsi b/arch/arm/boot/dts/broadcom/bcm2709-rpi.dtsi -new file mode 100644 -index 000000000000..7335e7fbcb71 ---- /dev/null -+++ b/arch/arm/boot/dts/broadcom/bcm2709-rpi.dtsi -@@ -0,0 +1,8 @@ -+#include "bcm2708-rpi.dtsi" -+ -+&vchiq { -+ compatible = "brcm,bcm2836-vchiq", "brcm,bcm2835-vchiq"; -+}; -+ -+i2c_arm: &i2c1 {}; -+i2c_vc: &i2c0 {}; -diff --git a/arch/arm/boot/dts/broadcom/bcm2709.dtsi b/arch/arm/boot/dts/broadcom/bcm2709.dtsi -new file mode 100644 -index 000000000000..868f65f922ff ---- /dev/null -+++ b/arch/arm/boot/dts/broadcom/bcm2709.dtsi -@@ -0,0 +1,29 @@ -+#define i2c0 i2c0if -+#include "bcm2836.dtsi" -+#undef i2c0 -+#include "bcm270x.dtsi" -+ -+/ { -+ soc { -+ ranges = <0x7e000000 0x3f000000 0x01000000>, -+ <0x40000000 0x40000000 0x00040000>; -+ -+ dma-ranges = <0xc0000000 0x00000000 0x3f000000>, -+ <0x7e000000 0x3f000000 0x01000000>; -+ }; -+ -+ __overrides__ { -+ arm_freq = <&v7_cpu0>, "clock-frequency:0", -+ <&v7_cpu1>, "clock-frequency:0", -+ <&v7_cpu2>, "clock-frequency:0", -+ <&v7_cpu3>, "clock-frequency:0"; -+ }; -+}; -+ -+&system_timer { -+ status = "disabled"; -+}; -+ -+&vc4 { -+ status = "disabled"; -+}; -diff --git a/arch/arm/boot/dts/broadcom/bcm270x-rpi.dtsi b/arch/arm/boot/dts/broadcom/bcm270x-rpi.dtsi -new file mode 100644 -index 000000000000..eeef9788d649 ---- /dev/null -+++ b/arch/arm/boot/dts/broadcom/bcm270x-rpi.dtsi -@@ -0,0 +1,201 @@ -+/* Downstream modifications to bcm2835-rpi.dtsi */ -+ -+/ { -+ aliases: aliases { -+ aux = &aux; -+ sound = &sound; -+ soc = &soc; -+ dma = &dma; -+ intc = &intc; -+ watchdog = &watchdog; -+ random = &random; -+ mailbox = &mailbox; -+ gpio = &gpio; -+ uart0 = &uart0; -+ uart1 = &uart1; -+ sdhost = &sdhost; -+ mmc = &mmc; -+ mmc1 = &mmc; -+ mmc0 = &sdhost; -+ i2s = &i2s; -+ i2c0 = &i2c0; -+ i2c1 = &i2c1; -+ i2c10 = &i2c_csi_dsi; -+ i2c = &i2c_arm; -+ spi0 = &spi0; -+ spi1 = &spi1; -+ spi2 = &spi2; -+ usb = &usb; -+ leds = &leds; -+ fb = &fb; -+ thermal = &thermal; -+ axiperf = &axiperf; -+ }; -+ -+ /* Define these notional regulators for use by overlays */ -+ vdd_3v3_reg: fixedregulator_3v3 { -+ compatible = "regulator-fixed"; -+ regulator-always-on; -+ regulator-max-microvolt = <3300000>; -+ regulator-min-microvolt = <3300000>; -+ regulator-name = "3v3"; -+ }; -+ -+ vdd_5v0_reg: fixedregulator_5v0 { -+ compatible = "regulator-fixed"; -+ regulator-always-on; -+ regulator-max-microvolt = <5000000>; -+ regulator-min-microvolt = <5000000>; -+ regulator-name = "5v0"; -+ }; -+ -+ soc { -+ gpiomem { -+ compatible = "brcm,bcm2835-gpiomem"; -+ reg = <0x7e200000 0x1000>; -+ }; -+ -+ fb: fb { -+ compatible = "brcm,bcm2708-fb"; -+ firmware = <&firmware>; -+ status = "okay"; -+ }; -+ -+ /* External sound card */ -+ sound: sound { -+ status = "disabled"; -+ }; -+ }; -+ -+ __overrides__ { -+ cache_line_size; -+ -+ uart0 = <&uart0>,"status"; -+ uart1 = <&uart1>,"status"; -+ i2s = <&i2s>,"status"; -+ spi = <&spi0>,"status"; -+ i2c0 = <&i2c0if>,"status",<&i2c0mux>,"status"; -+ i2c1 = <&i2c1>,"status"; -+ i2c = <&i2c1>,"status"; -+ i2c_arm = <&i2c1>,"status"; -+ i2c_vc = <&i2c0if>,"status",<&i2c0mux>,"status"; -+ i2c0_baudrate = <&i2c0if>,"clock-frequency:0"; -+ i2c1_baudrate = <&i2c1>,"clock-frequency:0"; -+ i2c_baudrate = <&i2c1>,"clock-frequency:0"; -+ i2c_arm_baudrate = <&i2c1>,"clock-frequency:0"; -+ i2c_vc_baudrate = <&i2c0if>,"clock-frequency:0"; -+ -+ watchdog = <&watchdog>,"status"; -+ random = <&random>,"status"; -+ sd_overclock = <&sdhost>,"brcm,overclock-50:0"; -+ sd_force_pio = <&sdhost>,"brcm,force-pio?"; -+ sd_pio_limit = <&sdhost>,"brcm,pio-limit:0"; -+ sd_debug = <&sdhost>,"brcm,debug"; -+ sdio_overclock = <&mmc>,"brcm,overclock-50:0", -+ <&mmcnr>,"brcm,overclock-50:0"; -+ axiperf = <&axiperf>,"status"; -+ drm_fb0_vc4 = <&aliases>, "drm-fb0=",&vc4; -+ drm_fb1_vc4 = <&aliases>, "drm-fb1=",&vc4; -+ drm_fb2_vc4 = <&aliases>, "drm-fb2=",&vc4; -+ -+ cam1_sync = <&csi1>, "sync-gpios:0=", <&gpio>, -+ <&csi1>, "sync-gpios:4", -+ <&csi1>, "sync-gpios:8=", ; -+ cam1_sync_inverted = <&csi1>, "sync-gpios:0=", <&gpio>, -+ <&csi1>, "sync-gpios:4", -+ <&csi1>, "sync-gpios:8=", ; -+ cam0_sync = <&csi0>, "sync-gpios:0=", <&gpio>, -+ <&csi0>, "sync-gpios:4", -+ <&csi0>, "sync-gpios:8=", ; -+ cam0_sync_inverted = <&csi0>, "sync-gpios:0=", <&gpio>, -+ <&csi0>, "sync-gpios:4", -+ <&csi0>, "sync-gpios:8=", ; -+ -+ cam0_reg = <&cam0_reg>,"status"; -+ cam0_reg_gpio = <&cam0_reg>,"gpio:4", -+ <&cam0_reg>,"gpio:0=", <&gpio>; -+ cam1_reg = <&cam1_reg>,"status"; -+ cam1_reg_gpio = <&cam1_reg>,"gpio:4", -+ <&cam1_reg>,"gpio:0=", <&gpio>; -+ -+ strict_gpiod = <&chosen>, "bootargs=pinctrl_bcm2835.persist_gpio_outputs=n"; -+ }; -+}; -+ -+&uart0 { -+ skip-init; -+}; -+ -+&uart1 { -+ skip-init; -+}; -+ -+&txp { -+ status = "disabled"; -+}; -+ -+&i2c0if { -+ status = "disabled"; -+}; -+ -+&i2c0mux { -+ pinctrl-names = "i2c0", "i2c_csi_dsi"; -+ /delete-property/ clock-frequency; -+ status = "disabled"; -+}; -+ -+&i2c1 { -+ status = "disabled"; -+}; -+ -+i2s_clk_producer: &i2s {}; -+i2s_clk_consumer: &i2s {}; -+ -+&clocks { -+ firmware = <&firmware>; -+}; -+ -+&sdhci { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&emmc_gpio48>; -+ bus-width = <4>; -+}; -+ -+&cpu_thermal { -+ // Add some labels -+ thermal_trips: trips { -+ cpu-crit { -+ // Raise upstream limit of 90C -+ temperature = <110000>; -+ }; -+ }; -+ cooling_maps: cooling-maps { -+ }; -+}; -+ -+&vec { -+ clocks = <&firmware_clocks 15>; -+ status = "disabled"; -+}; -+ -+&firmware { -+ vcio: vcio { -+ compatible = "raspberrypi,vcio"; -+ }; -+}; -+ -+&vc4 { -+ raspberrypi,firmware = <&firmware>; -+}; -+ -+#ifndef BCM2711 -+ -+&hdmi { -+ reg-names = "hdmi", -+ "hd"; -+ clocks = <&firmware_clocks 9>, -+ <&firmware_clocks 13>; -+ dmas = <&dma (17|(1<<27)|(1<<24))>; -+}; -+ -+#endif -diff --git a/arch/arm/boot/dts/broadcom/bcm270x.dtsi b/arch/arm/boot/dts/broadcom/bcm270x.dtsi -new file mode 100644 -index 000000000000..678bee7d96e7 ---- /dev/null -+++ b/arch/arm/boot/dts/broadcom/bcm270x.dtsi -@@ -0,0 +1,264 @@ -+/* Downstream bcm283x.dtsi diff */ -+#include -+ -+/ { -+ chosen: chosen { -+ // Disable audio by default -+ bootargs = "coherent_pool=1M snd_bcm2835.enable_headphones=0 cgroup_disable=memory"; -+ stdout-path = "serial0:115200n8"; -+ }; -+ -+ soc: soc { -+ watchdog: watchdog@7e100000 { -+ /* Add label */ -+ }; -+ -+ random: rng@7e104000 { -+ /* Add label */ -+ }; -+ -+ spi0: spi@7e204000 { -+ /* Add label */ -+ }; -+ -+#ifndef BCM2711 -+ pixelvalve0: pixelvalve@7e206000 { -+ /* Add label */ -+ status = "disabled"; -+ }; -+ -+ pixelvalve1: pixelvalve@7e207000 { -+ /* Add label */ -+ status = "disabled"; -+ }; -+#endif -+ -+ /delete-node/ mmc@7e300000; -+ -+ sdhci: mmc: mmc@7e300000 { -+ compatible = "brcm,bcm2835-mmc", "brcm,bcm2835-sdhci"; -+ reg = <0x7e300000 0x100>; -+ interrupts = <2 30>; -+ clocks = <&clocks BCM2835_CLOCK_EMMC>; -+ dmas = <&dma 11>; -+ dma-names = "rx-tx"; -+ brcm,overclock-50 = <0>; -+ status = "disabled"; -+ }; -+ -+ /* A clone of mmc but with non-removable set */ -+ mmcnr: mmcnr@7e300000 { -+ compatible = "brcm,bcm2835-mmc", "brcm,bcm2835-sdhci"; -+ reg = <0x7e300000 0x100>; -+ interrupts = <2 30>; -+ clocks = <&clocks BCM2835_CLOCK_EMMC>; -+ dmas = <&dma 11>; -+ dma-names = "rx-tx"; -+ brcm,overclock-50 = <0>; -+ non-removable; -+ status = "disabled"; -+ }; -+ -+ hvs: hvs@7e400000 { -+ /* Add label */ -+ status = "disabled"; -+ }; -+ -+ firmwarekms: firmwarekms@7e600000 { -+ compatible = "raspberrypi,rpi-firmware-kms"; -+ /* SMI interrupt reg */ -+ reg = <0x7e600000 0x100>; -+ interrupts = <2 16>; -+ brcm,firmware = <&firmware>; -+ status = "disabled"; -+ }; -+ -+ smi: smi@7e600000 { -+ compatible = "brcm,bcm2835-smi"; -+ reg = <0x7e600000 0x100>; -+ interrupts = <2 16>; -+ clocks = <&clocks BCM2835_CLOCK_SMI>; -+ assigned-clocks = <&clocks BCM2835_CLOCK_SMI>; -+ assigned-clock-rates = <125000000>; -+ dmas = <&dma 4>; -+ dma-names = "rx-tx"; -+ status = "disabled"; -+ }; -+ -+#ifndef BCM2711 -+ pixelvalve2: pixelvalve@7e807000 { -+ /* Add label */ -+ status = "disabled"; -+ }; -+#endif -+ -+ hdmi@7e902000 { /* hdmi */ -+ status = "disabled"; -+ }; -+ -+ usb@7e980000 { /* usb */ -+ compatible = "brcm,bcm2708-usb"; -+ reg = <0x7e980000 0x10000>, -+ <0x7e006000 0x1000>; -+ interrupt-names = "usb", -+ "soft"; -+ interrupts = <1 9>, -+ <2 0>; -+ }; -+ -+#ifndef BCM2711 -+ v3d@7ec00000 { /* vd3 */ -+ compatible = "brcm,vc4-v3d"; -+ power-domains = <&power RPI_POWER_DOMAIN_V3D>; -+ status = "disabled"; -+ }; -+#endif -+ -+ axiperf: axiperf { -+ compatible = "brcm,bcm2835-axiperf"; -+ reg = <0x7e009800 0x100>, -+ <0x7ee08000 0x100>; -+ firmware = <&firmware>; -+ status = "disabled"; -+ }; -+ -+ i2c0mux: i2c0mux { -+ compatible = "i2c-mux-pinctrl"; -+ #address-cells = <1>; -+ #size-cells = <0>; -+ -+ i2c-parent = <&i2c0if>; -+ -+ status = "disabled"; -+ -+ i2c0: i2c@0 { -+ reg = <0>; -+ #address-cells = <1>; -+ #size-cells = <0>; -+ }; -+ -+ i2c_csi_dsi: i2c@1 { -+ reg = <1>; -+ #address-cells = <1>; -+ #size-cells = <0>; -+ }; -+ }; -+ }; -+ -+ cam1_reg: cam1_regulator { -+ compatible = "regulator-fixed"; -+ regulator-name = "cam1-reg"; -+ enable-active-high; -+ /* Needs to be enabled, as removing a regulator is very unsafe */ -+ status = "okay"; -+ }; -+ -+ cam1_clk: cam1_clk { -+ compatible = "fixed-clock"; -+ #clock-cells = <0>; -+ status = "disabled"; -+ }; -+ -+ cam0_regulator: cam0_regulator { -+ compatible = "regulator-fixed"; -+ regulator-name = "cam0-reg"; -+ enable-active-high; -+ status = "disabled"; -+ }; -+ -+ cam0_clk: cam0_clk { -+ compatible = "fixed-clock"; -+ #clock-cells = <0>; -+ status = "disabled"; -+ }; -+ -+ cam_dummy_reg: cam_dummy_reg { -+ compatible = "regulator-fixed"; -+ regulator-name = "cam-dummy-reg"; -+ status = "okay"; -+ }; -+ -+ __overrides__ { -+ cam0-pwdn-ctrl; -+ cam0-pwdn; -+ cam0-led-ctrl; -+ cam0-led; -+ }; -+}; -+ -+&gpio { -+ interrupts = <2 17>, <2 18>; -+ -+ dpi_18bit_cpadhi_gpio0: dpi_18bit_cpadhi_gpio0 { -+ brcm,pins = <0 1 2 3 4 5 6 7 8 9 -+ 12 13 14 15 16 17 -+ 20 21 22 23 24 25>; -+ brcm,function = ; -+ brcm,pull = <0>; /* no pull */ -+ }; -+ dpi_18bit_cpadhi_gpio2: dpi_18bit_cpadhi_gpio2 { -+ brcm,pins = <2 3 4 5 6 7 8 9 -+ 12 13 14 15 16 17 -+ 20 21 22 23 24 25>; -+ brcm,function = ; -+ }; -+ dpi_18bit_gpio0: dpi_18bit_gpio0 { -+ brcm,pins = <0 1 2 3 4 5 6 7 8 9 10 11 -+ 12 13 14 15 16 17 18 19 -+ 20 21>; -+ brcm,function = ; -+ }; -+ dpi_18bit_gpio2: dpi_18bit_gpio2 { -+ brcm,pins = <2 3 4 5 6 7 8 9 10 11 -+ 12 13 14 15 16 17 18 19 -+ 20 21>; -+ brcm,function = ; -+ }; -+ dpi_16bit_gpio0: dpi_16bit_gpio0 { -+ brcm,pins = <0 1 2 3 4 5 6 7 8 9 10 11 -+ 12 13 14 15 16 17 18 19>; -+ brcm,function = ; -+ }; -+ dpi_16bit_gpio2: dpi_16bit_gpio2 { -+ brcm,pins = <2 3 4 5 6 7 8 9 10 11 -+ 12 13 14 15 16 17 18 19>; -+ brcm,function = ; -+ }; -+ dpi_16bit_cpadhi_gpio0: dpi_16bit_cpadhi_gpio0 { -+ brcm,pins = <0 1 2 3 4 5 6 7 8 -+ 12 13 14 15 16 17 -+ 20 21 22 23 24>; -+ brcm,function = ; -+ }; -+ dpi_16bit_cpadhi_gpio2: dpi_16bit_cpadhi_gpio2 { -+ brcm,pins = <2 3 4 5 6 7 8 -+ 12 13 14 15 16 17 -+ 20 21 22 23 24>; -+ brcm,function = ; -+ }; -+}; -+ -+&uart0 { -+ /* Enable CTS bug workaround */ -+ cts-event-workaround; -+}; -+ -+&i2s { -+ #sound-dai-cells = <0>; -+ dmas = <&dma 2>, <&dma 3>; -+ dma-names = "tx", "rx"; -+}; -+ -+&sdhost { -+ dmas = <&dma (13|(1<<29))>; -+ dma-names = "rx-tx"; -+ bus-width = <4>; -+ brcm,overclock-50 = <0>; -+ brcm,pio-limit = <1>; -+ firmware = <&firmware>; -+}; -+ -+&spi0 { -+ dmas = <&dma 6>, <&dma 7>; -+ dma-names = "tx", "rx"; -+}; -diff --git a/arch/arm/boot/dts/broadcom/bcm2710-rpi-2-b.dts b/arch/arm/boot/dts/broadcom/bcm2710-rpi-2-b.dts -new file mode 100644 -index 000000000000..ce48eb6073f0 ---- /dev/null -+++ b/arch/arm/boot/dts/broadcom/bcm2710-rpi-2-b.dts -@@ -0,0 +1,204 @@ -+/dts-v1/; -+ -+#include "bcm2710.dtsi" -+#include "bcm2709-rpi.dtsi" -+#include "bcm283x-rpi-smsc9514.dtsi" -+#include "bcm283x-rpi-csi1-2lane.dtsi" -+#include "bcm283x-rpi-i2c0mux_0_28.dtsi" -+#include "bcm283x-rpi-led-deprecated.dtsi" -+ -+/ { -+ compatible = "raspberrypi,2-model-b-rev2", "brcm,bcm2837"; -+ model = "Raspberry Pi 2 Model B rev 1.2"; -+}; -+ -+&gpio { -+ /* -+ * Taken from rpi_SCH_2b_1p2_reduced.pdf and -+ * the official GPU firmware DT blob. -+ * -+ * Legend: -+ * "NC" = not connected (no rail from the SoC) -+ * "FOO" = GPIO line named "FOO" on the schematic -+ * "FOO_N" = GPIO line named "FOO" on schematic, active low -+ */ -+ gpio-line-names = "ID_SDA", -+ "ID_SCL", -+ "GPIO2", -+ "GPIO3", -+ "GPIO4", -+ "GPIO5", -+ "GPIO6", -+ "GPIO7", -+ "GPIO8", -+ "GPIO9", -+ "GPIO10", -+ "GPIO11", -+ "GPIO12", -+ "GPIO13", -+ "GPIO14", -+ "GPIO15", -+ "GPIO16", -+ "GPIO17", -+ "GPIO18", -+ "GPIO19", -+ "GPIO20", -+ "GPIO21", -+ "GPIO22", -+ "GPIO23", -+ "GPIO24", -+ "GPIO25", -+ "GPIO26", -+ "GPIO27", -+ "SDA0", -+ "SCL0", -+ "NC", /* GPIO30 */ -+ "LAN_RUN", -+ "CAM_GPIO1", -+ "NC", /* GPIO33 */ -+ "NC", /* GPIO34 */ -+ "PWR_LOW_N", -+ "NC", /* GPIO36 */ -+ "NC", /* GPIO37 */ -+ "USB_LIMIT", -+ "NC", /* GPIO39 */ -+ "PWM0_OUT", -+ "CAM_GPIO0", -+ "SMPS_SCL", -+ "SMPS_SDA", -+ "ETH_CLK", -+ "PWM1_OUT", -+ "HDMI_HPD_N", -+ "STATUS_LED", -+ /* Used by SD Card */ -+ "SD_CLK_R", -+ "SD_CMD_R", -+ "SD_DATA0_R", -+ "SD_DATA1_R", -+ "SD_DATA2_R", -+ "SD_DATA3_R"; -+ -+ spi0_pins: spi0_pins { -+ brcm,pins = <9 10 11>; -+ brcm,function = <4>; /* alt0 */ -+ }; -+ -+ spi0_cs_pins: spi0_cs_pins { -+ brcm,pins = <8 7>; -+ brcm,function = <1>; /* output */ -+ }; -+ -+ i2c0_pins: i2c0 { -+ brcm,pins = <0 1>; -+ brcm,function = <4>; -+ }; -+ -+ i2c1_pins: i2c1 { -+ brcm,pins = <2 3>; -+ brcm,function = <4>; -+ }; -+ -+ i2s_pins: i2s { -+ brcm,pins = <18 19 20 21>; -+ brcm,function = <4>; /* alt0 */ -+ }; -+ -+ audio_pins: audio_pins { -+ brcm,pins = <40 45>; -+ brcm,function = <4>; -+ brcm,pull = <0>; -+ }; -+}; -+ -+&uart0 { -+ status = "okay"; -+}; -+ -+&spi0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&spi0_pins &spi0_cs_pins>; -+ cs-gpios = <&gpio 8 1>, <&gpio 7 1>; -+ -+ spidev0: spidev@0{ -+ compatible = "spidev"; -+ reg = <0>; /* CE0 */ -+ #address-cells = <1>; -+ #size-cells = <0>; -+ spi-max-frequency = <125000000>; -+ }; -+ -+ spidev1: spidev@1{ -+ compatible = "spidev"; -+ reg = <1>; /* CE1 */ -+ #address-cells = <1>; -+ #size-cells = <0>; -+ spi-max-frequency = <125000000>; -+ }; -+}; -+ -+&i2c0if { -+ clock-frequency = <100000>; -+}; -+ -+&i2c1 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&i2c1_pins>; -+ clock-frequency = <100000>; -+}; -+ -+&i2c2 { -+ clock-frequency = <100000>; -+}; -+ -+&i2s { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&i2s_pins>; -+}; -+ -+&led_act { -+ gpios = <&gpio 47 GPIO_ACTIVE_HIGH>; -+ default-state = "off"; -+ linux,default-trigger = "mmc0"; -+}; -+ -+&leds { -+ led_pwr: led-pwr { -+ label = "PWR"; -+ gpios = <&gpio 35 GPIO_ACTIVE_HIGH>; -+ default-state = "off"; -+ linux,default-trigger = "input"; -+ }; -+}; -+ -+&hdmi { -+ hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>; -+}; -+ -+&vchiq { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&audio_pins>; -+}; -+ -+&cam1_reg { -+ gpio = <&gpio 41 GPIO_ACTIVE_HIGH>; -+}; -+ -+cam0_reg: &cam_dummy_reg { -+}; -+ -+i2c_csi_dsi0: &i2c0 { -+}; -+ -+/ { -+ __overrides__ { -+ audio = <&chosen>,"bootargs{on='snd_bcm2835.enable_headphones=1 snd_bcm2835.enable_hdmi=1',off='snd_bcm2835.enable_headphones=0 snd_bcm2835.enable_hdmi=0'}"; -+ -+ act_led_gpio = <&led_act>,"gpios:4"; -+ act_led_activelow = <&led_act>,"gpios:8"; -+ act_led_trigger = <&led_act>,"linux,default-trigger"; -+ -+ pwr_led_gpio = <&led_pwr>,"gpios:4"; -+ pwr_led_activelow = <&led_pwr>,"gpios:8"; -+ pwr_led_trigger = <&led_pwr>,"linux,default-trigger"; -+ }; -+}; -diff --git a/arch/arm/boot/dts/broadcom/bcm2710-rpi-3-b-plus.dts b/arch/arm/boot/dts/broadcom/bcm2710-rpi-3-b-plus.dts -new file mode 100644 -index 000000000000..8973985e9902 ---- /dev/null -+++ b/arch/arm/boot/dts/broadcom/bcm2710-rpi-3-b-plus.dts -@@ -0,0 +1,295 @@ -+/dts-v1/; -+ -+#include "bcm2710.dtsi" -+#include "bcm2709-rpi.dtsi" -+#include "bcm283x-rpi-lan7515.dtsi" -+#include "bcm283x-rpi-csi1-2lane.dtsi" -+#include "bcm283x-rpi-i2c0mux_0_44.dtsi" -+#include "bcm271x-rpi-bt.dtsi" -+#include "bcm283x-rpi-led-deprecated.dtsi" -+ -+/ { -+ compatible = "raspberrypi,3-model-b-plus", "brcm,bcm2837"; -+ model = "Raspberry Pi 3 Model B+"; -+ -+ aliases { -+ serial0 = &uart1; -+ serial1 = &uart0; -+ mmc1 = &mmcnr; -+ }; -+}; -+ -+&gpio { -+ /* -+ * Taken from rpi_SCH_3bplus_1p0_reduced.pdf and -+ * the official GPU firmware DT blob. -+ * -+ * Legend: -+ * "NC" = not connected (no rail from the SoC) -+ * "FOO" = GPIO line named "FOO" on the schematic -+ * "FOO_N" = GPIO line named "FOO" on schematic, active low -+ */ -+ gpio-line-names = "ID_SDA", -+ "ID_SCL", -+ "GPIO2", -+ "GPIO3", -+ "GPIO4", -+ "GPIO5", -+ "GPIO6", -+ "GPIO7", -+ "GPIO8", -+ "GPIO9", -+ "GPIO10", -+ "GPIO11", -+ "GPIO12", -+ "GPIO13", -+ "GPIO14", -+ "GPIO15", -+ "GPIO16", -+ "GPIO17", -+ "GPIO18", -+ "GPIO19", -+ "GPIO20", -+ "GPIO21", -+ "GPIO22", -+ "GPIO23", -+ "GPIO24", -+ "GPIO25", -+ "GPIO26", -+ "GPIO27", -+ "HDMI_HPD_N", -+ "STATUS_LED_G", -+ /* Used by BT module */ -+ "CTS0", -+ "RTS0", -+ "TXD0", -+ "RXD0", -+ /* Used by Wifi */ -+ "SD1_CLK", -+ "SD1_CMD", -+ "SD1_DATA0", -+ "SD1_DATA1", -+ "SD1_DATA2", -+ "SD1_DATA3", -+ "PWM0_OUT", -+ "PWM1_OUT", -+ "ETH_CLK", -+ "WIFI_CLK", -+ "SDA0", -+ "SCL0", -+ "SMPS_SCL", -+ "SMPS_SDA", -+ /* Used by SD Card */ -+ "SD_CLK_R", -+ "SD_CMD_R", -+ "SD_DATA0_R", -+ "SD_DATA1_R", -+ "SD_DATA2_R", -+ "SD_DATA3_R"; -+ -+ spi0_pins: spi0_pins { -+ brcm,pins = <9 10 11>; -+ brcm,function = <4>; /* alt0 */ -+ }; -+ -+ spi0_cs_pins: spi0_cs_pins { -+ brcm,pins = <8 7>; -+ brcm,function = <1>; /* output */ -+ }; -+ -+ i2c0_pins: i2c0 { -+ brcm,pins = <0 1>; -+ brcm,function = <4>; -+ }; -+ -+ i2c1_pins: i2c1 { -+ brcm,pins = <2 3>; -+ brcm,function = <4>; -+ }; -+ -+ i2s_pins: i2s { -+ brcm,pins = <18 19 20 21>; -+ brcm,function = <4>; /* alt0 */ -+ }; -+ -+ sdio_pins: sdio_pins { -+ brcm,pins = <34 35 36 37 38 39>; -+ brcm,function = <7>; // alt3 = SD1 -+ brcm,pull = <0 2 2 2 2 2>; -+ }; -+ -+ bt_pins: bt_pins { -+ brcm,pins = <43>; -+ brcm,function = <4>; /* alt0:GPCLK2 */ -+ brcm,pull = <0>; -+ }; -+ -+ uart0_pins: uart0_pins { -+ brcm,pins = <32 33>; -+ brcm,function = <7>; /* alt3=UART0 */ -+ brcm,pull = <0 2>; -+ }; -+ -+ uart1_pins: uart1_pins { -+ brcm,pins; -+ brcm,function; -+ brcm,pull; -+ }; -+ -+ uart1_bt_pins: uart1_bt_pins { -+ brcm,pins = <32 33 30 31>; -+ brcm,function = ; /* alt5=UART1 */ -+ brcm,pull = <0 2 2 0>; -+ }; -+ -+ audio_pins: audio_pins { -+ brcm,pins = <40 41>; -+ brcm,function = <4>; -+ brcm,pull = <0>; -+ }; -+}; -+ -+&mmcnr { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&sdio_pins>; -+ bus-width = <4>; -+ status = "okay"; -+ #address-cells = <1>; -+ #size-cells = <0>; -+ -+ brcmf: wifi@1 { -+ reg = <1>; -+ compatible = "brcm,bcm4329-fmac"; -+ }; -+}; -+ -+&firmware { -+ expgpio: expgpio { -+ compatible = "raspberrypi,firmware-gpio"; -+ gpio-controller; -+ #gpio-cells = <2>; -+ gpio-line-names = "BT_ON", -+ "WL_ON", -+ "PWR_LED_R", -+ "LAN_RUN", -+ "NC", -+ "CAM_GPIO0", -+ "CAM_GPIO1", -+ "NC"; -+ status = "okay"; -+ }; -+}; -+ -+&uart0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&uart0_pins &bt_pins>; -+ status = "okay"; -+}; -+ -+&uart1 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&uart1_pins>; -+ status = "okay"; -+}; -+ -+&spi0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&spi0_pins &spi0_cs_pins>; -+ cs-gpios = <&gpio 8 1>, <&gpio 7 1>; -+ -+ spidev0: spidev@0{ -+ compatible = "spidev"; -+ reg = <0>; /* CE0 */ -+ #address-cells = <1>; -+ #size-cells = <0>; -+ spi-max-frequency = <125000000>; -+ }; -+ -+ spidev1: spidev@1{ -+ compatible = "spidev"; -+ reg = <1>; /* CE1 */ -+ #address-cells = <1>; -+ #size-cells = <0>; -+ spi-max-frequency = <125000000>; -+ }; -+}; -+ -+&i2c0if { -+ clock-frequency = <100000>; -+}; -+ -+&i2c1 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&i2c1_pins>; -+ clock-frequency = <100000>; -+}; -+ -+&i2c2 { -+ clock-frequency = <100000>; -+}; -+ -+&i2s { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&i2s_pins>; -+}; -+ -+&led_act { -+ gpios = <&gpio 29 GPIO_ACTIVE_HIGH>; -+ default-state = "off"; -+ linux,default-trigger = "mmc0"; -+}; -+ -+&leds { -+ led_pwr: led-pwr { -+ label = "PWR"; -+ gpios = <&expgpio 2 GPIO_ACTIVE_LOW>; -+ default-state = "off"; -+ linux,default-trigger = "default-on"; -+ }; -+}; -+ -+&hdmi { -+ hpd-gpios = <&gpio 28 GPIO_ACTIVE_LOW>; -+}; -+ -+&vchiq { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&audio_pins>; -+}; -+ -+ð_phy { -+ microchip,eee-enabled; -+ microchip,tx-lpi-timer = <600>; /* non-aggressive*/ -+ microchip,downshift-after = <2>; -+}; -+ -+&cam1_reg { -+ gpio = <&expgpio 5 GPIO_ACTIVE_HIGH>; -+}; -+ -+cam0_reg: &cam_dummy_reg { -+}; -+ -+i2c_csi_dsi0: &i2c0 { -+}; -+ -+/ { -+ __overrides__ { -+ audio = <&chosen>,"bootargs{on='snd_bcm2835.enable_headphones=1 snd_bcm2835.enable_hdmi=1',off='snd_bcm2835.enable_headphones=0 snd_bcm2835.enable_hdmi=0'}"; -+ -+ act_led_gpio = <&led_act>,"gpios:4"; -+ act_led_activelow = <&led_act>,"gpios:8"; -+ act_led_trigger = <&led_act>,"linux,default-trigger"; -+ -+ pwr_led_gpio = <&led_pwr>,"gpios:4"; -+ pwr_led_activelow = <&led_pwr>,"gpios:8"; -+ pwr_led_trigger = <&led_pwr>,"linux,default-trigger"; -+ -+ eee = <ð_phy>,"microchip,eee-enabled?"; -+ tx_lpi_timer = <ð_phy>,"microchip,tx-lpi-timer:0"; -+ eth_led0 = <ð_phy>,"microchip,led-modes:0"; -+ eth_led1 = <ð_phy>,"microchip,led-modes:4"; -+ eth_downshift_after = <ð_phy>,"microchip,downshift-after:0"; -+ eth_max_speed = <ð_phy>,"max-speed:0"; -+ }; -+}; -diff --git a/arch/arm/boot/dts/broadcom/bcm2710-rpi-3-b.dts b/arch/arm/boot/dts/broadcom/bcm2710-rpi-3-b.dts -new file mode 100644 -index 000000000000..35e6e9900083 ---- /dev/null -+++ b/arch/arm/boot/dts/broadcom/bcm2710-rpi-3-b.dts -@@ -0,0 +1,293 @@ -+/dts-v1/; -+ -+#include "bcm2710.dtsi" -+#include "bcm2709-rpi.dtsi" -+#include "bcm283x-rpi-smsc9514.dtsi" -+#include "bcm283x-rpi-csi1-2lane.dtsi" -+#include "bcm283x-rpi-i2c0mux_0_44.dtsi" -+#include "bcm271x-rpi-bt.dtsi" -+#include "bcm283x-rpi-led-deprecated.dtsi" -+ -+/ { -+ compatible = "raspberrypi,3-model-b", "brcm,bcm2837"; -+ model = "Raspberry Pi 3 Model B"; -+ -+ aliases { -+ serial0 = &uart1; -+ serial1 = &uart0; -+ mmc1 = &mmcnr; -+ }; -+}; -+ -+&gpio { -+ /* -+ * Taken from rpi_SCH_3b_1p2_reduced.pdf and -+ * the official GPU firmware DT blob. -+ * -+ * Legend: -+ * "NC" = not connected (no rail from the SoC) -+ * "FOO" = GPIO line named "FOO" on the schematic -+ * "FOO_N" = GPIO line named "FOO" on schematic, active low -+ */ -+ gpio-line-names = "ID_SDA", -+ "ID_SCL", -+ "GPIO2", -+ "GPIO3", -+ "GPIO4", -+ "GPIO5", -+ "GPIO6", -+ "GPIO7", -+ "GPIO8", -+ "GPIO9", -+ "GPIO10", -+ "GPIO11", -+ "GPIO12", -+ "GPIO13", -+ "GPIO14", -+ "GPIO15", -+ "GPIO16", -+ "GPIO17", -+ "GPIO18", -+ "GPIO19", -+ "GPIO20", -+ "GPIO21", -+ "GPIO22", -+ "GPIO23", -+ "GPIO24", -+ "GPIO25", -+ "GPIO26", -+ "GPIO27", -+ "NC", /* GPIO 28 */ -+ "LAN_RUN_BOOT", -+ /* Used by BT module */ -+ "CTS0", -+ "RTS0", -+ "TXD0", -+ "RXD0", -+ /* Used by Wifi */ -+ "SD1_CLK", -+ "SD1_CMD", -+ "SD1_DATA0", -+ "SD1_DATA1", -+ "SD1_DATA2", -+ "SD1_DATA3", -+ "PWM0_OUT", -+ "PWM1_OUT", -+ "ETH_CLK", -+ "WIFI_CLK", -+ "SDA0", -+ "SCL0", -+ "SMPS_SCL", -+ "SMPS_SDA", -+ /* Used by SD Card */ -+ "SD_CLK_R", -+ "SD_CMD_R", -+ "SD_DATA0_R", -+ "SD_DATA1_R", -+ "SD_DATA2_R", -+ "SD_DATA3_R"; -+ -+ spi0_pins: spi0_pins { -+ brcm,pins = <9 10 11>; -+ brcm,function = <4>; /* alt0 */ -+ }; -+ -+ spi0_cs_pins: spi0_cs_pins { -+ brcm,pins = <8 7>; -+ brcm,function = <1>; /* output */ -+ }; -+ -+ i2c0_pins: i2c0 { -+ brcm,pins = <0 1>; -+ brcm,function = <4>; -+ }; -+ -+ i2c1_pins: i2c1 { -+ brcm,pins = <2 3>; -+ brcm,function = <4>; -+ }; -+ -+ i2s_pins: i2s { -+ brcm,pins = <18 19 20 21>; -+ brcm,function = <4>; /* alt0 */ -+ }; -+ -+ sdio_pins: sdio_pins { -+ brcm,pins = <34 35 36 37 38 39>; -+ brcm,function = <7>; // alt3 = SD1 -+ brcm,pull = <0 2 2 2 2 2>; -+ }; -+ -+ bt_pins: bt_pins { -+ brcm,pins = <43>; -+ brcm,function = <4>; /* alt0:GPCLK2 */ -+ brcm,pull = <0>; -+ }; -+ -+ uart0_pins: uart0_pins { -+ brcm,pins = <32 33>; -+ brcm,function = <7>; /* alt3=UART0 */ -+ brcm,pull = <0 2>; -+ }; -+ -+ uart1_pins: uart1_pins { -+ brcm,pins; -+ brcm,function; -+ brcm,pull; -+ }; -+ -+ uart1_bt_pins: uart1_bt_pins { -+ brcm,pins = <32 33>; -+ brcm,function = ; /* alt5=UART1 */ -+ brcm,pull = <0 2>; -+ }; -+ -+ audio_pins: audio_pins { -+ brcm,pins = <40 41>; -+ brcm,function = <4>; -+ brcm,pull = <0>; -+ }; -+}; -+ -+&mmcnr { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&sdio_pins>; -+ bus-width = <4>; -+ status = "okay"; -+ #address-cells = <1>; -+ #size-cells = <0>; -+ -+ brcmf: wifi@1 { -+ reg = <1>; -+ compatible = "brcm,bcm4329-fmac"; -+ }; -+}; -+ -+&firmware { -+ expgpio: expgpio { -+ compatible = "raspberrypi,firmware-gpio"; -+ gpio-controller; -+ #gpio-cells = <2>; -+ gpio-line-names = "BT_ON", -+ "WL_ON", -+ "STATUS_LED", -+ "LAN_RUN", -+ "HDMI_HPD_N", -+ "CAM_GPIO0", -+ "CAM_GPIO1", -+ "PWR_LOW_N"; -+ status = "okay"; -+ }; -+ -+ virtgpio: virtgpio { -+ compatible = "brcm,bcm2835-virtgpio"; -+ gpio-controller; -+ #gpio-cells = <2>; -+ status = "okay"; -+ }; -+}; -+ -+&uart0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&uart0_pins &bt_pins>; -+ status = "okay"; -+}; -+ -+&uart1 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&uart1_pins>; -+ status = "okay"; -+}; -+ -+&bt { -+ max-speed = <921600>; -+}; -+ -+&spi0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&spi0_pins &spi0_cs_pins>; -+ cs-gpios = <&gpio 8 1>, <&gpio 7 1>; -+ -+ spidev0: spidev@0{ -+ compatible = "spidev"; -+ reg = <0>; /* CE0 */ -+ #address-cells = <1>; -+ #size-cells = <0>; -+ spi-max-frequency = <125000000>; -+ }; -+ -+ spidev1: spidev@1{ -+ compatible = "spidev"; -+ reg = <1>; /* CE1 */ -+ #address-cells = <1>; -+ #size-cells = <0>; -+ spi-max-frequency = <125000000>; -+ }; -+}; -+ -+&i2c0if { -+ clock-frequency = <100000>; -+}; -+ -+&i2c1 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&i2c1_pins>; -+ clock-frequency = <100000>; -+}; -+ -+&i2c2 { -+ clock-frequency = <100000>; -+}; -+ -+&i2s { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&i2s_pins>; -+}; -+ -+&led_act { -+ gpios = <&virtgpio 0 GPIO_ACTIVE_HIGH>; -+ default-state = "off"; -+ linux,default-trigger = "mmc0"; -+}; -+ -+&leds { -+ led_pwr: led-pwr { -+ label = "PWR"; -+ gpios = <&expgpio 7 GPIO_ACTIVE_HIGH>; -+ default-state = "off"; -+ linux,default-trigger = "input"; -+ }; -+}; -+ -+&hdmi { -+ hpd-gpios = <&expgpio 4 GPIO_ACTIVE_LOW>; -+}; -+ -+&vchiq { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&audio_pins>; -+}; -+ -+&cam1_reg { -+ gpio = <&expgpio 5 GPIO_ACTIVE_HIGH>; -+}; -+ -+cam0_reg: &cam_dummy_reg { -+}; -+ -+i2c_csi_dsi0: &i2c0 { -+}; -+ -+/ { -+ __overrides__ { -+ audio = <&chosen>,"bootargs{on='snd_bcm2835.enable_headphones=1 snd_bcm2835.enable_hdmi=1',off='snd_bcm2835.enable_headphones=0 snd_bcm2835.enable_hdmi=0'}"; -+ -+ act_led_gpio = <&led_act>,"gpios:4"; -+ act_led_activelow = <&led_act>,"gpios:8"; -+ act_led_trigger = <&led_act>,"linux,default-trigger"; -+ -+ pwr_led_gpio = <&led_pwr>,"gpios:4"; -+ pwr_led_activelow = <&led_pwr>,"gpios:8"; -+ pwr_led_trigger = <&led_pwr>,"linux,default-trigger"; -+ }; -+}; -diff --git a/arch/arm/boot/dts/broadcom/bcm2710-rpi-cm3.dts b/arch/arm/boot/dts/broadcom/bcm2710-rpi-cm3.dts -new file mode 100644 -index 000000000000..0d6e9e61f877 ---- /dev/null -+++ b/arch/arm/boot/dts/broadcom/bcm2710-rpi-cm3.dts -@@ -0,0 +1,215 @@ -+/dts-v1/; -+ -+#include "bcm2710.dtsi" -+#include "bcm2709-rpi.dtsi" -+#include "bcm283x-rpi-csi0-2lane.dtsi" -+#include "bcm283x-rpi-csi1-4lane.dtsi" -+#include "bcm283x-rpi-i2c0mux_0_28.dtsi" -+#include "bcm283x-rpi-led-deprecated.dtsi" -+ -+/ { -+ compatible = "raspberrypi,3-compute-module", "brcm,bcm2837"; -+ model = "Raspberry Pi Compute Module 3"; -+}; -+ -+&cam1_reg { -+ gpio = <&gpio 3 GPIO_ACTIVE_HIGH>; -+ status = "disabled"; -+}; -+ -+cam0_reg: &cam0_regulator { -+ gpio = <&gpio 31 GPIO_ACTIVE_HIGH>; -+}; -+ -+i2c_csi_dsi0: &i2c0 { -+}; -+ -+&uart0 { -+ status = "okay"; -+}; -+ -+&gpio { -+ /* -+ * This is based on the official GPU firmware DT blob. -+ * -+ * Legend: -+ * "NC" = not connected (no rail from the SoC) -+ * "FOO" = GPIO line named "FOO" on the schematic -+ * "FOO_N" = GPIO line named "FOO" on schematic, active low -+ */ -+ gpio-line-names = "GPIO0", -+ "GPIO1", -+ "GPIO2", -+ "GPIO3", -+ "GPIO4", -+ "GPIO5", -+ "GPIO6", -+ "GPIO7", -+ "GPIO8", -+ "GPIO9", -+ "GPIO10", -+ "GPIO11", -+ "GPIO12", -+ "GPIO13", -+ "GPIO14", -+ "GPIO15", -+ "GPIO16", -+ "GPIO17", -+ "GPIO18", -+ "GPIO19", -+ "GPIO20", -+ "GPIO21", -+ "GPIO22", -+ "GPIO23", -+ "GPIO24", -+ "GPIO25", -+ "GPIO26", -+ "GPIO27", -+ "GPIO28", -+ "GPIO29", -+ "GPIO30", -+ "GPIO31", -+ "GPIO32", -+ "GPIO33", -+ "GPIO34", -+ "GPIO35", -+ "GPIO36", -+ "GPIO37", -+ "GPIO38", -+ "GPIO39", -+ "GPIO40", -+ "GPIO41", -+ "GPIO42", -+ "GPIO43", -+ "GPIO44", -+ "GPIO45", -+ "SMPS_SCL", -+ "SMPS_SDA", -+ /* Used by eMMC */ -+ "SD_CLK_R", -+ "SD_CMD_R", -+ "SD_DATA0_R", -+ "SD_DATA1_R", -+ "SD_DATA2_R", -+ "SD_DATA3_R"; -+ -+ spi0_pins: spi0_pins { -+ brcm,pins = <9 10 11>; -+ brcm,function = <4>; /* alt0 */ -+ }; -+ -+ spi0_cs_pins: spi0_cs_pins { -+ brcm,pins = <8 7>; -+ brcm,function = <1>; /* output */ -+ }; -+ -+ i2c0_pins: i2c0 { -+ brcm,pins = <0 1>; -+ brcm,function = <4>; -+ }; -+ -+ i2c1_pins: i2c1 { -+ brcm,pins = <2 3>; -+ brcm,function = <4>; -+ }; -+ -+ i2s_pins: i2s { -+ brcm,pins = <18 19 20 21>; -+ brcm,function = <4>; /* alt0 */ -+ }; -+ -+ audio_pins: audio_pins { -+ brcm,pins; -+ brcm,function; -+ }; -+}; -+ -+&firmware { -+ expgpio: expgpio { -+ compatible = "raspberrypi,firmware-gpio"; -+ gpio-controller; -+ #gpio-cells = <2>; -+ gpio-line-names = "HDMI_HPD_N", -+ "EMMC_EN_N", -+ "NC", -+ "NC", -+ "NC", -+ "NC", -+ "NC", -+ "NC"; -+ status = "okay"; -+ }; -+ -+ virtgpio: virtgpio { -+ compatible = "brcm,bcm2835-virtgpio"; -+ gpio-controller; -+ #gpio-cells = <2>; -+ status = "okay"; -+ }; -+}; -+ -+&spi0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&spi0_pins &spi0_cs_pins>; -+ cs-gpios = <&gpio 8 1>, <&gpio 7 1>; -+ -+ spidev0: spidev@0{ -+ compatible = "spidev"; -+ reg = <0>; /* CE0 */ -+ #address-cells = <1>; -+ #size-cells = <0>; -+ spi-max-frequency = <125000000>; -+ }; -+ -+ spidev1: spidev@1{ -+ compatible = "spidev"; -+ reg = <1>; /* CE1 */ -+ #address-cells = <1>; -+ #size-cells = <0>; -+ spi-max-frequency = <125000000>; -+ }; -+}; -+ -+&i2c0if { -+ clock-frequency = <100000>; -+}; -+ -+&i2c1 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&i2c1_pins>; -+ clock-frequency = <100000>; -+}; -+ -+&i2c2 { -+ clock-frequency = <100000>; -+}; -+ -+&i2s { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&i2s_pins>; -+}; -+ -+&led_act { -+ gpios = <&virtgpio 0 GPIO_ACTIVE_HIGH>; -+ default-state = "off"; -+ linux,default-trigger = "mmc0"; -+}; -+ -+&hdmi { -+ hpd-gpios = <&expgpio 0 GPIO_ACTIVE_LOW>; -+}; -+ -+&vchiq { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&audio_pins>; -+}; -+ -+/ { -+ __overrides__ { -+ audio = <&chosen>,"bootargs{on='snd_bcm2835.enable_hdmi=1',off='snd_bcm2835.enable_hdmi=0'}"; -+ -+ act_led_gpio = <&led_act>,"gpios:4"; -+ act_led_activelow = <&led_act>,"gpios:8"; -+ act_led_trigger = <&led_act>,"linux,default-trigger"; -+ }; -+}; -diff --git a/arch/arm/boot/dts/broadcom/bcm2710-rpi-zero-2-w.dts b/arch/arm/boot/dts/broadcom/bcm2710-rpi-zero-2-w.dts -new file mode 100644 -index 000000000000..16971e50229f ---- /dev/null -+++ b/arch/arm/boot/dts/broadcom/bcm2710-rpi-zero-2-w.dts -@@ -0,0 +1,257 @@ -+/dts-v1/; -+ -+#include "bcm2710.dtsi" -+#include "bcm2709-rpi.dtsi" -+#include "bcm283x-rpi-csi1-2lane.dtsi" -+#include "bcm283x-rpi-i2c0mux_0_44.dtsi" -+#include "bcm2708-rpi-bt.dtsi" -+#include "bcm283x-rpi-led-deprecated.dtsi" -+ -+/ { -+ compatible = "raspberrypi,model-zero-2-w", "brcm,bcm2837"; -+ model = "Raspberry Pi Zero 2 W"; -+ -+ aliases { -+ serial0 = &uart1; -+ serial1 = &uart0; -+ mmc1 = &mmcnr; -+ }; -+}; -+ -+&gpio { -+ /* -+ * This is based on the official GPU firmware DT blob. -+ * -+ * Legend: -+ * "NC" = not connected (no rail from the SoC) -+ * "FOO" = GPIO line named "FOO" on the schematic -+ * "FOO_N" = GPIO line named "FOO" on schematic, active low -+ */ -+ gpio-line-names = "ID_SDA", -+ "ID_SCL", -+ "GPIO2", -+ "GPIO3", -+ "GPIO4", -+ "GPIO5", -+ "GPIO6", -+ "GPIO7", -+ "GPIO8", -+ "GPIO9", -+ "GPIO10", -+ "GPIO11", -+ "GPIO12", -+ "GPIO13", -+ "GPIO14", -+ "GPIO15", -+ "GPIO16", -+ "GPIO17", -+ "GPIO18", -+ "GPIO19", -+ "GPIO20", -+ "GPIO21", -+ "GPIO22", -+ "GPIO23", -+ "GPIO24", -+ "GPIO25", -+ "GPIO26", -+ "GPIO27", -+ "HDMI_HPD_N", -+ "STATUS_LED_N", -+ /* Used by BT module */ -+ "CTS0", -+ "RTS0", -+ "TXD0", -+ "RXD0", -+ /* Used by Wifi */ -+ "SD1_CLK", -+ "SD1_CMD", -+ "SD1_DATA0", -+ "SD1_DATA1", -+ "SD1_DATA2", -+ "SD1_DATA3", -+ "CAM_GPIO1", /* GPIO40 */ -+ "WL_ON", /* GPIO41 */ -+ "BT_ON", /* GPIO42 */ -+ "WIFI_CLK", /* GPIO43 */ -+ "SDA0", /* GPIO44 */ -+ "SCL0", /* GPIO45 */ -+ "SMPS_SCL", /* GPIO46 */ -+ "SMPS_SDA", /* GPIO47 */ -+ /* Used by SD Card */ -+ "SD_CLK_R", -+ "SD_CMD_R", -+ "SD_DATA0_R", -+ "SD_DATA1_R", -+ "SD_DATA2_R", -+ "SD_DATA3_R"; -+ -+ spi0_pins: spi0_pins { -+ brcm,pins = <9 10 11>; -+ brcm,function = <4>; /* alt0 */ -+ }; -+ -+ spi0_cs_pins: spi0_cs_pins { -+ brcm,pins = <8 7>; -+ brcm,function = <1>; /* output */ -+ }; -+ -+ i2c0_pins: i2c0 { -+ brcm,pins = <0 1>; -+ brcm,function = <4>; -+ }; -+ -+ i2c1_pins: i2c1 { -+ brcm,pins = <2 3>; -+ brcm,function = <4>; -+ }; -+ -+ i2s_pins: i2s { -+ brcm,pins = <18 19 20 21>; -+ brcm,function = <4>; /* alt0 */ -+ }; -+ -+ sdio_pins: sdio_pins { -+ brcm,pins = <34 35 36 37 38 39>; -+ brcm,function = <7>; // alt3 = SD1 -+ brcm,pull = <0 2 2 2 2 2>; -+ }; -+ -+ bt_pins: bt_pins { -+ brcm,pins = <43>; -+ brcm,function = <4>; /* alt0:GPCLK2 */ -+ brcm,pull = <0>; -+ }; -+ -+ uart0_pins: uart0_pins { -+ brcm,pins = <30 31 32 33>; -+ brcm,function = <7>; /* alt3=UART0 */ -+ brcm,pull = <2 0 0 2>; /* up none none up */ -+ }; -+ -+ uart1_pins: uart1_pins { -+ brcm,pins; -+ brcm,function; -+ brcm,pull; -+ }; -+ -+ uart1_bt_pins: uart1_bt_pins { -+ brcm,pins = <32 33 30 31>; -+ brcm,function = ; /* alt5=UART1 */ -+ brcm,pull = <0 2 2 0>; -+ }; -+ -+ audio_pins: audio_pins { -+ brcm,pins = <>; -+ brcm,function = <>; -+ }; -+}; -+ -+&mmcnr { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&sdio_pins>; -+ bus-width = <4>; -+ status = "okay"; -+ #address-cells = <1>; -+ #size-cells = <0>; -+ -+ brcmf: wifi@1 { -+ reg = <1>; -+ compatible = "brcm,bcm4329-fmac"; -+ }; -+}; -+ -+&uart0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&uart0_pins &bt_pins>; -+ status = "okay"; -+}; -+ -+&uart1 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&uart1_pins>; -+ status = "okay"; -+}; -+ -+&spi0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&spi0_pins &spi0_cs_pins>; -+ cs-gpios = <&gpio 8 1>, <&gpio 7 1>; -+ -+ spidev0: spidev@0{ -+ compatible = "spidev"; -+ reg = <0>; /* CE0 */ -+ #address-cells = <1>; -+ #size-cells = <0>; -+ spi-max-frequency = <125000000>; -+ }; -+ -+ spidev1: spidev@1{ -+ compatible = "spidev"; -+ reg = <1>; /* CE1 */ -+ #address-cells = <1>; -+ #size-cells = <0>; -+ spi-max-frequency = <125000000>; -+ }; -+}; -+ -+&i2c0if { -+ clock-frequency = <100000>; -+}; -+ -+&i2c1 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&i2c1_pins>; -+ clock-frequency = <100000>; -+}; -+ -+&i2c2 { -+ clock-frequency = <100000>; -+}; -+ -+&i2s { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&i2s_pins>; -+}; -+ -+&led_act { -+ gpios = <&gpio 29 GPIO_ACTIVE_LOW>; -+ default-state = "off"; -+ linux,default-trigger = "actpwr"; -+}; -+ -+&hdmi { -+ hpd-gpios = <&gpio 28 GPIO_ACTIVE_LOW>; -+}; -+ -+&vchiq { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&audio_pins>; -+}; -+ -+&bt { -+ shutdown-gpios = <&gpio 42 GPIO_ACTIVE_HIGH>; -+}; -+ -+&minibt { -+ shutdown-gpios = <&gpio 42 GPIO_ACTIVE_HIGH>; -+}; -+ -+&cam1_reg { -+ gpio = <&gpio 40 GPIO_ACTIVE_HIGH>; -+}; -+ -+cam0_reg: &cam_dummy_reg { -+}; -+ -+i2c_csi_dsi0: &i2c0 { -+}; -+ -+/ { -+ __overrides__ { -+ audio = <&chosen>,"bootargs{on='snd_bcm2835.enable_hdmi=1',off='snd_bcm2835.enable_hdmi=0'}"; -+ -+ act_led_gpio = <&led_act>,"gpios:4"; -+ act_led_activelow = <&led_act>,"gpios:8"; -+ act_led_trigger = <&led_act>,"linux,default-trigger"; -+ }; -+}; -diff --git a/arch/arm/boot/dts/broadcom/bcm2710-rpi-zero-2.dts b/arch/arm/boot/dts/broadcom/bcm2710-rpi-zero-2.dts -new file mode 100644 -index 000000000000..daa12bd30d6b ---- /dev/null -+++ b/arch/arm/boot/dts/broadcom/bcm2710-rpi-zero-2.dts -@@ -0,0 +1 @@ -+#include "bcm2710-rpi-zero-2-w.dts" -diff --git a/arch/arm/boot/dts/broadcom/bcm2710.dtsi b/arch/arm/boot/dts/broadcom/bcm2710.dtsi -new file mode 100644 -index 000000000000..bdcdbb51fab8 ---- /dev/null -+++ b/arch/arm/boot/dts/broadcom/bcm2710.dtsi -@@ -0,0 +1,32 @@ -+#define i2c0 i2c0if -+#include "bcm2837.dtsi" -+#undef i2c0 -+#include "bcm270x.dtsi" -+ -+/ { -+ compatible = "brcm,bcm2837", "brcm,bcm2836"; -+ -+ arm-pmu { -+ compatible = "arm,cortex-a53-pmu", "arm,cortex-a7-pmu"; -+ }; -+ -+ soc { -+ dma-ranges = <0xc0000000 0x00000000 0x3f000000>, -+ <0x7e000000 0x3f000000 0x01000000>; -+ }; -+ -+ __overrides__ { -+ arm_freq = <&cpu0>, "clock-frequency:0", -+ <&cpu1>, "clock-frequency:0", -+ <&cpu2>, "clock-frequency:0", -+ <&cpu3>, "clock-frequency:0"; -+ }; -+}; -+ -+&system_timer { -+ status = "disabled"; -+}; -+ -+&vc4 { -+ status = "disabled"; -+}; -diff --git a/arch/arm/boot/dts/broadcom/bcm2711-rpi-4-b.dts b/arch/arm/boot/dts/broadcom/bcm2711-rpi-4-b.dts -index 353bb50ce542..a4aae12775dc 100644 ---- a/arch/arm/boot/dts/broadcom/bcm2711-rpi-4-b.dts -+++ b/arch/arm/boot/dts/broadcom/bcm2711-rpi-4-b.dts -@@ -1,11 +1,19 @@ - // SPDX-License-Identifier: GPL-2.0 - /dts-v1/; -+#define BCM2711 -+#define i2c0 i2c0if - #include "bcm2711.dtsi" - #include "bcm2711-rpi.dtsi" -+/delete-node/&i2c0mux; - #include "bcm283x-rpi-led-deprecated.dtsi" --#include "bcm283x-rpi-usb-peripheral.dtsi" - #include "bcm283x-rpi-wifi-bt.dtsi" - #include -+#undef i2c0 -+#include "bcm270x.dtsi" -+#define i2c0 i2c0mux -+#undef i2c0 -+ -+/delete-node/ &cam1_reg; - - / { - compatible = "raspberrypi,4-model-b", "brcm,bcm2711"; -@@ -68,7 +76,7 @@ &expgpio { - "VDD_SD_IO_SEL", - "CAM_GPIO", /* 5 */ - "SD_PWR_ON", -- ""; -+ "SD_OC_N"; - }; - - &gpio { -@@ -82,21 +90,21 @@ &gpio { - */ - gpio-line-names = "ID_SDA", /* 0 */ - "ID_SCL", -- "SDA1", -- "SCL1", -- "GPIO_GCLK", -+ "GPIO2", -+ "GPIO3", -+ "GPIO4", - "GPIO5", /* 5 */ - "GPIO6", -- "SPI_CE1_N", -- "SPI_CE0_N", -- "SPI_MISO", -- "SPI_MOSI", /* 10 */ -- "SPI_SCLK", -+ "GPIO7", -+ "GPIO8", -+ "GPIO9", -+ "GPIO10", /* 10 */ -+ "GPIO11", - "GPIO12", - "GPIO13", - /* Serial port */ -- "TXD1", -- "RXD1", /* 15 */ -+ "GPIO14", -+ "GPIO15", /* 15 */ - "GPIO16", - "GPIO17", - "GPIO18", -@@ -214,7 +222,7 @@ leds { - led@0 { - reg = <0>; - color = ; -- function = LED_FUNCTION_LAN; -+ function = "lan";//LED_FUNCTION_LAN; - default-state = "keep"; - }; - -@@ -222,7 +230,7 @@ led@0 { - led@1 { - reg = <1>; - color = ; -- function = LED_FUNCTION_LAN; -+ function = "lan";//LED_FUNCTION_LAN; - default-state = "keep"; - }; - }; -@@ -270,3 +278,233 @@ &vec { - &wifi_pwrseq { - reset-gpios = <&expgpio 1 GPIO_ACTIVE_LOW>; - }; -+ -+// ============================================= -+// Downstream rpi- changes -+ -+#include "bcm271x-rpi-bt.dtsi" -+ -+/ { -+ soc { -+ /delete-node/ pixelvalve@7e807000; -+ /delete-node/ hdmi@7e902000; -+ }; -+}; -+ -+&phy1 { -+ /delete-node/ leds; -+}; -+ -+#include "bcm2711-rpi-ds.dtsi" -+#include "bcm283x-rpi-csi1-2lane.dtsi" -+#include "bcm283x-rpi-i2c0mux_0_44.dtsi" -+ -+/ { -+ /delete-node/ wifi-pwrseq; -+}; -+ -+&mmcnr { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&sdio_pins>; -+ bus-width = <4>; -+ status = "okay"; -+}; -+ -+&uart0 { -+ pinctrl-0 = <&uart0_pins &bt_pins>; -+ status = "okay"; -+}; -+ -+&uart1 { -+ pinctrl-0 = <&uart1_pins>; -+}; -+ -+&spi0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&spi0_pins &spi0_cs_pins>; -+ cs-gpios = <&gpio 8 1>, <&gpio 7 1>; -+ -+ spidev0: spidev@0{ -+ compatible = "spidev"; -+ reg = <0>; /* CE0 */ -+ #address-cells = <1>; -+ #size-cells = <0>; -+ spi-max-frequency = <125000000>; -+ }; -+ -+ spidev1: spidev@1{ -+ compatible = "spidev"; -+ reg = <1>; /* CE1 */ -+ #address-cells = <1>; -+ #size-cells = <0>; -+ spi-max-frequency = <125000000>; -+ }; -+}; -+ -+&gpio { -+ gpio-line-names = "ID_SDA", -+ "ID_SCL", -+ "GPIO2", -+ "GPIO3", -+ "GPIO4", -+ "GPIO5", -+ "GPIO6", -+ "GPIO7", -+ "GPIO8", -+ "GPIO9", -+ "GPIO10", -+ "GPIO11", -+ "GPIO12", -+ "GPIO13", -+ "GPIO14", -+ "GPIO15", -+ "GPIO16", -+ "GPIO17", -+ "GPIO18", -+ "GPIO19", -+ "GPIO20", -+ "GPIO21", -+ "GPIO22", -+ "GPIO23", -+ "GPIO24", -+ "GPIO25", -+ "GPIO26", -+ "GPIO27", -+ "RGMII_MDIO", -+ "RGMIO_MDC", -+ /* Used by BT module */ -+ "CTS0", /* 30 */ -+ "RTS0", -+ "TXD0", -+ "RXD0", -+ /* Used by Wifi */ -+ "SD1_CLK", -+ "SD1_CMD", /* 35 */ -+ "SD1_DATA0", -+ "SD1_DATA1", -+ "SD1_DATA2", -+ "SD1_DATA3", -+ /* Shared with SPI flash */ -+ "PWM0_MISO", /* 40 */ -+ "PWM1_MOSI", -+ "STATUS_LED_G_CLK", -+ "SPIFLASH_CE_N", -+ "SDA0", -+ "SCL0", /* 45 */ -+ "RGMII_RXCLK", -+ "RGMII_RXCTL", -+ "RGMII_RXD0", -+ "RGMII_RXD1", -+ "RGMII_RXD2", /* 50 */ -+ "RGMII_RXD3", -+ "RGMII_TXCLK", -+ "RGMII_TXCTL", -+ "RGMII_TXD0", -+ "RGMII_TXD1", /* 55 */ -+ "RGMII_TXD2", -+ "RGMII_TXD3"; -+ -+ bt_pins: bt_pins { -+ brcm,pins = "-"; // non-empty to keep btuart happy, //4 = 0 -+ // to fool pinctrl -+ brcm,function = <0>; -+ brcm,pull = <2>; -+ }; -+ -+ uart0_pins: uart0_pins { -+ brcm,pins = <32 33>; -+ brcm,function = ; -+ brcm,pull = <0 2>; -+ }; -+ -+ uart1_pins: uart1_pins { -+ brcm,pins; -+ brcm,function; -+ brcm,pull; -+ }; -+ -+ uart1_bt_pins: uart1_bt_pins { -+ brcm,pins = <32 33 30 31>; -+ brcm,function = ; /* alt5=UART1 */ -+ brcm,pull = <0 2 2 0>; -+ }; -+}; -+ -+&i2c0if { -+ clock-frequency = <100000>; -+}; -+ -+&i2c1 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&i2c1_pins>; -+ clock-frequency = <100000>; -+}; -+ -+&i2s { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&i2s_pins>; -+}; -+ -+// ============================================= -+// Board specific stuff here -+ -+&sdhost { -+ status = "disabled"; -+}; -+ -+&phy1 { -+ led-modes = <0x00 0x08>; /* link/activity link */ -+}; -+ -+&gpio { -+ audio_pins: audio_pins { -+ brcm,pins = <40 41>; -+ brcm,function = <4>; -+ brcm,pull = <0>; -+ }; -+}; -+ -+&led_act { -+ default-state = "off"; -+ linux,default-trigger = "mmc0"; -+}; -+ -+&led_pwr { -+ default-state = "off"; -+}; -+ -+&pwm1 { -+ status = "disabled"; -+}; -+ -+&vchiq { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&audio_pins>; -+}; -+ -+&cam1_reg { -+ gpio = <&expgpio 5 GPIO_ACTIVE_HIGH>; -+}; -+ -+cam0_reg: &cam_dummy_reg { -+}; -+ -+i2c_csi_dsi0: &i2c0 { -+}; -+ -+/ { -+ __overrides__ { -+ audio = <&chosen>,"bootargs{on='snd_bcm2835.enable_headphones=1 snd_bcm2835.enable_hdmi=1',off='snd_bcm2835.enable_headphones=0 snd_bcm2835.enable_hdmi=0'}"; -+ -+ act_led_gpio = <&led_act>,"gpios:4"; -+ act_led_activelow = <&led_act>,"gpios:8"; -+ act_led_trigger = <&led_act>,"linux,default-trigger"; -+ -+ pwr_led_gpio = <&led_pwr>,"gpios:4"; -+ pwr_led_activelow = <&led_pwr>,"gpios:8"; -+ pwr_led_trigger = <&led_pwr>,"linux,default-trigger"; -+ -+ eth_led0 = <&phy1>,"led-modes:0"; -+ eth_led1 = <&phy1>,"led-modes:4"; -+ }; -+}; -diff --git a/arch/arm/boot/dts/broadcom/bcm2711-rpi-400.dts b/arch/arm/boot/dts/broadcom/bcm2711-rpi-400.dts -index ca9be91b4f36..553fb0e24696 100644 ---- a/arch/arm/boot/dts/broadcom/bcm2711-rpi-400.dts -+++ b/arch/arm/boot/dts/broadcom/bcm2711-rpi-400.dts -@@ -37,8 +37,53 @@ &led_pwr { - gpios = <&gpio 42 GPIO_ACTIVE_HIGH>; - }; - --/delete-node/ &led_act; -- - &pm { - /delete-property/ system-power-controller; - }; -+ -+// ============================================= -+// Downstream rpi- changes -+ -+/ { -+ chosen { -+ stdout-path = "serial0:115200n8"; -+ }; -+}; -+ -+&audio_pins { -+ brcm,pins = <>; -+ brcm,function = <>; -+}; -+ -+// Declare the LED but leave it disabled, in case a user wants to map it -+// to a GPIO on the header -+&led_act { -+ default-state = "off"; -+ gpios = <&gpio 0 GPIO_ACTIVE_HIGH>; -+ status = "disabled"; -+}; -+ -+&led_pwr { -+ default-state = "off"; -+}; -+ -+&cam1_reg { -+ /delete-property/ gpio; -+}; -+ -+cam0_reg: &cam_dummy_reg { -+}; -+ -+/ { -+ __overrides__ { -+ audio = <&chosen>,"bootargs{on='snd_bcm2835.enable_hdmi=1',off='snd_bcm2835.enable_hdmi=0'}"; -+ -+ act_led_gpio = <&led_act>,"gpios:4", -+ <&led_act>,"status=okay"; -+ act_led_activelow = <&led_act>,"gpios:8"; -+ act_led_trigger = <&led_act>,"linux,default-trigger"; -+ pwr_led_gpio = <&led_pwr>,"gpios:4"; -+ pwr_led_activelow = <&led_pwr>,"gpios:8"; -+ pwr_led_trigger = <&led_pwr>,"linux,default-trigger"; -+ }; -+}; -diff --git a/arch/arm/boot/dts/broadcom/bcm2711-rpi-cm4.dts b/arch/arm/boot/dts/broadcom/bcm2711-rpi-cm4.dts -new file mode 100644 -index 000000000000..668e31d67cf8 ---- /dev/null -+++ b/arch/arm/boot/dts/broadcom/bcm2711-rpi-cm4.dts -@@ -0,0 +1,499 @@ -+// SPDX-License-Identifier: GPL-2.0 -+/dts-v1/; -+#define BCM2711 -+#define i2c0 i2c0if -+#include "bcm2711.dtsi" -+#include "bcm2711-rpi.dtsi" -+/delete-node/&i2c0mux; -+#include "bcm283x-rpi-led-deprecated.dtsi" -+#include "bcm283x-rpi-wifi-bt.dtsi" -+#undef i2c0 -+#include "bcm270x.dtsi" -+#define i2c0 i2c0mux -+#undef i2c0 -+ -+/ { -+ compatible = "raspberrypi,4-compute-module", "brcm,bcm2711"; -+ model = "Raspberry Pi Compute Module 4"; -+ -+ chosen { -+ /* 8250 auxiliary UART instead of pl011 */ -+ stdout-path = "serial1:115200n8"; -+ }; -+ -+ sd_io_1v8_reg: sd_io_1v8_reg { -+ compatible = "regulator-gpio"; -+ regulator-name = "vdd-sd-io"; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-boot-on; -+ regulator-always-on; -+ regulator-settling-time-us = <5000>; -+ gpios = <&expgpio 4 GPIO_ACTIVE_HIGH>; -+ states = <1800000 0x1>, -+ <3300000 0x0>; -+ status = "okay"; -+ }; -+ -+ sd_vcc_reg: sd_vcc_reg { -+ compatible = "regulator-fixed"; -+ regulator-name = "vcc-sd"; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-boot-on; -+ enable-active-high; -+ gpio = <&expgpio 6 GPIO_ACTIVE_HIGH>; -+ }; -+}; -+ -+&bt { -+ shutdown-gpios = <&expgpio 0 GPIO_ACTIVE_HIGH>; -+}; -+ -+&ddc0 { -+ status = "okay"; -+}; -+ -+&ddc1 { -+ status = "okay"; -+}; -+ -+&expgpio { -+ gpio-line-names = "BT_ON", -+ "WL_ON", -+ "PWR_LED_OFF", -+ "ANT1", -+ "VDD_SD_IO_SEL", -+ "CAM_GPIO", -+ "SD_PWR_ON", -+ "ANT2"; -+ -+ ant1: ant1 { -+ gpio-hog; -+ gpios = <3 GPIO_ACTIVE_HIGH>; -+ output-high; -+ }; -+ -+ ant2: ant2 { -+ gpio-hog; -+ gpios = <7 GPIO_ACTIVE_HIGH>; -+ output-low; -+ }; -+}; -+ -+&gpio { -+ /* -+ * Parts taken from rpi_SCH_4b_4p0_reduced.pdf and -+ * the official GPU firmware DT blob. -+ * -+ * Legend: -+ * "FOO" = GPIO line named "FOO" on the schematic -+ * "FOO_N" = GPIO line named "FOO" on schematic, active low -+ */ -+ gpio-line-names = "ID_SDA", -+ "ID_SCL", -+ "SDA1", -+ "SCL1", -+ "GPIO_GCLK", -+ "GPIO5", -+ "GPIO6", -+ "SPI_CE1_N", -+ "SPI_CE0_N", -+ "SPI_MISO", -+ "SPI_MOSI", -+ "SPI_SCLK", -+ "GPIO12", -+ "GPIO13", -+ /* Serial port */ -+ "TXD1", -+ "RXD1", -+ "GPIO16", -+ "GPIO17", -+ "GPIO18", -+ "GPIO19", -+ "GPIO20", -+ "GPIO21", -+ "GPIO22", -+ "GPIO23", -+ "GPIO24", -+ "GPIO25", -+ "GPIO26", -+ "GPIO27", -+ "RGMII_MDIO", -+ "RGMIO_MDC", -+ /* Used by BT module */ -+ "CTS0", -+ "RTS0", -+ "TXD0", -+ "RXD0", -+ /* Used by Wifi */ -+ "SD1_CLK", -+ "SD1_CMD", -+ "SD1_DATA0", -+ "SD1_DATA1", -+ "SD1_DATA2", -+ "SD1_DATA3", -+ /* Shared with SPI flash */ -+ "PWM0_MISO", -+ "PWM1_MOSI", -+ "STATUS_LED_G_CLK", -+ "SPIFLASH_CE_N", -+ "SDA0", -+ "SCL0", -+ "RGMII_RXCLK", -+ "RGMII_RXCTL", -+ "RGMII_RXD0", -+ "RGMII_RXD1", -+ "RGMII_RXD2", -+ "RGMII_RXD3", -+ "RGMII_TXCLK", -+ "RGMII_TXCTL", -+ "RGMII_TXD0", -+ "RGMII_TXD1", -+ "RGMII_TXD2", -+ "RGMII_TXD3"; -+}; -+ -+&hdmi0 { -+ status = "okay"; -+}; -+ -+&hdmi1 { -+ status = "okay"; -+}; -+ -+&led_act { -+ gpios = <&gpio 42 GPIO_ACTIVE_HIGH>; -+}; -+ -+&leds { -+ led_pwr: led-pwr { -+ label = "PWR"; -+ gpios = <&expgpio 2 GPIO_ACTIVE_LOW>; -+ default-state = "keep"; -+ linux,default-trigger = "default-on"; -+ }; -+}; -+ -+&pixelvalve0 { -+ status = "okay"; -+}; -+ -+&pixelvalve1 { -+ status = "okay"; -+}; -+ -+&pixelvalve2 { -+ status = "okay"; -+}; -+ -+&pixelvalve4 { -+ status = "okay"; -+}; -+ -+&pwm1 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pwm1_0_gpio40 &pwm1_1_gpio41>; -+ status = "okay"; -+}; -+ -+/* EMMC2 is used to drive the EMMC card */ -+&emmc2 { -+ bus-width = <8>; -+ vqmmc-supply = <&sd_io_1v8_reg>; -+ vmmc-supply = <&sd_vcc_reg>; -+ broken-cd; -+ status = "okay"; -+}; -+ -+&genet { -+ phy-handle = <&phy1>; -+ phy-mode = "rgmii-rxid"; -+ status = "okay"; -+}; -+ -+&genet_mdio { -+ phy1: ethernet-phy@0 { -+ /* No PHY interrupt */ -+ reg = <0x0>; -+ }; -+}; -+ -+&pcie0 { -+ pci@0,0 { -+ device_type = "pci"; -+ #address-cells = <3>; -+ #size-cells = <2>; -+ ranges; -+ -+ reg = <0 0 0 0 0>; -+ }; -+}; -+ -+/* uart0 communicates with the BT module */ -+&uart0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&uart0_ctsrts_gpio30 &uart0_gpio32>; -+ uart-has-rtscts; -+}; -+ -+/* uart1 is mapped to the pin header */ -+&uart1 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&uart1_gpio14>; -+ status = "okay"; -+}; -+ -+&vc4 { -+ status = "okay"; -+}; -+ -+&vec { -+ status = "disabled"; -+}; -+ -+&wifi_pwrseq { -+ reset-gpios = <&expgpio 1 GPIO_ACTIVE_LOW>; -+}; -+ -+// ============================================= -+// Downstream rpi- changes -+ -+#include "bcm271x-rpi-bt.dtsi" -+ -+/ { -+ soc { -+ /delete-node/ pixelvalve@7e807000; -+ /delete-node/ hdmi@7e902000; -+ }; -+}; -+ -+#include "bcm2711-rpi-ds.dtsi" -+#include "bcm283x-rpi-csi0-2lane.dtsi" -+#include "bcm283x-rpi-csi1-4lane.dtsi" -+#include "bcm283x-rpi-i2c0mux_0_44.dtsi" -+ -+/ { -+ /delete-node/ wifi-pwrseq; -+}; -+ -+&mmcnr { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&sdio_pins>; -+ bus-width = <4>; -+ status = "okay"; -+}; -+ -+&uart0 { -+ pinctrl-0 = <&uart0_pins &bt_pins>; -+ status = "okay"; -+}; -+ -+&uart1 { -+ pinctrl-0 = <&uart1_pins>; -+}; -+ -+&spi0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&spi0_pins &spi0_cs_pins>; -+ cs-gpios = <&gpio 8 1>, <&gpio 7 1>; -+ -+ spidev0: spidev@0{ -+ compatible = "spidev"; -+ reg = <0>; /* CE0 */ -+ #address-cells = <1>; -+ #size-cells = <0>; -+ spi-max-frequency = <125000000>; -+ }; -+ -+ spidev1: spidev@1{ -+ compatible = "spidev"; -+ reg = <1>; /* CE1 */ -+ #address-cells = <1>; -+ #size-cells = <0>; -+ spi-max-frequency = <125000000>; -+ }; -+}; -+ -+&gpio { -+ gpio-line-names = "ID_SDA", -+ "ID_SCL", -+ "GPIO2", -+ "GPIO3", -+ "GPIO4", -+ "GPIO5", -+ "GPIO6", -+ "GPIO7", -+ "GPIO8", -+ "GPIO9", -+ "GPIO10", -+ "GPIO11", -+ "GPIO12", -+ "GPIO13", -+ "GPIO14", -+ "GPIO15", -+ "GPIO16", -+ "GPIO17", -+ "GPIO18", -+ "GPIO19", -+ "GPIO20", -+ "GPIO21", -+ "GPIO22", -+ "GPIO23", -+ "GPIO24", -+ "GPIO25", -+ "GPIO26", -+ "GPIO27", -+ "RGMII_MDIO", -+ "RGMIO_MDC", -+ /* Used by BT module */ -+ "CTS0", -+ "RTS0", -+ "TXD0", -+ "RXD0", -+ /* Used by Wifi */ -+ "SD1_CLK", -+ "SD1_CMD", -+ "SD1_DATA0", -+ "SD1_DATA1", -+ "SD1_DATA2", -+ "SD1_DATA3", -+ /* Shared with SPI flash */ -+ "PWM0_MISO", -+ "PWM1_MOSI", -+ "STATUS_LED_G_CLK", -+ "SPIFLASH_CE_N", -+ "SDA0", -+ "SCL0", -+ "RGMII_RXCLK", -+ "RGMII_RXCTL", -+ "RGMII_RXD0", -+ "RGMII_RXD1", -+ "RGMII_RXD2", -+ "RGMII_RXD3", -+ "RGMII_TXCLK", -+ "RGMII_TXCTL", -+ "RGMII_TXD0", -+ "RGMII_TXD1", -+ "RGMII_TXD2", -+ "RGMII_TXD3"; -+ -+ bt_pins: bt_pins { -+ brcm,pins = "-"; // non-empty to keep btuart happy, //4 = 0 -+ // to fool pinctrl -+ brcm,function = <0>; -+ brcm,pull = <2>; -+ }; -+ -+ uart0_pins: uart0_pins { -+ brcm,pins = <32 33>; -+ brcm,function = ; -+ brcm,pull = <0 2>; -+ }; -+ -+ uart1_pins: uart1_pins { -+ brcm,pins; -+ brcm,function; -+ brcm,pull; -+ }; -+ -+ uart1_bt_pins: uart1_bt_pins { -+ brcm,pins = <32 33 30 31>; -+ brcm,function = ; /* alt5=UART1 */ -+ brcm,pull = <0 2 2 0>; -+ }; -+}; -+ -+&i2c0if { -+ clock-frequency = <100000>; -+}; -+ -+&i2c1 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&i2c1_pins>; -+ clock-frequency = <100000>; -+}; -+ -+&i2s { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&i2s_pins>; -+}; -+ -+// ============================================= -+// Board specific stuff here -+ -+&pcie0 { -+ brcm,enable-l1ss; -+}; -+ -+&sdhost { -+ status = "disabled"; -+}; -+ -+&phy1 { -+ led-modes = <0x00 0x08>; /* link/activity link */ -+}; -+ -+&gpio { -+ audio_pins: audio_pins { -+ brcm,pins = <>; -+ brcm,function = <>; -+ }; -+}; -+ -+&led_act { -+ default-state = "off"; -+ linux,default-trigger = "mmc0"; -+}; -+ -+&led_pwr { -+ default-state = "off"; -+}; -+ -+&pwm1 { -+ status = "disabled"; -+}; -+ -+&vchiq { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&audio_pins>; -+}; -+ -+cam0_reg: &cam1_reg { -+ gpio = <&expgpio 5 GPIO_ACTIVE_HIGH>; -+}; -+ -+i2c_csi_dsi0: &i2c0 { -+}; -+ -+/ { -+ __overrides__ { -+ audio = <&chosen>,"bootargs{on='snd_bcm2835.enable_hdmi=1',off='snd_bcm2835.enable_hdmi=0'}"; -+ -+ act_led_gpio = <&led_act>,"gpios:4"; -+ act_led_activelow = <&led_act>,"gpios:8"; -+ act_led_trigger = <&led_act>,"linux,default-trigger"; -+ -+ pwr_led_gpio = <&led_pwr>,"gpios:4"; -+ pwr_led_activelow = <&led_pwr>,"gpios:8"; -+ pwr_led_trigger = <&led_pwr>,"linux,default-trigger"; -+ -+ eth_led0 = <&phy1>,"led-modes:0"; -+ eth_led1 = <&phy1>,"led-modes:4"; -+ -+ ant1 = <&ant1>,"output-high?=on", -+ <&ant1>, "output-low?=off", -+ <&ant2>, "output-high?=off", -+ <&ant2>, "output-low?=on"; -+ ant2 = <&ant1>,"output-high?=off", -+ <&ant1>, "output-low?=on", -+ <&ant2>, "output-high?=on", -+ <&ant2>, "output-low?=off"; -+ noant = <&ant1>,"output-high?=off", -+ <&ant1>, "output-low?=on", -+ <&ant2>, "output-high?=off", -+ <&ant2>, "output-low?=on"; -+ -+ pcie_tperst_clk_ms = <&pcie0>,"brcm,tperst-clk-ms:0"; -+ }; -+}; -diff --git a/arch/arm/boot/dts/broadcom/bcm2711-rpi-cm4s.dts b/arch/arm/boot/dts/broadcom/bcm2711-rpi-cm4s.dts -new file mode 100644 -index 000000000000..badf2a2fc3e9 ---- /dev/null -+++ b/arch/arm/boot/dts/broadcom/bcm2711-rpi-cm4s.dts -@@ -0,0 +1,293 @@ -+// SPDX-License-Identifier: GPL-2.0 -+/dts-v1/; -+#define BCM2711 -+#define i2c0 i2c0if -+#include "bcm2711.dtsi" -+#include "bcm2711-rpi.dtsi" -+/delete-node/&i2c0mux; -+#include "bcm283x-rpi-led-deprecated.dtsi" -+#undef i2c0 -+#include "bcm270x.dtsi" -+#define i2c0 i2c0mux -+#undef i2c0 -+ -+/ { -+ compatible = "raspberrypi,4-compute-module-s", "brcm,bcm2711"; -+ model = "Raspberry Pi Compute Module 4S"; -+}; -+ -+&ddc0 { -+ status = "okay"; -+}; -+ -+&gpio { -+ /* -+ * Parts taken from rpi_SCH_4b_4p0_reduced.pdf and -+ * the official GPU firmware DT blob. -+ * -+ * Legend: -+ * "FOO" = GPIO line named "FOO" on the schematic -+ * "FOO_N" = GPIO line named "FOO" on schematic, active low -+ */ -+ gpio-line-names = "ID_SDA", -+ "ID_SCL", -+ "GPIO2", -+ "GPIO3", -+ "GPIO4", -+ "GPIO5", -+ "GPIO6", -+ "GPIO7", -+ "GPIO8", -+ "GPIO9", -+ "GPIO10", -+ "GPIO11", -+ "GPIO12", -+ "GPIO13", -+ "GPIO14", -+ "GPIO15", -+ "GPIO16", -+ "GPIO17", -+ "GPIO18", -+ "GPIO19", -+ "GPIO20", -+ "GPIO21", -+ "GPIO22", -+ "GPIO23", -+ "GPIO24", -+ "GPIO25", -+ "GPIO26", -+ "GPIO27", -+ "GPIO28", -+ "GPIO29", -+ "GPIO30", -+ "GPIO31", -+ "GPIO32", -+ "GPIO33", -+ "GPIO34", -+ "GPIO35", -+ "GPIO36", -+ "GPIO37", -+ "GPIO38", -+ "GPIO39", -+ "PWM0_MISO", -+ "PWM1_MOSI", -+ "GPIO42", -+ "GPIO43", -+ "GPIO44", -+ "GPIO45"; -+}; -+ -+&hdmi0 { -+ status = "okay"; -+}; -+ -+&led_act { -+ gpios = <&virtgpio 0 GPIO_ACTIVE_HIGH>; -+}; -+ -+&pixelvalve0 { -+ status = "okay"; -+}; -+ -+&pixelvalve1 { -+ status = "okay"; -+}; -+ -+&pixelvalve2 { -+ status = "okay"; -+}; -+ -+&pixelvalve4 { -+ status = "okay"; -+}; -+ -+&pwm1 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pwm1_0_gpio40 &pwm1_1_gpio41>; -+ status = "okay"; -+}; -+ -+/* EMMC2 is used to drive the EMMC card */ -+&emmc2 { -+ bus-width = <8>; -+ broken-cd; -+ status = "okay"; -+}; -+ -+&pcie0 { -+ status = "disabled"; -+}; -+ -+&vchiq { -+ interrupts = ; -+}; -+ -+&vc4 { -+ status = "okay"; -+}; -+ -+&vec { -+ status = "disabled"; -+}; -+ -+// ============================================= -+// Downstream rpi- changes -+ -+#include "bcm2711-rpi-ds.dtsi" -+ -+/ { -+ soc { -+ /delete-node/ pixelvalve@7e807000; -+ /delete-node/ hdmi@7e902000; -+ }; -+}; -+ -+#include "bcm283x-rpi-csi0-2lane.dtsi" -+#include "bcm283x-rpi-csi1-4lane.dtsi" -+#include "bcm283x-rpi-i2c0mux_0_28.dtsi" -+ -+/ { -+ chosen { -+ bootargs = "coherent_pool=1M snd_bcm2835.enable_headphones=0 cgroup_disable=memory numa_policy=interleave"; -+ }; -+ -+ aliases { -+ serial0 = &uart0; -+ serial1 = &uart1; -+ /delete-property/ i2c20; -+ /delete-property/ i2c21; -+ }; -+ -+ /delete-node/ wifi-pwrseq; -+}; -+ -+&firmware { -+ virtgpio: virtgpio { -+ compatible = "brcm,bcm2835-virtgpio"; -+ gpio-controller; -+ #gpio-cells = <2>; -+ status = "okay"; -+ }; -+}; -+ -+&uart0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&uart0_pins>; -+ status = "okay"; -+}; -+ -+&spi0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&spi0_pins &spi0_cs_pins>; -+ cs-gpios = <&gpio 8 1>, <&gpio 7 1>; -+ -+ spidev0: spidev@0{ -+ compatible = "spidev"; -+ reg = <0>; /* CE0 */ -+ #address-cells = <1>; -+ #size-cells = <0>; -+ spi-max-frequency = <125000000>; -+ }; -+ -+ spidev1: spidev@1{ -+ compatible = "spidev"; -+ reg = <1>; /* CE1 */ -+ #address-cells = <1>; -+ #size-cells = <0>; -+ spi-max-frequency = <125000000>; -+ }; -+}; -+ -+&gpio { -+ uart0_pins: uart0_pins { -+ brcm,pins; -+ brcm,function; -+ brcm,pull; -+ }; -+}; -+ -+&i2c0if { -+ clock-frequency = <100000>; -+}; -+ -+&i2c1 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&i2c1_pins>; -+ clock-frequency = <100000>; -+}; -+ -+&i2s { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&i2s_pins>; -+}; -+ -+// ============================================= -+// Board specific stuff here -+ -+/* Enable USB in OTG-aware mode */ -+&usb { -+ compatible = "brcm,bcm2835-usb"; -+ dr_mode = "otg"; -+ g-np-tx-fifo-size = <32>; -+ g-rx-fifo-size = <558>; -+ g-tx-fifo-size = <512 512 512 512 512 256 256>; -+ status = "okay"; -+}; -+ -+&sdhost { -+ status = "disabled"; -+}; -+ -+&gpio { -+ audio_pins: audio_pins { -+ brcm,pins = <>; -+ brcm,function = <>; -+ }; -+}; -+ -+/* Permanently disable HDMI1 */ -+&hdmi1 { -+ compatible = "disabled"; -+}; -+ -+/* Permanently disable DDC1 */ -+&ddc1 { -+ compatible = "disabled"; -+}; -+ -+&led_act { -+ default-state = "off"; -+ linux,default-trigger = "mmc0"; -+}; -+ -+&pwm1 { -+ status = "disabled"; -+}; -+ -+&vchiq { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&audio_pins>; -+}; -+ -+&cam1_reg { -+ gpio = <&gpio 3 GPIO_ACTIVE_HIGH>; -+ status = "disabled"; -+}; -+ -+cam0_reg: &cam0_regulator { -+ gpio = <&gpio 31 GPIO_ACTIVE_HIGH>; -+ status = "disabled"; -+}; -+ -+i2c_csi_dsi0: &i2c0 { -+}; -+ -+/ { -+ __overrides__ { -+ audio = <&chosen>,"bootargs{on='snd_bcm2835.enable_hdmi=1',off='snd_bcm2835.enable_hdmi=0'}"; -+ -+ act_led_gpio = <&led_act>,"gpios:4"; -+ act_led_activelow = <&led_act>,"gpios:8"; -+ act_led_trigger = <&led_act>,"linux,default-trigger"; -+ }; -+}; -diff --git a/arch/arm/boot/dts/broadcom/bcm2711-rpi-ds.dtsi b/arch/arm/boot/dts/broadcom/bcm2711-rpi-ds.dtsi -new file mode 100644 -index 000000000000..fd70dea32e3a ---- /dev/null -+++ b/arch/arm/boot/dts/broadcom/bcm2711-rpi-ds.dtsi -@@ -0,0 +1,562 @@ -+// SPDX-License-Identifier: GPL-2.0 -+#include "bcm270x-rpi.dtsi" -+ -+/ { -+ chosen { -+ bootargs = "coherent_pool=1M 8250.nr_uarts=1 snd_bcm2835.enable_headphones=0 cgroup_disable=memory numa_policy=interleave"; -+ }; -+ -+ __overrides__ { -+ arm_freq; -+ eee = <&chosen>,"bootargs{on='',off='genet.eee=N'}"; -+ hdmi = <&hdmi0>,"status", -+ <&hdmi1>,"status"; -+ nvmem_cust_rw = <&nvmem_cust>,"rw?"; -+ nvmem_priv_rw = <&nvmem_priv>,"rw?"; -+ pcie = <&pcie0>,"status"; -+ sd = <&emmc2>,"status"; -+ -+ sd_poll_once = <&emmc2>, "non-removable?"; -+ spi_dma4 = <&spi0>, "dmas:0=", <&dma40>, -+ <&spi0>, "dmas:8=", <&dma40>; -+ i2s_dma4 = <&i2s>, "dmas:0=", <&dma40>, -+ <&i2s>, "dmas:8=", <&dma40>; -+ }; -+ -+ scb: scb { -+ /* Add a label */ -+ }; -+ -+ soc: soc { -+ /* Add a label */ -+ }; -+ -+ chosen { -+ stdout-path = "serial0:115200n8"; -+ }; -+ -+ aliases { -+ uart2 = &uart2; -+ uart3 = &uart3; -+ uart4 = &uart4; -+ uart5 = &uart5; -+ serial0 = &uart1; -+ serial1 = &uart0; -+ serial2 = &uart2; -+ serial3 = &uart3; -+ serial4 = &uart4; -+ serial5 = &uart5; -+ mmc0 = &emmc2; -+ mmc1 = &mmcnr; -+ mmc2 = &sdhost; -+ i2c3 = &i2c3; -+ i2c4 = &i2c4; -+ i2c5 = &i2c5; -+ i2c6 = &i2c6; -+ i2c20 = &ddc0; -+ i2c21 = &ddc1; -+ spi3 = &spi3; -+ spi4 = &spi4; -+ spi5 = &spi5; -+ spi6 = &spi6; -+ /delete-property/ intc; -+ }; -+ -+ /* -+ * Add a node with a dma-ranges value that exists only to be found -+ * by of_dma_get_max_cpu_address, and hence limit the DMA zone. -+ */ -+ zone_dma { -+ #address-cells = <1>; -+ #size-cells = <1>; -+ dma-ranges = <0x0 0x0 0x0 0x40000000>; -+ }; -+}; -+ -+&vc4 { -+ raspberrypi,firmware = <&firmware>; -+}; -+ -+&cma { -+ /* Limit cma to the lower 768MB to allow room for HIGHMEM on 32-bit */ -+ alloc-ranges = <0x0 0x00000000 0x30000000>; -+}; -+ -+&soc { -+ /* Add the physical <-> DMA mapping for the I/O space */ -+ dma-ranges = <0xc0000000 0x0 0x00000000 0x40000000>, -+ <0x7c000000 0x0 0xfc000000 0x03800000>; -+ nvmem { -+ compatible = "simple-bus"; -+ #address-cells = <1>; -+ #size-cells = <1>; -+ -+ nvmem_otp: nvmem_otp { -+ compatible = "raspberrypi,rpi-otp"; -+ firmware = <&firmware>; -+ reg = <0 166>; -+ status = "okay"; -+ }; -+ -+ nvmem_cust: nvmem_cust { -+ compatible = "raspberrypi,rpi-otp"; -+ firmware = <&firmware>; -+ reg = <1 8>; -+ status = "okay"; -+ }; -+ -+ nvmem_priv: nvmem_priv { -+ compatible = "raspberrypi,rpi-otp"; -+ firmware = <&firmware>; -+ reg = <3 8>; -+ status = "okay"; -+ }; -+ }; -+}; -+ -+&scb { -+ #size-cells = <2>; -+ -+ ranges = <0x0 0x7c000000 0x0 0xfc000000 0x0 0x03800000>, -+ <0x0 0x40000000 0x0 0xff800000 0x0 0x00800000>, -+ <0x6 0x00000000 0x6 0x00000000 0x0 0x40000000>, -+ <0x0 0x00000000 0x0 0x00000000 0x0 0xfc000000>; -+ dma-ranges = <0x4 0x7c000000 0x0 0xfc000000 0x0 0x03800000>, -+ <0x0 0x00000000 0x0 0x00000000 0x4 0x00000000>; -+ -+ dma40: dma@7e007b00 { -+ compatible = "brcm,bcm2711-dma"; -+ reg = <0x0 0x7e007b00 0x0 0x400>; -+ interrupts = -+ , /* dma4 11 */ -+ , /* dma4 12 */ -+ , /* dma4 13 */ -+ ; /* dma4 14 */ -+ interrupt-names = "dma11", -+ "dma12", -+ "dma13", -+ "dma14"; -+ #dma-cells = <1>; -+ brcm,dma-channel-mask = <0x7800>; -+ }; -+ -+ xhci: xhci@7e9c0000 { -+ compatible = "generic-xhci"; -+ status = "disabled"; -+ reg = <0x0 0x7e9c0000 0x0 0x100000>; -+ interrupts = ; -+ power-domains = <&power RPI_POWER_DOMAIN_USB>; -+ }; -+ -+ codec@7eb10000 { -+ compatible = "raspberrypi,rpivid-vid-decoder"; -+ reg = <0x0 0x7eb10000 0x0 0x1000>, /* INTC */ -+ <0x0 0x7eb00000 0x0 0x10000>; /* HEVC */ -+ reg-names = "intc", -+ "hevc"; -+ interrupts = ; -+ -+ clocks = <&firmware_clocks 11>; -+ clock-names = "hevc"; -+ }; -+}; -+ -+&pcie0 { -+ reg = <0x0 0x7d500000 0x0 0x9310>; -+ ranges = <0x02000000 0x0 0xc0000000 0x6 0x00000000 -+ 0x0 0x40000000>; -+}; -+ -+&genet { -+ reg = <0x0 0x7d580000 0x0 0x10000>; -+}; -+ -+&dma40 { -+ /* The VPU firmware uses DMA channel 11 for VCHIQ */ -+ brcm,dma-channel-mask = <0x7000>; -+}; -+ -+&vchiq { -+ compatible = "brcm,bcm2711-vchiq"; -+}; -+ -+&firmwarekms { -+ compatible = "raspberrypi,rpi-firmware-kms-2711"; -+ interrupts = ; -+}; -+ -+&smi { -+ interrupts = ; -+}; -+ -+&mmc { -+ interrupts = ; -+}; -+ -+&mmcnr { -+ interrupts = ; -+}; -+ -+&csi0 { -+ interrupts = ; -+}; -+ -+&csi1 { -+ interrupts = ; -+}; -+ -+&random { -+ compatible = "brcm,bcm2711-rng200"; -+ status = "okay"; -+}; -+ -+&usb { -+ /* Enable the FIQ support */ -+ reg = <0x7e980000 0x10000>, -+ <0x7e00b200 0x200>; -+ interrupts = , -+ ; -+ status = "disabled"; -+}; -+ -+&gpio { -+ interrupts = , -+ ; -+ -+ spi0_pins: spi0_pins { -+ brcm,pins = <9 10 11>; -+ brcm,function = ; -+ }; -+ -+ spi0_cs_pins: spi0_cs_pins { -+ brcm,pins = <8 7>; -+ brcm,function = ; -+ }; -+ -+ spi3_pins: spi3_pins { -+ brcm,pins = <1 2 3>; -+ brcm,function = ; -+ }; -+ -+ spi3_cs_pins: spi3_cs_pins { -+ brcm,pins = <0 24>; -+ brcm,function = ; -+ }; -+ -+ spi4_pins: spi4_pins { -+ brcm,pins = <5 6 7>; -+ brcm,function = ; -+ }; -+ -+ spi4_cs_pins: spi4_cs_pins { -+ brcm,pins = <4 25>; -+ brcm,function = ; -+ }; -+ -+ spi5_pins: spi5_pins { -+ brcm,pins = <13 14 15>; -+ brcm,function = ; -+ }; -+ -+ spi5_cs_pins: spi5_cs_pins { -+ brcm,pins = <12 26>; -+ brcm,function = ; -+ }; -+ -+ spi6_pins: spi6_pins { -+ brcm,pins = <19 20 21>; -+ brcm,function = ; -+ }; -+ -+ spi6_cs_pins: spi6_cs_pins { -+ brcm,pins = <18 27>; -+ brcm,function = ; -+ }; -+ -+ i2c0_pins: i2c0 { -+ brcm,pins = <0 1>; -+ brcm,function = ; -+ brcm,pull = ; -+ }; -+ -+ i2c1_pins: i2c1 { -+ brcm,pins = <2 3>; -+ brcm,function = ; -+ brcm,pull = ; -+ }; -+ -+ i2c3_pins: i2c3 { -+ brcm,pins = <4 5>; -+ brcm,function = ; -+ brcm,pull = ; -+ }; -+ -+ i2c4_pins: i2c4 { -+ brcm,pins = <8 9>; -+ brcm,function = ; -+ brcm,pull = ; -+ }; -+ -+ i2c5_pins: i2c5 { -+ brcm,pins = <12 13>; -+ brcm,function = ; -+ brcm,pull = ; -+ }; -+ -+ i2c6_pins: i2c6 { -+ brcm,pins = <22 23>; -+ brcm,function = ; -+ brcm,pull = ; -+ }; -+ -+ i2s_pins: i2s { -+ brcm,pins = <18 19 20 21>; -+ brcm,function = ; -+ }; -+ -+ sdio_pins: sdio_pins { -+ brcm,pins = <34 35 36 37 38 39>; -+ brcm,function = ; // alt3 = SD1 -+ brcm,pull = <0 2 2 2 2 2>; -+ }; -+ -+ uart2_pins: uart2_pins { -+ brcm,pins = <0 1>; -+ brcm,function = ; -+ brcm,pull = <0 2>; -+ }; -+ -+ uart3_pins: uart3_pins { -+ brcm,pins = <4 5>; -+ brcm,function = ; -+ brcm,pull = <0 2>; -+ }; -+ -+ uart4_pins: uart4_pins { -+ brcm,pins = <8 9>; -+ brcm,function = ; -+ brcm,pull = <0 2>; -+ }; -+ -+ uart5_pins: uart5_pins { -+ brcm,pins = <12 13>; -+ brcm,function = ; -+ brcm,pull = <0 2>; -+ }; -+}; -+ -+&emmc2 { -+ mmc-ddr-3_3v; -+}; -+ -+&vc4 { -+ status = "disabled"; -+}; -+ -+&pixelvalve0 { -+ status = "disabled"; -+}; -+ -+&pixelvalve1 { -+ status = "disabled"; -+}; -+ -+&pixelvalve2 { -+ status = "disabled"; -+}; -+ -+&pixelvalve3 { -+ status = "disabled"; -+}; -+ -+&pixelvalve4 { -+ status = "disabled"; -+}; -+ -+&hdmi0 { -+ reg = <0x7ef00700 0x300>, -+ <0x7ef00300 0x200>, -+ <0x7ef00f00 0x80>, -+ <0x7ef00f80 0x80>, -+ <0x7ef01b00 0x200>, -+ <0x7ef01f00 0x400>, -+ <0x7ef00200 0x80>, -+ <0x7ef04300 0x100>, -+ <0x7ef20000 0x100>, -+ <0x7ef00100 0x30>; -+ reg-names = "hdmi", -+ "dvp", -+ "phy", -+ "rm", -+ "packet", -+ "metadata", -+ "csc", -+ "cec", -+ "hd", -+ "intr2"; -+ clocks = <&firmware_clocks 13>, -+ <&firmware_clocks 14>, -+ <&dvp 0>, -+ <&clk_27MHz>; -+ dmas = <&dma40 (10|(1<<30)|(1<<24)|(10<<16)|(15<<20))>; -+ status = "disabled"; -+}; -+ -+&ddc0 { -+ status = "disabled"; -+}; -+ -+&hdmi1 { -+ reg = <0x7ef05700 0x300>, -+ <0x7ef05300 0x200>, -+ <0x7ef05f00 0x80>, -+ <0x7ef05f80 0x80>, -+ <0x7ef06b00 0x200>, -+ <0x7ef06f00 0x400>, -+ <0x7ef00280 0x80>, -+ <0x7ef09300 0x100>, -+ <0x7ef20000 0x100>, -+ <0x7ef00100 0x30>; -+ reg-names = "hdmi", -+ "dvp", -+ "phy", -+ "rm", -+ "packet", -+ "metadata", -+ "csc", -+ "cec", -+ "hd", -+ "intr2"; -+ clocks = <&firmware_clocks 13>, -+ <&firmware_clocks 14>, -+ <&dvp 1>, -+ <&clk_27MHz>; -+ dmas = <&dma40 (17|(1<<30)|(1<<24)|(10<<16)|(15<<20))>; -+ status = "disabled"; -+}; -+ -+&ddc1 { -+ status = "disabled"; -+}; -+ -+&dvp { -+ status = "disabled"; -+}; -+ -+&vec { -+ clocks = <&firmware_clocks 15>; -+}; -+ -+&aon_intr { -+ interrupts = ; -+ status = "disabled"; -+}; -+ -+&system_timer { -+ status = "disabled"; -+}; -+ -+&i2c0 { -+ /delete-property/ compatible; -+ /delete-property/ interrupts; -+}; -+ -+&i2c0if { -+ compatible = "brcm,bcm2711-i2c", "brcm,bcm2835-i2c"; -+ interrupts = ; -+}; -+ -+i2c_arm: &i2c1 {}; -+i2c_vc: &i2c0 {}; -+ -+&i2c3 { -+ pinctrl-0 = <&i2c3_pins>; -+ pinctrl-names = "default"; -+}; -+ -+&i2c4 { -+ pinctrl-0 = <&i2c4_pins>; -+ pinctrl-names = "default"; -+}; -+ -+&i2c5 { -+ pinctrl-0 = <&i2c5_pins>; -+ pinctrl-names = "default"; -+}; -+ -+&i2c6 { -+ pinctrl-0 = <&i2c6_pins>; -+ pinctrl-names = "default"; -+}; -+ -+&spi3 { -+ pinctrl-0 = <&spi3_pins &spi3_cs_pins>; -+ pinctrl-names = "default"; -+}; -+ -+&spi4 { -+ pinctrl-0 = <&spi4_pins &spi4_cs_pins>; -+ pinctrl-names = "default"; -+}; -+ -+&spi5 { -+ pinctrl-0 = <&spi5_pins &spi5_cs_pins>; -+ pinctrl-names = "default"; -+}; -+ -+&spi6 { -+ pinctrl-0 = <&spi6_pins &spi6_cs_pins>; -+ pinctrl-names = "default"; -+}; -+ -+&uart2 { -+ pinctrl-0 = <&uart2_pins>; -+ pinctrl-names = "default"; -+}; -+ -+&uart3 { -+ pinctrl-0 = <&uart3_pins>; -+ pinctrl-names = "default"; -+}; -+ -+&uart4 { -+ pinctrl-0 = <&uart4_pins>; -+ pinctrl-names = "default"; -+}; -+ -+&uart5 { -+ pinctrl-0 = <&uart5_pins>; -+ pinctrl-names = "default"; -+}; -+ -+&axiperf { -+ compatible = "brcm,bcm2711-axiperf"; -+}; -+ -+/delete-node/ &v3d; -+ -+/ { -+ v3dbus: v3dbus { -+ compatible = "simple-bus"; -+ #address-cells = <1>; -+ #size-cells = <2>; -+ ranges = <0x7c500000 0x0 0xfc500000 0x0 0x03300000>, -+ <0x40000000 0x0 0xff800000 0x0 0x00800000>; -+ dma-ranges = <0x00000000 0x0 0x00000000 0x4 0x00000000>; -+ -+ v3d: v3d@7ec04000 { -+ compatible = "brcm,2711-v3d"; -+ reg = -+ <0x7ec00000 0x0 0x4000>, -+ <0x7ec04000 0x0 0x4000>; -+ reg-names = "hub", "core0"; -+ -+ power-domains = <&pm BCM2835_POWER_DOMAIN_GRAFX_V3D>; -+ resets = <&pm BCM2835_RESET_V3D>; -+ clocks = <&firmware_clocks 5>; -+ clocks-names = "v3d"; -+ interrupts = ; -+ status = "disabled"; -+ }; -+ }; -+}; -diff --git a/arch/arm/boot/dts/broadcom/bcm2711-rpi.dtsi b/arch/arm/boot/dts/broadcom/bcm2711-rpi.dtsi -index c78ed064d166..da5f54e7dd24 100644 ---- a/arch/arm/boot/dts/broadcom/bcm2711-rpi.dtsi -+++ b/arch/arm/boot/dts/broadcom/bcm2711-rpi.dtsi -@@ -15,6 +15,7 @@ aliases { - ethernet0 = &genet; - pcie0 = &pcie0; - blconfig = &blconfig; -+ blpubkey = &blpubkey; - }; - - i2c0mux: i2c-mux0 { -@@ -91,6 +92,18 @@ blconfig: nvram@0 { - no-map; - status = "disabled"; - }; -+ /* -+ * RPi4 will copy the binary public key blob (if present) from the bootloader -+ * into memory for use by the OS. -+ */ -+ blpubkey: nvram@1 { -+ compatible = "raspberrypi,bootloader-public-key", "nvmem-rmem"; -+ #address-cells = <1>; -+ #size-cells = <1>; -+ reg = <0x0 0x0 0x0>; -+ no-map; -+ status = "disabled"; -+ }; - }; - - &v3d { -diff --git a/arch/arm/boot/dts/broadcom/bcm2711.dtsi b/arch/arm/boot/dts/broadcom/bcm2711.dtsi -index 93174b596373..f24b518772dd 100644 ---- a/arch/arm/boot/dts/broadcom/bcm2711.dtsi -+++ b/arch/arm/boot/dts/broadcom/bcm2711.dtsi -@@ -277,7 +277,7 @@ pwm1: pwm@7e20c800 { - reg = <0x7e20c800 0x28>; - clocks = <&clocks BCM2835_CLOCK_PWM>; - assigned-clocks = <&clocks BCM2835_CLOCK_PWM>; -- assigned-clock-rates = <10000000>; -+ assigned-clock-rates = <50000000>; - #pwm-cells = <3>; - status = "disabled"; - }; -diff --git a/arch/arm/boot/dts/broadcom/bcm271x-rpi-bt.dtsi b/arch/arm/boot/dts/broadcom/bcm271x-rpi-bt.dtsi -new file mode 100644 -index 000000000000..c77e280ccd16 ---- /dev/null -+++ b/arch/arm/boot/dts/broadcom/bcm271x-rpi-bt.dtsi -@@ -0,0 +1,42 @@ -+// SPDX-License-Identifier: GPL-2.0 -+ -+&uart0 { -+ bt: bluetooth { -+ compatible = "brcm,bcm43438-bt"; -+ max-speed = <3000000>; -+ shutdown-gpios = <&expgpio 0 GPIO_ACTIVE_HIGH>; -+ local-bd-address = [ 00 00 00 00 00 00 ]; -+ fallback-bd-address; // Don't override a valid address -+ status = "okay"; -+ }; -+}; -+ -+&uart1 { -+ minibt: bluetooth { -+ compatible = "brcm,bcm43438-bt"; -+ max-speed = <230400>; -+ shutdown-gpios = <&expgpio 0 GPIO_ACTIVE_HIGH>; -+ local-bd-address = [ 00 00 00 00 00 00 ]; -+ fallback-bd-address; // Don't override a valid address -+ status = "disabled"; -+ }; -+}; -+ -+/ { -+ chosen { -+ bootargs = "coherent_pool=1M 8250.nr_uarts=1 snd_bcm2835.enable_headphones=0 cgroup_disable=memory"; -+ }; -+ -+ aliases { -+ bluetooth = &bt; -+ }; -+ -+ __overrides__ { -+ bdaddr = <&bt>,"local-bd-address[", -+ <&bt>,"fallback-bd-address?=0", -+ <&minibt>,"local-bd-address[", -+ <&minibt>,"fallback-bd-address?=0"; -+ krnbt = <&bt>,"status"; -+ krnbt_baudrate = <&bt>,"max-speed:0", <&minibt>,"max-speed:0"; -+ }; -+}; -diff --git a/arch/arm/boot/dts/broadcom/bcm283x-rpi-csi0-2lane.dtsi b/arch/arm/boot/dts/broadcom/bcm283x-rpi-csi0-2lane.dtsi -new file mode 100644 -index 000000000000..6e4ce8622b47 ---- /dev/null -+++ b/arch/arm/boot/dts/broadcom/bcm283x-rpi-csi0-2lane.dtsi -@@ -0,0 +1,4 @@ -+// SPDX-License-Identifier: GPL-2.0-only -+&csi0 { -+ brcm,num-data-lanes = <2>; -+}; -diff --git a/arch/arm/boot/dts/broadcom/bcm283x-rpi-csi1-2lane.dtsi b/arch/arm/boot/dts/broadcom/bcm283x-rpi-csi1-2lane.dtsi -new file mode 100644 -index 000000000000..6938f4daacdc ---- /dev/null -+++ b/arch/arm/boot/dts/broadcom/bcm283x-rpi-csi1-2lane.dtsi -@@ -0,0 +1,4 @@ -+// SPDX-License-Identifier: GPL-2.0-only -+&csi1 { -+ brcm,num-data-lanes = <2>; -+}; -diff --git a/arch/arm/boot/dts/broadcom/bcm283x-rpi-csi1-4lane.dtsi b/arch/arm/boot/dts/broadcom/bcm283x-rpi-csi1-4lane.dtsi -new file mode 100644 -index 000000000000..b37037437bee ---- /dev/null -+++ b/arch/arm/boot/dts/broadcom/bcm283x-rpi-csi1-4lane.dtsi -@@ -0,0 +1,4 @@ -+// SPDX-License-Identifier: GPL-2.0-only -+&csi1 { -+ brcm,num-data-lanes = <4>; -+}; -diff --git a/arch/arm/boot/dts/broadcom/bcm283x-rpi-i2c0mux_0_28.dtsi b/arch/arm/boot/dts/broadcom/bcm283x-rpi-i2c0mux_0_28.dtsi -new file mode 100644 -index 000000000000..38f0074bce3f ---- /dev/null -+++ b/arch/arm/boot/dts/broadcom/bcm283x-rpi-i2c0mux_0_28.dtsi -@@ -0,0 +1,4 @@ -+&i2c0mux { -+ pinctrl-0 = <&i2c0_gpio0>; -+ pinctrl-1 = <&i2c0_gpio28>; -+}; -diff --git a/arch/arm/boot/dts/broadcom/bcm283x-rpi-i2c0mux_0_44.dtsi b/arch/arm/boot/dts/broadcom/bcm283x-rpi-i2c0mux_0_44.dtsi -new file mode 100644 -index 000000000000..119946d878db ---- /dev/null -+++ b/arch/arm/boot/dts/broadcom/bcm283x-rpi-i2c0mux_0_44.dtsi -@@ -0,0 +1,4 @@ -+&i2c0mux { -+ pinctrl-0 = <&i2c0_gpio0>; -+ pinctrl-1 = <&i2c0_gpio44>; -+}; -diff --git a/arch/arm/boot/dts/broadcom/bcm283x.dtsi b/arch/arm/boot/dts/broadcom/bcm283x.dtsi -index 69b0919f1324..562c4e9d08cc 100644 ---- a/arch/arm/boot/dts/broadcom/bcm283x.dtsi -+++ b/arch/arm/boot/dts/broadcom/bcm283x.dtsi -@@ -363,7 +363,7 @@ dsi0: dsi@7e209000 { - #size-cells = <0>; - #clock-cells = <1>; - -- clocks = <&clocks BCM2835_PLLA_DSI0>, -+ clocks = <&clocks BCM2835_PLLD_DSI0>, - <&clocks BCM2835_CLOCK_DSI0E>, - <&clocks BCM2835_CLOCK_DSI0P>; - clock-names = "phy", "escape", "pixel"; -@@ -415,7 +415,7 @@ pwm: pwm@7e20c000 { - reg = <0x7e20c000 0x28>; - clocks = <&clocks BCM2835_CLOCK_PWM>; - assigned-clocks = <&clocks BCM2835_CLOCK_PWM>; -- assigned-clock-rates = <10000000>; -+ assigned-clock-rates = <50000000>; - #pwm-cells = <3>; - status = "disabled"; - }; -@@ -502,6 +502,10 @@ usb: usb@7e980000 { - }; - - clocks { -+ compatible = "simple-bus"; -+ #address-cells = <1>; -+ #size-cells = <0>; -+ - /* The oscillator is the root of the clock tree. */ - clk_osc: clk-osc { - compatible = "fixed-clock"; -diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile -new file mode 100644 -index 000000000000..5e43c52116c2 ---- /dev/null -+++ b/arch/arm/boot/dts/overlays/Makefile -@@ -0,0 +1,349 @@ -+# Overlays for the Raspberry Pi platform -+ -+dtb-$(CONFIG_ARCH_BCM2835) += overlay_map.dtb hat_map.dtb README -+ -+dtbo-$(CONFIG_ARCH_BCM2835) += \ -+ act-led.dtbo \ -+ adafruit-st7735r.dtbo \ -+ adafruit18.dtbo \ -+ adau1977-adc.dtbo \ -+ adau7002-simple.dtbo \ -+ ads1015.dtbo \ -+ ads1115.dtbo \ -+ ads7846.dtbo \ -+ adv7282m.dtbo \ -+ adv728x-m.dtbo \ -+ akkordion-iqdacplus.dtbo \ -+ allo-boss-dac-pcm512x-audio.dtbo \ -+ allo-boss2-dac-audio.dtbo \ -+ allo-digione.dtbo \ -+ allo-katana-dac-audio.dtbo \ -+ allo-piano-dac-pcm512x-audio.dtbo \ -+ allo-piano-dac-plus-pcm512x-audio.dtbo \ -+ anyspi.dtbo \ -+ apds9960.dtbo \ -+ applepi-dac.dtbo \ -+ arducam-64mp.dtbo \ -+ arducam-pivariety.dtbo \ -+ at86rf233.dtbo \ -+ audioinjector-addons.dtbo \ -+ audioinjector-bare-i2s.dtbo \ -+ audioinjector-isolated-soundcard.dtbo \ -+ audioinjector-ultra.dtbo \ -+ audioinjector-wm8731-audio.dtbo \ -+ audiosense-pi.dtbo \ -+ audremap.dtbo \ -+ balena-fin.dtbo \ -+ bcm2712d0.dtbo \ -+ camera-mux-2port.dtbo \ -+ camera-mux-4port.dtbo \ -+ cap1106.dtbo \ -+ chipcap2.dtbo \ -+ chipdip-dac.dtbo \ -+ cirrus-wm5102.dtbo \ -+ cm-swap-i2c0.dtbo \ -+ cma.dtbo \ -+ crystalfontz-cfa050_pi_m.dtbo \ -+ cutiepi-panel.dtbo \ -+ dacberry400.dtbo \ -+ dht11.dtbo \ -+ dionaudio-kiwi.dtbo \ -+ dionaudio-loco.dtbo \ -+ dionaudio-loco-v2.dtbo \ -+ disable-bt.dtbo \ -+ disable-bt-pi5.dtbo \ -+ disable-emmc2.dtbo \ -+ disable-wifi.dtbo \ -+ disable-wifi-pi5.dtbo \ -+ dpi18.dtbo \ -+ dpi18cpadhi.dtbo \ -+ dpi24.dtbo \ -+ draws.dtbo \ -+ dwc-otg.dtbo \ -+ dwc2.dtbo \ -+ edt-ft5406.dtbo \ -+ enc28j60.dtbo \ -+ enc28j60-spi2.dtbo \ -+ exc3000.dtbo \ -+ fbtft.dtbo \ -+ fe-pi-audio.dtbo \ -+ fsm-demo.dtbo \ -+ gc9a01.dtbo \ -+ ghost-amp.dtbo \ -+ goodix.dtbo \ -+ googlevoicehat-soundcard.dtbo \ -+ gpio-charger.dtbo \ -+ gpio-fan.dtbo \ -+ gpio-hog.dtbo \ -+ gpio-ir.dtbo \ -+ gpio-ir-tx.dtbo \ -+ gpio-key.dtbo \ -+ gpio-led.dtbo \ -+ gpio-no-bank0-irq.dtbo \ -+ gpio-no-irq.dtbo \ -+ gpio-poweroff.dtbo \ -+ gpio-shutdown.dtbo \ -+ hd44780-i2c-lcd.dtbo \ -+ hd44780-lcd.dtbo \ -+ hdmi-backlight-hwhack-gpio.dtbo \ -+ hifiberry-adc.dtbo \ -+ hifiberry-adc8x.dtbo \ -+ hifiberry-amp.dtbo \ -+ hifiberry-amp100.dtbo \ -+ hifiberry-amp3.dtbo \ -+ hifiberry-amp4pro.dtbo \ -+ hifiberry-dac.dtbo \ -+ hifiberry-dac8x.dtbo \ -+ hifiberry-dacplus.dtbo \ -+ hifiberry-dacplus-pro.dtbo \ -+ hifiberry-dacplus-std.dtbo \ -+ hifiberry-dacplusadc.dtbo \ -+ hifiberry-dacplusadcpro.dtbo \ -+ hifiberry-dacplusdsp.dtbo \ -+ hifiberry-dacplushd.dtbo \ -+ hifiberry-digi.dtbo \ -+ hifiberry-digi-pro.dtbo \ -+ highperi.dtbo \ -+ hy28a.dtbo \ -+ hy28b.dtbo \ -+ hy28b-2017.dtbo \ -+ i-sabre-q2m.dtbo \ -+ i2c-bcm2708.dtbo \ -+ i2c-fan.dtbo \ -+ i2c-gpio.dtbo \ -+ i2c-mux.dtbo \ -+ i2c-pwm-pca9685a.dtbo \ -+ i2c-rtc.dtbo \ -+ i2c-rtc-gpio.dtbo \ -+ i2c-sensor.dtbo \ -+ i2c0.dtbo \ -+ i2c0-pi5.dtbo \ -+ i2c1.dtbo \ -+ i2c1-pi5.dtbo \ -+ i2c2-pi5.dtbo \ -+ i2c3.dtbo \ -+ i2c3-pi5.dtbo \ -+ i2c4.dtbo \ -+ i2c5.dtbo \ -+ i2c6.dtbo \ -+ i2s-dac.dtbo \ -+ i2s-gpio28-31.dtbo \ -+ i2s-master-dac.dtbo \ -+ ilitek251x.dtbo \ -+ imx219.dtbo \ -+ imx258.dtbo \ -+ imx290.dtbo \ -+ imx296.dtbo \ -+ imx327.dtbo \ -+ imx378.dtbo \ -+ imx462.dtbo \ -+ imx477.dtbo \ -+ imx500.dtbo \ -+ imx500-pi5.dtbo \ -+ imx519.dtbo \ -+ imx708.dtbo \ -+ interludeaudio-analog.dtbo \ -+ interludeaudio-digital.dtbo \ -+ iqaudio-codec.dtbo \ -+ iqaudio-dac.dtbo \ -+ iqaudio-dacplus.dtbo \ -+ iqaudio-digi-wm8804-audio.dtbo \ -+ iqs550.dtbo \ -+ irs1125.dtbo \ -+ jedec-spi-nor.dtbo \ -+ justboom-both.dtbo \ -+ justboom-dac.dtbo \ -+ justboom-digi.dtbo \ -+ ltc294x.dtbo \ -+ max98357a.dtbo \ -+ maxtherm.dtbo \ -+ mbed-dac.dtbo \ -+ mcp23017.dtbo \ -+ mcp23s17.dtbo \ -+ mcp2515.dtbo \ -+ mcp2515-can0.dtbo \ -+ mcp2515-can1.dtbo \ -+ mcp251xfd.dtbo \ -+ mcp3008.dtbo \ -+ mcp3202.dtbo \ -+ mcp342x.dtbo \ -+ media-center.dtbo \ -+ merus-amp.dtbo \ -+ midi-uart0.dtbo \ -+ midi-uart0-pi5.dtbo \ -+ midi-uart1.dtbo \ -+ midi-uart1-pi5.dtbo \ -+ midi-uart2.dtbo \ -+ midi-uart2-pi5.dtbo \ -+ midi-uart3.dtbo \ -+ midi-uart3-pi5.dtbo \ -+ midi-uart4.dtbo \ -+ midi-uart4-pi5.dtbo \ -+ midi-uart5.dtbo \ -+ minipitft13.dtbo \ -+ miniuart-bt.dtbo \ -+ mipi-dbi-spi.dtbo \ -+ mlx90640.dtbo \ -+ mmc.dtbo \ -+ mz61581.dtbo \ -+ ov2311.dtbo \ -+ ov5647.dtbo \ -+ ov64a40.dtbo \ -+ ov7251.dtbo \ -+ ov9281.dtbo \ -+ papirus.dtbo \ -+ pca953x.dtbo \ -+ pcf857x.dtbo \ -+ pcie-32bit-dma.dtbo \ -+ pcie-32bit-dma-pi5.dtbo \ -+ pciex1-compat-pi5.dtbo \ -+ pibell.dtbo \ -+ pifacedigital.dtbo \ -+ pifi-40.dtbo \ -+ pifi-dac-hd.dtbo \ -+ pifi-dac-zero.dtbo \ -+ pifi-mini-210.dtbo \ -+ piglow.dtbo \ -+ pineboards-hat-ai.dtbo \ -+ pineboards-hatdrive-poe-plus.dtbo \ -+ piscreen.dtbo \ -+ piscreen2r.dtbo \ -+ pisound.dtbo \ -+ pisound-pi5.dtbo \ -+ pitft22.dtbo \ -+ pitft28-capacitive.dtbo \ -+ pitft28-resistive.dtbo \ -+ pitft35-resistive.dtbo \ -+ pps-gpio.dtbo \ -+ proto-codec.dtbo \ -+ pwm.dtbo \ -+ pwm-2chan.dtbo \ -+ pwm-gpio.dtbo \ -+ pwm-ir-tx.dtbo \ -+ pwm1.dtbo \ -+ qca7000.dtbo \ -+ qca7000-uart0.dtbo \ -+ ramoops.dtbo \ -+ ramoops-pi4.dtbo \ -+ rotary-encoder.dtbo \ -+ rpi-backlight.dtbo \ -+ rpi-codeczero.dtbo \ -+ rpi-dacplus.dtbo \ -+ rpi-dacpro.dtbo \ -+ rpi-digiampplus.dtbo \ -+ rpi-ft5406.dtbo \ -+ rpi-poe.dtbo \ -+ rpi-poe-plus.dtbo \ -+ rpi-sense.dtbo \ -+ rpi-sense-v2.dtbo \ -+ rpi-tv.dtbo \ -+ rra-digidac1-wm8741-audio.dtbo \ -+ sainsmart18.dtbo \ -+ sc16is750-i2c.dtbo \ -+ sc16is750-spi0.dtbo \ -+ sc16is752-i2c.dtbo \ -+ sc16is752-spi0.dtbo \ -+ sc16is752-spi1.dtbo \ -+ sdhost.dtbo \ -+ sdio.dtbo \ -+ sdio-pi5.dtbo \ -+ seeed-can-fd-hat-v1.dtbo \ -+ seeed-can-fd-hat-v2.dtbo \ -+ sh1106-spi.dtbo \ -+ si446x-spi0.dtbo \ -+ smi.dtbo \ -+ smi-dev.dtbo \ -+ smi-nand.dtbo \ -+ spi-gpio35-39.dtbo \ -+ spi-gpio40-45.dtbo \ -+ spi-rtc.dtbo \ -+ spi0-0cs.dtbo \ -+ spi0-1cs.dtbo \ -+ spi0-2cs.dtbo \ -+ spi1-1cs.dtbo \ -+ spi1-2cs.dtbo \ -+ spi1-3cs.dtbo \ -+ spi2-1cs.dtbo \ -+ spi2-1cs-pi5.dtbo \ -+ spi2-2cs.dtbo \ -+ spi2-2cs-pi5.dtbo \ -+ spi2-3cs.dtbo \ -+ spi3-1cs.dtbo \ -+ spi3-1cs-pi5.dtbo \ -+ spi3-2cs.dtbo \ -+ spi3-2cs-pi5.dtbo \ -+ spi4-1cs.dtbo \ -+ spi4-2cs.dtbo \ -+ spi5-1cs.dtbo \ -+ spi5-1cs-pi5.dtbo \ -+ spi5-2cs.dtbo \ -+ spi5-2cs-pi5.dtbo \ -+ spi6-1cs.dtbo \ -+ spi6-2cs.dtbo \ -+ ssd1306.dtbo \ -+ ssd1306-spi.dtbo \ -+ ssd1327-spi.dtbo \ -+ ssd1331-spi.dtbo \ -+ ssd1351-spi.dtbo \ -+ sunfounder-pipower3.dtbo \ -+ sunfounder-pironman5.dtbo \ -+ superaudioboard.dtbo \ -+ sx150x.dtbo \ -+ tc358743.dtbo \ -+ tc358743-audio.dtbo \ -+ tinylcd35.dtbo \ -+ tpm-slb9670.dtbo \ -+ tpm-slb9673.dtbo \ -+ uart0.dtbo \ -+ uart0-pi5.dtbo \ -+ uart1.dtbo \ -+ uart1-pi5.dtbo \ -+ uart2.dtbo \ -+ uart2-pi5.dtbo \ -+ uart3.dtbo \ -+ uart3-pi5.dtbo \ -+ uart4.dtbo \ -+ uart4-pi5.dtbo \ -+ uart5.dtbo \ -+ udrc.dtbo \ -+ ugreen-dabboard.dtbo \ -+ upstream.dtbo \ -+ upstream-pi4.dtbo \ -+ vc4-fkms-v3d.dtbo \ -+ vc4-fkms-v3d-pi4.dtbo \ -+ vc4-kms-dpi-generic.dtbo \ -+ vc4-kms-dpi-hyperpixel2r.dtbo \ -+ vc4-kms-dpi-hyperpixel4.dtbo \ -+ vc4-kms-dpi-hyperpixel4sq.dtbo \ -+ vc4-kms-dpi-panel.dtbo \ -+ vc4-kms-dsi-7inch.dtbo \ -+ vc4-kms-dsi-generic.dtbo \ -+ vc4-kms-dsi-ili9881-5inch.dtbo \ -+ vc4-kms-dsi-ili9881-7inch.dtbo \ -+ vc4-kms-dsi-lt070me05000.dtbo \ -+ vc4-kms-dsi-lt070me05000-v2.dtbo \ -+ vc4-kms-dsi-waveshare-800x480.dtbo \ -+ vc4-kms-dsi-waveshare-panel.dtbo \ -+ vc4-kms-kippah-7inch.dtbo \ -+ vc4-kms-v3d.dtbo \ -+ vc4-kms-v3d-pi4.dtbo \ -+ vc4-kms-v3d-pi5.dtbo \ -+ vc4-kms-vga666.dtbo \ -+ vga666.dtbo \ -+ vl805.dtbo \ -+ w1-gpio.dtbo \ -+ w1-gpio-pi5.dtbo \ -+ w1-gpio-pullup.dtbo \ -+ w1-gpio-pullup-pi5.dtbo \ -+ w5500.dtbo \ -+ watterott-display.dtbo \ -+ waveshare-can-fd-hat-mode-a.dtbo \ -+ waveshare-can-fd-hat-mode-b.dtbo \ -+ wittypi.dtbo \ -+ wm8960-soundcard.dtbo -+ -+targets += dtbs dtbs_install -+targets += $(dtbo-y) -+ -+always-y := $(dtbo-y) -+clean-files := *.dtbo -diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README -new file mode 100644 -index 000000000000..be091ab98206 ---- /dev/null -+++ b/arch/arm/boot/dts/overlays/README -@@ -0,0 +1,5558 @@ -+Introduction -+============ -+ -+This directory contains Device Tree overlays. Device Tree makes it possible -+to support many hardware configurations with a single kernel and without the -+need to explicitly load or blacklist kernel modules. Note that this isn't a -+"pure" Device Tree configuration (c.f. MACH_BCM2835) - some on-board devices -+are still configured by the board support code, but the intention is to -+eventually reach that goal. -+ -+On Raspberry Pi, Device Tree usage is controlled from /boot/config.txt. By -+default, the Raspberry Pi kernel boots with device tree enabled. You can -+completely disable DT usage (for now) by adding: -+ -+ device_tree= -+ -+to your config.txt, which should cause your Pi to revert to the old way of -+doing things after a reboot. -+ -+In /boot you will find a .dtb for each base platform. This describes the -+hardware that is part of the Raspberry Pi board. The loader (start.elf and its -+siblings) selects the .dtb file appropriate for the platform by name, and reads -+it into memory. At this point, all of the optional interfaces (i2c, i2s, spi) -+are disabled, but they can be enabled using Device Tree parameters: -+ -+ dtparam=i2c=on,i2s=on,spi=on -+ -+However, this shouldn't be necessary in many use cases because loading an -+overlay that requires one of those interfaces will cause it to be enabled -+automatically, and it is advisable to only enable interfaces if they are -+needed. -+ -+Configuring additional, optional hardware is done using Device Tree overlays -+(see below). -+ -+GPIO numbering uses the hardware pin numbering scheme (aka BCM scheme) and -+not the physical pin numbers. -+ -+raspi-config -+============ -+ -+The Advanced Options section of the raspi-config utility can enable and disable -+Device Tree use, as well as toggling the I2C and SPI interfaces. Note that it -+is possible to both enable an interface and blacklist the driver, if for some -+reason you should want to defer the loading. -+ -+Modules -+======= -+ -+As well as describing the hardware, Device Tree also gives enough information -+to allow suitable driver modules to be located and loaded, with the corollary -+that unneeded modules are not loaded. As a result it should be possible to -+remove lines from /etc/modules, and /etc/modprobe.d/raspi-blacklist.conf can -+have its contents deleted (or commented out). -+ -+Using Overlays -+============== -+ -+Overlays are loaded using the "dtoverlay" config.txt setting. As an example, -+consider I2C Real Time Clock drivers. In the pre-DT world these would be loaded -+by writing a magic string comprising a device identifier and an I2C address to -+a special file in /sys/class/i2c-adapter, having first loaded the driver for -+the I2C interface and the RTC device - something like this: -+ -+ modprobe i2c-bcm2835 -+ modprobe rtc-ds1307 -+ echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device -+ -+With DT enabled, this becomes a line in config.txt: -+ -+ dtoverlay=i2c-rtc,ds1307 -+ -+This causes the file /boot/overlays/i2c-rtc.dtbo to be loaded and a "node" -+describing the DS1307 I2C device to be added to the Device Tree for the Pi. By -+default it usees address 0x68, but this can be modified with an additional DT -+parameter: -+ -+ dtoverlay=i2c-rtc,ds1307,addr=0x68 -+ -+Parameters usually have default values, although certain parameters are -+mandatory. See the list of overlays below for a description of the parameters -+and their defaults. -+ -+Making new Overlays based on existing Overlays -+============================================== -+ -+Recent overlays have been designed in a more general way, so that they can be -+adapted to hardware by changing their parameters. When you have additional -+hardware with more than one device of a kind, you end up using the same overlay -+multiple times with other parameters, e.g. -+ -+ # 2 CAN FD interfaces on spi but with different pins -+ dtoverlay=mcp251xfd,spi0-0,interrupt=25 -+ dtoverlay=mcp251xfd,spi0-1,interrupt=24 -+ -+ # a realtime clock on i2c -+ dtoverlay=i2c-rtc,pcf85063 -+ -+While this approach does work, it requires knowledge about the hardware design. -+It is more feasible to simplify things for the end user by providing a single -+overlay as it is done the traditional way. -+ -+A new overlay can be generated by using ovmerge utility. -+https://github.com/raspberrypi/utils/blob/master/ovmerge/ovmerge -+ -+To generate an overlay for the above configuration we pass the configuration -+to ovmerge and add the -c flag. -+ -+ ovmerge -c mcp251xfd-overlay.dts,spi0-0,interrupt=25 \ -+ mcp251xfd-overlay.dts,spi0-1,interrupt=24 \ -+ i2c-rtc-overlay.dts,pcf85063 \ -+ >> merged-overlay.dts -+ -+The -c option writes the command above as a comment into the overlay as -+a marker that this overlay is generated and how it was generated. -+After compiling the overlay it can be loaded in a single line. -+ -+ dtoverlay=merged -+ -+It does the same as the original configuration but without parameters. -+ -+The Overlay and Parameter Reference -+=================================== -+ -+N.B. When editing this file, please preserve the indentation levels to make it -+simple to parse programmatically. NO HARD TABS. -+ -+ -+Name: -+Info: Configures the base Raspberry Pi hardware -+Load: -+Params: -+ act_led_trigger Choose which activity the LED tracks. -+ Use "heartbeat" for a nice load indicator. -+ (default "mmc") -+ -+ act_led_activelow Set to "on" to invert the sense of the LED -+ (default "off") -+ N.B. For Pi 3B, 3B+, 3A+ and 4B, use the act-led -+ overlay. -+ -+ act_led_gpio Set which GPIO to use for the activity LED -+ (in case you want to connect it to an external -+ device) -+ (default "16" on a non-Plus board, "47" on a -+ Plus or Pi 2) -+ N.B. For Pi 3B, 3B+, 3A+ and 4B, use the act-led -+ overlay. -+ -+ ant1 Select antenna 1 (default). CM4/5 only. -+ -+ ant2 Select antenna 2. CM4/5 only. -+ -+ noant Disable both antennas. CM4/5 only. -+ -+ audio Set to "on" to enable the onboard ALSA audio -+ interface (default "off") -+ -+ axiperf Set to "on" to enable the AXI bus performance -+ monitors. -+ See /sys/kernel/debug/raspberrypi_axi_monitor -+ for the results. -+ -+ bdaddr Set an alternative Bluetooth address (BDADDR). -+ The value should be a 6-byte hexadecimal value, -+ with or without colon separators, written least- -+ significant-byte first. For example, -+ bdaddr=06:05:04:03:02:01 -+ will set the BDADDR to 01:02:03:04:05:06. -+ -+ button_debounce Set the debounce delay (in ms) on the power/ -+ shutdown button (default 50ms) -+ -+ cam0_reg Controls CAM 0 regulator. -+ Disabled by default on CM1 & 3. -+ Enabled by default on all other boards. -+ -+ cam0_reg_gpio Set GPIO for CAM 0 regulator. -+ NB override switches to the normal GPIO driver, -+ even if the original was on the GPIO expander. -+ -+ cam1_reg Controls CAM 1 regulator. -+ Disabled by default on CM1 & 3. -+ Enabled by default on all other boards. -+ -+ cam1_reg_gpio Set GPIO for CAM 1 regulator. -+ NB override switches to the normal GPIO driver, -+ even if the original was on the GPIO expander. -+ -+ cam0_sync Enable a GPIO to reflect frame sync from CSI0, -+ going high on frame start, and low on frame end. -+ -+ cam0_sync_inverted Enable a GPIO to reflect frame sync from CSI0 -+ going low on frame start, and high on frame end. -+ -+ cam1_sync Enable a GPIO to reflect frame sync from CSI1, -+ going high on frame start, and low on frame end. -+ -+ cam1_sync_inverted Enable a GPIO to reflect frame sync from CSI1 -+ going low on frame start, and high on frame end. -+ -+ cooling_fan Enables the Pi 5 cooling fan (enabled -+ automatically by the firmware) -+ -+ drm_fb0_rp1_dpi Assign /dev/fb0 to the RP1 DPI output -+ -+ drm_fb0_rp1_dsi0 Assign /dev/fb0 to the RP1 DSI0 output -+ -+ drm_fb0_rp1_dsi1 Assign /dev/fb0 to the RP1 DSI1 output -+ -+ drm_fb0_vc4 Assign /dev/fb0 to the vc4 outputs -+ -+ drm_fb1_rp1_dpi Assign /dev/fb1 to the RP1 DPI output -+ -+ drm_fb1_rp1_dsi0 Assign /dev/fb1 to the RP1 DSI0 output -+ -+ drm_fb1_rp1_dsi1 Assign /dev/fb1 to the RP1 DSI1 output -+ -+ drm_fb1_vc4 Assign /dev/fb1 to the vc4 outputs -+ -+ drm_fb2_rp1_dpi Assign /dev/fb2 to the RP1 DPI output -+ -+ drm_fb2_rp1_dsi0 Assign /dev/fb2 to the RP1 DSI0 output -+ -+ drm_fb2_rp1_dsi1 Assign /dev/fb2 to the RP1 DSI1 output -+ -+ drm_fb2_vc4 Assign /dev/fb2 to the vc4 outputs -+ -+ eee Enable Energy Efficient Ethernet support for -+ compatible devices (default "on"). See also -+ "tx_lpi_timer". Pi3B+ only. -+ -+ eth_downshift_after Set the number of auto-negotiation failures -+ after which the 1000Mbps modes are disabled. -+ Legal values are 2, 3, 4, 5 and 0, where -+ 0 means never downshift (default 2). Pi3B+ only. -+ -+ eth_led0 Set mode of LED0 - amber on Pi3B+ (default "1"), -+ green on Pi4/5 (default "0"). -+ The legal values are: -+ -+ Pi3B+ -+ -+ 0=link/activity 1=link1000/activity -+ 2=link100/activity 3=link10/activity -+ 4=link100/1000/activity 5=link10/1000/activity -+ 6=link10/100/activity 14=off 15=on -+ -+ Pi4/5 -+ -+ 0=Speed/Activity 1=Speed -+ 2=Flash activity 3=FDX -+ 4=Off 5=On -+ 6=Alt 7=Speed/Flash -+ 8=Link 9=Activity -+ -+ eth_led1 Set mode of LED1 - green on Pi3B+ (default "6"), -+ amber on Pi4/5 (default "8"). See eth_led0 for -+ legal values. -+ -+ eth_max_speed Set the maximum speed a link is allowed -+ to negotiate. Legal values are 10, 100 and -+ 1000 (default 1000). Pi3B+ only. -+ -+ fan_temp0 Temperature threshold (in millicelcius) for -+ 1st cooling level (default 50000). Pi5 only. -+ fan_temp0_hyst Temperature hysteresis (in millicelcius) for -+ 1st cooling level (default 5000). Pi5 only. -+ fan_temp0_speed Fan PWM setting for 1st cooling level (0-255, -+ default 75). Pi5 only. -+ fan_temp1 Temperature threshold (in millicelcius) for -+ 2nd cooling level (default 60000). Pi5 only. -+ fan_temp1_hyst Temperature hysteresis (in millicelcius) for -+ 2nd cooling level (default 5000). Pi5 only. -+ fan_temp1_speed Fan PWM setting for 2nd cooling level (0-255, -+ default 125). Pi5 only. -+ fan_temp2 Temperature threshold (in millicelcius) for -+ 3rd cooling level (default 67500). Pi5 only. -+ fan_temp2_hyst Temperature hysteresis (in millicelcius) for -+ 3rd cooling level (default 5000). Pi5 only. -+ fan_temp2_speed Fan PWM setting for 3rd cooling level (0-255, -+ default 175). Pi5 only. -+ fan_temp3 Temperature threshold (in millicelcius) for -+ 4th cooling level (default 75000). Pi5 only. -+ fan_temp3_hyst Temperature hysteresis (in millicelcius) for -+ 4th cooling level (default 5000). Pi5 only. -+ fan_temp3_speed Fan PWM setting for 4th cooling level (0-255, -+ default 250). Pi5 only. -+ -+ hdmi Set to "off" to disable the HDMI interface -+ (default "on") -+ -+ i2c An alias for i2c_arm -+ -+ i2c_arm Set to "on" to enable the ARM's i2c interface -+ (default "off") -+ -+ i2c_arm_baudrate Set the baudrate of the ARM's i2c interface -+ (default "100000") -+ -+ i2c_baudrate An alias for i2c_arm_baudrate -+ -+ i2c_csi_dsi Set to "on" to enable the i2c_csi_dsi interface -+ -+ i2c_csi_dsi0 Set to "on" to enable the i2c_csi_dsi0 interface -+ -+ i2c_csi_dsi1 Set to "on" to enable the i2c_csi_dsi1 interface -+ -+ i2c_vc Set to "on" to enable the i2c interface -+ usually reserved for the VideoCore processor -+ (default "off") -+ -+ i2c_vc_baudrate Set the baudrate of the VideoCore i2c interface -+ (default "100000") -+ -+ i2s Set to "on" to enable the i2s interface -+ (default "off") -+ -+ i2s_dma4 Use to enable 40-bit DMA on the i2s interface -+ (the assigned value doesn't matter) -+ (2711 only) -+ -+ krnbt Set to "off" to disable autoprobing of Bluetooth -+ driver without need of hciattach/btattach -+ (default "on") -+ -+ krnbt_baudrate Set the baudrate of the PL011 UART when used -+ with krnbt=on -+ -+ nvme Alias for "pciex1" (2712 only) -+ -+ nvmem_cust_rw Allow read/write access to customer otp -+ -+ nvmem_mac_rw Allow read/write access to mac addresses otp -+ -+ nvmem_priv_rw Allow read/write access to customer private otp -+ -+ pcie Set to "off" to disable the PCIe interface -+ (default "on") -+ (2711 only, but not applicable on CM4S) -+ N.B. USB-A ports on 4B are subsequently disabled -+ -+ pcie_tperst_clk_ms Add N milliseconds between PCIe reference clock -+ activation and PERST# deassertion -+ (CM4 and 2712, default "0") -+ -+ pciex1 Set to "on" to enable the external PCIe link -+ (2712 only, default "off") -+ -+ pciex1_gen Sets the PCIe "GEN"/speed for the external PCIe -+ link (2712 only, default "2") -+ -+ pciex1_no_l0s Set to "on" to disable ASPM L0s on the external -+ PCIe link for devices that have broken -+ implementations (2712 only, default "off") -+ -+ pciex1_tperst_clk_ms Alias for pcie_tperst_clk_ms -+ (2712 only, default "0") -+ -+ pwr_led_trigger -+ pwr_led_activelow -+ pwr_led_gpio -+ As for act_led_*, but using the PWR LED. -+ Not available on Model A/B boards. -+ -+ random Set to "on" to enable the hardware random -+ number generator (default "on") -+ -+ rtc Set to "off" to disable the onboard Real Time -+ Clock (2712 only, default "on") -+ -+ rtc_bbat_vchg Set the RTC backup battery charging voltage in -+ microvolts. If set to 0 or not specified, the -+ trickle charger is disabled. -+ (2712 only, default "0") -+ -+ sd Set to "off" to disable the SD card (or eMMC on -+ non-lite SKU of CM4). -+ (default "on") -+ -+ sd_cqe Set to "off" to disable Command Queueing if you -+ have an incompatible Class A2 SD card -+ (Pi 5 only, default "on") -+ -+ sd_overclock Clock (in MHz) to use when the MMC framework -+ requests 50MHz -+ -+ sd_poll_once Looks for a card once after booting. Useful -+ for network booting scenarios to avoid the -+ overhead of continuous polling. N.B. Using -+ this option restricts the system to using a -+ single card per boot (or none at all). -+ (default off) -+ -+ sd_force_pio Disable DMA support for SD driver (default off) -+ -+ sd_pio_limit Number of blocks above which to use DMA for -+ SD card (default 1) -+ -+ sd_debug Enable debug output from SD driver (default off) -+ -+ sdio_overclock Clock (in MHz) to use when the MMC framework -+ requests 50MHz for the SDIO/WLAN interface. -+ -+ spi Set to "on" to enable the spi interfaces -+ (default "off") -+ -+ spi_dma4 Use to enable 40-bit DMA on spi interfaces -+ (the assigned value doesn't matter) -+ (2711 only) -+ -+ strict_gpiod Return GPIOs to inputs when they are released. -+ If using the gpiod utilities, it is necessary -+ to keep a gpioset running (e.g. with -+ --mode=wait) in order for an output value to -+ persist. -+ -+ suspend Make the power button trigger a suspend rather -+ than a power-off (2712 only, default "off") -+ -+ tx_lpi_timer Set the delay in microseconds between going idle -+ and entering the low power state (default 600). -+ Requires EEE to be enabled - see "eee". -+ -+ uart0 Set to "off" to disable uart0 (default "on") -+ -+ uart0_console Move the kernel boot console to UART0 on pins -+ 6, 8 and 10 of the 40-way header (2712 only, -+ default "off") -+ -+ uart1 Set to "on" or "off" to enable or disable uart1 -+ (default varies) -+ -+ watchdog Set to "on" to enable the hardware watchdog -+ (default "off") -+ -+ wifiaddr Set an alternative WiFi MAC address. -+ The value should be a 6-byte hexadecimal value, -+ with or without colon separators, written in the -+ natural (big-endian) order. -+ -+ N.B. It is recommended to only enable those interfaces that are needed. -+ Leaving all interfaces enabled can lead to unwanted behaviour (i2c_vc -+ interfering with Pi Camera, I2S and SPI hogging GPIO pins, etc.) -+ Note also that i2c, i2c_arm and i2c_vc are aliases for the physical -+ interfaces i2c0 and i2c1. Use of the numeric variants is still possible -+ but deprecated because the ARM/VC assignments differ between board -+ revisions. The same board-specific mapping applies to i2c_baudrate, -+ and the other i2c baudrate parameters. -+ -+ -+Name: act-led -+Info: Pi 3B, 3B+, 3A+ and 4B use a GPIO expander to drive the LEDs which can -+ only be accessed from the VPU. There is a special driver for this with a -+ separate DT node, which has the unfortunate consequence of breaking the -+ act_led_gpio and act_led_activelow dtparams. -+ This overlay changes the GPIO controller back to the standard one and -+ restores the dtparams. -+Load: dtoverlay=act-led,= -+Params: activelow Set to "on" to invert the sense of the LED -+ (default "off") -+ -+ gpio Set which GPIO to use for the activity LED -+ (in case you want to connect it to an external -+ device) -+ REQUIRED -+ -+ -+Name: adafruit-st7735r -+Info: Overlay for the SPI-connected Adafruit 1.8" 160x128 or 128x128 displays, -+ based on the ST7735R chip. -+ This overlay uses the newer DRM/KMS "Tiny" driver. -+Load: dtoverlay=adafruit-st7735r,= -+Params: 128x128 Select the 128x128 driver (default 160x128) -+ rotate Display rotation {0,90,180,270} (default 90) -+ speed SPI bus speed in Hz (default 4000000) -+ dc_pin GPIO pin for D/C (default 24) -+ reset_pin GPIO pin for RESET (default 25) -+ led_pin GPIO used to control backlight (default 18) -+ -+ -+Name: adafruit18 -+Info: Overlay for the SPI-connected Adafruit 1.8" display (based on the -+ ST7735R chip). It includes support for the "green tab" version. -+ This overlay uses the older fbtft driver. -+Load: dtoverlay=adafruit18,= -+Params: green Use the adafruit18_green variant. -+ rotate Display rotation {0,90,180,270} -+ speed SPI bus speed in Hz (default 4000000) -+ fps Display frame rate in Hz -+ bgr Enable BGR mode (default off) -+ debug Debug output level {0-7} -+ dc_pin GPIO pin for D/C (default 24) -+ reset_pin GPIO pin for RESET (default 25) -+ led_pin GPIO used to control backlight (default 18) -+ -+ -+Name: adau1977-adc -+Info: Overlay for activation of ADAU1977 ADC codec over I2C for control -+ and I2S for data. -+Load: dtoverlay=adau1977-adc -+Params: -+ -+ -+Name: adau7002-simple -+Info: Overlay for the activation of ADAU7002 stereo PDM to I2S converter. -+Load: dtoverlay=adau7002-simple,= -+Params: card-name Override the default, "adau7002", card name. -+ -+ -+Name: ads1015 -+Info: Overlay for activation of Texas Instruments ADS1015 ADC over I2C -+Load: dtoverlay=ads1015,= -+Params: addr I2C bus address of device. Set based on how the -+ addr pin is wired. (default=0x48 assumes addr -+ is pulled to GND) -+ cha_enable Enable virtual channel a. (default=true) -+ cha_cfg Set the configuration for virtual channel a. -+ (default=4 configures this channel for the -+ voltage at A0 with respect to GND) -+ cha_datarate Set the datarate (samples/sec) for this channel. -+ (default=4 sets 1600 sps) -+ cha_gain Set the gain of the Programmable Gain -+ Amplifier for this channel. (default=2 sets the -+ full scale of the channel to 2.048 Volts) -+ -+ Channel (ch) parameters can be set for each enabled channel. -+ A maximum of 4 channels can be enabled (letters a thru d). -+ For more information refer to the device datasheet at: -+ http://www.ti.com/lit/ds/symlink/ads1015.pdf -+ -+ -+Name: ads1115 -+Info: Texas Instruments ADS1115 ADC -+Load: dtoverlay=ads1115,[=] -+Params: addr I2C bus address of device. Set based on how the -+ addr pin is wired. (default=0x48 assumes addr -+ is pulled to GND) -+ cha_enable Enable virtual channel a. -+ cha_cfg Set the configuration for virtual channel a. -+ (default=4 configures this channel for the -+ voltage at A0 with respect to GND) -+ cha_datarate Set the datarate (samples/sec) for this channel. -+ (default=7 sets 860 sps) -+ cha_gain Set the gain of the Programmable Gain -+ Amplifier for this channel. (Default 1 sets the -+ full scale of the channel to 4.096 Volts) -+ i2c0 Choose the I2C0 bus on GPIOs 0&1 -+ i2c_csi_dsi Choose the I2C0 bus on GPIOs 44&45 -+ i2c3 Choose the I2C3 bus (configure with the i2c3 -+ overlay - BCM2711 only) -+ i2c4 Choose the I2C4 bus (configure with the i2c4 -+ overlay - BCM2711 only) -+ i2c5 Choose the I2C5 bus (configure with the i2c5 -+ overlay - BCM2711 only) -+ i2c6 Choose the I2C6 bus (configure with the i2c6 -+ overlay - BCM2711 only) -+ -+ Channel parameters can be set for each enabled channel. -+ A maximum of 4 channels can be enabled (letters a thru d). -+ For more information refer to the device datasheet at: -+ http://www.ti.com/lit/ds/symlink/ads1115.pdf -+ -+ -+Name: ads7846 -+Info: ADS7846 Touch controller -+Load: dtoverlay=ads7846,= -+Params: cs SPI bus Chip Select (default 1) -+ speed SPI bus speed (default 2MHz, max 3.25MHz) -+ penirq GPIO used for PENIRQ. REQUIRED -+ penirq_pull Set GPIO pull (default 0=none, 2=pullup) -+ swapxy Swap x and y axis -+ xmin Minimum value on the X axis (default 0) -+ ymin Minimum value on the Y axis (default 0) -+ xmax Maximum value on the X axis (default 4095) -+ ymax Maximum value on the Y axis (default 4095) -+ pmin Minimum reported pressure value (default 0) -+ pmax Maximum reported pressure value (default 65535) -+ xohms Touchpanel sensitivity (X-plate resistance) -+ (default 400) -+ -+ penirq is required and usually xohms (60-100) has to be set as well. -+ Apart from that, pmax (255) and swapxy are also common. -+ The rest of the calibration can be done with xinput-calibrator. -+ See: github.com/notro/fbtft/wiki/FBTFT-on-Raspian -+ Device Tree binding document: -+ www.kernel.org/doc/Documentation/devicetree/bindings/input/ads7846.txt -+ -+ -+Name: adv7282m -+Info: Analog Devices ADV7282M analogue video to CSI2 bridge. -+ Uses Unicam1, which is the standard camera connector on most Pi -+ variants. -+Load: dtoverlay=adv7282m,= -+Params: addr Overrides the I2C address (default 0x21) -+ media-controller Configure use of Media Controller API for -+ configuring the sensor (default off) -+ -+ -+Name: adv728x-m -+Info: Analog Devices ADV728[0|1|2]-M analogue video to CSI2 bridges. -+ This is a wrapper for adv7282m, and defaults to ADV7282M. -+Load: dtoverlay=adv728x-m,= -+Params: addr Overrides the I2C address (default 0x21) -+ adv7280m Select ADV7280-M. -+ adv7281m Select ADV7281-M. -+ adv7281ma Select ADV7281-MA. -+ media-controller Configure use of Media Controller API for -+ configuring the sensor (default off) -+ -+ -+Name: akkordion-iqdacplus -+Info: Configures the Digital Dreamtime Akkordion Music Player (based on the -+ OEM IQAudIO DAC+ or DAC Zero module). -+Load: dtoverlay=akkordion-iqdacplus,= -+Params: 24db_digital_gain Allow gain to be applied via the PCM512x codec -+ Digital volume control. Enable with -+ dtoverlay=akkordion-iqdacplus,24db_digital_gain -+ (The default behaviour is that the Digital -+ volume control is limited to a maximum of -+ 0dB. ie. it can attenuate but not provide -+ gain. For most users, this will be desired -+ as it will prevent clipping. By appending -+ the 24db_digital_gain parameter, the Digital -+ volume control will allow up to 24dB of -+ gain. If this parameter is enabled, it is the -+ responsibility of the user to ensure that -+ the Digital volume control is set to a value -+ that does not result in clipping/distortion!) -+ -+ -+Name: allo-boss-dac-pcm512x-audio -+Info: Configures the Allo Boss DAC audio cards. -+Load: dtoverlay=allo-boss-dac-pcm512x-audio, -+Params: 24db_digital_gain Allow gain to be applied via the PCM512x codec -+ Digital volume control. Enable with -+ "dtoverlay=allo-boss-dac-pcm512x-audio, -+ 24db_digital_gain" -+ (The default behaviour is that the Digital -+ volume control is limited to a maximum of -+ 0dB. ie. it can attenuate but not provide -+ gain. For most users, this will be desired -+ as it will prevent clipping. By appending -+ the 24db_digital_gain parameter, the Digital -+ volume control will allow up to 24dB of -+ gain. If this parameter is enabled, it is the -+ responsibility of the user to ensure that -+ the Digital volume control is set to a value -+ that does not result in clipping/distortion!) -+ slave Force Boss DAC into slave mode, using Pi a -+ master for bit clock and frame clock. Enable -+ with "dtoverlay=allo-boss-dac-pcm512x-audio, -+ slave" -+ -+ -+Name: allo-boss2-dac-audio -+Info: Configures the Allo Boss2 DAC audio card -+Load: dtoverlay=allo-boss2-dac-audio -+Params: -+ -+ -+Name: allo-digione -+Info: Configures the Allo Digione audio card -+Load: dtoverlay=allo-digione -+Params: -+ -+ -+Name: allo-katana-dac-audio -+Info: Configures the Allo Katana DAC audio card -+Load: dtoverlay=allo-katana-dac-audio -+Params: -+ -+ -+Name: allo-piano-dac-pcm512x-audio -+Info: Configures the Allo Piano DAC (2.0/2.1) audio cards. -+ (NB. This initial support is for 2.0 channel audio ONLY! ie. stereo. -+ The subwoofer outputs on the Piano 2.1 are not currently supported!) -+Load: dtoverlay=allo-piano-dac-pcm512x-audio, -+Params: 24db_digital_gain Allow gain to be applied via the PCM512x codec -+ Digital volume control. -+ (The default behaviour is that the Digital -+ volume control is limited to a maximum of -+ 0dB. ie. it can attenuate but not provide -+ gain. For most users, this will be desired -+ as it will prevent clipping. By appending -+ the 24db_digital_gain parameter, the Digital -+ volume control will allow up to 24dB of -+ gain. If this parameter is enabled, it is the -+ responsibility of the user to ensure that -+ the Digital volume control is set to a value -+ that does not result in clipping/distortion!) -+ -+ -+Name: allo-piano-dac-plus-pcm512x-audio -+Info: Configures the Allo Piano DAC (2.1) audio cards. -+Load: dtoverlay=allo-piano-dac-plus-pcm512x-audio, -+Params: 24db_digital_gain Allow gain to be applied via the PCM512x codec -+ Digital volume control. -+ (The default behaviour is that the Digital -+ volume control is limited to a maximum of -+ 0dB. ie. it can attenuate but not provide -+ gain. For most users, this will be desired -+ as it will prevent clipping. By appending -+ the 24db_digital_gain parameter, the Digital -+ volume control will allow up to 24dB of -+ gain. If this parameter is enabled, it is the -+ responsibility of the user to ensure that -+ the Digital volume control is set to a value -+ that does not result in clipping/distortion!) -+ glb_mclk This option is only with Kali board. If enabled, -+ MCLK for Kali is used and PLL is disabled for -+ better voice quality. (default Off) -+ -+ -+Name: anyspi -+Info: Universal device tree overlay for SPI devices -+ -+ Just specify the SPI address and device name ("compatible" property). -+ This overlay lacks any device-specific parameter support! -+ -+ For devices on spi1 or spi2, the interfaces should be enabled -+ with one of the spi1-1/2/3cs and/or spi2-1/2/3cs overlays. -+ -+ Examples: -+ 1. SPI NOR flash on spi0.1, maximum SPI clock frequency 45MHz: -+ dtoverlay=anyspi:spi0-1,dev="jedec,spi-nor",speed=45000000 -+ 2. MCP3204 ADC on spi1.2, maximum SPI clock frequency 500kHz: -+ dtoverlay=anyspi:spi1-2,dev="microchip,mcp3204" -+Load: dtoverlay=anyspi,= -+Params: spi- Configure device at spi, cs -+ (boolean, required) -+ dev Set device name to search compatible module -+ (string, required) -+ speed Set SPI clock frequency in Hz -+ (integer, optional, default 500000) -+ -+ -+Name: apds9960 -+Info: Configures the AVAGO APDS9960 digital proximity, ambient light, RGB and -+ gesture sensor -+Load: dtoverlay=apds9960,= -+Params: gpiopin GPIO used for INT (default 4) -+ noints Disable the interrupt GPIO line. -+ -+ -+Name: applepi-dac -+Info: Configures the Orchard Audio ApplePi-DAC audio card -+Load: dtoverlay=applepi-dac -+Params: -+ -+ -+Name: arducam-64mp -+Info: Arducam 64MP camera module. -+ Uses Unicam 1, which is the standard camera connector on most Pi -+ variants. -+Load: dtoverlay=arducam-64mp,= -+Params: rotation Mounting rotation of the camera sensor (0 or -+ 180, default 0) -+ orientation Sensor orientation (0 = front, 1 = rear, -+ 2 = external, default external) -+ media-controller Configure use of Media Controller API for -+ configuring the sensor (default on) -+ cam0 Adopt the default configuration for CAM0 on a -+ Compute Module (CSI0, i2c_vc, and cam0_reg). -+ vcm Select lens driver state. Default is enabled, -+ but vcm=off will disable. -+ -+ -+Name: arducam-pivariety -+Info: Arducam Pivariety camera module. -+ Uses Unicam 1, which is the standard camera connector on most Pi -+ variants. -+Load: dtoverlay=arducam-pivariety,= -+Params: rotation Mounting rotation of the camera sensor (0 or -+ 180, default 0) -+ orientation Sensor orientation (0 = front, 1 = rear, -+ 2 = external, default external) -+ media-controller Configure use of Media Controller API for -+ configuring the sensor (default on) -+ cam0 Adopt the default configuration for CAM0 on a -+ Compute Module (CSI0, i2c_vc, and cam0_reg). -+ -+ -+Name: at86rf233 -+Info: Configures the Atmel AT86RF233 802.15.4 low-power WPAN transceiver, -+ connected to spi0.0 -+Load: dtoverlay=at86rf233,= -+Params: interrupt GPIO used for INT (default 23) -+ reset GPIO used for Reset (default 24) -+ sleep GPIO used for Sleep (default 25) -+ speed SPI bus speed in Hz (default 3000000) -+ trim Fine tuning of the internal capacitance -+ arrays (0=+0pF, 15=+4.5pF, default 15) -+ -+ -+Name: audioinjector-addons -+Info: Configures the audioinjector.net audio add on soundcards -+Load: dtoverlay=audioinjector-addons,= -+Params: non-stop-clocks Keeps the clocks running even when the stream -+ is paused or stopped (default off) -+ -+ -+Name: audioinjector-bare-i2s -+Info: Configures the audioinjector.net audio bare i2s soundcard -+Load: dtoverlay=audioinjector-bare-i2s -+Params: -+ -+ -+Name: audioinjector-isolated-soundcard -+Info: Configures the audioinjector.net isolated soundcard -+Load: dtoverlay=audioinjector-isolated-soundcard -+Params: -+ -+ -+Name: audioinjector-ultra -+Info: Configures the audioinjector.net ultra soundcard -+Load: dtoverlay=audioinjector-ultra -+Params: -+ -+ -+Name: audioinjector-wm8731-audio -+Info: Configures the audioinjector.net audio add on soundcard -+Load: dtoverlay=audioinjector-wm8731-audio -+Params: -+ -+ -+Name: audiosense-pi -+Info: Configures the audiosense-pi add on soundcard -+ For more information refer to -+ https://gitlab.com/kakar0t/audiosense-pi -+Load: dtoverlay=audiosense-pi -+Params: -+ -+ -+Name: audremap -+Info: Switches PWM sound output to GPIOs on the 40-pin header -+Load: dtoverlay=audremap,= -+Params: swap_lr Reverse the channel allocation, which will also -+ swap the audio jack outputs (default off) -+ enable_jack Don't switch off the audio jack output. Does -+ nothing on BCM2711 (default off) -+ pins_12_13 Select GPIOs 12 & 13 (default) -+ pins_18_19 Select GPIOs 18 & 19 -+ pins_40_41 Select GPIOs 40 & 41 (not available on CM4, used -+ for other purposes) -+ pins_40_45 Select GPIOs 40 & 45 (don't use on BCM2711 - the -+ pins are on different controllers) -+ -+ -+Name: balena-fin -+Info: Overlay that enables WLAN, Bluetooth and the GPIO expander on the -+ balenaFin carrier board for the Raspberry Pi Compute Module 3/3+ Lite. -+Load: dtoverlay=balena-fin -+Params: -+ -+ -+Name: bcm2712d0 -+Info: Overlay encapsulating the BCM2712 C0->D0 differences -+Load: dtoverlay=bcm2712d0 -+Params: -+ -+ -+Name: bmp085_i2c-sensor -+Info: This overlay is now deprecated - see i2c-sensor -+Load: -+ -+ -+Name: camera-mux-2port -+Info: Configures a 2 port camera multiplexer -+ Note that currently ALL IMX290 modules share a common clock, therefore -+ all modules will need to have the same clock frequency. -+Load: dtoverlay=camera-mux-2port,= -+Params: cam0-arducam-64mp Select Arducam64MP for camera on port 0 -+ cam0-imx219 Select IMX219 for camera on port 0 -+ cam0-imx258 Select IMX258 for camera on port 0 -+ cam0-imx290 Select IMX290 for camera on port 0 -+ cam0-imx477 Select IMX477 for camera on port 0 -+ cam0-imx519 Select IMX519 for camera on port 0 -+ cam0-imx708 Select IMX708 for camera on port 0 -+ cam0-ov2311 Select OV2311 for camera on port 0 -+ cam0-ov5647 Select OV5647 for camera on port 0 -+ cam0-ov64a40 Select OV64A40 for camera on port 0 -+ cam0-ov7251 Select OV7251 for camera on port 0 -+ cam0-ov9281 Select OV9281 for camera on port 0 -+ cam0-imx290-clk-freq Set clock frequency for an IMX290 on port 0 -+ cam1-arducam-64mp Select Arducam64MP for camera on port 1 -+ cam1-imx219 Select IMX219 for camera on port 1 -+ cam1-imx258 Select IMX258 for camera on port 1 -+ cam1-imx290 Select IMX290 for camera on port 1 -+ cam1-imx477 Select IMX477 for camera on port 1 -+ cam1-imx519 Select IMX519 for camera on port 1 -+ cam1-imx708 Select IMX708 for camera on port 1 -+ cam1-ov2311 Select OV2311 for camera on port 1 -+ cam1-ov5647 Select OV5647 for camera on port 1 -+ cam1-ov64a40 Select OV64A40 for camera on port 1 -+ cam1-ov7251 Select OV7251 for camera on port 1 -+ cam1-ov9281 Select OV9281 for camera on port 1 -+ cam1-imx290-clk-freq Set clock frequency for an IMX290 on port 1 -+ cam0-sync-source Set camera on port 0 as vsync source -+ cam0-sync-sink Set camera on port 0 as vsync sink -+ cam1-sync-source Set camera on port 1 as vsync source -+ cam1-sync-sink Set camera on port 1 as vsync sink -+ -+ cam0 Connect the mux to CAM0 port (default is CAM1) -+ -+ -+Name: camera-mux-4port -+Info: Configures a 4 port camera multiplexer -+ Note that currently ALL IMX290 modules share a common clock, therefore -+ all modules will need to have the same clock frequency. -+Load: dtoverlay=camera-mux-4port,= -+Params: cam0-arducam-64mp Select Arducam64MP for camera on port 0 -+ cam0-imx219 Select IMX219 for camera on port 0 -+ cam0-imx258 Select IMX258 for camera on port 0 -+ cam0-imx290 Select IMX290 for camera on port 0 -+ cam0-imx477 Select IMX477 for camera on port 0 -+ cam0-imx519 Select IMX519 for camera on port 0 -+ cam0-imx708 Select IMX708 for camera on port 0 -+ cam0-ov2311 Select OV2311 for camera on port 0 -+ cam0-ov5647 Select OV5647 for camera on port 0 -+ cam0-ov64a40 Select OV64A40 for camera on port 0 -+ cam0-ov7251 Select OV7251 for camera on port 0 -+ cam0-ov9281 Select OV9281 for camera on port 0 -+ cam0-imx290-clk-freq Set clock frequency for an IMX290 on port 0 -+ cam1-arducam-64mp Select Arducam64MP for camera on port 1 -+ cam1-imx219 Select IMX219 for camera on port 1 -+ cam1-imx258 Select IMX258 for camera on port 1 -+ cam1-imx290 Select IMX290 for camera on port 1 -+ cam1-imx477 Select IMX477 for camera on port 1 -+ cam1-imx519 Select IMX519 for camera on port 1 -+ cam1-imx708 Select IMX708 for camera on port 1 -+ cam1-ov2311 Select OV2311 for camera on port 1 -+ cam1-ov5647 Select OV5647 for camera on port 1 -+ cam1-ov64a40 Select OV64A40 for camera on port 1 -+ cam1-ov7251 Select OV7251 for camera on port 1 -+ cam1-ov9281 Select OV9281 for camera on port 1 -+ cam1-imx290-clk-freq Set clock frequency for an IMX290 on port 1 -+ cam2-arducam-64mp Select Arducam64MP for camera on port 2 -+ cam2-imx219 Select IMX219 for camera on port 2 -+ cam2-imx258 Select IMX258 for camera on port 2 -+ cam2-imx290 Select IMX290 for camera on port 2 -+ cam2-imx477 Select IMX477 for camera on port 2 -+ cam2-imx519 Select IMX519 for camera on port 2 -+ cam2-imx708 Select IMX708 for camera on port 2 -+ cam2-ov2311 Select OV2311 for camera on port 2 -+ cam2-ov5647 Select OV5647 for camera on port 2 -+ cam2-ov64a40 Select OV64A40 for camera on port 2 -+ cam2-ov7251 Select OV7251 for camera on port 2 -+ cam2-ov9281 Select OV9281 for camera on port 2 -+ cam2-imx290-clk-freq Set clock frequency for an IMX290 on port 2 -+ cam3-arducam-64mp Select Arducam64MP for camera on port 3 -+ cam3-imx219 Select IMX219 for camera on port 3 -+ cam3-imx258 Select IMX258 for camera on port 3 -+ cam3-imx290 Select IMX290 for camera on port 3 -+ cam3-imx477 Select IMX477 for camera on port 3 -+ cam3-imx519 Select IMX519 for camera on port 3 -+ cam3-imx708 Select IMX708 for camera on port 3 -+ cam3-ov2311 Select OV2311 for camera on port 3 -+ cam3-ov5647 Select OV5647 for camera on port 3 -+ cam3-ov64a40 Select OV64A40 for camera on port 3 -+ cam3-ov7251 Select OV7251 for camera on port 3 -+ cam3-ov9281 Select OV9281 for camera on port 3 -+ cam3-imx290-clk-freq Set clock frequency for an IMX290 on port 3 -+ cam0-sync-source Set camera on port 0 as vsync source -+ cam0-sync-sink Set camera on port 0 as vsync sink -+ cam1-sync-source Set camera on port 1 as vsync source -+ cam1-sync-sink Set camera on port 1 as vsync sink -+ cam2-sync-source Set camera on port 2 as vsync source -+ cam2-sync-sink Set camera on port 2 as vsync sink -+ cam3-sync-source Set camera on port 3 as vsync source -+ cam3-sync-sink Set camera on port 3 as vsync sink -+ -+ cam0 Connect the mux to CAM0 port (default is CAM1) -+ -+ -+Name: cap1106 -+Info: Enables the ability to use the cap1106 touch sensor as a keyboard -+Load: dtoverlay=cap1106,= -+Params: int_pin GPIO pin for interrupt signal (default 23) -+ -+ -+Name: chipcap2 -+Info: Enables the Chipcap 2 humidity and temperature sensor. This device -+ provides low and high humidity alarms and requires a 3V3 dedicated -+ regulator to operate. -+Load: dtoverlay=chipcap2,= -+Params: ready_pin GPIO pin for ready signal (default 4) -+ -+ low_pin GPIO pin for low humidity signal (default 5) -+ -+ high_pin GPIO pin for high humidity signal (default 6) -+ -+ reg_pin GPIO pin to control the dedicated regulator -+ that powers the device (default 26) -+ -+ -+Name: chipdip-dac -+Info: Configures Chip Dip audio cards. -+Load: dtoverlay=chipdip-dac -+Params: -+ -+ -+Name: cirrus-wm5102 -+Info: Configures the Cirrus Logic Audio Card -+Load: dtoverlay=cirrus-wm5102 -+Params: -+ -+ -+Name: cm-swap-i2c0 -+Info: Largely for Compute Modules 1&3 where the original instructions for -+ adding a camera used GPIOs 0&1 for CAM1 and 28&29 for CAM0, whilst all -+ other platforms use 28&29 (or 44&45) for CAM1. -+ The default assignment through using this overlay is for -+ i2c0 to use 28&29, and i2c10 (aka i2c_csi_dsi) to use 28&29, but the -+ overrides allow this to be changed. -+Load: dtoverlay=cm-swap-i2c0,= -+Params: i2c0-gpio0 Use GPIOs 0&1 for i2c0 -+ i2c0-gpio28 Use GPIOs 28&29 for i2c0 (default) -+ i2c0-gpio44 Use GPIOs 44&45 for i2c0 -+ i2c10-gpio0 Use GPIOs 0&1 for i2c0 (default) -+ i2c10-gpio28 Use GPIOs 28&29 for i2c0 -+ i2c10-gpio44 Use GPIOs 44&45 for i2c0 -+ -+ -+Name: cma -+Info: Set custom CMA sizes, only use if you know what you are doing, might -+ clash with other overlays like vc4-fkms-v3d and vc4-kms-v3d. -+Load: dtoverlay=cma,= -+Params: cma-512 CMA is 512MB (needs 1GB) -+ cma-448 CMA is 448MB (needs 1GB) -+ cma-384 CMA is 384MB (needs 1GB) -+ cma-320 CMA is 320MB (needs 1GB) -+ cma-256 CMA is 256MB (needs 1GB) -+ cma-192 CMA is 192MB (needs 1GB) -+ cma-128 CMA is 128MB -+ cma-96 CMA is 96MB -+ cma-64 CMA is 64MB -+ cma-size CMA size in bytes, 4MB aligned -+ cma-default Use upstream's default value -+ -+ -+Name: crystalfontz-cfa050_pi_m -+Info: Configures the Crystalfontz CFA050-PI-M series of Raspberry Pi CM4 -+ based modules using the CFA7201280A0_050Tx 7" TFT LCD displays, -+ with or without capacitive touch screen. -+ Requires use of vc4-kms-v3d. -+Load: dtoverlay=crystalfontz-cfa050_pi_m,= -+Params: captouch Enable capacitive touch display -+ -+ -+Name: cutiepi-panel -+Info: 8" TFT LCD display and touch panel used by cutiepi.io -+Load: dtoverlay=cutiepi-panel -+Params: -+ -+ -+Name: dacberry400 -+Info: Configures the dacberry400 add on soundcard -+Load: dtoverlay=dacberry400 -+Params: -+ -+ -+Name: dht11 -+Info: Overlay for the DHT11/DHT21/DHT22 humidity/temperature sensors -+ Also sometimes found with the part number(s) AM230x. -+Load: dtoverlay=dht11,= -+Params: gpiopin GPIO connected to the sensor's DATA output. -+ (default 4) -+ -+ -+Name: dionaudio-kiwi -+Info: Configures the Dion Audio KIWI STREAMER -+Load: dtoverlay=dionaudio-kiwi -+Params: -+ -+ -+Name: dionaudio-loco -+Info: Configures the Dion Audio LOCO DAC-AMP -+Load: dtoverlay=dionaudio-loco -+Params: -+ -+ -+Name: dionaudio-loco-v2 -+Info: Configures the Dion Audio LOCO-V2 DAC-AMP -+Load: dtoverlay=dionaudio-loco-v2,= -+Params: 24db_digital_gain Allow gain to be applied via the PCM512x codec -+ Digital volume control. Enable with -+ "dtoverlay=hifiberry-dacplus,24db_digital_gain" -+ (The default behaviour is that the Digital -+ volume control is limited to a maximum of -+ 0dB. ie. it can attenuate but not provide -+ gain. For most users, this will be desired -+ as it will prevent clipping. By appending -+ the 24dB_digital_gain parameter, the Digital -+ volume control will allow up to 24dB of -+ gain. If this parameter is enabled, it is the -+ responsibility of the user to ensure that -+ the Digital volume control is set to a value -+ that does not result in clipping/distortion!) -+ -+ -+Name: disable-bt -+Info: Disable onboard Bluetooth on Bluetooth-capable Raspberry Pis. On Pis -+ prior to Pi 5 this restores UART0/ttyAMA0 over GPIOs 14 & 15. -+Load: dtoverlay=disable-bt -+Params: -+ -+ -+Name: disable-bt-pi5 -+Info: See disable-bt -+ -+ -+Name: disable-emmc2 -+Info: Disable EMMC2 controller on BCM2711. -+ The allows the onboard EMMC storage on Compute Module 4 to be disabled -+ e.g. if a fault has occurred. -+Load: dtoverlay=disable-emmc2 -+Params: -+ -+ -+Name: disable-wifi -+Info: Disable onboard WLAN on WiFi-capable Raspberry Pis. -+Load: dtoverlay=disable-wifi -+Params: -+ -+ -+Name: disable-wifi-pi5 -+Info: See disable-wifi -+ -+ -+Name: dpi18 -+Info: Overlay for a generic 18-bit DPI display -+ This uses GPIOs 0-21 (so no I2C, uart etc.), and activates the output -+ 2-3 seconds after the kernel has started. -+Load: dtoverlay=dpi18 -+Params: -+ -+ -+Name: dpi18cpadhi -+Info: Overlay for a generic 18-bit DPI display (in 'mode 6' connection scheme) -+ This uses GPIOs 0-9,12-17,20-25 (so no I2C, uart etc.), and activates -+ the output 3-3 seconds after the kernel has started. -+Load: dtoverlay=dpi18cpadhi -+Params: -+ -+ -+Name: dpi24 -+Info: Overlay for a generic 24-bit DPI display -+ This uses GPIOs 0-27 (so no I2C, uart etc.), and activates the output -+ 2-3 seconds after the kernel has started. -+Load: dtoverlay=dpi24 -+Params: -+ -+ -+Name: draws -+Info: Configures the NW Digital Radio DRAWS Hat -+ -+ The board includes an ADC to measure various board values and also -+ provides two analog user inputs on the expansion header. The ADC -+ can be configured for various sample rates and gain values to adjust -+ the input range. Tables describing the two parameters follow. -+ -+ ADC Gain Values: -+ 0 = +/- 6.144V -+ 1 = +/- 4.096V -+ 2 = +/- 2.048V -+ 3 = +/- 1.024V -+ 4 = +/- 0.512V -+ 5 = +/- 0.256V -+ 6 = +/- 0.256V -+ 7 = +/- 0.256V -+ -+ ADC Datarate Values: -+ 0 = 128sps -+ 1 = 250sps -+ 2 = 490sps -+ 3 = 920sps -+ 4 = 1600sps (default) -+ 5 = 2400sps -+ 6 = 3300sps -+ 7 = 3300sps -+Load: dtoverlay=draws,= -+Params: draws_adc_ch4_gain Sets the full scale resolution of the ADCs -+ input voltage sensor (default 1) -+ -+ draws_adc_ch4_datarate Sets the datarate of the ADCs input voltage -+ sensor -+ -+ draws_adc_ch5_gain Sets the full scale resolution of the ADCs -+ 5V rail voltage sensor (default 1) -+ -+ draws_adc_ch5_datarate Sets the datarate of the ADCs 4V rail voltage -+ sensor -+ -+ draws_adc_ch6_gain Sets the full scale resolution of the ADCs -+ AIN2 input (default 2) -+ -+ draws_adc_ch6_datarate Sets the datarate of the ADCs AIN2 input -+ -+ draws_adc_ch7_gain Sets the full scale resolution of the ADCs -+ AIN3 input (default 2) -+ -+ draws_adc_ch7_datarate Sets the datarate of the ADCs AIN3 input -+ -+ alsaname Name of the ALSA audio device (default "draws") -+ -+ -+Name: dwc-otg -+Info: Selects the dwc_otg USB controller driver which has fiq support. This -+ is the default on all except the Pi Zero which defaults to dwc2. -+Load: dtoverlay=dwc-otg -+Params: -+ -+ -+Name: dwc2 -+Info: Selects the dwc2 USB controller driver -+Load: dtoverlay=dwc2,= -+Params: dr_mode Dual role mode: "host", "peripheral" or "otg" -+ -+ g-rx-fifo-size Size of rx fifo size in gadget mode -+ -+ g-np-tx-fifo-size Size of non-periodic tx fifo size in gadget -+ mode -+ -+ -+[ The ds1307-rtc overlay has been deleted. See i2c-rtc. ] -+ -+ -+Name: edt-ft5406 -+Info: Overlay for the EDT FT5406 touchscreen. -+ This works with the Raspberry Pi 7" touchscreen when not being polled -+ by the firmware. -+ By default the overlay uses the i2c_csi_dsi I2C interface, but this -+ can be overridden -+ You MUST use either "disable_touchscreen=1" or "ignore_lcd=1" in -+ config.txt to stop the firmware polling the touchscreen. -+Load: dtoverlay=edt-ft5406,= -+Params: sizex Touchscreen size x (default 800) -+ sizey Touchscreen size y (default 480) -+ invx Touchscreen inverted x axis -+ invy Touchscreen inverted y axis -+ swapxy Touchscreen swapped x y axis -+ i2c0 Choose the I2C0 bus on GPIOs 0&1 -+ i2c1 Choose the I2C1 bus on GPIOs 2&3 -+ i2c3 Choose the I2C3 bus (configure with the i2c3 -+ overlay - BCM2711 only) -+ i2c4 Choose the I2C4 bus (configure with the i2c4 -+ overlay - BCM2711 only) -+ i2c5 Choose the I2C5 bus (configure with the i2c5 -+ overlay - BCM2711 only) -+ i2c6 Choose the I2C6 bus (configure with the i2c6 -+ overlay - BCM2711 only) -+ addr Sets the address for the touch controller. Note -+ that the device must be configured to use the -+ specified address. -+ -+ -+Name: enc28j60 -+Info: Overlay for the Microchip ENC28J60 Ethernet Controller on SPI0 -+Load: dtoverlay=enc28j60,= -+Params: int_pin GPIO used for INT (default 25) -+ -+ speed SPI bus speed (default 12000000) -+ -+ -+Name: enc28j60-spi2 -+Info: Overlay for the Microchip ENC28J60 Ethernet Controller on SPI2 -+Load: dtoverlay=enc28j60-spi2,= -+Params: int_pin GPIO used for INT (default 39) -+ -+ speed SPI bus speed (default 12000000) -+ -+ -+Name: exc3000 -+Info: Enables I2C connected EETI EXC3000 multiple touch controller using -+ GPIO 4 (pin 7 on GPIO header) for interrupt. -+Load: dtoverlay=exc3000,= -+Params: interrupt GPIO used for interrupt (default 4) -+ sizex Touchscreen size x (default 4096) -+ sizey Touchscreen size y (default 4096) -+ invx Touchscreen inverted x axis -+ invy Touchscreen inverted y axis -+ swapxy Touchscreen swapped x y axis -+ -+ -+Name: fbtft -+Info: Overlay for SPI-connected displays using the fbtft drivers. -+ -+ This overlay seeks to replace the functionality provided by fbtft_device -+ which is now gone from the kernel. -+ -+ Most displays from fbtft_device have been ported over. -+ Example: -+ dtoverlay=fbtft,spi0-0,rpi-display,reset_pin=23,dc_pin=24,led_pin=18,rotate=270 -+ -+ It is also possible to specify the controller (this will use the default -+ init sequence in the driver). -+ Example: -+ dtoverlay=fbtft,spi0-0,ili9341,bgr,reset_pin=23,dc_pin=24,led_pin=18,rotate=270 -+ -+ For devices on spi1 or spi2, the interfaces should be enabled -+ with one of the spi1-1/2/3cs and/or spi2-1/2/3cs overlays. -+ -+ The following features of fbtft_device have not been ported over: -+ - parallel bus is not supported -+ - the init property which overrides the controller initialization -+ sequence is not supported as a parameter due to memory limitations in -+ the bootloader responsible for applying the overlay. -+ -+ See https://github.com/notro/fbtft/wiki/FBTFT-RPI-overlays for how to -+ create an overlay. -+ -+Load: dtoverlay=fbtft,= -+Params: -+ spi- Configure device at spi, cs -+ (boolean, required) -+ speed SPI bus speed in Hz (default 32000000) -+ cpha Shifted clock phase (CPHA) mode -+ cpol Inverse clock polarity (CPOL) mode -+ -+ adafruit18 Adafruit 1.8 -+ adafruit22 Adafruit 2.2 (old) -+ adafruit22a Adafruit 2.2 -+ adafruit28 Adafruit 2.8 -+ adafruit13m Adafruit 1.3 OLED -+ admatec_c-berry28 C-Berry28 -+ dogs102 EA DOGS102 -+ er_tftm050_2 ER-TFTM070-2 -+ er_tftm070_5 ER-TFTM070-5 -+ ew24ha0 EW24HA0 -+ ew24ha0_9bit EW24HA0 in 9-bit mode -+ freetronicsoled128 Freetronics OLED128 -+ hy28a HY28A -+ hy28b HY28B -+ itdb28_spi ITDB02-2.8 with SPI interface circuit -+ mi0283qt-2 Watterott MI0283QT-2 -+ mi0283qt-9a Watterott MI0283QT-9A -+ nokia3310 Nokia 3310 -+ nokia3310a Nokia 3310a -+ nokia5110 Nokia 5110 -+ piscreen PiScreen -+ pitft Adafruit PiTFT 2.8 -+ pioled ILSoft OLED -+ rpi-display Watterott rpi-display -+ sainsmart18 Sainsmart 1.8 -+ sainsmart32_spi Sainsmart 3.2 with SPI interfce circuit -+ tinylcd35 TinyLCD 3.5 -+ tm022hdh26 Tianma TM022HDH26 -+ tontec35_9481 Tontect 3.5 with ILI9481 controller -+ tontec35_9486 Tontect 3.5 with ILI9486 controller -+ waveshare32b Waveshare 3.2 -+ waveshare22 Waveshare 2.2 -+ -+ bd663474 BD663474 display controller -+ hx8340bn HX8340BN display controller -+ hx8347d HX8347D display controller -+ hx8353d HX8353D display controller -+ hx8357d HX8357D display controller -+ ili9163 ILI9163 display controller -+ ili9320 ILI9320 display controller -+ ili9325 ILI9325 display controller -+ ili9340 ILI9340 display controller -+ ili9341 ILI9341 display controller -+ ili9481 ILI9481 display controller -+ ili9486 ILI9486 display controller -+ pcd8544 PCD8544 display controller -+ ra8875 RA8875 display controller -+ s6d02a1 S6D02A1 display controller -+ s6d1121 S6D1121 display controller -+ seps525 SEPS525 display controller -+ sh1106 SH1106 display controller -+ ssd1289 SSD1289 display controller -+ ssd1305 SSD1305 display controller -+ ssd1306 SSD1306 display controller -+ ssd1325 SSD1325 display controller -+ ssd1331 SSD1331 display controller -+ ssd1351 SSD1351 display controller -+ st7735r ST7735R display controller -+ st7789v ST7789V display controller -+ tls8204 TLS8204 display controller -+ uc1611 UC1611 display controller -+ uc1701 UC1701 display controller -+ upd161704 UPD161704 display controller -+ -+ width Display width in pixels -+ height Display height in pixels -+ regwidth Display controller register width (default is -+ driver specific) -+ buswidth Display bus interface width (default 8) -+ debug Debug output level {0-7} -+ rotate Display rotation {0, 90, 180, 270} (counter -+ clockwise). Not supported by all drivers. -+ bgr Enable BGR mode (default off). Use if Red and -+ Blue are swapped. Not supported by all drivers. -+ fps Frames per second (default 30). In effect this -+ states how long the driver will wait after video -+ memory has been changed until display update -+ transfer is started. -+ txbuflen Length of the FBTFT transmit buffer -+ (default 4096) -+ startbyte Sets the Start byte used by fb_ili9320, -+ fb_ili9325 and fb_hx8347d. Common value is 0x70. -+ gamma String representation of Gamma Curve(s). Driver -+ specific. Not supported by all drivers. -+ reset_pin GPIO pin for RESET -+ dc_pin GPIO pin for D/C -+ led_pin GPIO pin for LED backlight -+ -+ -+Name: fe-pi-audio -+Info: Configures the Fe-Pi Audio Sound Card -+Load: dtoverlay=fe-pi-audio -+Params: -+ -+ -+Name: fsm-demo -+Info: A demonstration of the gpio-fsm driver. The GPIOs are chosen to work -+ nicely with a "traffic-light" display of red, amber and green LEDs on -+ GPIOs 7, 8 and 25 respectively. -+Load: dtoverlay=fsm-demo,= -+Params: fsm_debug Enable debug logging (default off) -+ -+ -+Name: gc9a01 -+Info: Enables GalaxyCore's GC9A01 single chip driver based displays on -+ SPI0 as fb1, using GPIOs DC=25, RST=27 and BL=18 (physical -+ GPIO header pins 22, 13 and 12 respectively) in addition to the -+ SPI0 pins DIN=10, CLK=11 and CS=8 (physical GPIO header pins 19, -+ 23 and 24 respectively). -+Load: dtoverlay=gc9a01,= -+Params: speed Display SPI bus speed -+ -+ rotate Display rotation {0,90,180,270} -+ -+ width Width of the display -+ -+ height Height of the display -+ -+ fps Delay between frame updates -+ -+ debug Debug output level {0-7} -+ -+ -+Name: ghost-amp -+Info: An overlay for the Ghost amplifier. -+Load: dtoverlay=ghost-amp,= -+Params: fsm_debug Enable debug logging of the GPIO FSM (default -+ off) -+ -+ -+Name: goodix -+Info: Enables I2C connected Goodix gt9271 multiple touch controller using -+ GPIOs 4 and 17 (pins 7 and 11 on GPIO header) for interrupt and reset. -+Load: dtoverlay=goodix,= -+Params: interrupt GPIO used for interrupt (default 4) -+ reset GPIO used for reset (default 17) -+ -+ -+Name: googlevoicehat-soundcard -+Info: Configures the Google voiceHAT soundcard -+Load: dtoverlay=googlevoicehat-soundcard -+Params: -+ -+ -+Name: gpio-charger -+Info: This is a generic overlay for detecting charger with GPIO. -+Load: dtoverlay=gpio-charger,= -+Params: gpio GPIO pin to trigger on (default 4) -+ active_low When this is 1 (active low), a falling -+ edge generates a charging event and a -+ rising edge generates a discharging event. -+ When this is 0 (active high), this is -+ reversed. The default is 0 (active high) -+ gpio_pull Desired pull-up/down state (off, down, up) -+ Default is "down". -+ type Set a charger type for the pin. (Default: mains) -+ -+ -+Name: gpio-fan -+Info: Configure a GPIO pin to control a cooling fan. -+Load: dtoverlay=gpio-fan,= -+Params: gpiopin GPIO used to control the fan (default 12) -+ temp Temperature at which the fan switches on, in -+ millicelcius (default 55000) -+ hyst Temperature delta (in millicelcius) below -+ temp at which the fan will drop to minrpm -+ (default 10000) -+ -+ -+Name: gpio-hog -+Info: Activate a "hog" for a GPIO - request that the kernel configures it as -+ an output, driven low or high as indicated by the presence or absence -+ of the active_low parameter. Note that a hogged GPIO is not available -+ to other drivers or for gpioset/gpioget. -+Load: dtoverlay=gpio-hog,= -+Params: gpio GPIO pin to hog (default 26) -+ active_low If set, the hog drives the GPIO low (defaults -+ to off - the GPIO is driven high) -+ -+ -+Name: gpio-ir -+Info: Use GPIO pin as rc-core style infrared receiver input. The rc-core- -+ based gpio_ir_recv driver maps received keys directly to a -+ /dev/input/event* device, all decoding is done by the kernel - LIRC is -+ not required! The key mapping and other decoding parameters can be -+ configured by "ir-keytable" tool. -+Load: dtoverlay=gpio-ir,= -+Params: gpio_pin Input pin number. Default is 18. -+ -+ gpio_pull Desired pull-up/down state (off, down, up) -+ Default is "up". -+ -+ invert "1" = invert the input (active-low signalling). -+ "0" = non-inverted input (active-high -+ signalling). Default is "1". -+ -+ rc-map-name Default rc keymap (can also be changed by -+ ir-keytable), defaults to "rc-rc6-mce" -+ -+ -+Name: gpio-ir-tx -+Info: Use GPIO pin as bit-banged infrared transmitter output. -+ This is an alternative to "pwm-ir-tx". gpio-ir-tx doesn't require -+ a PWM so it can be used together with onboard analog audio. -+Load: dtoverlay=gpio-ir-tx,= -+Params: gpio_pin Output GPIO (default 18) -+ -+ invert "1" = invert the output (make it active-low). -+ Default is "0" (active-high). -+ -+ -+Name: gpio-key -+Info: This is a generic overlay for activating GPIO keypresses using -+ the gpio-keys library and this dtoverlay. Multiple keys can be -+ set up using multiple calls to the overlay for configuring -+ additional buttons or joysticks. You can see available keycodes -+ at https://github.com/torvalds/linux/blob/v4.12/include/uapi/ -+ linux/input-event-codes.h#L64 -+Load: dtoverlay=gpio-key,= -+Params: gpio GPIO pin to trigger on (default 3) -+ active_low When this is 1 (active low), a falling -+ edge generates a key down event and a -+ rising edge generates a key up event. -+ When this is 0 (active high), this is -+ reversed. The default is 1 (active low) -+ gpio_pull Desired pull-up/down state (off, down, up) -+ Default is "up". Note that the default pin -+ (GPIO3) has an external pullup -+ label Set a label for the key -+ keycode Set the key code for the button -+ -+ -+ -+Name: gpio-led -+Info: This is a generic overlay for activating LEDs (or any other component) -+ by a GPIO pin. Multiple LEDs can be set up using multiple calls to the -+ overlay. While there are many existing methods to activate LEDs on the -+ RPi, this method offers some advantages: -+ 1) Does not require any userspace programs. -+ 2) LEDs can be connected to the kernel's led-trigger framework, -+ and drive the LED based on triggers such as cpu load, heartbeat, -+ kernel panic, key input, timers and others. -+ 3) LED can be tied to the input state of another GPIO pin. -+ 4) The LED is setup early during the kernel boot process (useful -+ for cpu/heartbeat/panic triggers). -+ -+ Typical electrical connection is: -+ RPI-GPIO.19 -> LED -> 300ohm resister -> RPI-GND -+ The GPIO pin number can be changed with the 'gpio=' parameter. -+ -+ To control an LED from userspace, write a 0 or 1 value: -+ echo 1 > /sys/class/leds/myled1/brightness -+ The 'myled1' name can be changed with the 'label=' parameter. -+ -+ To connect the LED to a kernel trigger from userspace: -+ echo cpu > /sys/class/leds/myled1/trigger -+ echo heartbeat > /sys/class/leds/myled1/trigger -+ echo none > /sys/class/leds/myled1/trigger -+ To connect the LED to GPIO.26 pin (physical pin 37): -+ echo gpio > /sys/class/leds/myled1/trigger -+ echo 26 > /sys/class/leds/myled1/gpio -+ Available triggers: -+ cat /sys/class/leds/myled1/trigger -+ -+ More information about the Linux kernel LED/Trigger system: -+ https://www.kernel.org/doc/Documentation/leds/leds-class.rst -+ https://www.kernel.org/doc/Documentation/leds/ledtrig-oneshot.rst -+Load: dtoverlay=gpio-led,= -+Params: gpio GPIO pin connected to the LED (default 19) -+ label The label for this LED. It will appear under -+ /sys/class/leds/